!lymvtcwDJ7ZA9Npq:lix.systems

Lix Development

408 Members
(Technical) development of Lix, the package manager, a Nix implementation. Please be mindful of ongoing technical conversations in this channel.135 Servers

Load older messages


SenderMessageTime
10 Dec 2025
@piegames:flausch.socialpiegamesI'm dreaming of tackling it for 2.96 really17:36:58
@piegames:flausch.socialpiegamesI already have a half-working prototype from a year ago, horrors had one too, and we should soon have all the parts together for doing it17:37:37
@piegames:flausch.socialpiegamesmain question is whether to do it in C++ or to block it on RPC and do it in Rust17:37:53
@helle:tacobelllabs.nethelle (just a stray cat girl)please don't do it in C++17:38:13
@helle:tacobelllabs.nethelle (just a stray cat girl)we don't want to have to migrate that later on17:38:26
@qyriad:katesiria.orgQyriad we would either block it on RPC, or bind it to existing libexpr over C bindings. the refactoring necessary for libexpr to use a bytecode interpreter over C ABI would be like half the battle for the decoupling we need to do anyway 17:40:46
@xokdvium:matrix.orgSergei Zimmerman (xokdvium)FWIW v8 uses the source code hash as the cache key https://github.com/v8/v8/blob/427f7cce6d69a2d6ce113200e8dcc1151765058c/src/snapshot/code-serializer.cc#L820-L83417:41:09
@xokdvium:matrix.orgSergei Zimmerman (xokdvium)So the closest thing would be to hash .nix files -> cached bytecode -> cached optimizer -> .... -> profit?17:42:32
@piegames:flausch.socialpiegamesthat's the goal yes17:44:02
@piegames:flausch.socialpiegamesunclear about profit though17:44:06
@commentator2.0:elia.gardenRutile (Commentator2.0) feel free to pingDo we understand the overall parsergoal correctly as "use the fastest parser available, errors be damned and if it fails reparse with a good error handling one performance be damned"?17:44:16
@piegames:flausch.socialpiegamesunclear. Having a single fast parser with decent error handling and performance would be nice17:44:52
@kfears:matrix.orgKFears (burnt out)
In reply to @qyriad:katesiria.org
we would either block it on RPC, or bind it to existing libexpr over C bindings. the refactoring necessary for libexpr to use a bytecode interpreter over C ABI would be like half the battle for the decoupling we need to do anyway
I obviously don't participate in development so my voice matters little, but doing C ABI jumps sounds miserable
17:45:11
@qyriad:katesiria.orgQyriad We will need C interop for many parts of the codebase one way or anotherĀ  17:45:37
@qyriad:katesiria.orgQyriad However, we are in the very lucky position that we don't need that ABI to be stable 17:46:09
@qyriad:katesiria.orgQyriad Which helps a lot 17:46:25
@piegames:flausch.socialpiegamesyes, that's why doing it in Rust will mean interop via RPC and subprocesses (which we want anyways)17:46:29
@xokdvium:matrix.orgSergei Zimmerman (xokdvium)That's the hard part too. I imagine bytecode to not be so compact so that serialising it and persisting would have a big overhead. Needs a policy and profiling to see which code is worth caching at all17:46:35
@rosssmyth:matrix.orgrosssmythThere are interpreters in which parsing is on the critical path, but generally they are ones in which data is loaded dynamically. 20:05:04
@rosssmyth:matrix.orgrosssmyth* There are other interpreters in which parsing is on the critical path, but generally they are ones in which data is loaded dynamically. 20:05:21
@jade_:matrix.orgjade_we could RPC a thread too21:42:54
@jade_:matrix.orgjade_either way is fine tbh21:43:00
@piegames:flausch.socialpiegameslong-term the evaluator would be better as a subprocess anyways so I don't see the downsides21:43:39
@piegames:flausch.socialpiegamesalso it elegantly side-steps the current Rust linking issues21:43:48
@jade_:matrix.orgjade_smack the cherry-pick button, get it into the release branch of supported releases, include as patch in nixpkgs if you don't want to wait on someone releng'ing it.21:43:55
@jade_:matrix.orgjade_naming a piranha plant stuffie nom chompsky21:44:20
@helle:tacobelllabs.nethelle (just a stray cat girl)I'll see if I can handle that in the morning, sure21:48:29
@helle:tacobelllabs.nethelle (just a stray cat girl)ty21:49:38
@raitobezarius:matrix.orgraitobezarius
In reply to @xokdvium:matrix.org
So the closest thing would be to hash .nix files -> cached bytecode -> cached optimizer -> .... -> profit?
Inchallah
22:17:03
@rosssmyth:matrix.orgrosssmythmmmmm challah22:18:59

There are no newer messages yet.


Back to Room ListRoom Version: 10