Commit Graph

1542 Commits

Author SHA1 Message Date
Ted Blackman
04e010e6c8 Merge branch 'dist' into ted/dist-migrate-wip 2021-09-20 07:43:43 -04:00
fang
d0f8eda937
hoon: correctly parse empty path
And reject paths ending in empty segments.

The following cases were being parsed incorrectly:
- `/` represents the empty path, `~`. This was being parsed into `[~. ~]`
- `/x/` is not valid. This was being parsed into `[~.x ~. ~]`

This happens because `urs:ab` has no problem parsing the empty string.
For some supported cases, like `//x` (`[~. ~.x ~]`), this is actually desired
behavior, but it results in trailing empty segments for paths ending in `/`.

Here we apply a `+sear` on top of the existing parser, that transform the `/`
case to produce `~`, and ensures the absence of a trailing empty segment in
all other cases.

Note that we change `(more fas urs:ab)` to `(most fas urs:ab)`. Since `urs:ab`
parses the empty string, this doesn't actually make a difference, but it does
make it more obvious that the `+rear` call will never crash.

Alternative approaches I attempted all resulted in much more complicated
parser, so the dumb `+sear` seems preferable.
We do eat the performance cost of an additional list traversal (in `+rear`)
with this change, but that is probably not the end of the world.

Fixes #1501.
2021-09-16 12:39:50 +02:00
Liam Fitzgerald
1ac0465da7 gall: ignore reload for dead agents
Fixes a bug where even if an agent was dead, if its source was modified,
then gall would still attempt a scry for its cage.
2021-09-13 08:43:57 +10:00
Ted Blackman
84c043d921 lull,clay: WIP migration 2021-08-31 02:25:36 +03:00
Ted Blackman
91714f5579 lull,dill,gall,kiln: move %pyre to :agent:gall 2021-08-27 18:06:53 +03:00
Ted Blackman
dda7f13e0e clay: WIP migrate from master 2021-08-26 19:32:52 +03:00
Ted Blackman
f9e1812a14 sys,gen/kiln: kelvin checking seems to work 2021-08-20 10:41:16 +03:00
Ted Blackman
4ea0c56849 dill: don't sync %kids on galaxies 2021-08-18 00:57:38 +03:00
Ted Blackman
616ab66f26 merge master; loosen :hood's updates 2021-08-11 19:23:36 +03:00
Ted Blackman
b8af4835cf dill: sync to %kids on galaxies 2021-08-09 02:31:53 +03:00
Philip Monk
98d8419c9e
hoon: don't compile .= children twice 2021-08-04 17:02:48 -04:00
Philip Monk
4e16b9c555
hoon: remove +ad
This reverts d96d50199 because +ad is incredibly opaque, and +ergo's
sitting right there anyway.  It looks like it was intended to abstract
over +endo, +elbo, and +ergo, but only +ergo was every implemented.  I
don't doubt the others could be as well, but then they would be just as
inscrutable.
2021-08-04 16:57:03 -04:00
Philip Monk
eb383baba9
dill: no-op on strange fact
Otherwise, if you accidentally give on the system duct, you crash the
event, as in #5138
2021-07-29 14:56:26 -04:00
Ted Blackman
a27697a45d dill: revert change to ota setup 2021-07-23 14:14:23 +03:00
Ted Blackman
6bf7d3316e dill: |install %base from sponsor on boot 2021-07-23 14:08:30 +03:00
Ted Blackman
d9c9740b8d clay: print desk in +read-a 2021-07-23 14:03:36 +03:00
Ted Blackman
891a295366 gall: fix /clear-huck handling 2021-07-21 11:55:21 +03:00
Philip Monk
1d06b77a46
jael, dawn: support multikeyfile
taken from bdaad4cf84
2021-07-20 13:28:33 -04:00
Philip Monk
564c1216e1
Merge remote-tracking branch 'origin/lf/replace-channel' into release/next-sys 2021-07-20 13:09:41 -04:00
Philip Monk
5240b66347
Merge branch 'pr' into release/next-sys 2021-07-20 13:07:57 -04:00
Ted Blackman
88c15bcca2 gall: make %jolt idempotent, remove dead +mo-reboot 2021-07-20 17:59:20 +03:00
Ted Blackman
38d6d0f4d4 gall,kiln: clean up agent stopping, starting, linking 2021-07-19 16:58:18 +03:00
Ted Blackman
4f5739879e clay: more printing adjustment 2021-07-19 14:01:34 +03:00
Ted Blackman
f521881212 clay: better print 2021-07-18 23:11:13 +03:00
Ted Blackman
4f3e99f797 clay,hood: seems to boot for real now 2021-07-17 02:54:20 +03:00
Ted Blackman
a1b82d4b36 various: can bootstrap off existing ship, but generators are broken 2021-07-16 19:01:55 +03:00
Ted Blackman
121502028e dill: stop poking drum 2021-07-16 05:22:53 +03:00
Ted Blackman
4121d35b64 gall: crash on agent build failure 2021-07-16 05:22:31 +03:00
Ted Blackman
4cb5cd0ba1 gall,drum,kiln: WIP start agents in kiln 2021-07-15 09:51:03 +03:00
Ted Blackman
5e496e920e clay: invalidate cache on kelvin change 2021-07-14 19:21:00 +03:00
Ted Blackman
f4232ce415 dill,clay: minor printing cleanup 2021-07-14 01:51:35 +03:00
Ted Blackman
529502543b sys,lib: boots! 2021-07-14 01:00:13 +03:00
Ted Blackman
9b968edf75 clay,kiln,/mar/kelvin,/lib/pill: some fixes for pills; not done 2021-07-13 19:02:24 +03:00
Ted Blackman
5986fe67f5 gall: no-op on %slay,%idle for missing agent 2021-07-13 17:35:54 +03:00
Ted Blackman
070bbd0917 clay: use 2021-07-10 08:56:25 -04:00
ixv
9883f09a34 gall: no-op instead of sending %huck in +mo-clear-queue 2021-07-09 12:12:48 -07:00
raghu
ad96d47cdc better formatting in error messages 2021-07-08 22:29:06 -04:00
Ted Blackman
0e144314c3 gall: suspend agents on upgrade 2021-07-07 14:08:21 -04:00
Ted Blackman
6a1cbf8894 arvo: kelvin version type 2021-07-02 17:40:55 -04:00
Fang
cb1a7cb76a
Merge branch 'm/multipass' into naive/preboot 2021-07-02 16:20:51 +02:00
Ted Blackman
82581ae993 gall: %e scry to list apps on a desk 2021-07-01 20:33:43 -04:00
Ted Blackman
784004cfb6 kiln: +install compiles and loads, untested 2021-06-30 21:03:47 -04:00
Liam Fitzgerald
6ca0fd11c4
eyre: send comments as heartbeats, not empty events
The previous behaviour, in addition to not being conformant with the
spec, breaks correct reconnect behaviour.
See: https://html.spec.whatwg.org/multipage/server-sent-events.html#event-stream-interpretation
2021-06-30 11:45:50 +10:00
Ted Blackman
8c3d14b7a7 clay: check kelvin on non-%base desks 2021-06-28 21:22:55 -04:00
Ted Blackman
40af38c9ee bin/solid.pill 2021-06-28 20:18:37 -04:00
Ted Blackman
501ed4ad82 clay: remove reef 2021-06-28 20:01:51 -04:00
Logan Allen
d5ec02c801 eyre: cast within zapgar to avoid nest check 2021-06-28 17:07:13 -04:00
Liam Fitzgerald
f2583ce080
eyre: address mark review 2021-06-25 08:28:06 +10:00
Liam Fitzgerald
9aaa44ff33
eyre: replace channel upon new GET request
As SSE are unidirectional, the client always realises that the
connection has failed faster than the server does. Hence, resuming a
subscription is useless, because channels can only be bound to one duct
at a time. Now, instead of failing a request for a channel
that is already bound to a duct, we replace the duct and continue
normally.
2021-06-24 13:54:53 +10:00
raghu
5698e2662a Merge remote-tracking branch 'upstream/master' into better-bar-fuse 2021-06-21 20:57:20 -04:00
raghu
a04b318d2d clay: log on strange fuse responses 2021-06-21 20:43:49 -04:00
Philip Monk
87ca57c364
gall: allow apps to run from any desk
Start with |start %desk %app-name

Everywhere in the kernel that we deal with marks, we infer the app it's
connected to and use the marks from that desk.

Also some light renaming in gall, especially path->wire and
current-agent->yoke.

Subsequent tasks:

- Dojo needs a syntax to run generators and threads from other desks
- The home desk should be split into at least a minimal base desk and
  big "userspace" desk.  Dill's initialization logic should be updated
  to handle
- |show-package, |install, and |uninstall should to be written
- Clay should have smarter handling of system versions instead of just
  ignoring what's on each desk.  It's not clear that this will work
  correctly when sys updates right now.
2021-06-18 16:13:55 -10:00
Logan Allen
1296728d4f eyre: cast within zapgar to avoid nest check 2021-06-14 16:18:18 -05:00
Philip Monk
85fdd6b190
clay: handle out-of-bounds versions in nako 2021-06-08 15:41:44 -10:00
Philip Monk
e5ab5db20c
Merge branch 'release/next-sys' of ssh://github.com/urbit/urbit into release/next-sys 2021-06-08 09:21:04 -10:00
fang
f17e228046
Merge pull request #4942 from urbit/m/dill-appetizer
dill: support next runtime's inputs
2021-06-08 21:05:25 +02:00
Philip Monk
b0c9fd1940
Merge remote-tracking branch 'origin/lf/hoon-inc' into release/next-sys 2021-06-08 08:59:27 -10:00
raghu
b499e1e711 clay: print conflicting source on fuse failure 2021-06-07 20:35:18 -04:00
L
5cc908063a
Merge pull request #4987 from urbit/la/zuse-parsing
zuse: comb through all notes in libraries, and move arms to zuse
2021-06-07 13:11:40 -05:00
Logan Allen
6703e03199 zuse: remove unnecessary line from +re 2021-06-07 10:20:20 -05:00
Logan Allen
b6206728cc hoon: make +sink more concise 2021-06-04 16:06:40 -05:00
fang
4c004e0165
lull: saner belt construction
$% by itself wasn't quite right, considering +bolt's @c case.
2021-06-04 21:45:59 +02:00
Logan Allen
7ef313c5e1 hoon: add +sink, a slow (but faster than dunk) type printing 2021-06-04 14:40:28 -05:00
Logan Allen
2c7a909f19 zuse: comb through all notes in libraries, and move arms to zuse 2021-06-04 12:47:51 -05:00
fang
3b81e35260
dawn: better multikey format
Improves the multikeyfile format by taking a single ship and a list of
life+key pairs, instead of a list of full seeds.

Also decouples these changes from the dawn event, once again putting a
single seed into it. In the multikeyfile case, keys are injected as
%rekey events to jael near the end of the boot sequence.

Haskell-side changes may or may not be incomplete, boot presently fails
at some unknown point with what looks like a noun conversion error.
2021-06-04 01:49:15 +02:00
L
21ae35a08f
Merge pull request #4932 from urbit/la/fast-look
arvo: add +de-case to speed up +de-beam, prime cache in +settle:va
2021-06-01 13:45:32 -05:00
Logan Allen
2549eaa5c2 eyre: comment out %writ specialization because it causes crashes 2021-05-27 13:28:23 -05:00
Logan Allen
d822d5adce gall: ensure we send %whiz after all the other moves 2021-05-27 13:24:36 -05:00
Logan Allen
3427e57cb3 eyre: specialize %clay type 2021-05-27 13:01:06 -05:00
Logan Allen
00fa3e7f0d arvo: add %whiz option that allows one to prime the compiler cache 2021-05-27 12:55:03 -05:00
fang
bee2fd278c
dill: support next runtime's inputs
This, along with the new runtime understanding current dill's blits,
will ensure that the new runtime is reasonably usable even with the old
dill.
2021-05-27 16:28:42 +02:00
Logan Allen
7305ce1499 arvo: clean up unnecessary type casts and fix profiling hint 2021-05-26 17:59:00 -05:00
Logan Allen
517ebbbbee arvo: rename +en-case to +de-case, prime the cache in +settle 2021-05-26 17:12:59 -05:00
Logan Allen
fdec9ebe93 arvo: add +en-case, hoon: remove +sloy 2021-05-26 15:45:39 -05:00
Logan Allen
23f9668d46 eyre: make fang's requested style changes 2021-05-26 12:22:54 -05:00
fang
d1890f5db2
jael, dawn: support multi-keyfile during boot
Allows booting with a keyfile containing multiple keys, as long as one
of them matches current PKI pubkeys for the specified ship.

All relevant keys are loaded into jael and will automatically be put to
use when they match PKI state.
2021-05-26 16:02:39 +02:00
Logan Allen
8ee9382e7b arvo/hoon: add +sloy, a %da short-circuited +slay to speed up +de-beam and thus +look 2021-05-23 20:34:43 -05:00
Logan Allen
571e1df2c6 eyre: add ~| to slym 2021-05-20 15:05:36 -05:00
Logan Allen
be7c94fcba eyre: replace +slam with +slym for a speedup 2021-05-20 14:31:28 -05:00
L
782a7644a3
Update pkg/arvo/sys/vane/eyre.hoon
Co-authored-by: fang <github@fang.io>
2021-05-20 13:40:05 -05:00
L
c0daa7f9fc
Update pkg/arvo/sys/vane/eyre.hoon
Co-authored-by: fang <github@fang.io>
2021-05-20 13:39:49 -05:00
Logan Allen
5e2eb1b783 eyre: use slam and statically typed conversion 2021-05-20 18:03:04 +00:00
Logan Allen
306dbbaead eyre: use static mark conversions 2021-05-20 12:11:45 -05:00
Logan Allen
c0e4dcdc18 eyre: no-op on clay take 2021-05-19 16:01:05 -05:00
Logan Allen
054806b307 eyre: send warp to warm %c cache for any mark that gets used 2021-05-19 15:40:32 -05:00
Philip Monk
bbe3cbe8ee
clay: formatting 2021-05-18 08:32:30 -10:00
Philip Monk
1e6e69a49d
Merge branch 'pr' into release/next-sys 2021-05-18 07:50:26 -10:00
Philip Monk
5007257b63
Merge branch 'release/next-sys' of ssh://github.com/urbit/urbit into release/next-sys 2021-05-18 07:41:58 -10:00
Philip Monk
1f016f56a6
Merge pull request #4916 from urbit/la/sys-ram
zuse: added +ram method to ordered map and made comments on methods a…
2021-05-18 10:40:31 -07:00
Philip Monk
63ba2823dd
Merge remote-tracking branch 'origin/ted/clay-bunt' into release/next-sys 2021-05-18 07:38:52 -10:00
Logan Allen
2c754ff08f zuse: added +ram method to ordered map and made comments on methods accurate 2021-05-18 12:38:42 -05:00
Philip Monk
e2e4d28548
Merge pull request #4788 from urbit/la/sys-fast-orm
zuse: add +all, +any, +got, +has, +run, and +tab to ++ordered-map, jet hints, and reorganize alphabetically
2021-05-18 10:24:31 -07:00
Philip Monk
57bea9407e
Merge pull request #4623 from urbit/jb/seminoun-bunt
hoon: update seminoun bunt to be fully blocked
2021-05-18 10:23:30 -07:00
Philip Monk
f73b913df9
Merge branch 'release/next-sys' of ssh://github.com/urbit/urbit into release/next-sys 2021-05-13 07:04:27 -10:00
Philip Monk
a57b6f9c9e
Merge branch 'pr' into release/next-sys 2021-05-13 07:04:07 -10:00
raghu
44722f3a09 fuse: properly report success 2021-05-11 21:30:44 -04:00
Logan Allen
b311087f6a Merge branch 'release/next-sys' into la/sys-fast-orm 2021-05-11 12:37:16 -05:00
Logan Allen
a25f8028f4 tests: add test to make sure subtree is being modified properly in +del-span 2021-05-05 16:07:08 -05:00
Logan Allen
915c548037 zuse: fix +del-span in +tab 2021-05-05 14:41:13 -05:00
Logan Allen
36ae091cff zuse: +tab in ordered-map is more succinct and no longer nips 2021-05-05 13:09:43 -05:00
Logan Allen
4073cf9d76 zuse: +tab marginal code cleanup to reduce use of lark 2021-05-05 12:59:40 -05:00
Logan Allen
947b9ec75c zuse: +tab should paginate into the ordered-map starting from the highest element, not from the lowest 2021-05-05 11:56:04 -05:00
Logan Allen
c86559071f zuse: add +tab arm to +on, which allows one to take a subset excluding the start element with a max count 2021-05-04 14:55:41 -05:00
raghu
9db61a1566 fuse: simplify state restoration logic 2021-05-03 22:26:49 -04:00
raghu
2fd8e729e1 fuse: fix indents 2021-05-03 19:29:28 -04:00
Ted Blackman
4c94c7edd4 ames: expire direct lanes faster after inactivity 2021-05-03 17:33:56 -04:00
raghu
20fb39bba7 fuse: fix comments 2021-05-02 14:15:03 -04:00
raghu
08d3aa2485 fuse: c/r 2021-05-02 14:04:03 -04:00
raghu
75ed2cc0af fuse: c/r 2021-05-02 13:44:18 -04:00
Philip Monk
49bbf37ca2
Merge pull request #4835 from urbit/philip/clay-fixes
clay: fix requests for strange cares over ames
2021-04-29 15:18:05 -07:00
Philip Monk
7b7e9e3104
clay: fix requests for strange cares over ames
Four changes:

- implement +validate-u to allow %u requests over the network
- make +validate-x use our local marks to make %x requests generally
  work over the network
- in +start-request, if a foreign ship is making a request that we
  shouldn't send over the network, ignore it.  This closes a DOS vector.
- in +duce, if we're about to make a request to a foreign ship which
  they won't be able to answer, crash the event.

Combined, these fix many of the common cases of weirdness around foreign
clay requests.  Notably absent is a fix for reading `%a` across the
network, which I still maintain should happen against the foreign
hoon/zuse.

fixes #4834
see also #4307
2021-04-28 23:24:15 -07:00
Philip Monk
b1091d0e98
Merge remote-tracking branch 'origin/master' into philip/naive 2021-04-28 20:30:07 -07:00
Logan Allen
dd6eeccdae zuse: update names of +subset to +lot, +peek to +pry, remove unnecessary comments 2021-04-28 16:12:46 -05:00
Philip Monk
f2c43edc99
naive: make bitlengths explicit
Also switches everything to ropsten by default, including ivory pill.
Batches work on ropsten now.

Also adds +tx as a hacky development tool to create text for metamask to
sign and then turn that into a batch.  A useful reference for bridge and
aggregator work.
2021-04-27 22:58:19 -07:00
Liam Fitzgerald
9b2061a824
hoon: add +succ gate
Adds an +succ (successor) gate. Whilst .+ exists, it is impossible to use
in a point free style and doesn't compose functionally.
2021-04-27 10:24:21 +10:00
fang
6f0a947d1b
Merge branch 'master' into release/next-sys 2021-04-26 23:13:27 +02:00
fang
5d4d7de6a6
Merge pull request #4745 from urbit/m/ford-fassig
clay: add /~ ford rune, as /= for directories
2021-04-26 16:19:19 +02:00
raghu
8cbacb2545 clay: allow successive upgrades 2021-04-25 14:01:55 -04:00
raghu
201c3db193 clay: finalize fuse request - update |fuse 2021-04-25 14:01:45 -04:00
raghu
9d7afd10ee clay: change fuse request 2021-04-25 14:01:33 -04:00
fang
550dee32da
clay: +any:in in place of +lien over +tap:in 2021-04-23 23:05:11 +02:00
fang
dcdf695991
clay: insert %nest-fail into trace conditionally
Previously, we would stack on the ~| for every file we had previously
processed, even though we only want it in the trace for actual failures.
2021-04-23 22:56:24 +02:00
Logan Allen
ca9f6180d8 zuse: make ordered-map's +run wet 2021-04-22 10:46:48 -05:00
Logan Allen
cef4e6a726 zuse: fix +apt jet parent not found 2021-04-20 16:04:48 -05:00
Logan Allen
5b7b7e6cb7 zuse: reorder dip alphabetically 2021-04-20 15:21:07 -05:00
Logan Allen
6b0dc98952 ames: reflect update of name +traverse -> +dip 2021-04-20 15:04:28 -05:00
Logan Allen
b5a8e7a40b zuse: change name of +ordered-map to +on and add alias, change name of +traverse to +dip as per talk with ted 2021-04-20 15:03:57 -05:00
Logan Allen
f0ba5afe1c zuse: respond to joe's requests to remove mk-item and add fast hint for ordered-map 2021-04-20 12:56:24 -05:00
Logan Allen
9247fc247c zuse: add +got and +has arms to +ordered-map 2021-04-20 12:11:54 -05:00
Logan Allen
ae2aefed2a zuse: made +run allow type transform to match +by and +in 2021-04-20 12:06:03 -05:00
Logan Allen
2e302818d3 zuse: added +any to +ordered-map 2021-04-20 12:05:24 -05:00
Logan Allen
fd6f6b3bd0 zuse: added jet hints to all +ordered-map arms, reordered them alphabetically as is done in +in and +by 2021-04-20 12:04:59 -05:00
raghu
b2e1008d9a clay: add %fuse 2021-04-19 23:46:46 -04:00
Philip Monk
66b4c3f193
Merge pull request #4677 from urbit/philip/fast-refresh
sys: Speed up things used in Landscape
2021-04-19 15:43:16 -07:00
Philip Monk
8870add20d
Merge pull request #4701 from urbit/ted/gall-print
gall: print on missing request for ack
2021-04-19 15:41:27 -07:00
Logan Allen
2f0ed36101 zuse: add +all and +run to ++ordered-map 2021-04-19 15:10:33 -05:00
fang
0570fb5b76
clay: share logic between build-file and directory
By factoring their shared logic out into +build-dependency, which gets
passed the relevant details about how to track the file being built in
the dependency stack.
2021-04-12 13:10:36 +02:00
fang
8b4dba28fa
clay: update dependency logic for /~ imports
To match recent changes to the build logic, where it only includes
top-level hoon files.
2021-04-10 16:22:52 +02:00
fang
a45179412b
clay: for /~, only build top-level files
This is semantically cleaner than arbitrary-depth recursion, and lets us
stop worrying about hyphenated path conflicts.
2021-04-10 02:26:32 +02:00
fang
1411e08944
clay: specify target type for /~ results
Clay will nest-check the results and put a homogenous map into the
subject.
2021-04-10 01:59:26 +02:00
Logan Allen
5d16911f69 eyre: use font-display:swap; in login page 2021-04-09 16:02:55 +00:00
fang
62d7281156
clay: add /~ ford rune, as /= for directories
Hoon files may want to import nouns from all files in a given directory.
/~ lets you do so, importing as a (map @ta *) (but with typed values).

Note the description as "directories" here, instead of "path prefix".
The behavior, as implemented, will not include /path/hoon for /~  /path,
instead only including /path/more/hoon and more deeply nested files.
This seems to be, generally, the behavior you want, for example when
importing from /app/myapp/* for /app/myapp/hoon.

Actually using the resulting map requires some manual casting, which is
not ideal. Some code style improvement work remains to be done as well.
2021-04-09 01:49:14 +02:00
fang
1ec5e5acfb
hoon: add +stap, path parser
And cleans up a bunch of locally hand-written implementations of it.
2021-04-07 21:14:13 +02:00
Ted Blackman
06faf0b13c gall: print on missing request for ack 2021-03-31 14:54:28 -04:00
Philip Monk
820aee0478
zuse: strip ~ from ships in enjs 2021-03-28 01:58:21 -07:00
Philip Monk
fda5e4b361
zuse: hack enjs to speed up ship printing
In +en-json, the vast majority of our time is in +jesc (json string
escaping).  Since ships will always be string-safe, we pretend they're
numbers to bypass the escaper.  This saves about a second on initial
landscape load.
2021-03-28 00:59:08 -07:00
Philip Monk
a777567bb6
eyre: faster wain-to-octs conversion
Avoid allocating hundreds of thousands of cells when giving large
requests.  This took the footprint of this function on initial landscape
load from 1 second to 100 ms.
2021-03-28 00:57:33 -07:00
Philip Monk
a1647a9767
clay, eyre: add profiling hints 2021-03-28 00:50:25 -07:00
Philip Monk
7b55097ef4
hoon: memoize rend:co
We commonly print many names in a row, often the same ones.  For
example, on landscape's initial load, we send all the members of all the
groups we're in, and there's substantial overlap.

At least half the cost is in +fein, which is not currently jetted, but I
believe there's an old jet in the git history.
2021-03-28 00:21:30 -07:00
Liam Fitzgerald
746ece51ce
clay: allow numbers in +segments 2021-03-19 10:05:06 +10:00