jrolfs_ has quit [Ping timeout: 256 seconds]
jtojnar has quit [Ping timeout: 248 seconds]
jtojnar has joined #nix-darwin
jrolfs_ has joined #nix-darwin
jrolfs_ has quit [Ping timeout: 256 seconds]
cransom has joined #nix-darwin
jrolfs_ has joined #nix-darwin
jrolfs_ has quit [Ping timeout: 240 seconds]
hamishmack has quit [Ping timeout: 255 seconds]
hamishmack has joined #nix-darwin
__Sander__ has joined #nix-darwin
periklis has joined #nix-darwin
jrolfs has joined #nix-darwin
jrolfs_ has joined #nix-darwin
jrolfs_ has quit [Ping timeout: 240 seconds]
thefloweringash has quit [Quit: WeeChat 2.0]
jrolfs_ has joined #nix-darwin
jrolfs_ has quit [Ping timeout: 260 seconds]
jrolfs_ has joined #nix-darwin
jrolfs_ has quit [Ping timeout: 240 seconds]
__Sander__ has quit [Quit: Konversation terminated!]
jrolfs_ has joined #nix-darwin
jrolfs_ has quit [Ping timeout: 255 seconds]
periklis has quit [Ping timeout: 246 seconds]
<LnL> johnw: ping
<johnw> LnL: pong!
<LnL> how did you do the evaluation tracing with hnix?
<LnL> or is that stuff not in the version from hackage-packages yet
<johnw> --trace
<LnL> ah guess it isn't then
<johnw> oh no, the hackage version is *ancient*
<johnw> build from GitHub, just with "nix-env -f . -i hnix"
<LnL> yeah, doing that now
<johnw> i'll make a new hackage release
<LnL> trying to debug my overrides again
<LnL> if I fix it something else breaks :/
<johnw> done
<johnw> heh, the number of imports and modules from 0.4 -> 0.5 is quite a change :)
<johnw> s/imports/dependencies
<LnL> src/Nix/Builtins.hs:130:50: data/nix/corepkgs/derivation.nix: openFile: does not exist
<johnw> git clone --recursive
<johnw> everyone forgets the submodules
<johnw> *everyone*
<johnw> that's the most annoying thing about delivering stuff through Git
<johnw> hmm
<LnL> pff submodules :p
<johnw> this is going to affect Hackage people too
<LnL> nix could fetch it, for people that don't know how to read a readme :)
<johnw> haha
<johnw> i wonder if i called it IGNOREME.md, if more people would read it
<LnL> I get hnix: <<loop>> when evaluating something that should be just a string
<johnw> can you show me your command line?
<LnL> hnix ./foo.nix --eval
<johnw> ok, the Hackage version now builds and passes tests
<johnw> can you send me foo.nix?
<LnL> gets stuck in a fixpoint
<LnL> let me check if I can make a simpler example
<LnL> useful for debugging my issue anyway
<johnw> try --reduce simpler.nix
<johnw> and then --eval simpler.nix
<johnw> hnix --reduce simpler.nix ./foo.nix --eval && hnix --eval ./simpler.nix
Sonarpulse has joined #nix-darwin
Sonarpulse has quit [Remote host closed the connection]
<LnL> not easy to reproduce, maybe this helps? https://github.com/LnL7/nixpkgs-python/blob/hnix-loop/foo.nix
<johnw> what is the content of default.nix in the current directory?
<johnw> that foo.nix has no information in it
<LnL> it's all there
<johnw> ahh
<johnw> cloning...
jrolfs has quit [Ping timeout: 256 seconds]
jrolfs has joined #nix-darwin
jrolfs has quit [Ping timeout: 240 seconds]
Sonarpulse has joined #nix-darwin
Sonarpulse has quit [Client Quit]
Sonarpulse has joined #nix-darwin
LnL has quit [Ping timeout: 248 seconds]
LnL has joined #nix-darwin
<johnw> LnL: ok, the loop reproduces here
<johnw> LnL: in these cases, -v3 --thunks is illuminating
<LnL> that's a lot more readable :)
<johnw> --reduce does produce a narrowed case that gets the same error
<johnw> not much going on there, so this shouldn't take long to track down
<johnw> oh, du
<johnw> h
<johnw> it's importing <nixpkgs>, n/m
<LnL> hmm, is the inherit strict or something?
<johnw> it might be
<johnw> when I change <nixpkgs> to an absolute path and use --reduce
<johnw> I go into an import loop
<LnL> oh
<LnL> pkgs.pythonng.packages.""
<LnL> that doesn't look right
<LnL> n/m that's probably because it's still a thunk
<johnw> ok, got it down to a 9.6k line test case :)
<johnw> and this fixed a bug in the static import logic, so yay
<johnw> so, this may indeed relate to the strictness of inherit's first argument
<johnw> checknig c++ code...
jrolfs_ has joined #nix-darwin
<johnw> nix-instantiate --eval --expr 'let s = rec { inherit (throw 'oops') x; y = 20; }; in 10' says 'oops'
<johnw> oh, derp
<LnL> I'm thing it's the pythonng attribute since interpreter depends self.pythonng.packages
<johnw> hmm
<johnw> let s = rec { inherit (throw "oops") x; y = 20; }; in 10 => 10
<johnw> oh, of course
<johnw> why am I being a dufus today
<LnL> derp, I also understand my override issue now
<johnw> so, if I narrow this down, I can get nix-instantiate to report infinite recursin otoo
<johnw> the real question is why I'm forcing more
hamishmack has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
jrolfs has joined #nix-darwin
jrolfs has quit [Ping timeout: 256 seconds]
<johnw> LnL: found it
<johnw> let fix = f: let x = f x; in x; f = self: { x.y.z = self.x.z.y; }; in fix f
<johnw> in Nix this says "can't lookup z"
<johnw> in hnix it gets <<loop>>
hamishmack has joined #nix-darwin
<johnw> even better:
<johnw> let fix = f: let x = f x; in x; f = self: { x.z.y = 100; x.y.z = self.x.z.y; }; in fix f
<johnw>
<johnw> should evaluate to: { x = { y = { z = 100; }; z = { y = 100; }; }; }
<johnw> not <<loop>>
<johnw> this I can make into an evaluation test
<LnL> nice
yastero_ is now known as yastero
Sonarpulse has quit [Ping timeout: 255 seconds]
Sonarpulse has joined #nix-darwin
<johnw> LnL: fixed
<johnw> LnL: I needed to desugar binds to ensure lazines between the levels of "x.y.z"
<johnw> I was already desugaring for rec, just not non-rec
<LnL> ah interesting
<johnw> fix pushed to pending branch
<johnw> (awaiting CI approval)
<johnw> LnL: now your foo.nix evaluates for me to [ "1.11.5" "2.18" ] (with --strict)
<johnw> LnL: nice bug :)
<LnL> mine or yours? :p
<johnw> LnL: the one you found in hnix
<johnw> subtle, but hard to find withuot such a nice and reduced case
<LnL> yeah
jrolfs has joined #nix-darwin
jrolfs has quit [Ping timeout: 255 seconds]