Files
Pierre MARTINandClaude Opus 5.5 792f6395bf Copie figée du cœur de GNU Backgammon (commit 14b6798)
Fichiers repris sans modification dans engine/gnubg/, poids et table
d'équité Kazaross-XG2 dans engine/data/, provenance détaillée dans
engine/gnubg/PROVENANCE.md. Le lint ne vérifie plus les espaces de ces
copies, pour qu'elles restent identiques à l'original.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 13:56:23 +01:00

3.5 KiB

Provenance de la copie de GNU Backgammon

Les fichiers de ce dossier sont copiés de GNU Backgammon (https://git.savannah.gnu.org/cgit/gnubg.git), commit 14b67984737ded0f6de43d63dcb789f729d9b06b (version 1.08.003, 2026-10-23), choisi par l'ADR 0005. Licence : GPLv3 ou ultérieure (COPYING). Les en-têtes de copyright sont conservés.

Aucun fichier n'est modifié : chacun est identique octet pour octet à l'original. Vérification, depuis un clone de gnubg à ce commit :

for f in $(cd engine/gnubg && find . -type f ! -name PROVENANCE.md); do
	cmp "engine/gnubg/$f" "chemin/du/clone/gnubg/$f" || echo "différent : $f"
done

Les espaces en fin de ligne de l'original sont gardés ; tests/lint.sh exclut donc ce dossier (et engine/data/) de cette vérification.

Fichiers repris

Compilés dans le moteur embarqué (build/libengine.a) :

Fichier Rôle
eval.c, eval.h, movefilters.inc Évaluation, génération et classement des coups, videau
positionid.c, positionid.h Position ID
matchid.c, matchid.h Match ID
matchequity.c, matchequity.h, mec.c, mec.h Tables d'équité de match
bearoff.c, bearoff.h, bearoffgammon.c, bearoffgammon.h Bases de fin de partie
drawboard.c, drawboard.h Notation des coups (FormatMove)
mtsupport.c Données du fil d'exécution unique (branche sans threads)
lib/neuralnet.c, lib/neuralnet.h, lib/neuralnetsse.c, lib/inputs.c, lib/simd.h, lib/sigmoid.h Réseaux de neurones
lib/cache.c, lib/cache.h Cache d'évaluations
lib/isaac.c, lib/isaac.h, lib/isaacs.h, lib/md5.c, lib/md5.h Hasards (bruit, désactivé ici) et hachage
lib/list.c, lib/list.h Listes (tables d'équité)
lib/gnubg-types.h, common.h, dice.h Types et définitions communes

Compilés seulement pour générer les données au build (build/host/), avec la vraie GLib, comme dans le build officiel :

Fichier Rôle
makeweights.c gnubg.weights → gnubg.wd (réseaux en binaire)
makebearoff.c Bases gnubg_os0.bd et gnubg_ts0.bd

Données, dans engine/data/ (non modifiées non plus) : gnubg.weights (racine du dépôt gnubg) et Kazaross-XG2.xml (met/), la table d'équité de match par défaut de gnubg de bureau.

Ce qui remplace le reste de gnubg

Les fichiers de gnubg non repris sont remplacés par des fichiers propres à Ustagammon, dans engine/compat/, trouvés en premier par le compilateur :

Fichier Remplace
config.h Le config.h produit par configure (sans threads, C générique, NEON prévu)
glib-shim/glib.h, glib-shim/glib/*.h, glib-shim.c GLib, pour le moteur embarqué seulement
backgammon.h, output.h, util.h, format.h, multithread.h, external.h En-têtes réduits aux déclarations utilisées par le cœur
gnubg-support.c Fonctions et variables de gnubg.c, output.c, util.c, multithread.c utilisées par le cœur
host-tools-support.c GetTemporaryFile de util.c, pour makebearoff

La liste des symboles à fournir a été établie à l'édition des liens. Le fichier jni-bridge/src/stubs.c de CBG (https://github.com/clavierhaus/gnubg-android, GPLv3) a servi de point de repère, sans reprise de code.

Mettre à jour la copie

Copier les mêmes fichiers depuis le nouveau commit, mettre à jour le commit ci-dessus, puis make engine et make test. Une erreur de compilation ou d'édition des liens indique un symbole à ajouter dans engine/compat/.