John Ericson
5fc5e83808
Merge pull request #111345 from r-burns/ppc64-big-endian
...
Enable PPC64 (big-endian)
2021-01-30 16:26:06 -05:00
Ryan Burns
72b3badb61
lib.systems: add powerpc64-linux
...
PPC64 supports two ABIs: ELF v1 and v2.
ELFv1 is historically what GCC and most packages expect, but this is
changing because musl outright does not work with ELFv1. So any distro
which uses musl must use ELFv2. Many other platforms are moving to ELFv2
too, such as FreeBSD (as of v13) and Gentoo (as of late 2020).
Since we use musl extensively, let's default to ELFv2.
Nix gives us the power to specify this declaratively for the entire
system, so ELFv1 is not dropped entirely. It can be specified explicitly
in the target config, e.g. "powerpc64-unknown-linux-elfv1". Otherwise the
default is "powerpc64-unknown-linux-elfv2". For musl,
"powerpc64-unknown-linux-musl" must use elfv2 internally to function.
2021-01-30 12:34:24 -08:00
Jacek Galowicz
123045a570
lib/attrsets: add cartesianProductOfSets function
2021-01-28 23:08:59 +01:00
Silvan Mosberger
c2f3556dc7
lib/tests: More functionTo tests
2021-01-27 00:17:56 +01:00
Bas van Dijk
43243539b3
lib/tests/modules: add a test for the functionTo type
...
(cherry picked from commit 478af112e83df806bd8a51174834d2a130fbdeb9)
2021-01-24 16:56:45 +01:00
Silvan Mosberger
9e6737710c
Revert "Module-builtin assertions, disabling assertions and submodule assertions"
2020-12-18 16:44:37 +01:00
Silvan Mosberger
767d80099c
lib/modules: Introduce _module.checks.*.check
...
Previously the .enable option was used to encode the condition as well,
which lead to some oddness:
- In order to encode an assertion, one had to invert it
- To disable a check, one had to mkForce it
By introducing a separate .check option this is solved because:
- It can be used to encode assertions
- Disabling is done separately with .enable option, whose default can be
overridden without a mkForce
2020-12-17 21:52:24 +01:00
Silvan Mosberger
8dea4df903
lib/modules: Remove _module.checks.*.triggerPath as it's not necessary
...
Previously this option was thought to be necessary to avoid infinite
recursion, but it actually isn't, since the check evaluation isn't fed
back into the module fixed-point.
2020-11-30 23:51:42 +01:00
Silvan Mosberger
c9cc8969b4
lib/modules: Rename _module.assertions to _module.checks
2020-11-30 23:51:41 +01:00
Silvan Mosberger
3e39d6efdf
lib/tests: Add tests for module-builtin assertions
2020-11-30 23:51:23 +01:00
Silvan Mosberger
900c4a5abd
lib/tests: Implement generalized checkConfigCodeOutErr for module tests
2020-11-30 23:51:23 +01:00
Silvan Mosberger
3759a77fcd
nixos/modules: Expose the internal module in the top-level documentation
2020-11-30 23:51:23 +01:00
John Ericson
86fedc3a92
Merge pull request #102766 from siraben/mmix
...
Initial implementation of cross-compilation to Knuth's MMIX
2020-11-14 12:46:24 -05:00
Joe Hermaszewski
c3b35f21f7
lib: Add composeManyExtensions
2020-11-13 21:37:57 +01:00
Ben Siraphob
445dde6304
Initial implementation of mmix cross-compile
2020-11-09 19:49:55 +07:00
Etienne Laurin
d7464ab4bb
lib.splitString: use builtin.split
2020-10-18 13:19:50 +00:00
Silvan Mosberger
8908766165
lib/tests: Update for error message changes
2020-09-21 18:24:55 +02:00
Silvan Mosberger
4f0982b223
lib/tests: Allow grepping for newlines in error messages
2020-09-21 18:24:54 +02:00
Silvan Mosberger
366a677dbb
Merge pull request #97133 from Infinisil/improved-toPretty
...
Improve `generators.toPretty`
2020-09-21 17:11:49 +02:00
Robert Hensing
f3893d8b53
Merge pull request #97119 from Infinisil/types.anything
...
Introduce `types.anything`
2020-09-21 08:49:24 +02:00
Silvan Mosberger
05e4d371ef
lib/generators.toPretty: Print [] and {} compactly
2020-09-17 18:20:39 +02:00
Silvan Mosberger
d0be9e9810
lib/generators.toPretty: Switch away from δ and λ
...
- These symbols can be confusing for those not familiar with them
- There's no harm in making these more obvious
- Terminals may not print them correctly either
Also changes the function argument printing slightly to be more obvious
2020-09-17 18:20:35 +02:00
Silvan Mosberger
073e9b2aed
lib/generators.toPretty: Improved string printing, handling newlines
2020-09-17 18:20:31 +02:00
Silvan Mosberger
47f2eb89c1
lib/generators.toPretty: Implement multiline printing
2020-09-17 18:20:25 +02:00
Silvan Mosberger
0f6231702f
lib/generators.toPretty: Only quote attribute names if necessary
2020-09-17 18:20:08 +02:00
Silvan Mosberger
6a7d250007
lib/tests: Add tests for types.anything
2020-09-15 21:06:05 +02:00
Silvan Mosberger
f320dbae41
lib/tests: Add test for freeform option docs
2020-09-04 15:50:13 +02:00
Eelco Dolstra
2d50c7c08e
Don't set $NIX_DB_DIR
...
This variable was removed in 2016.
2020-08-24 18:50:20 +02:00
Robert Hensing
6d0a85fe52
Merge pull request #82743 from Infinisil/partially-typed-v2
...
Freeform modules
2020-08-15 12:13:58 +02:00
Silvan Mosberger
42cf8130d7
lib/modules: Add syntactic sugar for config._module.freeformType
...
This introduces `freeformType` as a top-level module attribute, allowing
definitions like
{
freeformType = ...;
options = ...;
config = ...;
}
2020-08-14 22:49:04 +02:00
Silvan Mosberger
e0ded8f4ba
lib/modules: Fix freeform modules when there's no definitions
2020-08-10 17:27:33 +02:00
Emery Hemingway
ccedb29f4b
Define a i686-genode system double
2020-08-04 18:08:56 +02:00
Silvan Mosberger
446d80d28d
lib/tests: Add tests for freeform modules
2020-08-03 22:37:01 +02:00
zowoq
c8500de47b
lib/*: editorconfig fixes
2020-07-31 15:07:33 +10:00
John Ericson
5c56778efd
Merge pull request #93568 from aaronjanse/aj-redox
...
Add Redox OS as a target
2020-07-22 12:56:00 -04:00
Aaron Janse
60fd049b65
redox: add as target
2020-07-21 13:11:36 -07:00
Bas van Dijk
6e7822b8f3
lib: toHex -> toHexString & toBase -> toBaseDigits
...
This makes the type of these functions more apparent from the name.
2020-07-20 13:14:19 +02:00
Bas van Dijk
00022fbeda
lib: add the toHex and toBase utility functions
...
`toHex` converts the given positive integer to a string of the hexadecimal
representation of that integer. For example:
```
toHex 0 => "0"
toHex 16 => "10"
toHex 250 => "FA"
```
`toBase base i` converts the positive integer `i` to a list of it
digits in the given `base`. For example:
```
toBase 10 123 => [ 1 2 3 ]
toBase 2 6 => [ 1 1 0 ]
toBase 16 250 => [ 15 10 ]
```
2020-07-20 13:09:26 +02:00
Silvan Mosberger
a89b773984
lib/tests: Allow overriding pkgs independent of lib being tested
2020-04-25 23:40:20 +02:00
Silvan Mosberger
f579564062
lib/maintainer-list: Implement validity checks
2020-04-13 17:28:00 +02:00
Silvan Mosberger
a90d8de242
lib/tests/release.nix: Avoid importing nixpkgs into the store
...
Improves build time by about a factor of two on my system
2020-04-13 17:27:05 +02:00
Silvan Mosberger
0bc7f3440a
lib/tests/modules.sh: Don't depend on $PWD
2020-04-13 17:27:04 +02:00
Silvan Mosberger
f75c11cfdf
Merge pull request #83241 from Infinisil/valid-drv-name
...
lib/strings: Add `sanitizeDerivationName` function
2020-04-02 05:58:13 +02:00
Silvan Mosberger
4b206ac83b
lib/strings: Add sanitizeDerivationName function
2020-03-30 01:15:30 +02:00
Emery Hemingway
9f91fa02a6
lib/systems: Add Genode platform definitions
...
Add platform definitions for 64-bit ARM and x86. This is sufficient for
for building Genode where a toolchain is provided as an overlay.
Toolchain: git+https://git.sr.ht/~ehmry/genodepkgs?rev=14fc773ac9ecd2cbb30cb4612b284eee83d83546
2020-03-24 20:41:21 +05:30
John Ericson
19a0b38cbe
Merge pull request #82882 from obsidiansystems/armv6-embedded
...
Misc fixes for armv6 bare metal cross
2020-03-19 10:38:22 -04:00
Silvan Mosberger
742e3fc002
lib/tests: Check for nested option-dependent definitions
2020-03-19 03:50:47 +01:00
Silvan Mosberger
9eecf2d057
Revert "lib/modules: Throw better error when definitions assign to an option set"
...
This reverts commit 15c873b486
.
This was causing infinite recursion when depending on nested options
2020-03-19 03:50:15 +01:00
John Ericson
7c0d3f6f70
lib: Fix systems test for new armv6l-none
2020-03-18 17:43:11 -04:00
Robert Hensing
5f357b20b3
Merge pull request #82751 from Infinisil/minor-module-improvements
...
Minor module improvements
2020-03-18 10:06:06 +01:00