Nix Hackers | 974 Members | |
| For people hacking on the Nix package manager itself | 206 Servers |
| Sender | Message | Time |
|---|---|---|
| 21 Sep 2021 | ||
| 14:49:28 | ||
I'm probably missing something obvious, but I can't use recursive nix even with recursive-nix in my experimental-features in /etc/nix/nix.conf. It only works if I use single-user mode by specifying a store with --store. | 19:14:22 | |
Nevermind, I can't get it to work at all. I get /nix/var: Permission denied when running nix build. | 19:32:26 | |
I fixed my issue: It has to be in system-features too... | 20:05:48 | |
| 22 Sep 2021 | ||
In reply to @trofi:matrix.orgAFAIR this is because substitution and building uses a common work queue constrained by max-jobs. If they used independent (and ideally differently-sized) pools, building might be able to start sooner. | 09:19:56 | |
In reply to @trofi:matrix.org* AFAIR this is because substitution and building use a common work queue constrained by max-jobs. If they used independent (and ideally differently-sized) pools, building might be able to start sooner. | 09:20:06 | |
| 23 Sep 2021 | ||
| 14:51:43 | ||
| 24 Sep 2021 | ||
| 01:01:26 | ||
| 04:58:06 | ||
| 25 Sep 2021 | ||
Robert Hensing (roberth): Ah, now I get it. The single place where coroutines are used in Nix is in decompression via libarchive, to convert between the non-blocking Sink "push" model used everywhere else and the Source "pull" model because libarchive does not have a non-blocking API. Yikes. | 09:20:32 | |
| we do have some internal use as well, but this kind of forces us to use stackful coroutines | 09:24:51 | |
| threads could be an alternative. On disk buffering probably not desirable | 09:26:57 | |
Ah right, I missed that the other direction, sinkToSource, uses it as well. Which is used, err, everyhwere. | 09:29:27 | |
* Ah right, I missed that the other direction, sinkToSource, uses coroutines as well. Which is used, err, everyhwere. | 09:29:36 | |
| mostly because nar parsing is pull based I believe | 09:31:18 | |
So libarchive needs pull. If all the parts using the push model are internal to Nix, they could be rewritten to stackless Sources using C++20 coroutines. But that would be a major refactoring. | 09:42:09 | |
| that would include the evaluator, when a filtersource predicate causes paths to be added to the store as a side effect | 10:03:31 | |
| using a library for source filtering is actually very reasonable and can cause this to happen; fetching the library source (eg hercules-ci/gitignore.nix) or doing ifd (eg nix-gitignore) | 10:05:11 | |
| (partly solved by flakes; another use case could be a library that filter sources based on a haskel cabal file or other kind of project file) | 10:05:51 | |
| a stackless evaluator would be nice btw, but I'm not sure if C++20 coroutines are the best vehicle for such a transformation | 10:07:43 | |
| * a stackless evaluator would be nice btw, but I don't know if C++20 coroutines are the best vehicle for such a transformation | 10:09:34 | |
| Weekly complain about broken DNS in nix builders. Today's report: https://github.com/NixOS/nixpkgs/issues/139470. Would be nice to get a fix landed to nix in some form. | 21:57:46 | |
| 26 Sep 2021 | ||
| 02:42:28 | ||
nix error message question: https://dpaste.com/56YEHBN65.txt. Do I read it correctly that meta is not allowed as an attribute in {...} function? | 08:45:34 | |
trofi: this means you've hit the bootstrapping fetchurl which doesn't accept a meta attribute during evaluation instead of the regular one which does | 08:47:17 | |
| this happens sometimes if you evaluate something which shouldn't be strictly or have some infinite recursion issues in nixpkgs | 08:47:55 | |
| I packages gcc-12 snapshot locally that pulls in new Is it the same | 08:50:17 | |
| * I packaged gcc-12 snapshot locally that pulls in new Is it the same | 08:50:26 | |
Oh, it's a fetchurl, not fetchpatch. I got lost among those two. Makes more sense now. | 08:52:57 | |
| it seems fetchurl is called via fetchpatch in this case | 08:53:30 | |