!lymvtcwDJ7ZA9Npq:lix.systems

Lix Development

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

Load older messages


SenderMessageTime
15 Apr 2026
@shalokshalom:kde.orgShalokShalom In case someone is interested into arguments why semantic versioning is broken in itself, listen to Rich Hickey. 13:15:02
@shalokshalom:kde.orgShalokShalom * In case someone is interested into arguments why semantic versioning is broken in itself, listen to Rich Hickey. 13:15:14
@piegames:flausch.socialpiegamesOff-topic, please13:20:12
@xokdvium:matrix.orgSergei Zimmerman (xokdvium)Is Lix going to go with a zygote fork helper?18:15:09
@xokdvium:matrix.orgSergei Zimmerman (xokdvium)To mitigate the slow fork times?18:15:48
@raitobezarius:matrix.orgraitobezariuswell, lix has already very fast fork times now18:16:45
@raitobezarius:matrix.orgraitobezariusbut vfork is dangerous18:16:49
@raitobezarius:matrix.orgraitobezariusso if we can have the speed and the safeness (aka zygote fork helper), that'd be great18:17:02
@raitobezarius:matrix.orgraitobezariusbut lower priority18:17:05
@xokdvium:matrix.orgSergei Zimmerman (xokdvium)How did you achieve that? It's using the plan old fork() if I read the code correctly and that's still slow when there is a lot of memory allocated18:19:58
@raitobezarius:matrix.orgraitobezariusvfork18:20:51
@raitobezarius:matrix.orgraitobezarius grep inVFork 18:21:03
@raitobezarius:matrix.orgraitobezariusin the codebase18:21:04
@raitobezarius:matrix.orgraitobezarius
/**
 * runs a callback in a vforked child process that shares its address space with
 * the current process. the child behaves much like a thread as a result and the
 * callback must not make changes to process memory that we cannot undo from the
 * parent, otherwise we may leak memory or fully trash the parent address space.
 *
 * NOTE: see `asVFork` for safety information regarding credentials and signals.
 *
 * throws an exception if the child exec's or otherwise doesn't return a result.
 */
static auto inVFork(int flags, auto fn)
{
    auto [pid, result] = asVFork(flags, fn);

    if (result) {
        return std::move(result->value());
    } else {
        throw Error("vfork child unexpectedly did not produce a value");
    }
}

this is the entrypoint of the magic

18:21:26
@raitobezarius:matrix.orgraitobezariussome plain old fork() might be used in other places18:21:43
@xokdvium:matrix.orgSergei Zimmerman (xokdvium)Ah that's for the sandboxing setup, I see. I was looking at libexec helpers18:21:50
@raitobezarius:matrix.orgraitobezariusbut wrt to derivation builds, the overhead is around 2µs ?18:21:59
@raitobezarius:matrix.orgraitobezariusgetting lower would be nice ofc18:22:44
@raitobezarius:matrix.orgraitobezariusbut not urgent18:22:49
@raitobezarius:matrix.orgraitobezariusit is now possible to build 1M derivations reasonably18:23:00
16 May 2024
@aciceri:nixos.devzrsk joined the room.13:54:49
@samrose:matrix.orgsamrose
In reply to @lunaphied:lunaphied.me
I think there were a few CLs on the Gerrit but nothing being actively worked
The other thing that I could do if it helps is test things and try to find bugs. I did do some C++ work in the past, but may lack the time to do it justice here at least for about 30 days or so
15:55:29
@qyriad:katesiria.orgQyriadwe are not in any rush 🙂17:20:53
@samrose:matrix.orgsamroseWould it help to also test out the existing Lix code and try to find issues/bugs etc?17:23:21
@qyriad:katesiria.orgQyriadabsolutely17:23:41
@samrose:matrix.orgsamrose
  • how do people feel about the existing test suite that comes along with nix source code or Lix?
17:23:48
@qyriad:katesiria.orgQyriadit's pitiful17:24:10
@samrose:matrix.orgsamroseheh 17:24:16
@raitobezarius:matrix.orgraitobezariusexpanding it is cool17:24:23
@raitobezarius:matrix.orgraitobezariuswriting new tests for builtins which are not tested17:24:30

Show newer messages


Back to Room ListRoom Version: 10