L'exécuter soi-même
L'ensemble du site, le moteur et chaque résultat de cette section tournent depuis un seul dépôt. Voici comment le lancer, recompiler le moteur WebAssembly et reproduire les chiffres.
L'ensemble du site, le moteur et chaque résultat de cette section tournent depuis un seul dépôt. Voici comment le lancer, recompiler le moteur WebAssembly et reproduire les chiffres.
L'ensemble du site, le moteur et chaque résultat de cette section tournent depuis un seul dépôt. Voici comment le lancer et reproduire les chiffres.
Clonez le dépôt. Tout s'y trouve : le moteur Rust, le site web et les sujets de recherche avec leurs scripts de calcul.
git clone https://github.com/raphael-anjou/eternity2
cd eternity2
Trois chaînes d'outils. Le moteur est écrit en Rust, le site est une application Node, et le moteur est livré au navigateur sous forme de WebAssembly.
wasm32-unknown-unknowncorepack enable vous procure pnpm)Avec just installé, deux commandes. La première compile le moteur en
WebAssembly et installe les dépendances web ; la seconde démarre le site sur
localhost:5173 avec rechargement à chaud.
just setup
just dev
Vous préférez lancer les choses directement ? Chaque recette just n'est
qu'un enrobage d'une seule ligne, vous pouvez donc vous passer entièrement de
just :
# build the engine to WebAssembly
cd engine && wasm-pack build --target web --out-dir ../web/src/engine/pkg --release
# install and run the site
cd ../web && pnpm install && pnpm dev
Le moteur est une crate Rust classique qui compile aussi en WebAssembly. Lancez ses tests, puis recompilez le WASM chaque fois que vous le modifiez. Les tests comportent des vérifications croisées face à de vrais plateaux de la communauté, si bien qu'ils détectent toute modification du jeu de pièces, de la rotation ou du calcul de score.
just test # cargo test --release
just wasm # rebuild the WebAssembly after a change
Chaque sujet de cette section est autonome : un article, un script de calcul et la sortie versionnée qu'il produit. Réexécuter le script régénère cette sortie. Les résultats déterministes reviennent identiques octet pour octet ; les exécutions qui dépendent du hasard ou qui prennent des heures le disent clairement, et livrent le plateau qu'elles ont trouvé, pour que vous puissiez tout de même le vérifier dans la visionneuse.
Par exemple, le décompte des motifs interdits (une vingtaine de secondes) :
just research-forbidden-patterns
# or directly:
cd research/topics/forbidden-patterns/compute
cargo run --release > ../results/feasibility.json
Chaque résultat de cette section possède sa propre recette de reproduction ; l'index de reproduction les liste, chacune avec sa commande et ce qu'elle régénère.
Une seule commande exécute ce que fait l'intégration continue : tests du moteur, vérification de types, lint et build de production.
just check # engine tests, typecheck, lint, build