こんにちは私はこのhttp://www.youtube.com/watch?v=apZYqHPqzYoを見て、Rustでもホットコードを置き換えるのがいいと思いました。
Javaには、OSGiプロジェクト(http://www.osgi.org/Main/HomePage)とホットスワップ(http://code.google.com/p/hotswap/)があり、モジュールのアップグレードと変更を容易にします。他のモジュールに触れることなくアプリケーション。
特にクロスプラットフォームの方法で、ネイティブコードでこれを行うことは本当に非常に困難です。 VMは、バイトコードのロード、コード生成、コードの配置などを完全に制御できるため、時間が簡単になります。
このトピックに関する最新の調査については最新ではありませんが、 Kitsune:Efficient、General-purpose Dynamic Software Updateing for C (OOPSLA 2012)が興味深いと感じました。
2013年7月17日、トリアージのために訪問しました。ホットスワップをサポートするために必要なもの(ページを実行可能ファイルとしてマークする、Iキャッシュのフラッシュなど)もJITコンパイラをサポートするために必要ですが、ホットスワップは確かに注意が必要です。
位置独立コード(PIC)も必要だと思います。 Kitsuneの論文では、実際には、バージョン間のデータレイアウトの移行など、さらに積極的な変換について説明しています。 (私はこの時点でその紙をすくい取っただけです。)
これはかっこいいですが、おそらく起こらないだろうと私は安心しています。 他にももっと説得力のある難しい問題がたくさんあると思います。
これは、LLVMとそのJITを介してコンパイルされたコードで数回行われました。 これはそれをVMにスローし、ErlangがVM内で実行できるのと同じことを実行できるようにします...
インスピレーション: http :
C ++の例:
誰かが低レベルのVMを使用したい場合は、Rustでも使用できると思います...そのようなものを機能させるには、とにかくVMの動作を追加する必要があります...
最も参考になるコメント
参照用にのみこれを追加しますhttp://runtimecompiledcplusplus.blogspot.co.uk/およびコードhttps://github.com/RuntimeCompiledCPlusPlus/RuntimeCompiledCPlusPlus
およびhttps://bentheelder.github.io/blog/rust-hotswap.html