Skip to content

@jtobin jtobin released this Dec 4, 2019 · 228 commits to master since this release

This continuity-breaching release contains both Arvo and Vere changes, so users should update their binaries. After upgrading, users should create new piers.

Release notes:

  • Our networking vane %ames has been completely rewritten, its protocol has been simplified, and several new features have been added to it.

  • %ames now extends duct mechanics across the network (i.e., one can "pass" or "give" moves over the network, instead of just locally).

  • %ames now has a framework for communicating backpressure. Currently, the rule is to cancel subscriptions if we're "not responding; still trying" and there are at least five messages in queue, but this may be tuned as necessary.

  • %ames now supports arbitrary-length negative acks, remedying a possible cause of one-way connectivity.

  • %gall apps have been made "static," meaning that they're now simply instances of a particular type (namely, agent:gall in sys/zuse.hoon). All %gall apps now have exactly 10 arms to handle the different sorts of input they might receive, which is much more explicit.

    It's also now much easier to create library functions that augment apps. For example, lib/verb is a function from agent to agent that wraps the agent with printfs describing every piece of input it receives. It can be turned on or off with :app +verb.

  • "Bones," formerly obfuscated ducts, have been removed from %gall apps, and %gall itself is about a thousand lines shorter.

  • A new rune, !<, has been introduced. It takes a mold and a vase, dynamically checks that the type in the vase matches the mold, and produces the value typed with that type. In other words,

    !<(some-type !>(some-typevalue))

    is just value.

  • The concept of "threads" is introduced, replacing tapps/async. These are temporary processes that operate within what Haskell would call the IO monad with a process tree.

  • :ph has been rewritten from an app to a library used by threads. Each pH test is now an individual thread.

  • A number of helper utilities, mostly generators, have been added:

    • +keys ~zod -- print key revision numbers for a ship (e.g. ~zod)

    • :azimuth-tracker|kick -- short for:

      :azimuth-tracker|listen ~ %app %azimuth-tracker

    • +azimuth-block -- print most recently seen ethereum block (note we require 30 confirmation blocks)

    • +timers -- print all outstanding timers

    • |ames-verb %snd %for [..] -- tell %ames to print diagnostic information (the full list of diagnostic flags is in verb:ames in sys/zuse.hoon)

    • :app +verb -- tell :app to print what it's doing (applies to any app that includes lib/verb)

    • -hi ~zod -- ping another ship; same as |hi, except the result is visible in web dojo.

  • We've added a new implementation of +jam (our core serialization primitive), have significantly refactored the old variant, and have added a number of facilities for performing jammed state management.

  • Includes a full redesign of the Landscape chat interface, plus adds additional features for mobile & PWA use and easier join flows.

  • Many other improvements and fixes.

Contributions:

203  Ted Blackman <ted@tlon.io>
201  Philip Monk <phil@pcmonk.me>
 43  Joe Bryan <joemfb@gmail.com>
 43  Fang <git@fang.io>
 27  Logan Allen <loganallc@gmail.com>
 21  Jared Tobin <jared@jtobin.io>
 19  Isaac Visintainer <isaac.visintainer@gmail.com>
 19  Matilde Park <matilde@park.computer>
  4  Liam Fitzgerald <liam@urizen.co>
  3  John Franklin <jfranklin9000@gmail.com>
  2  Brendan Hay <brendan.g.hay@gmail.com>
  2  pkova <pyry.kovanen@gmail.com>
  1  yosoyubik <yosoyubik@gmail.com>
  1  Eric Fode <ericfode@gmail.com>
  1  Rob Nugen <rob@robnugen.com>
  1  Anton Dyudin <ohAitch@gmail.com>
Assets 4
You can’t perform that action at this time.