Nix, the purely functional package manager
Go to file
Andrew Marshall 51a12b38bd Fix stackoverflow during doc generation
On some systems, previous usage of `match` may cause a stackoverflow
(presumably due to the large size of the match result). Avoid this by
(ab)using `replaceStrings` to test for containment without using
regexes, thereby avoiding the issue. The causal configuration seems to
be the stack size hard limit, which e.g. Amazon Linux sets, whereas most
Linux distros leave unlimited.

Match the fn name to similar fn in nixpkgs.lib, but different
implementation that does not use `match`. This impl gives perhaps
unexpected results when the needle is `""`, but the scope of this is
narrow and that case is a bit odd anyway.

This makes for some duplication-of-work as we do a different
`replaceStrings` if this one is true, but this only runs during doc
generation at build time so has no runtime impact.

See https://github.com/NixOS/nix/issues/11085 for details.
2024-07-12 10:59:40 -04:00
.github Remove the Hydra status check workflow 2024-07-08 14:39:33 +02:00
build-utils-meson Use a meson "generator" to deduplicate .gen.hh creation 2024-07-08 11:13:11 -04:00
config Remove and gitignore the autoreconf generated files 2024-03-02 10:18:47 +01:00
contrib function-trace: always show the trace 2019-09-18 23:23:21 +02:00
doc/manual Fix stackoverflow during doc generation 2024-07-12 10:59:40 -04:00
m4 Build a minimized Nix with MinGW 2024-04-17 12:26:10 -04:00
maintainers Remove reference to check-hydra-status 2024-07-09 16:44:01 +02:00
misc Use Nixpkgs changelog-d 2024-06-03 18:47:53 +02:00
mk Unit tests and external libraries 2024-07-02 09:23:24 -04:00
packaging Package the Nix CLI with Meson 2024-07-08 17:49:44 -04:00
scripts Remove the Hydra status check workflow 2024-07-08 14:39:33 +02:00
src Package the Nix CLI with Meson 2024-07-08 17:49:44 -04:00
tests Merge pull request #11063 from obsidiansystems/config-expr 2024-07-08 11:27:57 -04:00
.clang-format .clang-format: Remove duplicated key 2024-06-03 18:38:56 +02:00
.clang-tidy Add .clang-tidy 2024-02-01 01:01:39 +01:00
.dir-locals.el .dir-locals.el: Set c-block-comment-prefix 2020-07-10 11:21:06 +02:00
.editorconfig No global eval settings in libnixexpr 2024-06-24 12:15:16 -04:00
.gitignore Put back files for now 2024-07-02 09:26:22 -04:00
.shellcheckrc housekeeping: shellcheck for tests/functional/ca/build-cache.sh 2024-06-12 17:41:16 -04:00
.version Bump version 2024-06-12 14:57:40 +02:00
CITATION.cff chore: PhD thesis as reference in CITATION.cff 2024-05-18 20:05:22 +02:00
configure.ac Put unit tests back in old build system for now 2024-07-02 09:26:22 -04:00
CONTRIBUTING.md add a recommendation for first-time contributors (#10605) 2024-04-25 13:34:15 +02:00
COPYING * Change this to LGPL to keep the government happy. 2006-04-25 16:41:06 +00:00
default.nix add flake-compat to flake.nix and use sha256 in default.nix 2023-03-06 21:11:24 +01:00
docker.nix fix "add an option to include flake-registry..." 2023-05-16 14:35:31 +02:00
flake.lock Update nixpkgs 2024-06-03 18:47:53 +02:00
flake.nix flake.nix: Remove unused binding 2024-07-06 17:52:57 +02:00
local.mk local.mk: Solve warnings 2024-04-17 15:37:14 +02:00
Makefile Put unit tests back in old build system for now 2024-07-02 09:26:22 -04:00
Makefile.config.in Put unit tests back in old build system for now 2024-07-02 09:26:22 -04:00
meson.build Package the Nix CLI with Meson 2024-07-08 17:49:44 -04:00
package.nix Put unit tests back in old build system for now 2024-07-02 09:26:22 -04:00
precompiled-headers.h Build a minimized Nix with MinGW 2024-04-17 12:26:10 -04:00
README.md add more context on the README (#9871) 2024-06-11 15:52:33 +00:00
shell.nix Remove url literals 2022-01-24 13:28:21 +01:00

Nix

Open Collective supporters Test

Nix is a powerful package manager for Linux and other Unix systems that makes package management reliable and reproducible. Please refer to the Nix manual for more details.

Installation and first steps

Visit nix.dev for installation instructions and beginner tutorials.

Full reference documentation can be found in the Nix manual.

Building and developing

See our Hacking guide in our manual for instruction on how to set up a development environment and build Nix from source.

Contributing

Check the contributing guide if you want to get involved with developing Nix.

Additional resources

Nix was created by Eelco Dolstra and developed as the subject of his PhD thesis The Purely Functional Software Deployment Model, published 2006. Today, a world-wide developer community contributes to Nix and the ecosystem that has grown around it.

License

Nix is released under the LGPL v2.1.