| 30 Jul 2025 |
emily | now it's happy. go figure | 18:02:00 |
emily | my guess is that something got interrupted and left the state broken | 18:02:09 |
Katalin 🔪 | nice! | 18:02:12 |
emily | if only we had some kind of hash-addressed atomic build system to avoid cache invalidation problems | 18:02:21 |
Katalin 🔪 | yeah, that can happen, because it only unpacks it if it;s missing | 18:02:28 |
emily | thanks for the pointer | 18:02:30 |
Katalin 🔪 | hey, the wrap system is hash-checked! however it is intended to allow you to modify the source directory so you can more easily write a patch for it (meson subprojects packagefiles --save) so it won’t check modifications. | 18:04:44 |
Katalin 🔪 | but yeah just nuke the subproject source and it will set it up fresh if this happens | 18:05:14 |
| 31 Jul 2025 |
| Rafael Girão joined the room. | 13:22:38 |
Rafael Girão | Hi! What's the technical reason against lazy-trees? (assuming it is a technical one) I just learned about the feature in determinate nix, then I saw Lix's about page:
Lix does not include lazy trees, and does not intend to use the upstream implementation of lazy trees; a functionally equivalent replacement is planned (FIXME: publish the planning document for that).
| 13:29:22 |
Rafael Girão | Is the planning document public yet? 😅 | 13:29:32 |
K900 | The implementation in cppnix is basically horribly broken | 13:30:37 |
raitobezarius (DECT: 7248) | Lix already has an implementation of lazy trees: https://git.lix.systems/lix-project/flake-compat#copying-to-the-store | 13:42:26 |
raitobezarius (DECT: 7248) | It's not just public yet | 13:42:29 |
WeetHet | https://gerrit.lix.systems/c/lix/+/3843 | 13:47:20 |
WeetHet | In reply to @raitobezarius:matrix.org Lix already has an implementation of lazy trees: https://git.lix.systems/lix-project/flake-compat#copying-to-the-store Impure evaluation without copying the tree to store is not particularly interesting | 13:58:59 |
WeetHet | It's been possible since forever | 13:59:14 |
raitobezarius (DECT: 7248) | But that's exactly lazy trees? :'D | 13:59:34 |
WeetHet | In reply to @raitobezarius:matrix.org But that's exactly lazy trees? :'D Lazy trees do pure evaluation | 14:00:04 |
raitobezarius (DECT: 7248) | In reply to @weethet:catgirl.cloud Lazy trees do pure evaluation Oh well, this is the first time I hear about this then | 14:00:24 |
raitobezarius (DECT: 7248) | Last time I read CppNix source code, I saw a use of a non-pure primitive :) | 14:00:36 |
raitobezarius (DECT: 7248) | making the whole evaluation impure | 14:00:44 |
WeetHet | https://github.com/NixOS/nix/pull/13225/files | 14:03:06 |
WeetHet | I don't see anything impure? | 14:03:11 |
raitobezarius (DECT: 7248) | https://github.com/NixOS/nix/pull/13225/files#diff-34086a6cc2cf161aec3ef471b784dc65d0afbab7fe1b921af8211ff67492bbb9R79 | 14:03:48 |
WeetHet | It's not impure it's uhh non-deterministic | 14:04:29 |
WeetHet | And it's only because computing the hash before copying is slow? | 14:05:00 |
WeetHet | And it's only non-deterministic if you're comparing the paths for equality | 14:06:08 |
WeetHet | * And it's only non-deterministic if you're comparing paths for equality | 14:06:21 |
WeetHet | I'm not sure that's even a real usecase | 14:06:32 |