You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A possibly big improvement for caching of build results (especially combined with content-addressing), could be having a single derivation per Haskell module.
This would allow caching to be much more granular, and small changes would only cause small rebuilds in CI.
The core issue is that the derivation graph depends on the result of previous derivations.
Dynamic derivations would have been the perfect tool for this, however, the PR has seemingly stalled for quite some time due to upstream communication issues (NixOS/nix#4628).
Another tool that can achieve the same thing effectively is IFD, albeit as noted in #1522 , this is problematic, however, perhaps fixing Nix would be enough?
The text was updated successfully, but these errors were encountered:
The prior art here is https://github.com/nmattia/snack, where I believe it was found that this was a bad idea, as it generates far too many derivations, which bloats both evaluation and build times.
With proper dynamic derivations it inherently can not affect evaluation times as it is done at build time. It is possible that Nix is slow at handling many derivations, but I don't think it should be a problem since it's only increased by probably on average 100x per haskell library.
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
A possibly big improvement for caching of build results (especially combined with content-addressing), could be having a single derivation per Haskell module.
This would allow caching to be much more granular, and small changes would only cause small rebuilds in CI.
Projects like https://github.com/matthewbauer/ghc-nix and https://github.com/awakesecurity/cabal2ninja are relevant.
The core issue is that the derivation graph depends on the result of previous derivations.
Dynamic derivations would have been the perfect tool for this, however, the PR has seemingly stalled for quite some time due to upstream communication issues (NixOS/nix#4628).
Another tool that can achieve the same thing effectively is IFD, albeit as noted in #1522 , this is problematic, however, perhaps fixing Nix would be enough?
The text was updated successfully, but these errors were encountered: