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 ofrace
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!