regnat
ea792bcdc8
Make nix search lazier
...
Only 4 evals left \o/
2021-06-10 12:26:32 +02:00
regnat
71650c83c6
Make the error cleaner when getFields is misused
2021-06-10 12:26:32 +02:00
regnat
d51deeac1c
Remove the obsolete CmdSearch::visit
function
2021-06-10 12:26:32 +02:00
regnat
1f8541258c
Make getFields just return the name of the fields
...
Makes it much easier to deal with non-evaluating stuff
2021-06-10 12:26:32 +02:00
regnat
3a9753132e
Make the derivation check more lazy
2021-06-10 08:09:25 +02:00
regnat
2324ee4891
Add a ugly hack to delay errors in getFields
2021-06-10 08:09:25 +02:00
regnat
28c1f8800b
Don’t list known absent attributes in listChildren
2021-06-10 08:09:25 +02:00
regnat
af775bdcf9
Make lazyGetAttrField return something more informative
2021-06-10 08:09:25 +02:00
regnat
8d2be51d19
Cache the evaluation errors
...
Doesn’t seem to make much of a difference on `nix search`, but we’ll
need it at some point
2021-06-10 08:09:25 +02:00
regnat
9102508f33
Use the cache in nix search
...
Not optimal atm, possibly because we don’t cache the evaluation failures
2021-06-10 08:09:25 +02:00
regnat
a6aaf81103
[TMP]: Disable the tests
...
To allow the benchmarks to run even when something’s broken
2021-06-10 08:09:25 +02:00
regnat
c7a232e200
Be even lazier for the build evaluation
...
Now we can not evaluate anything \o/
2021-06-08 16:05:51 +02:00
regnat
30d14b772f
Evaluate more lazily in findAlongAttrPath
2021-06-04 16:53:59 +02:00
regnat
fbaee9b8fb
Add a “cached thunk” value type
2021-06-04 16:45:22 +02:00
regnat
753730c410
Optimize the nix build caching
2021-06-04 15:21:03 +02:00
regnat
c116e6e837
Another attempt at caching nix build
...
A different tradeof set probably. I guess we could unify both
2021-06-04 15:16:28 +02:00
regnat
3e261410bc
First attempt at caching the evaluation in nix build
2021-06-04 11:39:29 +02:00
regnat
ffec547ebc
Add some benchmarks for the actual caching
2021-06-03 16:41:39 +02:00
regnat
512afd8b7a
Use the cache in the outer shell
...
Make sure that we don’t discard it before entering the evaluator proper
2021-06-03 15:29:43 +02:00
regnat
69505c84e1
Commit the cache at the end of the evaluation
...
Otherwise the db is never properly filled
2021-06-03 15:29:12 +02:00
regnat
af5c323e93
Make the root symbol more telling in the DB
...
I spent a few minutes trying to understand why I had a field with an
empty symbol, until I realise that it’s because that was the symbol for
the root element.
Now that shouldn’t happen anymore
2021-06-03 15:28:04 +02:00
regnat
9053ac0693
use the setEvalCache function at the flake root
...
Probably doesn’t change much, but much cleaner (and robust)
2021-06-03 15:27:33 +02:00
regnat
b39ab10749
Properly fill the cache in case of a miss/forward
2021-06-03 15:27:03 +02:00
regnat
8787218c7c
(maybe) Actually cache things
2021-06-03 13:06:01 +02:00
regnat
89951cf7fb
Extract a Value method to set the eval cache
2021-06-03 12:26:22 +02:00
regnat
45a28ed36f
Extract a Value method to get the eval cache
2021-06-03 12:26:02 +02:00
regnat
6ec852e7f0
Simplify the forcing of nested records
2021-06-03 12:11:51 +02:00
regnat
7c718646cb
Add some stats for the evaluation caching
2021-06-03 12:11:51 +02:00
regnat
8d95e1f299
Set the cache when opening a flake
2021-06-03 12:11:51 +02:00
regnat
6396416dfa
Query the eval cache
...
(It’s still always empty)
2021-06-03 12:11:51 +02:00
regnat
44f390ed48
Re-split the function, but without the exception
2021-06-03 12:11:51 +02:00
regnat
4ca1a0b864
Try removing the exception
2021-06-03 12:11:51 +02:00
regnat
2021b1d8d1
[TMP] Try inlining the getAttrField function
...
See what’s making things slow
2021-06-03 12:11:51 +02:00
regnat
b012852cb2
Split a standalone function for accessing an attribute set field
2021-06-03 12:11:51 +02:00
regnat
074e0678bd
Add an (always empty) eval cache to the attr sets
2021-06-03 12:11:51 +02:00
regnat
891390d76f
[TMP]: Add some benchmarking tools
...
Not intended to be merged (at least definitely not as it is)
2021-06-03 12:11:51 +02:00
Eelco Dolstra
bb06640971
Merge pull request #4871 from chuahou/master
...
Install zsh completion script
2021-06-02 13:32:15 +02:00
Eelco Dolstra
f1b604f603
Merge pull request #4879 from keke-cute/fix-optional-namespace
...
Fix error: 'optional' in namespace 'std' does not name a template type
2021-06-02 13:30:54 +02:00
keke
50dc88a56c
fix error: 'optional' in namespace 'std' does not name a template type
2021-06-02 18:09:03 +08:00
Domen Kožar
7c3cb8506f
flake.lock: Update
...
Flake input changes:
* Updated 'nixpkgs': 'github:NixOS/nixpkgs/3a2e0c36e79cecaf196cbea23e75e74710140ea4' -> 'github:NixOS/nixpkgs/bb8a5e54845012ed1375ffd5f317d2fdf434b20e'
2021-06-02 11:58:46 +02:00
Eelco Dolstra
cc9aa8d4b1
Merge pull request #4878 from NixOS/flake-check-keep-going
...
Let nix flake check keep going when keep-going is set
2021-06-02 11:31:19 +02:00
regnat
838f862f4f
doc: Wrap at 80 characters
2021-06-02 11:26:04 +02:00
Théophane Hufschmitt
7565308d04
Fix a documentation typo
...
Co-authored-by: Eelco Dolstra <edolstra@gmail.com>
2021-06-02 11:25:47 +02:00
regnat
7d651f5c3f
throw_ -> reportError
...
This function might or might not throw depending on the value of
`keepGoing`, so naming it `throw_` was a bit confusing
2021-06-02 11:24:31 +02:00
regnat
d12b12a15b
Let nix flake check
keep going when keep-going is set
...
When the `keep-going` option is set to `true`, make `nix flake check`
continue as much as it can before failing.
The UI isn’t perfect as-it-is as all the lines currently start with a
mostly useless `error (ignored): error:` prefix, but I’m not sure what
the best output would be, so I’ll leave it as-it-is for the time being
(This is a bit hijacking the `keep-going` flag as it’s supposed to be a
build-time only thing. But I think it’s faire to reuse it here).
Fix https://github.com/NixOS/nix/issues/4450
2021-06-02 11:13:12 +02:00
Chua Hou
aedb5c7301
Install zsh completion script
2021-06-02 00:44:03 +08:00
regnat
5985b8b527
Check the CA hash when importing stuff in the local store
...
When adding a path to the local store (via `LocalStore::addToStore`),
ensure that the `ca` field of the provided `ValidPathInfo` does indeed
correspond to the content of the path.
Otherwise any untrusted user (or any binary cache) can add arbitrary
content-addressed paths to the store (as content-addressed paths don’t
need a signature).
2021-06-01 15:09:24 +02:00
Eelco Dolstra
48396d940e
Merge pull request #4866 from alyssais/libdl
...
Only link with libdl on Linux
2021-06-01 11:50:50 +02:00
Eelco Dolstra
b8fbfc80fd
Merge pull request #4864 from jeremyschlatter/fix-typo
...
Fix typo in documentation
2021-06-01 11:49:46 +02:00
Eelco Dolstra
f357cea40e
Run autoupdate
2021-06-01 11:42:38 +02:00