Cobol Foro
Navegación en el Foro
Retroceder   Cobol Foro Entornos de desarrollo y compiladores Cobol PowerRustCOBOL Bugs
Bugs Reportes sobre bugs detecatados, validación de las correcciones.
 
Respuesta

  #1
Antiguo Ayer, 03:32
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 06.10.2026 01:46
Posts Posts: 371
Likes enviados Enviados: 30
Likes recibidos Recibidos: 163
Predeterminado Correcciones 1.80.33 - 1.80.187
0 Inactivo Inactivo

Correcciones PowerRustCOBOL AI 1.80.33 - 1.80.187

Esta entrega reúne las correcciones publicadas en la rama principal desde el último aviso (1.80.74), más tres de la serie 1.80.33-1.80.37 que no se habían anunciado. Todas están ya en main.

⚠️ Cambio incompatible: los índices empiezan en 1
  • 1.80.148 - Todo índice que un control entrega a COBOL cuenta desde 1, y 0 significa "ninguno". Antes las posiciones empezaban en 0 y "ninguno" era -1, mientras que toda tabla COBOL empieza en 1, así que cada manejador tenía que sumar o restar 1. Afecta a SelectedIndex, GetSelectedIndex() / GetIndex() y SetSelectedIndex(n) de ListBox y ComboBox; a SelectedTab y a la página de cada control en un TabControl; a los niveles y recorridos del TreeView; a LastButtonIndex del Snackbar; a SearchCurrentMatch del Viewer; y a los subíndices de cadena: Grid-1::Rows(1) es la primera fila. RemoveItem(texto) elimina ahora el elemento con ese texto, como decía la documentación, y el nuevo RemoveAt(n) elimina por posición.

Los formularios (.cfrm) se convierten solos la primera vez que se abren y se guardan con index-base="1"; el código COBOL de los manejadores no se toca. Revise las comparaciones con -1 y los usos de SelectedIndex, SelectedTab, GetIndex, LastButtonIndex, Rows( e Items(. No guarde un formulario con un IDE anterior a la 1.80.148: perdería la marca y los índices se desplazarían otra vez.

Código:
       MOVE CBO-UF::GetSelectedIndex() TO WS-I
      *> Before: -1 = nothing selected, 0 = first item
      *> Now:     0 = nothing selected, 1 = first item
       IF WS-I = 0
          DISPLAY "No state selected"
       END-IF
Lenguaje y compilador
  • 1.80.142 - Un control que no existe es un error de compilación. Antes, un nombre mal escrito en una llamada a método (por ejemplo INVOKE btn-xxxxxxx::disable()), en el destino de un MOVE/SET o dentro de una expresión compilaba sin aviso y, en ejecución, no hacía nada. Ahora Run Form y Build lo rechazan con un error que nombra el receptor y sugiere el nombre más parecido. Por ahora, Build analiza solo el programa del formulario principal, y el Check del IDE todavía no recibe el contexto del formulario.
  • 1.80.167 - Los manejadores de un formulario pueden hacer CALL al Common Code. La guía siempre dijo que la lógica reutilizable va en Common Code (src/), pero ningún host la enlazaba con el programa del formulario: el CALL terminaba en "unknown program". Ahora se enlaza como programas anidados, con su propio almacenamiento, ficheros y LINKAGE, en Run Form y en la aplicación compilada.
  • 1.80.166 - ASSIGN TO dato dentro de un programa anidado abre el fichero que el dato nombra. Antes creaba un fichero con el NOMBRE del dato (WS-PATH) en la carpeta de trabajo. Los módulos NIST SQ, IX, RL e IC siguen al 100 %.
  • 1.80.163 - Un formulario abierto con un id rellenado con espacios encuentra su programa generado, en Run Form y en el binario compilado ("has no generated program yet").
  • 1.80.164 - rcrun run-form forms/x.cfrm ejecutado en la carpeta del proyecto abre los formularios hijos.

Código:
      *> In a form's handler: SET-LANGUAGE is a program in src/
       CALL "SET-LANGUAGE" USING WS-LANG
Ficheros indexados
  • 1.80.37 - Un único formato en disco, y un fichero MEMORY sin PERSISTENCE es de solo lectura. STORAGE IS MEMORY WITH PERSISTENCE guarda ahora en el mismo contenedor que DISK (PRCIDXD1), y un fichero antiguo se convierte la primera vez que se abre para escritura. Sin WITH PERSISTENCE, solo se permite OPEN INPUT: OUTPUT, I-O y EXTEND devuelven el nuevo estado 37 y no tocan el fichero. Antes, las escrituras se perdían en silencio al cerrar y un OPEN OUTPUT vaciaba el fichero en disco. Las ediciones hechas en la rejilla del IDE sobre estos ficheros ahora se guardan. Contrapartida medida: cerrar 100.000 registros tarda 6,1 s en vez de 18 ms, y el fichero ocupa más.
  • 1.80.36 - Documentación: importar un fichero de datos trae sus claves, no los nombres de campo ni las PICTURE (las claves llegan como PIC X(n) y el resto como FILLER-n).

Código:
       OPEN OUTPUT CUSTOMERS
       IF WS-FS = "37"
          DISPLAY "MEMORY file without PERSISTENCE: read-only"
       END-IF
Formularios en ejecución
  • 1.80.145 - Escribir el Value de una lista mueve su SelectedIndex, y las listas de solo selección buscan al teclear. Con MOVE EMP-UF TO CBO-UF::Value la combo mostraba "SP", pero GetSelectedIndex() seguía devolviendo la posición anterior. Ahora el índice pasa al primer elemento igual al valor (ignorando los espacios finales del campo COBOL), o a 0 si ninguno coincide. En un ListBox y en una ComboBox de solo selección, una letra o un dígito salta al primer elemento que empieza por ella; otra tecla en menos de 700 ms amplía la búsqueda.
  • 1.80.183 - El aviso de error crítico muestra el mensaje completo. Antes se cortaba con "…" tras dos líneas, y se perdía justo el final, que suele decir qué hacer.
  • 1.80.184 - Un gráfico ya no escribe su tipo ("BAR", "LINE", "PIE"…) en una esquina, ni en el diseñador ni en ejecución.
  • 1.80.146 y 1.80.153 - Una ventana sin barra de título se mueve arrastrando su fondo, las partes transparentes de un Label, Panel o GroupBox, y también las zonas transparentes de una imagen de un PictureBox sin marco. Botones, listas y demás controles siguen recibiendo sus clics.
  • 1.80.147 - Ctrl+W (Cmd+W en macOS) cierra la ventana activa, por el mismo camino que su botón de cerrar: onClose puede rechazarlo y el efecto de salida se reproduce.
  • 1.80.171 y 1.80.185 - Ventanas acopladas a su ventana de origen (DockToOpener). Ya no se empujan entre sí ni impiden tomar el foco: se recolocan solo cuando la ventana de origen se mueve o cambia de tamaño. Además, la ventana principal y sus ventanas acopladas caben juntas en la pantalla en cualquier resolución: la principal se encoge primero, nunca por debajo de su diseño mínimo, y solo si aun así no caben se reduce toda la aplicación (hasta la mitad de su tamaño). Se vuelve a ajustar cuando cambia la pantalla.
  • 1.80.165 y 1.80.174 - Las ventanas abiertas por un formulario ya no comparten el estado de sus controles. Dos ventanas con un control del mismo nombre podían quitarse los clics y el foco, o compartir un mismo Timer, de modo que solo una se actualizaba.
  • 1.80.173, 1.80.179 y 1.80.181 - Tema Spatial legible y con colores fieles. El texto de ComboBox, Knob, Gauge, CheckBox, RadioButton y Switch se mide contra el cristal oscuro que ve el operador (antes salía casi negro), y una imagen blanca dentro de una tarjeta Spatial ya no se ve gris.
  • 1.80.160 - El arco de un Knob se dibuja dentro del control; dentro de un contenedor ya no aparece achatado.
  • 1.80.110 - Un TextBox multilínea recibe el cursor donde se pulse. Antes solo respondía en la primera línea (afectaba a la entrada de PowerChat). Corregido en Run Form, en los formularios hijos y en el binario compilado.
  • 1.80.141 - Un Snackbar tiene alto contraste salvo que el desarrollador elija sus colores. Los Snackbar guardados por versiones anteriores traían colores sembrados que daban texto blanco sobre casi blanco. Ahora esos colores cuentan como "no elegidos" y el texto se fuerza a un contraste mínimo de 4,5:1.
  • 1.80.33 y 1.80.82 - Una ventana o un panel responsivo se detiene antes de que sus controles se toquen. La ventana deja de encogerse o crecer en ese punto. Dentro del ContentPane de un SideMenu se respetan también los límites mínimo y máximo del formulario.
  • 1.80.100 y 1.80.92-1.80.98 - Tema Spatial: el escritorio se ve realmente a través de la ventana, con 50 % de transparencia y desenfoque, también en el ContentPane del shell y en el Form Designer.
  • 1.80.75 - Las demos responsivas de PowerDemo3 se abren desde el menú lateral. Antes el IDE rechazaba el proyecto con un error semántico.
  • 1.80.99 - El ejemplo de Mapas oculta su clave de OpenRouteService al pegarla.

IDE y diseñador
  • 1.80.168 - Escribir en la búsqueda de Properties ya no ensancha el panel.
  • 1.80.169 - Cambiar el estilo glass de un formulario alcanza a los controles dentro de un contenedor.
  • 1.80.144 - Los nombres de sección del Toolbox se leen bien: 2 px más grandes y en negrita real.
  • 1.80.86 - Volver a un tema restaura el aspecto que tenía el formulario. El diseñador recuerda las propiedades de cada tema.
  • 1.80.84 - El inspector se lee bien en Neumorphic Light. Los colores de las pestañas Events y Procs medían un contraste de 1,5-2,2:1; ahora cumplen WCAG AAA.

Asistente IA (Grace, proveedores y agentes)
  • 1.80.143 - Grace responde a la pregunta hecha. La planificación recibe la lectura de la petición que hizo la comprobación de claridad, en vez de releer la conversación y contestar la pregunta anterior; las preguntas de inventario ("lista los formularios") se responden desde el manifiesto del proyecto, y un modelo que razona más allá de su presupuesto recibe uno mayor en lugar de fallar.
  • 1.80.77, 1.80.78 y 1.80.79 - Grace planifica más rápido. Cada API de control aparece una sola vez en su contexto (de 124.000 a 76.000 caracteres), planifica en una sola ronda del modelo sin herramientas, y la revisión del prompt recibe la misma vista reducida. Esto elimina unos 760 s de rondas inútiles.
  • 1.80.81 - Dos interruptores nuevos, desactivados por defecto: "Grace reasons before answering" y "Review my request before Grace starts".
  • 1.80.83 - Grace y los especialistas ven los elementos de los menús (SideMenu y MenuBar).
  • 1.80.96 y 1.80.104 - OpenRouter: la lista de modelos carga, y un endpoint guardado acabado en /models ya no rompe el chat.
  • 1.80.106 y 1.80.107 - Agentes en proveedores distintos. Las claves de API ya no se pierden al abrir un proyecto. La tabla Agente x Modelo muestra el proveedor, y el mismo modelo se puede elegir en otro proveedor. Cada agente usa la clave y el endpoint de su propio proveedor.
  • 1.80.162 - La herramienta render_form muestra un formulario Spatial como lo ve su ventana, sobre un fondo oscuro que sustituye al escritorio; antes un agente veía tarjetas vacías.

Guía del desarrollador (inglés): PowerRustCOBOL/docs/developers-guide-en.md at main · CloudLandBeta/PowerRustCOBOL · GitHub

Anthropic Claude Codex Agent
Eslopes is online now   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 01:47.
Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.