Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2014-11-25 | Add a primop for regular expression pattern matching | Eelco Dolstra | 1 | -1/+29 | |
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-25 | forceString(): Accept pos argument | Eelco Dolstra | 3 | -5/+5 | |
2014-11-20 | import derivation: cleanup | Shea Levy | 1 | -8/+11 | |
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-15 | realiseContext: Handle all context types | Shea Levy | 1 | -2/+2 | |
Avoids an assertion | |||||
2014-11-15 | Add functors (callable attribute sets). | Shea Levy | 2 | -1/+13 | |
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-10-31 | Fix more warnings | Eelco Dolstra | 1 | -11/+1 | |
2014-10-20 | Fix build on gcc < 4.7 | Shea Levy | 1 | -0/+3 | |
2014-10-20 | Improve printing of ASTs | Eelco Dolstra | 3 | -16/+58 | |
2014-10-17 | Export realiseContext in libnixexpr | Shea Levy | 2 | -9/+11 | |
Useful for importNative plugins | |||||
2014-10-09 | mkList: Scrub better | Eelco Dolstra | 2 | -2/+3 | |
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-09 | Typo | Eelco Dolstra | 1 | -1/+1 | |
2014-10-05 | Get rid of some unnecessary ExprConcatStrings nodes in dynamic attrs | Eelco Dolstra | 3 | -25/+18 | |
This gives a ~18% speedup in NixOS evaluation (after converting most calls to hasAttr/getAttr to dynamic attrs). | |||||
2014-10-05 | Show total allocations | Eelco Dolstra | 1 | -8/+10 | |
2014-10-04 | Add primop ‘catAttrs’ | Eelco Dolstra | 1 | -0/+30 | |
2014-10-04 | Add primop ‘attrValues’ | Eelco Dolstra | 1 | -1/+23 | |
2014-10-04 | Tweak | Eelco Dolstra | 1 | -1/+1 | |
2014-10-03 | Remove some duplicate code | Eelco Dolstra | 1 | -15/+8 | |
2014-10-03 | Add readDir primop | Shea Levy | 1 | -0/+37 | |
2014-10-03 | Don't recompile the same regex over and over | Eelco Dolstra | 2 | -3/+8 | |
2014-10-03 | nix-env: Add regular expression support in selectors | Eelco Dolstra | 1 | -1/+5 | |
So you can now do things like: $ nix-env -qa '.*zip.*' $ nix-env -qa '.*(firefox|chromium).*' | |||||
2014-10-01 | printValue(): Don't print <CYCLE> for repeated values | Eelco Dolstra | 1 | -7/+9 | |
2014-09-30 | Support control characters in JSON output | Eelco Dolstra | 2 | -0/+8 | |
2014-09-24 | Bindings: Remove copy constructor | Eelco Dolstra | 1 | -2/+3 | |
2014-09-23 | Add missing static | Eelco Dolstra | 1 | -2/+2 | |
2014-09-22 | Don't evaluate inside a "throw" | Eelco Dolstra | 1 | -3/+4 | |
Workaround for https://gcc.gnu.org/bugzilla/show_bug.cgi?id=41174. This caused hydra-eval-jobs to ignore SIGINT. | |||||
2014-09-22 | Add ‘deepSeq’ primop | Eelco Dolstra | 1 | -0/+11 | |
Note that unlike ‘lib.deepSeq’ in Nixpkgs, this handles cycles. | |||||
2014-09-22 | Make forceValueDeep work on values with cycles | Eelco Dolstra | 1 | -9/+20 | |
2014-09-22 | Rename strictForceValue -> forceValueDeep | Eelco Dolstra | 2 | -4/+4 | |
2014-09-22 | Handle cycles when printing a value | Eelco Dolstra | 1 | -5/+23 | |
So this no longer crashes with a stack overflow: nix-instantiate -E --eval 'let as = { x = as; }; in as' Instead it prints: { x = { x = <CYCLE>; }; } | |||||
2014-09-22 | Add ‘seq’ primop | Eelco Dolstra | 1 | -0/+12 | |
2014-09-22 | Add a function ‘valueSize’ | Eelco Dolstra | 4 | -2/+99 | |
It returns the size of value, including all other values and environments reachable from it. It is intended for debugging memory consumption issues. | |||||
2014-09-19 | attrNames: Don't allocate duplicates of the symbols | Eelco Dolstra | 1 | -6/+4 | |
2014-09-19 | Fix off-by-one | Eelco Dolstra | 1 | -1/+1 | |
2014-09-19 | Inline Bindings::find() | Eelco Dolstra | 2 | -10/+8 | |
2014-09-19 | Store Attrs inside Bindings | Eelco Dolstra | 6 | -50/+92 | |
This prevents a double allocation per attribute set. | |||||
2014-09-18 | Update spec file | Eelco Dolstra | 1 | -1/+1 | |
http://hydra.nixos.org/build/14344391 | |||||
2014-09-18 | Install some pkgconfig files | Eelco Dolstra | 2 | -0/+12 | |
2014-09-17 | Add some instrumentation for debugging GC leaks | Eelco Dolstra | 3 | -0/+57 | |
2014-09-04 | Fix dependency ordering | Eelco Dolstra | 1 | -4/+2 | |
2014-09-02 | Fix boost::too_many_args error | Eelco Dolstra | 1 | -1/+1 | |
Fixes #333. | |||||
2014-08-21 | Fix a segfault in ‘nix-env -qa’ | Eelco Dolstra | 1 | -1/+1 | |
This was triggered by 47e185847e729d49e6aa376e8299fd66ef834a0a, which turned globals.state into a pointer. | |||||
2014-08-20 | Use proper quotes everywhere | Eelco Dolstra | 10 | -78/+78 | |
2014-08-20 | Add some color | Eelco Dolstra | 1 | -1/+1 | |
2014-08-13 | Refactor option handling | Eelco Dolstra | 2 | -24/+30 | |
2014-08-13 | Fix warning about non-existant -I directories | Eelco Dolstra | 1 | -1/+1 | |
2014-07-30 | Rename nixPath to __nixPath | Eelco Dolstra | 2 | -3/+3 | |
The name ‘nixPath’ breaks existing code. | |||||
2014-07-23 | Remove some obsolete files | Eelco Dolstra | 1 | -141/+0 | |
2014-07-09 | Fix compilation error on some versions of GCC | Eelco Dolstra | 1 | -0/+1 | |
src/libexpr/primops.cc:42:8: error: looser throw specifier for 'virtual nix::InvalidPathError::~InvalidPathError()' src/libexpr/nixexpr.hh:12:1: error: overriding 'virtual nix::EvalError::~EvalError() noexcept (true)' http://hydra.nixos.org/build/12385750 | |||||
2014-07-04 | Add builtin function ‘fromJSON’ | Eelco Dolstra | 3 | -0/+167 | |
Fixes #294. | |||||
2014-06-24 | Only add the importNative primop if the ↵ | Shea Levy | 1 | -1/+2 | |
allow-arbitrary-code-during-evaluation option is true (default false) |