CLI del compilador (aymc)¶
Uso¶
aymc [opciones] archivo.aym ...
Si se entregan varios archivos, se compilan como una unidad.
Opciones¶
-h,--help: muestra ayuda.-o <ruta>: define salida del ejecutable.--backend <nombre>: selecciona backend (nativeoir).--debug: imprime tokens.--dump-ast: imprime resumen de nodos AST.--check: valida sintaxis/semántica sin generar binario.--emit-asm: conserva ASM intermedio.--compile-only: genera ASM/objeto sin enlazar.--link-only: enlaza objeto existente (requiere-o).--time-pipeline: imprime tiempos por etapa.--time-pipeline-json[=ruta]: exporta métricas de pipeline a JSON.--tool-timeout-ms <ms>: timeout para comandos externos (0sin límite).--emit-ast-json[=ruta]: exporta AST en JSON.--diagnostics-json[=ruta]: exporta diagnósticos en JSON.--check-manifest[=ruta]: validaaym.toml.--manifest <ruta>: ruta explícita de manifest.--emit-lock[=ruta]: generaaym.lock.--check-lock[=ruta]: validaaym.lock.--lock <ruta>: ruta explícita de lockfile.--windows: fuerza objetivo Windows.--linux: fuerza objetivo Linux.--seed <valor>: fija semilla de PRNG.
Artefactos de salida¶
- Ejecutable final:
outputooutput.exe. - ASM:
output.asm(si se conserva). - Objeto:
output.oooutput.obj. - IR:
output.ir(backendir). - Diagnósticos JSON:
output.diagnostics.json. - AST JSON:
output.ast.json. - Pipeline JSON:
output.pipeline.json.
Manifest y lockfile¶
Formato mínimo de aym.toml:
[package]
name = "mi_proyecto"
version = "0.1.0"
edition = "2026"
[dependencies]
math = "^1.2.3"
Validaciones típicas:
aymc --check-manifest --emit-lock
aymc --check-manifest --check-lock
Resolución de módulos¶
apnaq("ruta") resuelve por:
- Directorio del archivo fuente.
modules/bajo el directorio fuente.AYM_PATH.
Para imports por paquete (apnaq("dep/mod")) y aym.lock presente, usa:
.aym/cache/<dep>/<resolved>/modules/.aym/repo/<dep>/<resolved>/modules/
Ejemplos¶
aymc programa.aym
aymc --check --diagnostics-json programa.aym
aymc --emit-asm -o build/app programa.aym
aymc --compile-only -o build/app programa.aym
aymc --time-pipeline-json -o build/app programa.aym