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>
how did you do the evaluation tracing with hnix?
<
LnL>
or is that stuff not in the version from hackage-packages yet
<
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>
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>
that's the most annoying thing about delivering stuff through Git
<
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>
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]
<
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
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>
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>
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'
<
LnL>
I'm thing it's the pythonng attribute since interpreter depends self.pythonng.packages
<
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>
should evaluate to: { x = { y = { z = 100; }; z = { y = 100; }; }; }
<
johnw>
not <<loop>>
<
johnw>
this I can make into an evaluation test
yastero_ is now known as yastero
Sonarpulse has quit [Ping timeout: 255 seconds]
Sonarpulse has joined #nix-darwin
<
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
jrolfs has joined #nix-darwin
jrolfs has quit [Ping timeout: 255 seconds]