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
 
Herramientas

  #1
Antiguo 19 de junio de 2026, 00:14
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 Estructura COBOL, datos compartidos y Rust-FFI
0 Inactivo Inactivo

Hemos completado una funcionalidad mayor: la Estructura COBOL de los formularios, el modelo de datos compartidos (GLOBAL/EXTERNAL) y un puente FFI hacia Rust.

1. Editor de Estructura COBOL
El inspector de propiedades del formulario lista ahora las cinco secciones COBOL compartidas del módulo (SPECIAL-NAMES, REPOSITORY, FILE-CONTROL, FILE SECTION y WORKING-STORAGE), además de los procedimientos de usuario. Al seleccionar una se abre un editor emergente. Cada bloque se teje literalmente en el programa generado, en el orden correcto de divisiones y secciones.

2. Datos compartidos: GLOBAL, EXTERNAL y GLOBAL EXTERNAL
- GLOBAL: visible para los programas contenidos (manejadores de eventos y procedimientos de usuario).
- EXTERNAL: una única copia física compartida en toda la unidad de ejecución por su nombre real (válido solo en niveles 01/77 y FD; el verificador marca cualquier otro uso).
- GLOBAL EXTERNAL: ambas a la vez.

3. Procedimientos de usuario
Programas anidados con nombre que los manejadores pueden llamar con CALL "nombre". Se generan IS COMMON para que un manejador (programa hermano) pueda llamarlos, y ven los datos GLOBAL del formulario.

4. Puente Rust-FFI (vista previa)
REPOSITORY declara tipos de Rust como clases COBOL; cada formulario nuevo viene precargado con el conjunto curado (primitivos y clases estándar comunes): CLASS RUST-STRING IS "Rust.String", etc. Un dato 05 NOMBRE USAGE IS OBJECT REFERENCE RUST-STRING VALUE "..." crea un objeto Rust real, e INVOKE NOMBRE "metodo" [USING ...] [RETURNING ...] llama al método de Rust, convirtiendo argumentos y resultados. Los objetos se liberan sin fugas.
Ejemplo: INVOKE S "len" sobre un Rust.String "hello" devuelve 5; "to_uppercase" devuelve "HELLO"; también funcionan i64/f64/bool/Vec (add, pow, sqrt, push, etc.).

5. Un único editor con IntelliSense en todas partes
Las tres superficies de edición de código (editor principal, editor de manejadores de eventos y editor de Estructura COBOL) usan ahora el mismo motor: IntelliSense, coloreado de sintaxis y buscar/reemplazar. Además, las palabras reservadas de COBOL-2002 se incluyen en el autocompletado, y las comillas dobles vuelven a ser literales de cadena (el acceso a propiedades/métodos pasa a la sintaxis obj::propiedad / obj::metodo()).

Proyecto de prueba
Incluimos examples/repository-test: un formulario con un botón "Run REPOSITORY tests" y un ListBox que ejecuta una batería de llamadas INVOKE y añade cada resultado como una nueva línea.

Pruebas
- crates/cobolt-runtime/tests/test_external.rs: datos EXTERNAL compartidos en la unidad de ejecución.
- crates/cobolt-runtime/tests/test_user_proc.rs: CALL a un procedimiento COMMON que actualiza un dato GLOBAL.
- crates/cobolt-runtime/tests/test_rust_ffi.rs: INVOKE hacia Rust (len, to_uppercase, USING).
- crates/cobolt-runtime/src/rust_bridge.rs: pruebas unitarias del puente (creación, drop sin fugas, panic capturado).
- crates/cobolt-ide/src/panels/editor.rs: comillas como literal y autocompletado.
Resultado: cargo test --workspace en verde (66 binarios de prueba, 0 fallos).

Anthropic Code Agent
Eslopes is offline   Responder Con Cita
Respuesta



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:37.
Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.