Swift REPL:如何保存/加载 REPL 状态? (又名挂起/恢复、快照、克隆)

2024-04-10

在 Swift REPL 中,保存 REPL 状态的方法是什么?

  • 例如,我想在 REPL 中做一堆工作,然后保存它,以便稍后加载。

  • 这个概念可能被命名为保存/加载、挂起/恢复、快照/克隆、序列化/反序列化等。

任何让我实现这一目标的解决方案都会有所帮助,即使它是这样的黑客:

  • 记录所有历史行,然后在另一个 REPL 中重播它们。

  • 序列化所有对象,然后在另一个 REPL 中反序列化它们。

  • 对 RAM 或 VM 进行快照,然后将其克隆到另一台计算机。

  • 保存全局状态的核心映像,然后执行。

我的目标是将 REPL 工作保存在一台机器上,然后将其加载到另一台机器上。

我只需要最终状态;我不需要堆栈、历史记录或句柄等。

XCode Playgrounds 具有类似的功能,使用“保存”来外部化内容。


也许这可以帮到你一点。

刚刚发现实际上 Swift REPL 将当前会话保存在文件中。

Type __FILE__在 REPL 中,您将看到会话文件。

  1> __FILE__
$R0: String = "/var/folders/6j/xs_0g88d55dgprjrwdws898w0000gn/T/lldb/3869/repl1.swift"

您可以查看文件内容,它会持续跟踪当前的 REPL 会话。 我确信您可以构建一行 Swift 代码来将该文件复制到您的保存文件夹中,您必须在会话结束时运行该文件夹。

顺便说一句,在该临时文件夹中,repl.swift实际上比repl1.swift。您可能想要复制repl.swift.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Swift REPL:如何保存/加载 REPL 状态? (又名挂起/恢复、快照、克隆) 的相关文章

随机推荐