有办法保存公共Lisp或Scheme的REPL状态吗?

有办法保存公共Lisp或Scheme的REPL状态吗?,lisp,scheme,save,common-lisp,Lisp,Scheme,Save,Common Lisp,有办法保存公共Lisp或Scheme的REPL状态吗 谢谢这取决于实现,但通常可以保存图像。但是请注意,一些引用外部资源的内容可能不可保存,例如连接到文件的流的状态或线程中的执行状态(尽管我相信scheme的一些实现允许可保存的连续性)。它不是语言本身的一部分。您的实现必须支持这一点。例如,有两个警告: 这堆东西被解开了 之后你不能继续(显然) 大多数方案实现都编译为C或其他中间格式,因此我知道没有任何方案提供保存当前图像状态的功能。不过大多数人都会编译二进制文件,所以如果你真的是这样的话,请

有办法保存公共Lisp或Scheme的REPL状态吗


谢谢

这取决于实现,但通常可以保存图像。但是请注意,一些引用外部资源的内容可能不可保存,例如连接到文件的流的状态或线程中的执行状态(尽管我相信scheme的一些实现允许可保存的连续性)。它不是语言本身的一部分。

您的实现必须支持这一点。例如,有两个警告:

  • 这堆东西被解开了

  • 之后你不能继续(显然)


大多数方案实现都编译为C或其他中间格式,因此我知道没有任何方案提供保存当前图像状态的功能。不过大多数人都会编译二进制文件,所以如果你真的是这样的话,请阅读你的实现手册

另一方面,CommonLisp通常以实现定义的方式提供此功能。 SBCL具有前面提到的功能,CCL具有。这是我使用的仅有的两个Lisp,因此如果您正在使用另一个实现,请务必查看文档

如果您想了解如何完成这项工作,请联系SBCL。对于CCL,请查看。那里的教程以如何保存生成的应用程序包的示例步骤结束


编辑:这是另一个,用于SBCL。

有许多方案实现可以保存图像。例如S48、SCM、MIT方案……我相信你的话,并予以纠正。如果你能为下一次用户来这里寻找这个问题的答案提供一些参考链接,那就太好了。