Commit Graph
15707 Commits
Author SHA1 Message Date
Tom Hubrecht 4ea0f70b8b primops: Explicit registering of primops
Change-Id: I05e72d2bfdc715d9e27cc672ac35619310b0864d
2024-05-30 12:57:17 +02:00
Tom Hubrecht 772cd6f2a1 primops.cc: cleanup
Change-Id: Iae0580e8f44988b8452aef77e67ca2495c342bf6
2024-05-30 12:57:17 +02:00
Tom Hubrecht c99e7a3875 primops: Move addErrorContext to primops/context.cc
Also refactor the file to sort the builtins and add the implementation
of EvalState::realiseContext

Change-Id: I518425316c56fc628d62d14d3718f20b87b6dd39
2024-05-30 12:56:04 +02:00
Tom Hubrecht 34b902ecf4 primops: Move toXML to primops/toXML.cc
Change-Id: I8da29345903015e38b9832f0d9b4011dc5bbb17b
2024-05-30 12:56:04 +02:00
Tom Hubrecht e7f9976e57 primops: Move functions to primops/json.cc
Moved builtins: fromJSON, toJSON

Change-Id: I3ae74a42bd036203b24b39fbd6b346f56d3812f3
2024-05-30 12:56:04 +02:00
Tom Hubrecht e8a71c4a86 primops: Move functions to primops/system.cc
Moved builtins: exec, getEnv

Change-Id: Ie1b64e4ea8c71f5f64a80ab890a467f5194b884c
2024-05-30 12:56:04 +02:00
Tom Hubrecht bfabc94579 primops: Move functions to primops/debug.cc
Moved builtins: deepSeq, seq, trace, unsafeGetAttrPos

Change-Id: I95cfaf2487fde61256f506e0d7254c5a0b32b1a3
2024-05-30 12:56:04 +02:00
Tom Hubrecht 2b91c1dc11 primops: Move genericClosure to attrset.cc
Change-Id: I0f8ae3dfcc1a4e4ce6e631e13e5b63ac03c1cd74
2024-05-30 12:56:04 +02:00
Tom Hubrecht db1c6764fa primops: Move derivationStrict to primops/derivation.cc
Change-Id: I778c85b8429ccc3af01e45ea608543d67414864f
2024-05-30 12:56:04 +02:00
Tom Hubrecht 58529ddfdd primops: Move functions to primops/path.cc
Moved builtins: dirOf, filterSource, findFile, outputOf, path,
pathExists, placeholder, toPath, readDir, readFile, readFileType,
storePath, toFile

realisePath has also been moved

Change-Id: Ie30efc61ca530ececedf3d3002a9553d2e8a9c60
2024-05-30 12:56:04 +02:00
Tom Hubrecht c5afc50ddb primops: Move functions to primops/import.cc
Moved builtins: import, importNative, scopedImport

Change-Id: I7c525a03f877ad4a6586e055b37f8e4db51ad721
2024-05-30 12:56:04 +02:00
Tom Hubrecht 24bbc4ffc5 primops: Move functions to primops/types.cc
Moved builtins: functionArgs, isAttrs, isBool, isFloat, isFunction,
isInt, isList isNull, isPath, isString, typeOf

A generic prim_isType(type) is defined to factorise the same code

Change-Id: Ic9941a60802cb4c067482261ba35022075f1ea88
2024-05-30 12:56:04 +02:00
Tom Hubrecht 2d91634e77 primops: Move functions to primops/arithmetic.cc
Moved builtins: add, bitAnd, bitOr, bitXor, ceil, div, floor, mul, sub

Change-Id: Ia144579ee219fab751281157a5a3d73a4aa9ee40
2024-05-30 12:56:04 +02:00
Tom Hubrecht b1740b4819 primops: Move functions to primops/list.cc
Moved builtins: all, any, concatLists, concatMap, elem, elemAt, filter,
foldl', head, length, listToAttrs, map, partition, sort, tail

The CompareValues struct has been moved to primops.hh

Change-Id: Ifc5457298215fd20c96aa8acac65749ed42c28dd
2024-05-30 12:56:03 +02:00
Tom Hubrecht 25bf9ff70f primops: Move functions to primops/hash.cc
Moved builtins: hashFile, hashString

The function realisePath has also been declared in primops.hh

Change-Id: I295c2f1964b0496e449f4e23f0299ce972bbca04
2024-05-30 12:56:03 +02:00
Tom Hubrecht 8246a46327 primops: Move functions to primops/string.cc
Moved builtins: baseNameOf, compareVersions, concatStringsSep, match,
parseDrvName, replaceStrings, split, splitVersion, stringLength,
substring, toString

Change-Id: I0daf1eb5263fbadcfe4917a4bf017be0ac9bf939
2024-05-30 12:56:03 +02:00
Tom Hubrecht cbf0ede611 primops: Move functions to primops/control.cc
Moved builtins: abort, break, throw, tryEval

Change-Id: I6198b201325a7029cf011b868f87bef7f4272f8a
2024-05-30 12:56:03 +02:00
Tom Hubrecht 04128337b0 primops: Move functions to primops/attrset.cc
Moved builtins: attrNames, attrValues, catAttrs, getAttr, groupBy,
hasAttr, intersectAttrs, mapAttrs, removeAttrs, zipAttrsWith

Change-Id: I55e2c9ef40ece5ba5bf4a96cae655f481d0b140b
2024-05-30 12:56:03 +02:00
Maximilian BoschandGerrit Code Review ce82067566 Merge "libutil/args: warn on unknown settings after parsing all flags" into main 2024-05-30 09:24:14 +00:00
Qyriadandjade 2760818f06 package: fix derivation correctness when static
Change-Id: I394bb72d9f378cd78acc6cf67a9bb15e342d57c4
2024-05-30 04:21:57 +00:00
Qyriad eac3546d50 package: return from shellHook correctly
If our shellHook is being run from a nested nix-shell (see 7a12bc200¹),
then (I think) it is run from a bash function due to the nesting, then
`return` is correct. If its `eval`'d though, then there isn't really a
correct way to early exit. So we can just unconditionally be executed in
a function.

Basically, we have IIFE at home.

[1]: 7a12bc2007

Change-Id: Iacad25cbbf66cde2911604e6061e56ad6212af7e
2024-05-30 04:21:57 +00:00
Qyriad 68937f2b64 package: dequalify {host,build}Platform for convenience
Change-Id: I5ffeac894a5bff101683cf3d566c63b478779962
2024-05-30 04:21:47 +00:00
Cole HelblingandMaximilian Bosch 031d924116 libutil/args: warn on unknown settings after parsing all flags
Upstream change: https://github.com/NixOS/nix/pull/10701

Change-Id: Icf271df57ec529dd8c64667d1ef9f6dbf02d33d3
2024-05-30 03:07:21 +00:00
QyriadandGerrit Code Review 218630a241 Merge "docs: enable non-default TOC folding" into main 2024-05-30 02:45:44 +00:00
jadeandGerrit Code Review 562ff516ab Merge changes from topic "libutil-split" into main
* changes:
  util.hh: Delete remaining file and clean up headers
  util.hh: Move nativeSystem to local-derivation-goal.cc
  util.hh: Move stuff to types.hh
  util.cc: Delete remaining file
  util.{hh,cc}: Move ignoreException to error.{hh,cc}
  util.{hh,cc}: Split out namespaces.{hh,cc}
  util.{hh,cc}: Split out users.{hh,cc}
  util.{hh,cc}: Split out strings.{hh,cc}
  util.{hh,cc}: Split out unix-domain-socket.{hh,cc}
  util.{hh,cc}: Split out child.{hh,cc}
  util.{hh,cc}: Split out current-process.{hh,cc}
  util.{hh,cc}: Split out processes.{hh,cc}
  util.{hh,cc}: Split out file-descriptor.{hh,cc}
  util.{hh,cc}: Split out file-system.{hh,cc}
  util.{hh,cc}: Split out terminal.{hh,cc}
  util.{hh,cc}: Split out environment-variables.{hh,cc}
2024-05-30 02:33:05 +00:00
Qyriad afeaa2371c docs: enable non-default TOC folding
Folding by default would prevent things like "Ctrl+F for nix-env" from
working trivially, but the user should be able to fold if they want to.

Change-Id: I5273272289f0f24e1f040c691580acfe33f66bd4
2024-05-30 00:23:01 +00:00
Mario RodasandGerrit Code Review c71f21da3a Merge "tests: fix functional-timeout" into main 2024-05-29 23:57:49 +00:00
eldritch horrors dd4a2c1759 libstore: fix http abuses no longer working
while refactoring the curl wrapper we inadvertently broken the immutable
flake protocol, because the immutable flake protocol accumulates headers
across the entire redirect chain instead of using only the headers given
in the final response of the chain. this is a problem because Some Known
Providers Of Flake Infrastructure set rel=immutable link headers only in
the penultimate entry of the redirect chain, and curl does not regard it
as worth returning to us via its response header enumeration mechanisms.

fixes https://git.lix.systems/lix-project/lix/issues/358

Change-Id: I645c3932b465cde848bd6a3565925a1e3cbcdda0
2024-05-29 22:35:29 +00:00
Tom Hubrecht a39ba22ff7 util.hh: Delete remaining file and clean up headers
Change-Id: Ic1f68e6af658e94ef7922841dd3ad4c69551ef56
2024-05-29 12:38:51 +02:00
Tom Hubrecht f0eb650ee8 util.hh: Move nativeSystem to local-derivation-goal.cc
Change-Id: I74565fbfd3aeedef8f50465808fac712b84e47ad
2024-05-29 11:42:42 +02:00
Tom Hubrecht d73c40ff3d util.hh: Move stuff to types.hh
Change-Id: Ia852306a4b8aac6856dc42bc69e4b58b53a0d67c
2024-05-29 11:42:42 +02:00
Tom Hubrecht 74513483bc util.cc: Delete remaining file
Change-Id: I2b47848904f2ce7bd78b83738e99a4c9da627751
2024-05-29 11:42:42 +02:00
Tom Hubrecht 93ebb3e7df util.{hh,cc}: Move ignoreException to error.{hh,cc}
Change-Id: Iae6464217a55c313a983e5c651b26a4a1e446706
2024-05-29 11:42:42 +02:00
Tom Hubrecht 8b6d2d3915 util.{hh,cc}: Split out namespaces.{hh,cc}
Change-Id: I8fd3f3b50c15ede29d489066b4e8d99c2c4636a6
2024-05-29 11:41:16 +02:00
Tom Hubrecht f79ee66646 util.{hh,cc}: Split out users.{hh,cc}
Change-Id: I1bd92479a2cb7e5c2c2e1541b80474adb05ea0df
2024-05-29 11:01:34 +02:00
Tom Hubrecht b910551120 util.{hh,cc}: Split out strings.{hh,cc}
Change-Id: I4f642d1046d56b5db26f1b0296ee16a0e02d444a
2024-05-29 11:01:34 +02:00
Tom Hubrecht 5b5a75979a util.{hh,cc}: Split out unix-domain-socket.{hh,cc}
Change-Id: I3f9a628e0f8998b6146f5caa8ae9842361a66b8b
2024-05-29 11:01:34 +02:00
Tom Hubrecht e81ed5f12d util.{hh,cc}: Split out child.{hh,cc}
Change-Id: Iec4824e071f537b17dd62dbb8c01b8eec14e9783
2024-05-29 11:01:34 +02:00
Tom Hubrecht 2473e1253d util.{hh,cc}: Split out current-process.{hh,cc}
Change-Id: I77095b9d37e85310075bada7a076ccd482c28e47
2024-05-29 11:01:34 +02:00
Tom Hubrecht 9a52e4688c util.{hh,cc}: Split out processes.{hh,cc}
Change-Id: I39280dc40ca3f7f9007bc6c898ffcf760e2238b7
2024-05-29 11:01:34 +02:00
Tom Hubrecht 8cd9aa24a8 util.{hh,cc}: Split out file-descriptor.{hh,cc}
Change-Id: I0dd0f9a9c2003fb887e076127e7f825fd3289c76
2024-05-29 09:54:47 +02:00
Tom Hubrecht 6b5078c815 util.{hh,cc}: Split out file-system.{hh,cc}
Change-Id: Ifa89a529e7e34e7291eca87d802d2f569cf2493e
2024-05-29 09:54:47 +02:00
Tom Hubrecht 81bdf8d2d6 util.{hh,cc}: Split out terminal.{hh,cc}
Change-Id: I9de2296b4012d50f540124001d54d6ca3be4c6da
2024-05-29 09:54:47 +02:00
terruandGerrit Code Review 71b32bb87c Merge "package: don't run shellHook in nested nix-shells" into main 2024-05-28 10:01:37 +00:00
Tom Hubrecht 6fd6795bc4 util.{hh,cc}: Split out environment-variables.{hh,cc}
Change-Id: Icff0aa33fda5147bd5dbe256a0b9d6a6c8a2c3f6
2024-05-28 11:29:29 +02:00
Mario Rodas ec5f025ec2 tests: fix functional-timeout
grepQuietInvert is a typo introduced by c11836126b.

The test functional-timeout was failing silently because Bash considered
the command-not-found error as truthy.

Change-Id: Ic13829d02ec55d6ecd63a0f4d34ec0d32379609f
2024-05-28 04:20:00 +00:00
stuebinm 7a12bc2007 package: don't run shellHook in nested nix-shells
If a nested nix-shell is run inside a nix-shell, then the outer shell's
shellHook will be passed through and run again, unless the nested shell
defines its own.

With lix's hook, this can be annoying: forgetting to exit its nix-shell,
cd'ing to another repository & entering a nested nix-shell will happily
install lix's pre-commit hook in it.

This change makes lix's hook return early in such cases.

Change-Id: I91cb6eb6668f3a8eace36ecbdb01eb367861d77b
2024-05-27 22:09:57 +02:00
stuebinm 0b91a4b0ec shell.nix: conform to documentation
According to doc/manual/src/contributing/hacking.md, all development
shells should also be available in classic nix using the -A argument
to nix-shell, e.g.

  nix-shell -A native-clangStdenvPackages

This was not actually the case; flake-compat generates attrsets like

  nix-shell -A devShells.x86_64-linux.native-clangStdenvPackages

instead. These are unwieldy to use, so rather than changing the docs,
this changes the shell.nix file to result in the documented behavior.

Change-Id: I0920ccbdfddacf371f0aeaae7e290db65cf76ee7
2024-05-27 16:47:40 +02:00
QyriadandGerrit Code Review 2cd1ef2201 Merge "libfetchers: fix URL logging" into main 2024-05-27 14:20:15 +00:00
QyriadandGerrit Code Review ec5039653d Merge "Revert "bump the extra --version info from info to notice, -vv -> -v"" into main 2024-05-26 21:51:05 +00:00