【发布时间】:2015-01-10 04:08:30
【问题描述】:
在 Swift REPL 中,有什么方法可以保留 REPL 状态?
比如我想在REPL中做一堆工作,然后保存,以后可以加载。
这个概念可能被命名为保存/加载、暂停/恢复、快照/克隆、序列化/反序列化等。
任何能让我实现这一目标的解决方案都会有所帮助,即使是这样的 hack:
记录所有历史记录,然后在另一个 REPL 中重播。
序列化所有对象,然后在另一个 REPL 中反序列化它们。
对 RAM 或 VM 进行快照,然后将其克隆到另一台计算机。
保存全局状态的核心图像,稍后再执行。
我的目标是将 REPL 工作保存在一台机器上,然后将其加载到另一台机器上。
我只需要最终状态;我不需要堆栈、历史记录或句柄等。
XCode Playgrounds 有一个类似的功能,使用“保存”,将内容外部化。
【问题讨论】:
-
我怀疑 Swift 对此是否有任何支持(通常确实需要支持)。如果 REPL 在具有睡眠支持的 VM 内运行.. 但遗憾的是,这样的“图像”使 SmallTalk 几乎是独一无二的。我也不知道有任何基于进程的快照工具,但我没有看过。
-
为什么不使用游乐场?
-
@huocp 因为 Swift REPL 很棒 - 根据我的经验,它比游乐场更快更轻。
标签: swift read-eval-print-loop