summary refs log tree commit diff
path: root/lib/default.nix
Commit message (Collapse)AuthorAge
* lib.addPassthru: removed as scheduledVladimír Čunát2018-03-03
|
* lib: implement `compare`, `splitByAndCompare`, and `compareLists`Jan Malakhovski2018-02-09
|
* Add setFunctionArgs lib function.Shea Levy2018-01-31
| | | | | | Among other things, this will allow *2nix tools to output plain data while still being composable with the traditional callPackage/.override interfaces.
* Merge #33057: stdenv meta checks: make them lazyVladimír Čunát2018-01-14
|\ | | | | | | | | Closes #22277 - it's superseded; I have some WIP on evaluation performance, but best do that in a separate PR/thread.
| * lib: generalize `addPassthru` to `extendDerivation`Jan Malakhovski2018-01-03
| |
* | callCabal2nix: Fix calling with a path in the store.Shea Levy2018-01-11
| |
* | Added `lib.cleanSourceWith` as composable version of `filterSource`Will Fancher2018-01-09
|/
* Revert "nixos: doc: implement related packages in the manual"Graham Christensen2017-12-23
|
* lib: implement `compare`, `splitByAndCompare`, and `compareLists`Jan Malakhovski2017-12-07
|
* lib: delete reference to lib/sandbox.nixOrivej Desh2017-11-19
| | | | after it was deleted in 0fe7bde3d88027977a07a24baee98d2ecc07222f
* Revert "Fix evaluation"Shea Levy2017-09-29
| | | | | | Reverting #27319 This reverts commit 751d397ad486a84b93907345124f550e3b32427c.
* Revert "Fix tarball"Shea Levy2017-09-29
| | | | | | Reverting #27319 This reverts commit 9ce7175cfe9edf5f7eb9a9f299807047a4feeaf1.
* Revert "Avoid polluting lib namespace unncessarily"Shea Levy2017-09-29
| | | | | | Reverting #27319 This reverts commit 01a3f0b8aabdb321b15dc7cc0e2287ce8232f797.
* Avoid polluting lib namespace unncessarilyShea Levy2017-09-28
|
* Fix tarballShea Levy2017-09-28
|
* Fix evaluationShea Levy2017-09-28
|
* Convert libs to a fixed-pointGraham Christensen2017-09-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This does break the API of being able to import any lib file and get its libs, however I'm not sure people did this. I made this while exploring being able to swap out docFn with a stub in #2305, to avoid functor performance problems. I don't know if that is going to move forward (or if it is a problem or not,) but after doing all this work figured I'd put it up anyway :) Two notable advantages to this approach: 1. when a lib inherits another lib's functions, it doesn't automatically get put in to the scope of lib 2. when a lib implements a new obscure functions, it doesn't automatically get put in to the scope of lib Using the test script (later in this commit) I got the following diff on the API: + diff master fixed-lib 11764a11765,11766 > .types.defaultFunctor > .types.defaultTypeMerge 11774a11777,11778 > .types.isOptionType > .types.isType 11781a11786 > .types.mkOptionType 11788a11794 > .types.setType 11795a11802 > .types.types This means that this commit _adds_ to the API, however I can't find a way to fix these last remaining discrepancies. At least none are _removed_. Test script (run with nix-repl in the PATH): #!/bin/sh set -eux repl() { suff=${1:-} echo "(import ./lib)$suff" \ | nix-repl 2>&1 } attrs_to_check() { repl "${1:-}" \ | tr ';' $'\n' \ | grep "\.\.\." \ | cut -d' ' -f2 \ | sed -e "s/^/${1:-}./" \ | sort } summ() { repl "${1:-}" \ | tr ' ' $'\n' \ | sort \ | uniq } deep_summ() { suff="${1:-}" depth="${2:-4}" depth=$((depth - 1)) summ "$suff" for attr in $(attrs_to_check "$suff" | grep -v "types.types"); do if [ $depth -eq 0 ]; then summ "$attr" | sed -e "s/^/$attr./" else deep_summ "$attr" "$depth" | sed -e "s/^/$attr./" fi done } ( cd nixpkgs #git add . #git commit -m "Auto-commit, sorry" || true git checkout fixed-lib deep_summ > ../fixed-lib git checkout master deep_summ > ../master ) if diff master fixed-lib; then echo "SHALLOW MATCH!" fi ( cd nixpkgs git checkout fixed-lib repl .types )
* lib: Move fixed-point combinators out of trivialJohn Ericson2017-05-29
| | | | | Trivia != prelude. This is a better organized and less likely to scare off new contributors.
* Merge pull request #24610 from Ericson2314/platform-normalizationJohn Ericson2017-04-17
|\ | | | | Platform normalization
| * lib: Collect system/platform related filesJohn Ericson2017-04-17
| | | | | | | | Previously, platforms was a random thing in top-level
* | /lib/default.nix: Add file docstring & unit test hintProfpatsch2017-04-12
|/
* Add locateDominatingFile lib functionShea Levy2017-03-04
|
* lib: add ini configuration generatorProfpatsch2016-11-17
| | | | | | | Many configurations are INI-style files. Attribute sets can be mapped rather painlessly to the INI format. This adds a function toINI inside a new generators library section. Also, unit tests for the default values are provided.
* lib/fetchers.nix: factor out impure proxy vars (#18702)Profpatsch2016-09-17
| | | | Apparently everyone just copied those variables, instead of creating a library constant for them. Some even removed the comment. -.-
* lib/default.nix: reorder imports for clarityProfpatsch2016-09-15
| | | | | Group imports according to the kind of functions they contain, in a more descriptive manner.
* cherry-pick lib.sandbox into masterJude Taylor2015-11-19
|
* Rename misc.nix -> deprecated.nixEelco Dolstra2015-07-23
|
* Add some primops to libEelco Dolstra2013-11-12
|
* Big cleanup of the NixOS module systemEelco Dolstra2013-10-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Manual: When building from the channel, link to the exact Git revisionEelco Dolstra2013-10-24
|
* Move pkgs/lib/ to lib/Eelco Dolstra2013-10-10