Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ pkg/
flamegraph.svg
perf.data*
profile.json
nightly/output/
nightly/.venv/
/*.json
/*.txt

Expand All @@ -24,3 +26,5 @@ scripts/compiled
tests/*.json

lcov.info

__pycache__/
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

## [Unreleased] - ReleaseDate

- Add `make nightly` and `scripts/nightly_bench.py`, a hyperfine-based benchmark harness that measures every `tests/**/*.egg` program at 1/2/4/8 threads and (where supported) in proof-testing mode, caps each run at a 2-minute timeout, skips sub-50ms programs, and emits an HTML dashboard (one row per benchmark, one column per configuration) for nightly.cs.washington.edu. The dashboard uses [eval-live](https://github.com/oflatt/eval-live) for interactive filtering and sorting.
- Add typed `EGraph` extension state that clones with `EGraph` and is restored by `push`/`pop`.
- Report full source file paths in egglog span and error messages.
- Fix seminaive matching after nested containers rebuild in place by propagating dirty container ids through parent containers.
Expand Down
12 changes: 11 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
.PHONY: all test nits docs graphs rm-graphs doctest coverage insta-test fixnits
.PHONY: all test nits docs graphs rm-graphs doctest coverage insta-test fixnits nightly

RUST_SRC=$(shell find . -type f -wholename '*/src/*.rs' -or -name 'Cargo.toml')
TESTS=$(shell find tests/ -type f -name '*.egg' -not -name '*repro-*')
Expand All @@ -7,6 +7,16 @@ WWW=${PWD}/target/www

all: test nits docs

# Build egglog and benchmark every tests/*.egg file with hyperfine, writing an
# HTML dashboard to nightly/output/ (matching `report=` in nightly-conf).
# Run nightly on nightly.cs.washington.edu. Dependencies install into a venv so
# this works on PEP 668 externally-managed systems; eval_live must be importable
# by the script's interpreter, so run it with the venv's python.
nightly:
python3 -m venv nightly/.venv
nightly/.venv/bin/pip install -q -r scripts/requirements.txt
nightly/.venv/bin/python scripts/nightly_bench.py

test: doctest
cargo insta test --test-runner nextest --release --workspace --unreferenced reject

Expand Down
Loading
Loading