···4455default: sync build
6677-# Run this whenever you change build files. This generates the latest build config.
77+# Run this whenever you change build files. This generates the latest build config (debug).
88sync:
99 meson setup --reconfigure build/
10101111+# Release config for running real inputs.
1212+sync-release:
1313+ meson setup --reconfigure build-release/ --buildtype=release
1414+1115# Build everything Meson knows about.
1216build:
1317 meson compile -C build/
14181919+# Build release artifacts.
2020+build-release: sync-release
2121+ meson compile -C build-release/
2222+1523# Run tests for a specific day. Defaults to today's day-of-month.
1624test day=default_day: sync
1725 day=$(printf '%02d' "{{day}}"); meson test -C build "day${day}"
18261927# Run a day's solution on the "real" data set.
2020-run day=default_day: sync
2121- day=$(printf '%02d' "{{day}}"); meson compile -C build "run-day${day}"
2828+run day=default_day: sync-release
2929+ day=$(printf '%02d' "{{day}}"); meson compile -C build-release "run-day${day}"
22302331# Clean the build folder. Useful... sometimes.
2432clean:
2525- meson setup --wipe build/
3333+ if [ -d build ]; then meson setup --wipe build/; fi
3434+ if [ -d build-release ]; then meson setup --wipe build-release/; fi
+2-2
README.md
···88nix develop # optional if tooling is installed already; brings in clang/meson/just
99just # runs sync + build
1010just test 5 # run tests for day 05
1111-just run # run today's solution on "real" data
1111+just run # run today's solution on "real" data (release build)
1212```
13131414-`just test`/`run` default to today's day-of-month; pass an explicit day to override. Meson owns the build/run logic; Just only wires day selection and delegates.
1414+`just test`/`run` default to today's day-of-month; pass an explicit day to override. `just run` uses a separate Meson release build dir (`build-release`); tests use the debug dir (`build`). Meson owns the build/run logic; Just only wires day selection and delegates.
15151616## Layout
1717