Rust: Reemplazo de código caliente

Creado en 10 may. 2013  ·  6Comentarios  ·  Fuente: rust-lang/rust

Hola, vi este http://www.youtube.com/watch?v=apZYqHPqzYo y pensé que sería bueno tener un reemplazo de código activo también en Rust.

En Java, tienes el proyecto OSGi (http://www.osgi.org/Main/HomePage) y hotswap (http://code.google.com/p/hotswap/), lo que facilita la actualización y el cambio de módulos de tu aplicación sin tocar otros módulos.

E-hard

Todos 6 comentarios

Es realmente muy difícil hacer esto con código nativo, especialmente en una forma multiplataforma. Las máquinas virtuales lo tienen más fácil porque tienen un control total sobre la carga del código de bytes, la generación de código, la ubicación del código, etc.

No estoy actualizado con las últimas investigaciones sobre el tema, pero encontré interesante Kitsune: Actualización de software dinámica de propósito general y eficiente para C (OOPSLA 2012).

visitado para triaje, 17 de julio de 2013. El intercambio en caliente es realmente complicado, aunque algunas de las cosas necesarias para admitirlo (por ejemplo, marcar páginas como ejecutables, vaciado de I-cache, etc.) también serían necesarias para admitir un compilador JIT.

Sospecho que también necesitaríamos un código independiente de la posición (PIC). El artículo de Kitsune en realidad cubre transformaciones aún más agresivas, por ejemplo, la migración de los diseños de datos entre versiones. (Solo he hojeado ese documento en este momento).

Esto sería genial, pero me siento cómodo diciendo que probablemente no sucederá. Creo que hay muchos otros problemas difíciles que son más apremiantes.

Se hizo varias veces con código compilado a través de LLVM y su JIT. Lo que lo lanza a una VM y permite hacer las mismas cosas que Erlang puede hacer dentro de su VM ...
Inspiración: http://vimeo.com/36579366
Ejemplos con C ++:

Si alguien quiere usar una VM de bajo nivel, supongo que también puede hacerlo en Rust ... Para que algo así funcione, debe agregar el comportamiento de la VM de todos modos ...

¿Fue útil esta página
0 / 5 - 0 calificaciones