Rust: Penggantian kode panas

Dibuat pada 10 Mei 2013  ·  6Komentar  ·  Sumber: rust-lang/rust

Hai, saya menonton http://www.youtube.com/watch?v=apZYqHPqzYo ini dan berpikir akan menyenangkan juga memiliki penggantian kode panas di Rust.

Di Jawa, Anda memiliki proyek OSGi ( http://www.osgi.org/Main/HomePage ) dan hotswap ( http://code.google.com/p/hotswap/ ), yang memfasilitasi peningkatan dan perubahan modul aplikasi tanpa menyentuh modul lain.

E-hard

Komentar yang paling membantu

Semua 6 komentar

Sangat, sangat sulit untuk melakukan ini dengan kode asli, terutama dalam mode lintas platform. VM memiliki waktu yang lebih mudah karena mereka memiliki kontrol penuh atas pemuatan bytecode, pembuatan kode, penempatan kode, dll.

Saya tidak up-to-date pada penelitian terbaru tentang topik tersebut, tetapi menurut saya Kitsune: Efficient, General-purpose Dynamic Software Update for C (OOPSLA 2012) menarik.

dikunjungi untuk triase, 17 Juli 2013. Hot-swapping memang rumit, meskipun beberapa hal yang diperlukan untuk mendukungnya (misalnya menandai halaman sebagai executable; I-cache flushing, dll) juga diperlukan untuk mendukung kompiler JIT.

Saya menduga kita juga membutuhkan kode posisi-independen (PIC). Makalah Kitsune sebenarnya mencakup transformasi yang lebih agresif, misalnya memigrasikan tata letak data antar versi. (Saya hanya membaca sekilas kertas itu pada saat ini.)

Ini akan keren, tapi saya merasa nyaman mengatakan itu mungkin tidak akan terjadi. Saya pikir ada banyak masalah sulit lainnya yang lebih menarik.

Itu dilakukan beberapa kali dengan kode yang dikompilasi melalui LLVM dan JIT-nya. Yang memasukkannya ke dalam VM dan memungkinkan untuk melakukan hal yang sama yang dapat dilakukan Erlang di dalam VM-nya...
Inspirasi: http://vimeo.com/36579366
Contoh dengan C++:

Jika seseorang ingin menggunakan VM Tingkat Rendah, saya kira mereka juga dapat melakukannya di Rust ... Agar sesuatu seperti itu berfungsi, Anda tetap perlu menambahkan perilaku VM ...

Apakah halaman ini membantu?
0 / 5 - 0 peringkat