Ejecútalo tú mismo
Todo el sitio, el motor y cada resultado de esta sección se ejecutan desde un único repositorio. Aquí tienes cómo ponerlo en marcha, recompilar el motor WebAssembly y reproducir las cifras.
Todo el sitio, el motor y cada resultado de esta sección se ejecutan desde un único repositorio. Aquí tienes cómo ponerlo en marcha, recompilar el motor WebAssembly y reproducir las cifras.
Todo el sitio, el motor y cada resultado de esta sección se ejecutan desde un único repositorio. Aquí tienes cómo ponerlo en marcha y reproducir las cifras.
Clona el repositorio. Todo está aquí: el motor Rust, el sitio web y los temas de investigación con sus scripts de cómputo.
git clone https://github.com/raphael-anjou/eternity2
cd eternity2
Tres cadenas de herramientas. El motor está escrito en Rust, el sitio es una aplicación Node, y el motor se entrega al navegador como WebAssembly.
wasm32-unknown-unknowncorepack enable te consigue pnpm)Con just instalado, dos comandos. El primero compila el motor a WebAssembly
e instala las dependencias web; el segundo arranca el sitio en
localhost:5173 con recarga en caliente.
just setup
just dev
¿Prefieres ejecutar las cosas directamente? Cada receta de just no es más
que un envoltorio de una sola línea, así que puedes prescindir por completo 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
El motor es una crate Rust corriente que además compila a WebAssembly. Ejecuta sus tests y luego recompila el WASM cada vez que lo modifiques. Los tests incluyen comprobaciones cruzadas frente a tableros reales de la comunidad, de modo que detectan cualquier cambio en el conjunto de piezas, la rotación o el cálculo de la puntuación.
just test # cargo test --release
just wasm # rebuild the WebAssembly after a change
Cada tema de esta sección es autónomo: un artículo, un script de cómputo y la salida versionada que produce. Reejecutar el script regenera esa salida. Los resultados deterministas vuelven idénticos byte a byte; las ejecuciones que dependen del azar o que tardan horas lo dicen con claridad, y entregan el tablero que encontraron para que aun así puedas comprobarlo en el visor.
Por ejemplo, el recuento de patrones prohibidos (unos veinte segundos):
just research-forbidden-patterns
# or directly:
cd research/topics/forbidden-patterns/compute
cargo run --release > ../results/feasibility.json
Cada resultado de esta sección tiene su propia receta de reproducción; el índice de reproducción las lista, cada una con su comando y lo que regenera.
Un solo comando ejecuta lo que hace la integración continua: tests del motor, verificación de tipos, lint y build de producción.
just check # engine tests, typecheck, lint, build