about summary refs log tree commit diff
path: root/src
AgeCommit message (Collapse)AuthorFilesLines
2014-10-18 Drop support for pre-c++11 compilers.Shea Levy1-2/+1
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-17 Export realiseContext in libnixexprShea Levy2-9/+11
Useful for importNative plugins
2014-10-14 nix-store -q: Check for conflicting flagsEelco Dolstra1-4/+12
Fixes #364.
2014-10-14 Remove redundant space in usage errorsEelco Dolstra1-1/+1
2014-10-14 Improved error message when encountering unsupported file typesEelco Dolstra1-3/+3
Fixes #269.
2014-10-09 mkList: Scrub betterEelco Dolstra2-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 TypoEelco Dolstra1-1/+1
2014-10-05 Get rid of some unnecessary ExprConcatStrings nodes in dynamic attrsEelco Dolstra3-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 allocationsEelco Dolstra1-8/+10
2014-10-04 Add primop ‘catAttrs’Eelco Dolstra1-0/+30
2014-10-04 Add primop ‘attrValues’Eelco Dolstra1-1/+23
2014-10-04 TweakEelco Dolstra1-1/+1
2014-10-03 Remove some duplicate codeEelco Dolstra4-21/+22
2014-10-03 Add readDir primopShea Levy1-0/+37
2014-10-03 Don't recompile the same regex over and overEelco Dolstra2-3/+8
2014-10-03 nix-env: Add regular expression support in selectorsEelco Dolstra3-1/+60
So you can now do things like: $ nix-env -qa '.*zip.*' $ nix-env -qa '.*(firefox|chromium).*'
2014-10-03 createDirs(): Handle ‘path’ being a symlinkEelco Dolstra1-0/+3
In particular, this fixes "nix-build -o /tmp/result" on Mac OS X (where /tmp is a symlink).
2014-10-01 printValue(): Don't print <CYCLE> for repeated valuesEelco Dolstra1-7/+9
2014-09-30 Support control characters in JSON outputEelco Dolstra2-0/+8
2014-09-26 printMissing(): Print derivations in approximate build orderEelco Dolstra1-6/+9
2014-09-25 nix-daemon: Close unnecessary fdEelco Dolstra1-0/+2
2014-09-24 Bindings: Remove copy constructorEelco Dolstra1-2/+3
2014-09-23 Add --force-name support for --set in nix-env, to support ↵Shell Turner1-0/+3
nix-install-package --set
2014-09-23 Add missing staticEelco Dolstra1-2/+2
2014-09-22 Don't evaluate inside a "throw"Eelco Dolstra1-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’ primopEelco Dolstra1-0/+11
Note that unlike ‘lib.deepSeq’ in Nixpkgs, this handles cycles.
2014-09-22 Make forceValueDeep work on values with cyclesEelco Dolstra1-9/+20
2014-09-22 Rename strictForceValue -> forceValueDeepEelco Dolstra3-5/+5
2014-09-22 Handle cycles when printing a valueEelco Dolstra1-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’ primopEelco Dolstra1-0/+12
2014-09-22 Add a function ‘valueSize’Eelco Dolstra4-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 symbolsEelco Dolstra1-6/+4
2014-09-19 Fix off-by-oneEelco Dolstra1-1/+1
2014-09-19 Inline Bindings::find()Eelco Dolstra2-10/+8
2014-09-19 Store Attrs inside BindingsEelco Dolstra9-60/+101
This prevents a double allocation per attribute set.
2014-09-19 Remove bogus commentEelco Dolstra1-1/+0
2014-09-18 Update spec fileEelco Dolstra3-3/+3
http://hydra.nixos.org/build/14344391
2014-09-18 Install some pkgconfig filesEelco Dolstra6-0/+34
2014-09-17 On Linux, disable address space randomizationEelco Dolstra1-5/+9
2014-09-17 Add some instrumentation for debugging GC leaksEelco Dolstra4-0/+59
2014-09-17 Settings: Add bool get()Eelco Dolstra4-3/+13
2014-09-04 Fix dependency orderingEelco Dolstra1-4/+2
2014-09-02 Fix boost::too_many_args errorEelco Dolstra1-1/+1
Fixes #333.
2014-09-01 Add an 'optimiseStore' remote procedure call.Ludovic Courtès8-20/+42
2014-08-28 Add disallowedReferences / disallowedRequisitesEelco Dolstra1-26/+29
For the "stdenv accidentally referring to bootstrap-tools", it seems easier to specify the path that we don't want to depend on, e.g. disallowedRequisites = [ bootstrapTools ];
2014-08-28 Introduce allowedRequisites featureGergely Risko1-1/+18
2014-08-21 fix disappearing bash argumentsJoel Taylor1-2/+7
2014-08-21 Use PR_SET_PDEATHSIG to ensure child cleanupEelco Dolstra3-3/+13
2014-08-21 Use unshare() instead of clone()Eelco Dolstra1-55/+35
It turns out that using clone() to start a child process is unsafe in a multithreaded program. It can cause the initialisation of a build child process to hang in setgroups(), as seen several times in the build farm: The reason is that Glibc thinks that the other threads of the parent exist in the child, so in setxid_mark_thread() it tries to get a futex that has been acquired by another thread just before the clone(). With fork(), Glibc runs pthread_atfork() handlers that take care of this (in particular, __reclaim_stacks()). But clone() doesn't do that. Fortunately, we can use fork()+unshare() instead of clone() to set up private namespaces. See also https://www.mail-archive.com/lxc-devel@lists.linuxcontainers.org/msg03434.html.
2014-08-21 Fix a segfault in ‘nix-env -qa’Eelco Dolstra1-1/+1
This was triggered by 47e185847e729d49e6aa376e8299fd66ef834a0a, which turned globals.state into a pointer.