Eslopes
19 de junio de 2026, 01:12
Estamos comenzando una funcionalidad grande: los tipos de proyecto. Hasta ahora, todo proyecto generaba una aplicación de escritorio; ahora añadiremos varios tipos, empezando por Web (WebAssembly).
Qué hará un proyecto Web:
- Al crear un proyecto se elige primero el tipo (Aplicación de escritorio | WebAssembly). En el futuro habrá más (Línea de comandos, Android, iPhone, iPad...).
- El COBOL se transpila a Rust portable y se compila a WebAssembly. No se incluye el intérprete en el artefacto.
- La interfaz es el mismo formulario egui dibujado sobre un <canvas> del navegador (eframe-web), idéntico al diseño de escritorio.
- No hay modo interpretado: la Vista previa compila y abre la aplicación en el navegador por defecto (mediante trunk serve).
- El código debe ser 100% portable, y eso se valida en Check/Build: los archivos indexados son solo en memoria y los datos se obtienen mediante llamadas REST (el objeto REST/HTTP con INVOKE "GET"/...). El backend será otro tipo de proyecto, más adelante.
Estado (desarrollo dirigido por especificación):
- Especificación, plan y tareas completados en specs/006-web-wasm-projects (spec.md, plan.md, tasks.md).
- Decisiones clave: paridad de funciones con el intérprete para lo portable; objeto REST explícito; instalación automática del target wasm32 y de trunk; el tipo se fija al crear el proyecto.
- Dos crates nuevos: cobolt-transpiler (COBOL -> Rust) y cobolt-web-rt (soporte portable: semántica de valores COBOL, indexado en memoria, cliente HTTP wasm).
- Implementación por fases (A: modelo de tipo + nuevo proyecto + gating; B: validador de portabilidad; C: toolchain + cascarón eframe-web; D: transpilador con un subconjunto representativo + cobolt-web-rt; E: documentación y cierre). El transpilador completo (paridad total) continúa en una sub-especificación (007).
Iremos publicando avances a medida que aterricen las fases.
Anthropic Code Agent
Qué hará un proyecto Web:
- Al crear un proyecto se elige primero el tipo (Aplicación de escritorio | WebAssembly). En el futuro habrá más (Línea de comandos, Android, iPhone, iPad...).
- El COBOL se transpila a Rust portable y se compila a WebAssembly. No se incluye el intérprete en el artefacto.
- La interfaz es el mismo formulario egui dibujado sobre un <canvas> del navegador (eframe-web), idéntico al diseño de escritorio.
- No hay modo interpretado: la Vista previa compila y abre la aplicación en el navegador por defecto (mediante trunk serve).
- El código debe ser 100% portable, y eso se valida en Check/Build: los archivos indexados son solo en memoria y los datos se obtienen mediante llamadas REST (el objeto REST/HTTP con INVOKE "GET"/...). El backend será otro tipo de proyecto, más adelante.
Estado (desarrollo dirigido por especificación):
- Especificación, plan y tareas completados en specs/006-web-wasm-projects (spec.md, plan.md, tasks.md).
- Decisiones clave: paridad de funciones con el intérprete para lo portable; objeto REST explícito; instalación automática del target wasm32 y de trunk; el tipo se fija al crear el proyecto.
- Dos crates nuevos: cobolt-transpiler (COBOL -> Rust) y cobolt-web-rt (soporte portable: semántica de valores COBOL, indexado en memoria, cliente HTTP wasm).
- Implementación por fases (A: modelo de tipo + nuevo proyecto + gating; B: validador de portabilidad; C: toolchain + cascarón eframe-web; D: transpilador con un subconjunto representativo + cobolt-web-rt; E: documentación y cierre). El transpilador completo (paridad total) continúa en una sub-especificación (007).
Iremos publicando avances a medida que aterricen las fases.
Anthropic Code Agent