【问题标题】:Have some way to save the REPL state of Common Lisp or Scheme?有什么方法可以保存 Common Lisp 或 Scheme 的 REPL 状态吗?
【发布时间】:2010-10-18 14:24:32
【问题描述】:

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

谢谢

【问题讨论】:

    标签: lisp scheme save common-lisp


    【解决方案1】:

    大多数 Scheme 实现都编译为 C 或其他中间格式,所以我知道没有提供保存当前图像状态的方法。不过,大多数都会编译二进制文件,所以如果这就是您在阅读实施手册后真正想要的。

    另一方面,Common Lisp 通常以实现定义的方式提供此功能。 SBCL 有前面提到的save-lisp-and-die 功能,CCL 有save-application。这是我使用的仅有的两个 Lisps,所以如果您使用的是其他实现,请务必查看文档。

    如果您想了解如何完成此操作,请here's one 获取 SBCL。对于 CCL,请查看Apple Current Converter example。那里的教程以如何保存生成的应用程序包的示例步骤结束。

    编辑:这是另一个,easier example SBCL。

    【讨论】:

    • 有很多可以保存图片的Scheme实现。例如 S48、SCM、MIT 方案、...
    • 我会相信你的话,并纠正错误。如果您可以提供一些链接以供下次用户来这里寻找此问题的答案时参考,那就太好了。
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      您的实现必须支持这一点。例如,SBCLsb-ext:save-lisp-and-die,有两个注意事项:

      • 堆栈已展开,

      • 之后您无法继续(显然)。

      【讨论】:

        猜你喜欢
        • 2011-10-17
        • 1970-01-01
        • 2023-01-22
        • 1970-01-01
        • 2020-09-13
        • 2012-06-28
        • 2012-12-27
        • 1970-01-01
        • 2021-09-25
        相关资源
        最近更新 更多