Les Extensions SuperBOL

Dépôts de code

L’équipe SuperBOL maintient normalement plusieurs dépôts de code pour chaque client:

  • Le dépôt gnucobol-superbol est un dépôt GnuCOBOL commun à tous les clients de la Souscription SuperBOL. Ce dépôt contient normalement l’ensemble des contributions apportées pour les différents clients.

    Les branches suivantes sont disponibles dans notre dépôt:

    • gnucobol-superbol-3.x: nos contributions à GnuCOBOL 3
    • gnucobol-superbol-4.x: nos contributions à GnuCOBOL 4 (non utilisée actuellement)
    • gitside-gnucobol-3.x: la branche officielle de GnuCOBOL 3 que nous suivons
    • gitside-master: la branche officielle de GnuCOBOL 4 que nous suivons
  • Le dépôt gnucobol-$CLIENT est un dépôt GnuCOBOL spécifique à un client. Il contient la version de GnuCOBOL SuperBOL maintenue pour ce client. Il peut contenir des contributions temporaires supplémentaires (dévelopées spécifiquement pour ce client et non encore propagées au dépôt commun), ou ne pas contenir certaines contributions (pour limiter l’introduction d’incompatibilités).

  • Le dépôt gnucobol-config-$CLIENT est un dépôt contenant parfois une configuration spécifique à l’application d’un client. En effet, certains patrimoines utilisent parfois une combinaison de fonctionalités ne correspondant pas aux configurations par défaut de GnuCOBOL. Nous fournissons alors une configuration spécifique à utiliser pour compiler les sources COBOL du client.

Extensions disponibles dans votre version

Chaque dépôt pouvant contenir des contributions différentes, il est possible de lister facilement les contributions que contient votre version. Pour cela, il y a 2 possibilités:

  • Vous pouvez regarder, dans le dépôt GIT, le contenu du dossier CHANGES-superbol/ à la racine de GnuCOBOL. Ce dossier contient un fichier par contribution. Vous pouvez alors vérifier si la contribution qui vous intéresse apparaît dans ce dossier.

  • Vous pouvez lancer la commande cobc --superbol-features, qui affiche la liste des contributions que ce compilateur intègre:

$ cobc --superbol-features
cobc (GnuCOBOL) 3.3-dev.0
SuperBOL features:
- 2025-11-20-odo-in-redefines
- 2025-11-25-allow-spaces-between-parens-in-PICTURE-la-MF
... [suite de l'output] ...

Toutes les extensions

  • 2025-11-20-odo-in-redefines: [MF-COMPAT] Cette extension autorise l’utilisation de OCCURS DEPENDING ON dans un REDEFINES, quand la nouvelle option de configuration odo-in-redefines est activée.

  • 2025-11-25-allow-spaces-between-parens-in-PICTURE-la-MF: [MF-COMPAT] Cette extension utilise autorise la présence d’espaces entre les parenthèses d’une PICTURE, comme PIC X( 9 **), quand la nouvelle option de configuration space-in-picture est activée.

  • 2025-11-25-inspect-with-or: [MF-COMPAT] Cette extension permet l’utilisation de OR après un INSPECT ... BEFORE ou INSPECT ... AFTER, comme INSPECT str TALLYING counter FOR CHARACTERS BEFORE "1" OR "2".

  • 2025-11-25-new-level-heuristics: [MF-COMPAT] Cette extension permet de tolérer beaucoup plus de points manquants dans la DATA DIVISION, en utilisant une nouvelle heuristique pour la détection des numéros indiquant les niveaux. Attention: elle peut introduire des régressions par rapport à des codes fonctionnant déjà avec GnuCOBOL. Ces régressions doivent nous être signalées pour corriger le comportement.

  • 2025-11-25-print-token: Cette extension introduit l’option -fdump-tokens qui permet d’aider au debug du parser.

  • 2025-11-28-better-out-of-bounds-messages: [Ergonomie] Cette extension améliore les messages d’erreurs en cas de débordement, typiquement pour afficher les valeurs et les bornes.

  • 2026-01-12-compatibility-autoconf-2.69: Cette extension permet d’utiliser des versions d’autoconf à partir de 2.69 au lieu de 2.70

  • 2026-01-15-fix-sign-normalization-on-MOVE: [BUGFIX] Cette extension corrige un comportement qui empêche une normalisation du signe lors d’un MOVE quand un DISPLAY NUMERIC n’a pas été signé correctement à l’initialisation.

  • 2026-02-05-add-superbol-testsuite: Cette extension introduit une nouvelle testsuite spécifique à SuperBOL.

  • 2026-02-05-shared-superbol-config: Cette extension introduit une configuration commune pour toutes les options introduites par les extensions de SuperBOL.

  • 2026-02-06-superbol-atscript-tests: Cette extension introduit un nouveau format basé sur autofonce pour certains tests de non-regression de SuperBOL.

  • 2026-02-07-allow-more-extra-dots: [BUGFIX] Cette extension corrige un comportement erronné de GnuCOBOL qui ne supporte pas des points redondants s’ils sont séparés par des directives de lignes, typiquement introduites par des COPY.

  • 2026-02-08-allow-unterminated-strings: [MF-COMPAT] Cette extension autorise l’absence de terminateur de chaîne, quand la nouvelle option de configuration unterminated-string est activée.

  • 2026-02-08-missing-dot-after-SPECIAL-NAMES: [MF-COMPAT] Cette extension autorise l’absence d’un point à la fin des instructions dans SPECIAL-NAMES, juste avant INPUT-OUTPUT, DATA DIVISION ou PROCEDURE DIVISION.

  • 2026-02-08-missing-dot-before-or-after-FD: [MF-COMPAT] Cette extension autorise l’absence de point dans un champ avant ou après FD ou SD.

  • 2026-02-17-autostop: [Ergonomie]. Cette extension permet d’interrompre une commande COBOL en milieu de batch à l’aide d’une variable d’environnement pour lancer une session de debug dessus. Voir la section Interrupteur de Batch

  • 2026-03-10-handle-spzero: [MF-COMPAT] support de compatibilité avec l’option SPZERO du compilateur Micro-Focus