hi all,
maybe a bit of controversy, but I'd like to talk about some of the new
syntax things that have been included recently, that are, in my opinion,
not an improvement.
I'm talking about this:
args: with args;
To be honest, it does not make me that happy. I know why it was
introduced: to avoid replication of parameters. Let's take "hello" as an
example:
In all-packages.nix it says:
hello = import ../applications/misc/hello/ex-1 {
inherit fetchurl stdenv perl;
};
The (oldskool) Nix expression for it looks like this:
{stdenv, fetchurl, perl}:
stdenv.mkDerivation {
name = "hello-2.1.1";
builder = ./builder.sh;
src = fetchurl {
url = mirror://gnu/hello/hello-2.1.1.tar.gz;
md5 = "70c9ccf9fac07f762c24f2df2290784d";
};
inherit perl;
}
The parameters fetchurl, stdenv and perl appear three times: two times
in the top level file and twice in the other Nix expression. The "args:
with args" construction would just weed out one occurence but force me
to look at the top level file to see what the parameters were again. So,
in my opinion readability (and usability) is actually reduced.
Could someone please convince me why this is an improvement?
Bigger scope: right now there are quite a few different styles that are
used to make expressions. To be honest, I'm not too happy with that
either. It looks messy and it is confusing, since it needs quite a few
brain twists on my side to see what is going on.
armijn
--
---------------------------------------------------------------------------
[EMAIL PROTECTED] | http://www.uulug.nl/ | UULug: Utrecht Linux Users Group
---------------------------------------------------------------------------
_______________________________________________
nix-dev mailing list
[email protected]
https://mail.cs.uu.nl/mailman/listinfo/nix-dev