redo the entire lazy trees concept #7

Open
opened 2024-03-07 06:26:31 +00:00 by pennae · 0 comments
Owner

lazy trees are busted. path semantics are unclear and often implemented incorrectly, accessors are semi-invisible and intrusive to the evaluator anyway. lazy trees should be reworked, probably on the basis of something proven: posix semantics and mountpoints

our plan for that is to fully strip back the input accessor infra they've put in place already, standardize on posix fs semantics because that's what nix was built on, decouple libexpr completely, and then start again from there
on a mountpoint-based system that synthesizes store paths for "lazy" sources, and is then taken apart by the external-to-libexpr fs shim
eg you'd get not /foo for a file foo in a zip archive but /nix/store/.mounted/source.zip/foo in the evaluator, and eval don't care

(ie, eat the accesses before hitting the actual fs [h/t jade])

lazy trees are busted. path semantics are unclear and often implemented incorrectly, accessors are semi-invisible and intrusive to the evaluator anyway. lazy trees should be reworked, probably on the basis of something proven: posix semantics and mountpoints our plan for that is to fully strip back the input accessor infra they've put in place already, standardize on posix fs semantics because that's what nix was built on, decouple libexpr completely, and then start again from there on a mountpoint-based system that synthesizes store paths for "lazy" sources, and is then taken apart by the external-to-libexpr fs shim eg you'd get not /foo for a file foo in a zip archive but /nix/store/.mounted/source.zip/foo in the evaluator, and eval don't care (ie, eat the accesses before hitting the actual fs [h/t jade])
jade added the
performance
label 2024-03-11 20:02:00 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: lix-project/lix#7
No description provided.