aboutsummaryrefslogtreecommitdiff
path: root/doc/manual
AgeCommit message (Collapse)Author
2019-08-14Track function start and ends for flame graphsGraham Christensen
With this patch, and this file I called `log.py`: #!/usr/bin/env nix-shell #!nix-shell -i python3 -p python3 --pure import sys from pprint import pprint stack = [] timestack = [] for line in open(sys.argv[1]): components = line.strip().split(" ", 2) if components[0] != "function-trace": continue direction = components[1] components = components[2].rsplit(" ", 2) loc = components[0] _at = components[1] time = int(components[2]) if direction == "entered": stack.append(loc) timestack.append(time) elif direction == "exited": dur = time - timestack.pop() vst = ";".join(stack) print(f"{vst} {dur}") stack.pop() and: nix-instantiate --trace-function-calls -vvvv ../nixpkgs/pkgs/top-level/release.nix -A unstable > log.matthewbauer 2>&1 ./log.py ./log.matthewbauer > log.matthewbauer.folded flamegraph.pl --title matthewbauer-post-pr log.matthewbauer.folded > log.matthewbauer.folded.svg I can make flame graphs like: http://gsc.io/log.matthewbauer.folded.svg --- Includes test cases around function call failures and tryEval. Uses RAII so the finish is always called at the end of the function.
2019-08-07fixup: docs for post-build-hookGraham Christensen
2019-08-07Merge pull request #2995 from tweag/post-build-hookEelco Dolstra
Add a post build hook
2019-08-06post-build-hook: docs fixupGraham Christensen
2019-08-02Add a post-build-hookregnat
Passing `--post-build-hook /foo/bar` to a nix-* command will cause `/foo/bar` to be executed after each build with the following environment variables set: DRV_PATH=/nix/store/drv-that-has-been-built.drv OUT_PATHS=/nix/store/...build /nix/store/...build-bin /nix/store/...build-dev This can be useful in particular to upload all the builded artifacts to the cache (including the ones that don't appear in the runtime closure of the final derivation or are built because of IFD). This new feature prints the stderr/stdout output to the `nix-build` and `nix build` client, and the output is printed in a Nix 2 compatible format: [nix]$ ./inst/bin/nix-build ./test.nix these derivations will be built: /nix/store/ishzj9ni17xq4hgrjvlyjkfvm00b0ch9-my-example-derivation.drv building '/nix/store/ishzj9ni17xq4hgrjvlyjkfvm00b0ch9-my-example-derivation.drv'... hello! bye! running post-build-hook '/home/grahamc/projects/github.com/NixOS/nix/post-hook.sh'... post-build-hook: + sleep 1 post-build-hook: + echo 'Signing paths' /nix/store/qr213vjmibrqwnyp5fw678y7whbkqyny-my-example-derivation post-build-hook: Signing paths /nix/store/qr213vjmibrqwnyp5fw678y7whbkqyny-my-example-derivation post-build-hook: + sleep 1 post-build-hook: + echo 'Uploading paths' /nix/store/qr213vjmibrqwnyp5fw678y7whbkqyny-my-example-derivation post-build-hook: Uploading paths /nix/store/qr213vjmibrqwnyp5fw678y7whbkqyny-my-example-derivation post-build-hook: + sleep 1 post-build-hook: + printf 'very important stuff' /nix/store/qr213vjmibrqwnyp5fw678y7whbkqyny-my-example-derivation [nix-shell:~/projects/github.com/NixOS/nix]$ ./inst/bin/nix build -L -f ./test.nix my-example-derivation> hello! my-example-derivation> bye! my-example-derivation (post)> + sleep 1 my-example-derivation (post)> + echo 'Signing paths' /nix/store/c263gzj2kb2609mz8wrbmh53l14wzmfs-my-example-derivation my-example-derivation (post)> Signing paths /nix/store/c263gzj2kb2609mz8wrbmh53l14wzmfs-my-example-derivation my-example-derivation (post)> + sleep 1 my-example-derivation (post)> + echo 'Uploading paths' /nix/store/c263gzj2kb2609mz8wrbmh53l14wzmfs-my-example-derivation my-example-derivation (post)> Uploading paths /nix/store/c263gzj2kb2609mz8wrbmh53l14wzmfs-my-example-derivation my-example-derivation (post)> + sleep 1 my-example-derivation (post)> + printf 'very important stuff' [1 built, 0.0 MiB DL] Co-authored-by: Graham Christensen <graham@grahamc.com> Co-authored-by: Eelco Dolstra <edolstra@gmail.com>
2019-08-02Tweak min-free/max-free descriptionsEelco Dolstra
2019-07-19docs: document balancing cores and max-jobsGraham Christensen
2019-07-06Merge pull request #2882 from grahamc/docs/1115-tarball-ttlEelco Dolstra
tarball-ttl: document
2019-07-05tarball-ttl: documentGraham Christensen
Incorporates text from Niklas Hambüchen in #2978 Closes #1115
2019-07-03Merge branch 'autoconf-ubuntu-16.04-fixes' of https://github.com/nh2/nixEelco Dolstra
2019-07-03autoconf: Fix C++17 detection not working on Ubuntu 16.04.Niklas Hambüchen
And probably many other distributions. Until now, ./configure would fail silently printing a warning ./configure: line 4621: AX_CXX_COMPILE_STDCXX_17: command not found and then continuing, later failing with a C++ #error saying that some C++11 feature isn't supported (it didn't even get to the C++17 features). This is because older distributions don't come with the `AX_CXX_COMPILE_STDCXX_17` m4 macro. This commit vendors that macro accordingly. Now ./configure complains correctly: configure: error: *** A compiler with support for C++17 language features is required. On Ubuntu 16.04, ./configure completes if a newer compiler is used, e.g. with gcc-7 from https://launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu/test using: ./bootstrap.sh ./configure CXX=g++-7 --disable-doc-gen --with-boost=$(nix-build --no-link '<nixpkgs>' -A boost.dev)
2019-07-03autoconf: Work around editline not being found on Ubuntu 16.04.Niklas Hambüchen
And probably other Linux distributions with long-term support releases. Also update manual stating what version is needed; I checked that 1.14 is the oldest version with which current nix compiles, and added autoconf feature checks for some functions added in that release that nix uses.
2019-07-02Merge pull request #2779 from LnL7/build-exit-codesEelco Dolstra
build: add exit code for hash and check mismatches
2019-07-02Merge pull request #2724 from LnL7/manpage-add-fixedEelco Dolstra
nix-store: document --add-fixed
2019-07-02Merge pull request #2582 from LnL7/fetchgit-refsEelco Dolstra
fetchGit: allow fetching explicit refs
2019-07-02nix-store: document --add-fixedDaiderd Jordan
2019-07-02builtins.fetchGit: document absolute ref supportGraham Christensen
2019-07-02build: replace 100 offset for build exit codesDaiderd Jordan
2019-07-02nix-store: document exit codesDaiderd Jordan
2019-06-25nix-channel: Don't fetch binary-cache-urlEelco Dolstra
This has been ignored since the Perl->C++ rewrite.
2019-06-20Nix uses the CPP SDK, not JavaBruno Bieth
2019-06-04Minor typoJorisE
2019-05-21doc: clarify that optional attrs in a function argument will be ignored ↵Maximilian Bosch
unless specified In `args@{ a ? 1 }: /* ... */` the value `a` won't be a part of `args` unless it's specified when calling the function, the default value will be ignored in this case. My personal point of view is that this behavior is a matter of taste, at least I was pretty sure that unmatched arguments will be a part of `args@` while debugging some Nix code last week. I decided to add a warning to the docs which hopefully reduces the confusion of further Nix developers who thought the same about `args@`.
2019-05-17docs: describe $IN_NIX_SHELL values (#2796)Vladimír Čunát
See commit 1bffd83e1a9
2019-05-12Clarify where output from the diff hook goes.Graham Christensen
2019-05-12diff hook: execute as the build user, and pass the temp dirGraham Christensen
2019-05-12build: run diff-hook under --check and document diff-hookGraham Christensen
2019-05-08Merge pull request #2765 from nh2/manual-nixpkgs-wordEelco Dolstra
manual: "Nix Package collection" -> "Nixpkgs package collection".
2019-05-03Add builtins.hashFileDaniel Schaefer
For text files it is possible to do it like so: `builtins.hashString "sha256" (builtins.readFile /tmp/a)` but that doesn't work for binary files. With builtins.hashFile any kind of file can be conveniently hashed.
2019-04-14manual: "Nix Package collection" -> "Nixpkgs package collection".Niklas Hambüchen
Makes difference between Nix and Nixpkgs clearer to avoid some common confusion this sentence on IRC. Also disambiguate an "it" reference.
2019-03-31docs: Mention `--max-jobs 0` to build remotely onlyNiklas Hambüchen
2019-03-25manual: mention the "channel:" shorthand for NIX_PATHDmitry Kalinkin
Bumped to 15.09 because older channels, when downloaded from nixos.org, require firefox to be accessed via `pkgs.firefox`
2019-03-24Add isPath primopzimbatm
this is added for completeness' sake since all the other possible `builtins.typeOf` results have a corresponding `builtins.is<Type>`
2019-03-21manual: include builtins.* for globally available builtinsLinus Heckemann
This improves searchability.
2019-03-16Link to `builders-use-substitutes` in chapter on distributed buildsJoachim Breitner
fixes #2730.
2019-03-14docs: fix typo in AllowDirectReadsAndreas Rammhold
It was just missing an `l` but should be fixed anyway.
2019-03-01manual nitpick: document sha512 support in hashStringVladimír Čunát
2019-01-23nix-store: make --dump-db take a list of paths to dumpSpencer Baugh
Inside a derivation, exportReferencesGraph already provides a way to dump the Nix database for a specific closure. On the command line, --dump-db gave us the same information, but only for the entire Nix database at once. With this change, one can now pass a list of paths to --dump-db to get the Nix database dumped for just those paths. (The user is responsible for ensuring this is a closure, like for --export). Among other things, this is useful for deploying a closure to a new host without using --import/--export; one can use tar to transfer the store paths, and --dump-db/--load-db to transfer the validity information. This is useful if the new host doesn't actually have Nix yet, and the closure that is being deployed itself contains Nix.
2019-01-20Merge pull request #2635 from veprbl/patch-7Domen Kožar
manual: "sandbox" option default is "true" on Linux
2019-01-19manual: "sandbox" option default is "true" on LinuxDmitry Kalinkin
Fixes: 812e39313c ('Enable sandboxing by default')
2019-01-18Update instructions for Haskell script using nix-shell interpreterSamuel Evans-Powell
- The instructions for using nix-shell as an interpreter has a Haskell script example that doesn't work on more recent versions of Nix. Update the instructions with a working command
2019-01-10Add 2.2 release notesEelco Dolstra
2019-01-07Don't look for a "pv" program, or mention it in the manual sourceJohn Ericson
The manual reference was commented out, and the sole reference to this program other than the configure script. Removed both.
2018-12-14Clarify nix-instantiate --read-write-modePatrick Hilhorst
2018-12-13Merge pull request #2569 from veprbl/pr/update_prerequisitesEelco Dolstra
docs: add missing prerequisites: brotli, boost, libseccomp
2018-12-13docs: raise minimal boost version to 1.66Dmitry Kalinkin
2018-12-10docs: add missing prerequisites: brotli, boost, libseccompDmitry Kalinkin
2018-12-08s3: document scheme query parameterDaiderd Jordan
2018-11-13Merge branch 'feature/editline-pr' of https://github.com/dtzWill/nixEelco Dolstra
2018-11-13manual: quote $servletsFelix C. Stegerman