summaryrefslogtreecommitdiffstats
path: root/lib/lists.nix
AgeCommit message (Collapse)Author
2014-11-12Add `unique` list functionRicardo M. Correia
It removes duplicate elements from a list.
2014-10-05lib: Use arithmetic operators rather than builtins.add etc.Eelco Dolstra
2014-09-16init list helperEdward Tjörnhammar
2014-04-14gnome3: use package names for environment.gnome3.excludePackagesLuca Bruno
2014-04-09Add environment.gnome3.excludePackagesLuca Bruno
Give the user a full desktop, and the possibility to exclude non-base packages from the default list of packages.
2013-12-12Simplify crossListsShea Levy
Signed-off-by: Shea Levy <shea@shealevy.com>
2013-12-12Add function to call a function with a cross-product of lists of argumentsShea Levy
Signed-off-by: Shea Levy <shea@shealevy.com>
2013-11-12Remove backward-compatible implementations of some primopsEelco Dolstra
Nixpkgs requires at least Nix 1.2 anyway, so these are now useless.
2013-11-12Add some primops to libEelco Dolstra
2013-10-28Keep position information for option declarations and definitionsEelco Dolstra
Also, when an option definition fails to type-check, print the file name of the module in which the offending definition occurs, e.g. error: user-thrown exception: The option value `boot.loader.grub.version' in `/etc/nixos/configuration.nix' is not a integer.
2013-10-28Big cleanup of the NixOS module systemEelco Dolstra
The major changes are: * The evaluation is now driven by the declared options. In particular, this fixes the long-standing problem with lack of laziness of disabled option definitions. Thus, a configuration like config = mkIf false { environment.systemPackages = throw "bla"; }; will now evaluate without throwing an error. This also improves performance since we're not evaluating unused option definitions. * The implementation of properties is greatly simplified. * There is a new type constructor "submodule" that replaces "optionSet". Unlike "optionSet", "submodule" gets its option declarations as an argument, making it more like "listOf" and other type constructors. A typical use is: foo = mkOption { type = type.attrsOf (type.submodule ( { config, ... }: { bar = mkOption { ... }; xyzzy = mkOption { ... }; })); }; Existing uses of "optionSet" are automatically mapped to "submodule". * Modules are now checked for unsupported attributes: you get an error if a module contains an attribute other than "config", "options" or "imports". * The new implementation is faster and uses much less memory.
2013-10-24Manual: When building from the channel, link to the exact Git revisionEelco Dolstra
2013-10-10Move pkgs/lib/ to lib/Eelco Dolstra