Skip to content

Groundwire 408k (Arvo)#7325

Draft
bonbud-macryg wants to merge 58 commits into
urbit:developfrom
bonbud-macryg:bm/groundwire/408
Draft

Groundwire 408k (Arvo)#7325
bonbud-macryg wants to merge 58 commits into
urbit:developfrom
bonbud-macryg:bm/groundwire/408

Conversation

@bonbud-macryg

@bonbud-macryg bonbud-macryg commented Apr 3, 2026

Copy link
Copy Markdown
Contributor

Draft PR, still some commits to trim.

Arvo side of urbit/vere#996

ziffee and others added 30 commits October 1, 2025 03:12
Co-authored-by: Tinnus Napbus <admin@tinnus-napbus.xyz>
Co-authored-by: cyclomancer <ygyzyx@gmail.com>
Fix aqua and update for GW comet networking
PR urbit#7257 changed atom rendering to include leading zeroes for `@da` in
the date segments. While it also changed the parser to accept both
formats (with and without leading zeroes), it is not always guaranteed
that the recipient of a `@da` string has a new, lenient parser.

Here, we add a `+co` implementation into `+h136` which retains the old
rendering behavior, making it easier for codebases to stay with
old-style `@da` rendering wherever they need to.
Previously, if the =^ "r" subhoon produced a fork that _could_ be a
cell, it would compile, even if some of the types in the fork are atoms.

Here, we introduce ^_, "set goal type", which checks that the second
subhoon nests in the type of the first subhoon, without changing the
second subhoon.

We update =^'s expansion to use ^_ to ensure the "r" subhoon always
produces a cell.

Note that we must update some existing =^ instances to be correctly
typed. We don't change their behavior, crashing seems largely intended
in those cases. (Most of them are just avoiding TMI.)

Co-authored-by: frodwith <frodwith@gmail.com>
Previously, adding negation to a type-checking conditional would prevent
type information from propagating into the resulting branches.

For example, the following would compile, instead of giving a mint-vain:

```hoon
=/  u=(unit)  ~
?>  !?=(^ u)
?-(u ~ %empty, ^ %value)
```

Here, we make sure `+chip` reads "into" negations, flipping the polarity
whenever we pass one. The existing `+chip` logic takes care of the rest.

We also add some tests for the affected and other type checking cases.

Co-authored-by: xiphiness <xiphiness@users.noreply.github.com>
Co-authored-by: frodwith <frodwith@gmail.com>
Suite C Crypto for GW (+crub replaced with +cric)
hoon: expose old +co behavior for `@da` backcompat
hoon: make +chip test through ?!
hoon: make =^ require cells at compile-time
Tinnus Napbus and others added 16 commits February 27, 2026 18:24
Now that the $egg types are part of its public interface, and especially
because they're kept as backups, we should help consumers work with
them. This becomes more pressing as the amount of historic egg types and
the complexity of upgrading them continues to grow.

Here, we move the adapters from eggs 15->16 and 16->20 out of gall and
into lull. Alongside these, we include the +of-farm and +on-path
engines, which feature in these adapters and are themselves relevant to
gall's public interface by virtue of working on data structures that
live inside the eggs.
gall: move egg migrations into lull
jael/ames: fix errors in +sign:as replacement logic
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants