Commit Graph

19870 Commits

Author SHA1 Message Date
Fang
b4a72f3160
vere: make note of litte-endianness dependency 2020-08-06 23:56:05 +02:00
Fang
c142184cd4
vere: add 'ax' to motes.h 2020-08-06 23:47:35 +02:00
Fang
61c64584aa
vere: don't crash the process on scry crash
The fake result introduced in 34cfc9a6f isn't very useful if the process
ends up crashing anyway...
2020-08-06 22:02:41 +02:00
Fang
34cfc9a6fc
vere: when scry crashes, produce fake result of ~
In the long term, we don't want to pretend we got "no result", and
handle crashes by whatever behavior is appropriate.
In the short term, we don't want to burden callsites with crash
handling, so we punt on the problem by producing ~.
2020-08-06 20:33:10 +02:00
Fang
00eb249e55
vere: rename u3_lord_peek_pico to u3_lord_peek 2020-08-06 20:24:43 +02:00
Fang
f8601d9a6a
vere: move u3_pico lifecycle functions into ward.c
Now we free the struct _and its nouns_ in the same place, rather than
transferring the nouns into lord.c, but still freeing the struct
locally.
This means the lord needs to explicitly retain the nouns in the u3_pico.
2020-08-06 20:22:46 +02:00
Fang
25a4806439
vere: reduce "dropped forwards" printf frequency 2020-08-05 16:42:25 +02:00
Fang
78529c926f
vere: don't decrement prematurely
Previously, we decremented len_w eagerly, regardless of whether
u3_auto_next succeeded in getting a next event or not.
Now, we only decrement len_w if we actually managed to get a next event,
resulting in better behavior in the "no next" case.

Also lightly touches up style a couple lines down, for consistency.
2020-08-05 16:40:27 +02:00
Fang
7aecd3064e
vere: store lanes as structs, not nouns
This was the last bit of forwarding state we were still keeping on the
loom. It's all C structs now.
2020-08-05 01:38:00 +02:00
Fang
8a7aca15db
vere: improves ames.c code style
Avoid intermediate noun allocations, superfluous typedefs, constant
calculations, etc.
2020-08-05 01:29:37 +02:00
Fang
b5a9a7d538
vere: move scry api into pier.c, interleave events
Scries were being prioritized over events, in the IPC queue. If scry
requests came in faster than we could process them (as is easily the
case for ames forward requests), this would cause scries to completely
clog the IPC queue, preventing any events from being processed at all.

The short-term solution implemented here is to simply alternate between
scry requests and events when building/sending a work batch.

To accomplish this, we separate scry requests into their own queue. We
keep this in pier.c, and pass them on to lord.c interleaved with regular
events in _pier_work_send.

The interleaving of regular events (as opposed to doing scries with the
highest priority) complicates the situation around auto-filled scry
cases (for scrying at "the latest timestamp").
To ensure we're always scrying at a sane latest timestamp, we keep a
queue of u3_pico, instead of fully-qualified scry requests. Where
necessary, lord.c fills in the missing path elements right before
sending it over the pipe.
2020-08-05 01:24:01 +02:00
Fang
71a0e61c2e
vere: fix missing u3z 2020-08-01 01:05:33 +02:00
Fang
3af8c7c88b
vere: keep pending forwards out of loom
Use C structures for storing the packets-pending-forward, instead of
keeping them around as nouns.

Also adds a check to make sure the content is cue-able, dropping the
packet early if it isn't.
2020-07-28 01:43:07 +02:00
Fang
176ed23c85
vere: parse packet header only once
Instead of picking out the protocol version separately from building
the u3_head struct, parse into that struct once, and then use that going
forward.
2020-07-27 17:24:33 +02:00
Fang
231ea7715d
vere: include forwarding and filtering in stats
Print statistics for recently added behavior in _ames_io_info.
2020-07-27 16:56:51 +02:00
Fang
c2df8f49d0
vere: fix refcounting in _ames_forward
Make sure we fully lose the list of lanes that's passed in, not just the
individual items.
2020-07-27 16:36:35 +02:00
Fang
eb836a2dc5
Merge branch 'release/next-vere' into m/stateless-forward 2020-07-24 15:06:38 +02:00
Joe Bryan
c96705e755 vere: bumps urbit version to v0.10.8 2020-07-23 18:15:35 -07:00
Joe Bryan
f87aa03d0b pill: updates all 2020-07-23 16:44:17 -07:00
Joe Bryan
9e77535568 Merge branch 'master' into release/next-vere
* master: (117 commits)
  contact-store: restore /~/default contacts
  contact-hook: resubscribe on correct paths
  metadata: handle OTA correctly
  release: urbit-os-v1.0.30
  group-store: remove scries from OTA logic
  release: urbit-os-v1.0.30
  MAINTAINERS: amend for post-fusion
  ames: add scry endpoint for forward lanes
  ames: improve scry interface
  chat, publish, contacts: fix OTA bugs
  trouble: report glob state
  clay: ignore extraneous /sys/lyv results
  zuse: added docstring and warning
  release: urbit-os-v1.0.29
  groups: correct line-height on group items
  launch: use mono for base hash
  interface: don't require urbitrc for build:prod
  maintainers: add glob-making instructions
  interface: amend disconnect copy
  metadata-store: migrate contact paths
  ...
2020-07-23 16:08:09 -07:00
Joe Bryan
de9de3fde8
Merge pull request #3064 from urbit/ipc-redux
ipc redux
2020-07-23 15:26:09 -07:00
Joe Bryan
1953e4e2b3
Merge pull request #3099 from urbit/philip/compact
Memory compaction
2020-07-23 14:53:52 -07:00
pilfer-pandex
88ee19ae13
Merge pull request #3147 from urbit/pp/king-bounded-ames
king: drop ames packets when >1k are unprocessed
2020-07-23 13:56:38 -07:00
pilfer-pandex
942e60670e king: fix ames tests 2020-07-23 13:17:02 -07:00
Joe Bryan
6a0feb258a
Merge pull request #3154 from urbit/jb/recompact
vere: refactors new memory compaction
2020-07-23 12:49:33 -07:00
matildepark
9b97ef25bd
Merge pull request #3149 from urbit/mp/fusion-maintainer
MAINTAINERS: amend for post-fusion
2020-07-23 15:11:21 -04:00
Fang
6e1979b720
Merge pull request #3155 from urbit/lf/groups-ota-metadata
ota hotfixes
2020-07-23 13:15:40 +02:00
Liam Fitzgerald
5fd268ced8 contact-store: restore /~/default contacts 2020-07-23 17:54:45 +10:00
Liam Fitzgerald
70b0336d22 contact-hook: resubscribe on correct paths 2020-07-23 17:42:41 +10:00
Joe Bryan
72cadc2b0a u3: note that u3a_rewrit* doesn't yet support south roads 2020-07-23 00:01:04 -07:00
pilfer-pandex
7eddb89b70 king: it was too clever of me to use stateTVar; compiler can't help 2020-07-22 22:52:46 -07:00
pilfer-pandex
8e14fb8086 king: fix comment about ames q behavior 2020-07-22 22:50:22 -07:00
pilfer-pandex
4c9cbb5d19 king: ames bounded q, now with logging and fifo 2020-07-22 22:48:35 -07:00
Joe Bryan
eb2350c785 serf: tweaks |pack and |mass printfs 2020-07-22 22:43:28 -07:00
Joe Bryan
d8db01a57b u3: moves u3a_compact to u3m_pack, refactors internals 2020-07-22 22:20:03 -07:00
Liam Fitzgerald
0eb3b2e77f metadata: handle OTA correctly 2020-07-23 15:02:54 +10:00
Joe Bryan
bbf0c51201 u3: refactors u3m_reclaim() into noun modules, works on any road 2020-07-22 21:52:42 -07:00
Matilde Park
a696cf38f2 release: urbit-os-v1.0.30 2020-07-22 22:19:22 -04:00
matildepark
bc22c25ff8
Merge pull request #3152 from urbit/lf/groups-ota-hotfix
group-store: remove scries from OTA logic
2020-07-22 22:09:47 -04:00
Liam Fitzgerald
9f46f4ce24 group-store: remove scries from OTA logic 2020-07-23 01:54:56 +00:00
Matilde Park
8bd13c8ed7 release: urbit-os-v1.0.30 2020-07-22 14:50:51 -04:00
Matilde Park
0d68f3f901 Merge branch 'release/next-sys' 2020-07-22 14:31:17 -04:00
Matilde Park
038a36dbb1 Merge branch 'release/huck-hotfix' 2020-07-22 14:31:09 -04:00
Fang
d6a39c1311
Merge pull request #3059 from urbit/jb/m/behn-scry
arvo: ames & behn scry interface updates
2020-07-22 19:55:16 +02:00
matildepark
eb94376cac
MAINTAINERS: amend for post-fusion 2020-07-22 12:49:32 -04:00
matildepark
6b6a77cb50
Merge pull request #3135 from finled-bansel/fix-moon-rendering
landscape clock: render sun+moon after night
2020-07-22 12:27:41 -04:00
matildepark
5108814645
Merge pull request #3134 from urbit/mp/babel-build
interface: add babel-transform-runtime
2020-07-22 12:16:55 -04:00
matildepark
7c4d754397
Merge pull request #2937 from urbit/lf/groups-refactor
groups refactor: one store to rule them all
2020-07-22 11:02:57 -04:00
Fang
3955d1092b
ames: add scry endpoint for forward lanes
Finds the lane for that peer, or their galaxy. Intended for use in the
runtime, to enable stateless forwarding.
2020-07-22 16:33:34 +02:00
Fang
4ea98e569f
ames: improve scry interface
No longer abuse the desk field, instead making use of the path. Reject
any scries outside of the local ship, empty desk and current time as
invalid.
2020-07-22 16:30:47 +02:00