主要观点:Spritely Goblins 发布 0.13.0 版本,包含对象持久化和更易读写的 IO 两大新功能。
关键信息:
- 发布了分布式编程环境 Spritely Goblins 0.13.0 版本,适用于 Guile 上的 Goblins。
- 新的对象持久化机制“aurie”可保存运行中的 Goblins 程序部分并稍后唤醒,能升级保存的对象,还利于实时黑客操作。
- 举例说明在 Terminal Phase 游戏中利用持久化系统让玩家可继续上次的游戏状态。
- Goblins 的持久化系统采用“手动持久化”方式,仅保存需要的信息,且每个持久化对象都有版本标记。
- 简单的“cell”演员通过将
define
改为define-actor
可转换为持久化兼容的细胞。 - 持久化系统利用 Goblins 的事务性,仅序列化事件循环中处理的消息之间已更改对象的增量。
- 引入新的
^io
演员,简化了 Goblins 的 IO 系统,可包装保护的 IO 资源。 - 包含其他 bug 修复和小功能,可通过 Guix 获取最新版本。
- 持久化系统有较长历史,其前身是独立的 Racket 版本库,经过 Jessica Tallon 改进,借鉴了相关理念。
- 展望未来 0.14 版本将专注于网络工具改进和生活质量提升。
重要细节: - 发布的版本没有 OCapN 功能的主要协议更新,也没有伴随 Racket Goblins 的发布。
- 持久化系统在不同 Lisp 和 Smalltalk 常见的持久化系统基础上有不同,不会保存过多不必要信息。
define-actor
宏简化了编写大多数持久化对象的过程。- Goblins 的序列化系统遵循能力安全属性,对象不能描述超出自身访问权限的信息。
- 获取最新 Guile Goblins 版本可使用
guix pull
和guix install guile-goblins
命令,也可参考 README 了解更多获取方式。 - 社区地址为community.spritely.institute。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。