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>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
d0f44b689b
commit
792f6395bf
@@ -0,0 +1,73 @@
|
||||
# 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 :
|
||||
|
||||
```sh
|
||||
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/`.
|
||||
Reference in New Issue
Block a user