Silvan Mosberger
7e533bab6d
Merge pull request #267381 from tweag/fileset.fileFilter-path
...
`fileset.fileFilter`: Don't run predicate unnecessarily
2023-11-15 01:19:36 +01:00
Silvan Mosberger
2035f8a324
lib.fileset.fileFilter: Don't run predicate unnecessarily
...
Before:
nix-repl> fileset.trace (fileset.fileFilter (file: builtins.trace file.name false) ./default.nix)
trace: README.md
trace: benchmark.sh
trace: default.nix
trace: internal.nix
trace: mock-splitRoot.nix
trace: tests.sh
After:
nix-repl> fileset.trace (fileset.fileFilter (file: builtins.trace file.name false) ./default.nix)
trace: default.nix
2023-11-14 07:30:16 +01:00
Silvan Mosberger
e1d8331738
lib.fileset.fileFilter: Minor cleanups and more tests
2023-11-14 07:29:57 +01:00
Robert Hensing
cfd83c931f
Merge pull request #261732 from tweag/fileset.fromSource
...
`lib.fileset.fromSource`: init
2023-11-10 20:32:51 +01:00
Silvan Mosberger
0ace383438
lib.fileset: Make error messages more uniform
...
Just minor changes like:
- Always using "X is a Y, but it should be Z"
- "X is a path that does not exist" rather than "X does not exist"
- Always using multi-line strings for errors
- Always quoting string-like values and not quoting path-like values
- But do quote filesystem roots. Even though they're paths, they might
be very small, good to have quotes to know the start/end
- Capitalise the first word
- Distinguish root vs filesystem root more
2023-11-08 23:59:04 +01:00
Silvan Mosberger
e07e80e841
lib.fileset.toSource: Mention fromSource in errors
2023-11-08 21:44:44 +01:00
Silvan Mosberger
73493584a7
lib.fileset.fromSource: init
2023-11-08 21:21:30 +01:00
Silvan Mosberger
f82a1686e6
lib.fileset: Split out internal test helper
2023-11-08 05:18:10 +01:00
Silvan Mosberger
fc28c5e5b7
Merge pull request #259065 from tweag/fileset.difference
...
`lib.fileset.difference`: init
2023-11-01 19:40:45 +01:00
Silvan Mosberger
50df7f9775
lib.fileset.difference: init
2023-10-30 12:51:55 +01:00
Silvan Mosberger
0f6cc8018c
lib.fileset.toSource: Improve error for unknown file types
...
This does decrease performance unfortunately
Benchmarking expression toSource { root = ./.; fileset = ./.; }
Mean CPU time 0.103747 (σ = 0.012415) for 10 runs is 97.32181384964636% (σ = 16.34179537413021%) of the old value 0.106602 (σ = 0.0125571)
Statistic .envs.elements (205920) is 105.5842% (+10891) of the old value 195029
Statistic .gc.totalBytes (20247696) is 101.7495% (+348160) of the old value 19899536
Statistic .nrThunks (134824) is 108.7878% (+10891) of the old value 123933
Statistic .symbols.number (996) is 100.1005% (+1) of the old value 995
Statistic .values.number (275238) is 104.1199% (+10891) of the old value 264347
2023-10-30 12:48:11 +01:00
Silvan Mosberger
88f736f871
lib.fileset.toSource: Test with unknown file type
...
Currently just throws the Nix error because unknown file types are not
supported by the Nix store, but nothing catches this error earlier (yet,
see next commit)
2023-10-26 01:57:22 +02:00
Silvan Mosberger
7227cb1d73
lib.fileset: Fix shellcheck warnings in tests
2023-10-26 01:51:15 +02:00
Silvan Mosberger
f4e0043049
lib.fileset.fileFilter: init
2023-10-24 01:44:04 +02:00
Silvan Mosberger
7247ec07ba
lib.fileset: Improved error for unsupported coercion values
2023-10-16 15:50:10 +02:00
Silvan Mosberger
4ecf025814
lib.fileset.intersection: init
2023-10-11 16:17:48 +02:00
Silvan Mosberger
5db719f69c
Merge pull request #256417 from tweag/fileset.trace
...
`lib.fileset.trace`, `lib.fileset.traceVal`: init
2023-10-04 17:39:20 +02:00
Silvan Mosberger
5b4e53a300
lib.fileset: Don't use ulimit for testing tracing
2023-10-04 16:31:14 +02:00
Silvan Mosberger
692b75257e
lib.fileset: Refactor inotify testing to be reusable
2023-10-04 16:31:13 +02:00
Silvan Mosberger
5bbe67bf67
lib.fileset: Mention trace functions in the file set evaluation error
2023-10-04 16:31:13 +02:00
Silvan Mosberger
704452f29c
lib.fileset.traceVal: init
2023-10-04 16:31:11 +02:00
Silvan Mosberger
467e428f00
lib.fileset.trace: init
2023-10-04 16:30:10 +02:00
Silvan Mosberger
ac2c8d321c
lib.fileset: Make expectEqual check more
2023-10-04 16:29:03 +02:00
Silvan Mosberger
d5743d9268
lib.fileset.unions: Fix outdated docs
...
Since 4f35f003e6
unions supports empty lists too
2023-10-03 21:56:53 +02:00
Silvan Mosberger
b3c2281219
lib.fileset: Order noEval last
2023-10-03 21:27:40 +02:00
Robert Hensing
812887f16f
Merge pull request #257351 from tweag/fileset.empty
...
`lib.fileset`: Representation for empty file sets without a base path
2023-10-03 18:26:09 +02:00
Silvan Mosberger
4f35f003e6
lib.fileset: Internal representation v3, empty value without a base
...
`unions []` now works!
Notably the new empty value without a base is not exposed in the interface.
I don't know of any use case for it.
2023-10-03 17:05:57 +02:00
Silvan Mosberger
3cbbea53a1
lib.fileset: Don't use non-reproducible ulimit for stack overflow testing
2023-09-29 20:30:29 +02:00
Silvan Mosberger
94e103ee3f
lib.fileset: Minor changes from feedback
...
Co-authored-by: Robert Hensing <robert@roberthensing.nl>
Co-authored-by: Valentin Gagarin <valentin.gagarin@tweag.io>
2023-09-21 00:21:02 +02:00
Silvan Mosberger
fe6c1539cc
lib.fileset: Internal representation v2, ~12x faster unions!
...
$ ./benchmark.sh HEAD
[...]
Mean CPU time 0.04006 (σ = 0.0040146) for 10 runs is 8.193619775953792% (σ = 0.9584251052704821%) of the old value 0.488917 (σ = 0.0294955)
[...]
2023-09-21 00:21:02 +02:00
Silvan Mosberger
45bf2c7617
lib.fileset: Ignore irrelevant shellcheck warnings
2023-09-21 00:21:01 +02:00
Silvan Mosberger
7ab764e575
lib.fileset.unions: Don't stack overflow for many files
2023-09-21 00:21:01 +02:00
Silvan Mosberger
e04e40d05e
lib.fileset: Optimise tests
...
Previously a lot of processes were used, slowing it down considerably
the more files were tested
2023-09-21 00:21:01 +02:00
Silvan Mosberger
c5ae093f13
lib.fileset: Various updates relating to union/unions
...
Also some minor formatting improvements
2023-09-21 00:21:01 +02:00
Silvan Mosberger
f78d65067f
lib.fileset: Create tests for union and unions
2023-09-21 00:21:01 +02:00
Silvan Mosberger
7d4eb3f1b7
lib.fileset.toSource: Evaluate fileset even for empty directories
2023-09-13 23:32:14 +02:00
Silvan Mosberger
19b39dcc93
lib.fileset: Internal representation v1
2023-09-13 18:53:53 +02:00
Silvan Mosberger
48abfde844
lib/fileset: Test function improvement
...
We can now test returned paths being equal, no need to work around it
anymore by making sure paths aren't returned (which would import them
with the previous --json)
2023-09-13 18:43:36 +02:00
Silvan Mosberger
465e05c0c5
lib.fileset.toSource: init
2023-09-01 15:46:04 +02:00