This is the repository containing the implementations of both A_mem and A_cur, alongside the tools to recreate all graphs in the thesis.
scope-graph: contains Scope graph and query resolution algorithm definitionsdata-parse: parses raw data obtained from artifact of Specializing Scope Graph Resolution Queries.pattern-recog: crude pattern recognition for data obtained fromdata-parse.graph_bench: graph and table generator for benchmark results.graphing: utilities to create MMD and PlantUML diagrams, for debugging.
It is recommended to use uv for the python scripts. To install, run:
curl -LsSf https://astral.sh/uv/install.sh | shIf this doesn't work, consult the official documentation.
Steps to recreate the benchmarks:
- Run the benchmarks
cargo bench -p scope-graph --bench sg-patternsThis can take between 5-10 minutes, the results are in scope-graph/output/benches/results.json
- Create graphs
With uv:
cd graph_bench
uv run plot_bench.pyThe figures and tables are saved in graph_bench/plots/
data-parse parses the data obtained from the artifact and provides a cosmo.csv to view the resulting scope graph in cosmograph. Run it with:
cargo run -p data-parse --releaseIt is recommended to run in a release build, as deserialisation can take a while.