Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[lowrisc] Add a Nix shell for lowrisc internal use
This adds a devShell that employees can use to bootstrap access to non-public EDA tooling. Evaluation will fail without appropriate credentials to fetch the repository 'lowrisc-nix-private'. Disclaimer: EXPERIMENTAL These shells will only be functional in the appropriate restricted environments. This is an experiment at tracking dependencies on proprietary tooling that is less out-of-band compared to simply assuming the underlying environment is pre-populated. For obvious reasons, this will always have much weaker reproducibility guarantees than freely-available software and open-source deps. However we can still lean on Nix to make bootstrapping non-public environments fast, ergonomic and hopefully reproducible within the constricted space. Using a nix flake input that is a private repository, we can effectively pin a version of the private dependencies (hash+timestamp etc) without exposing what they are. As nix is lazily evaluated, these inputs will not attempt to be fetched unless we evaluate an output which depends on them, and hence they should happily co-exist with other flake attributes for most consumers. To avoid the flake.lock in this repository from exposing the transitive deps of the private input, that flake does not track it's inputs in the standard way. Hence, impure evaluation mode is required when using these outputs. e.g. ``` nix develop .#eda_shell_lowrisc nix develop .#eda_shell_lowrisc --command bash -c \ "make -C dv/uvm/core_ibex SIMULATOR=xlm ITERATIONS=4 TEST=riscv_rand_instr_test" ``` Signed-off-by: Harry Callahan <[email protected]>
- Loading branch information