user/git-annex: new aport
This commit is contained in:
parent
74b109f338
commit
37812739b2
6 changed files with 845 additions and 0 deletions
144
user/git-annex/APKBUILD
Normal file
144
user/git-annex/APKBUILD
Normal file
|
@ -0,0 +1,144 @@
|
||||||
|
# Maintainer: Antoine Martin (ayakael) <dev@ayakael.net>
|
||||||
|
# Contributor: Antoine Martin (ayakael) <dev@ayakael.net>
|
||||||
|
pkgname=git-annex
|
||||||
|
pkgver=10.20230214
|
||||||
|
_bloomfilterver=2.0.1.0
|
||||||
|
_gitlfsver=1.2.0
|
||||||
|
pkgrel=0
|
||||||
|
pkgdesc="Manage files with git, without checking their contents into git"
|
||||||
|
url="http://git-annex.branchable.com"
|
||||||
|
arch="x86_64 aarch64" # limited by ghc
|
||||||
|
license="AGPL-3.0-or-later"
|
||||||
|
depends="
|
||||||
|
curl
|
||||||
|
git
|
||||||
|
rsync
|
||||||
|
"
|
||||||
|
makedepends="
|
||||||
|
alex
|
||||||
|
cabal
|
||||||
|
dbus-dev
|
||||||
|
file-dev
|
||||||
|
ghc
|
||||||
|
gmp-dev
|
||||||
|
gnutls-dev
|
||||||
|
happy
|
||||||
|
libffi-dev
|
||||||
|
libgsasl-dev
|
||||||
|
libxml2-dev
|
||||||
|
ncurses-dev
|
||||||
|
zlib-dev
|
||||||
|
"
|
||||||
|
source="
|
||||||
|
https://git.joeyh.name/index.cgi/git-annex.git/snapshot/git-annex-$pkgver.tar.gz
|
||||||
|
https://hackage.haskell.org/package/bloomfilter-$_bloomfilterver/bloomfilter-$_bloomfilterver.tar.gz
|
||||||
|
https://hackage.haskell.org/package/git-lfs-$_gitlfsver/git-lfs-$_gitlfsver.tar.gz
|
||||||
|
git-annex.config
|
||||||
|
git-lfs.config
|
||||||
|
bloomfilter-ghc9.2.diff
|
||||||
|
git-lfs-depend-update.diff
|
||||||
|
fix-makefile.patch
|
||||||
|
"
|
||||||
|
subpackages="$pkgname-doc $pkgname-bash-completion $pkgname-fish-completion $pkgname-zsh-completion"
|
||||||
|
|
||||||
|
# Add / remove '-' between "-f" and "FeatureName" to adjust feature build
|
||||||
|
_feature_flags="
|
||||||
|
-fAssistant \
|
||||||
|
-fWebApp \
|
||||||
|
-fPairing \
|
||||||
|
-fProduction \
|
||||||
|
-fTorrentParser \
|
||||||
|
-fMagicMime \
|
||||||
|
-fBenchmark \
|
||||||
|
-f-DebugLocks \
|
||||||
|
-fDbus \
|
||||||
|
-fNetworkBSD \
|
||||||
|
-fGitLfs \
|
||||||
|
-fHttpClientRestricted \
|
||||||
|
"
|
||||||
|
_cabal_home="$srcdir/dist"
|
||||||
|
_cabal_config="git-annex git-lfs"
|
||||||
|
|
||||||
|
cabal_update() {
|
||||||
|
msg "Freezing $pkgname dependencies"
|
||||||
|
|
||||||
|
# Resolve deps and generate fresh cabal.config with version constraints.
|
||||||
|
HOME="$_cabal_home" cabal update
|
||||||
|
for i in $_cabal_config; do
|
||||||
|
cd "$srcdir/$i"*
|
||||||
|
HOME="$_cabal_home" cabal v1-freeze --shadow-installed-packages
|
||||||
|
|
||||||
|
# Add version tag at the first line.
|
||||||
|
sed -i "1i--$pkgver" "cabal.config"
|
||||||
|
|
||||||
|
mv "cabal.config" "$startdir/$i.config"
|
||||||
|
cd "$startdir"
|
||||||
|
done
|
||||||
|
|
||||||
|
if ! abuild checksum; then
|
||||||
|
die "Failed to update checksum, run 'abuild checksum' manually"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
prepare() {
|
||||||
|
default_prepare
|
||||||
|
|
||||||
|
if [ "$(head -n 1 "$srcdir/git-annex.config")" != "--$pkgver" ]; then
|
||||||
|
die "Requirements file is outdated, run 'abuild cabal_update'"
|
||||||
|
fi
|
||||||
|
|
||||||
|
for i in $_cabal_config; do
|
||||||
|
cd "$srcdir"/$i*
|
||||||
|
ln -sf "$srcdir/$i.config" cabal.config
|
||||||
|
done
|
||||||
|
|
||||||
|
# ghc version path
|
||||||
|
export PATH="$PATH:/usr/lib/llvm14/bin"
|
||||||
|
|
||||||
|
# problematic depend install
|
||||||
|
HOME="$_cabal_home" cabal update
|
||||||
|
|
||||||
|
msg "Installing dependency bloomfilter-$_bloomfilterver out-of-tree"
|
||||||
|
cd "$srcdir"/bloomfilter-*
|
||||||
|
patch -p1 -i "$srcdir"/bloomfilter-ghc9.2.diff
|
||||||
|
HOME="$_cabal_home" cabal v1-install
|
||||||
|
|
||||||
|
msg "installing dependency git-lfs-$_gitlfsver out-of-tree"
|
||||||
|
cd "$srcdir"/git-lfs-*
|
||||||
|
patch -p1 -i "$srcdir"/git-lfs-depend-update.diff
|
||||||
|
HOME="$_cabal_home" cabal v1-install
|
||||||
|
}
|
||||||
|
|
||||||
|
build() {
|
||||||
|
# ghc version path
|
||||||
|
export PATH="$PATH:/usr/lib/llvm14/bin"
|
||||||
|
|
||||||
|
msg "Building git-annex-$pkgver"
|
||||||
|
HOME="$_cabal_home" cabal update
|
||||||
|
HOME="$_cabal_home" cabal v1-install \
|
||||||
|
--only-dependencies \
|
||||||
|
$_feature_flags
|
||||||
|
HOME="$_cabal_home" cabal v1-configure $_feature_flags
|
||||||
|
HOME="$_cabal_home" cabal v1-build -j
|
||||||
|
mv dist/build/git-annex/git-annex .
|
||||||
|
ln -s git-annex git-annex-shell
|
||||||
|
}
|
||||||
|
|
||||||
|
check() {
|
||||||
|
"$builddir"/git-annex test
|
||||||
|
}
|
||||||
|
|
||||||
|
package() {
|
||||||
|
HOME="$_cabal_home" make DESTDIR="$pkgdir" install
|
||||||
|
}
|
||||||
|
|
||||||
|
sha512sums="
|
||||||
|
60047137c1b72d9d9161275063028af020016aa87b8929164ec35e53bb6d2eac1067896cc81e14bcd46ee1a3621319c9928658d94e80d2b88188242dce79bd10 git-annex-10.20230214.tar.gz
|
||||||
|
1031cc28c5e5c1b7687355b709d436ebab1956ffd7591a010fa3852a1bc7412925a365f99937feeacf4b1a5d3c7b34bc0370707ad6e4533280dcac4ea3fa7c21 bloomfilter-2.0.1.0.tar.gz
|
||||||
|
13d8c3c7c9844e935af278b4b6dc477b4ef069a3b61a5fea5bf28aadbd3ca4b475aa23701fe7be8a9468af78771d1fabda3e74c5d4b9a3fbb77ee8b803198f65 git-lfs-1.2.0.tar.gz
|
||||||
|
e7589b54b3b50b233c12ca0d5d4b94b82087067b2e1c40ed3678663c21f18723afc738571ec846e944aed946612894df6597ae81e4232e1053df8021df313ee2 git-annex.config
|
||||||
|
dceb863b2839fa6ec01390c1806f6da17fc2468f54a45b354da56f6d5412bc83292a456c387b6374aadb4aec1a490aac4f0373843d114ca33fb858f382a472ec git-lfs.config
|
||||||
|
500ebfd84e5771ed62ad2491b3f484d9a049091cd9bced072f34e64d81fd4db8aff2cfd9a0b2278335ac86198bfca551aec6ce3a2bd07d4484393a4288d3af35 bloomfilter-ghc9.2.diff
|
||||||
|
923d9e93380238115841f2dfbe61d34bf4bf8b3806f898d259125f31f5e4c6147840b1da737385aaa96a425d0dd4bacb2ab846ec3ea608ec6de243484fdded2e git-lfs-depend-update.diff
|
||||||
|
178be26bc808f6a5c065957b04e3a32b02f0a6b5eb8c422c9d8960b6e9a1f90d689360c5ad491156783b25e80f4c2f9861e9ccff5091c302be713fa3063df670 fix-makefile.patch
|
||||||
|
"
|
302
user/git-annex/bloomfilter-ghc9.2.diff
Normal file
302
user/git-annex/bloomfilter-ghc9.2.diff
Normal file
|
@ -0,0 +1,302 @@
|
||||||
|
From fb79b39c44404fd791a3bed973e9d844fb084f1e Mon Sep 17 00:00:00 2001
|
||||||
|
From: Simon Jakobi <simon.jakobi@gmail.com>
|
||||||
|
Date: Fri, 12 Nov 2021 01:37:36 +0100
|
||||||
|
Subject: [PATCH 1/2] Fix build with GHC 9.2
|
||||||
|
|
||||||
|
The `FastShift.shift{L,R}` methods are replaced with `unsafeShift{L,R}`
|
||||||
|
introduced in base-4.5.
|
||||||
|
|
||||||
|
Fixes #19.
|
||||||
|
---
|
||||||
|
Data/BloomFilter.hs | 16 +++++------
|
||||||
|
Data/BloomFilter/Hash.hs | 15 +++++-----
|
||||||
|
Data/BloomFilter/Mutable.hs | 20 +++++++-------
|
||||||
|
Data/BloomFilter/Util.hs | 55 ++++++-------------------------------
|
||||||
|
bloomfilter.cabal | 2 +-
|
||||||
|
5 files changed, 34 insertions(+), 74 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/Data/BloomFilter.hs b/Data/BloomFilter.hs
|
||||||
|
index 2210cef..6b47c21 100644
|
||||||
|
--- a/Data/BloomFilter.hs
|
||||||
|
+++ b/Data/BloomFilter.hs
|
||||||
|
@@ -78,8 +78,8 @@ import Control.DeepSeq (NFData(..))
|
||||||
|
import Data.Array.Base (unsafeAt)
|
||||||
|
import qualified Data.Array.Base as ST
|
||||||
|
import Data.Array.Unboxed (UArray)
|
||||||
|
-import Data.Bits ((.&.))
|
||||||
|
-import Data.BloomFilter.Util (FastShift(..), (:*)(..))
|
||||||
|
+import Data.Bits ((.&.), unsafeShiftL, unsafeShiftR)
|
||||||
|
+import Data.BloomFilter.Util ((:*)(..))
|
||||||
|
import qualified Data.BloomFilter.Mutable as MB
|
||||||
|
import qualified Data.BloomFilter.Mutable.Internal as MB
|
||||||
|
import Data.BloomFilter.Mutable.Internal (Hash, MBloom)
|
||||||
|
@@ -98,7 +98,7 @@ data Bloom a = B {
|
||||||
|
}
|
||||||
|
|
||||||
|
instance Show (Bloom a) where
|
||||||
|
- show ub = "Bloom { " ++ show ((1::Int) `shiftL` shift ub) ++ " bits } "
|
||||||
|
+ show ub = "Bloom { " ++ show ((1::Int) `unsafeShiftL` shift ub) ++ " bits } "
|
||||||
|
|
||||||
|
instance NFData (Bloom a) where
|
||||||
|
rnf !_ = ()
|
||||||
|
@@ -172,7 +172,7 @@ singleton hash numBits elt = create hash numBits (\mb -> MB.insert mb elt)
|
||||||
|
-- | Given a filter's mask and a hash value, compute an offset into
|
||||||
|
-- a word array and a bit offset within that word.
|
||||||
|
hashIdx :: Int -> Word32 -> (Int :* Int)
|
||||||
|
-hashIdx mask x = (y `shiftR` logBitsInHash) :* (y .&. hashMask)
|
||||||
|
+hashIdx mask x = (y `unsafeShiftR` logBitsInHash) :* (y .&. hashMask)
|
||||||
|
where hashMask = 31 -- bitsInHash - 1
|
||||||
|
y = fromIntegral x .&. mask
|
||||||
|
|
||||||
|
@@ -191,7 +191,7 @@ hashesU ub elt = hashIdx (mask ub) `map` hashes ub elt
|
||||||
|
-- /still/ some possibility that @True@ will be returned.
|
||||||
|
elem :: a -> Bloom a -> Bool
|
||||||
|
elem elt ub = all test (hashesU ub elt)
|
||||||
|
- where test (off :* bit) = (bitArray ub `unsafeAt` off) .&. (1 `shiftL` bit) /= 0
|
||||||
|
+ where test (off :* bit) = (bitArray ub `unsafeAt` off) .&. (1 `unsafeShiftL` bit) /= 0
|
||||||
|
|
||||||
|
modify :: (forall s. (MBloom s a -> ST s z)) -- ^ mutation function (result is discarded)
|
||||||
|
-> Bloom a
|
||||||
|
@@ -255,11 +255,11 @@ insertList elts = modify $ \mb -> mapM_ (MB.insert mb) elts
|
||||||
|
-- is /still/ some possibility that @True@ will be returned.
|
||||||
|
notElem :: a -> Bloom a -> Bool
|
||||||
|
notElem elt ub = any test (hashesU ub elt)
|
||||||
|
- where test (off :* bit) = (bitArray ub `unsafeAt` off) .&. (1 `shiftL` bit) == 0
|
||||||
|
+ where test (off :* bit) = (bitArray ub `unsafeAt` off) .&. (1 `unsafeShiftL` bit) == 0
|
||||||
|
|
||||||
|
-- | Return the size of an immutable Bloom filter, in bits.
|
||||||
|
length :: Bloom a -> Int
|
||||||
|
-length = shiftL 1 . shift
|
||||||
|
+length = unsafeShiftL 1 . shift
|
||||||
|
|
||||||
|
-- | Build an immutable Bloom filter from a seed value. The seeding
|
||||||
|
-- function populates the filter as follows.
|
||||||
|
@@ -318,7 +318,7 @@ fromList hashes numBits = unfold hashes numBits convert
|
||||||
|
logPower2 :: Int -> Int
|
||||||
|
logPower2 k = go 0 k
|
||||||
|
where go j 1 = j
|
||||||
|
- go j n = go (j+1) (n `shiftR` 1)
|
||||||
|
+ go j n = go (j+1) (n `unsafeShiftR` 1)
|
||||||
|
|
||||||
|
-- $overview
|
||||||
|
--
|
||||||
|
diff --git a/Data/BloomFilter/Hash.hs b/Data/BloomFilter/Hash.hs
|
||||||
|
index 132a3a4..d071fd4 100644
|
||||||
|
--- a/Data/BloomFilter/Hash.hs
|
||||||
|
+++ b/Data/BloomFilter/Hash.hs
|
||||||
|
@@ -38,8 +38,7 @@ module Data.BloomFilter.Hash
|
||||||
|
) where
|
||||||
|
|
||||||
|
import Control.Monad (foldM)
|
||||||
|
-import Data.Bits ((.&.), (.|.), xor)
|
||||||
|
-import Data.BloomFilter.Util (FastShift(..))
|
||||||
|
+import Data.Bits ((.&.), (.|.), unsafeShiftL, unsafeShiftR, xor)
|
||||||
|
import Data.List (unfoldr)
|
||||||
|
import Data.Int (Int8, Int16, Int32, Int64)
|
||||||
|
import Data.Word (Word8, Word16, Word32, Word64)
|
||||||
|
@@ -91,11 +90,11 @@ class Hashable a where
|
||||||
|
-> Word64 -- ^ salt
|
||||||
|
-> IO Word64
|
||||||
|
hashIO64 v salt = do
|
||||||
|
- let s1 = fromIntegral (salt `shiftR` 32) .&. maxBound
|
||||||
|
+ let s1 = fromIntegral (salt `unsafeShiftR` 32) .&. maxBound
|
||||||
|
s2 = fromIntegral salt
|
||||||
|
h1 <- hashIO32 v s1
|
||||||
|
h2 <- hashIO32 v s2
|
||||||
|
- return $ (fromIntegral h1 `shiftL` 32) .|. fromIntegral h2
|
||||||
|
+ return $ (fromIntegral h1 `unsafeShiftL` 32) .|. fromIntegral h2
|
||||||
|
|
||||||
|
-- | Compute a 32-bit hash.
|
||||||
|
hash32 :: Hashable a => a -> Word32
|
||||||
|
@@ -149,8 +148,8 @@ cheapHashes :: Hashable a => Int -- ^ number of hashes to compute
|
||||||
|
cheapHashes k v = go 0
|
||||||
|
where go i | i == j = []
|
||||||
|
| otherwise = hash : go (i + 1)
|
||||||
|
- where !hash = h1 + (h2 `shiftR` i)
|
||||||
|
- h1 = fromIntegral (h `shiftR` 32)
|
||||||
|
+ where !hash = h1 + (h2 `unsafeShiftR` i)
|
||||||
|
+ h1 = fromIntegral (h `unsafeShiftR` 32)
|
||||||
|
h2 = fromIntegral h
|
||||||
|
h = hashSalt64 0x9150a946c4a8966e v
|
||||||
|
j = fromIntegral k
|
||||||
|
@@ -163,7 +162,7 @@ instance Hashable Integer where
|
||||||
|
(salt `xor` 0x3ece731e)
|
||||||
|
| otherwise = hashIO32 (unfoldr go k) salt
|
||||||
|
where go 0 = Nothing
|
||||||
|
- go i = Just (fromIntegral i :: Word32, i `shiftR` 32)
|
||||||
|
+ go i = Just (fromIntegral i :: Word32, i `unsafeShiftR` 32)
|
||||||
|
|
||||||
|
instance Hashable Bool where
|
||||||
|
hashIO32 = hashOne32
|
||||||
|
@@ -224,7 +223,7 @@ instance Hashable Word64 where
|
||||||
|
-- | A fast unchecked shift. Nasty, but otherwise GHC 6.8.2 does a
|
||||||
|
-- test and branch on every shift.
|
||||||
|
div4 :: CSize -> CSize
|
||||||
|
-div4 k = fromIntegral ((fromIntegral k :: HTYPE_SIZE_T) `shiftR` 2)
|
||||||
|
+div4 k = fromIntegral ((fromIntegral k :: HTYPE_SIZE_T) `unsafeShiftR` 2)
|
||||||
|
|
||||||
|
alignedHash :: Ptr a -> CSize -> Word32 -> IO Word32
|
||||||
|
alignedHash ptr bytes salt
|
||||||
|
diff --git a/Data/BloomFilter/Mutable.hs b/Data/BloomFilter/Mutable.hs
|
||||||
|
index edff1fc..0bb5cc9 100644
|
||||||
|
--- a/Data/BloomFilter/Mutable.hs
|
||||||
|
+++ b/Data/BloomFilter/Mutable.hs
|
||||||
|
@@ -65,9 +65,9 @@ module Data.BloomFilter.Mutable
|
||||||
|
import Control.Monad (liftM, forM_)
|
||||||
|
import Control.Monad.ST (ST)
|
||||||
|
import Data.Array.Base (unsafeRead, unsafeWrite)
|
||||||
|
-import Data.Bits ((.&.), (.|.))
|
||||||
|
+import Data.Bits ((.&.), (.|.), unsafeShiftL, unsafeShiftR)
|
||||||
|
import Data.BloomFilter.Array (newArray)
|
||||||
|
-import Data.BloomFilter.Util (FastShift(..), (:*)(..), nextPowerOfTwo)
|
||||||
|
+import Data.BloomFilter.Util ((:*)(..), nextPowerOfTwo)
|
||||||
|
import Data.Word (Word32)
|
||||||
|
import Data.BloomFilter.Mutable.Internal
|
||||||
|
|
||||||
|
@@ -86,9 +86,9 @@ new hash numBits = MB hash shft msk `liftM` newArray numElems numBytes
|
||||||
|
| numBits > maxHash = maxHash
|
||||||
|
| isPowerOfTwo numBits = numBits
|
||||||
|
| otherwise = nextPowerOfTwo numBits
|
||||||
|
- numElems = max 2 (twoBits `shiftR` logBitsInHash)
|
||||||
|
- numBytes = numElems `shiftL` logBytesInHash
|
||||||
|
- trueBits = numElems `shiftL` logBitsInHash
|
||||||
|
+ numElems = max 2 (twoBits `unsafeShiftR` logBitsInHash)
|
||||||
|
+ numBytes = numElems `unsafeShiftL` logBytesInHash
|
||||||
|
+ trueBits = numElems `unsafeShiftL` logBitsInHash
|
||||||
|
shft = logPower2 trueBits
|
||||||
|
msk = trueBits - 1
|
||||||
|
isPowerOfTwo n = n .&. (n - 1) == 0
|
||||||
|
@@ -109,7 +109,7 @@ logBytesInHash = 2 -- logPower2 (sizeOf (undefined :: Hash))
|
||||||
|
-- | Given a filter's mask and a hash value, compute an offset into
|
||||||
|
-- a word array and a bit offset within that word.
|
||||||
|
hashIdx :: Int -> Word32 -> (Int :* Int)
|
||||||
|
-hashIdx msk x = (y `shiftR` logBitsInHash) :* (y .&. hashMask)
|
||||||
|
+hashIdx msk x = (y `unsafeShiftR` logBitsInHash) :* (y .&. hashMask)
|
||||||
|
where hashMask = 31 -- bitsInHash - 1
|
||||||
|
y = fromIntegral x .&. msk
|
||||||
|
|
||||||
|
@@ -125,7 +125,7 @@ insert mb elt = do
|
||||||
|
let mu = bitArray mb
|
||||||
|
forM_ (hashesM mb elt) $ \(word :* bit) -> do
|
||||||
|
old <- unsafeRead mu word
|
||||||
|
- unsafeWrite mu word (old .|. (1 `shiftL` bit))
|
||||||
|
+ unsafeWrite mu word (old .|. (1 `unsafeShiftL` bit))
|
||||||
|
|
||||||
|
-- | Query a mutable Bloom filter for membership. If the value is
|
||||||
|
-- present, return @True@. If the value is not present, there is
|
||||||
|
@@ -135,7 +135,7 @@ elem elt mb = loop (hashesM mb elt)
|
||||||
|
where mu = bitArray mb
|
||||||
|
loop ((word :* bit):wbs) = do
|
||||||
|
i <- unsafeRead mu word
|
||||||
|
- if i .&. (1 `shiftL` bit) == 0
|
||||||
|
+ if i .&. (1 `unsafeShiftL` bit) == 0
|
||||||
|
then return False
|
||||||
|
else loop wbs
|
||||||
|
loop _ = return True
|
||||||
|
@@ -145,7 +145,7 @@ elem elt mb = loop (hashesM mb elt)
|
||||||
|
|
||||||
|
-- | Return the size of a mutable Bloom filter, in bits.
|
||||||
|
length :: MBloom s a -> Int
|
||||||
|
-length = shiftL 1 . shift
|
||||||
|
+length = unsafeShiftL 1 . shift
|
||||||
|
|
||||||
|
|
||||||
|
-- | Slow, crummy way of computing the integer log of an integer known
|
||||||
|
@@ -153,7 +153,7 @@ length = shiftL 1 . shift
|
||||||
|
logPower2 :: Int -> Int
|
||||||
|
logPower2 k = go 0 k
|
||||||
|
where go j 1 = j
|
||||||
|
- go j n = go (j+1) (n `shiftR` 1)
|
||||||
|
+ go j n = go (j+1) (n `unsafeShiftR` 1)
|
||||||
|
|
||||||
|
-- $overview
|
||||||
|
--
|
||||||
|
diff --git a/Data/BloomFilter/Util.hs b/Data/BloomFilter/Util.hs
|
||||||
|
index 7f695dc..6ade6e5 100644
|
||||||
|
--- a/Data/BloomFilter/Util.hs
|
||||||
|
+++ b/Data/BloomFilter/Util.hs
|
||||||
|
@@ -2,15 +2,11 @@
|
||||||
|
|
||||||
|
module Data.BloomFilter.Util
|
||||||
|
(
|
||||||
|
- FastShift(..)
|
||||||
|
- , nextPowerOfTwo
|
||||||
|
+ nextPowerOfTwo
|
||||||
|
, (:*)(..)
|
||||||
|
) where
|
||||||
|
|
||||||
|
-import Data.Bits ((.|.))
|
||||||
|
-import qualified Data.Bits as Bits
|
||||||
|
-import GHC.Base
|
||||||
|
-import GHC.Word
|
||||||
|
+import Data.Bits ((.|.), unsafeShiftR)
|
||||||
|
|
||||||
|
-- | A strict pair type.
|
||||||
|
data a :* b = !a :* !b
|
||||||
|
@@ -22,46 +18,11 @@ nextPowerOfTwo :: Int -> Int
|
||||||
|
{-# INLINE nextPowerOfTwo #-}
|
||||||
|
nextPowerOfTwo n =
|
||||||
|
let a = n - 1
|
||||||
|
- b = a .|. (a `shiftR` 1)
|
||||||
|
- c = b .|. (b `shiftR` 2)
|
||||||
|
- d = c .|. (c `shiftR` 4)
|
||||||
|
- e = d .|. (d `shiftR` 8)
|
||||||
|
- f = e .|. (e `shiftR` 16)
|
||||||
|
- g = f .|. (f `shiftR` 32) -- in case we're on a 64-bit host
|
||||||
|
+ b = a .|. (a `unsafeShiftR` 1)
|
||||||
|
+ c = b .|. (b `unsafeShiftR` 2)
|
||||||
|
+ d = c .|. (c `unsafeShiftR` 4)
|
||||||
|
+ e = d .|. (d `unsafeShiftR` 8)
|
||||||
|
+ f = e .|. (e `unsafeShiftR` 16)
|
||||||
|
+ g = f .|. (f `unsafeShiftR` 32) -- in case we're on a 64-bit host
|
||||||
|
!h = g + 1
|
||||||
|
in h
|
||||||
|
-
|
||||||
|
--- | This is a workaround for poor optimisation in GHC 6.8.2. It
|
||||||
|
--- fails to notice constant-width shifts, and adds a test and branch
|
||||||
|
--- to every shift. This imposes about a 10% performance hit.
|
||||||
|
-class FastShift a where
|
||||||
|
- shiftL :: a -> Int -> a
|
||||||
|
- shiftR :: a -> Int -> a
|
||||||
|
-
|
||||||
|
-instance FastShift Word32 where
|
||||||
|
- {-# INLINE shiftL #-}
|
||||||
|
- shiftL (W32# x#) (I# i#) = W32# (x# `uncheckedShiftL#` i#)
|
||||||
|
-
|
||||||
|
- {-# INLINE shiftR #-}
|
||||||
|
- shiftR (W32# x#) (I# i#) = W32# (x# `uncheckedShiftRL#` i#)
|
||||||
|
-
|
||||||
|
-instance FastShift Word64 where
|
||||||
|
- {-# INLINE shiftL #-}
|
||||||
|
- shiftL (W64# x#) (I# i#) = W64# (x# `uncheckedShiftL64#` i#)
|
||||||
|
-
|
||||||
|
- {-# INLINE shiftR #-}
|
||||||
|
- shiftR (W64# x#) (I# i#) = W64# (x# `uncheckedShiftRL64#` i#)
|
||||||
|
-
|
||||||
|
-instance FastShift Int where
|
||||||
|
- {-# INLINE shiftL #-}
|
||||||
|
- shiftL (I# x#) (I# i#) = I# (x# `iShiftL#` i#)
|
||||||
|
-
|
||||||
|
- {-# INLINE shiftR #-}
|
||||||
|
- shiftR (I# x#) (I# i#) = I# (x# `iShiftRA#` i#)
|
||||||
|
-
|
||||||
|
-instance FastShift Integer where
|
||||||
|
- {-# INLINE shiftL #-}
|
||||||
|
- shiftL = Bits.shiftL
|
||||||
|
-
|
||||||
|
- {-# INLINE shiftR #-}
|
||||||
|
- shiftR = Bits.shiftR
|
||||||
|
diff --git a/bloomfilter.cabal b/bloomfilter.cabal
|
||||||
|
index 821a5d7..c621f7f 100644
|
||||||
|
--- a/bloomfilter.cabal
|
||||||
|
+++ b/bloomfilter.cabal
|
||||||
|
@@ -18,7 +18,7 @@ extra-source-files: README.markdown cbits/lookup3.c cbits/lookup3.h
|
||||||
|
library
|
||||||
|
build-depends:
|
||||||
|
array,
|
||||||
|
- base >= 4.4 && < 5,
|
||||||
|
+ base >= 4.5 && < 5,
|
||||||
|
bytestring >= 0.9,
|
||||||
|
deepseq
|
||||||
|
exposed-modules: Data.BloomFilter
|
||||||
|
|
34
user/git-annex/fix-makefile.patch
Normal file
34
user/git-annex/fix-makefile.patch
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
diff --git a/Makefile b/Makefile
|
||||||
|
index 437afb7ee2a..c471026dede 100644
|
||||||
|
--- a/Makefile
|
||||||
|
+++ b/Makefile
|
||||||
|
@@ -85,24 +85,24 @@ install-docs: docs install-mans
|
||||||
|
rsync -a --delete html/ $(DESTDIR)$(PREFIX)/$(SHAREDIR)/doc/git-annex/html/; \
|
||||||
|
fi
|
||||||
|
|
||||||
|
-install-bins: build
|
||||||
|
+install-bins:
|
||||||
|
install -d $(DESTDIR)$(PREFIX)/bin
|
||||||
|
install git-annex $(DESTDIR)$(PREFIX)/bin
|
||||||
|
ln -sf git-annex $(DESTDIR)$(PREFIX)/bin/git-annex-shell
|
||||||
|
ln -sf git-annex $(DESTDIR)$(PREFIX)/bin/git-remote-tor-annex
|
||||||
|
|
||||||
|
-install-desktop: build Build/InstallDesktopFile
|
||||||
|
+install-desktop: Build/InstallDesktopFile
|
||||||
|
./Build/InstallDesktopFile $(PREFIX)/bin/git-annex || true
|
||||||
|
|
||||||
|
-install-completions: build
|
||||||
|
+install-completions:
|
||||||
|
install -d $(DESTDIR)$(PREFIX)/$(SHAREDIR)/bash-completion/completions
|
||||||
|
install -m 0644 bash-completion.bash $(DESTDIR)$(PREFIX)/$(SHAREDIR)/bash-completion/completions/git-annex
|
||||||
|
install -d $(DESTDIR)$(ZSH_COMPLETIONS_PATH)
|
||||||
|
./git-annex --zsh-completion-script git-annex 2>/dev/null \
|
||||||
|
> $(DESTDIR)$(ZSH_COMPLETIONS_PATH)/_git-annex
|
||||||
|
- install -d $(DESTDIR)$(PREFIX)/$(SHAREDIR)/fish/vendor_completions.d
|
||||||
|
+ install -d $(DESTDIR)$(PREFIX)/$(SHAREDIR)/fish/completions
|
||||||
|
./git-annex --fish-completion-script git-annex 2>/dev/null \
|
||||||
|
- > $(DESTDIR)$(PREFIX)/$(SHAREDIR)/fish/vendor_completions.d/git-annex.fish
|
||||||
|
+ > $(DESTDIR)$(PREFIX)/$(SHAREDIR)/fish/completions/git-annex.fish
|
||||||
|
|
||||||
|
test: git-annex git-annex-shell
|
||||||
|
./git-annex test
|
267
user/git-annex/git-annex.config
Normal file
267
user/git-annex/git-annex.config
Normal file
|
@ -0,0 +1,267 @@
|
||||||
|
--10.20230214
|
||||||
|
constraints: Cabal ==3.8.1.0,
|
||||||
|
Cabal-syntax ==3.8.1.0,
|
||||||
|
DAV ==1.3.4,
|
||||||
|
Glob ==0.10.2,
|
||||||
|
HUnit ==1.6.2.0,
|
||||||
|
IfElse ==0.85,
|
||||||
|
OneTuple ==0.3.1,
|
||||||
|
Only ==0.1,
|
||||||
|
QuickCheck ==2.14.2,
|
||||||
|
SafeSemaphore ==0.10.1,
|
||||||
|
StateVar ==1.2.2,
|
||||||
|
adjunctions ==4.4.2,
|
||||||
|
aeson ==2.1.0.0,
|
||||||
|
alex ==3.2.7.1,
|
||||||
|
ansi-terminal ==0.11.4,
|
||||||
|
ansi-wl-pprint ==0.6.9,
|
||||||
|
appar ==0.1.8,
|
||||||
|
array ==0.5.4.0,
|
||||||
|
asn1-encoding ==0.9.6,
|
||||||
|
asn1-parse ==0.9.5,
|
||||||
|
asn1-types ==0.3.4,
|
||||||
|
assoc ==1.0.2,
|
||||||
|
async ==2.2.4,
|
||||||
|
attoparsec ==0.14.4,
|
||||||
|
attoparsec-iso8601 ==1.1.0.0,
|
||||||
|
auto-update ==0.1.6,
|
||||||
|
aws ==0.24,
|
||||||
|
base ==4.17.0.0,
|
||||||
|
base-compat ==0.12.2,
|
||||||
|
base-compat-batteries ==0.12.2,
|
||||||
|
base-orphans ==0.8.7,
|
||||||
|
base16-bytestring ==1.0.2.0,
|
||||||
|
base64-bytestring ==1.2.1.0,
|
||||||
|
basement ==0.0.15,
|
||||||
|
bencode ==0.6.1.1,
|
||||||
|
bifunctors ==5.5.14,
|
||||||
|
binary ==0.8.9.1,
|
||||||
|
binary-orphans ==1.0.3,
|
||||||
|
bitvec ==1.1.3.0,
|
||||||
|
blaze-builder ==0.4.2.2,
|
||||||
|
blaze-html ==0.9.1.2,
|
||||||
|
blaze-markup ==0.8.2.8,
|
||||||
|
bloomfilter ==2.0.1.0,
|
||||||
|
bsb-http-chunked ==0.0.0.4,
|
||||||
|
byteable ==0.1.1,
|
||||||
|
byteorder ==1.0.4,
|
||||||
|
bytestring ==0.11.3.1,
|
||||||
|
cabal-doctest ==1.0.9,
|
||||||
|
call-stack ==0.4.0,
|
||||||
|
case-insensitive ==1.2.1.0,
|
||||||
|
cassava ==0.5.3.0,
|
||||||
|
cereal ==0.5.8.3,
|
||||||
|
cipher-aes ==0.2.11,
|
||||||
|
clientsession ==0.9.1.2,
|
||||||
|
clock ==0.8.3,
|
||||||
|
code-page ==0.2.1,
|
||||||
|
colour ==2.3.6,
|
||||||
|
comonad ==5.0.8,
|
||||||
|
concurrent-output ==1.10.17,
|
||||||
|
conduit ==1.3.4.3,
|
||||||
|
conduit-extra ==1.3.6,
|
||||||
|
connection ==0.3.1,
|
||||||
|
containers ==0.6.6,
|
||||||
|
contravariant ==1.5.5,
|
||||||
|
cookie ==0.4.6,
|
||||||
|
cprng-aes ==0.6.1,
|
||||||
|
criterion ==1.6.0.0,
|
||||||
|
criterion-measurement ==0.2.1.0,
|
||||||
|
crypto-api ==0.13.3,
|
||||||
|
crypto-cipher-types ==0.0.9,
|
||||||
|
crypto-random ==0.0.9,
|
||||||
|
cryptohash-md5 ==0.11.101.0,
|
||||||
|
cryptohash-sha1 ==0.11.101.0,
|
||||||
|
cryptonite ==0.30,
|
||||||
|
cryptonite-conduit ==0.2.2,
|
||||||
|
css-text ==0.1.3.0,
|
||||||
|
data-default ==0.7.1.1,
|
||||||
|
data-default-class ==0.1.2.0,
|
||||||
|
data-default-instances-containers ==0.0.1,
|
||||||
|
data-default-instances-dlist ==0.0.1,
|
||||||
|
data-default-instances-old-locale ==0.0.1,
|
||||||
|
data-fix ==0.3.2,
|
||||||
|
dbus ==1.2.27,
|
||||||
|
deepseq ==1.4.8.0,
|
||||||
|
dense-linear-algebra ==0.1.0.0,
|
||||||
|
directory ==1.3.7.1,
|
||||||
|
disk-free-space ==0.1.0.1,
|
||||||
|
distributive ==0.6.2.1,
|
||||||
|
dlist ==1.0,
|
||||||
|
easy-file ==0.2.2,
|
||||||
|
edit-distance ==0.2.2.1,
|
||||||
|
email-validate ==2.3.2.18,
|
||||||
|
entropy ==0.4.1.10,
|
||||||
|
exceptions ==0.10.5,
|
||||||
|
fast-logger ==3.1.2,
|
||||||
|
fdo-notify ==0.3.1,
|
||||||
|
feed ==1.3.2.1,
|
||||||
|
file-embed ==0.0.15.0,
|
||||||
|
filepath ==1.4.2.2,
|
||||||
|
filepath-bytestring ==1.4.2.1.12,
|
||||||
|
free ==5.1.10,
|
||||||
|
generically ==0.1,
|
||||||
|
ghc-bignum ==1.3,
|
||||||
|
ghc-boot-th ==9.4.4,
|
||||||
|
ghc-prim ==0.9.0,
|
||||||
|
git-lfs ==1.2.0,
|
||||||
|
happy ==1.20.1.1,
|
||||||
|
hashable ==1.4.2.0,
|
||||||
|
haskeline ==0.8.2,
|
||||||
|
hinotify ==0.4.1,
|
||||||
|
hjsmin ==0.2.1,
|
||||||
|
hourglass ==0.2.12,
|
||||||
|
hsc2hs ==0.68.9,
|
||||||
|
http-api-data ==0.5,
|
||||||
|
http-client ==0.7.13.1,
|
||||||
|
http-client-restricted ==0.0.5,
|
||||||
|
http-client-tls ==0.3.6.1,
|
||||||
|
http-conduit ==2.3.8,
|
||||||
|
http-date ==0.0.11,
|
||||||
|
http-types ==0.12.3,
|
||||||
|
http2 ==4.0.0,
|
||||||
|
indexed-traversable ==0.1.2,
|
||||||
|
indexed-traversable-instances ==0.1.1.1,
|
||||||
|
integer-gmp ==1.1,
|
||||||
|
integer-logarithms ==1.0.3.1,
|
||||||
|
invariant ==0.6,
|
||||||
|
iproute ==1.7.12,
|
||||||
|
js-chart ==2.9.4.1,
|
||||||
|
kan-extensions ==5.2.5,
|
||||||
|
language-javascript ==0.7.1.0,
|
||||||
|
lens ==5.2,
|
||||||
|
libyaml ==0.1.2,
|
||||||
|
lift-type ==0.1.1.1,
|
||||||
|
lifted-base ==0.2.3.12,
|
||||||
|
magic ==1.1,
|
||||||
|
math-functions ==0.3.4.2,
|
||||||
|
memory ==0.18.0,
|
||||||
|
microlens ==0.4.13.1,
|
||||||
|
microlens-th ==0.4.3.11,
|
||||||
|
microstache ==1.0.2.3,
|
||||||
|
mime-types ==0.1.1.0,
|
||||||
|
monad-control ==1.0.3.1,
|
||||||
|
monad-logger ==0.3.39,
|
||||||
|
monad-loops ==0.4.3,
|
||||||
|
mono-traversable ==1.0.15.3,
|
||||||
|
mountpoints ==1.0.2,
|
||||||
|
mtl ==2.2.2,
|
||||||
|
mwc-random ==0.15.0.2,
|
||||||
|
network ==3.1.2.7,
|
||||||
|
network-bsd ==2.8.1.0,
|
||||||
|
network-byte-order ==0.1.6,
|
||||||
|
network-info ==0.2.1,
|
||||||
|
network-multicast ==0.3.2,
|
||||||
|
network-uri ==2.6.4.2,
|
||||||
|
old-locale ==1.0.0.7,
|
||||||
|
old-time ==1.1.0.3,
|
||||||
|
optparse-applicative ==0.17.0.0,
|
||||||
|
parallel ==3.2.2.0,
|
||||||
|
parsec ==3.1.15.0,
|
||||||
|
path-pieces ==0.2.1,
|
||||||
|
pem ==0.2.4,
|
||||||
|
persistent ==2.14.4.4,
|
||||||
|
persistent-sqlite ==2.13.1.1,
|
||||||
|
persistent-template ==2.12.0.0,
|
||||||
|
pretty ==1.1.3.6,
|
||||||
|
primitive ==0.7.4.0,
|
||||||
|
process ==1.6.16.0,
|
||||||
|
profunctors ==5.6.2,
|
||||||
|
psqueues ==0.2.7.3,
|
||||||
|
random ==1.2.1.1,
|
||||||
|
recv ==0.1.0,
|
||||||
|
reflection ==2.1.6,
|
||||||
|
regex-base ==0.94.0.2,
|
||||||
|
regex-tdfa ==1.3.2,
|
||||||
|
resource-pool ==0.4.0.0,
|
||||||
|
resourcet ==1.2.6,
|
||||||
|
rts ==1.0.2,
|
||||||
|
safe ==0.3.19,
|
||||||
|
safe-exceptions ==0.1.7.3,
|
||||||
|
sandi ==0.5,
|
||||||
|
scientific ==0.3.7.0,
|
||||||
|
securemem ==0.1.10,
|
||||||
|
semialign ==1.2.0.1,
|
||||||
|
semigroupoids ==5.3.7,
|
||||||
|
semigroups ==0.20,
|
||||||
|
setenv ==0.1.1.3,
|
||||||
|
shakespeare ==2.0.30,
|
||||||
|
silently ==1.2.5.3,
|
||||||
|
simple-sendfile ==0.2.30,
|
||||||
|
skein ==1.0.9.4,
|
||||||
|
socks ==0.6.1,
|
||||||
|
split ==0.2.3.5,
|
||||||
|
splitmix ==0.1.0.4,
|
||||||
|
statistics ==0.16.1.2,
|
||||||
|
stm ==2.5.1.0,
|
||||||
|
stm-chans ==3.0.0.6,
|
||||||
|
streaming-commons ==0.2.2.5,
|
||||||
|
strict ==0.4.0.1,
|
||||||
|
syb ==0.7.2.2,
|
||||||
|
tagged ==0.8.7,
|
||||||
|
tagsoup ==0.14.8,
|
||||||
|
tasty ==1.4.3,
|
||||||
|
tasty-hunit ==0.10.0.3,
|
||||||
|
tasty-quickcheck ==0.10.2,
|
||||||
|
tasty-rerun ==1.1.18,
|
||||||
|
template-haskell ==2.19.0.0,
|
||||||
|
terminal-size ==0.3.3,
|
||||||
|
terminfo ==0.4.1.5,
|
||||||
|
text ==2.0.1,
|
||||||
|
text-short ==0.1.5,
|
||||||
|
th-abstraction ==0.4.5.0,
|
||||||
|
th-compat ==0.1.4,
|
||||||
|
th-lift ==0.8.2,
|
||||||
|
th-lift-instances ==0.1.20,
|
||||||
|
these ==1.1.1.1,
|
||||||
|
time ==1.12.2,
|
||||||
|
time-compat ==1.9.6.1,
|
||||||
|
time-locale-compat ==0.1.1.5,
|
||||||
|
time-manager ==0.0.0,
|
||||||
|
tls ==1.6.0,
|
||||||
|
tls-session-manager ==0.0.4,
|
||||||
|
torrent ==10000.1.1,
|
||||||
|
transformers ==0.5.6.2,
|
||||||
|
transformers-base ==0.4.6,
|
||||||
|
transformers-compat ==0.7.2,
|
||||||
|
typed-process ==0.2.10.1,
|
||||||
|
unix ==2.7.3,
|
||||||
|
unix-compat ==0.6,
|
||||||
|
unix-time ==0.4.8,
|
||||||
|
unliftio ==0.2.23.0,
|
||||||
|
unliftio-core ==0.2.1.0,
|
||||||
|
unordered-containers ==0.2.19.1,
|
||||||
|
utf8-string ==1.0.2,
|
||||||
|
uuid ==1.3.15,
|
||||||
|
uuid-types ==1.0.5,
|
||||||
|
vault ==0.3.1.5,
|
||||||
|
vector ==0.13.0.0,
|
||||||
|
vector-algorithms ==0.9.0.1,
|
||||||
|
vector-binary-instances ==0.2.5.2,
|
||||||
|
vector-stream ==0.1.0.0,
|
||||||
|
vector-th-unbox ==0.2.2,
|
||||||
|
void ==0.7.3,
|
||||||
|
wai ==3.2.3,
|
||||||
|
wai-app-static ==3.1.7.4,
|
||||||
|
wai-extra ==3.1.13.0,
|
||||||
|
wai-logger ==2.4.0,
|
||||||
|
warp ==3.3.24,
|
||||||
|
warp-tls ==3.3.5,
|
||||||
|
witherable ==0.4.2,
|
||||||
|
word8 ==0.1.3,
|
||||||
|
x509 ==1.7.7,
|
||||||
|
x509-store ==1.6.9,
|
||||||
|
x509-system ==1.6.7,
|
||||||
|
x509-validation ==1.6.12,
|
||||||
|
xml-conduit ==1.9.1.1,
|
||||||
|
xml-hamlet ==0.5.0.2,
|
||||||
|
xml-types ==0.3.8,
|
||||||
|
xss-sanitize ==0.3.7.1,
|
||||||
|
yaml ==0.11.10.0,
|
||||||
|
yesod ==1.6.2.1,
|
||||||
|
yesod-core ==1.6.24.1,
|
||||||
|
yesod-form ==1.7.4,
|
||||||
|
yesod-persistent ==1.6.0.8,
|
||||||
|
yesod-static ==1.6.1.0,
|
||||||
|
z-attoparsec-z-attoparsec-internal ==0.14.4,
|
||||||
|
zlib ==0.6.3.0
|
18
user/git-annex/git-lfs-depend-update.diff
Normal file
18
user/git-annex/git-lfs-depend-update.diff
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
diff --git a/git-lfs.cabal b/git-lfs.cabal
|
||||||
|
index c4a116993af..05aba2c5cf9 100644
|
||||||
|
--- a/git-lfs.cabal
|
||||||
|
+++ b/git-lfs.cabal
|
||||||
|
@@ -23,11 +23,11 @@ Library
|
||||||
|
base >= 4.5 && < 5,
|
||||||
|
http-client >= 0.5 && < 0.8,
|
||||||
|
http-types >= 0.7 && < 0.13,
|
||||||
|
- aeson >= 1.3 && < 2.1,
|
||||||
|
+ aeson >= 1.3 && <= 2.2,
|
||||||
|
network-uri >= 2.6 && < 2.8,
|
||||||
|
case-insensitive >= 1.2 && < 1.3,
|
||||||
|
containers >= 0.5 && < 0.7,
|
||||||
|
- text >= 1.2 && < 1.3,
|
||||||
|
+ text >= 1.2 && < 2.1,
|
||||||
|
bytestring >= 0.10 && < 0.12
|
||||||
|
|
||||||
|
source-repository head
|
80
user/git-annex/git-lfs.config
Normal file
80
user/git-annex/git-lfs.config
Normal file
|
@ -0,0 +1,80 @@
|
||||||
|
--10.20230214
|
||||||
|
constraints: OneTuple ==0.3.1,
|
||||||
|
QuickCheck ==2.14.2,
|
||||||
|
StateVar ==1.2.2,
|
||||||
|
aeson ==2.1.0.0,
|
||||||
|
appar ==0.1.8,
|
||||||
|
array ==0.5.4.0,
|
||||||
|
assoc ==1.0.2,
|
||||||
|
async ==2.2.4,
|
||||||
|
attoparsec ==0.14.4,
|
||||||
|
base ==4.17.0.0,
|
||||||
|
base-compat ==0.12.2,
|
||||||
|
base-compat-batteries ==0.12.2,
|
||||||
|
base-orphans ==0.8.7,
|
||||||
|
base64-bytestring ==1.2.1.0,
|
||||||
|
bifunctors ==5.5.14,
|
||||||
|
binary ==0.8.9.1,
|
||||||
|
blaze-builder ==0.4.2.2,
|
||||||
|
byteorder ==1.0.4,
|
||||||
|
bytestring ==0.11.3.1,
|
||||||
|
case-insensitive ==1.2.1.0,
|
||||||
|
comonad ==5.0.8,
|
||||||
|
containers ==0.6.6,
|
||||||
|
contravariant ==1.5.5,
|
||||||
|
cookie ==0.4.6,
|
||||||
|
data-default-class ==0.1.2.0,
|
||||||
|
data-fix ==0.3.2,
|
||||||
|
deepseq ==1.4.8.0,
|
||||||
|
directory ==1.3.7.1,
|
||||||
|
distributive ==0.6.2.1,
|
||||||
|
dlist ==1.0,
|
||||||
|
exceptions ==0.10.5,
|
||||||
|
filepath ==1.4.2.2,
|
||||||
|
generically ==0.1,
|
||||||
|
ghc-bignum ==1.3,
|
||||||
|
ghc-boot-th ==9.4.4,
|
||||||
|
ghc-prim ==0.9.0,
|
||||||
|
hashable ==1.4.2.0,
|
||||||
|
http-client ==0.7.13.1,
|
||||||
|
http-types ==0.12.3,
|
||||||
|
indexed-traversable ==0.1.2,
|
||||||
|
indexed-traversable-instances ==0.1.1.1,
|
||||||
|
integer-logarithms ==1.0.3.1,
|
||||||
|
iproute ==1.7.12,
|
||||||
|
mime-types ==0.1.1.0,
|
||||||
|
mtl ==2.2.2,
|
||||||
|
network ==3.1.2.7,
|
||||||
|
network-uri ==2.6.4.2,
|
||||||
|
parsec ==3.1.15.0,
|
||||||
|
pretty ==1.1.3.6,
|
||||||
|
primitive ==0.7.4.0,
|
||||||
|
process ==1.6.16.0,
|
||||||
|
random ==1.2.1.1,
|
||||||
|
rts ==1.0.2,
|
||||||
|
scientific ==0.3.7.0,
|
||||||
|
semialign ==1.2.0.1,
|
||||||
|
semigroupoids ==5.3.7,
|
||||||
|
splitmix ==0.1.0.4,
|
||||||
|
stm ==2.5.1.0,
|
||||||
|
streaming-commons ==0.2.2.5,
|
||||||
|
strict ==0.4.0.1,
|
||||||
|
tagged ==0.8.7,
|
||||||
|
template-haskell ==2.19.0.0,
|
||||||
|
text ==2.0.1,
|
||||||
|
text-short ==0.1.5,
|
||||||
|
th-abstraction ==0.4.5.0,
|
||||||
|
th-compat ==0.1.4,
|
||||||
|
these ==1.1.1.1,
|
||||||
|
time ==1.12.2,
|
||||||
|
time-compat ==1.9.6.1,
|
||||||
|
transformers ==0.5.6.2,
|
||||||
|
transformers-compat ==0.7.2,
|
||||||
|
unix ==2.7.3,
|
||||||
|
unordered-containers ==0.2.19.1,
|
||||||
|
uuid-types ==1.0.5,
|
||||||
|
vector ==0.13.0.0,
|
||||||
|
vector-stream ==0.1.0.0,
|
||||||
|
witherable ==0.4.2,
|
||||||
|
z-attoparsec-z-attoparsec-internal ==0.14.4,
|
||||||
|
zlib ==0.6.3.0
|
Loading…
Reference in a new issue