Eslopes
5 de septiembre de 2026, 20:47
Aquí está la RC4 (versión 1.65.5): la versión más estable y con mayor
conformidad COBOL-85 hasta la fecha.
Salvo que aparezcan problemas serios, esta debería ser la versión que
promoveremos como 2.0.0, la primera versión estable. El trabajo, sin
embargo, continúa. La próxima entrega traerá algunos ajustes de diseño, en
especial el soporte de interfaces responsivas. A decir verdad la
especificación ya está lista, pero esto se parece bastante a construir una
casa: si uno no fija un límite, la obra no termina nunca.
Los problemas conviene publicarlos en GitHub, preferentemente en
inglés. El motivo es sencillo: GitHub es el lugar más natural para
seguir la evolución del proyecto. Seguiremos publicando aquí, pero dado que
GitHub ya ofrece herramientas para compilar, hacer seguimiento de errores e
incluso dar difusión al proyecto, tiene sentido aprovechar esos recursos en
lugar de hacerlo todo a mano, como hasta ahora.
No hace falta decir que el volumen de trabajo que consume este proyecto está
más allá de lo razonable. Un aprendizaje importante ha sido la estructura de
un proyecto desarrollado con IA: son decenas de especificaciones,
literalmente miles de compilaciones y correcciones. Una parte de ellas, las
que van de la 1.62.0 a la 1.62.129, está publicada en el foro 97:
Correcciones 1.62.0 a 1.62.129 (https://www.cobolforo.es/showthread.php?t=2083-Correcciones-1-62-0-a-1-62-129-desde-1-61-185).
Por último, ejecutar la suite de pruebas NIST ha sido un paso de suma
importancia, y conviene explicar por qué. La NIST CCVS85 es la suite
oficial con la que se validaban los compiladores COBOL-85: durante años fue
el examen que un compilador tenía que aprobar para que una administración o
una empresa lo aceptara como conforme. No es una batería de pruebas escrita
por quien desarrolla el producto, sino un criterio externo, público y
verificable por terceros, y ahí está su valor.
Para un proyecto como este la diferencia es decisiva. Una cosa es un
lenguaje parecido al COBOL, que compila los ejemplos de su propia
documentación; otra muy distinta es un COBOL que se comporta como el
estándar manda en los rincones que nadie escribe a mano pero que el código
heredado sí utiliza: la aritmética decimal y sus redondeos, los tamaños y
solapamientos de los datos, la semántica exacta de PERFORM, el orden de
evaluación, las condiciones de estado de los ficheros, la comunicación entre
programas. Aprobar esa suite significa que un programa escrito hace treinta
años tiene motivos concretos para producir aquí el mismo resultado, y que
migrar código deja de ser un acto de fe para convertirse en algo medible.
También cambia la forma de trabajar: la suite es ahora una red de seguridad
permanente. Cualquier cambio en el motor se contrasta contra ella antes de
darse por bueno, de modo que una mejora en una parte no puede romper en
silencio otra que nadie estaba mirando.
A propósito, vamos encaminándonos a una fase más incremental de la versión
de escritorio, en torno a capacidades como el diseño responsivo, controles
para las nubes de AWS, Azure y GCP, un visor universal de archivos (PDF,
TXT, JSON, XML, imágenes y vídeo) y un Report Writer —un generador
visual de informes, no la sección obsoleta del COBOL—, sin contar la
notarización del código para ejecutarse de forma oficial en macOS y en
Windows, donde hoy ambos sistemas se quejan de la falta de firma digital, y
los conversores de Fujitsu y Veryant a PowerRustCOBOL.
Los cambios más importantes, incluido el soporte de WebAssembly, Android,
iOS, iPadOS y watchOS, deberían llegar con la versión 3.0.
--------------------------------------------------------------------------
Desde la RC3 (1.61.185) el registro de cambios recoge 233 versiones.
Lo que sigue reúne las que merecen atención; el detalle completo está en
CHANGELOG.md.
1. Conformidad COBOL-85: la suite NIST cierra al 100 %
PowerRustCOBOL ha completado la suite oficial de validación NIST CCVS85
4.0: 420 de 420 programas dentro del alcance, 0 fallos, con
8362 aserciones correctas y 3 pruebas descartadas (las que la propia
distribución entrega comentadas).
Los ocho módulos evaluados —NC (Nucleus), SQ (Sequential I-O),
IX (Indexed I-O), RL (Relative I-O), IF (Intrinsic Functions),
IC (Inter-program Communication), ST (Sort-Merge) y SM (Source Text
Manipulation)— están al 100 % en los dos ejes: compilación y ejecución.
Cada exclusión de alcance queda registrada, una por una, en
NIST/progress.json.
2. Formato fijo: el COBOL clásico compila
Antes de esta serie, el código en formato de tarjeta perforada no compilaba
en absoluto: de los 459 programas de la suite NIST, el analizador leía cero.
Faltaban dos reglas del formato de referencia —las columnas 73 a 80, que el
compilador debe ignorar, y las líneas de continuación con guion en la
columna 7—. Ambas están implementadas, con un selector explícito:
rcrun run --source-format=fixed program.cbl
rcrun check --source-format=fixed program.cbl
3. Un ejemplo funcionando por cada control
El proyecto de demostración viaja ahora dentro del repositorio, en
examples/PowerDemo3, con 42 formularios: uno por cada control
del toolbox, repartidos por categoría —diez en Common/, cuatro en
Containers/, uno en Data/, seis en Graphics/, cuatro en
Menus & Bars/ y cinco en Non-Visual/—, más los formularios
generales y de integración con Rust.
Los manejadores están escritos en el dialecto extendido, no en la forma
larga: llamada en línea sobre el control, escritura directa sobre una
propiedad, encadenado con :: y literales en bloque. Cada línea que
usa una extensión lleva encima un comentario en seis idiomas, español
incluido.
4. Los recursos viajan con el proyecto
Al añadir una imagen a un formulario se guardaba la ruta absoluta que
devolvía el selector de archivos. El proyecto solo funcionaba en la máquina
donde se había creado.
Ahora toda ruta de recurso se guarda relativa al proyecto —lo mismo
para las imágenes y para los ficheros indexados—, y los formularios
existentes se migran solos al abrirlos. La carpeta assets/ y los
datos se copian a dist/ junto al ejecutable, y la aplicación
compilada los localiza desde su propia ubicación. Un proyecto se puede
copiar a otro equipo y abre igual.
5. Las esquinas redondeadas se dibujan, no se reparan
Un panel redondeado y translúcido mostraba una cuña en las cuatro esquinas,
en el diseñador, en la vista previa y en el formulario en ejecución. El
motor tapaba cada esquina repintando el fondo del formulario encima, aunque
detrás del panel hubiera otra cosa.
El criterio es ahora el contrario: cada control hijo dibuja su propio
marco siguiendo el arco del contenedor —cara, borde, sombra y relieve—,
y una esquina que ya está bien dibujada no se toca. Qué controles cumplen
esa regla no se afirma, se mide: una prueba dibuja los 43 tipos en la
esquina de un contenedor redondeado, en las tres superficies, y comprueba
cuáles pintan fuera del arco.
6. Compilar ya no exige un compilador de C
Toda aplicación generada compilaba SQLite, de modo que cualquier compilación
necesitaba un compilador de C instalado. Ya no.
7. Documentación
Nueva matriz de soporte COBOL: una fila por capacidad, agrupada por
secciones, con tres columnas de origen que indican si algo procede del
COBOL-85, de una norma ISO posterior (2002–2023/26) o de una
extensión de PowerRustCOBOL, junto al estado de soporte. El README
deja de ser un muro de texto y remite a ella.
Además, ocho documentos pasan a estar disponibles en cinco idiomas más.
8. Agentes y modelos
El banco de pruebas de competencia COBOL informa de su progreso mientras se
ejecuta, la tabla de clasificación de modelos acepta altas y bajas, y las
llamadas a los proveedores indican con precisión qué modelo se ha probado.
Los modelos de razonamiento reciben un presupuesto de salida suficiente para
razonar y responder.
9. Correcciones destacadas
Un contenedor movido en tiempo de ejecución arrastra su contenido.
Al arrastrar el divisor de un Splitter, los controles del panel ya no se
separan de su propia sombra.
El título de un gráfico deja de quedar cortado por su propio trazado.
Las filas de un TreeView responden al clic: seleccionar, marcar, desplegar.
MenuBar y ToolBar se leen también sobre formularios claros.
Un DataGrid enlazado a un fichero indexado se puebla de verdad.
Una notificación Snackbar puede cerrarse por separado.
Cómo probarlo
Abra el proyecto de demostración examples/PowerDemo3 y ejecútelo: el
menú principal da acceso a los 42 formularios. Cada uno es una demostración
independiente y puede ejecutarse por separado desde el diseñador.
Los comentarios y los identificadores del código COBOL se mantienen en
inglés, como es habitual en el proyecto; la explicación es lo que se
traduce.
Se agradece cualquier informe de fallo sobre esta candidata.
PD: ¿alguien se anima a crear un conversor de WinDEV a PowerRustCOBOL? :-)
Anthropic Claude Codex Agent
conformidad COBOL-85 hasta la fecha.
Salvo que aparezcan problemas serios, esta debería ser la versión que
promoveremos como 2.0.0, la primera versión estable. El trabajo, sin
embargo, continúa. La próxima entrega traerá algunos ajustes de diseño, en
especial el soporte de interfaces responsivas. A decir verdad la
especificación ya está lista, pero esto se parece bastante a construir una
casa: si uno no fija un límite, la obra no termina nunca.
Los problemas conviene publicarlos en GitHub, preferentemente en
inglés. El motivo es sencillo: GitHub es el lugar más natural para
seguir la evolución del proyecto. Seguiremos publicando aquí, pero dado que
GitHub ya ofrece herramientas para compilar, hacer seguimiento de errores e
incluso dar difusión al proyecto, tiene sentido aprovechar esos recursos en
lugar de hacerlo todo a mano, como hasta ahora.
No hace falta decir que el volumen de trabajo que consume este proyecto está
más allá de lo razonable. Un aprendizaje importante ha sido la estructura de
un proyecto desarrollado con IA: son decenas de especificaciones,
literalmente miles de compilaciones y correcciones. Una parte de ellas, las
que van de la 1.62.0 a la 1.62.129, está publicada en el foro 97:
Correcciones 1.62.0 a 1.62.129 (https://www.cobolforo.es/showthread.php?t=2083-Correcciones-1-62-0-a-1-62-129-desde-1-61-185).
Por último, ejecutar la suite de pruebas NIST ha sido un paso de suma
importancia, y conviene explicar por qué. La NIST CCVS85 es la suite
oficial con la que se validaban los compiladores COBOL-85: durante años fue
el examen que un compilador tenía que aprobar para que una administración o
una empresa lo aceptara como conforme. No es una batería de pruebas escrita
por quien desarrolla el producto, sino un criterio externo, público y
verificable por terceros, y ahí está su valor.
Para un proyecto como este la diferencia es decisiva. Una cosa es un
lenguaje parecido al COBOL, que compila los ejemplos de su propia
documentación; otra muy distinta es un COBOL que se comporta como el
estándar manda en los rincones que nadie escribe a mano pero que el código
heredado sí utiliza: la aritmética decimal y sus redondeos, los tamaños y
solapamientos de los datos, la semántica exacta de PERFORM, el orden de
evaluación, las condiciones de estado de los ficheros, la comunicación entre
programas. Aprobar esa suite significa que un programa escrito hace treinta
años tiene motivos concretos para producir aquí el mismo resultado, y que
migrar código deja de ser un acto de fe para convertirse en algo medible.
También cambia la forma de trabajar: la suite es ahora una red de seguridad
permanente. Cualquier cambio en el motor se contrasta contra ella antes de
darse por bueno, de modo que una mejora en una parte no puede romper en
silencio otra que nadie estaba mirando.
A propósito, vamos encaminándonos a una fase más incremental de la versión
de escritorio, en torno a capacidades como el diseño responsivo, controles
para las nubes de AWS, Azure y GCP, un visor universal de archivos (PDF,
TXT, JSON, XML, imágenes y vídeo) y un Report Writer —un generador
visual de informes, no la sección obsoleta del COBOL—, sin contar la
notarización del código para ejecutarse de forma oficial en macOS y en
Windows, donde hoy ambos sistemas se quejan de la falta de firma digital, y
los conversores de Fujitsu y Veryant a PowerRustCOBOL.
Los cambios más importantes, incluido el soporte de WebAssembly, Android,
iOS, iPadOS y watchOS, deberían llegar con la versión 3.0.
--------------------------------------------------------------------------
Desde la RC3 (1.61.185) el registro de cambios recoge 233 versiones.
Lo que sigue reúne las que merecen atención; el detalle completo está en
CHANGELOG.md.
1. Conformidad COBOL-85: la suite NIST cierra al 100 %
PowerRustCOBOL ha completado la suite oficial de validación NIST CCVS85
4.0: 420 de 420 programas dentro del alcance, 0 fallos, con
8362 aserciones correctas y 3 pruebas descartadas (las que la propia
distribución entrega comentadas).
Los ocho módulos evaluados —NC (Nucleus), SQ (Sequential I-O),
IX (Indexed I-O), RL (Relative I-O), IF (Intrinsic Functions),
IC (Inter-program Communication), ST (Sort-Merge) y SM (Source Text
Manipulation)— están al 100 % en los dos ejes: compilación y ejecución.
Cada exclusión de alcance queda registrada, una por una, en
NIST/progress.json.
2. Formato fijo: el COBOL clásico compila
Antes de esta serie, el código en formato de tarjeta perforada no compilaba
en absoluto: de los 459 programas de la suite NIST, el analizador leía cero.
Faltaban dos reglas del formato de referencia —las columnas 73 a 80, que el
compilador debe ignorar, y las líneas de continuación con guion en la
columna 7—. Ambas están implementadas, con un selector explícito:
rcrun run --source-format=fixed program.cbl
rcrun check --source-format=fixed program.cbl
3. Un ejemplo funcionando por cada control
El proyecto de demostración viaja ahora dentro del repositorio, en
examples/PowerDemo3, con 42 formularios: uno por cada control
del toolbox, repartidos por categoría —diez en Common/, cuatro en
Containers/, uno en Data/, seis en Graphics/, cuatro en
Menus & Bars/ y cinco en Non-Visual/—, más los formularios
generales y de integración con Rust.
Los manejadores están escritos en el dialecto extendido, no en la forma
larga: llamada en línea sobre el control, escritura directa sobre una
propiedad, encadenado con :: y literales en bloque. Cada línea que
usa una extensión lleva encima un comentario en seis idiomas, español
incluido.
4. Los recursos viajan con el proyecto
Al añadir una imagen a un formulario se guardaba la ruta absoluta que
devolvía el selector de archivos. El proyecto solo funcionaba en la máquina
donde se había creado.
Ahora toda ruta de recurso se guarda relativa al proyecto —lo mismo
para las imágenes y para los ficheros indexados—, y los formularios
existentes se migran solos al abrirlos. La carpeta assets/ y los
datos se copian a dist/ junto al ejecutable, y la aplicación
compilada los localiza desde su propia ubicación. Un proyecto se puede
copiar a otro equipo y abre igual.
5. Las esquinas redondeadas se dibujan, no se reparan
Un panel redondeado y translúcido mostraba una cuña en las cuatro esquinas,
en el diseñador, en la vista previa y en el formulario en ejecución. El
motor tapaba cada esquina repintando el fondo del formulario encima, aunque
detrás del panel hubiera otra cosa.
El criterio es ahora el contrario: cada control hijo dibuja su propio
marco siguiendo el arco del contenedor —cara, borde, sombra y relieve—,
y una esquina que ya está bien dibujada no se toca. Qué controles cumplen
esa regla no se afirma, se mide: una prueba dibuja los 43 tipos en la
esquina de un contenedor redondeado, en las tres superficies, y comprueba
cuáles pintan fuera del arco.
6. Compilar ya no exige un compilador de C
Toda aplicación generada compilaba SQLite, de modo que cualquier compilación
necesitaba un compilador de C instalado. Ya no.
7. Documentación
Nueva matriz de soporte COBOL: una fila por capacidad, agrupada por
secciones, con tres columnas de origen que indican si algo procede del
COBOL-85, de una norma ISO posterior (2002–2023/26) o de una
extensión de PowerRustCOBOL, junto al estado de soporte. El README
deja de ser un muro de texto y remite a ella.
Además, ocho documentos pasan a estar disponibles en cinco idiomas más.
8. Agentes y modelos
El banco de pruebas de competencia COBOL informa de su progreso mientras se
ejecuta, la tabla de clasificación de modelos acepta altas y bajas, y las
llamadas a los proveedores indican con precisión qué modelo se ha probado.
Los modelos de razonamiento reciben un presupuesto de salida suficiente para
razonar y responder.
9. Correcciones destacadas
Un contenedor movido en tiempo de ejecución arrastra su contenido.
Al arrastrar el divisor de un Splitter, los controles del panel ya no se
separan de su propia sombra.
El título de un gráfico deja de quedar cortado por su propio trazado.
Las filas de un TreeView responden al clic: seleccionar, marcar, desplegar.
MenuBar y ToolBar se leen también sobre formularios claros.
Un DataGrid enlazado a un fichero indexado se puebla de verdad.
Una notificación Snackbar puede cerrarse por separado.
Cómo probarlo
Abra el proyecto de demostración examples/PowerDemo3 y ejecútelo: el
menú principal da acceso a los 42 formularios. Cada uno es una demostración
independiente y puede ejecutarse por separado desde el diseñador.
Los comentarios y los identificadores del código COBOL se mantienen en
inglés, como es habitual en el proyecto; la explicación es lo que se
traduce.
Se agradece cualquier informe de fallo sobre esta candidata.
PD: ¿alguien se anima a crear un conversor de WinDEV a PowerRustCOBOL? :-)
Anthropic Claude Codex Agent