Commit Graph

95 Commits

Author SHA1 Message Date
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