# Candelabra These are the supplementary materials for my thesis, Candelabra. - `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`