aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2024-03-09Merge pull request #9926 from 9999years/fix-cycle-detection-in-nix-repleldritch horrors
Fix cycle detection in `nix repl` (cherry picked from commit e190c20c3394fd1a5cd9be1afc3f30ab32dcd36b) Change-Id: Ie385e781b9f0b7171ca653bcd53a990bb41f9e4b
2024-03-09Minor formatting tweakseldritch horrors
(cherry picked from commit 365b831e6f290c733da6879dae871dada343a1eb) Change-Id: Ife3d269d2f87d6e3fe8a348995019dfc08ac75eb
2024-03-09Update src/libexpr/eval.cceldritch horrors
Co-authored-by: John Ericson <git@JohnEricson.me> (cherry picked from commit 80b84710b8c676620ed1e8bf8ff3bb1d5bc19b80) Change-Id: I128555f1ae13cf0e202f565ee439f698efe12431
2024-03-09don't repeatedly look up ast internal symbolseldritch horrors
these symbols are used a *lot*, so it makes sense to cache them. this mostly increases clarity of the code (however clear one may wish to call the parser desugaring here), but it also provides a small performance benefit. (cherry picked from commit 09a1128d9e2ff0ae6176784938047350d6f8a782) Change-Id: I73d9f66be4555168e048cb2d542277251580c2d1
2024-03-09decouple parser and EvalStateeldritch horrors
there's no reason the parser itself should be doing semantic analysis like bindVars. split this bit apart (retaining the previous name in EvalState) and have the parser really do *only* parsing, decoupled from EvalState. (cherry picked from commit b596cc9e7960b9256bcd557334d81e9d555be5a2) Change-Id: I481a7623afc783e9d28a6eb4627552cf8a780986
2024-03-09slim down parser.yeldritch horrors
most EvalState and Expr members defined here could be elsewhere, where they'd be easier to maintain (not being embedded in a file with arcane syntax) and *somewhat* more faithfully placed according to the path of the file they're defined in. (cherry picked from commit e1aa585964c3d864ebff0030584f3349a539d615) Change-Id: Ibc704567462bb40f37cda05d8fadd465519db5f5
2024-03-09rename ParserState::{makeCurPos -> at}eldritch horrors
most instances of this being used do not refer to the "current" position, sometimes not even to one reasonably close by. it could also be called `makePos` instead, but `at` seems clear in context. (cherry picked from commit 835a6c7bcfd0b22acc16f31de5fc7bb650d52017) Change-Id: I17cab8a6cc14cac5b64624431957bfcf04140809
2024-03-09move ParseData to own header, rename to ParserStateeldritch horrors
ParserState better describes what this struct really is. the parser really does modify its state (most notably position and symbol tables), so calling it that rather than obliquely "data" (which implies being input only) makes sense. (cherry picked from commit 007605616477f4f0d8a0064c375b1d3cf6188ac5) Change-Id: I92feaec796530e1d4d0f7d4fba924229591cea95
2024-03-09make parser utility functions members of ParseDataeldritch horrors
all of them need access to parser state in some way. make them members to allow this without fussing so much. (cherry picked from commit 1b09b80afac27c67157d4b315c237fa7bb9b8d08) Change-Id: I3145c95666a5617b735eff7cb403c54c0fe86347
2024-03-09simplify parse error reportingeldritch horrors
since nix doesn't use the bison `error` terminal anywhere any invocation of yyerror will immediately cause a failure. since we're *already* leaking tons of memory whatever little bit bison allocates internally doesn't much matter any more, and we'll be replacing the parser soon anyway. coincidentally this now also matches the error behavior of URIs when they are disabled or ~/ paths in pure eval mode, duplicate attr detection etc. (cherry picked from commit e8d9de967fe47a7f9324b0022a2ef50df59f419d) Change-Id: I560c50d11dceddc2d7cf9ed2c6c631a309ce574e
2024-03-09remove ParserFormalseldritch horrors
this is a proper subset of Formals anyway, so let's just use those and avoid the extra allocations and moves. (cherry picked from commit f07388bf985c2440413f398cf93d5f5840d1ec8c) Change-Id: I4508c9c9c918cbaaed649dc753eb86f5cafc7ab6
2024-03-09Merge pull request #9754 from 9999years/print-value-when-coercion-failseldritch horrors
Print the value in `error: cannot coerce` messages (cherry picked from commit 5b7bfd2d6b89d7dd5f54c1ca6c8072358d31a84e) === test taken from 6e8d5983143ae576e3f4b1d2954a5267f2943a49; it was added previously (and not backported because its pr was a mostly-revert), but it's useful to have around. Change-Id: Icbd14b55e3610ce7b774667bf14b82e6dc717982
2024-03-09Merge pull request #9818 from Ma27/print-value-on-function-call-type-erroreldritch horrors
libexpr: print value of what is attempted to be called as function (cherry picked from commit 50e5d7b883042852538371237e32a66bb22f0485) Change-Id: I7cb6290bd8f244e83bfce3b2eed2a4c8b4f16a83
2024-03-09Merge pull request #9753 from 9999years/print-value-on-type-erroreldritch horrors
Print the value in `value is X while a Y is expected` error (cherry picked from commit 5f72a97092da6af28a7d2b2a50d74e9d34fae7e1) Change-Id: Idb4bc903ae59a0f5b6fb3b1da4d47970fe0a6efe
2024-03-09Disable bear on all the things with darwin as hostPlatformeldritch horrors
Just `stdenv.isDarwin` isn't enough because it doesn't apply to the build platform, which mean that cross packages building from darwin to another platform will have `isDarwin` set to false. Replace it by `stdenv.buildPlatform.isDarwin`. (cherry picked from commit a0cb75d96f76a3be48b9319e26d8ad78ef4e4525) (h/t jade for finding this one) Change-Id: If3cb74e6feaa5d51de550d9a140c71683c2214cd
2024-03-09Merge pull request #9755 from 9999years/printer-followupeldritch horrors
Printer followup (cherry picked from commit 51f524c629b778b75cb62a9e0c85bae655984abc) Change-Id: I29214cc86c5e846cbcfec382022293a70011b316
2024-03-09Unify and refactor value printingeldritch horrors
Previously, there were two mostly-identical value printers -- one in `libexpr/eval.cc` (which didn't force values) and one in `libcmd/repl.cc` (which did force values and also printed ANSI color codes). This PR unifies both of these printers into `print.cc` and provides a `PrintOptions` struct for controlling the output, which allows for toggling whether values are forced, whether repeated values are tracked, and whether ANSI color codes are displayed. Additionally, `PrintOptions` allows tuning the maximum number of attributes, list items, and bytes in a string that will be displayed; this makes it ideal for contexts where printing too much output (e.g. all of Nixpkgs) is distracting. (As requested by @roberth in https://github.com/NixOS/nix/pull/9554#issuecomment-1845095735) Please read the tests for example output. Future work: - It would be nice to provide this function as a builtin, perhaps `builtins.toStringDebug` -- a printing function that never fails would be useful when debugging Nix code. - It would be nice to support customizing `PrintOptions` members on the command line, e.g. `--option to-string-max-attrs 1000`. (cherry picked from commit 0fa08b451682fb3311fe58112ff05c4fe5bee3a4, ) === Restore ambiguous value printer for `nix-instantiate` The Nix team has requested that this output format remain unchanged. I've added a warning to the man page explaining that `nix-instantiate --eval` output will not parse correctly in many situations. (cherry picked from commit df84dd4d8dd3fd6381ac2ca3064432ab31a16b79) Change-Id: I7cca6b4b53cd0642f2d49af657d5676a8554c9f8
2024-03-08Unindent `print.hh` declarationseldritch horrors
(cherry picked from commit c9125603a535f82cc9a53f47533f0a3d174e7008) Change-Id: I137a272feee7eb42a017f373cbe4705b0e79b7c1
2024-03-08flake.nix: upgrade to nixos-23.11Puck Meerburg
This also bypasses the Objective-C fork safety during tests. Change-Id: I92bf9f911e8a1fbd32eae13255f9a9dabde40b21
2024-03-08flake.nix: remove unused hydraJobsPuck Meerburg
This is in preparation for setting buildbot up to use hydraJobs instead of checks. Change-Id: Ie971e7db3940d9fbb7ed2f53d6429f607e00051f
2024-03-07Merge "Update version to 2.90.0" into mainjade
2024-03-07Update version to 2.90.0Jade Lovelace
Change-Id: Idc844d86a7392790cd86dddd78a38dca036554d4
2024-03-07Merge changes I03bbff94,I778edad1,Iaa80073b,Ib1d58fe4 into maineldritch horrors
* changes: Add release notes Print how many checks are run Print derivation paths Log what `nix flake check` does
2024-03-07Add release noteseldritch horrors
(cherry picked from commit 561a56cd13b4f12e3dfb6c5e3f42e5d8add04ecc) === Modified the release notes' synopsis to make it match its contents, probably a copy-paste. Co-authored-by: Raito Bezarius <raito@lix.systems> Change-Id: I03bbff940b93e7df4b6c2fe9159c49a59ed47b55
2024-03-07Merge pull request #9324 from 9999years/fix-8854-take-2eldritch horrors
Don't attempt to `git add` ignored files (cherry picked from commit 359990dfdc713c80aabd7ea6f7e4528628fbe108) === also added a regression test that isn't upstream to be sure we're actually fixing the bug. Change-Id: I8267a3d0ece9909d8008b7435b90e7b3eee366f6
2024-03-07Merge pull request #9890 from obsidiansystems/remove-unneeded-toRealPatheldritch horrors
Change an `allowPath` call to take a store path again (cherry picked from commit 7c9ed1b1a325fe64a186e9d454607eaa0a7e8951) Change-Id: Ia5ec924315a1f2640a0438cfb4b1ee0689cd3558
2024-03-07Merge pull request #9560 from ↵eldritch horrors
obsidiansystems/serve-proto-unkeyed-valid-path-info-serializer Factor out `ServeProto::Serialiser<UnkeyedValidPathInfo>` and test (cherry picked from commit 139982997eec493a0f74105c427953f6be77da6d) Change-Id: I28e4ba5a681a90d81915a56e6dbaa5456d64f96d
2024-03-07Merge pull request #9032 from Ma27/structured-attrs-env-varseldritch horrors
structured attrs: improve support / usage of NIX_ATTRS_{SH,JSON}_FILE (cherry picked from commit 3c042f3b0b0a7ef9c47bf049f5410dbd4aac9e90) Change-Id: I7e41838338ee1edf31fff6f9e354c3db2bba6c0e
2024-03-07Merge pull request #9676 from DavHau/git-testsuiteeldritch horrors
initialize test suite for git fetchers (cherry picked from commit 0bd9e10aea747df51c8a5af124864c722cbeafde) Change-Id: Idf94a47794190c3e1de07fc4e7848741c4e9ffed
2024-03-07Merge pull request #9631 from cole-h/fixup-check-warningseldritch horrors
Fix warnings when running checks (cherry picked from commit 75e10e42f3c63fd9b9c8cf222b992ab77e497854) Change-Id: Id955008fe045f23f72fae2a2cdf8f7ccddd1e6b9
2024-03-07Print how many checks are runeldritch horrors
(cherry picked from commit d75a5f427a385e56c821fdf49a70a150fe7fe6fd) Change-Id: I778edad1928adf90a69d0bbe8dd36623181b20d4
2024-03-07Print derivation pathseldritch horrors
Also be more consistent with quotes around attribute paths (cherry picked from commit 9404ce36e4edd1df12892089bdab1ceb7d4d7a97) Change-Id: Iaa80073b4a07a6ffef106a3c12ecd02b4f6f67aa
2024-03-07Log what `nix flake check` doeseldritch horrors
There's still room for improvement, but this produces much more informative output with `-v`: ``` $ nix flake check -v evaluating flake... checking flake output 'checks'... checking derivation checks.aarch64-darwin.ghcid-ng-tests... checking derivation checks.aarch64-darwin.ghcid-ng-clippy... checking derivation checks.aarch64-darwin.ghcid-ng-doc... checking derivation checks.aarch64-darwin.ghcid-ng-fmt... checking derivation checks.aarch64-darwin.ghcid-ng-audit... checking flake output 'packages'... checking derivation packages.aarch64-darwin.ghcid-ng... checking derivation packages.aarch64-darwin.ghcid-ng-tests... checking derivation packages.aarch64-darwin.default... checking flake output 'apps'... checking flake output 'devShells'... checking derivation devShells.aarch64-darwin.default... running flake checks... warning: The check omitted these incompatible systems: aarch64-linux, x86_64-darwin, x86_64-linux Use '--all-systems' to check all. ``` (cherry picked from commit 49221493e243c4d10e69e7465a21be53902e16a8) Change-Id: Ib1d58fe48cc82f4801a2ee5f91ba0d5a74907c0b
2024-03-07Merge pull request #9787 from obsidiansystems/bind-proc-syserroreldritch horrors
`bind`: give same treatment as `connect` in #8544, dedup (cherry picked from commit 28674247ec792a981741198abc190a71bb254b82) Change-Id: I1ac5fc43fa10ec5f37a226730c3d84033fdbfd52
2024-03-07Merge pull request #8544 from edolstra/handle-missing-gc-socketeldritch horrors
LocalStore: :addTempRoot(): Handle ENOENT (cherry picked from commit 7115edc85af060ef235ac0270245ab46cc828f7c) Change-Id: Ie6b1596049c3fde09b98f2f0727899f98e48e6b1
2024-03-07Merge pull request #9985 from alois31/symlink-resolutioneldritch horrors
Restore `builtins.pathExists` behavior on broken symlinks (cherry picked from commit d53c8901ef7f2033855dd99063522e3d56a19dab) === note that this variant differs markedly from the source commit because we haven't endured quite as much lazy trees. Change-Id: I0facf282f21fe0db4134be5c65a8368c1b3a06fc
2024-03-07Merge pull request #10074 from lf-/jade/ban-implicit-fallthrougheldritch horrors
Warn on implicit switch case fallthrough (cherry picked from commit 21282c3c204597641402c6bcff8fc9ee7bc31fa1) Change-Id: I5ebbdfb6c037d2c55254f37dd391c07c2ce7443e
2024-03-06Merge "fix: bounds check result in getMaxCPU" into mainjade
2024-03-06fix: bounds check result in getMaxCPUJade Lovelace
Upstream-Bug: https://github.com/NixOS/nix/issues/9725 Upstream-PR: https://github.com/NixOS/nix/pull/10172 Change-Id: I2b8e8b15ee28951be98e5cbe3ccea5b9c8de5994
2024-03-06tests/nixos/remote-builds*: Inline module + formateldritch horrors
(cherry picked from commit 5167351efbee5c5a7390510eb720c31c6976f4d9) Change-Id: I0caba23b589ed428d08895d7b8f0c22532bd259e
2024-03-06tests/nixos: Test remote build against older versionseldritch horrors
(cherry picked from commit e502d1cf945fb3cdd0ca1e1c16ec330ccab51c7b) Change-Id: If6a1758b6457c5dae9305829c4d71d1905cfca22
2024-03-07Merge pull request #9934 from nmeum/absPath-out-of-boundseldritch horrors
absPath: Explicitly check if path is empty before accessing it (cherry picked from commit 6ec08b85f607852eb6f976c1392c4917d0a53787) Change-Id: Ieeb53fb65d0e334e6017ceb3a48b3b6ae1047843
2024-03-07Merge pull request #9604 from obsidiansystems/test-substitute-on-destinationeldritch horrors
Test `nix copy --substitute-on-destination` (cherry picked from commit ed93e51f4b0a8149521e3cf5b4f3ff4eabf5b060) Change-Id: I33f8b591f42acf96fd18f27758dd1141b4bbbb5f
2024-03-06Merge pull request #9280 from R-VdP/rvdp/fix_remote_logging_phase_reportingeldritch horrors
Include phase reporting in log file for ssh-ng builds (cherry picked from commit b1e7d7cad625095656fff05ac4aedeb12135110a) Change-Id: I4076669b0ba160412f7c628ca9113f9abbc8c303
2024-03-07Copy the output of fixed-output derivations before registering themPuck Meerburg
It is possible to exfiltrate a file descriptor out of the build sandbox of FODs, and use it to modify the store path after it has been registered. To avoid that issue, don't register the output of the build, but a copy of it (that will be free of any leaked file descriptor). Test that we can't leverage abstract unix domain sockets to leak file descriptors out of the sandbox and modify the path after it has been registered. (cherry picked from commit 2dadfeb690e7f4b8f97298e29791d202fdba5ca6) (tests cherry picked from commit c854ae5b3078ac5d99fa75fe148005044809e18c) Co-authored-by: Valentin Gagarin <valentin.gagarin@tweag.io> Co-authored-by: Theophane Hufschmitt <theophane.hufschmitt@tweag.io> Co-authored-by: Tom Bereknyei <tomberek@gmail.com> Change-Id: I87cd58f1c0a4f7b7a610d354206b33301e47b1a4
2024-03-05Merge pull request #9634 from 9999years/combine-abstract-pos-and-poseldritch horrors
Combine `AbstractPos`, `PosAdapter`, and `Pos` (cherry picked from commit 113499d16fc87d53b73fb62fe6242154909756ed) === this is a bit cursed because originally it was based on InputAccessor code that we don't have and moved/patched features we likewise don't have (fetchToStore caching, all the individual accessors, ContentAddressMethod). the commit is adjusted accordingly to match (remove caching, ignore accessors, use FileIngestionMethod). note that `state.rootPath . CanonPath == abs` and computeStorePathForPath works relative to cwd, so the slight rewrite in the moved fetchToStore is legal. Change-Id: I05fd340c273f0bcc8ffabfebdc4a88b98083bce5
2024-03-05Merge pull request #9860 from 9999years/set-stack-darwineldritch horrors
Increase stack size on macOS as well as Linux (cherry picked from commit efb91d5979a625d5c50558aeabfd24e802ed9173, 4a2444b3f32a2f5d42c4d65302793b987d1ac667) Change-Id: Ieb72283c61bb9e360683f531d6635697b293c313
2024-03-05Merge pull request #10085 from ShamrockLee/ignore-obsolete-testdireldritch horrors
.gitignore: ignore historical test binaries (cherry picked from commit cd2d8b6d4c3f8cec1a21a4d0a7d1ea626aa2a78e) Change-Id: Ieb01910ab7722df78d8570ca6e408f1de5839fb8
2024-03-05Merge pull request #9608 from NixOS/default-lowdowneldritch horrors
Remove custom lowdown (cherry picked from commit 790cf13c268c7197c276cc02efda4cfe64a3a688) Change-Id: Ie01f9a69e81e793fc7ac869de943da370dc75e36
2024-03-05Merge pull request #9443 from ivan770/reproducibilityeldritch horrors
doc: fix machine-specific capabilities leaking (cherry picked from commit dda0e34ecf16bb1c736d585414122a7e3587db70) Change-Id: I3d07cc5039ee954b215a7a27caa3bf7359d92c26