Spritely Goblins v0.15.1 released!

David Thompson —

We are happy to announce the release of Goblins 0.15.1! This patch release includes many bug fixes, documentation fixes, and quality-of-life improvements made since the 0.15.0 release back in January.

Thank you to the Spritely community for identifying and reporting many of these issues! We’re thrilled to see more people trying Goblins for the first time. Big thanks to Jessica Tallon, who has done nearly all of the hard work sanding the rough edges for this release.

For more detail about the changes in this release, see the NEWS file.

Bug fixes

  • Fixed sending ghashes over CapTP that have actor references or other complex objects.

  • Fixed sending messages to far references in persistent vats.

  • Fixed thread-safety issues in CapTP garbage collection.

  • Fixed issue where severed connections to peers couldn’t be re-enlivened.

  • Fixed CapTP crossed hellos mitigation.

  • Fixed call-with-vat blocking the current vat’s event loop. It now returns a promise when called in this context.

  • Fixed prelay netlayer not reconnecting after severance.

  • Fixed prelay severance breaking local references.

  • Fixed on-sever for WebSocket netlayer on Hoot.

  • Fixed WebSocket error handling on Hoot.

  • Fixed (goblins ocapn netlayer base-port) and some of its dependencies not compiling with Hoot.

  • Fixed make install installing utility libraries that are only for the test suite.

Documentation fixes/improvements

  • Fixed documentation for spawning ^onion-netlayer and registering sturdyrefs.

  • Fixed the greeter example in the “Persistence Environments” section.

  • Added additional explanation of cooperative multitasking, event loops, and common vat pitfalls in response to user feedback.

  • Added example of passing an actor reference over OCapN.

Quality-of-life improvements

  • Added race* variant of race joiner in (goblins actor-lib joiners).

  • Vectors and non-list pairs (such as key/value pairs within association lists) are now serializable over CapTP.

  • Exported ^persistence-registry from (goblins) module.

  • The fake netlayer can now be halted, which is useful when testing.

  • Added on-sever support to the prelay netlayer.

  • Added a new procedure, timeout, for creating promises that resolve after a certain amount of time has passed. timeout can be found in the new (goblins actor-lib timers) module.

  • Suppressed warning for the override of Guile core binding spawn when (goblins) is imported.

Getting the release

As usual, if you're using Guix, you can upgrade to 0.15.1 by running:

guix pull
guix install guile-goblins

Otherwise, you can find the source tarball on our release page.

Get in touch!

For bug reports, pull requests, or just to follow along with development, check out the Goblins project on Codeberg.

If you're making something with Goblins or want to contribute to Goblins itself, be sure to join our community at community.spritely.institute! Thanks for following along and hope to see you there!