gpt4 book ai didi

Swift REPL : how to save/load the REPL state?(又名挂起/恢复、快照、克隆)

转载 作者:搜寻专家 更新时间:2023-10-30 23:11:23 28 4
gpt4 key购买 nike

在 Swift REPL 中,有什么方法可以保留 REPL 状态?

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

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

任何让我朝这个方向发展的解决方案都会有所帮助,即使是像这样的 hack:

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

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

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

  • 保存全局状态的核心图像,稍后再执行。

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

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

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

最佳答案

也许这对你有点帮助。

刚刚发现实际上 Swift REPL 将当前 session 保存在一个文件中。

在REPL中输入__FILE__,你会看到 session 文件。

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

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

顺便说一句,在那个临时文件夹中,repl.swift 实际上比 repl1.swift 更紧凑。你可能想要复制 repl.swift

关于Swift REPL : how to save/load the REPL state?(又名挂起/恢复、快照、克隆),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27872764/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com