11# Canonical local workflow for the retained param-eq replication package.
22# The file dependencies document the expected order:
33# 1. normalize archived Haskell outputs
4- # 2. run the Egglog corpus against those normalized rows
5- # 3. refresh the golden cases and notebook
6- # 4. run the replication-local tests
4+ # 2. run the current local Haskell pipeline across the same rows
5+ # 3. run the Egglog corpus baseline and scheduler ablations against those rows
6+ # 4. refresh the golden cases and notebook
7+ # 5. run the replication-local tests
78
89PARAM_EQ_DIR := $(abspath $(dir $(lastword $(MAKEFILE_LIST ) ) ) )
910REPO_ROOT := $(abspath $(PARAM_EQ_DIR ) /../../../..)
@@ -13,9 +14,12 @@ export EGGLOG_PARAM_EQ_DATA_DIR
1314ARTIFACT_DIR := $(PARAM_EQ_DIR ) /artifacts
1415GOLDEN := $(PARAM_EQ_DIR ) /haskell_golden.json
1516NOTEBOOK := $(PARAM_EQ_DIR ) /replication.ipynb
16- HASKELL_ROWS := $(ARTIFACT_DIR ) /haskell_paper_rows.csv
17+ ARCHIVED_HASKELL_ROWS := $(ARTIFACT_DIR ) /haskell_paper_rows.csv
18+ LIVE_HASKELL_ROWS := $(ARTIFACT_DIR ) /haskell_live_rows.csv
1719RUNTIME_ROWS := $(ARTIFACT_DIR ) /pagie_runtime_scatter.csv
1820EGGLOG_ROWS := $(ARTIFACT_DIR ) /egglog_paper_rows.csv
21+ EGGLOG_ABLATION_ROWS := $(ARTIFACT_DIR ) /egglog_ablation_rows.csv
22+ ABLATION_SUMMARY := $(ARTIFACT_DIR ) /ablation_summary.csv
1923
2024HASKELL_FIXTREE := $(EGGLOG_PARAM_EQ_DATA_DIR ) /src/FixTree.hs
2125HASKELL_MAIN := $(EGGLOG_PARAM_EQ_DATA_DIR ) /src/Main.hs
@@ -28,23 +32,41 @@ HASKELL_EXPRS := \
2832 $(wildcard $(HASKELL_RESULTS ) /exprs/* _exprs_* ) \
2933 $(wildcard $(HASKELL_RESULTS ) /exprs_simpl/* _exprs_* )
3034
31- .PHONY : golden artifacts notebook test all
35+ .PHONY : golden archived- artifacts live-haskell artifacts ablations notebook test all
3236
33- $(HASKELL_ROWS ) $(RUNTIME_ROWS ) : $(PARAM_EQ_DIR ) /normalize_archives.py $(PARAM_EQ_DIR ) /paths.py $(HASKELL_TABLES ) $(HASKELL_EXPRS ) $(HASKELL_RUNTIME )
37+ $(ARCHIVED_HASKELL_ROWS ) $(RUNTIME_ROWS ) : $(PARAM_EQ_DIR ) /normalize_archives.py $(PARAM_EQ_DIR ) /paths.py $(HASKELL_TABLES ) $(HASKELL_EXPRS ) $(HASKELL_RUNTIME )
3438 cd $(REPO_ROOT ) && uv run python -m egglog.exp.param_eq.normalize_archives
3539
36- $(EGGLOG_ROWS ) : $(PARAM_EQ_DIR ) /run_egglog_corpus.py $(PARAM_EQ_DIR ) /pipeline.py $(HASKELL_ROWS ) $(RUNTIME_ROWS )
40+ $(LIVE_HASKELL_ROWS ) : $(PARAM_EQ_DIR ) /run_haskell_corpus.py $(PARAM_EQ_DIR ) /generate_haskell_golden.py $(PARAM_EQ_DIR ) /pipeline.py $(PARAM_EQ_DIR ) /paths.py $(ARCHIVED_HASKELL_ROWS ) $(HASKELL_FIXTREE ) $(HASKELL_MAIN )
41+ cd $(REPO_ROOT ) && uv run python -m egglog.exp.param_eq.run_haskell_corpus
42+
43+ $(EGGLOG_ROWS ) : $(PARAM_EQ_DIR ) /run_egglog_corpus.py $(PARAM_EQ_DIR ) /pipeline.py $(ARCHIVED_HASKELL_ROWS ) $(RUNTIME_ROWS )
3744 cd $(REPO_ROOT ) && uv run python -m egglog.exp.param_eq.run_egglog_corpus
3845
39- $(GOLDEN ) : $(PARAM_EQ_DIR ) /generate_haskell_golden.py $(PARAM_EQ_DIR ) /pipeline.py $(PARAM_EQ_DIR ) /paths.py $(HASKELL_FIXTREE ) $(HASKELL_MAIN ) $(HASKELL_ROWS )
46+ $(EGGLOG_ABLATION_ROWS ) : $(PARAM_EQ_DIR ) /run_egglog_corpus.py $(PARAM_EQ_DIR ) /pipeline.py $(ARCHIVED_HASKELL_ROWS ) $(LIVE_HASKELL_ROWS )
47+ cd $(REPO_ROOT ) && uv run python -m egglog.exp.param_eq.run_egglog_corpus \
48+ --output $(EGGLOG_ABLATION_ROWS ) \
49+ --mode egglog-baseline \
50+ --mode no-haskell-backoff \
51+ --mode no-graph-size-stop \
52+ --mode no-bound-scheduler \
53+ --mode no-fresh-rematch
54+
55+ $(GOLDEN ) : $(PARAM_EQ_DIR ) /generate_haskell_golden.py $(PARAM_EQ_DIR ) /pipeline.py $(PARAM_EQ_DIR ) /paths.py $(HASKELL_FIXTREE ) $(HASKELL_MAIN ) $(ARCHIVED_HASKELL_ROWS )
4056 cd $(REPO_ROOT ) && uv run python -m egglog.exp.param_eq.generate_haskell_golden
4157
42- $(NOTEBOOK ) : $(PARAM_EQ_DIR ) /replication.py $(HASKELL_ROWS ) $(EGGLOG_ROWS ) $(RUNTIME_ROWS )
58+ $(NOTEBOOK ) : $(PARAM_EQ_DIR ) /replication.py $(ARCHIVED_HASKELL_ROWS ) $(LIVE_HASKELL_ROWS ) $( EGGLOG_ROWS ) $( ABLATION_SUMMARY ) $(RUNTIME_ROWS )
4359 cd $(REPO_ROOT ) && uv run python python/egglog/exp/param_eq/replication.py
4460
61+ archived-artifacts : $(ARCHIVED_HASKELL_ROWS ) $(RUNTIME_ROWS )
62+
63+ live-haskell : $(LIVE_HASKELL_ROWS )
64+
4565golden : $(GOLDEN )
4666
47- artifacts : $(EGGLOG_ROWS )
67+ artifacts : $(ARCHIVED_HASKELL_ROWS ) $(RUNTIME_ROWS ) $(LIVE_HASKELL_ROWS ) $(EGGLOG_ROWS )
68+
69+ ablations : $(EGGLOG_ABLATION_ROWS )
4870
4971notebook : $(NOTEBOOK )
5072
0 commit comments