!lymvtcwDJ7ZA9Npq:lix.systems

Lix Development

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

You have reached the beginning of time (for this room).


SenderMessageTime
10 Dec 2025
@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 (rootile)Do 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 🏳️‍⚧️ (they/them)
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

Show newer messages


Back to Room ListRoom Version: 10