31 Aug 2025 |
Sergei Zimmerman (xokdvium) | And if the tarball-ttl isn't passed the result is cached... | 15:01:50 |
aloisw | Looks like working as intended tbh. | 15:04:16 |
Sergei Zimmerman (xokdvium) | Well yeah, though I doubt it's by design | 15:05:11 |
Sergei Zimmerman (xokdvium) | However this does actually expose the evaluation order. Depending on in which order thunks are forced this would produce different results hmmm | 15:06:47 |
aloisw | That's by far not the only thing exposing evaluation order. Other ways to read special files, symbol table order, … | 16:20:14 |
aloisw | It will also not work with pure eval mode, so this doesn't even look like silently breaking any purity guarantees. | 16:21:49 |
aloisw | If anything I would've expected it to fail due to some bullshit bug. | 16:22:33 |
emily | I think builtins.fetchGit with a rev could break purity. | 16:34:47 |
emily | maybe. | 16:34:58 |
emily | but builtin fetchers are just sort of dodgy for strict purity in general I suppose | 16:36:12 |
aloisw | That's indeed something that can be used for breaking purity too, by possibly being dependent on the repository configuration. | 16:37:09 |
emily | I was thinking just forging an object and hoping nobody is checking the hash | 16:43:33 |
aloisw | I would hope Git would check the hash on clone but indeed I don't know for sure. | 16:46:47 |
emily | I thought libgit2 was involved somewhere. | 17:41:15 |
emily | (maybe not in Lix?) | 17:41:19 |
emily | (but hopefully libgit2 does. but I think some of this stuff may be configuration-tweakable.) | 17:41:32 |
emily | * (but hopefully libgit2 does too. but I think some of this stuff may be configuration-tweakable.) | 17:41:37 |
aloisw | Not in Lix, it was one of the regression-causing things in 2.20 that was not backported. | 17:41:38 |
emily | libgit2 is awful anyway, so good decision. | 17:42:12 |
emily | we replaced libgit2 fetches/clones with shelling out to git(1) in Jujutsu and it's 100× better. | 17:42:30 |
aloisw | Yeah shelling out to the command seems to be the only way to do git properly. So many bugs and limitations with libgit2. | 17:43:27 |
emily | gitoxide is pretty good (if you're using Rust, and the API is kind of baroque in the "Rust that is really enthusiastic about never copying or heap-allocating anything it doesn't have to so the error types are a deeply-nested pain and sometimes the lifetimes make it awkward to do what you want" sort of way). but it doesn't do pushes | 17:46:42 |
helle (just a stray cat girl) | libgit2 is a mess and we are not going to do it | 17:46:52 |
emily | it does clones though, so potentially good enough for Nix purposes | 17:46:54 |
emily | (but of course not relevant when everything is still C++) | 17:47:04 |
1 Sep 2025 |
piegames | Okay, so in a pure shell it already fails on just build : ninja: error: '/nix/store/iyh7nfcs7f249fzrbavqgxzwiy0z7xii-lowdown-1.3.2-lib/lib/liblowdown.so', needed by 'lix/libcmd/liblixcmd.so', missing and no known rule to make it . Looks like a missing dependency in our dev shell somewhere, can somebody maybe try to reproduce? | 05:54:02 |
Sergei Zimmerman (xokdvium) | In reply to @piegames:flausch.social Okay, so in a pure shell it already fails on just build : ninja: error: '/nix/store/iyh7nfcs7f249fzrbavqgxzwiy0z7xii-lowdown-1.3.2-lib/lib/liblowdown.so', needed by 'lix/libcmd/liblixcmd.so', missing and no known rule to make it . Looks like a missing dependency in our dev shell somewhere, can somebody maybe try to reproduce? Wasn’t lowdown bumped to 2.0.4 at some point? IIRC that was a packaging override | 07:53:47 |
| Lun changed their display name from lun to Lun. | 15:55:14 |
| Samuel Shuert changed their profile picture. | 20:39:06 |
3 Sep 2025 |
piegames | Weird, now it does setup but fails with related compilation errors
../lix/libcmd/markdown.cc:72:10: error: field designator 'cols' does not refer to any field in type 'struct lowdown_opts'
72 | .cols = lowdown_cols,
| ~^~~~~~~~~~~~~~~~~~~
../lix/libcmd/markdown.cc:73:10: error: field designator 'hmargin' does not refer to any field in type 'struct lowdown_opts'
73 | .hmargin = 0,
| ~^~~~~~~~~~~
../lix/libcmd/markdown.cc:74:10: error: field designator 'vmargin' does not refer to any field in type 'struct lowdown_opts'
74 | .vmargin = 0,
| ~^~~~~~~~~~~
3 errors generated.
| 07:08:41 |