Commit Graph

1063 Commits

Author SHA1 Message Date
Joe Bryan
25cea09fd1 hoon: refactors |re for clarity 2020-11-20 15:23:55 -08:00
Joe Bryan
c9db96382a hoon: removes $plum from $tank 2020-11-20 15:23:55 -08:00
Joe Bryan
5f160a233e hoon: removes utf32 hacks and \/ windowing from |re
a tape is just a list of utf8 bytes, it's never save to split one
at an arbitrary position. this is exactly what \/ windowing did,
so i had hacked in to/from utf32 conversions to prevent splitting
multi-byte characters. that is dumb and slow, so it's now gone.
2020-11-20 15:23:55 -08:00
Joe Bryan
4f43831095 Merge branch 'master' into na-release/next-vere
* master: (390 commits)
  glob: update to 0v4.fpa4r.s6dtc.h8tps.62jv0.qn0fj
  notifications: prevent safari shrinkage
  glob: update to 0v5.91i1u.1g535.t3de3.6c3ih.fanmv
  Sidebar: loosen property access
  launch: loosen property access in unread count
  notifications: fix scroll to load
  glob: update to 0v1.pak02.pfla3.gh56f.qhc6h.3h881
  inbox: fix graph resource redirects
  inbox: fix link routing and rendering
  glob: update to 0v4.3fbh4.p7j6i.2pi9g.d1ltq.5u7uu
  hark-fe: fix crash
  hark: update graph marks for editable comments
  graph-store: change atom to %1 for all migrated comments
  glob: update to 0v5.67obv.15auf.c2rc7.jpcu2.iain3
  inbox: correct notification order
  inbox: redirect invites correctly
  publish: Restore basic 'add writers' form
  interface: show currently editing comment as pending
  landscape: preclude dropdown duplicates on exact match
  interface: links and publish comments both work
  ...
2020-11-19 14:02:13 -08:00
Philip Monk
eadc63938c
Merge remote-tracking branch 'origin/release/next-dill' into release/next-sys 2020-11-17 21:54:50 -08:00
Philip Monk
08ebacd430
Merge branch 'pr' into release/next-sys 2020-11-17 19:00:09 -08:00
Philip Monk
d48e296f4f
Merge pull request #3525 from urbit/jb/restage-to-wain
arvo: accept embedded nulls in to-wain:format
2020-11-17 18:33:41 -08:00
Philip Monk
e8e970d0ea
Merge pull request #3812 from urbit/ted/no-impostor-comets
no more impostor comets
2020-11-17 18:29:46 -08:00
John Franklin
756c94aeb6 hoon: update glyph names (continued) 2020-11-14 23:08:52 -06:00
Joe Bryan
bac545e23c Merge branch 'release/next-vere' into na-release/next-vere
* release/next-vere: (1369 commits)
  nix: fixes `shellFor` nix-shell helper
  vere: print error and exit if stdin is not a tty
  build: silence service account activation output
  build: minor refactoring of haskell-nix overlays
  build: move darwin install_name_tool fixup from vere to king haskell
  u3: fixes incorrect double ref-counting in |ff jets
  u3: removes unused `Exit` variable
  u3: removes obsolete bail:need assertion
  u3: refactors fatal exception handling in u3m_bail()
  build: remove {sha256,md5} output for push-storage-object effects
  build: add log message when destination object already exists
  build: force google-cloud-sdk to use python3
  build: adding support for hercules ci effects
  build: remove push-to-storage for ivory, brass, and solid pills
  pill: rebuild solid pill with %lens included in lite boot apps
  arvo: run %lens when lite boot (-l) is specified
  build: expose configurable arguments when booting/testing fake ships
  build: ensure urbit tests are run with the -g argument
  vere: ensure debug symbols aren't stripped by default (by nix)
  build: remove from-scratch ropsten pill builds on ci
  ...
2020-11-11 18:03:01 -08:00
fang
3ca993df07
eyre: clog exclusively for %facts
Eyre's clog logic was a tad inconsistent about "only facts" vs "not poke-acks".
This makes it consistently say "only facts" when it comes to clog-related logic.
Yes, in theory this means %watch-acks and %kicks can build up endlessly, but
those should take up negligible space compared to %facts.

Should fix any oddball cases of crashes here that #3835 didn't already catch.
2020-11-10 22:06:28 +01:00
fang
9cd9448bcd
dill: remove ducts from %view and %flee interface
This was a little bit too crummy. Instead, we put in a placeholder of ~,
which should be forwards-compatible with atomic session identifiers,
where ~ identifies the default session.

Additionally touches up the herm wires/paths to stick to the above more
closely.
2020-11-10 19:33:11 +01:00
fang
485a15c913
dill: add scry endpoints for current line & cursor
This will let connecting clients get the rendering-relevant parts of the
current state of the session on demand.
2020-11-05 20:13:03 +01:00
fang
83d46dae88
dill: fall back to default session
This lets us support the "random userspace app sending dill belts".
Ultimately, we'll want to be able to specify a session identifier
alongside the belt, instead of strictly relying on the duct.
2020-11-04 20:12:01 +01:00
fang
eb824f1866
dill: allow watching output of arbitrary sessions
Adds a %view task, which opens a subscription on the output sent to the
specified session. %flee closes the same.
Whenever dill sends a blit to the session, any subscribers get the
output also.

The structures here will become more reasonable once we replace ducts
with proper dill session identifiers.
2020-11-04 20:11:42 +01:00
fang
18494f8a9d
dill: if styled prompt has no style, emit as plain
People using older runtimes might not support the %klr blit. It's not
uncommon for prompts without style to get passed in as %pom though, so
here we catch that case and turn it into a %pro, which gets rendered as
a traditional %lin.
2020-11-04 17:28:05 +01:00
fang
b96e071eb2
Merge branch 'release/next-sys' into release/next-dill 2020-11-04 17:25:35 +01:00
fang
c992e4ce9d
eyre: forego <atom> in favor of (scow %aura atom)
Pretty-printing is expensive, yet we do it whenever we construct the cookie
string, at least once (but usually twice) per authenticated request.

Here we call out the the specific to-tape functions we need, instead of relying
on the pretty-printer for converting... tapes to tapes, among other things.  
The primary gains come from the cookie-related instances, we update the others
mostly for good style.

For the "receive request and immediately send response" case, that is processed
synchronously within eyre (ie, client sends channel ack), speeds thing up by
roughly 55%.
2020-11-04 01:02:11 +01:00
fang
37c0383a79
Merge pull request #3864 from urbit/m/ream-to-zapcom
clay: replace ream with nouns and !, zapcom
2020-11-03 21:55:49 +01:00
fang
acf0f8d0e1
clay: %limb instead of %wing 2020-11-03 16:35:28 +01:00
pkova
b114956870 zuse: improve url extension parsing
Previously extensions ending with numbers such as .woff2 were not recognized.
2020-11-03 15:54:10 +02:00
fang
e7afc51018
clay: replace ream with nouns and !, zapcom
Motivation for the change is performance improvements on the un-`^~`d uses of
ream. Parsing turns out to be slow, making ream slow in turn. So we construct
the hoon ast manually instead.

!, is arguably better style than ream, since it doesn't require a ^~ for static
input, and lets syntax highlighting function properly.

For the investigated case, in +get-cast's +grow flow, improves performance by
over 80%.
2020-11-03 00:27:10 +01:00
fang
a35cad457a
Merge pull request #3830 from urbit/m/respect-forwarded-more
eyre: respect protocol from Forwarded header
2020-10-31 00:38:41 +01:00
fang
f8a2235d6e
Merge pull request #3835 from urbit/m/silent-subs
eyre: ignore facts directly after clog
2020-10-29 22:13:04 +01:00
fang
42229657ca
eyre: respect protocol from Forwarded header
If the Forwarded header specifies the original connection is secure,
update the flag to reflect that, regardless of whether the connection
directly to the urbit was made securely.
2020-10-29 14:24:24 +01:00
fang
82dcad4c59
zuse: if empty, unpack header into empty list
Previously, would give a ~[{}] for the '' header. This makes it parse
that as "no entries" rather than "one entry without data".
2020-10-29 14:19:57 +01:00
Ted Blackman
56db7cdcda ames/zuse: require >64-bit comet addresses 2020-10-27 17:28:07 -04:00
Ted Blackman
fcf9cfbcdb ames/zuse: require >64-bit comet addresses 2020-10-27 17:20:25 -04:00
Philip Monk
f548deaff6
Merge pull request #3787 from urbit/philip/symbols
hoon: update glyph names
2020-10-26 18:06:53 -07:00
Joe Bryan
aa200cf25a
Merge pull request #3786 from urbit/jb/ames-peek-forward-lane
ames: updates forward-lane scry-handling to prevent routing loops
2020-10-26 11:56:23 -07:00
fang
93475aa756
eyre: remove fact-without-subscription printf 2020-10-26 15:52:39 +01:00
fang
828f88b737
Merge branch 'master' into release/next-vere 2020-10-26 14:54:06 +01:00
fang
26049a3da0
eyre: ignore facts directly after clog
When an application would send multiple facts during a single event, it
was possible for the first fact to trigger a clog, removing the
subscription and sending a quit, but then the second fact still getting
sent out at normal.

Here, we drop any facts for subscriptions we don't have registered in
state, which should only happen in the described case.
2020-10-24 11:45:21 +02:00
fang
b92cfdb242
eyre: produce moves in correct order
Because storing in reverse order means producing in reverse reverse
order.

The tests didn't catch this because they, too, were infected with the
"reverse moves" meme.
2020-10-24 01:48:51 +02:00
Philip Monk
fc15f0d735
Merge branch 'pr' into HEAD 2020-10-22 20:47:53 -07:00
Joe Bryan
da928bed10 ames: updates forward-lane scry-handling to match +send-blob 2020-10-22 17:37:46 -07:00
fang
5bebff3c38
eyre: kick subscriptions if fact conversion fails
This matches the behavior that gall uses for %watch-as subscriptions,
which eyre was using previously.
2020-10-19 19:17:58 +02:00
fang
1d4ee5a7b5
eyre: kick busy subscriptions if client not acking
In order to curb event queue growth when a client for whatever reason
isn't acking the events we send out, we implement a mechanism for
detecting such "clogging", and proactively kick subscriptions which are
adding too many events to the queue.

If the client hasn't sent an ack for ~s30, any subscription that accrues
more than 50 unacked %facts gets closed to prevent further buildup.

Upon reconnecting, the client will see %kick for the relevant
subscriptions and can open a new subscription as appropriate.

Includes a simple test for this behavior, and updates /app/dbug to be
able to display the newly tracked statistics.
2020-10-19 15:56:05 +02:00
fang
63b4fb3e19
eyre: simplify channel subscription storage
Instead of storing by "channel wire", store by request-id instead.
The channel wire was just the channel-id, request-id, and some cruft.
2020-10-19 00:48:18 +02:00
fang
7e5f29cfd2
eyre: convert facts to json manually
By doing a %watch instead of %watch-as %json for channel subscriptions,
we can hopefully make better use of noun deduplication, when storing
events in a channel's event queue until they get acked.
2020-10-18 16:31:35 +02:00
fang
8def1dbea8
eyre: store unacked events unserialized
Store the gall events from channel subscriptions as (vaseless) signs,
instead of serialized events. This should be smaller in memory, and
makes it more likely for noun deduplication to happen.

The cost is needing to reserialize upon channel reconnect, but this is
the less common case, and we don't expect it to be particularly slow.
2020-10-18 16:04:19 +02:00
Philip Monk
8cd72daf20
clay: speed up +find-merge-points
In certain cases +find-merge-points was very slow.  Specifically, the
`done` set was meant to avoid checking the same commit repeatedly, but
it didn't catch the case where a commit was added to the worklist that
was already in that worklist.

Secondly, the worklist was stored as a list but used as a queue, which
resulted in a lot of unnecessary welding.  We change it to a qeu.

Fixes #3735
2020-10-16 11:21:02 -07:00
Elliot Glaysher
170bede757
Merge pull request #3726 from urbit/kh-make-code
Simplify +code and implement it in KH.
2020-10-16 10:30:00 -04:00
Philip Monk
7e5c722c8f
Merge branch 'philip/link-upgrade' into release/next-sys 2020-10-15 14:34:05 -07:00
Philip Monk
d948d22a78
Merge remote-tracking branch 'origin/release/next-hoon' into philip/link-upgrade 2020-10-15 14:32:34 -07:00
Elliot Glaysher
9e2039ee2f arvo: Simplify the actual +code implemetation in jael. 2020-10-15 13:20:06 -04:00
pkova
75205466fe hoon: fix mis-compilation in wet gate subject access
Fixes #3600
2020-10-15 16:47:25 +03:00
Joe Bryan
45038ad7b1
Merge pull request #3689 from urbit/jb/clay-cancel-correct
clay: refactors +cancel-request, consistently accounting for TMI
2020-10-14 22:56:49 -07:00
Joe Bryan
c58c605ebe Merge branch 'release/next-vere' into jb/restore-treap-jets
* release/next-vere: (1707 commits)
  king: fix zig-zag in stderr logging
  u3: refactors +murn/+turn, removing unused variable
  u3: rewrites +skim jet with u3i_defcons()
  u3: rewrites +skip jet with u3i_defcons()
  u3: rewrites +skid jet with u3i_defcons()
  vere: updates ames to only print network send failures once
  u3: cleans up testing protocol, enables gc in mug tests
  u3: refactors and enables gc in jam tests
  u3: cleans up testing protocol, enables gc in hashtable tests
  u3: enables gc in ames and newt tests
  u3: initializes head/tail in u3i_defcons() (under U3_MEMORY_DEBUG)
  king: actually try shutting down the piers
  king: --serf="" is a host option, not a per ship option.
  u3: optimizes +wyt:in jet, gated by compile-time assertion
  u3: further optimizes +lent jet, gated by compile-time assertion
  u3: refactors allocator constants, adds u3a_cells and u3a_maximum
  u3: optimizes +lent jet, avoiding u3i_vint() while possible
  u3: moves cell allocation counter into u3a_celloc()
  u3: fixes memory leak introduced in +murn jet
  u3: fixes mismatches in +div and +dvr jets
  ...
2020-10-13 18:53:32 -07:00
Joe Bryan
9d5119b33f hoon: adds hints for likely-to-be-jetted list/treap/parser arms 2020-10-13 18:38:09 -07:00