!lymvtcwDJ7ZA9Npq:lix.systems

Lix Development

402 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
6 Nov 2025
@raitobezarius:matrix.orgraitobezariusmostly libstd relinking issues, etc.01:02:27
@raitobezarius:matrix.orgraitobezariusthe same set of problems that systemd is running into afaik01:02:40
@raitobezarius:matrix.orgraitobezariusif we go any RPC way, that's akin to do nom01:03:22
7 Nov 2025
@qyriad:katesiria.orgQyriad we think the strat re: Rust may be to just have rustc do the final link 23:03:21
8 Nov 2025
@byte-flavour:matrix.orgbyteflavour joined the room.07:59:59
@commentator2.0:elia.gardenRutile (Commentator2.0) feel free to ping

currently working on this cl: https://gerrit.lix.systems/c/lix/+/4533 (specifying remote builders using toml instead of what the actual stuff the current thingy is)
but am getting the following cryptic error message, when specifying more than one element in a list:

error: bad machine specification: failed to convert column #3 in a row: 'systemTypes = ["Arch1", "Arch2"]' to 'unsigned int'" 

using systemTypes = ["Arch1"] works, but as soon as i add a second value, it throws the error above..
anyone have any clue why and how to fix this?
note: am trying to data.get<std::vector<std::string>>(...)

19:51:46
9 Nov 2025
@9hp71n:matrix.orgghpzin (moved to @ghpzin:envs.net) changed their display name from ghpzin to ghpzin (moved to @ghpzin:envs.net).15:04:03
@xokdvium:matrix.orgSergei Zimmerman (xokdvium)

Is this a known regression? Wasn't too successful at minimizing, maybe somebody could give it a shot:

nix eval "https://api.flakehub.com/f/pinned/HariAmoor-professional/nixos-config/0.1.15%2Brev-9663eb776b745a0eb637320c165729bf6acaac70/018a8b2d-121a-7d71-8db4-666a0ec6c497/source.tar.gz#nixosConfigurations.nixos.config.system.build.toplevel" --no-allow-import-from-derivation --no-eval-cache

Fails on 3ad1af8 with:

error: makeWrapper/makeShellWrapper must be in nativeBuildInputs

       note: trace involved the following derivations:
       derivation 'home-manager-generation'
       derivation 'home-manager-files'
       derivation 'home-manager-path'
       derivation 'bitwarden-x86_64-unknown-linux-gnu-2023.5.1'
       derivation 'npm-install-hook'
       derivation 'make-shell-wrapper-hook'

Works on 2.93. Sorry for the flakehub repro, don't have a lot of energy atm to keep minimizing this. I think a tell-tale sign is the fact that the derivation name is prefixed (x86_64-unknown-linux-gnu) as if nixpkgs is cross-compiled to gnu64, but it's not. raitobezarius this must have to do with the thunk equality changes?

15:41:12
@raitobezarius:matrix.orgraitobezariusif cross is involved, that seems likely15:43:22
@raitobezarius:matrix.orgraitobezariusthanks for the report15:43:24
@xokdvium:matrix.orgSergei Zimmerman (xokdvium)The issue is that it has no cross is sight15:43:37
@xokdvium:matrix.orgSergei Zimmerman (xokdvium)* The issue is that it has no cross in sight15:45:32
@xokdvium:matrix.orgSergei Zimmerman (xokdvium)Plain old native config of nixpkgs.15:45:47
@raitobezarius:matrix.orgraitobezariusUgh, OK, thanks15:48:21
@raitobezarius:matrix.orgraitobezariusWe will start bisecting on Monday if pennae doesn't beat me to it15:48:31
@xokdvium:matrix.orgSergei Zimmerman (xokdvium) I get the same error as the above for nix eval "github:nixos/nixpkgs?rev=a999c1cc0c9eb2095729d5aa03e0d8f7ed256780#pkgsCross.gnu64.bitwarden" --no-eval-cache. So that's why I suspect that nixpkgs machinery is misled into thinking it's cross while it's not 15:51:28
@xokdvium:matrix.orgSergei Zimmerman (xokdvium)And that's both for cppnix/lix15:52:13
@aloisw:julia0815.dealoisw

2.93:

nix-repl> nixosConfigurations.nixos.config.nixpkgs.hostPlatform == nixosConfigurations.nixos.config.nixpkgs.buildPlatform
true

main:

nix-repl> nixosConfigurations.nixos.config.nixpkgs.hostPlatform == nixosConfigurations.nixos.config.nixpkgs.buildPlatform
false

So it indeed thinks there's cross now where there wasn't before.

16:19:34
@aloisw:julia0815.dealoisw

Slightly reduced reproducer:

let
  inherit (import <nixpkgs> { }) lib;
in
(lib.evalModules {
  modules = [
    (
      { config, ... }:
      {
        options = {
          buildPlatform = lib.mkOption {
            type = lib.types.either lib.types.str lib.types.attrs;
            apply = lib.systems.elaborate;
            default = config.hostPlatform;
          };
          hostPlatform = lib.mkOption {
            type = lib.types.either lib.types.str lib.types.attrs;
            apply = lib.systems.elaborate;
            default = "x86_64-linux";
          };
          isCross = lib.mkOption { type = lib.types.bool; };
        };
        config = {
          isCross = config.buildPlatform == config.hostPlatform;
        };
      }
    )
  ];
}).config.isCross
16:34:50
@aloisw:julia0815.dealoisw

Fully reduced reproducer:

with rec {
  a = {
    f = x: x;
    meow = true;
  };
  b = a // {
    meow = true;
  };
};
a == b
16:39:41
@raitobezarius:matrix.orgraitobezariusoh wow16:46:16
@raitobezarius:matrix.orgraitobezariusthx16:46:17
@raitobezarius:matrix.orgraitobezariusa fix may rain in the next hours16:47:18
@raitobezarius:matrix.orgraitobezariusi want to go and say that zomg the fact that we broke eval based on this behavior :')16:51:32
@lunaphied:lunaphied.meLunaphied Dear gods that's horrifying 16:58:33
@winter:catgirl.cloudWinteri fucking hate it16:58:49
@xokdvium:matrix.orgSergei Zimmerman (xokdvium)

What's even more cursed is this:

nix::EvalState::eqValues (this=0x555555e8b770, v1=..., v2=..., pos=..., errorCtx="while testing two values for equality") at lix/libexpr/eval.cc:2613
2613        forceValue(v2, pos);
(gdb)
2616        if (v1.type() == nInt && v2.type() == nFloat) {
(gdb)
2619        if (v1.type() == nFloat && v2.type() == nInt) {
(gdb)
2624        if (v1.type() != v2.type()) return false;
(gdb)
2629        auto pointerEq = [&] { return v1.pointerEqProxy() == v2.pointerEqProxy(); };
(gdb)
2631        switch (v1.type()) {
(gdb)
2658                if (pointerEq()) return true;
(gdb)
2661                if (isDerivation(v1) && isDerivation(v2)) {
(gdb)
2669                if (v1.attrs()->size() != v2.attrs()->size()) return false;
(gdb) p v1.attrs()->size()
$1 = 2
(gdb) p v2.attrs()->size()
$2 = 3

It's not equal because the attrset size is incorrect? How???

17:21:56
@aloisw:julia0815.dealoiswI'd guess because it forgot to shrink after noticing that the update replaced one entry?17:24:59
@xokdvium:matrix.orgSergei Zimmerman (xokdvium)Updates never replace anything - they copy to a new attribute set though. It's puzzling17:25:38
@aloisw:julia0815.dealoisw
In reply to @raitobezarius:matrix.org
i want to go and say that zomg the fact that we broke eval based on this behavior :')
Honestly I didn't even know before tracing this down that true is the expected value in this place.
17:25:58

Show newer messages


Back to Room ListRoom Version: 10