Loading repository data…
Loading repository data…
GrandKenzy / repository
RIF es un motor de generación de ensambladores totalmente retargetable
RIF es un framework para crear ensambladores, linkers, compiladores, packs de arquitectura y herramientas de editor sin amarrar el nucleo a una CPU concreta. La idea central es simple: describes una ISA con tablas .pack, conectas plugins cuando necesitas semantica especial, y RIF genera binarios, documentacion y tooling alrededor de esa definicion.
.pack.rif compile <pack> <instruccion...> compila una instruccion aislada y muestra los bytes/bits resultantes.rif build enlaza, compila secciones y escribe ROMs o binarios finales con extension de salida configurable.rif pack y rif link unen proyectos repartidos en varios archivos, resuelven secciones requeridas/opcionales y generan fuentes temporales consolidadas.ext, outext, prefijos de seccion y archivos fuente por seccion, por ejemplo .gbasm para GBA.u8, u16, u32, arreglos y bloques binarios dentro del codigo fuente.fill_* para generar codigo o datos en build time, como headers, logos, imagenes, texto bitmap o audio.rif plugins load, rif plug e rif install --package validan estructura, manifiestos y rutas antes de instalar plugins locales o externos.rif -pcli <plugin> ... permite que cada plugin agregue comandos propios sin inflar el nucleo.rif plugins.rif clear cache y rif clear table hashing limpian cache y bitacoras auxiliares.rif table modify, format, undo, redo y hashing-table modifican .pack de forma controlada, con previews e historial.rif help abre el portal HTML local y mezcla automaticamente paginas del nucleo y de plugins instalados.rif compile --vscode construye una extension VS Code con sintaxis TextMate, snippets, completions, hovers, diagnosticos, quick fixes, simbolos y docs embebidas.--ext, por ejemplo .gbasm.-icon o --icon y empaqueta el icono dentro de la extension.rif compile -p <plugin> genera un launcher dedicado para un plugin/pack, y puede crear un ejecutable con PyInstaller cuando esta disponible.rif install --vscode <archivo.vsix> instala la extension generada usando el comando code.rif zip comprime el paquete RIF ignorando __pycache__.basics, gba, atari2600, image, sound, fonts, color y amd64.Incluye operaciones base para expresiones y reglas de emision: emit, call, need, comparaciones, fits, bitfit, bitcat, bitsize, trunc, zext, sext, align, pad, reloc, reldis, fillid, vfillid, errores controlados y helpers para VSIX.
Incluye pack de Game Boy Advance, instrucciones Thumb y ARM, registros ARM7TDMI, helpers de header ROM, logo Nintendo, checksum, entradas ARM/Thumb, padding de ROM, frame/screen helpers, paginas de documentacion, tooling VS Code y CLI para ejecutar ROMs con emuladores.
Incluye pack y ejemplos para Atari 2600, macros/vectores, padding especializado y CLI para ejecutar ROMs con Stella u otro emulador configurado.
Convierte imagenes a bytes utiles para ROMs y demos, con cache de resultados y soporte de assets desde fillables.
Convierte audio a formatos simples de bytes PCM para consolas o demos retro. Incluye CLI de conversion y fillables para inyectar datos de sonido.
Maneja fuentes bitmap .f, genera texto bitmap 5x7x1, expone fillables para texto como datos binarios y trae CLI para listar, editar, abrir, modificar, agregar y borrar glifos.
Incluye soporte experimental de pack/compiler para instrucciones AMD64 dentro del modelo retargetable.
Instala el proyecto en modo editable:
python -m pip install -e .
Compila el ejemplo de GBA:
python -m rif build examples/gba --plugin gba --name example
Ejecuta una ROM de GBA con el CLI del plugin:
python -m rif -pcli gba run examples/gba/gba.gba -nd
Abre la documentacion local:
python -m rif help --open
El constructor VSIX puede unir varios bundles vscode/ de plugins y forzar la extension del lenguaje:
python -m rif compile --vscode --ext .gbasm -icon example/ico.png --p gba sound fonts basics
Tambien funciona la forma antigua, pasando los plugins justo despues de --vscode:
python -m rif compile --vscode gba sound fonts basics --ext .gbasm --icon example/ico.png
El icono debe existir y ser .png, .jpg, .jpeg, .gif, .webp o .svg. El VSIX se escribe por defecto en build/vscode/, salvo que uses -o.
Para instalarlo:
python -m rif install --vscode build/vscode/rif-gba-sound-fonts-basics-0.2.0.vsix
rif/cli.py: entrada principal de comandos.rif/parser.py, rif/lexer.py, rif/compiler.py, rif/linker.py, rif/packer.py: nucleo de lectura, parseo, compilacion y enlace.rif/plugins/: plugins oficiales.rif/plugins/*/vscode/: metadata para generar VSIX.rif/help/: documentacion local HTML/Markdown.examples/: proyectos de ejemplo.La documentacion completa vive en rif/help/README.md y puede abrirse como portal local con:
python -m rif help --open