Commit Graph

500 Commits

Author SHA1 Message Date
Philip Monk
74b0f66850
ames: continue processing memos after %done 2019-11-27 15:13:17 -08:00
Philip Monk
f035955a36
ames: rename alef -> ames 2019-11-27 00:46:02 -08:00
Philip Monk
96be4b65a5
Merge remote-tracking branch 'origin/mall-testnet' into philip/mall-real 2019-11-27 00:14:08 -08:00
Ted Blackman
55c19a7d47 ames: use +crub more in comet logic 2019-11-27 02:13:15 -05:00
Ted Blackman
e3dba2ea75 incorporate @pcmonk's fix for .channel and .peer-state 2019-11-27 02:11:43 -05:00
Philip Monk
d0d66b99f4
ames: save acknowledgement when negative %done 2019-11-26 22:48:22 -08:00
Ted Blackman
6c18a4ef76 ames: use +crub for comet attestation 2019-11-27 01:15:05 -05:00
Ted Blackman
7fdb940b5c ames: fix another comet bug 2019-11-26 23:52:43 -05:00
Jared Tobin
ac2cf522b8
Merge branch 'ericfode/add-more-list-arms' (#1974)
* ericfode/add-more-list-arms:
  hoon: add +into and +snap

Signed-off-by: Jared Tobin <jared@tlon.io>
2019-11-27 12:01:40 +08:00
Ted Blackman
f91a1f4873 ames: fix egregious comet bug 2019-11-26 22:54:00 -05:00
Philip Monk
9a94c35d4d
gall: acutally delete outgoing on watch-ack 2019-11-26 18:18:44 -08:00
Ted Blackman
3f550d669e Merge remote-tracking branch 'origin/philip/mall-real' into mall-testnet 2019-11-26 20:20:23 -05:00
Philip Monk
bf55197baf
ames: backpressure fixes 2019-11-26 14:56:20 -08:00
Eric Fode
03e1897b00 hoon: add +into and +snap
+into inserts an item into a list at the provided index; +snap replaces
an item at the provided index.

tests: added tests for stdlib list
2019-11-26 13:39:15 -08:00
Philip Monk
7cfe1542e5
ames: too big of messages 2019-11-26 12:00:27 -08:00
Philip Monk
4d1457bbaa
Merge remote-tracking branch 'origin/master' into philip/mall-real 2019-11-24 00:01:04 -08:00
Philip Monk
2e8b468364
Merge commit 'ec855491' into philip/mall-real 2019-11-23 22:31:20 -08:00
Philip Monk
4fc1ade6ba
gall: virtualize scry
Compare +mute and +mule.  Those pass through scry, which doesn't allow us to
catch crashes due to blocking scry.  If you intercept scry, you can't preserve
the type polymorphically.  By monomorphizing, we are able to do so safely.
2019-11-23 21:49:23 -08:00
Joe Bryan
3741e734cb dill: adds |pack and and friends 2019-11-22 17:24:42 -08:00
Philip Monk
f8b612d053
ph: add ph-all to run multiple tests 2019-11-22 12:46:30 -08:00
Ted Blackman
5110b3459b ames: only %clog on 5 unsent messages 2019-11-22 08:43:08 -05:00
Ted Blackman
4b4e5ba80c ames: fix typo 2019-11-22 08:42:19 -05:00
Fang
39a31f0846
zuse: add +name:title for (moon) identity 2019-11-22 13:01:23 +01:00
Ted Blackman
93ab01e274 ames: minor printing improvements 2019-11-21 23:10:49 -05:00
Philip Monk
9d47222139
Merge remote-tracking branch 'origin/mall-testnet' into philip/mall-real 2019-11-21 19:07:28 -08:00
Ted Blackman
4446c96814 yet another oops 2019-11-21 21:24:34 -05:00
Ted Blackman
8bbdc45a01 another oops 2019-11-21 21:23:34 -05:00
Ted Blackman
a4bad50e71 oops 2019-11-21 21:22:05 -05:00
Ted Blackman
ae76a33157 ames: kill timers on breach 2019-11-21 21:20:39 -05:00
Ted Blackman
1d88275032 ames: abandon ill-fated decryption reordering 2019-11-21 21:17:43 -05:00
Ted Blackman
29c816c65c ames: fix typo 2019-11-21 21:15:05 -05:00
Ted Blackman
cf543134ee ames: don't repeat broken timers 2019-11-21 21:13:09 -05:00
Ted Blackman
e7be81e219 ames: check life before decrypt 2019-11-21 21:12:42 -05:00
Ted Blackman
b944024893 ames: fix nest-fail; update solid pill 2019-11-21 20:41:17 -05:00
Ted Blackman
4988875ea8 ames: don't brick on timer error 2019-11-21 19:52:57 -05:00
Philip Monk
bdbd35fcf3
gall: virtualize scry
Compare +mute and +mule.  Those pass through scry, which doesn't allow us to
catch crashes due to blocking scry.  If you intercept scry, you can't preserve
the type polymorphically.  By monomorphizing, we are able to do so safely.
2019-11-21 14:47:06 -08:00
Jared Tobin
7fb918df53
zuse: fix outdated docs on vanes [ci skip]
The documentation on vanes in the header of zuse.hoon hadn't been
updated since before the introduction of %iris.
2019-11-21 16:52:59 +08:00
Philip Monk
b8903e9a6f
gall: fix ap-kill-down
This broke when %kick was handled by resubscribing on your own ship
because it processed the %kick before the %leave.  For example, `@t`404
at the dojo would put the dojo in an unworkable state.

You want the %leave to be processed first because you can't do a
"resubscribe" in response to that.
2019-11-20 13:24:19 -08:00
Philip Monk
1d1119c1f3
drum: unsubscribe on poke-ack failure 2019-11-20 12:12:33 -08:00
Ted Blackman
5770c6fe1c switch to ropsten and update pills 2019-11-19 23:52:28 -05:00
Philip Monk
a5412f01de
Merge branch 'alef-testnet-merge' into philip/mall-real 2019-11-19 13:03:07 -08:00
Philip Monk
6a406e6b29
gall: mall -> gall 2019-11-18 20:36:21 -08:00
Philip Monk
9862dccc0e
mall: age -> app 2019-11-18 19:28:59 -08:00
pkova
8836a3d2fc hoon: refactor royl float parsers to separate arms
Immediately useful for implemeting json `@rd` parsing, which is basically
`++royl-rd` minus pfix sig. The increased separation also allows for running
stuff like `(rash '3.22e-47' royl-rn:so)` from the dojo.
2019-11-19 00:56:06 +02:00
Philip Monk
fea3bd60e4
dojo: add syntax for imps
This adds syntax for running imps.  For example:

-time ~s1

Runs the "time" imp with the argument ~s1.  This blocks the terminal
until the imp has completed (backspace kills it, of course).  You could
avoid blocking the terminal if you sacrifice the ability to use imps as
sources in more complex commands.

In keeping with this one-and-done view of imps, this also changes spider
to not use a live build of imps.  This significantly reduces the amount
of uncertainty around imps -- spider will try exactly once to run your
imp, and if it fails it'll tell you.  If you want to retry, that's up to
you.
2019-11-15 17:20:56 -08:00
Jared Tobin
c9c2e33f63 zuse, build: remove default testnet config
Returns the target %zuse contract configuration to mainnet, and also
tweaks the 'arvo-ropsten' build to use %alef instead of %ames.

Also fixes a merge conflict artifact in nix/ops/default.nix.
2019-11-15 19:26:43 +09:00
Ted Blackman
49d81265c3 alef: clean up printing 2019-11-14 19:10:48 -05:00
Philip Monk
3dae66332c
jael: process all ships in %full update 2019-11-14 14:54:48 -08:00
Philip Monk
c9f437e3c6
jael: process all ships in %full update 2019-11-14 14:46:14 -08:00
Philip Monk
607a2c0ac6
eyre: fix tests 2019-11-13 19:41:56 -08:00
Jared Tobin
39fb914cdd
Merge branch 'philip/jael-no-sub' (#1944)
* philip/jael-no-sub:
  jael: only listen to azimuth-tracker on boot

Signed-off-by: Jared Tobin <jared@tlon.io>
2019-11-14 09:58:34 +08:00
Philip Monk
5fd75edcc6
eyre: change id format 2019-11-13 14:07:37 -08:00
Philip Monk
a1b928488d
eyre: remove eyre-id from eyre's state 2019-11-13 01:45:04 -08:00
Philip Monk
cc94abf717
eyre: cancel subscriptions more aggressively 2019-11-13 01:21:14 -08:00
Philip Monk
4a6e98a558
mall, eyre: refactor server apps to be stateless 2019-11-13 00:38:35 -08:00
Philip Monk
47e3b260d5
eyre: subscribe to apps for responses
This removes the %http-response special case from gall.  In its place,
we implement a subscription regime with the following steps:

- Agent sends %connect to Eyre
- Eyre pokes agent with %handle-http-response, including unique eyre-id
- Agent passes %start-watching to Eyre with eyre-id and unique app-id
- Eyre subscribes to agent on /http-response/app-id
- Agent produces a %http-response-header fact followed by 0 or more
  %http-response-data facts and possibly a %http-response-cancel fact
- Agent produces a %kick to close the subscription, which Eyre
  interprets as completion of the message.

This works when there is data.  There is currently a bug where if the
response has no data in total (as in the case of a naked 404), no
response will be sent.

This also includes lib/http-handler, which implements a convenient
interface for agents that want to respond immediately with all the data.
This lets them avoid carrying extra state to keep track of pending
requests.

This should really have access to your state and the ability to change
it.  Perhaps a more minimalist design would be better: just keep track
of the requests, then hand it off to +on-watch when eyre is ready to
receive responses.  It's not clear how to pass in the request data in
+on-watch.
2019-11-12 23:37:38 -08:00
Philip Monk
0e564e2f28
jael: only listen to azimuth-tracker on boot
For some reason Jael subscriptions aren't starting properly for many
people.  Until we can get to the bottom of it, this sets everyone to
start listening directly to the chain.
2019-11-12 22:00:57 -08:00
Philip Monk
b25412b93b
clay: fix meet-conflict crash 2019-11-11 21:42:33 -08:00
Philip Monk
e603681097
clay: fix meet-conflict crash 2019-11-10 14:33:48 -08:00
Philip Monk
ae295d445a
mall: rm old apps for easier merging 2019-11-09 16:53:42 -08:00
Philip Monk
bcd7c5e82d
Merge branch 'master' into philip/mall-real 2019-11-09 16:47:41 -08:00
Jared Tobin
a480e3aafd
Merge branch 'philip/core-gol' (#1928)
* philip/core-gol:
  hoon: extend gol check through cores

Signed-off-by: Jared Tobin <jared@tlon.io>
2019-11-09 18:36:32 +08:00
Philip Monk
e43036d748
hoon: extend gol check through cores
This extends `gol` "backward-inference" typechecking to thread through
cores.  Recall that `gol` is used exclusively for receiving more
specific error messages; these changes should have no effect on programs
which already compile successfully.

Before, this would type-fail on the second `|%`.

```
!:
^+  ^?
    |%
    ++  foo  *@ud
    --
|%
++  foo
  ?:  =(1 1)
    2
  %foo
--
```

With these changes, it gives a mint-nice at `%foo`.  It will also give
you explicit errors if you have the wrong number/names of arms,
including which arms it expects.

This is becoming much more important with static gall, since it's the
first time we've used core subtyping so extensively and in userspace.
2019-11-09 18:25:42 +08:00
Philip Monk
47f24faaf8
mall: convert chat-cli 2019-11-08 19:32:21 -08:00
Philip Monk
7c4316fce4
mall: refactor gift/sign/task types
+on-agent now takes a +sign:agent:mall, which doesn't include spurious
options.  Similarly, +task:agent:mall is smaller.
2019-11-08 17:35:24 -08:00
Philip Monk
c05704965a
hoon: nits picked 2019-11-08 14:48:01 -08:00
Philip Monk
1688fe82fd
mall: add flag to default-agent to assist with errors 2019-11-08 13:56:35 -08:00
Philip Monk
43e02c25e4
hoon: extend gol check through cores
This extends `gol` "backward-inference" typechecking to thread through cores.  Recall that `gol` is used exclusively for receiving more specific error messages; these changes should have no effect on programs which already compile successfully.

Before, this would type-fail on the second `|%`.

```
!:
^+  ^?
    |%
    ++  foo  *@ud
    --
|%
++  foo
  ?:  =(1 1)
    2
  %foo
--
```

With these changes, it gives a mint-nice at `%foo`.  It will also give you explicit errors if you have the wrong number/names of arms, including which arms it expects.

This is becoming much more important with static gall, since it's the first time we've used core subtyping so extensively and in userspace.
2019-11-08 12:53:03 -08:00
Philip Monk
d096c18377
mall: properly delete on %kick 2019-11-07 18:25:19 -08:00
Philip Monk
67ef0ed0f7
mall: don't remove sub until sent kick 2019-11-07 16:30:45 -08:00
Philip Monk
68a7f58447
mall: set attributing to immediate source 2019-11-07 14:46:06 -08:00
Philip Monk
9d2585772d
mall: fan out kicks 2019-11-07 13:17:13 -08:00
Philip Monk
43be7737d6
mall: rename agent arms 2019-11-07 00:19:58 -08:00
Philip Monk
23f99e8f85
jael: don't update state until you've tested for breach
We were updating our state and then using that when checking if the rift
had incremented.  This would never be true, since we'd already set the
new state.

Fixes #1852 again
2019-11-06 12:51:33 -08:00
Jared Tobin
24f6309670
Merge branch 'behn-flop-drip' (#1916)
* behn-flop-drip:
  behn: print %drip errors in the correct order

Signed-off-by: Jared Tobin <jared@tlon.io>
2019-11-06 18:31:45 +08:00
Philip Monk
46d89dd823
mall: convert dns-collector 2019-11-05 19:55:51 -08:00
Joe Bryan
cafb58b080 dill: fixes cursor position during boot 2019-11-05 14:56:15 -08:00
Joe Bryan
5ace479711 dill: adds %goad automation 2019-11-05 14:56:10 -08:00
Joe Bryan
c930aceec6 dill: refactors move production 2019-11-05 13:08:10 -08:00
Joe Bryan
d852d4f159 gall: restores "not-running" printf 2019-11-05 13:04:27 -08:00
Joe Bryan
1b187657cb gall: adds %goad task force agent rebuilds 2019-11-05 13:04:27 -08:00
Jared Tobin
3fac197ec1
Merge branch 'eth-watcher-2' (#1895)
* eth-watcher-2: (21 commits)
  eth: move existing chain requests into ethio
  eth-watcher: refactor refresh rate to top of file
  hook: add pool-group-hook for making invite groups
  ethio: add +read-contract for chain state reading
  zuse: add delegated-sending address
  eth: move eth-watcher's request-rpc into ethio lib
  gaze: make compile for latest eth-watcher
  drum: start eth-watcher on boot
  azimuth-tracker: remove deprecated generator
  eth: implement azimuth-tracker using eth-watcher
  eth-watcher: ensure logs always sent oldest-first
  eth-watcher: allow peers to unconfigured watchdogs
  eth-watcher: saner %watch behavior
  eth-watcher: implement %clear poke
  eth-watcher: store logs in state to implement peer
  eth-watcher: move types into /sur file
  eth-watcher: properly tag out-peer-data
  eth-watcher: single update timer loop
  eth-watcher: implement /block peek
  eth: turn azimuth-tracker into eth-watcher
  ...

Signed-off-by: Jared Tobin <jared@tlon.io>
2019-11-05 17:11:19 +08:00
Joe Bryan
6ccc8b65d5 behn: print %drip errors in the correct order 2019-11-05 00:22:53 -08:00
Philip Monk
0e2da1e130
mall: convert lanaguage-server 2019-11-04 23:47:27 -08:00
Philip Monk
274d518cbc
mall: forward-port gall changes 2019-11-04 20:19:08 -08:00
Philip Monk
82513c27fc
Merge branch 'master' into philip/mall-real 2019-11-04 19:35:24 -08:00
Joe Bryan
ec32a76596 gall: fix virtualization of agent compilation 2019-11-04 15:29:17 -08:00
Ted Blackman
19c4bf7110 alef,gall: %clog notice and handling 2019-11-03 20:35:45 -05:00
Ted Blackman
3ecfbd6a68 fixed merge; sync and hi work again 2019-11-03 00:07:51 -04:00
Ted Blackman
9a02c64b45 Merge branch 'master' into alef-testnet-merge
Untested, has not been run.
Uses master pills for now.  Will need refreshing.
2019-11-02 23:37:01 -04:00
Ted Blackman
22ef92053a gall and ames: |hi works, fixed alef nack-trace bug 2019-11-02 20:52:48 -04:00
Ted Blackman
6f2ebe8ebd gall: deleted +ap-track-queue, boot completes 2019-11-01 16:18:51 -04:00
Ted Blackman
f7c1af8dec pill compiles, but apps unlink on boot 2019-11-01 15:06:09 -04:00
Fang
82e25e3940
zuse: add delegated-sending address 2019-11-01 18:09:45 +08:00
Philip Monk
0014d1cf2b
auto: fix some crashes on strange wet gates 2019-10-31 21:37:24 -07:00
Ted Blackman
925489eba6 /sys: various merge fixes 2019-10-30 16:23:37 -04:00
Ted Blackman
21dabb8895 big merge, including some Alef and Zuse work 2019-10-30 16:12:57 -04:00
Anton Dyudin
78d10f30cd
eyre: fix wire=path terminology 2019-10-25 16:04:29 -07:00
Jared Tobin
7f124db8d9
Merge branch 'philip/jael-ames-full' (#1882)
* philip/jael-ames-full:
  jael: provide edge-triggered breach notification

Signed-off-by: Jared Tobin <jared@tlon.io>
2019-10-25 14:05:01 +08:00
Philip Monk
9ddc04143a
jael: provide edge-triggered breach notification
Until now, clients of Jael have had to store the first-seen rift if they
want to reliably detect breaches.  Otherwise, they would get a false
positive if they heard an old message about a breach (eg if you kick
azimuth-tracker).  Clay and Gall did this correctly, but Ames did not.

Jael already maintains this state, so I added a notification to the
existing subscription that happens whenever it notices a breach (a diff
or full where the new rift is greater than the old one).

Because this is an issue on the live network, I wrote state adapters
for Gall and Clay.  The Gall one just removes the rift from our state,
but the Clay one is much more involved because we have to upgrade
instances of the clad monad that are possibly in progress.
Specifically, since more input is possible than before, we must wrap any
in-progress instances of the monad in a function that handles the
potential new input from Jael.  This temporarily preservers a copy of
the old kernel, but only until the current commit/merge/update has
completed.

The real solution for Clay is to factor out those IO-heavy instances to
userspace tapp/async/imp/threads, and if an upgrade happens in the
middle, you should simply restart them.

Fixes #1852
2019-10-23 21:40:34 -07:00