aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAria Shrimpton <me@aria.rip>2024-04-01 19:12:12 +0100
committerAria Shrimpton <me@aria.rip>2024-04-01 19:12:12 +0100
commita0c19f7f9dff15228490f37dbd5e6053e80cb05c (patch)
tree08d6ce3ad9c8dfbb092438797752b0d180b3f8c9 /src
parent8b7687ff151a0e57e5b0d9cf10258657e0d2b7c2 (diff)
more repro stuff
Diffstat (limited to 'src')
-rw-r--r--src/README.md57
1 files changed, 30 insertions, 27 deletions
diff --git a/src/README.md b/src/README.md
index a2691a3..60ab951 100644
--- a/src/README.md
+++ b/src/README.md
@@ -7,45 +7,48 @@ First, setup the dependencies as detailed in the root of the repository.
Building is done with Cargo as normal: `cargo build`. This places the executable in `./target/debug/candelabra-cli`.
+This is not necessary if using the testing VM, and you should replace `cargo run` with `candelabra-cli` in all commands below.
+
## Creating cost models
-To build and view cost models, first find an implementation to look at:
+To build and view a cost model, first pick an implementation to look at:
-```
-$ cargo run -- list-library
-[...]
-Available container implementations:
- primrose_library::VecMap
- primrose_library::VecSet
- std::vec::Vec
- std::collections::BTreeSet
- std::collections::BTreeMap
- primrose_library::SortedVecSet
- std::collections::LinkedList
- primrose_library::SortedVecMap
- primrose_library::SortedVec
- std::collections::HashMap
- std::collections::HashSet
-```
+ - primrose_library::VecMap
+ - primrose_library::VecSet
+ - std::vec::Vec
+ - std::collections::BTreeSet
+ - std::collections::BTreeMap
+ - primrose_library::SortedVecSet
+ - std::collections::LinkedList
+ - primrose_library::SortedVecMap
+ - primrose_library::SortedVec
+ - std::collections::HashMap
+ - std::collections::HashSet
-To view the cost model for a single implementation, run `cargo run -- cost-model <impl>`.
+To view the cost model for a single implementation, run `just cost-model <impl>`.
-Alternatively, run `just cost-model <impl>` to look at a single implementation, or `just cost-models` to view models for all implementations.
-The latter will clear the cache before running.
+Alternatively, run `just cost-models` to view models for all implementations.
+This will clear the cache before running.
Cost models are also saved to `target/candelabra/benchmark_results` as JSON files. To analyse your built cost models, copy them to `../analysis/current/candelabra/benchmark_results` and see the README in `../analysis/`.
## Profiling applications
-To profile an application in the `tests/` directory and display the results, run `cargo run -- --manifest-path tests/Cargo.toml -p <project> profile`.
-
-Alternatively, run `just profile <project>`.
-
+To profile an application in the `tests/` directory and display the results, run `just profile <project>`.
Profiling info is also saved to `target/candelabra/profiler_info/` as JSON.
## Selecting containers
-To print the estimated cost of using each implementation in a project, run `cargo run -- --manifest-path tests/Cargo.toml -p <project> select`.
+To print the estimated cost of using each implementation in a project, run `just select <project>`.
+Alternatively, run `just selections` to run selection for all test projects.
-Alternatively, run `just select <project>` for a single project, or `just selections` to run selection for all test projects.
-You can add `--compare` to any of these commands to also benchmark the project with every assignment of implementations, and print out the results.
+You can add `--compare` to either of these commands to also benchmark the project with every assignment of implementations, and print out the results.
+
+## Running the full test suite
+
+To run everything we did, from scratch:
+
+```
+$ just cost-models # approx 10m
+$ just selections --compare 2>&1 | tee ../analysis/current/log # approx 1hr 30m
+```