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>
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/.