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
9cbd394aa0
lib.fileset: Remove unused bindings
...
Thanks nixd!
2023-11-09 00:02:43 +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
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
47c81d3286
lib.fileset.toSource: Optimise unknown file type error
...
Compared to the parent commit, this removes any detectable performance
cost :)
2023-10-30 12:48:13 +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
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
2541635c13
lib.fileset: Refactor for performance and future re-use
2023-10-04 23:21:45 +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
efbcf5938f
lib.fileset: Add internal helpers for pretty-printing
2023-10-04 16:28:55 +02:00
Silvan Mosberger
86802e19ce
lib.fileset: _simplifyTree -> _normaliseTreeFilter
2023-10-03 21:27:42 +02:00
Silvan Mosberger
b3c2281219
lib.fileset: Order noEval last
2023-10-03 21:27:40 +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
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
7ab764e575
lib.fileset.unions: Don't stack overflow for many files
2023-09-21 00:21:01 +02:00
Silvan Mosberger
d866a0bda1
lib.fileset.union: init
2023-09-21 00:19:48 +02:00
Silvan Mosberger
7c6b0b107a
lib.fileset: Minor internal type doc fix
2023-09-13 23:32:29 +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
465e05c0c5
lib.fileset.toSource: init
2023-09-01 15:46:04 +02:00