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>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
850de27e90
commit
b0030521d8
@@ -22,6 +22,11 @@
|
||||
* --ply : niveau de gnubg, de 0 (défaut) à 4.
|
||||
* --data : dossier des données ; par défaut « data » à côté du programme.
|
||||
*
|
||||
* En WebAssembly (engine-wasm/), le même programme sert d'interface : le
|
||||
* JavaScript appelle main pour chaque commande, sans recharger le moteur.
|
||||
* engine_init ne fait rien quand le moteur est déjà prêt, et main ne l'arrête
|
||||
* pas à la fin.
|
||||
*
|
||||
* Sortie : un objet JSON sur la sortie standard. En cas d'erreur, un objet
|
||||
* {"error": {"code": ..., "message": ...}} et un code de sortie non nul :
|
||||
* 1 pour une erreur du moteur, 2 pour une erreur d'utilisation.
|
||||
@@ -391,6 +396,8 @@ main(int argc, char **argv)
|
||||
else
|
||||
result = usage_error("commande inconnue : bestmove, moves, legal, cube, eval ou reference");
|
||||
|
||||
#ifndef __EMSCRIPTEN__
|
||||
engine_shutdown();
|
||||
#endif
|
||||
return result;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user