feat(tvix/eval): implement builtins.hashFile

The primary addition is the `builtin_hashFile` function which attempts
value-path coercion and on success reads the file to a nix_string.
Similar to the `builtins_hashString` implementation, the hash is then
derived using the `hash_nix_string` function in the introduced hash
module which has extracted hashing functionality initially specified in
cl/11005.

Change-Id: I5e3ef0317223af99488ebb79efc2fb49b4cbc1b6
Reviewed-on: https://cl.tvl.fyi/c/depot/+/11007
Tested-by: BuildkiteCI
Reviewed-by: flokli <flokli@flokli.de>
This commit is contained in:
Padraic-O-Mhuiris 2024-02-22 15:33:29 +00:00 committed by Pádraic Ó Mhuiris
parent 5acaa672ac
commit e0ffb4d47a
6 changed files with 42 additions and 25 deletions

View file

@ -65,7 +65,7 @@ The `impl` column indicates implementation status in tvix:
| getEnv | false | | false | |
| hasAttr | false | | | |
| hasContext | false | | | |
| hashFile | false | | false | todo |
| hashFile | false | | false | |
| hashString | false | | | |
| head | false | | | |
| import | true | | | |