A modern, delicious implementation of the Nix package manager, focused on correctness, usability, and growth — and committed to doing right by its community
Find a file
pennae 8775be3393 store Symbols in a table as well, like positions
this slightly increases the amount of memory used for any given symbol, but this
increase is more than made up for if the symbol is referenced more than once in
the EvalState that holds it. on average every symbol should be referenced at
least twice (once to introduce a binding, once to use it), so we expect no
increase in memory on average.

symbol tables are limited to 2³² entries like position tables, and similar
arguments apply to why overflow is not likely: 2³² symbols would require as many
string instances (at 24 bytes each) and map entries (at 24 bytes or more each,
assuming that the map holds on average at most one item per bucket as the docs
say). a full symbol table would require at least 192GB of memory just for
symbols, which is well out of reach. (an ofborg eval of nixpks today creates
less than a million symbols!)
2022-04-21 21:56:31 +02:00
.github Bump actions/checkout from 2 to 3 2022-04-13 12:10:29 +00:00
config Run autoupdate 2021-06-01 11:42:38 +02:00
contrib function-trace: always show the trace 2019-09-18 23:23:21 +02:00
doc/manual nix repl: make symlinks with the :bl command 2022-04-20 00:20:29 +03:00
m4 autoconf: Fix C++17 detection not working on Ubuntu 16.04. 2019-07-03 04:32:25 +02:00
maintainers Integrate push-docker.sh into the release script 2022-02-18 13:58:01 +01:00
misc Merge pull request #6128 from ncfavier/fix-completion 2022-04-19 13:45:33 +02:00
mk mk/run_test.sh: Add missing backslash 2022-03-02 21:36:46 +01:00
perl Remove std::string alias (for real this time) 2022-02-25 16:13:02 +01:00
scripts installer: ask for confirmation on multi-user install without systemd 2022-04-08 11:23:54 +02:00
src store Symbols in a table as well, like positions 2022-04-21 21:56:31 +02:00
tests replace most Pos objects/ptrs with indexes into a position table 2022-04-21 21:46:06 +02:00
.dir-locals.el .dir-locals.el: Set c-block-comment-prefix 2020-07-10 11:21:06 +02:00
.editorconfig Add .editorconfig 2017-06-05 22:57:28 +01:00
.gitignore nix repl: make symlinks with the :bl command 2022-04-20 00:20:29 +03:00
.version Bump version 2022-04-19 21:48:17 +02:00
boehmgc-coroutine-sp-fallback.diff Fix leaking pthread_attr_t 2021-11-03 22:54:16 +01:00
bootstrap.sh
configure.ac Require lowdown 0.9.0 2022-02-01 10:44:19 +01:00
COPYING
default.nix Remove url literals 2022-01-24 13:28:21 +01:00
docker.nix feat: include openssh in docker image 2022-04-14 13:49:47 +01:00
flake.lock flake.lock: Update 2022-04-05 16:41:40 +02:00
flake.nix add sourcehut integration test 2022-02-23 11:58:09 -03:00
local.mk Remove 'dist' target 2020-12-03 16:17:58 +01:00
Makefile Stop vendoring nlohmann_json 2022-01-26 11:50:53 +01:00
Makefile.config.in use LOWDOWN_LIBS variable 2022-01-30 20:59:58 +02:00
precompiled-headers.h Config: Use nlohmann/json 2020-08-20 11:02:16 +02:00
README.md throw freenode down the memory hole 2021-05-27 21:48:39 +02: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

On Linux and macOS the easiest way to install Nix is to run the following shell command (as a user other than root):

$ curl -L https://nixos.org/nix/install | sh

Information on additional installation methods is available on the Nix download page.

Building And Developing

See our Hacking guide in our manual for instruction on how to build nix from source with nix-build or how to get a development environment.

Additional Resources

License

Nix is released under the LGPL v2.1.