Rendering of hypersphere traces
root
- bin
- lib
- scripts
- .ocamlformat
- .ocp-indent
- Makefile
- README.md
- dune
- dune-project
- dune-workspace
- quaternion-tangles.opam
- shell.nix
Environment
It's highly recommended to install Nix.
E.g.
curl https://nixos.org/nix/install | sh . ~/.nix-profile/etc/profile.d/nix.sh
Quick Start
TL;DR:
make setup && make test make build && scripts/run random_render --helpMore:
make help
FAQ
Using unstable channel
Nix development Environment relies on unstable channel. Which is default on fresh nix install.
So in case you're on stable nix, or use NixOS, do the following:
- Add unstable channel:
nix-channel --add https://nixos.org/channels/nixos-unstable unstable
- Update unstable channel:
nix-channel --update
- Pass the
NIX_ARGSvariable to make:
(note that path tochannels/unstablemay differ on your system)
make NIX_ARGS="-I nixpkgs=$HOME/.nix-defexpr/channels/unstable" sync
# Other way
export NIX_ARGS="-I nixpkgs=$HOME/.nix-defexpr/channels/unstable"
make sync
Run REPL on or build sub-directory only
scripts/repl ./test
scripts/build ./test
Troubleshooting
- Missing dependencies In case you encounter a message like this (i.e. in case of library missing):
Error: Library "alcotest" not found.
Launch the following command: make sync. In case it didn't help, try update lock file: make lock and try again. If this didn't help, try make update to install dependencies without lock file, or even make upgrade to upgrade their versions.
- User groups permission
In case during project building on GNU/Linux you encounter such message:
error: cloning builder process: Operation not permitted
Then user groups for non-privileged users should be enabled:
sysctl kernel.unprivileged_userns_clone=1