DocumentaciónInstalación y Configuración

Instalación y Configuración

BLOX se distribuye en paquetes separados según el uso:

  • BLOX Core: biblioteca embebible para integrar BLOX dentro de aplicaciones C/C++, servicios, motores o firmware.
  • BLOX Core + JSON: variante del Core con soporte para intercambio entre TABLA y JSON.
  • BLOX CLI: herramienta derivada del Core para ejecutar scripts .blox desde la terminal.
  • BLOX Core ESP32-S3: componente ESP-IDF precompilado para embeber BLOX en firmware ESP32-S3.

Cada descarga incluye un archivo USO_RAPIDO.md con instrucciones específicas.

Requisitos del Sistema

BLOX CLI para Windows

  • Sistema operativo: Windows 10 o 11 recomendado.
  • Arquitectura: x86_64.
  • Memoria RAM: 128 MB mínimos.
  • Almacenamiento: menos de 10 MB.
  • Dependencias: incluidas dentro del ZIP de descarga.

BLOX CLI para Linux

  • Sistema operativo: Linux x86_64.
  • Compilado para entorno GNU/Linux.
  • No requiere instalación compleja: basta con descomprimir y ejecutar el binario.

BLOX Core para Windows/Linux

Pensado para desarrolladores que quieren embeber BLOX en una aplicación host.

Incluye:

  • blox.h: API pública C.
  • libblox_core.a: biblioteca estática.
  • blox_core.dll o libblox_core.so: biblioteca dinámica, según plataforma.
  • libblox_host_json.a: variante Core + JSON.
  • ejemplos mínimos en C.

BLOX Core para ESP32-S3

Incluye un componente ESP-IDF precompilado:

component/blox/
  include/blox.h
  lib/libblox_esp32.a
  CMakeLists.txt

No es un firmware listo para flashear. Es el Core embebible para integrarlo en un proyecto ESP-IDF.

Instalación de BLOX CLI

Windows

  1. Descarga blox-cli-windows-x86_64-YYYY-MM-DD.zip.
  2. Descomprime el ZIP, por ejemplo en:
C:\BLOX\

La estructura será similar a:

C:\BLOX\
  cli\bin\blox.exe
  examples\hello.blox
  manuals\
  USO_RAPIDO.md
  1. Ejecuta un programa desde CMD o PowerShell:
cd C:\BLOX
cli\bin\blox.exe examples\hello.blox

Para ver la versión:

cli\bin\blox.exe --version

Linux

  1. Descarga blox-cli-linux-x86_64-YYYY-MM-DD.zip.
  2. Descomprime el ZIP.
  3. Da permiso de ejecución si es necesario:
chmod +x cli/bin/blox
  1. Ejecuta un programa:
./cli/bin/blox examples/hello.blox

Uso de BLOX Core en C

BLOX Core se usa cuando quieres que una aplicación nativa cargue y ejecute scripts .blox.

Flujo básico:

  1. Crear una VM con blox_vm_create().
  2. Registrar funciones C con blox_vm_register_native().
  3. Cargar un script con blox_vm_load_file().
  4. Ejecutar FUNCION PRINCIPAL con blox_vm_run_main().
  5. Llamar funciones BLOX con blox_vm_call().
  6. Leer resultados mediante BloxValue, TABLA o JSON.

Ejemplo conceptual:

BloxVM *vm = blox_vm_create();

blox_vm_register_native(
    vm,
    "HOST_LOG",
    1,
    BLOX_VALUE_EMPTY,
    host_log,
    NULL
);

blox_vm_load_file(vm, "programa.blox");
blox_vm_run_main(vm);

BloxValue resultado;
blox_vm_call(vm, "evaluar", NULL, 0, &resultado);

blox_vm_destroy(vm);

Configuración con Sublime Text

La integración con Sublime Text aplica principalmente a BLOX CLI, porque permite ejecutar scripts .blox desde el editor.

Modo 1: Ventana CMD externa

Crea un archivo BLOX_externo.sublime-build:

json
{
  "shell_cmd": "start cmd /k \"cd C:\\BLOX && cli\\bin\\blox.exe '${file}'\"",
  "working_dir": "C:\\BLOX",
  "selector": "source.blox"
}

Ventajas:

  • Abre una ventana CMD separada.
  • Permite interacción por consola.
  • La ventana permanece abierta al finalizar.

Modo 2: Consola integrada

Crea un archivo BLOX.sublime-build:

json
{
  "cmd": ["C:/BLOX/cli/bin/blox.exe", "$file"],
  "working_dir": "C:/BLOX",
  "selector": "source.blox"
}

Ventajas:

  • No abre ventanas adicionales.
  • Muestra la salida dentro de Sublime Text.
  • Es cómodo para pruebas rápidas.

Para cambiar entre modos:

Tools → Build System → BLOX

Verificación

Después de descomprimir el paquete CLI, prueba:

cli\bin\blox.exe examples\hello.blox

o en Linux:

./cli/bin/blox examples/hello.blox

Si el programa se ejecuta y muestra salida en consola, BLOX CLI está listo.

Para BLOX Core, revisa el archivo USO_RAPIDO.md incluido en el ZIP correspondiente. Allí se indican los comandos para compilar un host C usando la biblioteca estática o dinámica.