John Ericson
6a168254ce
Use named field initialization for references
2023-01-06 12:24:20 -05:00
John Ericson
e9fc1e4fdb
Merge remote-tracking branch 'upstream/master' into path-info
2023-01-06 10:35:20 -05: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
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
Eelco Dolstra
b3fdab28a2
Introduce AbstractPos
...
This makes the position object used in exceptions abstract, with a
method getSource() to get the source code of the file in which the
error originated. This is needed for lazy trees because source files
don't necessarily exist in the filesystem, and we don't want to make
libutil depend on the InputAccessor type in libfetcher.
2022-12-13 00:50:43 +01:00
Rick van Schijndel
672ee88231
support building with --enable-gc=no
...
Some minor changes fixing the build without boehm.
Fixes NixOS#6250
2022-12-12 23:31:30 +01:00
John Ericson
7b122d43a4
Fix stack context notes to not rely on order
...
Make everything be in the form "while ..." (most things were already),
and in particular *don't* use other propositions that must go after or
before specific "while ..." clauses to make sense.
2022-12-12 18:41:00 +00:00
Eelco Dolstra
fd0ed75118
Support flake references in the old CLI
...
Fixes #7026 .
2022-12-12 14:05:52 +01:00
Eelco Dolstra
ae5f62a894
Move isUri() and resolveUri() out of filetransfer.cc
...
These are purely related to NIX_PATH / -I command line parsing, so put
them in libexpr.
2022-12-12 14:05:35 +01:00
Eelco Dolstra
877ea1dab8
Use get_ptr()
...
Co-authored-by: Théophane Hufschmitt <7226587+thufschmitt@users.noreply.github.com>
2022-12-12 12:46:13 +01:00
Eelco Dolstra
f3d1e92856
Update URL
...
Co-authored-by: Valentin Gagarin <valentin.gagarin@tweag.io>
2022-12-12 12:37:55 +01:00
Eelco Dolstra
703d863a48
Trivial changes from the lazy-trees branch
2022-12-07 14:06:34 +01:00
Eelco Dolstra
3a8341f57e
Merge pull request #7395 from obsidiansystems/evaluating-to-calling
...
Change "while evaluating <fun>" to "while *calling*" in trace
2022-12-02 15:53:57 +01:00
John Ericson
19c5394971
Change "while evaluating <fun>" to "while *calling*" in trace
...
The old way was not correct.
Here is an example:
```
$ nix-instantiate --eval --expr 'let x = a: throw "asdf"; in x 1' --show-trace
error: asdf
… while evaluating 'x'
at «string»:1:9:
1| let x = a: throw "asdf"; in x 1
| ^
… from call site
at «string»:1:29:
1| let x = a: throw "asdf"; in x 1
| ^
```
and yet also:
```
$ nix-instantiate --eval --expr 'let x = a: throw "asdf"; in x' --show-trace
<LAMBDA>
```
Here is the thing: in both cases we are evaluating `x`!
Nix is a higher-order languages, and functions are a sort of value. When
we write `x = a: ...`, `a: ...` is the expression that `x` is being
defined to be, and that is already a value. Therefore, we should *never*
get an trace that says "while evaluating `x`", because evaluating `a:
...` is *trival* and nothing happens during it!
What is actually happening here is we are applying `x` and evaluating
its *body* with arguments substituted for parameters. I think the
simplest way to say is just "while *calling* `x`", and so that is what I
changed it to.
2022-12-02 09:14:12 -05:00
Alex Ameen
ef524013aa
doc: listToAttrs: add extra whitespace
2022-12-01 10:32:45 -06:00
Alex Ameen
ec18b7d09b
doc: listToAttrs: fix line wrapping
2022-11-30 23:21:09 -06:00
Alex Ameen
ad46726546
doc: listToAttrs: document repeated keys
2022-11-30 22:53:41 -06:00
Eelco Dolstra
dbf78a7ada
Merge pull request #7313 from yorickvP/nlohmann-everywhere
...
Replace src/libutil/json.cc with nlohmann
2022-11-28 15:03:48 +01:00
Eelco Dolstra
0b4c4d7434
Don't use GC_STRNDUP
...
It calls strlen() on the input (rather than simply copying at most
`size` bytes), which can fail if the input is not zero-terminated and
is inefficient in any case.
Fixes #7347 .
2022-11-25 22:30:56 +01:00
Yorick van Pelt
09f00dd4d0
Replace src/libutil/json.cc with nlohmann json generation
2022-11-16 16:50:50 +01:00
Théophane Hufschmitt
8b4352d79b
Merge remote-tracking branch 'nixos/master' into readFile-scan-references
2022-11-14 15:00:05 +01:00
Naïm Favier
e7ed9ae0c7
Restrict readFile
context to references that appear in the string
...
When calling `builtins.readFile` on a store path, the references of that
path are currently added to the resulting string's context.
This change makes those references the *possible* context of the string,
but filters them to keep only the references whose hash actually appears
in the string, similarly to what is done for determining the runtime
references of a path.
2022-11-11 13:04:34 +01:00
Théophane Hufschmitt
9550b1d519
Merge pull request #7258 from ncfavier/fix-eval-error-fmt
...
Fix printing of eval errors with two format placeholders
2022-11-10 18:41:16 +01:00
Naïm Favier
dad859ba0f
Fix printing of eval errors with two format placeholders
2022-11-04 12:41:38 +01:00
Eelco Dolstra
da2c61637b
Use _type
...
Co-authored-by: Robert Hensing <roberth@users.noreply.github.com>
2022-10-25 16:48:31 +02:00
Guillaume Maudoux
d6f5734c63
Complete genericClosure tests
2022-10-25 01:57:18 +02:00
Guillaume Maudoux
e93bf69b44
Rework error throwing, and test it
2022-10-25 01:46:10 +02:00
Shea Levy
334fa81d08
Mark flakes with .type = "flake".
...
Fixes #7186
2022-10-23 06:54:11 -04:00
Guillaume Maudoux
8bd8583bc7
Try to please clang with convoluted templates
2022-10-23 00:11:44 +02:00
Guillaume Maudoux
8c3afd2d68
Introduce an Error builder to tackle complexity
2022-10-22 23:37:54 +02:00
Guillaume Maudoux
4a909c142c
Rollback unneeded throwFrameErrorWithTrace function
2022-10-20 14:25:11 +02:00
Guillaume Maudoux
31ce52a045
Fix context message being printed twice with forceStringNoCtx
2022-10-20 14:18:35 +02:00
Guillaume Maudoux
512f6be9b5
Reword incomparable types message
2022-10-20 14:17:05 +02:00
Guillaume Maudoux
520404f450
Revert custom position of 'if' blocks
2022-10-20 13:55:15 +02:00