| 12 Sep 2025 |
magic_rb | Oh yeah good idea, im still very far off from being able to even import something but AoC is a very sound idea | 15:25:57 |
Mic92 | In reply to @jaen:matrix.org If there are other tasks that can be done in parallel for installer upstreaming I'd also be interested — I was cooking a Nix article series for $CURRENT_JOB blog (the company does a lot of Bazel, so it's structured by way of compare & contrast) and don't feel comfortable publishing them until after the installer situation is resolved, I don't really want to redirect people away from the upstream. How is your rust knowledge? | 15:53:37 |
Mic92 | The repo could probably rebased again. | 15:53:48 |
jaen | Hm, I've been following Rust since it was written in OCaml, so reasonably good theoretical foundations, and I've started writing some practical stuff last year finally (working on a ninja parser for nix-ninja that can handle AOSP scale). So I think I should manage as long as it's not terribly arcane — which I would assume an installer hopefully is not. | 17:36:07 |
jaen | So basically what you'd like me to do is to take https://github.com/NixOS/experimental-nix-installer and rebase it on top of recent upstream (any particular commit, last before they dropped support for upstream nix maybe)? | 17:36:08 |
| 13 Sep 2025 |
| ysndr joined the room. | 01:28:20 |
fzakaria | hi everyone | 20:45:30 |
| oak 🏳️🌈♥️ changed their profile picture. | 09:46:11 |
Sergei Zimmerman (xokdvium) | Honestly there's also only things that you can find out at scale. For one, memory usage and value representation is very important. It's not the interpreter or parser that's the bottleneck | 20:47:36 |
Sergei Zimmerman (xokdvium) | Experimenting with efficient sharing of immutable values would be great. I have some thoughts on this that might manifest into something tangible soon | 20:48:42 |
magic_rb | im currently still trying to wrap my head around the STG | 20:49:01 |
Sergei Zimmerman (xokdvium) | Also the plus/minus implementation is a bit more complex than this: https://git.redalder.org/magic_rb/nix-stg/commit/04839e29e51a3b237359d0e95239e2b6960334ff.
Like consider the following: let __sub = __mul; in 1 - 2. For better or worse this evaluates to 2
| 20:53:18 |
puck | i mean; the nix language is a bunch of scope resolving and then a bunch of primop calls, there's not much inbetween | 20:54:14 |
puck | the nix language without e.g. derivation is ... kinda hard to use | 20:55:05 |
puck | i once experimented by taking the nix source code and taking out everything that isn't the expression interpreter; very little was left. just a handful of primops; i didn't even have import because it depended on the FS | 20:55:40 |
puck | comparing with e.g. https://nix-re.pl/ which translates everything to a primop call (a + b -> __add a b; a.b.c or d -> __selectOr a [ "b" "c" ] d) | 20:56:27 |
puck | all this to say i don't think there's much of a subset of Nix that would let you reasonably test performance; the only real-world performance test i can think of is "how well can you evaluate nixpkgs"; which requires .. well, everything | 21:00:59 |
magic_rb | right, okay, point taken, ig ill have to implement enough to eval nixpkgs to actually get any data | 21:10:14 |
magic_rb | ... | 21:10:15 |