!VRULIdgoKmKPzJZzjj:nixos.org

Nix Hackers

905 Members
For people hacking on the Nix package manager itself190 Servers

Load older messages


SenderMessageTime
17 Jan 2026
@normalcea:matrix.org@normalcea:matrix.org removed their display name jasi 🏳️‍⚧️.04:09:15
@normalcea:matrix.org@normalcea:matrix.org left the room.04:09:23
18 Jan 2026
@roberthensing:matrix.orgroberth

I would much appreciate your feedback on https://github.com/NixOS/rfcs/pull/196: Self-describing store
This RFC proposes that stores provide a nix-store.json file declaring their properties, enabling:

  • Discovery of store settings (storeDir, encoding, etc.)
  • Forward compatibility through explicit feature requirements
  • A unified replacement for the ad hoc nix-cache-info format
16:55:25
@roberthensing:matrix.orgroberth(best discussed over there)16:56:38
@lasverdos:matrix.orglosvedar joined the room.17:37:54
@isabel:isabelroses.comisabel changed their profile picture.20:43:31
19 Jan 2026
@niksnut:matrix.orgniksnutlooks good to me in principle10:01:39
@raboof:matrix.orgraboof is it expected that // is not lazy? i.e. it evaluates the LHS even if the RHS holds the thing I'm taking from it? 14:26:57
@raboof:matrix.orgraboof * is it expected that // is not lazy? i.e. it evaluates the left parameter even if the right parameter holds the thing I'm taking from it? 14:27:44
@qyliss:fairydust.spaceAlyssa Ross
nix-repl> ({ foo = throw "oh no"; } // { foo = 1; }).foo
1
14:28:09
@qyliss:fairydust.spaceAlyssa Rosslooks lazy to me?14:28:13
@raboof:matrix.orgraboof
nix-repl> ((throw "oh no") // { foo = "foo"; }).foo
  error: oh no
14:31:30
@ma27:nicht-so.sexyma27 attr-names are generally not lazy in Nix, hence the throw is being evaluated. 14:32:02
@raboof:matrix.orgraboof I read // as a function (in infix notation) with two parameters, perhaps that's not how this works? 14:32:41
@raboof:matrix.orgraboof right, so // creates its set of attr-names at first access. that makes some sense I guess. 14:40:42
@xokdvium:matrix.orgSergei Zimmerman (xokdvium)
In reply to @raboof:matrix.org
is it expected that // is not lazy? i.e. it evaluates the left parameter even if the right parameter holds the thing I'm taking from it?
Yes, attribute names are evaluated eagerly in part due to how attrsets are stored internally
14:42:23
@joerg:thalheim.ioMic92Also because they have to be lexical sorted, no?14:56:23
@roberthensing:matrix.orgroberthIt's the simple thing to do, and simple is fast, usually. Not being simple is what stalled https://github.com/NixOS/nix/pull/415414:57:32
@roberthensing:matrix.orgroberthCould be revisited, but it does change the language semantics so that's tricky, and hard to backtrack away from in the future14:58:10
@joerg:thalheim.ioMic92Yeah, feels hard to make this bug-compatible with the current behaviour.14:58:51
@joerg:thalheim.ioMic92One could have an infinite attrset that would work with new nix, but not with old nix.14:59:24
@joerg:thalheim.ioMic92Also that would be less likely the biggest issue14:59:51
@roberthensing:matrix.orgroberthIt'd be subtler current errors that would be the problem, mostly infinite recursions that would be lifted in the new Nix language15:01:10
@roberthensing:matrix.orgroberth(or at least those would be the ones people would complain to me about :) )15:01:50
@shine:proqqul.netTaeer Bar-YamGenerally turning errors into correct behaviour is the least bad way to break compatibility, right? Though it causes more problems now that we have other forks of nix15:07:26
@raboof:matrix.orgraboofyeah I wasn't saying we should change this, just calibrating my expectations ;) - but nice to see more people have been pondering (and even hacking on) this ;)15:07:34
@roberthensing:matrix.orgroberthno, raboof, you are in the rabbit hole with us now!15:08:04
@roberthensing:matrix.orgroberthI agree it's a good kind of change, but the second order effects are real. E.g. you upgrade, you use it, I don't, it fails for me, I complain, we lose15:09:02
@roberthensing:matrix.orgroberthnot to say we can't get over that. It's still an improvement, but is it the right thing to do now?15:10:05
@roberthensing:matrix.orgroberthI'd want to know the long term impact on evaluator performance including opportunities missed. tricky.15:10:47

Show newer messages


Back to Room ListRoom Version: 6