Commit Graph

1416 Commits

Author SHA1 Message Date
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
Logan Allen
dd6eeccdae zuse: update names of +subset to +lot, +peek to +pry, remove unnecessary comments 2021-04-28 16:12:46 -05: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
fang
ba3a62f958
zuse: fix off-by-one in +wail:klr:format 2021-04-21 00:50:11 +02: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
2c837da6fa
zuse: add additional stub utilities in +klr
+wail, for overwriting part of a stub, starting at the given index,
extending it using the specified character if the index is past the end
of the stub.

+pact, for merging sequential stub sections with identical style.
2021-04-17 01:42:00 +02:00
fang
95c3a51ba1
zuse: make +slag:klr:format match +slag's behavior
Previously, if the given index was beyond the stub's content, it would
return the entire stub. Now, it correctly returns the empty stub.
2021-04-17 01:31:40 +02:00
fang
a09bb86cc6
dill: resolve review questions 2021-04-14 20:35:47 +02: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
fang
1c6d5ea341
dill: remove viewers when deleting a session
We do not allow subscribing to non-existent sessions, so we should not
allow staying subscribed to deleted sessions.
2021-04-05 22:49:28 +02:00
fang
33865ca87a
dill: add scry endpoints for session discovery 2021-04-05 22:42:07 +02:00
fang
d93e9c6dd4
dill: store width for session when it changes 2021-04-05 22:41:46 +02:00
fang
91f32ee098
dill: reify sessions interface
Implements tasks for creating and deleting new sessions, and allows
terminal handler agents to distinguish between sessions.

Includes bits of preparation in drum to more fully support multiple
distinct sessions, but doesn't get it all the way there just yet.
2021-04-05 22:37:38 +02:00
fang
5ef68d38c7
gall: stop sending %onto
Gall would send %onto gifts to notify about app updates and update
failures. This would end up in dill, which printed some appropriate
text.

Here, we make gall responsible for doing this printing itself (by
having it explicitly ask dill to print some tape/tank), instead of
relying on the receiving end of some bespoke notification protocol.
2021-04-04 17:22:41 +02:00
fang
c4f470ec15
dill: properly support %talk, tanks printing
Also allowing for sequences of tanks. (Not to be confused with +tang,
which has stack trace/reverse-order semantics.)
2021-04-04 17:15:36 +02:00
fang
7e2cc77ae0
clay: explicitly ask dill to print changelist
Instead of emitting a "debug message" gift and hoping dill picks it up
for printing.
2021-03-31 22:28:22 +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
fang
49a991e40e
term: final +belt tweaks
The previous version allowed for redundant values (both [%bac ~] and
[%key ~ %bac ~] for example), had an odd constraint in @cF, and relied
unnecessarily on $<.

Also rewords some of the belt and blit descriptions.
2021-03-19 23:56:51 +01:00
Liam Fitzgerald
746ece51ce
clay: allow numbers in +segments 2021-03-19 10:05:06 +10:00
Joe Bryan
19d5bd0de4 ames: gate "fragment crashed" printf on msg.veb 2021-03-18 17:04:08 -07:00
Joe Bryan
549c5e5db9 hoon: update seminoun bunt to be fully blocked 2021-03-17 14:21:58 -07:00
fang
4b7f05c681
dill: rename %lin to %put
It's no longer strictly a full line of screen content, instead more
accurately described now as "put text at cursor".
2021-03-13 02:20:00 +01:00
fang
2861de983b
dill: replace %ctl and %met belts with %key
Previously, we relied on foolish hacks, like [%met %bac], to send
"special" keystrokes with modifiers.

This updates the belt type to have %key, which represents a single
keystroke, with any combination of modifier keys.

Note that this has overlap with %txt to some extent. [%key ~ 'a'] should
be considered equivalent and preferred to [%txt 'a' ~], but updating
existing usage is left to a later commit.
2021-03-13 02:19:36 +01:00
J
ef1b125c3e zuse: fix time fix regression
Fixes #4598.

#4474 made the JSON time conversion no longer invertible, which caused
problems for chat, which uses message timestamp in milliseconds as a key
-- so chat would send a message with ms timestamp x, it would get
encoded as @da x, but then when it went back through the conversion to
milliseconds, it would often (not always) get encoded as x-1.

I still do not fully understand why this is -- and why it doesn't seem
to be a problem with seconds based on cursory testing -- but integer
multiplication and division generally do not invert. And adding a half a
millisecond to the input date before converting it resolves the issue
and makes the functions invertible.

I added a regression test, so hopefully the next courageous adventurer
who winds up here after wondering why +unm looks funny will have a
safeguard against some of the mistakes I made.
2021-03-12 20:06:10 +00:00
fang
da5177aeac
Merge branch 'master' into m/next-gen-term 2021-03-10 01:19:00 +01:00
Ted Blackman
b55417a1c3 clay: remove +bunt from marks 2021-03-05 16:53:35 -05:00
Philip Monk
f5ce79da9d
marks: fixup
Many of the marks were broken, and staticizing the marks revealed this.
This makes them build.
2021-03-04 19:21:34 -08:00
Philip Monk
a0146f4a44
clay: add %e, %f requests
For static naves, casts respectively
2021-03-04 18:28:16 -08:00
Philip Monk
4a066c8d4d
clay: fix upgrade 2021-03-04 13:41:07 -08:00
Philip Monk
137f1cdff3
Merge remote-tracking branch 'origin/ted/static-clay-3' into release/next-sys 2021-03-03 18:42:44 -08:00
Philip Monk
6215137ed5
Merge remote-tracking branch 'origin/ted/ordered-map-fix' into release/next-sys 2021-03-03 18:20:33 -08:00
Philip Monk
6e3d1680a7
Merge remote-tracking branch 'origin/master' into release/next-sys 2021-03-03 17:54:57 -08:00
Philip Monk
413413b70c
zuse: traverse always delete 2021-02-26 21:03:20 -08:00
Philip Monk
5ac70ec974
ames: reset num-live to actual number of live packets 2021-02-26 20:53:27 -08:00
Ted Blackman
4c190eb2e9 zuse: ordered-map minor cleanup 2021-02-26 22:39:41 -05:00
Ted Blackman
ccc704b22e zuse: remove unused +nup:ordered-map 2021-02-26 22:38:04 -05:00
Ted Blackman
fcbb70de9e zuse: actually fix ordered-map +traverse this time 2021-02-26 22:37:11 -05:00
Ted Blackman
2442f9bb93 zuse: fix ordered-map delete many 2021-02-26 21:42:22 -05:00
Ted Blackman
04ea4c78b2
ames: +on-hear-shut remove dead code 2021-02-26 16:55:26 +10:00
Ted Blackman
ccea39f865
ames: fix comet handshake 2021-02-26 16:55:24 +10:00
Ted Blackman
9636b889aa clay: speed up +checkout-changes 2021-02-24 14:43:35 -05:00
Ted Blackman
0452eb92f2 Merge branch 'release/next-sys' into HEAD 2021-02-24 13:26:51 -05:00
Ted Blackman
ce61d49ef9 clay: fix |mass; some renaming 2021-02-24 12:59:13 -05:00
Ted Blackman
19bf227428 clay: remove debug artifacts 2021-02-24 12:44:08 -05:00
Ted Blackman
d447e70b09 clay: fix /% parser; clean up unit tests 2021-02-24 12:18:50 -05:00
Jōshin
92a0b5eadf zuse: simplify +di/du:dejs:format 2021-02-23 19:46:21 +00:00
Jōshin
9e69892631 zuse: time conversion fixes
State before: in chrono:userlib, there were second-resolution
@da-to-unix and unix-to-@da functions. In en/dejs:format, there were
millisecond-resolution @da-to-unix and unix-to-@da functions. The
@da-to-unix path in time:enjs confusingly rounded to the nearest
millisecond, meaning millisecond n was a label for [n-0.5, n+0.5) rather
than [n, n+1).

This adds a millisecond-resolution @da-to-unix and unix-to-@da to
chrono:userlib, and a second-resolution conversion to en/dejs:format.
It makes use of the chrono:userlib functions in en/dejs, and doesn't do
any rounding.

Backwards-incompatible changes:

- made unt:chrono:userlib take a @da rather than @.
2021-02-23 19:46:21 +00:00
Ted Blackman
9bf6c6136a clay: fix mark +grad delegation bug 2021-02-22 14:35:57 -05:00
fang
7e2a6efd70
Merge branch 'release/next-sys' into m/next-gen-term 2021-02-19 19:43:40 +01:00
Ted Blackman
674b5edb1f Merge branch 'release/next-sys' into ted/gall-q 2021-02-19 13:42:58 -05:00
fang
a3acc70384
Merge branch 'master' into release/next-sys 2021-02-19 19:31:24 +01:00
Ted Blackman
eb56fbd3f4 ames: shorten error printing; update pill 2021-02-19 11:54:34 -05:00
Ted Blackman
d317a0847b gall: crash properly on failed %boon from ames 2021-02-18 21:51:44 -05:00
Ted Blackman
b702505ac8 clay: print if +read-at-aeon crashes 2021-02-18 21:50:59 -05:00
Ted Blackman
473a520b27 ames: more informative printing 2021-02-18 21:47:02 -05:00
fang
a4e20facb7
term: decouple line clearing from line printing
This simplifies the behavior of individual blits, making their
implementation simpler and giving arvo more control.

This lets us write on top of existing content, instead of completely
replacing the affected row. Additionally, lets us draw starting at the
cursor position, instead of the leftmost column.

To retain the previous behavior, preface with [%hop 0] to move the
cursor to the start of the line, [%wyp ~] to clear the existing content,
and finally your %lin to render it.
2021-02-18 01:44:26 +01:00
Ted Blackman
22295f08fb gall: fix request queue desynchronization bug 2021-02-17 17:57:44 -05:00
Ted Blackman
ad20ddb1d4 clay: added mark runes; can boot off solid pill 2021-02-17 14:31:20 -05:00
fang
00dd0656e8
zuse: move styx engine into zuse
styx and stub are both defined in lull. Having functions for dealing
with them in zuse rather than userspace is fitting.

While not a _common_ format per se, it still seems best at home in
+format, instead of on its own.
2021-02-16 17:33:58 +01:00
fang
2e7afdd543
lull: remove old/unused dill tasks
Some of the remainder are still _presently_ unused, but point at
functionality we want to support again in the near future. The ones
removed here are either redundant or have no clear purpose.
2021-02-16 17:33:57 +01:00
fang
53cd568af9
dill: printf when rendering to non-default session
As per the note a couple lines up, +fore depends on drum semantics being
active. We can only guarantee those being present for the default
session, not for any others. So, we print a warning when appropriate.
2021-02-16 17:33:56 +01:00
fang
9f0166914f
dill: tidier gall %onto print
Before recent dill changes, this wouldn't always be visible, since it
would get drawn in place of (and subsequently get overwritten by) the
prompt. Now that it displays consistently again, it should look a bit
better than just a noun dump.

This is somewhat redundant with gall's own "reloading agent" printfs,
but you know what they say: printfs don't real!
2021-02-16 17:33:48 +01:00