Eelco Dolstra
e8ca49f6ef
Fix clang compilation
2023-02-01 20:34:44 +01:00
Eelco Dolstra
14b0b9ea5a
Merge pull request #7203 from graham33/feature/cpp20
...
Proposal: Use C++20
2023-02-01 15:41:04 +01:00
Robert Hensing
c9b9260f34
Merge pull request #7713 from obsidiansystems/more-rapid-check
...
Add more property tests
2023-01-30 18:54:53 +01:00
John Ericson
560142fec0
Make per-variant Arbitrary impls too
...
This is a nice idea that @roberth requested. If we could factor our a
generic `std::variant` impl as a follow-up it would be even better!
2023-01-30 10:56:00 -05:00
John Ericson
ecd3e4ebd7
More property tests
...
Also put proper comparison methods on `DerivedPath` and
`NixStringContextElem`, which is needed for the tests but good in
general.
2023-01-29 17:09:59 -05:00
John Ericson
ec0c0efec6
Allow unit test infra to be reused across libs' tests
...
This allows using Arbitrary "instances" defined in libstore-tests in
libexpr-tests, something we will leverage in a moment.
2023-01-29 13:52:57 -05:00
Naïm Favier
dba9173a1d
Document default nix-path
value
2023-01-27 15:25:07 +01:00
Naïm Favier
1cba5984a6
getDefaultNixPath: actually respect {restrict,pure}-eval
...
Previously, getDefaultNixPath was called too early: at initialisation
time, before CLI and config have been processed, when `restrictEval` and
`pureEval` both have their default value `false`. Call it when
initialising the EvalState instead, and use `setDefault`.
2023-01-27 13:28:57 +01:00
Robert Hensing
9b56683398
Merge pull request #7447 from aakropotkin/read-file-type
...
Read file type
2023-01-23 17:37:22 +01:00
Robert Hensing
0a9acefeb5
Merge pull request #7657 from obsidiansystems/fix-7655
...
Fix #7655
2023-01-23 15:42:59 +01:00
Alex Ameen
153ee460c5
primop: add readFileType, optimize readDir
...
Allows checking directory entry type of a single file/directory.
This was added to optimize the use of `builtins.readDir` on some
filesystems and operating systems which cannot detect this information
using POSIX's `readdir`.
Previously `builtins.readDir` would eagerly use system calls to lookup
these filetypes using other interfaces; this change makes these
operations lazy in the attribute values for each file with application
of `builtins.readFileType`.
2023-01-22 13:45:02 -06:00
John Ericson
0afdf4084c
Fix #7655
...
We had some local variables left over from the older (more
complicated) implementation of this function. They should all be unused,
but one wasn't by mistake.
Delete them all, and replace the one that was still in use as intended.
2023-01-21 23:55:06 -05:00
Guillaume Maudoux
a0642305ab
Use complete '__toString' attribute name
...
Co-authored-by: Robert Hensing <roberth@users.noreply.github.com>
2023-01-20 13:06:00 +01:00
Guillaume Maudoux
a9fa2c758b
Always display addErrorContext messages in (expanded) traces
2023-01-19 14:14:19 +01:00
Guillaume Maudoux
6228b6b950
Discuss re-entrant errors and design
2023-01-19 14:12:26 +01:00
Guillaume Maudoux
ca7c5e08c1
Add tests for error traces, and fixes
2023-01-19 14:10:56 +01:00
Guillaume Maudoux
e4726a0c79
Revert "Revert "Merge pull request #6204 from layus/coerce-string""
...
This reverts commit 9b33ef3879
.
2023-01-19 13:23:04 +01:00
Eelco Dolstra
01f268322a
Restore support for channel: URLs in fetchTarball
...
Fixes #7625 .
2023-01-18 12:57:03 +01:00
Robert Hensing
9b33ef3879
Revert "Merge pull request #6204 from layus/coerce-string"
...
This reverts commit a75b7ba30f
, reversing
changes made to 9af16c5f74
.
2023-01-18 01:34:07 +01:00
John Ericson
ce2f91d356
Split OutputsSpec
and ExtendedOutputsSpec
, use the former more
...
`DerivedPath::Built` and `DerivationGoal` were previously using a
regular set with the convention that the empty set means all outputs.
But it is easy to forget about this rule when processing those sets.
Using `OutputSpec` forces us to get it right.
2023-01-11 18:57:18 -05:00
John Ericson
a7c0cff07f
Rename OutputPath
-> ExtendedOutputPath
...
Do this prior to making a new more limitted `OutputPath` we will use in
more places.
2023-01-11 18:55:29 -05:00
John Ericson
a8f45b5e5a
Improve OutputsSpec
slightly
...
A few little changes preparing for the rest.
2023-01-11 18:54:50 -05:00
Théophane Hufschmitt
a3ba80357d
Merge pull request #7543 from obsidiansystems/typed-string-context
...
Parse string context elements properly
2023-01-11 07:09:37 +01:00
Robert Hensing
f58c301112
Merge pull request #7541 from hercules-ci/check-manual-links
...
Check links in the manual
2023-01-10 23:07:38 +01:00
Robert Hensing
fefa3a49ce
doc/manual: Apply suggestions from code review
...
Co-authored-by: Valentin Gagarin <valentin.gagarin@tweag.io>
2023-01-10 22:30:41 +01:00
Robert Hensing
e79f935718
doc/manual: Fix broken internal links
...
The targets I could find.
2023-01-10 22:30:41 +01:00
Robert Hensing
34a1e0d29b
doc/manual: Introduce @docroot@ as a stable base for includable snippets
...
This way the links are clearly within the manual (ie not absolute paths),
while allowing snippets to reference the documentation root reliably,
regardless of at which base url they're included.
2023-01-10 22:30:41 +01:00
John Ericson
5576d5e987
Parse string context elements properly
...
Prior to this change, we had a bunch of ad-hoc string manipulation code
scattered around. This made it hard to figure out what data model for
string contexts is.
Now, we still store string contexts most of the time as encoded strings
--- I was wary of the performance implications of changing that --- but
whenever we parse them we do so only through the
`NixStringContextElem::parse` method, which handles all cases. This
creates a data type that is very similar to `DerivedPath` but:
- Represents the funky `=<drvpath>` case as properly distinct from the
others.
- Only encodes a single output, no wildcards and no set, for the
"built" case.
(I would like to deprecate `=<path>`, after which we are in spitting
distance of `DerivedPath` and could maybe get away with fewer types, but
that is another topic for another day.)
2023-01-10 13:10:49 -05:00
John Ericson
da64f026dd
Make clear that StorePathWithOutputs
is a deprecated type
...
- Add a comment
- Put `OutputsSpec` in a different header (First part of #6815 )
- Make a few stray uses of it in new code use `DerivedPath` instead.
2023-01-10 11:27:19 -05:00
Eelco Dolstra
8e923bf4c5
Merge remote-tracking branch 'origin/master' into fix-7417
2023-01-10 14:35:06 +01:00
Will Bush
05b13aff3d
Fix typo in example for builtin function map
2023-01-06 23:04:43 -06:00
Eelco Dolstra
c548e35498
Don't use state.positions[noPos]
...
This caused traces 'at «none»:0: (source not available)'.
2023-01-02 20:53:58 +01:00
Eelco Dolstra
6b69652385
Merge remote-tracking branch 'origin/master' into coerce-string
2023-01-02 20:53:39 +01:00
Théophane Hufschmitt
9af16c5f74
Merge pull request #5941 from hercules-ci/optimize-intersectAttrs
...
Optimize intersectAttrs performance
2023-01-02 15:22:38 +01:00
Valentin Gagarin
e0c4a95611
antiquotation -> string interpolation
...
as proposed by @mkaito[1] and @tazjin[2] and discussed with @edolstra
and Nix maintainers
[1]: https://github.com/NixOS/nix.dev/pull/267#issuecomment-1270076332
[2]: https://github.com/NixOS/nix.dev/pull/267#issuecomment-1270201979
Co-authored-by: John Ericson <git@JohnEricson.me>
Co-authored-by: Eelco Dolstra <edolstra@gmail.com>
2023-01-02 14:38:57 +01:00
Théophane Hufschmitt
fb8fc6fda6
Merge pull request #7478 from hercules-ci/make-sure-initNix-called
...
libstore: Make sure that initNix has been called
2023-01-02 14:12:49 +01:00
Théophane Hufschmitt
b3285c7722
Merge pull request #7351 from NaN-git/fix-mkString
...
cleanup eval.hh/eval.cc
2023-01-02 11:41:52 +01:00
Robert Hensing
336908cf4c
Optimize intersectAttrs performance
...
Always traverse the shortest set.
2022-12-24 14:51:05 +01:00
Robert Hensing
aba6eb348e
libstore: Make sure that initNix has been called
...
Prevent bugs like https://github.com/cachix/cachix/pull/477
2022-12-24 14:39:30 +01:00
Philipp Otterbein
8af839f48c
remove undefined function
2022-12-24 12:19:53 +01:00
Philipp Otterbein
a6e9d9cb2f
remove function makeImmutableStringWithLen
2022-12-24 12:09:06 +01:00
mupdt
a33e45b60b
primops storeDir
test uses settings.nixStore
2022-12-21 07:01:57 -05:00
Eelco Dolstra
bda879170f
EvalState::copyPathToStore(): Return a StorePath
2022-12-20 14:58:39 +01:00
Eelco Dolstra
8332ac6a1d
Merge pull request #7451 from edolstra/abstract-pos
...
Introduce AbstractPos
2022-12-20 12:55:13 +01:00
Solène Rapenne
d0660c6c0b
printMsg replacement by printInfo
...
Co-authored-by: Théophane Hufschmitt <7226587+thufschmitt@users.noreply.github.com>
2022-12-16 09:34:22 +01:00
Solène Rapenne
98e01da0b1
warnings: switch to info level when using a saved substituter
2022-12-14 14:11:21 +01:00
Eelco Dolstra
c9b0a85b08
Restore display of source lines for stdin/string inputs
2022-12-13 16:00:44 +01:00
Eelco Dolstra
aea97f07a3
Fix compilation
2022-12-13 15:23:12 +01:00
Eelco Dolstra
1315133b50
Improve cast safety
...
Co-authored-by: Théophane Hufschmitt <7226587+thufschmitt@users.noreply.github.com>
2022-12-13 12:38:33 +01:00
Théophane Hufschmitt
6e31d27cba
Merge pull request #6741 from Mindavi/nix-no-gc
...
support building with --enable-gc=no
2022-12-13 10:36:59 +01:00