redo the entire lazy trees concept #7

Open
opened 2024-03-07 06:26:31 +00:00 by pennae · 1 comment
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])
Member

This issue was mentioned on Gerrit on the following CLs:

  • commit message in cl/2947 ("libutil: trace unwinding through async tasks")
<!-- GERRIT_LINKBOT: {"cls": [{"backlink": "https://gerrit.lix.systems/c/lix/+/2947", "number": 2947, "kind": "commit message"}], "cl_meta": {"2947": {"change_title": "libutil: trace unwinding through async tasks"}}} --> This issue was mentioned on Gerrit on the following CLs: * commit message in [cl/2947](https://gerrit.lix.systems/c/lix/+/2947) ("libutil: trace unwinding through async tasks")
Sign in to join this conversation.
No milestone
No project
No assignees
2 participants
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.