infinisil changed the topic of #nix-lang to: Channel for discussing Nix as a language - https://nixos.org/nix/manual/#chap-writing-nix-expressions - Logs: https://logs.nix.samueldr.com/nix-lang/
<pie_[bnc]> with some extremely heavy kludging, im getting things to eval again
ddellacosta has quit [Ping timeout: 256 seconds]
inara has quit [Quit: Leaving]
inara has joined #nix-lang
__monty__ has joined #nix-lang
hmpffff has joined #nix-lang
ddellacosta has joined #nix-lang
evanjs has quit [Quit: ZNC 1.7.5 - https://znc.in]
evanjs has joined #nix-lang
<pie_[bnc]> annoyed that a == a is false if a is a function
<puck> pie_[bnc]: { inherit a; } == { inherit a; } tho
<gchristensen> lol thats cheating(?)
<puck> is it?
<puck> nixpkgs depends on it
<gchristensen> sure
<puck> it's a good guarantee that it'll work for quite some time still
<gchristensen> I didn't say it wasn't going to change
<gchristensen> I didn't say it was going to change*
<gchristensen> sorry, was just trying to be playful
<MichaelRaskin> Wait, Nixpkgs depends on == between attrsets?
<puck> yes, but also
<puck> > let a = a: a; in a == a
<{^_^}> false
<puck> > let a = a: a; in { inherit a; } == { inherit a; }
<{^_^}> true
<infinisil> Damn that's nasty!
<puck> and fixing this isn't trivial
<puck> since it breaks infinite attrset equality
<infinisil> Is attribute equality not implemented recursively?
<puck> (in certain cases)
<puck> in other cases, it's fucked still
<puck> > let a = { a = { a = a; }; }; in a == a.a
<{^_^}> error: stack overflow (possible infinite recursion)
<puck> *but*
<puck> > let a = { a = { a = a; }; }; in a == a
<{^_^}> true
<puck> tho, if i'm right
<puck> > let a = { a = a; }; b = { a = a; }; in a == b
<puck> obvs
<{^_^}> true
<pie_[bnc]> puck is counterexamples incarnate
<puck> yes
<gchristensen> puck is a hero
<pie_[bnc]> now if only we could fix our language semantics
<pie_[bnc]> let not be C
<gchristensen> so much negativity
<pie_[bnc]> yes
gchristensen has left #nix-lang ["WeeChat 2.6"]
<pie_[bnc]> D:
<pie_[bnc]> oh wait this is nix-lang
<pie_[bnc]> wat
gchristensen has joined #nix-lang
<gchristensen> (sorry, just having a pretty hard day, not mad or anything, and so want to insulate myself just a bit for a bit)
gchristensen has left #nix-lang ["WeeChat 2.6"]
<pie_[bnc]> reasonable
<pie_[bnc]> MichaelRaskin: i might just be reinventing overlays with out the fixpoint and just maually passing literally everthing...
<pie_[bnc]> imnot sue
<pie_[bnc]> *im not sure
<MichaelRaskin> I am not too surprised…
<pie_[bnc]> lets try that again with highlighting <puck> pie_[bnc]: { inherit a; } == { inherit a; } tho
<pie_[bnc]> wow today is not my day
<pie_[bnc]> MichaelRaskin: https://bpaste.net/4YVQ
<pie_[bnc]> im not surprised either, this wouldnt be the first time
<pie_[bnc]> the only way i ever manage to understand any of this stuff is to reinvent it myself..which is kind of frustrating
<MichaelRaskin> You do not know how my LFS setup looked like before I switched to NixOS…
<pie_[bnc]> uh i think i just repasted the same thing from ealier hold on
<pie_[bnc]> well, the highlighting is screwed, but the end uses a variant of recursiveUpdate for overriding in the nested functors https://bpaste.net/EXCQ
<pie_[bnc]> a lot of nixpkgs guts feel write-only
<pie_[bnc]> ^unrelated coment
<pie_[bnc]> i should make a minimum example of this style the paste is inscrutable
<MichaelRaskin> pie_[bnc]: it gets better re: write-only
<pie_[bnc]> i have GHC envy
<MichaelRaskin> A drawback of this as a demo is that you need large chunks of Python verbatim
<MichaelRaskin> (also, poor bpaste highlighter, it was not ready for such language nesting)
<pie_[bnc]> i actually only have like one line of python
<pie_[bnc]> but heh :D
<pie_[bnc]> oh no. my code it _full_ of functors. error: '__functor' at default2.nix:64:20 called with unexpected argument '__functor', at undefined position
<MichaelRaskin> All the way down.
<pie_[bnc]> nevermind, removed my single use of with
<pie_[bnc]> figured i'd try adding `{ ... } // { __functor = self: args: with self//args; ... }` at the top level for callpackage compatibility...
<pie_[bnc]> actually...might not make sense to have a functor at the top level.
__monty__ has quit [Quit: leaving]