Shea Levy
99e7950803
Add type for sets of StorePaths.
2019-03-22 08:38:02 -04:00
Shea Levy
6011a2e1e0
Build.hs: Drop redundant dependency on System.Nix.Path
2019-03-22 08:26:15 -04:00
Shea Levy
6e1e6fc642
Add System.Nix.StorePath, successor to System.Nix.Path.
...
The new type acknowledges the store root, and is better named.
Future work will migrate all dependents and retire the old module.
2019-03-22 08:26:08 -04:00
Shea Levy
d26c5922cb
Base32: No need to concatMap over singleton lists.
2019-03-20 23:59:02 -04:00
Shea Levy
bd0bd95347
Base32: Document the confusing arithmetic.
2019-03-20 21:49:03 -04:00
Shea Levy
8d1e39acb0
Base32: Lift some helpers up for clarity
2019-03-20 21:37:04 -04:00
Shea Levy
91105c05c6
Lorri + direnv.
2019-03-19 20:52:25 -04:00
Shea Levy
0f50f40ffb
Hackage-safe
2019-03-18 17:20:31 -04:00
Shea Levy
44b97fbafb
Hash: Haddock tweaks.
2019-03-11 03:29:58 -04:00
Shea Levy
f3f0193892
Hash: Make warning-clean and reduce language extensions.
2019-03-11 03:29:06 -04:00
Shea Levy
a8aaa9b534
Rename HasDigest to ValidAlgo.
2019-03-11 03:14:34 -04:00
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