AOT – Compilación Ahead‑Of‑Time a Nativo

Archivo: src/aot.rs

¿Por qué existe?

Permite pre‑compilar programas Forja a binarios nativos estáticos antes de la ejecución, eliminando por completo la necesidad de la VM en tiempo de ejecución. Ideal para distribuir aplicaciones Forja como ejecutables independientes sin dependencias externas.

Arquitectura

El AOT compila el AST de Forja a código nativo a través de dos backends posibles:

Pipeline AOT

  1. Parseo: El archivo .fa se parsea a AST.
  2. Análisis semántico: Borrow checker, resolución de nombres y tipado.
  3. Generación: Se genera bytecode, assembly o LLVM IR.
  4. Compilación nativa: Se invoca al ensamblador/compilador externo (GCC, MSVC, llc).
  5. Enlace: Se genera un binario ejecutable estático.

API Pública

FunciónDescripción
compilar_aot(origen) -> Result<PathBuf>Compila un archivo .fa a binario nativo estático
compilar_aot_con_asm(origen) -> Result<PathBuf>Compila usando el backend ASM (x86-64/ARM64)
compilar_aot_con_llvm(origen) -> Result<PathBuf>Compila usando el backend LLVM IR

¿Cuándo se usa?

Cuando se necesita un ejecutable independiente para distribución. El AOT es útil para: