【问题标题】:Saving program image in guile在 guile 中保存程序图像
【发布时间】:2011-05-18 04:20:50
【问题描述】:

我听说大多数 lisps 都支持将正在运行的程序的图像保存到文件中。 guile 支持吗?

【问题讨论】:

  • 您的意思是将延续保存到文件中吗?我认为这将为阅读它的人澄清问题。
  • 我不认为他的意思是将延续保存到文件中,而是他想在 repl 中定义函数,保存解释器的状态,关闭解释器并重新启动机器或其他任何东西,然后打开repl,并加载图像文件,将 repl 恢复到他退出之前的状态。
  • 是的!这就是我想要的。我在 scm 方案解释​​器中找到了这个功能,但在 guile 中没有。

标签: scheme guile


【解决方案1】:

我认为与其他语言的互操作对于 Guile 来说是不可或缺的,因此解释器图像中有很多状态对 Guile 本身是不透明的。我最了解 Guile 将它用作 gEDA 中内置的方案解释器,所以你能想象不仅要保存所有的 CONS,还要保存 gschem 可能打开的所有 X 窗口?在 Guile 内部可靠地做是不可行的。 (而且我不确定即使在“有限”的情况下实施保存图像到文件是否是一个好主意。)

也就是说,最终您可以保存程序状态,但是由于程序边界如此多孔,文件描述符和内存映射从每个孔中泄漏出来,您很快就会意识到您必须保存整个计算机的状态。这是以“休眠”省电模式的形式完成的!我也意识到,这不是你想要的。

【讨论】:

    【解决方案2】:

    SBCL,Common Lisp 的一个实现,可以做到这一点。 (另见short SBCL tutorial)。如果您有兴趣探索其他可以保存和恢复系统状态的动态语言(包括延续、打开文件描述符等),请查看Squeak

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-05
      • 1970-01-01
      • 1970-01-01
      • 2016-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-29
      相关资源
      最近更新 更多