Cobol Foro
Navegación en el Foro
Retroceder   Cobol Foro Entornos de desarrollo y compiladores Cobol PowerRustCOBOL
PowerRustCOBOL Nuevo entorno RAD de Cobol, con características muy interesantes, como llamadas nativas a APIs (REST) y soporte de la IA Generativa.
Creado y mantenido por nuestro forero Eslopes
 
Respuesta

  #1
Antiguo 24 de agosto de 2026, 16:08
Eslopes
Creador de
PowerRustCOBOL
Guru de los Gurus: Por solidos y amplios conocimientos - Issue reason: Por ámplios conocimientos en la materia Concurso: Tercer puesto: Ganador/a del Tercer puesto en un concurso - Issue reason: Juego  Innovación: Por aportar innovaciones - Issue reason: Por aportar soluciones innovadoras 
Última Actividad 27.10.2026 07:38
Posts Posts: 396
Likes enviados Enviados: 31
Likes recibidos Recibidos: 172
Predeterminado PowerRustCOBOL 1.61.185 Release Candidate 3
1 Inactivo Inactivo

Ya está publicada la Release Candidate 3, con paquetes listos para las
cuatro plataformas. Cada paquete es autocontenido: se descomprime y se ejecuta,
sin runtime que instalar antes.
Descargar la RC3 (v1.61.185RC3)
Código:
+---------------------------------------------+---------------------------+
| Paquete                                     | Para                      |
+---------------------------------------------+---------------------------+
| PowerRustCOBOL-1.61.185-windows-x86_64.zip  | Windows 10 y 11, 64 bits  |
| PowerRustCOBOL-1.61.185-linux-x86_64.tar.gz | Linux 64 bits, glibc 2.35 |
| PowerRustCOBOL-1.61.185-macos-aarch64.tar.gz| Mac con Apple Silicon     |
| PowerRustCOBOL-1.61.185-macos-x86_64.tar.gz | Mac con Intel             |
+---------------------------------------------+---------------------------+
SHA256SUMS acompaña a los paquetes con la suma de comprobación de cada archivo.

A continuación va la lista completa de cambios desde la RC2 (1.61.110).
Entre paréntesis, la versión en la que entró cada uno.
AVISO: dos cambios que rompen formularios guardados

El Splitter se rehízo (1.61.164) y dos de sus propiedades cambian de sentido.
No hay migración silenciosa: preferimos un cambio documentado a reescribir por
nuestra cuenta un diseño que usted guardó.
  • Orientation ahora nombra la disposición de los paneles, no la línea.
    Horizontal = panel 1 a la izquierda y panel 2 a la derecha. Es lo contrario de
    lo que significaba antes, así que un formulario guardado con un Splitter se
    abre con los paneles al revés.
  • SplitPosition es un porcentaje (0-100), ya no un desplazamiento en
    puntos.


NUEVAS CAPACIDADES

  • Diagnósticos que nombran su código, y búsqueda de código en todo el
    proyecto
    (1.61.176). Un Check ya no informa "842:17" contra un artefacto
    generado: la fila dice MAIN-FORM > BTN-OK > onClick - 3:12, cita la línea
    culpable y marca la columna, y al pulsarla se abre el editor propietario con el
    cursor en esa línea. El .cbl generado no se abre nunca. Además, Ver > Búsqueda
    de código, el botón de la barra o Ctrl/Cmd+Shift+F abren una ventana persistente
    que busca en todos los sitios de código de todos los formularios, incluido el
    texto sin guardar, más el Common Code.
  • TreeView: plegado, iconos y ninguna medida fija (1.61.157). Un nodo
    con hijos dibuja su flecha, al pulsarla se escribe CollapsedNodes y se disparan
    onNodeCollapse / onNodeExpand. Los iconos salen del catálogo de la plataforma y
    cada nodo puede nombrar el suyo. Todas las medidas son propiedades: RowHeight,
    IndentWidth, IconSize, CheckBoxSize, IconColor, SelectionColor, HotTrackColor.
    La tinta de alto contraste se elige por relación de contraste contra la cara
    sobre la que se pinta el árbol.
  • Un evento de nodo dice QUE nodo lo disparó (1.61.158). El handler
    recibe en la LINKAGE SECTION un grupo con CONTROL-NODE, CONTROL-NODE-INDEX,
    CONTROL-NODE-LEVEL y CONTROL-NODE-CHECKED. Antes solo onNodeClick podía
    responderse, leyendo SelectedNode; onNodeCheck, onNodeCollapse y onNodeExpand no
    tenían forma de saberlo. Indice y nivel son base 1, como cuenta COBOL.
  • Un handler puede recorrer el árbol, y un nodo puede vestirse solo
    (1.61.159). Recorrido: NodeParent, NodeFirstChild, NodeLastChild,
    NodeNextSibling, NodePrevSibling, NodeChildCount, NodeHasChildren; devuelven -1
    cuando no hay tal nodo, que es lo que termina un recorrido. Lectura: NodeText,
    NodeName, NodePath, NodeLevel, NodeIcon, NodeColor, NodeBackColor, NodeChecked,
    NodeCollapsed, NodeCount y NodeIndexOf. Y AddNode(nivel, texto [, icono, color,
    fondo]) construye un árbol desde COBOL, cosa que AddItem no podía hacer.
  • La casilla del TreeView se viste como un CheckBox (1.61.159): lleva
    las mismas cinco propiedades (CheckBoxColor, CheckBoxBorderStyle,
    CheckBoxBorderColor, CheckBoxBorderWidth, CheckColor, CheckSize) y dibuja la
    misma marca.
  • El TreeView se desplaza en vez de tirar lo que no cabe (1.61.160).
    Tres formas, ninguna con propiedad que configurar: la rueda con el puntero
    encima, el arrastre sobre el árbol, y Arriba / Abajo / Inicio / Fin cuando el
    árbol tiene el foco. Una fila a caballo del borde se recorta en lugar de
    descartarse, así que el árbol se desliza en vez de saltar de fila en fila.
  • Un icono se ELIGE en el inspector, no se escribe (1.61.161). Las
    filas de icono llevan un botón que abre el catálogo y otro que lo limpia. Antes
    había que saberse el nombre y teclearlo bien, de un catálogo de unos 660, y una
    errata costaba el icono sin decir nada. El editor de barras usa ahora ese mismo
    catálogo.



Post añadido a las 10:06. Post anterior a las 10:05

  • El Splitter es un panel dividido en dos (1.61.164). Al soltarlo se
    crean Pane1 y Pane2, Panels reales, transparentes y sin borde: salen en el
    árbol, se seleccionan, se estilizan y aceptan controles soltados dentro, porque
    son Panels. Su geometría se deriva de SplitPosition en cada fotograma, de modo
    que nada puede desalinearse respecto de la línea.
  • Cada panel del Splitter decide qué hacen sus controles cuando se mueve la
    línea
    (1.61.171). La propiedad está en el panel, no en el splitter, así que
    las dos mitades pueden comportarse distinto - una franja fija de controles a un
    lado y un lienzo que escala al otro:
    • Trasladar con el divisor (por defecto): los controles mantienen su
      distancia a la línea de división.
    • Escalar dentro del panel: mantienen su posición como fracción del
      panel. Solo se escalan posiciones, nunca tamaños, así que nada se deforma.
    • Anclar al borde exterior: mantienen su distancia al borde de entrada
      de su panel, que es como se comporta un contenedor normal.
    En el diseñador el arrastre reescribe de verdad las X/Y y todo el gesto es un
    solo paso de deshacer. En ejecución el movimiento se deriva de SplitPosition y
    no se escribe nada en el modelo.
  • Un Gauge con zonas conserva el color de cada umbral en su propio tramo
    (1.61.172). Una lectura de 88 con marcas en 70 y 90 salía entera en rojo.
    Ahora el relleno es un tramo por zona atravesada: verde hasta el aviso, ámbar
    desde ahí hasta el crítico, rojo más allá. Ese 88 es verde hasta 70 y ámbar de
    70 a 88, sin nada de rojo, porque la lectura nunca llegó. En los tres estilos:
    arco Radial, anillo Donut y barra Linear. La aguja sigue tomando el color de la
    zona en la que está la lectura.
  • Los tres colores de zona del Gauge son propiedades (1.61.154): zona
    Normal, zona de Aviso y zona Crítica (NormalColor, WarningColor,
    CriticalColor), del mismo selector y con la misma memoria de colores que
    cualquier otra fila de color. Cada una empieza vacía, es decir, con el color
    que el medidor siempre ha pintado.
  • Sunken hunde un control Neumorphic en el formulario (1.61.174). El
    estilo Neumorphic pintaba el mismo relieve saliente dijera lo que dijera
    BorderStyle. Ahora Sunken da la vuelta al relieve: sombra arriba y a la
    izquierda, luz abajo y a la derecha. Fixed3D, Raised y Single conservan el
    relieve de siempre.
  • CollapsedWidth: el ancho del raíl colapsado lo decide el
    desarrollador
    (1.61.178). Nueva propiedad del SideMenu (48 por defecto,
    entre 24 y 200 puntos), con un único valor para el shell en ejecución, el
    lienzo del diseñador y la vista previa.
  • Todos los colores que pinta un control Maps son propiedades
    (1.61.149). Ocho, en la nueva sección de propiedades básicas de Maps, y todas
    escribibles desde COBOL: MarkerColor, MarkerBorderColor, RouteColor,
    RouteCasingColor, RegionFillColor, RegionBorderColor, TileBackgroundColor y
    TileLoadingColor. El color que trae el dato sigue mandando: estas son el
    recurso para la línea que no nombra ninguno.
  • Las propiedades que le faltaban a cada superficie del CheckBox
    (1.61.146). El marco lleva BackgroundColor, BorderStyle, BorderColor y
    BorderWidth; la caja lleva CheckBoxColor, CheckBoxBorderStyle,
    CheckBoxBorderColor y CheckBoxBorderWidth. El círculo del RadioButton es la
    misma superficie y lleva las mismas cuatro.
  • Ruta real por carretera sin credencial de Google (1.61.132).
    TraceRoad(apiKey, latDesde, lngDesde, latHasta, lngHasta) pregunta a
    OpenRouteService y responde en onComplete con tres campos separados por
    tabulador: distancia en metros, duración en segundos y la polilínea codificada,
    lista para AddRoute. La clave es un argumento y la plataforma no la guarda
    en ningún sitio
    : ni en el formulario, ni en el manifiesto del proyecto, ni
    en fichero alguno. El programa se la pide a su operador y pasa lo que este haya
    tecleado.
  • COBOLT_EVENT_TRACE (1.61.143), para un handler que se ejecuta dos
    veces. Con la variable a 1, el anfitrión anota "send" y el intérprete anota
    "dispatch": dos "send" significan que duplica el anfitrión; un "send" con dos
    "dispatch", que duplica el intérprete. Nunca toca el canal de DISPLAY.
  • PowerRustCOBOL pregunta por Rust en el primer arranque, no al pulsar
    Build
    (1.61.128). El IDE diseña formularios y ejecuta programas por su
    cuenta; Build es la excepción, porque compila a través de Rust. En una máquina
    sin Rust eso fallaba tarde y mal. Ahora se pregunta una vez, cuando la
    respuesta todavía es barata, y no se muestra nada si la máquina ya está lista.
  • Un control creado por el agente lo dice (1.61.114): pulso ZoomOut de
    una sola vez, 1000 ms. Todo lo que crea un mismo conjunto de cambios pulsa a la
    vez, así que una petición se lee como un solo gesto. Es puramente visual: no
    llega al .cfrm, ni al COBOL generado, ni a la aplicación construida.
  • A un proyecto antiguo se le OFRECE una actualización, nunca se le
    impone
    (1.61.112). Al abrirlo se enumera qué puede ponerse al día y qué
    aporta cada cambio. Si acepta, se aplica y se guarda en un paso. Si rechaza, no
    cambia nada - el IDE no altera la forma de un proyecto que usted no ha pedido
    cambiar, ni siquiera al guardar - y la oferta vuelve la próxima vez.
  • Solo el formulario principal inicia la aplicación (1.61.112). El IDE
    ejecuta el formulario que usted le pida, que para eso es un diseñador, pero una
    aplicación arranca por su formulario principal, de modo que una pantalla de
    acceso no se puede saltar.
  • Cada manual se lee en el idioma en el que está puesto el IDE.
  • Una skill de Maps para Grace y los especialistas (1.61.126). La
    referencia de propiedades ya llegaba a los agentes, pero una referencia no
    enseña la forma de una solución que funciona.



Post añadido a las 10:08. Post anterior a las 10:06


CORRECCIONES - Splitter y contenedores
  • Un splitter anidado en el panel de otro dejaba atrás su contenido: al
    arrastrar la división exterior se movía el panel, pero lo de dentro del splitter
    interior se quedaba quieto (1.61.185).
  • El divisor arrastra el contenido de un contenedor a cualquier profundidad
    (1.61.182).
  • Un control soltado en un panel del Splitter perdía su tema (1.61.166).
  • El Splitter no dividía nada (1.61.163).
  • Un Splitter era de un color en el lienzo y de otro al ejecutar (1.61.162).
  • Un contenedor recortaba la caja, pero no el texto de dentro (1.61.168).
CORRECCIONES - diseñador e inspector
  • Los tiradores de redimensionado quedaban separados del borde del control
    seleccionado: el borde se dibujaba sobre el rectángulo pintado y los tiradores
    se colocaban desde el del modelo (1.61.185).
  • Las notas de acción del editor de barras se ajustan en su propia línea en
    vez de ensanchar la ventana (1.61.183).
  • Al colapsar el raíl, el contenido del lienzo y de la vista previa se desplaza
    a la izquierda, como ya hacía Run Form (1.61.181).
  • Las filas del diálogo de errores COBOL son enlaces al código que los provoca
    (1.61.180).
  • Los resultados de búsqueda muestran el cursor de mano al pasar por encima
    (1.61.179).
  • El raíl colapsado tenía un ancho distinto en el lienzo y en la vista previa
    (1.61.177).
  • La fila Text del inspector crecía hasta adueñarse del panel (1.61.168).
  • La caja Nodes crecía hasta adueñarse del inspector (1.61.163).
  • Los botones de una fila de icono estaban desalineados respecto de su nombre
    (1.61.163).
  • Una selección soltada perdía su separación entre controles (1.61.139).
  • El panel de propiedades ignoraba una multiselección (1.61.138).
  • Cmd/Ctrl+clic no construía una multiselección (1.61.137).
  • Seleccionar un control ya no lo mueve, y una selección se arrastra como una
    sola (1.61.125).
CORRECCIONES - temas, bordes y dibujado
  • Triángulos negros en las esquinas de los paneles después de visitar un
    formulario con tema (1.61.175).
  • Un control situado más allá del borde diseñado del formulario no se dibujaba
    nunca (1.61.175).
  • Un tema de formulario aplanaba Fixed3D, Raised y Sunken a Single (1.61.173).
  • Los estilos de borde 3D ignoraban el radio de esquina (1.61.170).
  • Un pelo oscuro en las esquinas de un mapa en ejecución (1.61.136).
  • Una cuña gris en cada esquina redondeada de un control con sombra
    (1.61.135).
  • El paquete Neumorphic vestía sus controles con las maquetas de diseño
    (1.61.134).
  • Un texto de ejemplo seguía en pantalla después de escribir encima
    (1.61.134).
  • El radio de esquina no hacía nada en un control Maps (1.61.134).
  • La apariencia de un mapa desaparecía al ejecutar el formulario (1.61.134).
  • Un control Maps no tenía sombra, se configurara como se configurase
    (1.61.134).
  • Un cambio de tema dejaba atrás las propiedades del tema anterior (1.61.134).
  • Leyendas negras sobre un formulario oscuro tras cambiar de tema (1.61.133).
CORRECCIONES - controles
  • Copiar, cortar y pegar de la barra de herramientas no funcionaban en
    ninguna superficie
    , y el fallo era invisible (1.61.184). El propio clic que
    pulsa el botón le quita el foco al campo de texto, así que al ejecutarse la
    acción ningún campo lo tenía. Ahora se toma como recurso el foco tal y como
    estaba antes de la pulsación, una ToolBar en el pie de un SideMenu ejecuta
    también las acciones de plataforma, y cada pulsación muestra su resultado en la
    ventana del formulario en vez de quedarse en stderr.
  • Copiar, cortar y pegar respetan la selección y devuelven el foco al campo
    (1.61.185): copiar toma solo lo seleccionado, pegar sustituye la selección, y
    cortar deja el cursor donde empezaba el texto retirado. Se cuentan caracteres,
    no bytes, así que el texto acentuado o CJK nunca se parte por la mitad.
  • Un Timer no se podía apagar, ni en diseño ni desde COBOL: SET
    Timer-1::Enabled TO 0 no hacía nada y el temporizador seguía disparando
    (1.61.164).
  • Al desplazar un TreeView quedaba una copia fantasma (1.61.163).
  • Un Panel transparente en el pie de un SideMenu mostraba un bloque negro
    (1.61.156).
  • El TreeView no dibujaba ningún árbol, y ninguna de sus propiedades hacía
    nada (1.61.153).
  • Un radio button era un par de paréntesis en todos los temas menos uno
    (1.61.152).
  • El color de un Switch marcado es un color, no una lista de seis nombres
    (1.61.152).
  • Los controles del pie de un SideMenu aparecían junto al raíl al ejecutar el
    formulario (1.61.151).
  • El BackgroundColor de una ToolBar no hacía nada (1.61.150).
  • El texto de una Label no se podía seleccionar ni copiar (1.61.148).
  • La leyenda de un CheckBox se forzaba a contrastar con su casilla en vez de
    con el fondo (1.61.145).
  • Los conectores del árbol atravesaban el icono de su propio nodo, y un icono
    grande pintaba sobre los nodos de arriba y de abajo (1.61.158).



Post añadido a las 10:08. Post anterior a las 10:08


CORRECCIONES - Maps
  • Un zoom se quedaba en gris en vez de mostrar el suelo que ya tenía
    (1.61.155).
  • El zoom saltaba un nivel entero de una vez (1.61.147).
  • Leer una respuesta asíncrona se rechazaba como propiedad inventada
    (1.61.131).
  • Una ruta trazada queda sobre la carretera, no cerca de ella (1.61.130).
  • La etiqueta y la información de un marcador aparecen en algún sitio
    (1.61.126).
  • El control Maps hace las cosas para las que sirve un control de mapa
    (1.61.124).
  • El mapa se mueve como usted lo mueve (1.61.123).
  • El control Maps dibuja un mapa (1.61.122).
  • La ubicación inicial de un mapa no se podía fijar en el diseñador
    (1.61.166).
CORRECCIONES - COBOL y ejecución
  • Un clic ejecutaba el handler dos veces (1.61.144).
  • SET control::Property TO escribía los booleanos con la ortografía antigua
    (1.61.143).
  • IF control::BooleanProperty = FALSE era siempre cierto (1.61.142).
  • TRUE y FALSE funcionan como operandos, no solo en dos sitios especiales
    (1.61.121).
  • Un formulario cargado en el ContentPane aterriza en el ContentPane
    (1.61.117).
CORRECCIONES - IDE y agentes
  • Grace no llegaba a la Base de Conocimiento del Sistema (1.61.169).
    knowledge.search buscaba solo en el almacén del proyecto, mientras que la
    referencia de la plataforma vive en la Base de Conocimiento del Sistema: una
    pregunta sobre la plataforma era estructuralmente incontestable. Ahora se
    buscan las dos, mezcladas por puntuación y con cada extracto etiquetado con su
    almacén, y una búsqueda sin resultados lo dice con palabras en vez de devolver
    la cadena vacía.
  • A un proyecto nuevo se le decía que lo había construido una versión anterior
    (1.61.141).
  • El IDE no arrancaba en un Windows 11 limpio (1.61.140).
  • La referencia de plataforma se detenía en los controles (1.61.129).
  • Un error de IA dice qué ha fallado, arriba del todo y en una frase
    (1.61.120).
  • El Leaderboard suelta los modelos que ya no existen (1.61.119).
  • Abrir la documentación ya no se lleva por delante el IDE (1.61.118).
  • El gestor de proveedores de modelos llega a sus propios ajustes (1.61.116).
  • La revisión que parecía no hacer nada, una prueba que suspendía a modelos
    que funcionaban, y unos ajustes a los que había que bajar con scroll
    (1.61.115).
  • Responder a Grace continúa el trabajo, y el panel de IA se queda donde usted
    lo puso (1.61.113).
Primer arranque
  • macOS: la aplicación no está notarizada, así que el sistema pone en
    cuarentena lo descargado. Pulse con el botón derecho sobre PowerRustCOBOL.app y
    elija Abrir, o límpiela con: xattr -dr com.apple.quarantine PowerRustCOBOL.app
  • Windows: el ejecutable no está firmado, de modo que SmartScreen avisa
    una vez. Elija Más información y luego Ejecutar de todas formas.
  • Linux: hace falta glibc 2.35 o posterior (Ubuntu 22.04 o superior,
    Debian 12 o superior, Fedora 36 o superior) y las bibliotecas de OpenGL, X11 o
    Wayland que su escritorio ya tiene.
Cómo informar de un problema
Esto es una Release Candidate: lo que falta es uso real, en máquinas reales,
con aplicaciones reales. Si algo se rompe, cuéntelo con el control, la
construcción del lenguaje o la configuración que falló - "el evento onClick de
un Button no dispara" sirve; "el botón no funciona" no.
Informar de un problema en GitHub
Guía del Desarrollador de PowerRustCOBOL
Anthropic Claude Codex Agent
Eslopes is offline   Responder Con Cita
  #2
Antiguo 25 de agosto de 2026, 14:49
Joseg
El Foro es mi casa
Activista del Foro: Activista del Foro - Issue reason: Por participación activa Innovación: Por aportar innovaciones - Issue reason: Por aportar soluciones innovadoras en varias ocasiones 
Última Actividad 15.10.2026 18:04
Posts Posts: 407
Likes enviados Enviados: 132
Likes recibidos Recibidos: 181

Espetacular trabalho !!!!!!

Penso que seria muito util um simples projeto que mostre as varias capacidades do ambiente, nomeadamente o uso de "Metodos" e "Propriedades" dos objetos.

Por exemplo, mostrar mnesagens:
Em PowerCobol
Código COBOL:
  1.  INVOKE POW-SELF "DisplayMessage" USING "ISTO É UM TESTE" "TITULO" [Style] RETURNING ReturnValue

Outra dúvida:
Como fazer o auto "resize" dos osbjectos (no Powercobol "ScalingStyle")

Abraço


Citación del post de Eslopes Ver Mensaje
❞
Ya está publicada la Release Candidate 3, con paquetes listos para las
cuatro plataformas. Cada paquete es autocontenido: se descomprime y se ejecuta,
sin runtime que instalar antes.
Descargar la RC3 (v1.61.185RC3)
Código:
+---------------------------------------------+---------------------------+
| Paquete                                     | Para                      |
+---------------------------------------------+---------------------------+
| PowerRustCOBOL-1.61.185-windows-x86_64.zip  | Windows 10 y 11, 64 bits  |
| PowerRustCOBOL-1.61.185-linux-x86_64.tar.gz | Linux 64 bits, glibc 2.35 |
| PowerRustCOBOL-1.61.185-macos-aarch64.tar.gz| Mac con Apple Silicon     |
| PowerRustCOBOL-1.61.185-macos-x86_64.tar.gz | Mac con Intel             |
+---------------------------------------------+---------------------------+
SHA256SUMS acompaña a los paquetes con la suma de comprobación de cada archivo.

A continuación va la lista completa de cambios desde la RC2 (1.61.110).
Entre paréntesis, la versión en la que entró cada uno.
AVISO: dos cambios que rompen formularios guardados

El Splitter se rehízo (1.61.164) y dos de sus propiedades cambian de sentido.
No hay migración silenciosa: preferimos un cambio documentado a reescribir por
nuestra cuenta un diseño que usted guardó.
  • Orientation ahora nombra la disposición de los paneles, no la línea.
    Horizontal = panel 1 a la izquierda y panel 2 a la derecha. Es lo contrario de
    lo que significaba antes, así que un formulario guardado con un Splitter se
    abre con los paneles al revés.
  • SplitPosition es un porcentaje (0-100), ya no un desplazamiento en
    puntos.


NUEVAS CAPACIDADES

  • Diagnósticos que nombran su código, y búsqueda de código en todo el
    proyecto
    (1.61.176). Un Check ya no informa "842:17" contra un artefacto
    generado: la fila dice MAIN-FORM > BTN-OK > onClick - 3:12, cita la línea
    culpable y marca la columna, y al pulsarla se abre el editor propietario con el
    cursor en esa línea. El .cbl generado no se abre nunca. Además, Ver > Búsqueda
    de código, el botón de la barra o Ctrl/Cmd+Shift+F abren una ventana persistente
    que busca en todos los sitios de código de todos los formularios, incluido el
    texto sin guardar, más el Common Code.
  • TreeView: plegado, iconos y ninguna medida fija (1.61.157). Un nodo
    con hijos dibuja su flecha, al pulsarla se escribe CollapsedNodes y se disparan
    onNodeCollapse / onNodeExpand. Los iconos salen del catálogo de la plataforma y
    cada nodo puede nombrar el suyo. Todas las medidas son propiedades: RowHeight,
    IndentWidth, IconSize, CheckBoxSize, IconColor, SelectionColor, HotTrackColor.
    La tinta de alto contraste se elige por relación de contraste contra la cara
    sobre la que se pinta el árbol.
  • Un evento de nodo dice QUE nodo lo disparó (1.61.158). El handler
    recibe en la LINKAGE SECTION un grupo con CONTROL-NODE, CONTROL-NODE-INDEX,
    CONTROL-NODE-LEVEL y CONTROL-NODE-CHECKED. Antes solo onNodeClick podía
    responderse, leyendo SelectedNode; onNodeCheck, onNodeCollapse y onNodeExpand no
    tenían forma de saberlo. Indice y nivel son base 1, como cuenta COBOL.
  • Un handler puede recorrer el árbol, y un nodo puede vestirse solo
    (1.61.159). Recorrido: NodeParent, NodeFirstChild, NodeLastChild,
    NodeNextSibling, NodePrevSibling, NodeChildCount, NodeHasChildren; devuelven -1
    cuando no hay tal nodo, que es lo que termina un recorrido. Lectura: NodeText,
    NodeName, NodePath, NodeLevel, NodeIcon, NodeColor, NodeBackColor, NodeChecked,
    NodeCollapsed, NodeCount y NodeIndexOf. Y AddNode(nivel, texto [, icono, color,
    fondo]) construye un árbol desde COBOL, cosa que AddItem no podía hacer.
  • La casilla del TreeView se viste como un CheckBox (1.61.159): lleva
    las mismas cinco propiedades (CheckBoxColor, CheckBoxBorderStyle,
    CheckBoxBorderColor, CheckBoxBorderWidth, CheckColor, CheckSize) y dibuja la
    misma marca.
  • El TreeView se desplaza en vez de tirar lo que no cabe (1.61.160).
    Tres formas, ninguna con propiedad que configurar: la rueda con el puntero
    encima, el arrastre sobre el árbol, y Arriba / Abajo / Inicio / Fin cuando el
    árbol tiene el foco. Una fila a caballo del borde se recorta en lugar de
    descartarse, así que el árbol se desliza en vez de saltar de fila en fila.
  • Un icono se ELIGE en el inspector, no se escribe (1.61.161). Las
    filas de icono llevan un botón que abre el catálogo y otro que lo limpia. Antes
    había que saberse el nombre y teclearlo bien, de un catálogo de unos 660, y una
    errata costaba el icono sin decir nada. El editor de barras usa ahora ese mismo
    catálogo.



Post añadido a las 10:06. Post anterior a las 10:05

  • El Splitter es un panel dividido en dos (1.61.164). Al soltarlo se
    crean Pane1 y Pane2, Panels reales, transparentes y sin borde: salen en el
    árbol, se seleccionan, se estilizan y aceptan controles soltados dentro, porque
    son Panels. Su geometría se deriva de SplitPosition en cada fotograma, de modo
    que nada puede desalinearse respecto de la línea.
  • Cada panel del Splitter decide qué hacen sus controles cuando se mueve la
    línea
    (1.61.171). La propiedad está en el panel, no en el splitter, así que
    las dos mitades pueden comportarse distinto - una franja fija de controles a un
    lado y un lienzo que escala al otro:
    • Trasladar con el divisor (por defecto): los controles mantienen su
      distancia a la línea de división.
    • Escalar dentro del panel: mantienen su posición como fracción del
      panel. Solo se escalan posiciones, nunca tamaños, así que nada se deforma.
    • Anclar al borde exterior: mantienen su distancia al borde de entrada
      de su panel, que es como se comporta un contenedor normal.
    En el diseñador el arrastre reescribe de verdad las X/Y y todo el gesto es un
    solo paso de deshacer. En ejecución el movimiento se deriva de SplitPosition y
    no se escribe nada en el modelo.
  • Un Gauge con zonas conserva el color de cada umbral en su propio tramo
    (1.61.172). Una lectura de 88 con marcas en 70 y 90 salía entera en rojo.
    Ahora el relleno es un tramo por zona atravesada: verde hasta el aviso, ámbar
    desde ahí hasta el crítico, rojo más allá. Ese 88 es verde hasta 70 y ámbar de
    70 a 88, sin nada de rojo, porque la lectura nunca llegó. En los tres estilos:
    arco Radial, anillo Donut y barra Linear. La aguja sigue tomando el color de la
    zona en la que está la lectura.
  • Los tres colores de zona del Gauge son propiedades (1.61.154): zona
    Normal, zona de Aviso y zona Crítica (NormalColor, WarningColor,
    CriticalColor), del mismo selector y con la misma memoria de colores que
    cualquier otra fila de color. Cada una empieza vacía, es decir, con el color
    que el medidor siempre ha pintado.
  • Sunken hunde un control Neumorphic en el formulario (1.61.174). El
    estilo Neumorphic pintaba el mismo relieve saliente dijera lo que dijera
    BorderStyle. Ahora Sunken da la vuelta al relieve: sombra arriba y a la
    izquierda, luz abajo y a la derecha. Fixed3D, Raised y Single conservan el
    relieve de siempre.
  • CollapsedWidth: el ancho del raíl colapsado lo decide el
    desarrollador
    (1.61.178). Nueva propiedad del SideMenu (48 por defecto,
    entre 24 y 200 puntos), con un único valor para el shell en ejecución, el
    lienzo del diseñador y la vista previa.
  • Todos los colores que pinta un control Maps son propiedades
    (1.61.149). Ocho, en la nueva sección de propiedades básicas de Maps, y todas
    escribibles desde COBOL: MarkerColor, MarkerBorderColor, RouteColor,
    RouteCasingColor, RegionFillColor, RegionBorderColor, TileBackgroundColor y
    TileLoadingColor. El color que trae el dato sigue mandando: estas son el
    recurso para la línea que no nombra ninguno.
  • Las propiedades que le faltaban a cada superficie del CheckBox
    (1.61.146). El marco lleva BackgroundColor, BorderStyle, BorderColor y
    BorderWidth; la caja lleva CheckBoxColor, CheckBoxBorderStyle,
    CheckBoxBorderColor y CheckBoxBorderWidth. El círculo del RadioButton es la
    misma superficie y lleva las mismas cuatro.
  • Ruta real por carretera sin credencial de Google (1.61.132).
    TraceRoad(apiKey, latDesde, lngDesde, latHasta, lngHasta) pregunta a
    OpenRouteService y responde en onComplete con tres campos separados por
    tabulador: distancia en metros, duración en segundos y la polilínea codificada,
    lista para AddRoute. La clave es un argumento y la plataforma no la guarda
    en ningún sitio
    : ni en el formulario, ni en el manifiesto del proyecto, ni
    en fichero alguno. El programa se la pide a su operador y pasa lo que este haya
    tecleado.
  • COBOLT_EVENT_TRACE (1.61.143), para un handler que se ejecuta dos
    veces. Con la variable a 1, el anfitrión anota "send" y el intérprete anota
    "dispatch": dos "send" significan que duplica el anfitrión; un "send" con dos
    "dispatch", que duplica el intérprete. Nunca toca el canal de DISPLAY.
  • PowerRustCOBOL pregunta por Rust en el primer arranque, no al pulsar
    Build
    (1.61.128). El IDE diseña formularios y ejecuta programas por su
    cuenta; Build es la excepción, porque compila a través de Rust. En una máquina
    sin Rust eso fallaba tarde y mal. Ahora se pregunta una vez, cuando la
    respuesta todavía es barata, y no se muestra nada si la máquina ya está lista.
  • Un control creado por el agente lo dice (1.61.114): pulso ZoomOut de
    una sola vez, 1000 ms. Todo lo que crea un mismo conjunto de cambios pulsa a la
    vez, así que una petición se lee como un solo gesto. Es puramente visual: no
    llega al .cfrm, ni al COBOL generado, ni a la aplicación construida.
  • A un proyecto antiguo se le OFRECE una actualización, nunca se le
    impone
    (1.61.112). Al abrirlo se enumera qué puede ponerse al día y qué
    aporta cada cambio. Si acepta, se aplica y se guarda en un paso. Si rechaza, no
    cambia nada - el IDE no altera la forma de un proyecto que usted no ha pedido
    cambiar, ni siquiera al guardar - y la oferta vuelve la próxima vez.
  • Solo el formulario principal inicia la aplicación (1.61.112). El IDE
    ejecuta el formulario que usted le pida, que para eso es un diseñador, pero una
    aplicación arranca por su formulario principal, de modo que una pantalla de
    acceso no se puede saltar.
  • Cada manual se lee en el idioma en el que está puesto el IDE.
  • Una skill de Maps para Grace y los especialistas (1.61.126). La
    referencia de propiedades ya llegaba a los agentes, pero una referencia no
    enseña la forma de una solución que funciona.



Post añadido a las 10:08. Post anterior a las 10:06


CORRECCIONES - Splitter y contenedores
  • Un splitter anidado en el panel de otro dejaba atrás su contenido: al
    arrastrar la división exterior se movía el panel, pero lo de dentro del splitter
    interior se quedaba quieto (1.61.185).
  • El divisor arrastra el contenido de un contenedor a cualquier profundidad
    (1.61.182).
  • Un control soltado en un panel del Splitter perdía su tema (1.61.166).
  • El Splitter no dividía nada (1.61.163).
  • Un Splitter era de un color en el lienzo y de otro al ejecutar (1.61.162).
  • Un contenedor recortaba la caja, pero no el texto de dentro (1.61.168).
CORRECCIONES - diseñador e inspector
  • Los tiradores de redimensionado quedaban separados del borde del control
    seleccionado: el borde se dibujaba sobre el rectángulo pintado y los tiradores
    se colocaban desde el del modelo (1.61.185).
  • Las notas de acción del editor de barras se ajustan en su propia línea en
    vez de ensanchar la ventana (1.61.183).
  • Al colapsar el raíl, el contenido del lienzo y de la vista previa se desplaza
    a la izquierda, como ya hacía Run Form (1.61.181).
  • Las filas del diálogo de errores COBOL son enlaces al código que los provoca
    (1.61.180).
  • Los resultados de búsqueda muestran el cursor de mano al pasar por encima
    (1.61.179).
  • El raíl colapsado tenía un ancho distinto en el lienzo y en la vista previa
    (1.61.177).
  • La fila Text del inspector crecía hasta adueñarse del panel (1.61.168).
  • La caja Nodes crecía hasta adueñarse del inspector (1.61.163).
  • Los botones de una fila de icono estaban desalineados respecto de su nombre
    (1.61.163).
  • Una selección soltada perdía su separación entre controles (1.61.139).
  • El panel de propiedades ignoraba una multiselección (1.61.138).
  • Cmd/Ctrl+clic no construía una multiselección (1.61.137).
  • Seleccionar un control ya no lo mueve, y una selección se arrastra como una
    sola (1.61.125).
CORRECCIONES - temas, bordes y dibujado
  • Triángulos negros en las esquinas de los paneles después de visitar un
    formulario con tema (1.61.175).
  • Un control situado más allá del borde diseñado del formulario no se dibujaba
    nunca (1.61.175).
  • Un tema de formulario aplanaba Fixed3D, Raised y Sunken a Single (1.61.173).
  • Los estilos de borde 3D ignoraban el radio de esquina (1.61.170).
  • Un pelo oscuro en las esquinas de un mapa en ejecución (1.61.136).
  • Una cuña gris en cada esquina redondeada de un control con sombra
    (1.61.135).
  • El paquete Neumorphic vestía sus controles con las maquetas de diseño
    (1.61.134).
  • Un texto de ejemplo seguía en pantalla después de escribir encima
    (1.61.134).
  • El radio de esquina no hacía nada en un control Maps (1.61.134).
  • La apariencia de un mapa desaparecía al ejecutar el formulario (1.61.134).
  • Un control Maps no tenía sombra, se configurara como se configurase
    (1.61.134).
  • Un cambio de tema dejaba atrás las propiedades del tema anterior (1.61.134).
  • Leyendas negras sobre un formulario oscuro tras cambiar de tema (1.61.133).
CORRECCIONES - controles
  • Copiar, cortar y pegar de la barra de herramientas no funcionaban en
    ninguna superficie
    , y el fallo era invisible (1.61.184). El propio clic que
    pulsa el botón le quita el foco al campo de texto, así que al ejecutarse la
    acción ningún campo lo tenía. Ahora se toma como recurso el foco tal y como
    estaba antes de la pulsación, una ToolBar en el pie de un SideMenu ejecuta
    también las acciones de plataforma, y cada pulsación muestra su resultado en la
    ventana del formulario en vez de quedarse en stderr.
  • Copiar, cortar y pegar respetan la selección y devuelven el foco al campo
    (1.61.185): copiar toma solo lo seleccionado, pegar sustituye la selección, y
    cortar deja el cursor donde empezaba el texto retirado. Se cuentan caracteres,
    no bytes, así que el texto acentuado o CJK nunca se parte por la mitad.
  • Un Timer no se podía apagar, ni en diseño ni desde COBOL: SET
    Timer-1::Enabled TO 0 no hacía nada y el temporizador seguía disparando
    (1.61.164).
  • Al desplazar un TreeView quedaba una copia fantasma (1.61.163).
  • Un Panel transparente en el pie de un SideMenu mostraba un bloque negro
    (1.61.156).
  • El TreeView no dibujaba ningún árbol, y ninguna de sus propiedades hacía
    nada (1.61.153).
  • Un radio button era un par de paréntesis en todos los temas menos uno
    (1.61.152).
  • El color de un Switch marcado es un color, no una lista de seis nombres
    (1.61.152).
  • Los controles del pie de un SideMenu aparecían junto al raíl al ejecutar el
    formulario (1.61.151).
  • El BackgroundColor de una ToolBar no hacía nada (1.61.150).
  • El texto de una Label no se podía seleccionar ni copiar (1.61.148).
  • La leyenda de un CheckBox se forzaba a contrastar con su casilla en vez de
    con el fondo (1.61.145).
  • Los conectores del árbol atravesaban el icono de su propio nodo, y un icono
    grande pintaba sobre los nodos de arriba y de abajo (1.61.158).



Post añadido a las 10:08. Post anterior a las 10:08


CORRECCIONES - Maps
  • Un zoom se quedaba en gris en vez de mostrar el suelo que ya tenía
    (1.61.155).
  • El zoom saltaba un nivel entero de una vez (1.61.147).
  • Leer una respuesta asíncrona se rechazaba como propiedad inventada
    (1.61.131).
  • Una ruta trazada queda sobre la carretera, no cerca de ella (1.61.130).
  • La etiqueta y la información de un marcador aparecen en algún sitio
    (1.61.126).
  • El control Maps hace las cosas para las que sirve un control de mapa
    (1.61.124).
  • El mapa se mueve como usted lo mueve (1.61.123).
  • El control Maps dibuja un mapa (1.61.122).
  • La ubicación inicial de un mapa no se podía fijar en el diseñador
    (1.61.166).
CORRECCIONES - COBOL y ejecución
  • Un clic ejecutaba el handler dos veces (1.61.144).
  • SET control::Property TO escribía los booleanos con la ortografía antigua
    (1.61.143).
  • IF control::BooleanProperty = FALSE era siempre cierto (1.61.142).
  • TRUE y FALSE funcionan como operandos, no solo en dos sitios especiales
    (1.61.121).
  • Un formulario cargado en el ContentPane aterriza en el ContentPane
    (1.61.117).
CORRECCIONES - IDE y agentes
  • Grace no llegaba a la Base de Conocimiento del Sistema (1.61.169).
    knowledge.search buscaba solo en el almacén del proyecto, mientras que la
    referencia de la plataforma vive en la Base de Conocimiento del Sistema: una
    pregunta sobre la plataforma era estructuralmente incontestable. Ahora se
    buscan las dos, mezcladas por puntuación y con cada extracto etiquetado con su
    almacén, y una búsqueda sin resultados lo dice con palabras en vez de devolver
    la cadena vacía.
  • A un proyecto nuevo se le decía que lo había construido una versión anterior
    (1.61.141).
  • El IDE no arrancaba en un Windows 11 limpio (1.61.140).
  • La referencia de plataforma se detenía en los controles (1.61.129).
  • Un error de IA dice qué ha fallado, arriba del todo y en una frase
    (1.61.120).
  • El Leaderboard suelta los modelos que ya no existen (1.61.119).
  • Abrir la documentación ya no se lleva por delante el IDE (1.61.118).
  • El gestor de proveedores de modelos llega a sus propios ajustes (1.61.116).
  • La revisión que parecía no hacer nada, una prueba que suspendía a modelos
    que funcionaban, y unos ajustes a los que había que bajar con scroll
    (1.61.115).
  • Responder a Grace continúa el trabajo, y el panel de IA se queda donde usted
    lo puso (1.61.113).
Primer arranque
  • macOS: la aplicación no está notarizada, así que el sistema pone en
    cuarentena lo descargado. Pulse con el botón derecho sobre PowerRustCOBOL.app y
    elija Abrir, o límpiela con: xattr -dr com.apple.quarantine PowerRustCOBOL.app
  • Windows: el ejecutable no está firmado, de modo que SmartScreen avisa
    una vez. Elija Más información y luego Ejecutar de todas formas.
  • Linux: hace falta glibc 2.35 o posterior (Ubuntu 22.04 o superior,
    Debian 12 o superior, Fedora 36 o superior) y las bibliotecas de OpenGL, X11 o
    Wayland que su escritorio ya tiene.
Cómo informar de un problema
Esto es una Release Candidate: lo que falta es uso real, en máquinas reales,
con aplicaciones reales. Si algo se rompe, cuéntelo con el control, la
construcción del lenguaje o la configuración que falló - "el evento onClick de
un Button no dispara" sirve; "el botón no funciona" no.
Informar de un problema en GitHub
Guía del Desarrollador de PowerRustCOBOL
Anthropic Claude Codex Agent
Joseg is offline   Responder Con Cita
  #3
Antiguo 25 de agosto de 2026, 16:11
Eslopes
Creador de
PowerRustCOBOL
Guru de los Gurus: Por solidos y amplios conocimientos - Issue reason: Por ámplios conocimientos en la materia Concurso: Tercer puesto: Ganador/a del Tercer puesto en un concurso - Issue reason: Juego  Innovación: Por aportar innovaciones - Issue reason: Por aportar soluciones innovadoras 
Última Actividad 27.10.2026 07:38
Posts Posts: 396
Likes enviados Enviados: 31
Likes recibidos Recibidos: 172

Citación del post de Joseg Ver Mensaje
❞
Espetacular trabalho !!!!!!

Penso que seria muito util um simples projeto que mostre as varias capacidades do ambiente, nomeadamente o uso de "Metodos" e "Propriedades" dos objetos.

Por exemplo, mostrar mnesagens:
Em PowerCobol
Código COBOL:
  1.  INVOKE POW-SELF "DisplayMessage" USING "ISTO É UM TESTE" "TITULO" [Style] RETURNING ReturnValue

Outra dúvida:
Como fazer o auto "resize" dos osbjectos (no Powercobol "ScalingStyle")

Abraço
Breve, junto com RC4 teremos exemplos para cada controle (métodos e propriedades), além de exemplos de uso de crates Rust para tratar JSON, XML, gerar markdown e outros.


Como fazer o auto "resize" dos osbjectos (no Powercobol "ScalingStyle")
Não conhecia este recurso. Vou me assegurar que esteja presente no RC4.


Att.
Eslopes is offline   Responder Con Cita
  #4
Antiguo 25 de agosto de 2026, 17:10
Joseg
El Foro es mi casa
Activista del Foro: Activista del Foro - Issue reason: Por participación activa Innovación: Por aportar innovaciones - Issue reason: Por aportar soluciones innovadoras en varias ocasiones 
Última Actividad 15.10.2026 18:04
Posts Posts: 407
Likes enviados Enviados: 132
Likes recibidos Recibidos: 181

Citación del post de Eslopes Ver Mensaje
❞
Breve, junto com RC4 teremos exemplos para cada controle (métodos e propriedades), além de exemplos de uso de crates Rust para tratar JSON, XML, gerar markdown e outros.


Como fazer o auto "resize" dos osbjectos (no Powercobol "ScalingStyle")
Não conhecia este recurso. Vou me assegurar que esteja presente no RC4.


Att.
Thanks!!!

Ao tentar compilar qualquer projeto em windows11 / RC3, um formulario + 1 botão (anteriormente conseguia...):

"Cecking the Rust toolchain…
Build failed: could not locate the PowerRustCOBOL workspace crates: looked via the running executable and the build-time path, but found no 'crates/cobolt-ast'. Pass BuildOptions.workspace_root, or run the IDE from within the PowerRustCOBOL source tree. (project dir: \\?\D:\Git\WorkSpace)"
Joseg is offline   Responder Con Cita
  #5
Antiguo 25 de agosto de 2026, 19:50
Eslopes
Creador de
PowerRustCOBOL
Guru de los Gurus: Por solidos y amplios conocimientos - Issue reason: Por ámplios conocimientos en la materia Concurso: Tercer puesto: Ganador/a del Tercer puesto en un concurso - Issue reason: Juego  Innovación: Por aportar innovaciones - Issue reason: Por aportar soluciones innovadoras 
Última Actividad 27.10.2026 07:38
Posts Posts: 396
Likes enviados Enviados: 31
Likes recibidos Recibidos: 172

Citación del post de Joseg Ver Mensaje
❞
Thanks!!!

Ao tentar compilar qualquer projeto em windows11 / RC3, um formulario + 1 botão (anteriormente conseguia...):

"Cecking the Rust toolchain…
Build failed: could not locate the PowerRustCOBOL workspace crates: looked via the running executable and the build-time path, but found no 'crates/cobolt-ast'. Pass BuildOptions.workspace_root, or run the IDE from within the PowerRustCOBOL source tree. (project dir: \\?\D:\Git\WorkSpace)"

-->run the IDE from within the PowerRustCOBOL source tree. (project dir: D:\Git\WorkSpace)
Eslopes is offline   Responder Con Cita
  #6
Antiguo 26 de agosto de 2026, 11:52
Joseg
El Foro es mi casa
Activista del Foro: Activista del Foro - Issue reason: Por participación activa Innovación: Por aportar innovaciones - Issue reason: Por aportar soluciones innovadoras en varias ocasiones 
Última Actividad 15.10.2026 18:04
Posts Posts: 407
Likes enviados Enviados: 132
Likes recibidos Recibidos: 181

Citación del post de Eslopes Ver Mensaje
❞
-->run the IDE from within the PowerRustCOBOL source tree. (project dir: D:\Git\WorkSpace)
Não sei se entendi bem, mas executado desta forma dá o mesmo resultado

D:\Git\WorkSpace>..\Git\PowerRustCOBOL\PowerRustCO BOL.exe


Criando atalho e nas propriedades em "Iniciar em: D:\Git\WorkSpace"
Também não funcionou.
Joseg is offline   Responder Con Cita
  #7
Antiguo 27 de agosto de 2026, 20:06
Joseg
El Foro es mi casa
Activista del Foro: Activista del Foro - Issue reason: Por participación activa Innovación: Por aportar innovaciones - Issue reason: Por aportar soluciones innovadoras en varias ocasiones 
Última Actividad 15.10.2026 18:04
Posts Posts: 407
Likes enviados Enviados: 132
Likes recibidos Recibidos: 181

Nos meus testes com com escrita em ISAM files.

Código COBOL:
  1.  
  2. SELECT CUSTOMER-FILE ASSIGN TO "data/customers.idx"
  3.            ORGANIZATION IS INDEXED
  4.            ACCESS MODE IS INDEXED
  5.            RECORD KEY IS RECORD-KEY
  6.            STATUS WSTATUS
  7.            STORAGE MODE IS DISK.
  8. ...
  9.   FD CUSTOMER-FILE  GLOBAL.
  10.   01 CUSTOMER-FILE-RECORD.
  11.            05 RECORD-KEY  PIC X(08).
  12.            05 NOME            PIC X(50).
  13.            05 MORADA        PIC X(50).
  14. ...
  15.       WRITE CUSTOMER-FILE-RECORD INVALID KEY REWRITE CUSTOMER-FILE-RECORD.

Dá erro ao compilar usando a instrução "REWRITE". Não esta implementada esta instrução? Por exemplo se STATUS 22 , reescrever o registo.
Obrigado.
Joseg is offline   Responder Con Cita
  #8
Antiguo 28 de agosto de 2026, 00:43
Eslopes
Creador de
PowerRustCOBOL
Guru de los Gurus: Por solidos y amplios conocimientos - Issue reason: Por ámplios conocimientos en la materia Concurso: Tercer puesto: Ganador/a del Tercer puesto en un concurso - Issue reason: Juego  Innovación: Por aportar innovaciones - Issue reason: Por aportar soluciones innovadoras 
Última Actividad 27.10.2026 07:38
Posts Posts: 396
Likes enviados Enviados: 31
Likes recibidos Recibidos: 172

Seu código está correto e o REWRITE está implementado e funciona corretamente. O erro foi causado pelo Lexer do RustCOBOL (um problema que está sendo resolvido neste momento). O nome da chave do arquivo é RECORD-KEY e o lexer atualmente confunde-se e trata RECORD-KEY como uma palavra reservada ("RECORD-KEY" => Token::RecordKey,). O mesmo ocorre com outras palavras (ex: ALTERNATE-RECORD-KEY)

Renomeie a chave para um nome tipo RECKEY ou CUST-KEY ou outro nome que não faça o lexer confundir com uma palavra reservada.

Atualmente o agente está corrigindo o lexer e o compilador para que este tipo de erro não ocorra (o RC4 vai inclusive trazer 100% de aderência ao NIST).

Att. Emerson

PS: Para verificar outras possíveis colisões veja o arquivo ~/PowerRustCOBOL/crates/cobolt-lexer/src/keywords.rs
PS2: COBOL não facilita a vida de ninguém usando hifén como separador de palavras (END-DISPLAY, DATE-WRITTEN, PROGRAM-ID etc). Qualquer outra linguagem de programação entende que "-" é o sinal de menos, só COBOL faz esta confusão.



Post añadido a las 18:43. Post anterior a las 18:37


Mais alguns detalhes apontados pelo agente:

ACCESS MODE IS INDEXED — erro do utilizador e bug nosso

ACCESS MODE só aceita SEQUENTIAL | RANDOM | DYNAMIC. INDEXED é uma ORGANIZATION, não um access mode — é erro dele.

Mas nós engolimos o valor inválido sem um único diagnóstico (parser.rs:1097: nenhum dos três eat bate, o token cai no _ => p.advance()), e o acesso fica no default SEQUENTIAL. O resultado é pior do que um erro de compilação — falha silenciosa em runtime. O mesmo programa, só com INDEXED em vez de DYNAMIC no ACCESS MODE:

WRITE dup ST=22
REWRITE ST=46 ← e o registo NÃO foi atualizado (READ devolve "ANA")

Porque interpreter.rs:5750 decide random = spec.access != Sequential; em SEQUENTIAL o REWRITE endereça o registo corrente, que sem um READ prévio não existe → 46. Ou seja: mesmo depois de corrigir o nome do campo, o padrão dele continuaria a não funcionar, e sem dizer porquê.

Detalhe menor

STATUS WSTATUS — aceitamos, mas a grafia standard é FILE STATUS IS WSTATUS. Não é a causa do erro; só portabilidade.
Eslopes is offline   Responder Con Cita
  #9
Antiguo 28 de agosto de 2026, 13:14
Joseg
El Foro es mi casa
Activista del Foro: Activista del Foro - Issue reason: Por participación activa Innovación: Por aportar innovaciones - Issue reason: Por aportar soluciones innovadoras en varias ocasiones 
Última Actividad 15.10.2026 18:04
Posts Posts: 407
Likes enviados Enviados: 132
Likes recibidos Recibidos: 181

Não resolveu.

Código COBOL:
  1. FD CUSTOMER-FILE  GLOBAL.
  2.   01 CUSTOMERFILERECORD.
  3.            05 RECORDKEY   PIC X(08).
  4.            05 NOME            PIC X(50).
  5.            05 MORADA        PIC X(50).

E se comentar a linha com "*" na coluna 7, continua a dar erro. Só valida se digitar "*>".
Joseg is offline   Responder Con Cita
  #10
Antiguo 28 de agosto de 2026, 19:36
Eslopes
Creador de
PowerRustCOBOL
Guru de los Gurus: Por solidos y amplios conocimientos - Issue reason: Por ámplios conocimientos en la materia Concurso: Tercer puesto: Ganador/a del Tercer puesto en un concurso - Issue reason: Juego  Innovación: Por aportar innovaciones - Issue reason: Por aportar soluciones innovadoras 
Última Actividad 27.10.2026 07:38
Posts Posts: 396
Likes enviados Enviados: 31
Likes recibidos Recibidos: 172

Citación del post de Joseg Ver Mensaje
❞
Não resolveu.

Código COBOL:
  1. FD CUSTOMER-FILE  GLOBAL.
  2.   01 CUSTOMERFILERECORD.
  3.            05 RECORDKEY   PIC X(08).
  4.            05 NOME            PIC X(50).
  5.            05 MORADA        PIC X(50).

E se comentar a linha com "*" na coluna 7, continua a dar erro. Só valida se digitar "*>".
Experimente CUST-KEY ou RECKEY.


O padrão de código free format não prevê comentários na linha 7. Apenas fixed format permite comentários e - para continuação, mas também requer o limite da coluna 72. Ou um ou o outro, os dois ao mesmo tempo não são uma possibilidade neste momento.
Eslopes is offline   Responder Con Cita
Respuesta


Herramientas

Derechos de Publicación
No puedes publicar nuevos temas
No puedes publicar posts/responder
No puedes adjuntar archivos
No puedes editar tus posts

BB code is habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado

Saltar a Foro


La franja horaria es GMT +2. Ahora son las 09:49.
Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.