mbrgm has quit [(Ping timeout: 246 seconds)]
mbrgm has joined joined #nixos-dev
romildo has joined joined #nixos-dev
romildo has quit [(Quit: Leaving)]
JosW has joined joined #nixos-dev
jtojnar has quit [(Ping timeout: 240 seconds)]
zraexy has quit [(Ping timeout: 248 seconds)]
orivej has quit [(Ping timeout: 240 seconds)]
goibhniu has joined joined #nixos-dev
<pierron> peti: { a = {b = "foo";}; } //< {b = "bar";} == {a = {b = "foo"; }; b = "bar"; }
<pierron> peti: why would a.b be "bar"?
<pierron> peti: it fixes the pythonPackages / haskellPackages, by inserting a new "b" in the set which is below the "self" argument, which would be bound to the attribute, before going through Nixpkgs fix-point.
<pierron> peti: After the overlays provided by the user, I will add a new phase which looks for these functions, and bind them to the result of the binding: self: super: { pythonPackages = super.pythonPackages.setFun self.pythonPackages; }
<pierron> setFun is defined in { _type = "scope"; setFun = self: …; }
<pierron> and the >: operator will appear under the setFun function.
<pierron> zimbatm: Should I do anything special to the ~20 review request for the default.nix files?
<globin> did anyone flag the @nixborg account?
<globin> I was using that to test the nixbot and apparently someone has flagged it and it cannot comment anymore
<Mic92> globin: maybe an automatic mechanism?
<globin> Mic92: might be because I deleted some of his comments, I've written to GH support..
<pstn> If you need a sh to call in nixpkgs: Is it reccomended to use bash or dash? dash is smaller but bash is installed anyway. Is there a convention?
<zimbatm> pierron: it's possible that you might have to approve them to unblock the merges
<zimbatm> pierron: actually no you can just unsubscribe to all of them it should be fine
<pstn> Of course there is a more than ten year debate going on about bash vs dash. What was I expecting. Looking into dash might actually be beneficiarry though. The common tale is that it starts faster and all those little wrapper scripts everywhere basically just start up.
<pstn> Oh, it's way less than I thought. Probably not worth to touch anything.
<MoreTea> gchristensen globin, have you checked out https://bors.tech/ as well?
<MoreTea> I'm probably going to start implementing this at a client this week.
<peti> pierron: I thought //< is *recursive*. Is it not going to recurse into the value of the 'a' attribute on the left hand-side?
<globin> MoreTea: Yes, a lot of the nixbot is inspired by it
jtojnar has joined joined #nixos-dev
Profpatsch has quit [(Quit: WeeChat 0.4.3)]
Profpatsch has joined joined #nixos-dev
<zimbatm> bors is awesome
<globin> but sadly doesn't fit our architecture
<zimbatm> I deployed it on heroku in like 10 minutes and it just works(TM)
<zimbatm> yeah, too bad
<zimbatm> MoreTea: I recommend that you deploy it on Heroku though, it's not really tested elsewhere
<zimbatm> cost: 7 USD / month
<MoreTea> yeah, so the issue is that this client uses a self-hosted bitbucket :P
<MoreTea> And given that it's for the british government, it should probably run in the london region of AWS.
<zimbatm> in that case you will need a bit of knowledge in running Erlang and Elixir
<copumpkin> speakng AWS regions, the direct connect gizmo they released yesterday is pretty cool
<MoreTea> zimbatm: I'll learn then ;)
goibhniu has quit [(Remote host closed the connection)]
goibhniu has joined joined #nixos-dev
<pierron> zimbatm: I don't think we these reviews are blocking merging yet.
<pierron> peti: //< is recursive, but it does not distribute the result, it zip the lhs and the rhs.
<pierron> peti: the fix-point comes from the Nixpkgs fix-point, which bind the argument of the { _type = "scope"; setFun = self: …; } attribute set "setFun" function before going through the end of the fix-point.
<pierron> peti: thus making sure that the self argument see the overriden value.
jtojnar has quit [(Quit: jtojnar)]
infinisil has quit [(Quit: ZNC 1.6.5 - http://znc.in)]
tv has quit [(Ping timeout: 248 seconds)]
infinisil has joined joined #nixos-dev
tv has joined joined #nixos-dev
<peti> pierron: In that case, I the name "recursive update operator" feels a bit of a misnomer. I think of that functionality more in terms of a "nested update" or something.
orivej has joined joined #nixos-dev
<pierron> peti: the recursiveUpdate function works the same way, it recurses on both operands.
<peti> pierron: Hmm. I see. Then I think that function doesn't have a good name either. :-) It's subjective, I realize, but it goes against my intuition of what a recursive traversal of an attribute set would mean.
<peti> pierron: Anyhow, I've created an implementation of //< in Maude. Unfortunately, I assumed incorrect semantics. Fortunately, the correct semantics are actually simpler than what I assumed. :-)
<pierron> peti: what is Maude?
<peti> pierron: High-level prototyping language based on symbolic term rewriting: http://maude.cs.illinois.edu/w/index.php?title=The_Maude_System
<pierron> peti: do we have a Nix implementation in Maude?
<peti> pierron: I wrote a sufficiently large subset so that I can reason about attribute sets.
<pierron> peti: Cool!
<peti> pierron: Maude kicks ass. :-) They even implemented Maude in Maude (and called it full maude). :-)
<copumpkin> niksnut: is there a way to get `nix copy` to copy all outputs of any derivation it wants to upload to a binary cache?
zraexy has joined joined #nixos-dev
<copumpkin> nix's automatic paging all over the place can be pretty annoying sometimes :)
<LnL> unsetting PAGER should disable that
<peti> pierron: I uploaded my code to github. The relevant definition of //< is at https://gist.github.com/peti/7a2318dcbba9946862423aea0380859b#file-nix-maude-L52-L54.
<peti> pierron: Now I'll try to extend the RewritePattern type beyond normal attribute sets to support >:.
<pierron> peti: Great, I will get back to the RFC over the weekend.
<peti> pierron: I understand the purpose of ">@old:", but I don't understand ">:". The purpose of that operator is to stop the recursion, right? So x //> { a = >: { b = "foo" } } does *not* merge {b="foo"} into x, but rather replaces any "b" attribue in there outright, like // would.
<pierron> peti: this is to have a parallel with >@name:
<peti> pierron: But is there any occasion where use of >: would ever make sense outside of "b = >: {attrset}"?
<peti> pierron: In particular, what is the purpose of a rewrite pattern like "a: >: a + 1", like you've used in your examples?
<pierron> peti: { b = x: >: …; }
<pierron> peti: the purpose is to highlight that one can do a nested update, beyond the arguments.
<pierron> peti: this would also be useful once we add the strictly(-implicitly)-dynamically-scoped with construct that is suggested in SOS
<pierron> peti: buildPhase = with :; >@buildPhase: '' ${buildPhase}; echo 42 '';
<peti> pierron: I don't quite follow yet. How is x //< { a = b: b+1; } different from x //< { a = b: >: b+1; }?
<pierron> peti: it is not in this example.
<peti> pierron: In what case would it be?
<pierron> peti: but we still want to be able to do: { a = x: { a = x; }; } //< { a = y: { b = >: y; }; } === { a = z: { a = z; b = z; }; }
<pierron> peti: and again, it would be with the strictly(-implicitly)-dynamically-scoped with construct
<peti> pierron: Hmm.
<pierron> peti: strictly dynamically scope would be necessary, in order to have a bit of sanity, and avoid the repetitions of inputs as we have today.
<peti> pierron: It's going to be very difficult to explain these things in terms that casual users of Nix will understand, i.e. in a user's manual.
<pierron> peti: As it would be difficult to explain the module system internals to any casaul users of NixOS
<pierron> peti: my goal it to make the code idiomatic.
_rvl has quit [(Quit: ZNC 1.6.5 - http://znc.in)]
_rvl has joined joined #nixos-dev
<peti> pierron: If the ">:" operator is removed from that last example you posted, what would the outcome be then without it?
<peti> I.e. what is { a = x: { a = x; }; } //< { a = y: { b = y; }; } ?
<pierron> peti: the same: { a = z: { a = z; b = z; }; }
<pierron> peti: the question is the following, what happens if you have a string argument.
<pierron> peti: hum … I guess it does not matter, if //< is lazy.
<peti> pierron: I wonder about a (simple) example that gives different results depending on whether >: is used or not.
* pierron back in a few minutes.
<peti> pierron: I see that ">@old: ..." makes a difference, but ">:" doesn't seem to.
makefu has joined joined #nixos-dev
<pierron> peti: >: without argument alias stops the recursion, so for example setting it before an attribute set would be the only one.
<peti> pierron: OK, I see. That makes sense.
<copumpkin> niksnut: do you recall why you had the "404" string check in that code? I was just trying to replicate that
<peti> pierron: Implementing >: turned out to be surprisingly simple: https://gist.github.com/peti/7a2318dcbba9946862423aea0380859b#file-nix-maude-L68-L69
<peti> pierron: It's just one equation. :-)
<pierron> peti: I know ;)
goibhniu has quit [(Remote host closed the connection)]
goibhniu has joined joined #nixos-dev
<niksnut> copumpkin: yes, I think that was backward compatibility with some older aws-sdk-cpp version
<niksnut> might not be relevant anymore
<copumpkin> oh okay
<copumpkin> yeah, the FIXME wasn't very self-documenting :)
<copumpkin> but I can take it out in my PR if you'd like. For both 403 and 404
<LnL> niksnut: have you seen https://github.com/NixOS/nix/pull/1651? I would prefer to have it reviewed/merged before we start adding changes with the attribute in nixpkgs
<niksnut> looks good to me, though maybe it doesn't need to be an attribute?
<copumpkin> what would it be instead?
<niksnut> just allow getpwuid
<LnL> we could always allow it, but we don't have namespacing like linux so it does potentially leak the build user ids
<niksnut> isn't the uid already visible?
<copumpkin> yeah, would be nice to maximize purity wherever possible
<copumpkin> well, won't getpwuid reveal more info than just uid?
<niksnut> it will reveal nixbld*
<copumpkin> hmm fair enough
<copumpkin> I don't feel strongly either way then
<copumpkin> assuming we ever get multi-user back on macOS :D
<LnL> about that, could (allow signal (target same-sandbox)) maybe help?
<LnL> or does that part not happen inside of the sandbox
<copumpkin> I dunno, we could test sandboxng on 10.13
<copumpkin> I assumed it wouldn't help but it might!
<LnL> nope :(
<copumpkin> it doesn't help?
<LnL> yeah, just tried the syscall in a profile with only same-sandbox
<copumpkin> ah
<copumpkin> niksnut: if an S3 upload fails are you careful about not putting .narinfo files up without their corresponding .nars? or might I end up in a situation where I get one without the other
<rycee> Quick question. Anybody know why there is no `doConfigure` (or `dontConfigure`)? All the other phases seem to have something like it.
<LnL> there isnt?
<rycee> Searching Nixpkgs actually show some packages attempting to use `doConfigure` and `dontConfigure` but from what I can tell it doesn't actually do anything.
<rycee> LnL: As far as I see, no.
<LnL> yeah looks like it, thought it existed
<rycee> Maybe it was omitted to maintain the balance of 3 "dont" variables and 3 "do" variables?
<rycee> :-)
<copumpkin> niksnut: seeing a lot of weirdness with nix copy
stites[m] has joined joined #nixos-dev
<niksnut> copumpkin: yes, the .narinfo is uploaded after the .nar
<copumpkin> yeah I see that now, will have to debug further :) I think I might just be getting bitten by the lack of the UNKNOWN_ERROR handling
<copumpkin> with enough nar uploads, you eventually hit it with high probability, it seems
goibhniu has quit [(Ping timeout: 248 seconds)]
<gchristensen> can anyone help with this openssl upgrade patch issue? https://github.com/NixOS/nixpkgs/issues/31144 my C knowledge makes it hard for me to fix our patch
<dtzWill> grahamc: bot does eval checks now too?!
<dtzWill> (comment on issue says you have help?)
<dtzWill> o/
<gchristensen> :)
<gchristensen> dtzWill: it only checksnixpkgs not nixos, any tips on checking if nixos evaluates?
<Dezgeg> maybe replicate what travis-ci does now?
<gchristensen> hmm maybe
<gchristensen> I explicitly don't build anything automatically, a lot of what travis does involves building
<gchristensen> anyway, I'm going to sign off for a while
<dtzWill> o/
JosW has quit [(Quit: Konversation terminated!)]
orivej has quit [(Ping timeout: 248 seconds)]
lassulus has quit [(Changing host)]
lassulus has joined joined #nixos-dev
orivej has joined joined #nixos-dev
<copumpkin> how's this for a puzzling message from -vvvv?
<copumpkin> copied source ‘/nix/store/lfcki0xb6bd0c3cx223qnflwdcryk1ik-nixpkgs-90e78aafadba43f9ec1190d9411720d561f1e09b-src’ -> ‘/nix/store/1mdv77cv4mfg19f9cyzrw8jccb0bydbg-lfcki0xb6bd0c3cx223qnflwdcryk1ik-nixpkgs-90e78aafadba43f9ec1190d9411720d561f1e09b-src’
<copumpkin> the question is why it's ingesting a store path into a store path
jtojnar has joined joined #nixos-dev
<clever> copumpkin: filterSource is my first guess
<copumpkin> nope!
<copumpkin> I'll file an issue in a bit :)
<clever> copumpkin: in what context did it happen?
<copumpkin> IFD + path references + import from those path references
<copumpkin> I always assumed the logic was `if storepath(path) then path else copytostore(path)`
<copumpkin> and I think it sort of is
<copumpkin> but the IFD is screwing with its notion of whether the path is valid
tanonym has joined joined #nixos-dev