Shea Levy
715f415eb7
Flesh out haddocks for the hashing module.
2019-03-11 03:09:50 -04:00
Shea Levy
b7c2216932
Move bytestring-level base32 encoding to its own module.
2019-03-11 02:42:50 -04:00
Shea Levy
71025ed892
Hash digests: Only export primitives for rendering as hex and base32
...
The old 'digestText16' was really a special case that doesn't belong
in the hashing module proper.
2019-03-11 02:28:26 -04:00
Shea Levy
3ad41dc6f6
Remove value-level hash algorithms.
...
We can use NamedHashAlgorithm to get a name where relevant, and soon
the pair of (recursive, Proxy) :: (Bool, Proxy algo) will be replaced
with a separate type which will let us drop the proxies.
Also, we drop logic from addToStore in the remote impl that was copied
from C++ compatibility code for very old daemon versions.
2019-03-10 19:07:17 -04:00
Shea Levy
20e7b039d0
Rename HashAlgoText to NamedAlgo.
2019-03-10 18:51:24 -04:00
Shea Levy
7b918a929a
System.Nix.Hash: Remove unused pragmas and cleanup.
2019-03-10 18:39:20 -04:00
John Ericson
8cc6595803
Merge pull request #31 from haskell-nix/je-printHashBytes32-bit-fiddling
...
Weird bit fiddling to make `printHashBytes32` work
2019-03-10 13:35:29 -04:00
John Ericson
3fde7c1580
Merge remote-tracking branch 'origin/master' into add-to-store
2019-03-10 13:21:18 -04:00
John Ericson
ecf4d991f9
Add comment to the mysterious order of the + 1
- 1
in printHashBytes32
2019-03-10 13:09:45 -04:00
John Ericson
9bbe54a03b
Add test corresponding to builtins.placeholder "foo"
in layer above
...
We were hashing correctly, but base32-ing wrong.
2019-03-10 12:30:26 -04:00
Doug Beardsley
7067c32a9a
Implement readonly store path hashing
2019-03-09 22:42:23 -05:00
John Ericson
0fe7ff5e84
Weird bit fiddling to make printHashBytes32
work
2019-03-09 22:03:28 -05:00
Shea Levy
0367156509
Local shell.nixes to make flycheck happy.
2019-03-09 19:04:11 -05:00
Shea Levy
440dfebc28
Build expressions.
2019-03-09 18:32:01 -05:00
Greg Hale
4c650ca750
WIP addToStore protocol implementation
2018-12-28 19:28:11 -05:00
Greg Hale
a7120f60cc
Reflect type level hash algo to value
2018-12-28 19:28:11 -05:00
Greg Hale
7bd991a52e
add nix expressions for building hnix-store-*
2018-12-28 11:00:31 -05:00
Greg Hale
aeb98a90a8
Add an API and implementation for basic nix hashes
...
- Define MD5, SHA1 and SHA256 algos
- Design typclass to handle type-specific hashing behavior
- hash digest generation
- printing to base32
- Differentiate between parts meant to be used outside (by hnix-store-*, hnix)
and parts meant to be used only internaly (in **.Internal.** modules)
- Observe that hashing "Hello World" @SHA1 and serializing to base32 gives
the same hash as the one in the thesis example
"s23c9fs0v32pf6bhmcph5rbqsyl5ak8a"
2018-11-17 14:35:35 -05:00
Greg Hale
966aa4a782
Remove cryptonite, foundation, basement and memory from all packages
2018-09-30 19:05:10 -04:00
Greg Hale
d23195c710
Fix haddock formatting
2018-09-11 23:29:42 -04:00
Greg Hale
6734486e06
Put bounded-memory NAR format tests behind a cabal flag deaulting to False
...
The test suite fails when run naively, due to the use of haskell code that
uses gc statistics, and requires `+RTS -T` flags be passed to the testsuite.
We opt in to this flag for CI and for any default.nix that packages
hnix-store-core.
2018-09-11 23:09:00 -04:00
Doug Beardsley
007a2107d6
Delete old comment
2018-08-05 14:39:59 -04:00
Doug Beardsley
bc946a40b1
Expand Derivation data type
2018-08-05 12:16:29 -04:00
Shea Levy
7a9fcdb22f
Duplicate information to appease bad tooling
2018-08-05 10:58:17 -04:00
Richard Marko
c37c3017e5
Extend core types
2018-07-16 09:09:23 +02:00
Greg Hale
7f1928edcb
Add NAR parser-generator and tests
2018-05-15 11:09:20 -04:00
Greg Hale
9b673371a6
Merge branch 'master' of github.com:haskell-nix/hnix-store
2018-04-30 03:06:07 -07:00
Greg Hale
2ba0a4bea0
Add provisional NAR parser and generator
2018-04-30 03:01:14 -07:00
Shea Levy
da0f19a65f
Merge branch 'addFile' of git://github.com/rpglover64/hnix-store
2018-04-29 15:34:03 -07:00
Alex Rozenshteyn
2cde70f249
Make the bytestring lazy
2018-04-29 15:29:47 -07:00
Alex Rozenshteyn
cf214ad2c3
Add effect for adding file to store
2018-04-29 13:55:48 -07:00
Gabriel Gonzalez
e750f60609
Permit validPaths
to use effects
...
According to @shlevy, whether or not a rooted path is a valid path is
not an intrinsic property of the rooted path and requires a side effect
to determine, so this change modifies the `StoreEffects` record to
reflect that.
2018-04-29 13:44:35 -07:00
Shea Levy
972e2c706f
StoreEffects: Add pathFromHashPart.
2018-04-28 03:44:26 -07:00
Shea Levy
49c1017f0e
StoreEffects: Add derivationOutputNames.
2018-04-28 03:41:48 -07:00
Shea Levy
c7d367f54c
StoreEffects: Add derivationOutputs
2018-04-28 03:39:51 -07:00
Shea Levy
ad6f613c6c
Add validDerivers
2018-04-28 03:37:31 -07:00
Shea Levy
12a75f5c47
validPath -> validPaths.
...
We don't need both.
2018-04-27 19:50:03 -07:00
Shea Levy
3c23fed2ac
ReadonlyStoreEffects -> StoreEffects.
...
We can break out into readonly or binary cache or whatever later if need be.
2018-04-27 19:49:38 -07:00
Shea Levy
561fda594b
ReadonlyStoreEffects: Add subtistutable path info query
2018-04-27 05:49:42 -07:00
Shea Levy
ead433277e
ReadonlyStoreEffects: Add rootedPath operation.
2018-04-27 05:37:49 -07:00
Shea Levy
f21f036d7e
ReadonlyStoreEffects: Add a referrers query.
2018-04-27 05:12:41 -07:00
Shea Levy
f086a5c5a9
isValidPath -> validPath
2018-04-27 04:51:35 -07:00
Shea Levy
02e1adf263
ReadonlyStoreEffects: Operate over rooted and valid paths.
2018-04-27 04:48:29 -07:00
Shea Levy
f26c6edd26
Truncated hash: Remove bogus Coercible constraint.
...
We can never satisfy it because Digest's constructor isn't exported.
2018-04-27 04:37:02 -07:00
Shea Levy
5629a13b1e
Add isValidPath effect.
2018-04-26 21:42:56 -07:00
Shea Levy
8b7a367021
Add store path type.
2018-04-26 21:33:06 -07:00
Shea Levy
d0fd35ba81
Formatting tweak
2018-04-26 08:37:20 -07:00
Shea Levy
d1e08a7a48
Truncated cryptographic hashes implementation.
2018-04-26 08:17:03 -07:00