VM JIT – Versión Just‑In‑Time (v3)
Archivo: src/vm_jit.rs
¿Por qué existe?
La VM JIT (v3) fue la segunda generación de máquina virtual de Forja, diseñada para mejorar el rendimiento de la VM original (v1, removida en 9.0.0) mediante compilación en tiempo de ejecución. Es la predecesora de la VM Fast (v6).
Cómo funciona
- Recibe la lista de
Uopgenerada por el proceso de compilación. - El emitter JIT traduce cada
Uopa código máquina usandodynasmrt(o similar) y lo coloca en memoria ejecutable. - Mantiene un cache de funciones JIT para reutilizar código generado entre llamadas.
- En caso de error de compilación JIT, hace fallback a la VM interpretada (ForjaFast).
API Pública
| Función | Descripción |
|---|---|
new() -> Self | Crea una nueva VM JIT |
ejecutar(bytecode) -> Result | Ejecuta bytecode con JIT (fallback a interpretado si no es compilable) |
cargar_bytecode(bc) | Carga bytecode y prepara estructuras JIT |
Estado actual
Nota: Esta VM está siendo reemplazada por vm_fast.rs (v6) que ofrece mejor rendimiento sin dependencia de dynasmrt. El JIT nativo real vive ahora en jit.rs + jit_engine.rs, que opera directamente sobre uops.