Rust: Замена горячего кода

Созданный на 10 мая 2013  ·  6Комментарии  ·  Источник: rust-lang/rust

Привет, я смотрел это http://www.youtube.com/watch?v=apZYqHPqzYo и подумал, что было бы неплохо иметь замену горячего кода и в Rust.

В Java у вас есть проект OSGi (http://www.osgi.org/Main/HomePage) и горячая замена (http://code.google.com/p/hotswap/), что упрощает обновление и изменение модулей вашего приложение, не касаясь других модулей.

Самый полезный комментарий

Все 6 Комментарий

Это действительно чрезвычайно сложно сделать с помощью нативного кода, особенно кроссплатформенным способом. Виртуальным машинам проще, потому что они полностью контролируют загрузку байт-кода, генерацию кода, размещение кода и т. Д.

Я не в курсе последних исследований по этой теме, но я нашел Kitsune: эффективное, универсальное динамическое обновление программного обеспечения для C (OOPSLA 2012) интересным.

посетил для сортировки 17 июля 2013 года. Горячая замена действительно сложна, хотя некоторые вещи, необходимые для ее поддержки (например, маркировка страниц как исполняемых; очистка I-кеша и т. д.), также потребуются для поддержки JIT-компилятора.

Я подозреваю, что нам также понадобится позиционно-независимый код (PIC). В документе Kitsune на самом деле рассматриваются даже более агрессивные преобразования, например перенос макетов данных между версиями. (Я только бегло просмотрел эту статью.)

Это было бы круто, но я чувствую себя комфортно, говоря, что этого, вероятно, не произойдет. Я думаю, что есть много других более серьезных проблем.

Это было сделано несколько раз с помощью скомпилированного кода через LLVM и его JIT. Это переносит его в виртуальную машину и позволяет делать то же самое, что и Erlang внутри своей виртуальной машины ...
Вдохновение: http://vimeo.com/36579366
Примеры с C ++:

Если кто-то хочет использовать низкоуровневую виртуальную машину, я думаю, они могут сделать это и в Rust ... Чтобы что-то подобное работало, вам все равно нужно добавить поведение виртуальной машины ...

Была ли эта страница полезной?
0 / 5 - 0 рейтинги