Commit Graph
45 Commits
Author SHA1 Message Date
Pierre MARTIN 07dd36605c Merge remote-tracking branch 'origin/main' into wasm 2026-11-02 19:20:31 +01:00
Pierre MARTINandClaude Opus 5.5 d83dbfb1e5 Plan 0b : résultat, documentation de la suite WebAssembly
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 19:20:04 +01:00
Pierre MARTINandClaude Opus 5.5 120367e6d3 Page de test et page de mesure du moteur WebAssembly
web/ : le moteur tourne dans un Web Worker (module ES) ; la page de
test donne le meilleur coup d'une position et son temps de calcul ;
la page de mesure chronomètre les positions de référence, mesure la
taille téléchargée et la mémoire, compare aux seuils de l'étape 0b et
produit un rapport à copier. make bench fait la même mesure sous Node,
make deploy-web sert les pages sur le réseau local. Guide de test pour
le Fairphone 4 dans docs/guide-test-etape-0.md.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 19:13:04 +01:00
Pierre MARTINandClaude Opus 5.5 b0030521d8 Moteur en WebAssembly : make engine-wasm et suite de contrat
Le moteur et engine-cli sont compilés avec Emscripten (image figée
emscripten/emsdk:3.1.64), en C générique, sans threads ; les données
de build/data/ sont incluses dans engine.data. Le JavaScript appelle
engine_init une fois puis main pour chaque commande : la sortie est le
JSON d'engine-cli, sans code de mise en forme dupliqué.

tests/test_wasm_reference.sh rejoue les 32 positions de référence sous
Node avec le même comparateur (option --cli) et la même tolérance.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 19:07:01 +01:00
pierre 39052215b1 Fusion de la MR !8 : étape 0a.4, comparaison aux références 2026-11-02 18:04:52 +00:00
Pierre MARTINandClaude Opus 5.5 4b8e2f73cc ADR 0004 amendé : outils de l'étape 0 validés par Pierre
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 19:04:24 +01:00
Pierre MARTIN 12a90aec03 Merge remote-tracking branch 'origin/main' into comparaison 2026-11-02 19:03:47 +01:00
pierre 51801e8491 Fusion de la MR !7 : étape 0a.3, moteur embarqué et engine-cli 2026-11-02 18:03:46 +00:00
Pierre MARTINandClaude Opus 5.5 850de27e90 Plan de l'étape 0b : moteur en WebAssembly
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 19:00:28 +01:00
Pierre MARTINandClaude Opus 5.5 4dba402b74 Étape 0a.4 close : plan supprimé, feuille de route à jour
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 18:55:13 +01:00
Pierre MARTINandClaude Opus 5.5 15939802ce Plan 0a.4 : résultat
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 14:19:18 +01:00
Pierre MARTINandClaude Opus 5.5 83cb1a6f83 Tests : comparaison du moteur embarqué aux références de gnubg
tests/test_engine_reference.sh lance tests/reference/compare.py sur les
32 positions aux niveaux 0 et 2 plis. Tolérance de 0,002 mesurée et
justifiée dans tests/reference/README.md : écart maximal de 9,5e-4, avec
ou sans -ffast-math ; la cause est la sigmoïde approchée (_mm_rcp_ps) de
gnubg de bureau en SSE2, qu'un build SSE2 du moteur reproduit au bit près.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 14:18:10 +01:00
Pierre MARTINandClaude Opus 5.5 ae166d51e5 Chaîne C : Python 3 et jq ; test_reference.sh tourne dans Docker
jq n'est plus utilisé sur le PC (ADR 0004) : tests/test_reference.sh se
relance dans l'image ustagammon/build-c:2, qui contient aussi Python 3
pour le comparateur du moteur.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 14:18:10 +01:00
Pierre MARTINandClaude Opus 5.5 be6a4b4446 Moteur : classement exact de hint et commande engine-cli reference
- engine_best_moves suit hint_move de gnubg : fAnalyse vrai, seuil
  « douteux », puis RefreshMoveList (classement par niveau d'évaluation
  et départage des égalités).
- Correction : en match, l'équité des coups était convertie deux fois par
  mwc2eq (ScoreMove la convertit déjà).
- engine_cube : ajout de optimal et decision_text ; decision prend le nom
  de l'énumération cubedecision de gnubg, comme les références.
- engine-cli : commande reference (un niveau au format de
  tests/reference/) et nombres écrits avec 9 chiffres significatifs.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 14:18:10 +01:00
Pierre MARTINandClaude Opus 5.5 856e4d64bd Plan de l'étape 0a.4 : comparaison aux références
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 14:04:14 +01:00
Pierre MARTINandClaude Opus 5.5 b02d012f58 Étape 0a.3 : moteur embarqué (cœur de gnubg), engine.h et engine-cli
Fusion du travail du sous-agent (branche moteur-embarque-travail) ; plan
supprimé à la clôture, son résultat est repris dans la merge request.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 14:02:56 +01:00
pierre 1d97d40a7c Fusion de la MR !6 : étape 0a.2, gnubg et positions de référence 2026-11-02 13:00:59 +00:00
Pierre MARTINandClaude Opus 5.5 b273b96c33 Étape 0a.2 : gnubg de référence et 32 positions de référence
Fusion du travail du sous-agent (branche moteur-reference-travail) ; plan
supprimé à la clôture, son résultat est repris dans la merge request.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 14:00:06 +01:00
Pierre MARTINandClaude Opus 5.5 7e2f9d4ad8 Crédits du moteur et résultat de l'étape 0a.3
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 13:58:01 +01:00
Pierre MARTINandClaude Opus 5.5 a90f8ac9bf Tests du moteur embarqué
tests/test_engine.sh : coups d'ouverture connus à 0 et 2 plis, nombre de
coups légaux, bornes et symétrie des probabilités, décisions de videau
évidentes, erreurs. test_makefile.sh essaie make clean sur un dossier
jetable, pour ne plus forcer la recompilation du moteur à chaque test.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 13:58:00 +01:00
Pierre MARTINandClaude Opus 5.5 05d59c6acb Compilation du moteur dans Docker : make engine
Image ustagammon/build-c (Debian trixie, gcc, GLib pour les seuls outils
de génération), construite par make setup. engine/engine.mk compile le
moteur et engine-cli, et génère gnubg.wd et les bases .bd avec makeweights
et makebearoff, comme le Makefile.am de gnubg. Dépendances suivies : un
second make engine ne recompile rien. make build appelle make engine.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 13:58:00 +01:00
Pierre MARTINandClaude Opus 5.5 c1baf1a5d3 Plan 0a.2 : résultat
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 13:57:45 +01:00
Pierre MARTINandClaude Opus 5.5 b199698b11 Positions de référence évaluées par gnubg (0 et 2 plis)
32 positions (ouvertures, milieu, prime, blitz, course, sortie, videau,
match, Crawford, Jacoby), générées par make reference ; format documenté
dans tests/reference/README.md, vérifié par tests/test_reference.sh.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 13:57:14 +01:00
Pierre MARTINandClaude Opus 5.5 8677193bee Image Docker du gnubg de référence (commit 14b6798)
Compile gnubg sans interface graphique, avec Python, SIMD forcé à SSE2,
et produit gnubg.wd, gnubg_os0.bd, gnubg_ts0.bd avec les outils officiels.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 13:57:14 +01:00
Pierre MARTINandClaude Opus 5.5 da5fa71ff8 Interface engine.h et programme engine-cli
engine.h expose initialisation, coups légaux, classement des coups,
évaluation et décision de videau, avec Position ID et Match ID, sans type
gnubg ; erreurs par code de retour. engine-cli l'interroge et répond en
JSON (bestmove, moves, legal, cube, eval ; option --ply).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 13:56:29 +01:00
Pierre MARTINandClaude Opus 5.5 42bfb6506d Couche de compatibilité : shim GLib et en-têtes réduits
engine/compat/ remplace ce que le cœur de gnubg attend du reste de gnubg
et de GLib : config.h écrit à la main (sans threads, C générique, NEON
prévu), shim GLib minimal (dont un analyseur XML pour les tables d'équité
et mmap pour les bases de fin de partie), en-têtes réduits et fonctions de
support.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 13:56:29 +01:00
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
pierre 3768746cf4 Fusion de la MR !5 : scénarios en Gherkin standard ; ADR amendables 2026-11-02 12:53:46 +00:00
Pierre MARTINandClaude Opus 5.5 2ab30a4abe Scénarios en Gherkin standard validés par l'analyseur officiel ; ADR amendables
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 13:53:12 +01:00
pierre 42ace839d2 Fusion de la MR !4 : ADR 0008, glossaire et scénarios 2026-11-02 12:45:59 +00:00
Pierre MARTINandClaude Opus 5.5 77ca5a60ca ADR 0008 : glossaire et scénarios, source unique pour le code, l'aide et les tests
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 13:45:34 +01:00
pierre 463bc6f553 Fusion de la MR !3 : ADR 0007, architecture et conventions de code 2026-11-02 12:41:37 +00:00
Pierre MARTINandClaude Opus 5.5 5b976caf65 Ignorer les espaces de travail des sous-agents (.claude/)
Retire les deux worktrees embarqués par erreur dans le commit précédent.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 13:41:05 +01:00
Pierre MARTINandClaude Opus 5.5 59895393fe ADR 0007 : architecture et conventions de code
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 13:40:43 +01:00
Pierre MARTINandClaude Opus 5.5 d0f44b689b Plan de l'étape 0a.3 : moteur embarqué et engine-cli
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 13:33:49 +01:00
Pierre MARTINandClaude Opus 5.5 ec0f4daef3 Plan de l'étape 0a.2 : gnubg et positions de référence
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 13:32:50 +01:00
pierre aa4f504123 Fusion de la MR !2 : décisions en ADR ; plans et feuille de route temporaires 2026-11-02 12:23:54 +00:00
Pierre MARTINandClaude Opus 5.5 d017f3338b Décisions en ADR ; plans et feuille de route temporaires
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 13:23:18 +01:00
pierre 6958accec2 Fusion de la MR !1 : décision moteur gnubg officiel ; travail par merge requests 2026-11-02 12:20:04 +00:00
Pierre MARTINandClaude Opus 5.5 9b6534cd43 Décision : moteur gnubg officiel ; travail par merge requests
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 13:19:18 +01:00
Pierre MARTINandClaude Opus 5.5 cbde02bc90 Étude des sources du moteur : recommandation gnubg officiel
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 13:05:16 +01:00
Pierre MARTINandClaude Opus 5.5 7e58707bc3 Correction du README, organisation par sous-agents et feuille de route
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 12:58:16 +01:00
Pierre MARTINandClaude Opus 5.5 7fd23031ca Squelette du dépôt : Makefile, tests, lint, crédits, journal
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 12:56:46 +01:00
Pierre MARTINandClaude Opus 5.5 6d4ff4e7b4 Cadrage et règles du projet
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 12:56:36 +01:00
pierre 6effe33871 Initial commit 2026-11-02 11:55:01 +00:00