aboutsummaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rw-r--r--README.md32
1 files changed, 27 insertions, 5 deletions
diff --git a/README.md b/README.md
index 4bac41a..fee8ce5 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,29 @@
-# dissertation
+# Candelabra
-## requirements
+These are the supplementary materials for my thesis, Candelabra.
-```
-$ raco pkg install rosette
-```
+ - `src/` is a Rust workspace containing the actual source code
+ - `analysis/` contains the benchmark results, and the Elixir livebook notebook used to process and visualise the data.
+ - `thesis/` contains the LaTeX code used to build the actual thesis, as well as VegaLite JSON files for graphs
+
+Check the `README` in each directory for more information.
+
+## Getting dependencies
+
+The easiest way to install the required dependencies is using Nix.
+After [installing it](https://nixos.org/download/), simply run `nix develop`.
+This environment includes everything necessary for building the program, visualisations, and thesis.
+
+You can also build the program itself with `nix build .#default`.
+
+Alternatively, manually set up the following programs:
+
+ - Rust nightly toolchain 2024-01-22
+ - Racket v8.10, with the `rosette` package installed - `raco pkg install rosette`. You may also need to manually install `z3`.
+ - [Just](https://crates.io/crates/just) 1.24.0
+ - To generate visualisations:
+ - [Livebook](https://livebook.dev/) 0.11.3
+ - [vega-cli](https://www.npmjs.com/package/vega-cli 5.26.0
+ - To build the thesis:
+ - Texlive, with the packages listed in `nix/tex-env.nix`
+ - `latexmk`