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 <[email protected]>: > 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 > [email protected] > https://mail.cs.uu.nl/mailman/listinfo/nix-dev > _______________________________________________ nix-dev mailing list [email protected] https://mail.cs.uu.nl/mailman/listinfo/nix-dev
