Robert Hensing
9dd71d8c50
Merge pull request #165956 from ncfavier/lib-warn-throw
...
lib/trivial: actually expose warnIfNot and throwIf
2022-03-28 14:07:53 +02:00
Naïm Favier
9f5796be49
lib/trivial: actually expose warnIfNot and throwIf
2022-03-27 16:48:33 +02:00
Sandro
ac5ea36581
Merge pull request #165672 from yoctocell/patatt-init
2022-03-27 14:53:39 +02:00
Sandro
3cc111d919
Merge pull request #165597 from ckiee/generaluser-init
2022-03-27 12:54:25 +02:00
Silvan Mosberger
99d9d45630
Merge pull request #164651 from Infinisil/remove-optionSet
...
lib/modules: Finally remove deprecated types.optionSet
2022-03-25 17:41:57 +01:00
Xinglu Chen
e13494d071
lib.licenses: add MIT-0
...
<https://spdx.org/licenses/MIT-0.html >
2022-03-24 18:49:26 +01:00
Robert Hensing
ce5a33e62b
Merge pull request #164660 from ncfavier/tests-restrict-arguments
...
nixos/testing: restrict arguments to makeTest
2022-03-24 17:01:47 +01:00
ckie
2bc1cd1ac4
soundfont-generaluser: init at 1.471
2022-03-24 12:49:38 +02:00
Silvan Mosberger
a38220e61d
Merge pull request #164890 from ncfavier/lib-warn-throw
...
lib/trivial: add warnIfNot and throwIf
2022-03-22 21:12:11 +01:00
Robert Hensing
6c469679f6
Merge remote-tracking branch 'upstream/master' into tests-restrict-arguments
2022-03-21 23:17:17 +01:00
Robert Hensing
84274cbc95
lib: Add toFunction
2022-03-21 23:14:10 +01:00
Robert Hensing
6a0b24b276
lib: applyIfFunction -> applyModuleArgsIfFunction
2022-03-21 23:14:10 +01:00
Kevin Cox
8ce16fcf62
Merge pull request #163451 from hercules-ci/stop-premature-warnings
...
Stop premature warnings, including `nix.settings` migration
2022-03-21 10:10:40 -04:00
Robert Hensing
1eb627c4cf
lib.mkRenamedOptionModuleWith: Remove warnWhenRead
...
Let's keep things simple and not poke holes in the
improved migration process.
2022-03-21 14:41:22 +01:00
Naïm Favier
7fae930a37
lib/trivial: add warnIfNot and throwIf
...
Negated versions of warnIf and throwIfNot.
2022-03-19 20:40:40 +01:00
Robert Hensing
5ff918bf55
Merge pull request #147077 from Infinisil/updateAttrPaths
...
Introduce `lib.updateManyAttrsByPath`
2022-03-19 19:00:03 +01:00
Silvan Mosberger
96698efe0c
lib/modules: Finally remove deprecated types.optionSet
...
types.optionSet has been deprecated for almost 10 years now
(0e333688cea468a28516bf6935648c03ed62a7bb)! A removal
was already attempted in 2019
(27982b408e465554b8831f492362bc87ed0ec02a), but it was promptly
reinstantiated since some third-party uses were discovered
(f531ce75e4178c6867cc1d0f7fec96b2d5c3f1cb).
It's finally time to remove it for good :)
2022-03-18 04:51:27 +01:00
Silvan Mosberger
85003ecdbb
lib.attrsets: Introduce updateManyAttrsByPath
2022-03-18 00:08:29 +01:00
Silvan Mosberger
1ad7812c4a
lib.lists: Use builtins.groupBy for lib.groupBy
...
builtins.groupBy is much more performant. It was introduced in
https://github.com/NixOS/nix/pull/5715
2022-03-18 00:05:10 +01:00
Silvan Mosberger
71b130c581
lib.attrsets: Introduce showAttrPath
2022-03-18 00:05:08 +01:00
John Ericson
111839dcf6
Merge pull request #161158 from a-m-joseph/mips64el-support-first-steps
...
mips64el support
2022-03-17 17:43:24 -04:00
Robert Hensing
0395086d0c
Merge pull request #162271 from Infinisil/warn-no-type
...
Throw an error for options without a type
2022-03-16 22:58:45 +01:00
Silvan Mosberger
b97742c66c
Merge pull request #156533 from hercules-ci/issue-146882-transparent-submodule-options
...
lib.modules: Let module declare options directly in bare submodule
2022-03-16 21:44:35 +01:00
Robert Hensing
679ec68d57
Merge pull request #163127 from hercules-ci/optimize-optionSet-compat
...
lib/modules.nix: Optimize optionSet legacy compat code
2022-03-11 17:36:16 +01:00
Robert Hensing
a15fbdb88f
Merge pull request #163443 from ncfavier/fix-types-package
...
lib.types.package: only call toDerivation when necessary
2022-03-11 11:56:44 +01:00
Naïm Favier
9c2266c031
lib.types.package: only call toDerivation when necessary
...
The current logic assumes that everything that isn't a derivation is a
store path, but it can also be something that's *coercible* to a store
path, like a flake input.
Unnecessary uses of `lib.toDerivation` result in errors in pure evaluation
mode when `builtins.storePath` is disabled.
Also document what a `package` is.
2022-03-11 11:26:34 +01:00
Adam Joseph
ff69b8c2bf
Ericson2314's suggestion here: https://github.com/NixOS/nixpkgs/pull/161158#discussion_r822295406
2022-03-10 20:30:19 -08:00
Adam Joseph
6de935a012
This commit adds only comments to platforms.nix.
2022-03-10 20:30:19 -08:00
Adam Joseph
ed4fa55fc3
comment: explain why gnuabi64 has a rustc.config but gnuabin32 does not.
2022-03-10 20:30:18 -08:00
Adam Joseph
998fd408e0
remove float = "hard" from mips entries
2022-03-10 20:30:18 -08:00
Adam Joseph
e748e1fd18
https://github.com/NixOS/nixpkgs/pull/161158#pullrequestreview-903824553
2022-03-10 20:30:18 -08:00
Adam Joseph
12371a51e6
lib/systems: add mips64el definitions
...
MIPS has a large space of {architecture,abi,endianness}; this commit
adds all of them to lib/systems/platforms.nix so we can be done with
it.
Currently lib/systems/inspect.nix has a single "isMips" predicate,
which is a bit ambiguous now that we will have both mips32 and mips64
support, with the latter having two ABIs. Let's add four new
predicates (isMips32, isMips64, isMips64n32, and isMips64n64) and
treat the now-ambiguous isMips as deprecated in favor of the
more-specific predicates. These predicates are used mainly for
enabling/disabling target-specific workarounds, and it is extremely
rare that a platform-specific workaround is needed, and both mips32
and mips64 need exactly the same workaround.
The separate predicates (isMips64n32 and isMips64n64) for ABI
distinctions are, unfortunately, useful. Boost's user-scheduled
threading (used by nix) does does not currently supports mips64n32,
which is a very desirable ABI on routers since they rarely have
more than 2**32 bytes of DRAM.
2022-03-10 20:30:16 -08:00
Robert Hensing
55ee7ab4a6
lib.types.optionType: Only merge when necessary
2022-03-10 20:25:49 +01:00
Robert Hensing
3ddac7a41a
lib.isDerivation: Simplify
2022-03-09 15:48:30 +01:00
Robert Hensing
7377ea57ff
lib: Add mkRenamedOptionModuleWith
...
Adds support for sinceRelease
2022-03-09 14:50:51 +01:00
Levi Wright
752a8c516d
lib/systems: Fix uclibc float-abi being flipped
...
uclibceabihf and uclibceabi's float hardness was flipped, which causes many headaches
2022-03-07 17:05:51 +00:00
Robert Hensing
c4b38702e5
lib/modules.nix: Add comment about internal shorthand null value
2022-03-07 11:23:24 +01:00
Robert Hensing
c90844aeb9
lib/tests/modules: Add test case for duplicate option error file location
2022-03-07 11:21:23 +01:00
Robert Hensing
e162ed8a14
lib/modules.nix: Move comment to the actual legacy code
2022-03-07 11:21:19 +01:00
Robert Hensing
02de37ca07
lib/modules.nix: Optimize optionSet legacy compat code
...
It's still in the hot path.
2022-03-07 11:07:50 +01:00
Robert Hensing
db08290453
Revert "lib.modules: Remove redundant fixupOptionType in option injection"
...
This reverts commit 6b077c47ff14cb9a4a8f5cb8986fa83ff626c732.
Thanks Infinisil for discovering this problem:
> After a lot of trial and error, trying to prove why fixupOptionType should
> be used here or not, I figured it out: It's needed for the sake of file
> locations in error messages.
2022-03-07 10:59:03 +01:00
Robert Hensing
2050669922
lib.modules: Inline a private function
...
This should save about four calls per module.
2022-03-03 00:29:15 +01:00
Robert Hensing
28aeae2126
lib.modules: Default shorthandOnlyDefinesConfig to true when null
2022-03-03 00:29:14 +01:00
Robert Hensing
6b077c47ff
lib.modules: Remove redundant fixupOptionType in option injection
2022-03-03 00:29:14 +01:00
Robert Hensing
8baea8b82c
lib.modules: Make option injection work when shorthandOnlyDefinesConfig
2022-03-03 00:29:14 +01:00
Robert Hensing
11537c9c02
lib.modules: Improve option-is-prefix error message
2022-03-03 00:29:11 +01:00
Robert Hensing
81f342d1f3
lib.modules: Explain why options can only be merged into submodules
2022-03-03 00:28:35 +01:00
Robert Hensing
0c09eb343d
lib.modules: Refactor option scanning slightly
...
This scans the options with fewer function calls, improving performance.
It also removes a let Env from the happy flow of the new logic.
2022-03-03 00:28:35 +01:00
Robert Hensing
58a8a48e9d
lib.types.submodule: Remove redundant isSubmodule attr
2022-03-03 00:28:35 +01:00
Robert Hensing
d030e2109f
lib.modules: Let module declare options directly in bare submodule
...
... where a bare submodule is an option that has a type like
`submoduleWith x`, as opposed to `attrsOf (submoduleWith x)`.
This makes migration unnecessary when introducing a freeform type
in an existing option tree.
Closes #146882
2022-03-03 00:28:35 +01:00