Rebecca Turner
36dfac7560
Expose locals from let
expressions to the debugger
2024-02-02 19:31:18 -08:00
Rebecca Turner
0127d54d5e
Enter debugger more reliably in let expressions and calls
2024-02-02 19:14:22 -08:00
Rebecca Turner
016db2d10f
Add position information to while evaluating the attribute
2024-02-02 17:49:54 -08:00
Rebecca Turner
7d7483cafc
Print positions in --debugger
, instead of pointers
2024-02-02 17:38:46 -08:00
Eelco Dolstra
081dc5daa1
Merge pull request #9902 from NixOS/require-fixed-output-fetchurl
...
builtin:fetchurl: Ensure a fixed-output derivation
2024-02-02 14:00:34 +01:00
Eelco Dolstra
e67458e5b8
Better test fix
2024-02-02 13:34:56 +01:00
Eelco Dolstra
05535be03a
Fix test
2024-02-02 13:07:08 +01:00
Rebecca Turner
faaccecbc8
Remove EXCEPTION_NEEDS_THROW_SPEC
...
We're on C++ 20 now, we don't need this
2024-02-01 16:39:38 -08:00
Rebecca Turner
87dc4bc7d1
Attach positions to errors in derivationStrict
2024-02-01 16:39:38 -08:00
Rebecca Turner
c6a89c1a16
libexpr: Support structured error classes
...
While preparing PRs like #9753 , I've had to change error messages in
dozens of code paths. It would be nice if instead of
EvalError("expected 'boolean' but found '%1%'", showType(v))
we could write
TypeError(v, "boolean")
or similar. Then, changing the error message could be a mechanical
refactor with the compiler pointing out places the constructor needs to
be changed, rather than the error-prone process of grepping through the
codebase. Structured errors would also help prevent the "same" error
from having multiple slightly different messages, and could be a first
step towards error codes / an error index.
This PR reworks the exception infrastructure in `libexpr` to
support exception types with different constructor signatures than
`BaseError`. Actually refactoring the exceptions to use structured data
will come in a future PR (this one is big enough already, as it has to
touch every exception in `libexpr`).
The core design is in `eval-error.hh`. Generally, errors like this:
state.error("'%s' is not a string", getAttrPathStr())
.debugThrow<TypeError>()
are transformed like this:
state.error<TypeError>("'%s' is not a string", getAttrPathStr())
.debugThrow()
The type annotation has moved from `ErrorBuilder::debugThrow` to
`EvalState::error`.
2024-02-01 16:39:38 -08:00
Rebecca Turner
c62c21e29a
Move PodIdx
to pos-idx.hh
and PosTable
to pos-table.hh
2024-02-01 13:12:59 -08:00
Eelco Dolstra
b8b739e484
builtin:fetchurl: Get output hash info from the drv
2024-02-01 22:01:02 +01:00
Eelco Dolstra
1ee42c5b88
builtin:fetchurl: Ensure a fixed-output derivation
...
Previously we didn't check that the derivation was fixed-output, so
you could use builtin:fetchurl to impurely fetch a file.
2024-02-01 21:46:01 +01:00
Eelco Dolstra
ef6d055ace
Merge pull request #9896 from hercules-ci/tidy-tidy
...
Disable a slightly annoying clang-tidy check
2024-02-01 09:02:46 +01:00
Robert Hensing
58c26dd0f0
Add .clang-tidy
2024-02-01 01:01:39 +01:00
Robert Hensing
0f2e9e6bd2
Typo
2024-02-01 01:01:04 +01:00
Robert Hensing
4072a8fea0
Merge pull request #9867 from hercules-ci/issue-912
...
#912 allow leading period
2024-01-31 19:10:59 +01:00
Robert Hensing
7c9ed1b1a3
Merge pull request #9890 from obsidiansystems/remove-unneeded-toRealPath
...
Change an `allowPath` call to take a store path again
2024-01-31 18:45:19 +01:00
Robert Hensing
f1b4663805
Disallow store path names that are . or .. (plus opt. -)
...
As discussed in the maintainer meeting on 2024-01-29.
Mainly this is to avoid a situation where the name is parsed and
treated as a file name, mostly to protect users.
.-* and ..-* are also considered invalid because they might strip
on that separator to remove versions. Doesn't really work, but that's
what we decided, and I won't argue with it, because .-* probably
doesn't seem to have a real world application anyway.
We do still permit a 1-character name that's just "-", which still
poses a similar risk in such a situation. We can't start disallowing
trailing -, because a non-zero number of users will need it and we've
seen how annoying and painful such a change is.
What matters most is preventing a situation where . or .. can be
injected, and to just get this done.
2024-01-31 18:35:19 +01:00
Robert Hensing
8406da2877
test: Generate distinct hashes
...
Gen::just is the constant generator. Don't just return that!
2024-01-31 18:35:19 +01:00
Robert Hensing
69bbd5852a
test: Generate distinct path names
...
Gen::just is the constant generator. Don't just return that!
2024-01-31 18:35:19 +01:00
Robert Hensing
b13e6a76b4
parseStorePath: Support leading period
2024-01-31 18:35:19 +01:00
John Ericson
caea7dcb7e
Change an allowPath
call to take a store path again
...
This looks like a revert of #5844 , but is not.
That one was needed because
d90f9d4b99 (diff-0f59bb6f197822ef9f19ceae9624989499d170c84dfdc1f486a8959bb4588cafR85)
changed the type of the argument to `allowPath` from a `StorePath` to a
`Path`. But since
caabc4f648 (diff-0f59bb6f197822ef9f19ceae9624989499d170c84dfdc1f486a8959bb4588cafL100-R92)
,
it is a `StorePath` again.
I think this is worth changing because we want to be very careful about
`toRealPath` and the evaluator --- ideally the choice of real path does
not affect evaluation at all. So using it fewer times is better.
2024-01-31 11:44:06 -05:00
John Ericson
75ebb90a70
Merge pull request #9884 from edolstra/resolve-symlinks
...
Resolve symlinks in a few more places
2024-01-30 10:42:54 -05:00
Eelco Dolstra
d661a89398
Merge pull request #9880 from NixOS/dependabot/github_actions/zeebe-io/backport-action-2.4.1
...
build(deps): bump zeebe-io/backport-action from 2.4.0 to 2.4.1
2024-01-30 15:37:25 +01:00
Eelco Dolstra
b36ff47e7c
Resolve symlinks in a few more places
...
Fixes #9882 .
2024-01-30 15:35:31 +01:00
Eelco Dolstra
a7db7b6e44
Merge pull request #9879 from NixOS/bump-2.21.0
...
Bump version
2024-01-30 10:13:42 +01:00
dependabot[bot]
a3aae7beef
build(deps): bump zeebe-io/backport-action from 2.4.0 to 2.4.1
...
Bumps [zeebe-io/backport-action](https://github.com/zeebe-io/backport-action ) from 2.4.0 to 2.4.1.
- [Release notes](https://github.com/zeebe-io/backport-action/releases )
- [Commits](https://github.com/zeebe-io/backport-action/compare/v2.4.0...v2.4.1 )
---
updated-dependencies:
- dependency-name: zeebe-io/backport-action
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2024-01-29 22:14:10 +00:00
Eelco Dolstra
2f3fb6c12e
Bump version
2024-01-29 22:57:25 +01:00
Eelco Dolstra
9b8e0a7790
Merge pull request #9877 from edolstra/release-notes
...
Nix 2.20 release notes
2024-01-29 18:29:33 +01:00
Eelco Dolstra
652f334f87
Edit release notes
2024-01-29 17:51:21 +01:00
Eelco Dolstra
9465c8cca1
nix hash convert: Add manpage
2024-01-29 17:51:01 +01:00
Eelco Dolstra
6f86f87043
Fix formatting of hash args
2024-01-29 17:50:25 +01:00
Eelco Dolstra
3089bce41b
release notes: 2.20.0
2024-01-29 17:14:17 +01:00
Eelco Dolstra
0070400809
maintainers/release-notes: Include changelog-d
...
Otherwise it quietly generates an empty rl-<version>.md
2024-01-29 17:13:48 +01:00
Eelco Dolstra
1ef6bbb16d
Update release-process.md
2024-01-29 17:12:22 +01:00
Eelco Dolstra
e9c8e859db
Merge pull request #9876 from edolstra/store-settings
...
Don't include store docs in every manpage
2024-01-29 17:01:24 +01:00
Eelco Dolstra
baff34d728
Don't include store docs in every manpage
2024-01-29 16:30:29 +01:00
Eelco Dolstra
f6719032cf
Shut up a gcc warning
2024-01-29 15:22:44 +01:00
Valentin Gagarin
44a0d04483
add missing link ( #9869 )
2024-01-29 05:56:19 +01:00
Robert Hensing
40254092dd
Merge pull request #9770 from hercules-ci/refactor-rename-derivation-isPure
...
Refactor rename derivation type `isPure`
2024-01-27 11:24:20 +01:00
Robert Hensing
9ddd0f2af8
Revert "StorePath: reject names starting with '.'"
...
This reverts commit 24bda0c7b3
.
2024-01-27 11:18:03 +01:00
Robert Hensing
6a99c18c30
doc/glossary: Define impure derivation
2024-01-27 11:00:10 +01:00
Robert Hensing
49b25ea85c
refactor: Impure derivation type isPure -> isImpure
...
To quote the method doc:
Non-impure derivations can still behave impurely, to the degree permitted
by the sandbox. Hence why this method isn't `isPure`: impure derivations
are not the negation of pure derivations. Purity can not be ascertained
except by rather heavy tools.
2024-01-27 11:00:10 +01:00
John Ericson
b83a2fb6dd
Merge pull request #9776 from pennae/parser-refactor
...
Refactor the parser somewhat
2024-01-26 23:56:48 -05:00
John Ericson
365b831e6f
Minor formatting tweaks
2024-01-26 23:11:31 -05:00
John Ericson
4a2444b3f3
Merge pull request #9864 from obsidiansystems/rlim_t-header
...
Add missing `#include` for `rlim_t`
2024-01-26 22:57:42 -05:00
John Ericson
1aec7771d4
Add missing #include
for rlim_t
...
My local build in the shell was failing while CI was fine; not sure why
that is but having the include here is definitely more correct.
Per the POSIX spec, this is where it is supposed to be gotten
https://pubs.opengroup.org/onlinepubs/009695399/basedefs/sys/resource.h.html
2024-01-26 22:34:31 -05:00
John Ericson
1dc55c0f2f
Merge pull request #9861 from 9999years/colored-diff-in-lang-tests
...
Color `diff` output in `tests/functional/lang` tests
2024-01-26 22:31:00 -05:00
John Ericson
efb91d5979
Merge pull request #9860 from 9999years/set-stack-darwin
...
Increase stack size on macOS as well as Linux
2024-01-26 13:35:10 -05:00