be5597fc9d
By overriding each dependency on every level of the dependency tree we are creating a lot of unnecessary instances of the same derivation Looking at the output size of `nix-instantiate --trace-function-calls -vvvv …` and the execution time I got about a 10x improvement after applying this change. It was probably good intentions that lead to these overrides but in practice no tooling (that I know of) really needs this. `carnix` and `crate2nix` are fine without those overrides. Furthermore I believe that it is the job of the tooling around `buildRustCrate` to provide a coherent set of overrides. By not enforcing all of the overrides, debug flags, verbosity, … to be the same throughout the closure we also allow consumers to override specific aspects of the crates. Some (older?) crates might need different `crateOverrides` then newer crates with the same name. Currently such situations can not (easily) be implemented with the override in-place. |
||
---|---|---|
.. | ||
build-rust-crate | ||
patch-registry-deps | ||
cargo-vendor-normalise.py | ||
carnix.nix | ||
crates-io.nix | ||
default-crate-overrides.nix | ||
default.nix | ||
fetchcargo-default-config.toml | ||
fetchcargo.nix | ||
fetchcrate.nix |