about summary refs log tree commit diff
path: root/src/libmain/shared.cc
AgeCommit message (Collapse)AuthorFilesLines
2013-11-12 Make function calls show up in stack traces againEelco Dolstra1-6/+3
Note that adding --show-trace prevents functions calls from being tail-recursive, so an expression that evaluates without --show-trace may fail with a stack overflow if --show-trace is given.
2013-10-02 Report OOM errors betterEelco Dolstra1-0/+3
2013-07-30 Detect stack overflowsEelco Dolstra1-0/+7
Previously, if the Nix evaluator gets a stack overflow due to a deep or infinite recursion in the Nix expression, the user gets an unhelpful message ("Segmentation fault") that doesn't indicate that the problem is in the user's code rather than Nix itself. Now it prints: error: stack overflow (possible infinite recursion) This only works on x86_64-linux and i686-linux. Fixes #35.
2013-03-08 Revert "Prevent config.h from being clobbered"Eelco Dolstra1-5/+2
This reverts commit 28bba8c44f484eae38e8a15dcec73cfa999156f6.
2013-03-07 Prevent config.h from being clobberedEelco Dolstra1-2/+5
2013-02-19 build-remote: Use the --quiet flagEelco Dolstra1-5/+2
‘--option verbosity 0’ doesn't actually do anything.
2012-12-11 On SQLITE_BUSY, wait a random amount of timeEelco Dolstra1-0/+6
If all contending processes wait a fixed amount of time (100 ms), there is a good probability that they'll just collide again.
2012-11-27 Add builtin constants ‘langVersion’ and ‘nixVersion’Eelco Dolstra1-1/+1
The integer constant ‘langVersion’ denotes the current language version. It gets increased every time a language feature is added/changed/removed. It's currently 1. The string constant ‘nixVersion’ contains the current Nix version, e.g. "1.2pre2980_9de6bc5".
2012-11-20 nix-store -r: Add ‘--ignore-unknown’ flagEelco Dolstra1-0/+7
This flag causes paths that do not have a known substitute to be quietly ignored. This is mostly useful for Charon, allowing it to speed up deployment by letting a machine use substitutes for all substitutable paths, instead of uploading them. The latter is frequently faster, e.g. if the target machine has a fast Internet connection while the source machine is on a slow ADSL line.
2012-10-03 Drop support for running nix-worker in "slave" modeEelco Dolstra1-57/+1
AFAIK nobody uses this, setuid binaries are evil, and there is no good reason why people can't just run the daemon.
2012-10-03 When ‘--help’ is given, just run ‘man’ to show the manual pageEelco Dolstra1-0/+9
I.e. do what git does. I'm too lazy to keep the builtin help text up to date :-) Also add ‘--help’ to various commands that lacked it (e.g. nix-collect-garbage).
2012-08-27 Merge branch 'master' into no-manifestsEelco Dolstra1-10/+0
2012-08-24 Include the output name in the GC root linkEelco Dolstra1-10/+0
Output names are now appended to resulting GC symlinks, e.g. by nix-build. For backwards compatibility, if the output is named "out", nothing is appended. E.g. doing "nix-build -A foo" on a derivation that produces outputs "out", "bin" and "dev" will produce symlinks "./result", "./result-bin" and "./result-dev", respectively.
2012-07-31 Add an option ‘build-fallback’ (equivalent to the --fallback flag)Eelco Dolstra1-1/+1
2012-07-30 Refactor settings processingEelco Dolstra1-19/+28
Put all Nix configuration flags in a Settings object.
2012-07-30 WhitespaceEelco Dolstra1-7/+7
2012-03-13 Ensure that Perl processes delete their entry in the temproots directoryEelco Dolstra1-10/+0
By moving the destructor object to libstore.so, it's also run when download-using-manifests and nix-prefetch-url exit. This prevents them from cluttering /nix/var/nix/temproots with stale files.
2012-03-05 nix-worker: put the pid of the caller in argv[1]Eelco Dolstra1-1/+3
This is useful for debugging.
2011-12-14 * Remove the terminate handler, which was only really needed becauseEelco Dolstra1-23/+0
of Berkeley DB (see r8632).
2011-11-29 * Get rid of some superfluous error messages if a substituter fails.Eelco Dolstra1-1/+1
* Say "fetch" instead of "substitute".
2011-11-22 * Move initialisation of variables like nixConfDir from libmain toEelco Dolstra1-24/+2
libstore so that the Perl bindings can use it as well. It's vital that the Perl bindings use the configuration file, because otherwise nix-copy-closure will fail with a ‘database locked’ message if the value of ‘use-sqlite-wal’ is changed from the default.
2011-09-06 * Added a command ‘nix-store --verify-paths PATHS’ to check whetherEelco Dolstra1-6/+6
the contents of any of the given store paths have been modified. E.g. $ nix-store --verify-path $(nix-store -qR /var/run/current-system) path `/nix/store/m2smyiwbxidlprfxfz4rjlvz2c3mg58y-etc' was modified! expected hash `fc87e271c5fdf179b47939b08ad13440493805584b35e3014109d04d8436e7b8', got `20f1a47281b3c0cbe299ce47ad5ca7340b20ab34246426915fce0ee9116483aa' All paths are checked; the exit code is 1 if any path has been modified, 0 otherwise.
2011-08-31 * Eliminate all uses of the global variable ‘store’ from libstore.Eelco Dolstra1-2/+2
This should also fix: nix-instantiate: ./../boost/shared_ptr.hpp:254: T* boost::shared_ptr<T>::operator->() const [with T = nix::StoreAPI]: Assertion `px != 0' failed. which was caused by hashDerivationModulo() calling the ‘store’ object (during store upgrades) before openStore() assigned it.
2011-06-30 Add support for the `build-timeout' and `--timeout' options.Ludovic Courtès1-0/+3
2011-02-09 * Don't call GC_expand_hp unless we're actually using the garbageEelco Dolstra1-12/+0
collector.
2010-12-13 * nix-instantiate: return exit status 100 to denote a permanent buildEelco Dolstra1-1/+1
failure. The build hook can use this to distinguish between transient and permanent failures on the remote side.
2010-11-17 * Before a build, show the disk space that the downloaded store pathsEelco Dolstra1-6/+7
will approximately require.
2010-11-16 * Sync with the trunk.Eelco Dolstra1-0/+32
2010-10-29 * Document Boehm GC support.Eelco Dolstra1-1/+1
2010-10-29 * Set libgc's initial heap size to 384 MiB to prevent garbageEelco Dolstra1-0/+12
collection in most cases (and therefore its performance overhead).
2010-10-28 * Handle out of memory condition.Eelco Dolstra1-0/+20
2010-08-30 * When using the build hook, distinguish between the stderr of theEelco Dolstra1-4/+6
hook script proper, and the stdout/stderr of the builder. Only the latter should be saved in /nix/var/log/nix/drvs. * Allow the verbosity to be set through an option. * Added a flag --quiet to lower the verbosity level.
2010-08-04 * Remove "auto" and "guess" as synonyms for 0 in the handling ofEelco Dolstra1-14/+3
build-cores and --cores. They're superfluous and just complicate the parsing.
2010-06-23 Added support for passing an (impure) NIX_BUILD_CORES variable to build ↵Peter Simons1-0/+14
expressions. This patch adds the configuration file variable "build-cores" and the command line argument "--cores". These settings specify the number of CPU cores to utilize for parallel building within a job, i.e. by passing an appropriate "-j" flag to GNU Make. The default value is 1, which means that parallel building is *disabled*. If the number of build cores is specified as 0 (synonymously: "guess" or "auto"), then the actual value is supposed to be auto-detected by builders at run-time, i.e by calling the nproc(1) utility from coreutils. The environment variable $NIX_BUILD_CORES is available to builders, but the contents of that variable does *not* influence the hash that goes into the $out store path, i.e. the number of build cores to be utilized can be changed at will without requiring any re-builds.
2010-04-19 * Drop the dependency on the ATerm library.Eelco Dolstra1-2/+0
2010-04-19 * Don't use the ATerm library for parsing/printing .drv files.Eelco Dolstra1-10/+0
2010-04-12 * Finished the ATerm-less parser.Eelco Dolstra1-2/+2
2010-04-12 * Don't use ATerms for the abstract syntax trees anymore. NotEelco Dolstra1-2/+2
finished yet.
2010-02-03 * Revert r19797, and use a simpler solution: just don't monitor buildEelco Dolstra1-13/+0
hooks for silence. It's unnecessary because the remote nix-store command is already monitoring the real build.
2010-02-03 * While waiting for a lock, print a sign of life every 5 minutes.Eelco Dolstra1-0/+13
This prevents remote builders from being killed by the `max-silent-time' inactivity monitor while they are waiting for a long garbage collection to finish. This happens fairly often in the Hydra build farm.
2010-01-12 * On startup, set the default SIGCHLD handler. This is so that NixEelco Dolstra1-5/+11
works correctly in weird environments where the SIGCHLD handler is set to "ignore".
2009-11-24 * Templatise getIntArg / string2Int.Eelco Dolstra1-15/+3
2009-06-30 * Don't show trace information by default (`--show-trace' to enable).Eelco Dolstra1-1/+8
NixOS evaluation errors in particular look intimidating and generally aren't very useful. Ideally the builtins.throw messages should be self-contained.
2009-02-27 * Allow options from the Nix config file to be overriden from theEelco Dolstra1-0/+7
command line (e.g. "--option build-use-chroot true").
2008-12-11 * Revert r13150: now that we use private namespaces for the chroot, weEelco Dolstra1-1/+0
don't have to put the chroot in /nix/var/nix/chroots anymore. They're back in /tmp now.
2008-11-12 * Some somewhat ad hoc mechanism to allow the build farm to monitorEelco Dolstra1-0/+2
build progress.
2008-10-29 * Put the chroots under /nix/var/nix/chroots to reduce the risk ofEelco Dolstra1-0/+1
disasters involving `rm -rf' on bind mounts. Will try the definitive fix (per-process mounts, apparently possible via the CLONE_NEWNS flag in clone()) some other time.
2008-08-04 * `nix-store --realise': print what paths will be built/downloaded,Eelco Dolstra1-0/+29
just like nix-env. * `nix-store --realise': --dry-run option.
2008-08-04 * querySubstitutablePathInfo: work properly when run via the daemon.Eelco Dolstra1-1/+1
* --dry-run: print the paths that we don't know how to build/substitute.
2008-07-18 * Use the copy-from-other-stores substituter by default. Of course,Eelco Dolstra1-3/+4
it only does something if $NIX_OTHER_STORES (not really a good name...) is set. * Do globbing on the elements of $NIX_OTHER_STORES. E.g. you could set it to /mnts/*/nix or something. * Install substituters in libexec/nix/substituters.