Rust: 热代码替换

创建于 2013-05-10  ·  6评论  ·  资料来源: rust-lang/rust

嗨,我看了这个http://www.youtube.com/watch?v=apZYqHPqzYo并认为在 Rust 中进行热代码替换会很好。

在 Java 中,您有 OSGi 项目 ( http://www.osgi.org/Main/HomePage ) 和 hotswap ( http://code.google.com/p/hotswap/ ),这有助于升级和更改您的模块不接触其他模块的应用程序。

E-hard

所有6条评论

用本机代码做到这一点真的非常困难,尤其是在跨平台的方式下。 VM 有更轻松的时间,因为它们可以完全控制字节码加载、代码生成、代码放置等。

我不了解有关该主题的最新研究,但我发现Kitsune:Efficient, General-purpose Dynamic Software Updateing for C (OOPSLA 2012) 很有趣。

2013 年 7 月 17 日访问进行分类。热交换确实很棘手,尽管支持它的一些必要条件(例如将页面标记为可执行文件;I-cache 刷新等)对于支持 JIT 编译器也是必要的。

我怀疑我们还需要位置无关代码(PIC)。 Kitsune 论文实际上涵盖了更激进的转换,例如在版本之间迁移数据布局。 (此时我只浏览了那篇论文。)

这会很酷,但我很放心地说这可能不会发生。 我认为还有很多其他的难题更引人注目。

它通过 LLVM 及其 JIT 使用编译代码完成了几次。 它将它扔进一个虚拟机并允许做 Erlang 可以在它的虚拟机中做的同样的事情......
灵感: http :
C++ 示例:

如果有人想使用低级 VM,我想他们也可以在 Rust 中做到这一点......对于这样的事情,你无论如何都需要添加 VM 行为......

此页面是否有帮助?
0 / 5 - 0 等级