Eelco Dolstra
3d8fa9f668
Pos::getSnippetUpTo(): Fix warning
2024-07-16 16:34:13 +02:00
Robert Hensing
6c9d62dceb
Doc comments: use std::unordered_map
...
Co-authored-by: Eelco Dolstra <edolstra@gmail.com>
2024-07-16 15:19:39 +02:00
Eelco Dolstra
9c6678da0e
Merge pull request #11092 from DeterminateSystems/hash-SourcePath
...
Use std::unordered_map for the EvalState caches
2024-07-16 11:06:43 +02:00
John Ericson
808082ea03
Ensure we can construct remote store configs in isolation
...
Progress towards #10766
I thought that #10768 achieved, but when I went to use this stuff (in
Hydra), turns out it did not. (Those `using FooConfig;` lines were not
working --- they are so finicky!) This PR gets the job done, and adds
some trivial unit tests to make sure I did what I intended.
I had to add add a header to expose `SSHStoreConfig`, after which the
preexisting `ssh-store-config.*` were very confusingly named files, so I
renamed them to `common-ssh-store-config.hh` to match the type defined
therein.
2024-07-15 17:32:49 -04:00
John Ericson
0feeab755a
Move plugins infra to libnixmain
...
They are not actually part of the store layer, but instead part of the
Nix executable infra (libraries don't need plugins, executables do).
This is part of a larger project of moving all of our legacy settings
infra to libmain, and having the underlying libraries just have plain
configuration structs detached from any settings infra / UI layer.
Progress on #5638
2024-07-15 17:26:03 -04:00
John Ericson
1a273a623f
Inline settings.pluginFiles.name
...
In theory the warning is more noisy now, but in practice this will not
happen unless the client is older than 2.14 (highly unlikely).
2024-07-15 16:50:57 -04:00
Las Safin
846869da0e
Make goals use C++20 coroutines ( #11005 )
...
undefined
2024-07-15 16:49:15 -04:00
Robert Hensing
61a4d3d45c
getSnippetUpTo: Return optional
...
This makes it possible to certain discern failures from empty
snippets, which I think is an ok review comment.
Maybe it should do so for swapped column indexes too, but I'm not
sure.
I don't think it matters in the grand scheme. We don't even have
a real use case for `nullopt` now anyway.
Since we don't have a use case, I'm not applying this logic to
higher level functions yet.
2024-07-15 20:10:45 +02:00
Robert Hensing
03d33703ef
Revert "Use HintFmt for doc comments"
...
Unfortunately these don't render correctly, because they go into the
markdown renderer, instead of the terminal.
```
nix-repl> :doc lib.version
Attribute '[35;1mversion[0m'
… defined at [35;1m/home/user/h/nixpkgs/lib/default.nix:73:40[0m
```
We could switch that to go direct to the terminal, but then we should
do the same for the primops, to get a consistent look.
Reverting for now.
This reverts commit 3413e0338cbee1c7734d5cb614b5325e51815cde.
2024-07-15 19:56:40 +02:00
Robert Hensing
ce31a0457f
Use HintFmt for doc comments
2024-07-15 19:56:40 +02:00
Robert Hensing
6a125e65d0
Revert "Doc comments: use std::unordered_map"
...
hash<SourcePath> isn't implemented yet, and I can't cherry-pick
a bug-free commit yet.
This reverts commit 95529f31e3bbda99111c5ce98a33484dc6e7a462.
2024-07-15 19:56:40 +02:00
Robert Hensing
ac89df815d
libcmd/repl.cc: Explain evalString call and defend
2024-07-15 19:56:40 +02:00
Robert Hensing
21817473e8
Doc comments: use std::unordered_map
...
Co-authored-by: Eelco Dolstra <edolstra@gmail.com>
2024-07-15 19:56:40 +02:00
Robert Hensing
131b6ccc71
nixexpr.hh: Avoid the warning and pragmas
2024-07-15 19:56:40 +02:00
Robert Hensing
6bbd493d49
libcmd/repl-interacter: INT_MAX -> numeric_limits
2024-07-15 19:56:40 +02:00
Robert Hensing
8a855296f5
tests/function/repl: Characterise the missing doc comment behavior
2024-07-15 19:56:40 +02:00
Robert Hensing
71cb8bf509
libexpr: Rename "column" fields to offset
...
... because that's what they are.
2024-07-15 19:56:40 +02:00
Robert Hensing
77e9f9ee82
libexpr: Get rid of unused line tracking fields
2024-07-15 19:56:40 +02:00
Robert Hensing
cef11b23e8
Add missing .sh in _NIX_TEST_ACCEPT=1 message
2024-07-15 19:56:40 +02:00
Robert Hensing
d4f576b0b2
nix repl: Render docs for attributes
2024-07-15 19:56:40 +02:00
Robert Hensing
491b9cf415
Refactor: extract DocComment::getInnerText(PosTable)
2024-07-15 19:56:40 +02:00
Robert Hensing
e68234c4f9
libexpr: Rearrange lexer files so that yylex_init_extra can be found
2024-07-15 19:56:40 +02:00
Robert Hensing
7fae378835
Track doc comments and render them in :doc
2024-07-15 19:56:40 +02:00
Robert Hensing
e5af7cbeb9
libutil: Add Pos::getSnippetUpTo(Pos)
2024-07-15 18:41:11 +02:00
Farid Zakaria
945fff5674
Apply suggestions from code review
...
Add @edolstra suggestion fixes.
Co-authored-by: Eelco Dolstra <edolstra@gmail.com>
2024-07-15 09:12:56 -07:00
Eelco Dolstra
550b3479cf
Include the accessor in the SourcePath hash
2024-07-15 15:46:30 +02:00
Farid Zakaria
a4ce96e5f1
doc: Add comment for fetchurl for name & url
...
fetchurl can be given a name and url aside from just the url.
Giving a name can be useful if the url has invalid characters such as
tilde for the store.
2024-07-14 19:07:18 -07:00
Robert Hensing
7e604f716c
concatStrings: Give compiler access to definition for inlining
...
... at call sites that are may be in the hot path.
I do not know how clever the compiler gets at these sites.
My primary concern is to not regress performance and I am confident
that this achieves it the easy way.
2024-07-14 12:20:45 +02:00
Robert Hensing
97e01107ec
dropEmptyInitThenConcatStringsSep -> concatStringSep: empty separator
...
When the separator is empty, no difference is observable.
Note that concatStringsSep has centralized definitions. This adds the
required definitions. Alternatively, `strings-inline.hh` could be
included at call sites.
2024-07-14 12:10:39 +02:00
Robert Hensing
d40fdb5711
dropEmptyInitThenConcatStringsSep: Update doc and deprecate
2024-07-14 11:50:20 +02:00
Robert Hensing
1c97718146
dropEmptyInitThenConcatStringsSep: Allow it to drop items again
...
It's usually harmless, if it occurs at all.
2024-07-13 03:06:24 +02:00
Robert Hensing
6b2c277c36
dropEmptyInitThenConcatStringsSep -> concatStringSep: sigs are not empty
...
... but if they are, I'd like to see at least a hint of it so that
I'd know to fix it.
2024-07-13 03:06:24 +02:00
Robert Hensing
76b2d5ef3d
dropEmptyInitThenConcatStringsSep -> concatStringSep: PATH handling
...
It's still wrong, but one step closer to correct.
Not that anyone should use "" or "." in their PATH, but that is not
for us to intervene.
2024-07-13 03:06:24 +02:00
Robert Hensing
9ca42d5da2
dropEmptyInitThenConcatStringsSep -> concatStringSep: setting value was already harmed
...
Considering that `value` was probably parsed with tokenizeString
prior, it's unlikely to contain empty strings, and we have no
reason to remove them either.
2024-07-13 03:06:24 +02:00
Robert Hensing
4029426ca8
dropEmptyInitThenConcatStringsSep -> concatStringSep: tokens from tokenizeString are not empty
2024-07-13 03:06:24 +02:00
Robert Hensing
0fe3525223
illegal configuration line -> syntax error in configuration line
...
The law has nothing to do with this, although I do feel like a
badass when I mess with the config.
I'm a conf artist.
2024-07-13 03:06:24 +02:00
Robert Hensing
cf3c5cd189
dropEmptyInitThenConcatStringsSep -> concatStringSep: showVersions version is not empty
2024-07-13 03:06:24 +02:00
Robert Hensing
d9043021df
dropEmptyInitThenConcatStringsSep -> concatStringSep: break nix help "" "" "" build
...
Garbage in, error out. Experimental CLI. Zero derivations given.
2024-07-13 03:06:24 +02:00
Robert Hensing
062672b022
dropEmptyInitThenConcatStringsSep -> concatStringSep: CLI commands are not empty
2024-07-13 03:06:24 +02:00
Robert Hensing
0480bfe50b
dropEmptyInitThenConcatStringsSep -> concatStringSep: do not drop attributes with empty names
...
Empty attributes are probably not well supported, but the least we
could do is leave a hint.
Attribute path rendering and parsing should be done according to
Nix expression syntax in my opinion.
2024-07-13 03:06:24 +02:00
Robert Hensing
4b34feb4c2
dropEmptyInitThenConcatStringsSep -> concatStringSep: system string should not be empty
2024-07-13 03:06:24 +02:00
Robert Hensing
837c3612d4
dropEmptyInitThenConcatStringsSep -> concatStringSep: escaped shell args are never empty
2024-07-13 03:06:24 +02:00
Robert Hensing
3b77f13451
dropEmptyInitThenConcatStringsSep -> concatStringSep: experimental features do not render as empty strings
2024-07-13 03:06:24 +02:00
Robert Hensing
e64643bf63
dropEmptyInitThenConcatStringsSep -> concatStringSep: feature should not be empty
...
(System) features are unlikely to be empty strings, but when they
come in through structuredAttrs, they probably can.
I don't think this means we should drop them, but most likely they
will be dropped after this because next time they'll be parsed with
tokenizeString.
TODO: We should forbid empty features.
2024-07-13 03:06:24 +02:00
Robert Hensing
f1966e22d9
dropEmptyInitThenConcatStringsSep -> concatStringSep: store paths are not empty
2024-07-13 03:06:24 +02:00
Robert Hensing
49d100ba8b
dropEmptyInitThenConcatStringsSep -> concatStringSep: output name empty not feasible
...
I don't think it's completely impossible, but I can't construct
one easily as derivationStrict seems to (re)tokenize the outputs
attribute, dropping the empty output.
It's not a scenario we have to account for here.
2024-07-13 03:06:24 +02:00
Robert Hensing
d3e49ac881
dropEmptyInitThenConcatStringsSep -> concatStringSep: shortRefs are not empty
2024-07-13 03:06:24 +02:00
Robert Hensing
608a425550
dropEmptyInitThenConcatStringsSep -> concatStringSep: diag
2024-07-13 03:06:24 +02:00
Robert Hensing
75dde71ff9
dropEmptyInitThenConcatStringsSep -> concatStringSep: sigs are non-empty
...
The sigs field is produced by tokenizeStrings, which does not return
empty strings.
2024-07-13 03:06:24 +02:00
Robert Hensing
3f37785afd
NIX_REMOTE_SYSTEMS: actually support multiple :-separated entries
...
Bug not reported in 6 years, but here you go.
Also it is safe to switch to normal concatStringsSep behavior
because tokenizeString does not produce empty items.
2024-07-13 03:06:24 +02:00
Robert Hensing
39878c8979
dropEmptyInitThenConcatStringsSep -> concatStringSep: preserve empty attr
...
The empty attribute name should not be dropped from attribute paths.
Rendering attribute paths with concatStringsSep is lossy and wrong,
but this is just a first improvement while dealing with the
dropEmptyInitThenConcatStringsSep problem.
2024-07-13 03:06:24 +02:00
Robert Hensing
ea966a70fc
dropEmptyInitThenConcatStringsSep -> concatStringSep: diagnostics and docs
...
These are non-critical, so their behavior is ok to change.
Dropping empty items is not needed and usually not expected.
2024-07-13 03:06:24 +02:00
Robert Hensing
a681d354e7
Add fresh concatStringsSep without bug
...
The buggy version was previously renamed to
dropEmptyInitThenConcatStringsSep
2024-07-13 03:06:24 +02:00
Robert Hensing
79eb0adf9d
dropEmptyInitThenConcatStringSep: Check that we don't drop...
...
... initial empty strings.
The tests pass, which is encouraging.
2024-07-13 03:05:50 +02:00
Robert Hensing
1a8defd06f
Refactor: rename C++ concatStringsSep -> dropEmptyInitThenConcatStringsSep
2024-07-13 03:05:50 +02:00
John Ericson
bc83b9dc1f
Remove comparator.hh
and switch to <=>
in a bunch of places
...
Known behavior changes:
- `MemorySourceAccessor`'s comparison operators no longer forget to
compare the `SourceAccessor` base class.
Progress on #10832
What remains for that issue is hopefully much easier!
2024-07-12 14:54:18 -04:00
Lexi Mattick
6c4470ec2a
Clean up cache for all commands
2024-07-12 11:54:12 -07:00
Lexi Mattick
e764ed31f6
Eval cache: fix cache regressions
...
- Fix eval cache not being persisted in `nix develop` (since #10570 )
- Don't attempt to commit cache transaction if there is no active transaction, which will spew errors in edge cases
- Drive-by: trivial typo fix
2024-07-12 09:45:35 -07:00
Eelco Dolstra
2a95a2d780
Merge pull request #11091 from NixOS/darwin-no-map-spaceship
...
Remove unused `operator<=>`'s that darwin can't generate
2024-07-12 18:40:20 +02:00
Eelco Dolstra
cdc23b67a6
Provide std::hash<SourcePath>
2024-07-12 17:54:27 +02:00
Robert Hensing
11a6db5993
Remove unused operator<=>'s that darwin can't generate
...
It was complaining *a lot*, with dozens of MB of logs.
2024-07-12 17:37:27 +02:00
John Ericson
337a5a23b7
Merge pull request #11089 from NixOS/warnings-includes
...
Fix warnings and optimize includes
2024-07-12 10:29:26 -04:00
Robert Hensing
27eaeebc41
nar-accessor.cc: Silence unused variable warning
2024-07-12 15:38:17 +02:00
Robert Hensing
8df041cbc6
Solve unused header warnings reported by clangd
2024-07-12 15:37:54 +02:00
John Ericson
3fc77f281e
No global settings in libnixfetchers
and libnixflake
...
Progress on #5638
There are still a global fetcher and eval settings, but they are pushed
down into `libnixcmd`, which is a lot less bad a place for this sort of
thing.
Continuing process pioneered in
52bfccf8d8
.
2024-07-12 08:50:28 -04:00
Robert Hensing
f070d68c32
Add BaseError assignment operators
...
The move assignment was implicitly generated and used in
src/libstore/build/goal.cc:90:22:
90 | this->ex = std::move(*ex);
Clang warns about this generated method being deprecated, so making
them explicit fixes the warning.
2024-07-12 14:25:16 +02:00
Eelco Dolstra
61080554ab
SymbolStr: Remove std::string conversion
...
This refactoring allows the symbol table to be stored as something
other than std::strings.
2024-07-11 17:43:10 +02:00
Eelco Dolstra
87323a5689
Remove unused InstallableFlake::getFlakeOutputs()
2024-07-11 16:21:27 +02:00
Robert Hensing
bb312a7174
Edit CompatibilitySettings
2024-07-11 13:59:49 +02:00
Robert Hensing
56bf39e905
eqValues/assertEqValues: Clean up assertions
...
It's still paranoid, and probably a waste of words, but at least
now it's consistent and readily identifyable from a log.
2024-07-11 12:19:29 +02:00
Robert Hensing
4fd8f19ecf
Fix build to use CanonPath in new FSO sinks
2024-07-11 12:14:48 +02:00
Robert Hensing
86420753ec
Merge remote-tracking branch 'upstream/master' into support-hardlinks-in-tarballs
2024-07-11 11:43:02 +02:00
Robert Hensing
61577402ba
Add EvalErrorBuilder::panic()
...
An nicer alternative to printError + abort, or assert(false /* foo */)
2024-07-11 11:35:58 +02:00
Robert Hensing
c4e3e2dc27
Soft-deprecate the compatibility settings
2024-07-10 16:24:31 +02:00
Robert Hensing
d942d505ca
Merge remote-tracking branch 'upstream/master' into more-nix-shell
2024-07-10 16:19:18 +02:00
Robert Hensing
13522229a9
assertEqValues: clarify potential bug error message
2024-07-10 16:08:10 +02:00
John Ericson
7a6269ba7b
Package the Nix CLI with Meson
...
Co-Authored-By: Qyriad <qyriad@qyriad.me>
2024-07-08 17:49:44 -04:00
John Ericson
f1d88e0f27
Merge pull request #11064 from obsidiansystems/header-generater
...
Use a meson "generator" to deduplicate `.gen.hh` creation
2024-07-08 12:03:59 -04:00
John Ericson
1439de874f
Merge pull request #11063 from obsidiansystems/config-expr
...
Forgot to include `config-expr.hh` in two places
2024-07-08 11:27:57 -04:00
John Ericson
6e5cec292b
Use a meson "generator" to deduplicate .gen.hh
creation
2024-07-08 11:13:11 -04:00
John Ericson
c5284a84f3
Forgot to include config-expr.hh
in some places
2024-07-08 10:37:34 -04:00
Robert Hensing
cfe3ee3de8
nix-shell
: look up shell.nix
when argument is a directory (#11057 )
...
* Refactor: rename runEnv -> isNixShell
* Refactor: rename left -> remainingArgs
* nix-build.cc: Refactor: extract baseDir variable
* nix-build.cc: Refactor: extract sourcePath, resolvedPath variables
* nix-shell: Look for shell.nix when directory is specified
* Add legacy setting: nix-shell-always-looks-for-shell-nix
* rl-next: Add note about shell.nix lookups
* tests/functional/shell.nix: Implement runHook for dummy stdenv
2024-07-08 14:36:36 +02:00
John Ericson
d8850618b6
Merge pull request #11059 from rhendric/rhendric/reference-manual
...
docs: merge builtin-constants into builtins
2024-07-07 21:47:33 -04:00
Ryan Hendrickson
95890b3e1d
docs: merge builtin-constants into builtins
2024-07-07 15:57:23 -04:00
Robert Hensing
a9592077fb
Merge pull request #11055 from NixOS/packaging-for-nixpkgs
...
Indirections for packaging meson-based granular build for Nixpkgs
2024-07-07 21:33:01 +02:00
Robert Hensing
fd4b17ab2c
Merge pull request #11056 from romain-neil/s3-allow-use-of-proxy
...
Configure aws s3 lib to use system defined proxy, if existent
2024-07-07 02:47:24 +02:00
Robert Hensing
63262e78c7
Add opt-out: nix-shell-shebang-arguments-relative-to-script
2024-07-07 00:55:33 +02:00
Robert Hensing
4c59d6e9f5
Merge branch 'nix-shell-lookup-shell-nix' into more-nix-shell
2024-07-07 00:27:07 +02:00
Robert Hensing
6c6d5263e2
Add legacy setting: nix-shell-always-looks-for-shell-nix
2024-07-07 00:25:56 +02:00
Robert Hensing
f5b59fbc64
Fix and extend nix-shell baseDir test
2024-07-07 00:23:22 +02:00
Robert Hensing
8838f5c746
Merge remote-tracking branch 'matthewbauer/nix-shell-relative-shebang' into more-nix-shell
2024-07-07 00:18:03 +02:00
Robert Hensing
b865625a8e
nix-shell: Look for shell.nix when directory is specified
2024-07-06 23:05:34 +02:00
Robert Hensing
32fb127b9c
Add legacy setting: nix-shell-always-looks-for-shell-nix
2024-07-06 23:05:34 +02:00
Romain NEIL
514062c227
feat: configure aws s3 lib to use system defined proxy, if existent
2024-07-06 21:46:58 +02:00
Robert Hensing
76245ffbeb
nix-build.cc: Refactor: extract sourcePath, resolvedPath variables
2024-07-06 20:55:27 +02:00
Robert Hensing
e9479b272f
nix-build.cc: Refactor: extract baseDir variable
2024-07-06 20:51:45 +02:00
Robert Hensing
5c367ece89
Refactor: rename left -> remainingArgs
2024-07-06 20:03:30 +02:00
Robert Hensing
13181356fc
Refactor: rename runEnv -> isNixShell
2024-07-06 20:01:46 +02:00
Robert Hensing
0729f0a113
packaging: Pass version directly
2024-07-06 17:52:57 +02:00
Robert Hensing
efd5f50f5e
nix-perl: Add deps, use mkMesonDerivation
2024-07-06 17:52:57 +02:00