Files
Ustagammon/engine-wasm/engine-cli.mjs
T
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

25 lines
1.0 KiB
JavaScript

// engine-cli.mjs -- engine-cli, mais avec le moteur WebAssembly, sous Node.
//
// Copyright (C) 2026 les auteurs d'Ustagammon.
// Licence : GPLv3 ou ultérieure (voir LICENSE).
//
// Mêmes arguments, même sortie et mêmes codes de sortie que build/engine-cli
// (voir engine-cli/main.c) : c'est le même main, compilé en WebAssembly.
// Sert à rejouer la suite de contrat sur le build WebAssembly
// (tests/test_wasm_reference.sh) :
//
// node engine-wasm/engine-cli.mjs --ply 2 reference 4HPwATDgc/ABMA cIkFAAAAAAAA 31
//
// L'option --data est ignorée : les données sont incluses dans
// build/wasm/engine.data.
import { fileURLToPath } from "node:url";
import createEngineModule from "../build/wasm/engine.mjs";
import { loadEngine } from "../web/engine-wasm.mjs";
const wasmDir = fileURLToPath(new URL("../build/wasm/", import.meta.url));
const engine = await loadEngine(createEngineModule, wasmDir);
const { text, exitCode } = engine.runText(process.argv.slice(2));
console.log(text);
process.exitCode = exitCode;