Eelco Dolstra
6b69652385
Merge remote-tracking branch 'origin/master' into coerce-string
2023-01-02 20:53:39 +01:00
Théophane Hufschmitt
8cac451fce
Fix why-depends for CA derivations (again)
...
This has the same goal as b13fd4c58e81b2b2b0d72caa5ce80de861622610,but
achieves it in a different way in order to not break
`nix why-depends --derivation`.
2023-01-02 17:42:22 +01:00
Valentin Gagarin
7797661a70
link "store derivation" to glossary definition
2022-12-21 11:42:50 +01:00
Eelco Dolstra
5c97b5a398
InstallableFlake::toDerivedPaths(): Support paths and store paths
...
This makes 'nix build' work on paths (which will be copied to the
store) and store paths (returned as is). E.g. the following flake
output attributes can be built using 'nix build .#foo':
foo = ./src;
foo = self.outPath;
foo = builtins.fetchTarball { ... };
foo = (builtins.fetchTree { .. }).outPath;
foo = builtins.fetchTree { .. } + "/README.md";
foo = builtins.storePath /nix/store/...;
Note that this is potentially risky, e.g.
foo = /.;
will cause Nix to try to copy the entire file system to the store.
What doesn't work yet:
foo = self;
foo = builtins.fetchTree { .. };
because we don't handle attrsets with an outPath attribute in it yet,
and
foo = builtins.storePath /nix/store/.../README.md;
since result symlinks have to point to a store path currently (rather
than a file inside a store path).
Fixes #7417 .
2022-12-20 15:11:44 +01:00
Eelco Dolstra
845fc3f605
Merge toDerivations() into toDerivedPaths()
...
toDerivedPaths() now returns DerivedPathWithInfo, which is DerivedPath
with some attributes needed by 'nix profile' etc.
Preparation for #7417 .
2022-12-20 14:24:14 +01:00
Eelco Dolstra
8332ac6a1d
Merge pull request #7451 from edolstra/abstract-pos
...
Introduce AbstractPos
2022-12-20 12:55:13 +01:00
Eelco Dolstra
46b3c026fc
Merge pull request #7455 from rapenne-s/documentation_fix
...
Add anchors and links to definition
2022-12-13 17:26:52 +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
Solène Rapenne
e43b0f5b12
documentation: link flake URL term to definition
2022-12-13 11:47:38 +01:00
Solène Rapenne
ae27181f16
documentation: fix link to definition
2022-12-13 11:47:22 +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
John Ericson
5273cf4c97
Merge remote-tracking branch 'upstream/master' into indexed-store-path-outputs
2022-12-12 17:40:49 -05:00
John Ericson
dabb03b8d0
Merge remote-tracking branch 'upstream/master' into indexed-store-path-outputs
2022-12-12 17:36:02 -05:00
Eelco Dolstra
7a85199f87
Add docs from the lazy-trees branch
2022-12-12 14:06:13 +01: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
John Ericson
1879c7c95e
Merge branch 'master' into indexed-store-path-outputs
2022-12-12 07:33:36 -05:00
Eelco Dolstra
e558e089ba
-I description: Use -I examples
2022-12-12 12:51:23 +01:00
Eelco Dolstra
037d5c4299
Manual improvements
...
Co-authored-by: Valentin Gagarin <valentin.gagarin@tweag.io>
2022-12-12 12:43:44 +01:00
Eelco Dolstra
703d863a48
Trivial changes from the lazy-trees branch
2022-12-07 14:06:34 +01:00
Eelco Dolstra
fbc53e97ed
Merge pull request #3600 from NixOS/auto-uid-allocation
...
Automatic UID allocation
2022-11-29 14:01:42 +01:00
Naïm Favier
9b35cc716b
use logger->cout
...
in order to avoid potential problems with the progress bar
Co-authored-by: Eelco Dolstra <edolstra@gmail.com>
2022-11-28 14:59:06 +01:00
Naïm Favier
04ec157517
repl: print a newline on ctrl-D
2022-11-28 10:38:23 +01:00
John Ericson
26534f141c
Merge branch 'master' into indexed-store-path-outputs
2022-11-25 08:14:32 -05:00
Eelco Dolstra
f0baa5c128
nix build --json: Include build statistics
...
Example:
# nix build -L --extra-experimental-features cgroups --impure --expr 'with import <nixpkgs> {}; runCommand "foo" {} "dd if=/dev/urandom bs=1M count=1024 | md5sum; mkdir $out"' --json
[
{
"cpuSystem": 1.911431,
"cpuUser": 1.214249,
"drvPath": "/nix/store/xzdqz67xba18hljhycp0hwfigzrs2z69-foo.drv",
"outputs": {
"out": "/nix/store/rh9mc9l2gkpq8kn2sgzndr6ll7ffjh6l-foo"
},
"startTime": 1669024076,
"stopTime": 1669024079
}
]
2022-11-21 12:06:01 +01:00
Eelco Dolstra
653b32a78f
Merge remote-tracking branch 'origin/master' into auto-uid-allocation
2022-11-21 11:33:23 +01:00
Eelco Dolstra
300753d594
nix build --json: Include build statistics
...
Example:
# nix build -L --extra-experimental-features cgroups --impure --expr 'with import <nixpkgs> {}; runCommand "foo" {} "dd if=/dev/urandom bs=1M count=1024 | md5sum; mkdir $out"' --json
[
{
"cpuSystem": 1.911431,
"cpuUser": 1.214249,
"drvPath": "/nix/store/xzdqz67xba18hljhycp0hwfigzrs2z69-foo.drv",
"outputs": {
"out": "/nix/store/rh9mc9l2gkpq8kn2sgzndr6ll7ffjh6l-foo"
},
"startTime": 1669024076,
"stopTime": 1669024079
}
]
2022-11-21 10:49:01 +01:00
Eelco Dolstra
20f66c6889
Indentation
2022-11-18 13:40:48 +01:00
Théophane Hufschmitt
62960f3291
Merge pull request #7134 from yorickvP/disable-dbg-on-complete
...
Temporarily disable the debugger during completion evaluation
2022-11-16 11:28:40 +01:00
Théophane Hufschmitt
60dea270d0
Swallow the error in a more idiomatic way
2022-11-16 10:34:32 +01:00
Et7f3
efadeee8fd
build: use pkg-config for lowdown
2022-11-12 23:04:58 +01:00
Yorick
16f1720fd2
SourceExprCommand: swallow EvalError, add tests for this
...
Completing things that would error would print an ugly error in
the middle of your command line. Avoid printing this error.
2022-11-03 10:11:28 +01:00
Yorick
444af85552
Temporarily disable the debugger during completion evaluation
...
readline is not re-entrant, so entering the debugger from the
completioncallback results in an eventual segfault.
The workaround is to temporarily disable the debugger when searching
for possible completions.
2022-11-02 13:02:24 +01:00
John Ericson
13f2a6f38d
Merge branch 'master' into indexed-store-path-outputs
2022-10-28 23:22:18 +01:00
Michal Sojka
a9a868fe6a
Improve --profile description
...
The description of the --profile option talks about the "update" operation.
This is probably meant for operations such as "nix profile install", but the
same option is reused in other subcommands, which do not update the profile,
such as "nix profile {list,history,diff-closures}".
We update the description to make sense in both contexts.
2022-10-24 08:49:46 +02:00
Graham Bennett
c5fd34a14e
Build with C++20
2022-10-22 14:24:25 +01:00
Guillaume Maudoux
3f9f6ae127
Merge remote-tracking branch 'origin/master' into coerce-string
2022-10-16 20:39:19 +02:00
Eelco Dolstra
59a304a9a8
Fix clang warnings
2022-10-13 11:25:49 -07:00
Eelco Dolstra
eba610956b
Move some options into a misc category
...
This unclutters the per-command options a bit by moving out some
global options.
2022-10-12 15:09:17 +02:00
Alyssa Ross
d234d01f01
nix repl: warn if creating dir for history fails
...
The history is not critical to the functionality of nix repl, so it's
enough to warn here, rather than refuse to start if the directory Nix
thinks the history should live in can't be created.
2022-09-20 11:01:40 +00:00
Guillaume Maudoux
eb460a9529
WIP: broken merge but need a git checkpoint
2022-09-07 00:34:03 +02:00
Eelco Dolstra
1f2b12b30e
Merge pull request #6968 from fricklerhandwerk/man-no-weblinks
...
do not render relative links in help pages
2022-08-29 08:46:35 +02:00
Valentin Gagarin
e7dcacbd7c
do not render relative links in help pages
...
this simplifies the setup a lot, and avoids weird looking `./file.md`
links showing up.
it also does not show regular URLs any more. currently the command
reference only has few of them, and not showing them in the offline
documentation is hopefully not a big deal.
instead of building more special-case solutions, clumsily preprocessing
the input, or issuing verbal rules on dealing with URLs, should better
be solved sustainably by not rendering relative links in `lowdown`:
https://github.com/kristapsdz/lowdown/issues/105
2022-08-26 17:10:41 +02:00
Eelco Dolstra
0d2163c6dc
nix repl: Stop the progress bar
...
The repl was broken since c3769c6846
. In
general, the progress bar is incompatible with the repl.
2022-08-22 14:27:36 +02:00
Eelco Dolstra
3d4489b623
Show when we're evaluating a flake
2022-08-17 11:31:27 +02:00
John Ericson
279ecf7cde
Remove computed-derivations
experimental feature
...
We don't need it yet.
2022-07-15 13:42:17 +00:00
John Ericson
f3262bc216
Combine InstallableStorePath
with InstallableIndexedStorePath
...
No behavior should be changed, the `isDerivation` logic is moved from
the methods to the constructor.
2022-07-14 19:37:55 -04:00
John Ericson
6cafe308c9
Merge remote-tracking branch 'upstream/master' into indexed-store-path-outputs
2022-07-14 16:15:37 -04:00
Théophane Hufschmitt
f071eb3702
Merge pull request #6693 from ncfavier/complete-flake-inputs
...
Improve shell completion of flake inputs
2022-07-12 09:12:00 +02:00
Ben Burdette
cdcc349072
Merge branch 'master' into ignore-try
2022-07-11 11:29:22 -06:00
Ben Burdette
a3629ab0cc
move ignore-try to EvalSettings
2022-07-11 10:47:09 -06:00
Naïm Favier
711b2e1f48
Fix flake input completion for InstallablesCommand
s
...
Defers completion of flake inputs until the whole command line is parsed
so that we know what flakes we need to complete the inputs of.
Previously, `nix build flake --update-input <Tab>` always behaved like
`nix build . --update-input <Tab>`.
2022-07-11 15:13:51 +02:00
Théophane Hufschmitt
4c8210095e
Merge pull request #6233 from flox/nix-repl-flakes
...
Nix repl flakes
2022-06-29 17:59:22 +02:00
Théophane Hufschmitt
3b18058969
Merge pull request #6674 from virusdave/dnicponski/scratch/dont_capture_stdout_in_nix_repl_master
...
Don't capture `stdout` when launching subshells in `nix repl`
2022-06-29 17:54:41 +02:00
Dave Nicponski
c6f7726f48
Don't capture stdout when launching subshells in nix repl
2022-06-23 22:45:13 -04:00
Naïm Favier
d6d0e781bb
Complete flake inputs for all given flakes
...
Allow `nix build flake1 flake2 --update-input <Tab>` to complete the
inputs of both flakes.
Also do tilde expansion so that `nix build ~/flake --update-input <Tab>`
works.
2022-06-20 04:17:13 +02:00
Théophane Hufschmitt
7e301fd74e
Merge pull request #6620 from maralorn/fix-print-missing
...
respect print-missing variable in new-style build command
2022-06-16 13:23:15 +02:00
Tom Bereknyei
51268ceb79
Merge branch 'master' into nix-repl-flakes
2022-06-15 09:17:03 -04:00
Eelco Dolstra
798efdf10b
Merge pull request #6027 from Ma27/pure-repl
...
repl: `--option pure-eval true` actually enables pure eval mode
2022-06-13 16:11:46 +02:00
Yuriy Taraday
65d09fce22
Mention that -f implies --impure for eval in docs
...
Right now this is not mentioned anywhere and it is unexpected.
2022-06-10 19:16:17 +04:00
Malte Brandy
bf2f25e3d8
respect print-missing variable in new-style build command
...
Currently nix-build prints the "printMissing" information by default,
nix build doesn’t.
People generally don‘t notice this because the standard log-format of
nix build would not display the printMissing
output long enough to perceive the information.
This addresses https://github.com/NixOS/nix/issues/6561
2022-06-06 21:15:31 +02:00
Tom Bereknyei
ffd41d1757
Merge branch 'master' into nix-repl-flakes
2022-06-02 16:58:35 -04:00
John Ericson
b585548dfe
Merge remote-tracking branch 'upstream/master' into indexed-store-path-outputs
2022-06-02 19:53:11 +00:00
Ben Burdette
9151dbff88
ignore-try flag
2022-06-02 10:26:46 -06:00
Maximilian Bosch
159b5815b5
repl: --option pure-eval true
actually enables pure eval mode
...
To quote Eelco in #5867 :
> Unfortunately we can't do
>
> evalSettings.pureEval.setDefault(false);
>
> because then we have to do the same in main.cc (where
> pureEval is set to true), and that would allow pure-eval
> to be disabled globally from nix.conf.
Instead, a command should specify that it should be impure by
default. Then, `evalSettings.pureEval` will be set to `false;` unless
it's overridden by e.g. a CLI flag.
In that case it's IMHO OK to be (theoretically) able to override
`pure-eval` via `nix.conf` because it doesn't have an effect on commands
where `forceImpureByDefault` returns `false` (i.e. everything where pure
eval actually matters).
Closes #5867
2022-05-31 22:20:11 +02:00
Eelco Dolstra
8e8e9d8705
Respect the outputSpecified attribute
...
E.g. 'nix build nixpkgs#libxml2.dev' will build the 'dev' output.
2022-05-30 11:34:47 +02:00
Ben Burdette
9068d32e12
remove parens from repl help
2022-05-25 12:55:58 -06:00
Ben Burdette
9a5ea6c359
Merge branch 'master' into debug-exploratory-PR
2022-05-25 10:41:10 -06:00
Ben Burdette
b4c24a29c6
back to ref<EvalState> in NixRepl
2022-05-25 10:21:20 -06:00
Eelco Dolstra
91b7d5373a
Style tweaks
2022-05-25 12:32:22 +02:00
Ben Burdette
ba035f7dd0
comment
2022-05-23 10:13:47 -06:00
Ben Burdette
13d02af079
remove redundant 'debugMode' flag
2022-05-22 21:45:24 -06:00
Ben Burdette
7ccb2700c0
comments
2022-05-22 19:15:58 -06:00
Ben Burdette
5bc97fdfa6
change state derefs
2022-05-22 19:12:03 -06:00
Ben Burdette
34ffaa9f57
changning repl to use EvalState& instead of ref
2022-05-22 18:57:45 -06:00
Ben Burdette
884d591787
debugRepl ftn pointer
2022-05-20 10:33:50 -06:00
tomberek
542e36c6e7
Apply suggestions from code review
...
Co-authored-by: Eelco Dolstra <edolstra@gmail.com>
2022-05-20 01:48:24 -04:00
Ben Burdette
0600df86b8
'debugMode'
2022-05-19 17:01:23 -06:00
Ben Burdette
7ddef73d02
de-const evalState exceptions
2022-05-19 12:44:40 -06:00
Ben Burdette
f9cdb6af8d
Merge branch 'debug-exploratory-PR' into debuggerHook-eval-arg
2022-05-19 11:07:18 -06:00
Ben Burdette
357fb84dba
use an expr->StaticEnv table in evalState
2022-05-19 10:48:10 -06:00
Tom Bereknyei
e1f308a1ec
repl: provide backward compat with legacy usage
2022-05-18 22:28:15 -04:00
Tom Bereknyei
5640b52834
repl: use installables
2022-05-18 21:20:59 -04:00
Tom Bereknyei
81567a0962
repl: allow loading installables from CLI
...
repl: search installable with findAlongAttrPath
repl: refactor handling of args
repl: temp
2022-05-18 21:20:59 -04:00
Ben Burdette
667074b586
first whack at passing evalState as an arg to debuggerHook.
2022-05-16 09:20:51 -06:00
Eli Kogan-Wang
27d0f6747d
resolve redundant priority passing, wrap NixInt in eval-cache variant
2022-05-16 15:17:35 +02:00
Ben Burdette
6faa56ea1f
remove extra argument
2022-05-15 12:05:34 -06:00
Eli Kogan-Wang
be2b19041e
Integrate review changes
2022-05-13 22:02:28 +02:00
John Ericson
49ad315c03
Use ^
not !
in indexed store derivations installable syntax
...
Match the other syntax that was recently added
2022-05-12 20:10:02 +00:00
John Ericson
b18720ee17
Merge remote-tracking branch 'upstream/master' into indexed-store-path-outputs
2022-05-12 19:13:33 +00:00
Ben Burdette
7cd7c7c91a
Merge branch 'master' into debug-exploratory-PR
2022-05-09 09:30:44 -06:00
Eelco Dolstra
b470218d9a
renderMarkdownToTerminal(): Avoid line overflow
...
Lowdown doesn't respect '.cols' exactly (maybe because of the
whitespace in front of each line), so adjust .cols a bit.
2022-05-06 13:14:49 +02:00
Ben Burdette
99d69ac23f
fix repl bug
2022-05-05 21:23:03 -06:00
Ben Burdette
dea998b2f2
traceable_allocator
2022-05-05 20:26:10 -06:00
Ben Burdette
ce304d0154
rename debug commands to be more gdb-like; hide them except in debug mode
2022-05-05 15:24:57 -06:00
Eelco Dolstra
dd8b91eebc
Style fixes
...
In particular, use std::make_shared and enumerate(). Also renamed some
fields to fit naming conventions.
2022-05-05 17:17:03 +02:00
Eelco Dolstra
c98648bef0
Merge remote-tracking branch 'origin/master' into debug-exploratory-PR
2022-05-04 14:10:21 +02:00
Alain Zscheile
1385b20078
Get rid of most .at
calls ( #6393 )
...
Use one of `get` or `getOr` instead which will either return a null-pointer (with a nicer error message) or a default value when the key is missing.
2022-05-04 07:44:32 +02:00
Eelco Dolstra
4a79cba511
Allow selecting derivation outputs using 'installable!outputs'
...
E.g. 'nixpkgs#glibc^dev,static' or 'nixpkgs#glibc^*'.
2022-05-03 13:43:52 +02:00
Ben Burdette
c81ffa692e
remove 'libnix'
2022-04-29 11:35:50 -06:00