Commit Graph

83 Commits

Author SHA1 Message Date
Tom Saeger
5989515b94 lib: trivial spelling fixes 2017-04-19 19:37:55 -05:00
Profpatsch
cb9ff8bfa7 lib/lists: rename fold to foldr & improve fold docs
In order to better distinguish foldr from foldl the default name is changed to
foldr, but fold is still a synonym.

Additionally the docs are improved and examples added.
2017-03-19 22:06:49 +01:00
Eelco Dolstra
822e1ddd89 Use builtins.partition if available 2016-08-29 17:50:06 +02:00
Jan Malakhovski
363b0fd040 lib: introduce listDfs and toposort, add example to hasPrefix 2016-08-23 17:48:13 +00:00
Domen Kožar
ebffa9fd06 flatten: drastically improve performance, see #17626 2016-08-10 12:02:58 +02:00
Eelco Dolstra
532211c68d Really remove library functions
Throwing a message like "removed 2016-02-29 because unused and broken"
is unhelpful because it doesn't show what function was removed.
2016-07-11 16:34:46 +02:00
zimbatm
bec28d748c Remove unecessary branching on old nix versions
All these builtins are available since 1.10 or earlier (1.10 being the
lib/minver.nix)
2016-06-17 11:06:48 +01:00
Domen Kožar
1ab408e1da lib.lists: fix fold example 2016-05-26 11:52:35 +01:00
zimbatm
c71e2d4235 lib/lists: document all functions 2016-03-10 12:31:05 +00:00
zimbatm
a086858ef5 Remove lib.deepSeqList and lib.deepSeqAttrs
Both functions are broken and unused in the repo.
2016-03-09 19:59:57 +00:00
Eelco Dolstra
395fdaef6c Use builtins.sort 2015-07-28 18:42:22 +02:00
Eelco Dolstra
5976d393fb Use builtins.genList
This fixes the quadratic complexity of functions like imap.
2015-07-28 18:42:22 +02:00
Eelco Dolstra
7c30ce9562 Remove zipTwoLists
This function is redundant (we also have zipLists).
2015-07-28 15:04:18 +02:00
Eelco Dolstra
447afef153 Use builtin all and any functions 2015-07-24 15:58:34 +02:00
Eelco Dolstra
637e35deb9 Use foldl' instead of fold in some places 2015-07-23 18:31:54 +02:00
Jaka Hudoklin
f953d77be2 Revert "Reverts a bunch of commits as a try to fix GC errors."
This reverts commit 1e4ba025c2.

Conflicts:
	pkgs/development/web/nodejs/build-node-package.nix
2015-03-21 17:49:37 +01:00
Domen Kožar
1e4ba025c2 Reverts a bunch of commits as a try to fix GC errors.
Commits

- 694f01db2d
- 829479d1dd
- bd81885f70
- b2fdcf801c
2015-03-17 08:55:03 +01:00
Eelco Dolstra
694f01db2d intersect -> intersectLists, subtract -> subtractLists 2015-03-04 22:15:46 +01:00
Eelco Dolstra
829479d1dd substract -> subtract 2015-03-04 22:15:45 +01:00
Jaka Hudoklin
ea13e2aa87 lib/lists: add intersect and substract functions 2015-02-28 04:02:15 +01:00
Ricardo M. Correia
1fea5866ae Add unique list function
It removes duplicate elements from a list.
2014-11-12 22:31:49 +01:00
Eelco Dolstra
6c2bf141cf lib: Use arithmetic operators rather than builtins.add etc. 2014-10-05 01:10:06 +02:00
Edward Tjörnhammar
2bbd01485a init list helper 2014-09-16 18:12:39 +02:00
Luca Bruno
9d5a06cfe7 gnome3: use package names for environment.gnome3.excludePackages 2014-04-14 09:58:03 +02:00
Luca Bruno
a3115707dd Add environment.gnome3.excludePackages
Give the user a full desktop, and the possibility to exclude
non-base packages from the default list of packages.
2014-04-09 00:36:53 +02:00
Shea Levy
3c5971692a Simplify crossLists
Signed-off-by: Shea Levy <shea@shealevy.com>
2013-12-12 14:01:48 -05:00
Shea Levy
a42508a8ba Add function to call a function with a cross-product of lists of arguments
Signed-off-by: Shea Levy <shea@shealevy.com>
2013-12-12 13:10:41 -05:00
Eelco Dolstra
a8b693fef7 Remove backward-compatible implementations of some primops
Nixpkgs requires at least Nix 1.2 anyway, so these are now useless.
2013-11-12 13:50:45 +01:00
Eelco Dolstra
785eaf2cea Add some primops to lib 2013-11-12 13:48:30 +01:00
Eelco Dolstra
40913958a2 Keep position information for option declarations and definitions
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-28 22:45:55 +01:00
Eelco Dolstra
0e333688ce Big cleanup of the NixOS module system
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-28 22:45:55 +01:00
Eelco Dolstra
d49f141a79 Manual: When building from the channel, link to the exact Git revision 2013-10-24 02:03:10 +02:00
Eelco Dolstra
5fef92c4a0 Move pkgs/lib/ to lib/ 2013-10-10 13:28:21 +02:00