Open madeline-os opened 2 years ago
In #429 , the fact that evaluation result is not served from cache causes a massive exaggeration of this problem to occur.
A solution similar to https://github.com/obsidiansystems/nix-thunk/pull/47 could improve the caching
I forked obelisk
to use that nix-thunk
change, and it got rid of the message about caching, although it didn't do much for the startup lag.
When the global obelisk command is invoked in a user project, it will hand-off execution to the project's pinned obelisk. This is essential for users who work with multiple projects which may be on drastically different versions obelisk. However, we have to evaluate the obelisk implementation thunk to determine which obelisk to hand-off to. This is extremely frustrating.
Nix can't cache evaluation. It can cache it for flakes, but obelisk has no flake integration right now. It is not clear what would need to be done there, or if it is desirable. How feasible is it to extend the caching for flakes to pure nix expressions in general? This is an investigation of our upstream dependencies and their priorities.
Can we simply optimize the amount of time required to do the evaluation? Why does it take so long? Maybe we can just make it fast enough that it doesn't matter.
We could also do our own dirty caching tricks...