forked from lix-project/lix
A modern, delicious implementation of the Nix package manager, focused on correctness, usability, and growth — and committed to doing right by its community
- C++ 74.9%
- Python 11.6%
- Nix 6.1%
- Shell 3.7%
- Meson 2%
- Other 1.6%
frames manually added with `addErrorContext` are generally a lot more
useful/informative to the average user than other frames, esp. in
the module system, which can create much better error messages than
we can.
however, before this change, frames from addErrorContext were truncated
by default if they weren't in the first 3 frames, so they were basically
useless (with `--show-trace`, you're dredging through 250 frames of
module shenanigans just to spot one singular line).
this change also removes the frames for _the call to_ `addErrorContext`,
which is just pure noise.
the way this change is done hopefully leaves a bit of space for future
similar changes to error printing, by introducing a new `TraceKind` enum
that can be used to categorize traces (i haven't done that in this CL
because that would be a pretty herculean task, given all the calls to
`BaseError::addTrace` in the codebase, and we probably want to be
careful about what categories we choose). the actual printing code could
definitely be improved tho... (e.g. by iterating twice through the trace
stack instead to first pick out the most important traces and _then_
printing less "important" traces if there's space left)
Change-Id:
|
||
|---|---|---|
| .cargo | ||
| .github | ||
| bench | ||
| contrib | ||
| doc | ||
| lix | ||
| maintainers | ||
| meson | ||
| misc | ||
| nix-support | ||
| perl | ||
| releng | ||
| scripts | ||
| subprojects | ||
| tests | ||
| tools/licxxbridge | ||
| .clang-format | ||
| .clang-tidy | ||
| .dir-locals.el | ||
| .editorconfig | ||
| .envrc | ||
| .gitignore | ||
| .mailmap | ||
| .this-is-lix | ||
| Cargo.lock | ||
| Cargo.toml | ||
| CONTRIBUTING.md | ||
| COPYING | ||
| default.nix | ||
| docker.nix | ||
| flake.lock | ||
| flake.nix | ||
| justfile | ||
| meson.build | ||
| meson.options | ||
| OWNERS | ||
| package.nix | ||
| pyproject.toml | ||
| README.md | ||
| release.nix | ||
| shell.nix | ||
| treefmt.toml | ||
| version.json | ||
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 set up a development environment and build Lix from source.
Additional Resources
- The Lix reference manual:
- Our wiki
- Matrix - #space:lix.systems
License
Lix is released under LGPL-2.1-or-later.