[Nix-dev] selectVersion

Lluís Batlle viriketo at gmail.com
Thu Jan 29 15:29:33 CET 2009


In my humble opinion... I also prefer most static checking, so I like
most the Eelco way of having multiple versions. That's how it's done
with some important packages as  kernel packages, gcc, ... and of
course many others.

2009/1/29 Eelco Dolstra <e.dolstra at tudelft.nl>:
> Hi,
>
> Marc Weber wrote:
>
>> On Thu, Jan 29, 2009 at 02:24:03PM +0100, Eelco Dolstra wrote:
>>> Hi,
>>>
>>> Can somebody explain what the use of selectVersion in all-packages.nix is?  It's
>>> full of calls like
>>>
>>>   selectVersion ../tools/system/ddrescue "1.8"
>>>
>>> which seems rather pointless to me, given that you can just as easily say
>>> "import ../tools/system/ddrescue/1.8.nix".  I propose a global search/replace to
>>> get rid of them...
>>
>> He Eelco!
>>
>> You've missed a small detail
>> I'm laughing now because I remember your statement on irc about all
>> those different ways which exist to write derivations :-)
>
> Well yes, I'd like to regularize all-packages.nix a bit :-)
>
>> you can use it this way to override the version selection:
>>
>>   fooFun args = selectVersion ../tools/system/ddrescue "1.8" args ;
>>
>>   # selects "1.8"
>>   foo = foo { inherit:  stdenv ... };
>>
>>   # 1.8 is overridden by "newer":
>>   fooNewer = foo { version = "newer"; inherit  stdenv ...};
>
> See, I don't understand what the advantage of this is over the old way, e.g.
>
>  bison = bison23;
>
>  bison1875 = import ../development/tools/parsing/bison/bison-1.875.nix {
>    inherit fetchurl stdenv m4;
>  };
>
>  bison23 = import ../development/tools/parsing/bison/bison-2.3.nix {
>    inherit fetchurl stdenv m4;
>  };
>
>  bison24 = import ../development/tools/parsing/bison/bison-2.4.nix {
>    inherit fetchurl stdenv m4;
>  };
>
> Here you get some static checking: if you remove the bison1875 variable, you get
> an error message if there are other places in all-packages.nix referring to it.
>
> Also, there is a kind of asymmetry in fooFun/foo/fooNewer: fooFun is "biased"
> towards building version 1.8.  This isn't the case with the bison example: for
> example, the "bison" variable won't magically build Bison 2.4 if you pass it
> just the right arguments.
>
> --
> Eelco Dolstra | http://www.st.ewi.tudelft.nl/~dolstra/
> _______________________________________________
> nix-dev mailing list
> nix-dev at cs.uu.nl
> https://mail.cs.uu.nl/mailman/listinfo/nix-dev
>



More information about the nix-dev mailing list