A modern, delicious implementation of the Nix package manager, focused on correctness, usability, and growth — and committed to doing right by its community https://lix.systems
Find a file
eldritch horrors f2a49032a6 libstore: turn Worker in a kj event loop user
using a proper event loop basis we no longer have to worry about most of
the intricacies of poll(), or platform-dependent replacements for it. we
may even be able to use the event loop and its promise system for all of
our scheduling in the future. we don't do any real async processing yet,
this is just preparation to separate the first such change from the huge
api design difference with the async framework we chose (kj from capnp):

kj::Promise, unlike std::future, doesn't return exceptions unmangled. it
instead wraps any non-kj exception into a kj exception, erasing all type
information and preserving mostly the what() string in the process. this
makes sense in the capnp rpc use case where unrestricted exception types
can't be transferred, and since it moves error handling styles closer to
a world we'd actually like there's no harm in doing it only here for now

Change-Id: I20f888de74d525fb2db36ca30ebba4bcfe9cc838
2024-09-08 01:57:48 +00:00
.github .github: clean up stale things and wrong references 2024-06-12 15:34:23 -07:00
bench Add benchmarking scripts 2024-04-08 19:50:24 -07:00
contrib function-trace: always show the trace 2019-09-18 23:23:21 +02:00
doc Merge changes I5566a985,I88cf53d3 into main 2024-09-01 22:06:36 +00:00
maintainers rl-next: fix incorrect CL list syntax 2024-08-09 19:03:08 -07:00
meson clang-tidy: fix the fact that we are not linting headers properly 2024-08-28 09:52:08 -07:00
misc build: remove expect as a dependency 2024-08-10 16:10:16 -07:00
nix-support De-vendor nixfmt 2024-07-22 21:09:58 +04:00
perl Merge changes Ib7c80826,I636f8a71,I67669b98 into main 2024-08-09 19:24:29 +00:00
releng releng: fix the git push 2024-08-07 21:46:44 -07:00
scripts remove the autoconf+Make buildsystem 2024-05-07 17:04:30 -06:00
src libstore: turn Worker in a kj event loop user 2024-09-08 01:57:48 +00:00
subprojects rowan: 0.15.15 -> 0.15.16 2024-08-26 11:34:43 -07:00
tests Test including relative paths in configuration 2024-09-01 15:52:48 -07:00
.clang-format Add pre-commit checks 2024-03-29 22:57:40 -07:00
.clang-tidy clang-tidy: write a lint for charptr_cast 2024-08-08 14:53:17 -07:00
.dir-locals.el .dir-locals.el: Set c-block-comment-prefix 2020-07-10 11:21:06 +02:00
.editorconfig add editorconfig for markdown 2024-05-24 02:22:44 +00:00
.envrc .envrc: remove MAKEFLAGS and use clang environment by default 2024-06-25 12:36:18 -06:00
.gitignore build: move to a Cargo workspace 2024-08-21 17:09:10 +00:00
.this-is-lix devShell: guard against running from another directory 2024-06-24 13:41:38 -07:00
Cargo.lock rowan: 0.15.15 -> 0.15.16 2024-08-26 11:34:43 -07:00
Cargo.toml build: move to a Cargo workspace 2024-08-21 17:09:10 +00:00
CONTRIBUTING.md chore: re-work the contribution guide 2024-05-07 01:28:35 +00:00
COPYING Add pre-commit checks 2024-03-29 22:57:40 -07:00
default.nix Format Nix code with nixfmt 2024-04-08 13:00:00 -07:00
docker.nix releng: support multiarch docker images 2024-06-09 20:33:24 -07:00
flake.lock update flake.lock 2024-07-26 11:22:34 +04:00
flake.nix build: integrate clang-tidy into CI 2024-08-08 14:53:17 -07:00
justfile build: implement clang-tidy using our plugin 2024-08-04 20:41:19 -07:00
meson.build libstore: turn Worker in a kj event loop user 2024-09-08 01:57:48 +00:00
meson.options build: implement clang-tidy using our plugin 2024-08-04 20:41:19 -07:00
package.nix libstore: turn Worker in a kj event loop user 2024-09-08 01:57:48 +00:00
README.md README: clarify license to match documentation 2024-08-10 16:11:58 -07:00
shell.nix shell.nix: conform to documentation 2024-05-27 16:47:40 +02:00
treefmt.toml Format Nix code with nixfmt 2024-04-08 13:00:00 -07:00
version.json Update version to 2.92 2024-08-12 18:06:08 -07:00

Lix

Lix is an implementation of Nix, a powerful package management system for Linux and other Unix systems that makes package management reliable and reproducible.

Read more about us at https://lix.systems.

Installation

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

$ curl -sSf -L https://install.lix.systems/lix | sh -s -- install

For systems that already have a Nix implementation installed, such as NixOS systems, read our install page

Building And Developing

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

Additional Resources

License

Lix is released under LGPL-2.1-or-later.