aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2014-11-25Add a primop for regular expression pattern matchingEelco Dolstra
The function ‘builtins.match’ takes a POSIX extended regular expression and an arbitrary string. It returns ‘null’ if the string does not match the regular expression. Otherwise, it returns a list containing substring matches corresponding to parenthesis groups in the regex. The regex must match the entire string (i.e. there is an implied "^<pat>$" around the regex). For example: match "foo" "foobar" => null match "foo" "foo" => [] match "f(o+)(.*)" "foooobar" => ["oooo" "bar"] match "(.*/)?([^/]*)" "/dir/file.nix" => ["/dir/" "file.nix"] match "(.*/)?([^/]*)" "file.nix" => [null "file.nix"] The following example finds all regular files with extension .nix or .patch underneath the current directory: let findFiles = pat: dir: concatLists (mapAttrsToList (name: type: if type == "directory" then findFiles pat (dir + "/" + name) else if type == "regular" && match pat name != null then [(dir + "/" + name)] else []) (readDir dir)); in findFiles ".*\\.(nix|patch)" (toString ./.)
2014-11-25forceString(): Accept pos argumentEelco Dolstra
2014-11-24Build derivations in a more predictable orderEelco Dolstra
Derivations are now built in order of derivation name, so a package named "aardvark" is built before "baboon". Fixes #399.
2014-11-24Don't create unnecessary substitution goals for derivationsEelco Dolstra
2014-11-20import derivation: cleanupShea Levy
Before this there was a bug where a `find` was being called on a not-yet-sorted set. The code was just a mess before anyway, so I cleaned it up while fixing it.
2014-11-19Disable vacuuming the DB after garbage collectionEelco Dolstra
Especially in WAL mode on a highly loaded machine, this is not a good idea because it results in a WAL file of approximately the same size ad the database, which apparently cannot be deleted while anybody is accessing it.
2014-11-19nix-daemon: Call exit(), not _exit()Eelco Dolstra
This was preventing destructors from running. In particular, it was preventing the deletion of the temproot file for each worker process. It may also have been responsible for the excessive WAL growth on Hydra (due to the SQLite database not being closed properly). Apparently broken by accident in 8e9140cfdef9dbd1eb61e4c75c91d452ab5e4a74.
2014-11-19Clean up temp roots in a more C++ wayEelco Dolstra
2014-11-17Fix messageEelco Dolstra
2014-11-15realiseContext: Handle all context typesShea Levy
Avoids an assertion
2014-11-15Add functors (callable attribute sets).Shea Levy
With this, attribute sets with a `__functor` attribute can be applied just like normal functions. This can be used to attach arbitrary metadata to a function without callers needing to treat it specially.
2014-11-14Don't use ADDR_LIMIT_3GBEelco Dolstra
This gives 32-bit builds on x86_64-linux more memory.
2014-11-12Make ~DerivationGoal more reliableEelco Dolstra
2014-11-04nix-store --gc: Don't warn about missing manifests directoryEelco Dolstra
2014-10-31nix-daemon: Get peer credentials on Mac OS XEelco Dolstra
This makes allowed-users and trusted-users work on Mac OS X.
2014-10-31Improve error message if the daemon worker fails to startEelco Dolstra
2014-10-31Fix more warningsEelco Dolstra
2014-10-31Shut up a clang warningEelco Dolstra
2014-10-29Remove comments claiming we use a private PID namespaceEelco Dolstra
This is no longer the case since 524f89f1399724e596f61faba2c6861b1bb7b9c5.
2014-10-20Fix build on gcc < 4.7Shea Levy
2014-10-20Revert "Drop support for pre-c++11 compilers."Shea Levy
The breakage this fixed can be worked around without removing support. This reverts commit 84a13dc576496f1227665259c61f86184f452f51.
2014-10-20Improve printing of ASTsEelco Dolstra
2014-10-18Drop support for pre-c++11 compilers.Shea Levy
In particular, gcc 4.6's std::exception::~exception has an exception specification in c++0x mode, which requires us to use that deprecated feature in nix (and led to breakage after some recent changes that were valid c++11). nix already uses several c++11 features and gcc 4.7 has been around for over 2 years.
2014-10-17Export realiseContext in libnixexprShea Levy
Useful for importNative plugins
2014-10-14nix-store -q: Check for conflicting flagsEelco Dolstra
Fixes #364.
2014-10-14Remove redundant space in usage errorsEelco Dolstra
2014-10-14Improved error message when encountering unsupported file typesEelco Dolstra
Fixes #269.
2014-10-09mkList: Scrub betterEelco Dolstra
Clearing v.app.right was not enough, because the length field of a list only takes 32 bits, so the most significant 32 bits of v.app.left (a.k.a. v.thunk.env) would remain. This could cause Boehm GC to interpret it as a valid pointer. This change reduces maximum RSS for evaluating the ‘tested’ job in nixos/release-small.nix from 1.33 GiB to 0.80 GiB, and runtime by about 8%.
2014-10-09TypoEelco Dolstra
2014-10-05Get rid of some unnecessary ExprConcatStrings nodes in dynamic attrsEelco Dolstra
This gives a ~18% speedup in NixOS evaluation (after converting most calls to hasAttr/getAttr to dynamic attrs).
2014-10-05Show total allocationsEelco Dolstra
2014-10-04Add primop ‘catAttrs’Eelco Dolstra
2014-10-04Add primop ‘attrValues’Eelco Dolstra
2014-10-04TweakEelco Dolstra
2014-10-03Remove some duplicate codeEelco Dolstra
2014-10-03Add readDir primopShea Levy
2014-10-03Don't recompile the same regex over and overEelco Dolstra
2014-10-03nix-env: Add regular expression support in selectorsEelco Dolstra
So you can now do things like: $ nix-env -qa '.*zip.*' $ nix-env -qa '.*(firefox|chromium).*'
2014-10-03createDirs(): Handle ‘path’ being a symlinkEelco Dolstra
In particular, this fixes "nix-build -o /tmp/result" on Mac OS X (where /tmp is a symlink).
2014-10-01printValue(): Don't print <CYCLE> for repeated valuesEelco Dolstra
2014-09-30Support control characters in JSON outputEelco Dolstra
2014-09-26printMissing(): Print derivations in approximate build orderEelco Dolstra
2014-09-25nix-daemon: Close unnecessary fdEelco Dolstra
2014-09-24Bindings: Remove copy constructorEelco Dolstra
2014-09-23Add --force-name support for --set in nix-env, to support ↵Shell Turner
nix-install-package --set
2014-09-23Add missing staticEelco Dolstra
2014-09-22Don't evaluate inside a "throw"Eelco Dolstra
Workaround for https://gcc.gnu.org/bugzilla/show_bug.cgi?id=41174. This caused hydra-eval-jobs to ignore SIGINT.
2014-09-22Add ‘deepSeq’ primopEelco Dolstra
Note that unlike ‘lib.deepSeq’ in Nixpkgs, this handles cycles.
2014-09-22Make forceValueDeep work on values with cyclesEelco Dolstra
2014-09-22Rename strictForceValue -> forceValueDeepEelco Dolstra