!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

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


SenderMessageTime
9 Nov 2025
@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

Show newer messages


Back to Room ListRoom Version: 10