Blog New release of the Urbit binary with lots of new features
Jeremy Tunnell at
This release includes a native Windows build, compatibility with Apple M1
(via rosetta), a new urbit crypto library (urcrypt) and rewrites of the
crypto jets, support for new "multipass" keyfiles, performance improvements
in IPC deserialization, fixes for a serious bug in noun equality and some
minor memory leaks, and general CI improvements.
Native Windows build
Thanks to contributor ~locpyl-tidnyd, we now have a general platform
compatibility layer (and alternative to nix for building dependencies),
allowing us to distribute native Windows binaries built with MinGW.
Apple M1 compatibility
Also thanks to ~locpyl-tidnyd, our official binaries for Darwin can now
be run on both Intel and M1 (Apple Silicon) Macs. And native M1 binaries
can be built using homebrew.
urcrypt
Thanks to ~fodwyt-ragful, we have a library encapsulating all our crypto
dependencies, new jets for Keccak, and rewrites of the existing crypto jets.
Multipass
Urbit keyfiles now support multiple private keys, paving the way for fast
bootstrap in a Layer2 world.
Bugs
Deep trees of non-equal nouns were erroneously considered equal in certain
conditions. More egregiously, they were then made to be equal through
memory unification (which exists to increase structural sharing). This bug
was introduced a year ago through refactoring (and insufficient testing thereof)
-- thanks to ~wicdev-wisryt for tracking it down.
Memory-leak checking in CI was much weaker than expected, as it only ran on
the persistent results of virtual computations. Thanks to ~fodwyt-ragful for
finding and fixing both the leaks that had sneaked through and the testing
regime to prevent them going forward.