Skip to content

urbit-os-v2.139

Choose a tag to compare

@pkova pkova released this 09 May 20:29
· 3198 commits to master since this release
781406b

Zuse 413, Lull 324, Arvo 238

%base hash: 0vf.j7ii7.mrsm8.on3l8.a37hc.ol5m6.qrquc.c6r21.h2084.7sgd6.sk5oa

Overview

This release contains a few big-ticket items:

  • Adds Fine, a remote scry protocol for performing scalable reads from other ships.
  • Allows Gall agents to put data into the scry namespace, which can be read using Fine.
  • Clay now uses Fine for distributing source code for public desks, including future kernel updates.
  • Adds a %set-response task to Eyre to serve a static response to an HTTP request from an in-memory cache in Vere, greatly improving scalability of serving data over the web.
  • Refactors JSON serialization and deserialization and adds jets, with a roughly 5x speedup.
  • Adds support for noun-based channels in Eyre, so HTTP clients can communicate with either JSON or nouns.

Breaking Changes

  • Apps that use JSON will need to drop compatibility for 414 and older Kelvins by default. The old %json mark from 414 will not compile on 413, and this will not be caught at build time.
    • Make sure the %json mark file in your app desk compiles on 413, and test your %json mark conversions to make sure they don't crash at runtime due to this change.
    • The json (de)serialization interface changed and is only backwards-compatible at the outermost layer (+en-json, +de-json). apex:de-json:html, part of the JSON parser internals, isn't there any more.
  • A number of arms and new tasks and gifts were added to Lull and Zuse.
    • These should not cause any issues unless your app code was expecting something very specific, such as if you were doing metaprogramming on Lull or Zuse (e.g. Pyro).
  • The %gall scry namespace has been changed:
    • %gu, to check if an app is an running, has a new path format:
      • old: .^(? %gu /=dojo=)
      • new: .^(? %gu /=dojo=/$)
    • Similar changes were made to all scries into Gall itself, but %gx scries into agents remain the same.
    • If you want to scry into the new per-agent namespace that was added in 413k, it follows the new format:
      • .^(* %gx /=pals=/$/my-pals)
  • The $case:clay datatype was removed ($case still exists, and has a new %uv tag for hash addressing in addition to the other three).
    • This affects lib/strandio, some threads, and anything user code that imported $case:clay.

Other Changes

  • Some bugfixes were made to Eyre's channel management.
  • Improvements to +vats printing and performance.
  • Fixes comment parsing after =* and +* runes.
  • Adds an API to +vang to toggle doccord parsing on or off.
  • Fixes a bug in Eyre that would show the login page when already logged in.
  • Sets the default rift to 0 on fake ships, instead of 1.
  • Adds "typed paths" to Hoon. A typed path can be constructed using a new #/foo/bar syntax.

What's Changed

Full Changelog: urbit-os-v2.138...urbit-os-v2.139