Merge remote-tracking branch 'eelco/master' into stdenv-updates

Conflicts:
	pkgs/development/compilers/gcc/4.7/default.nix

Trivial solution.
This commit is contained in:
Lluís Batlle i Rossell
2012-12-28 23:28:16 +01:00
135 changed files with 1945 additions and 727 deletions
+1
View File
@@ -37,6 +37,7 @@
sander = "Sander van der Burg <s.vanderburg@tudelft.nl>";
shlevy = "Shea Levy <shea@shealevy.com>";
simons = "Peter Simons <simons@cryp.to>";
smironov = "Sergey Mironov <ierton@gmail.com>";
thammers = "Tobias Hammerschmidt <jawr@gmx.de>";
urkud = "Yury G. Kudryashov <urkud+nix@ya.ru>";
viric = "Lluís Batlle i Rossell <viric@viric.name>";
+14
View File
@@ -176,6 +176,20 @@ rec {
fold = op: nul: v: if v == null then nul else elemType.fold op nul v;
};
functionTo = elemType: mkOptionType {
name = "function that evaluates to a(n) ${elemType.name}";
check = lib.traceValIfNot builtins.isFunction;
merge = fns:
args: elemType.merge (map (fn: fn args) fns);
# These are guesses, I don't fully understand iter, fold, delayOnGlobalEval
iter = f: path: v:
args: elemType.iter f path (v args);
fold = op: nul: v:
args: elemType.fold op nul (v args);
inherit (elemType) delayOnGlobalEval;
hasOptions = false;
};
# !!! this should be a type constructor that takes the options as
# an argument.
optionSet = mkOptionType {