snix/tvix/eval/src
Connor Brewster 63116d8c21 fix(tvix): Avoid buffering file into memory in builtins.hashFile
Right now `builtins.hashFile` always reads the entire file into memory
before hashing, which is not ideal for large files. This replaces
`read_to_string` with `open_file` which allows calculating the hash of
the file without buffering it entirely into memory. Other callers can
continue to buffer into memory if they choose, but they still use the
`open_file` VM request and then call `read_to_string` or `read_to_end`
on the `std::io::Reader`.

Fixes b/380

Change-Id: Ifa1c8324bcee8f751604b0b449feab875c632fda
Reviewed-on: https://cl.tvl.fyi/c/depot/+/11236
Reviewed-by: flokli <flokli@flokli.de>
Tested-by: BuildkiteCI
2024-04-09 17:31:58 +00:00
..
builtins fix(tvix): Avoid buffering file into memory in builtins.hashFile 2024-04-09 17:31:58 +00:00
compiler fix(tvix): Avoid buffering file into memory in builtins.hashFile 2024-04-09 17:31:58 +00:00
tests fix(tvix/eval): propagate errs from key comparison in genericClosure 2024-03-19 06:20:52 +00:00
value feat(tvix/eval): implement unsafeDiscardOutputDependency 2024-03-31 12:40:49 +00:00
vm fix(tvix): Avoid buffering file into memory in builtins.hashFile 2024-04-09 17:31:58 +00:00
chunk.rs feat(tvix/eval): Don't emit OpForce for non-thunk constants 2024-02-01 21:08:35 +00:00
errors.rs feat(tvix/eval): implement builtins.hashString 2024-02-23 16:04:35 +00:00
io.rs fix(tvix): Avoid buffering file into memory in builtins.hashFile 2024-04-09 17:31:58 +00:00
lib.rs fix(tvix/eval): propagate catchable errors at the top of an eval 2024-02-20 12:33:57 +00:00
nix_search_path.rs refactor(tvix/eval): Box the strings in CatchableErrorKind 2024-02-10 20:35:28 +00:00
observer.rs feat(tvix/eval/observer): Allow capturing timing of events 2024-01-31 04:41:37 +00:00
opcode.rs refactor(tvix/eval): let OpCoerceToString select the CoercionKind 2023-12-29 21:34:45 +00:00
pretty_ast.rs fix(tvix/eval): fix current clippy warnings 2022-12-25 18:25:06 +00:00
properties.rs refactor(tvix/eval): Don't (ab)use PartialEq for Nix equality 2022-09-18 22:03:41 +00:00
source.rs refactor(tvix/eval): impl Default for SourceCode 2023-08-20 21:52:21 +00:00
spans.rs feat(tvix/eval): drop LightSpan::Delayed 2023-12-12 14:34:28 +00:00
systems.rs fix(tvix/eval): fix current clippy warnings 2022-12-25 18:25:06 +00:00
test_utils.rs test(tvix/eval): Add proof-of-concept test for Chunk 2022-09-18 17:55:06 +00:00
upvalues.rs fix(tvix/eval): remove impl PartialEq for Value 2022-11-04 00:30:13 +00:00
warnings.rs feat(tvix/glue): emit a warning in case of bad SRI hashes 2024-01-03 13:01:02 +00:00