[DHG_packages] 01/01: tar: Optimistically drop 32 bit compatibility patch; upstream code changed non-trivially, so I first want to test if it is still required.

Joachim Breitner nomeata at moszumanska.debian.org
Tue May 31 08:33:23 UTC 2016


This is an automated email from the git hooks/post-receive script.

nomeata pushed a commit to branch LTS-6
in repository DHG_packages.

commit e361932443066937a4c7dbd50c9ad2fd6523bf0c
Author: Joachim Breitner <mail at joachim-breitner.de>
Date:   Tue May 31 10:33:16 2016 +0200

    tar: Optimistically drop 32 bit compatibility patch; upstream code changed non-trivially, so I first want to test if it is still required.
---
 p/haskell-tar/debian/changelog                |   2 +
 p/haskell-tar/debian/patches/32-bit-fix.patch | 193 --------------------------
 p/haskell-tar/debian/patches/series           |   1 -
 3 files changed, 2 insertions(+), 194 deletions(-)

diff --git a/p/haskell-tar/debian/changelog b/p/haskell-tar/debian/changelog
index b4507fd..5e68749 100644
--- a/p/haskell-tar/debian/changelog
+++ b/p/haskell-tar/debian/changelog
@@ -6,6 +6,8 @@ haskell-tar (0.5.0.3-1) unstable; urgency=medium
 
   [ Joachim Breitner ]
   * New upstream release
+  * Optimistically drop 32 bit compatibility patch; upstream code changed
+    non-trivially, so I first want to test if it is still required.
 
  -- Joachim Breitner <nomeata at debian.org>  Mon, 30 May 2016 17:12:59 +0200
 
diff --git a/p/haskell-tar/debian/patches/32-bit-fix.patch b/p/haskell-tar/debian/patches/32-bit-fix.patch
deleted file mode 100644
index 607563c..0000000
--- a/p/haskell-tar/debian/patches/32-bit-fix.patch
+++ /dev/null
@@ -1,193 +0,0 @@
-patch 524c5e47d185dd7a7ad45744d89d202ff5d04947
-Author: Joachim Breitner <mail at joachim-breitner.de>
-Date:   Thu Oct 29 13:22:58 CET 2015
-  * Introduce Enum32 type class
-  
-  to avoid converting via Enum’s fromEnum, which goes via Int, so for example it
-  cannot be used to convert Word32 into Word32.
-diff -rN -u old-tar/Codec/Archive/Tar/Index/IntTrie.hs new-tar/Codec/Archive/Tar/Index/IntTrie.hs
---- old-tar/Codec/Archive/Tar/Index/IntTrie.hs	2015-10-29 15:40:28.313571854 +0100
-+++ new-tar/Codec/Archive/Tar/Index/IntTrie.hs	2015-10-29 15:40:28.313571854 +0100
-@@ -9,6 +9,8 @@
-   lookup,
-   TrieLookup(..),
- 
-+  Enum32,
-+
- #ifdef TESTS
-   test1, test2, test3,
-   ValidPaths(..),
-@@ -27,6 +29,7 @@
- import Data.Array.IArray  ((!))
- import qualified Data.Bits as Bits
- import Data.Word (Word32)
-+import Data.Char (chr, ord)
- 
- import Data.List hiding (lookup)
- import Data.Function (on)
-@@ -37,6 +40,25 @@
- #endif
- 
- 
-+-- | A type class for types that can be encoded in 32 bits. The usual 'Enum'
-+-- class is insufficient, as @fromEnum :: Word32 -> Int@ fails on 32 bit architectures,
-+-- as some Word32’s are larger than maxInt.
-+class Enum32 a where
-+    fromWord32 :: Word32 -> a
-+    toWord32 :: a -> Word32
-+
-+instance Enum32 Word32 where
-+    fromWord32 = id
-+    toWord32 = id
-+
-+instance Enum32 Int where
-+    fromWord32 = fromIntegral
-+    toWord32 = fromIntegral
-+
-+instance Enum32 Char where
-+    fromWord32 = chr . fromWord32
-+    toWord32 = toWord32 . ord
-+
- -- | A compact mapping from sequences of small nats to nats.
- --
- newtype IntTrie k v = IntTrie (A.UArray Word32 Word32)
-@@ -179,14 +201,14 @@
- -- Decoding the trie array form
- --
- 
--completionsFrom :: (Enum k, Enum v) => IntTrie k v -> Word32 -> Completions k v
-+completionsFrom :: (Enum32 k, Enum32 v) => IntTrie k v -> Word32 -> Completions k v
- completionsFrom trie@(IntTrie arr) nodeOff =
--    [ (word32ToEnum (untag key), next)
-+    [ (fromWord32 (untag key), next)
-     | keyOff <- [keysStart..keysEnd]
-     , let key   = arr ! keyOff
-           entry = arr ! (keyOff + nodeSize)
-           next | isNode key = Completions (completionsFrom trie entry)
--               | otherwise  = Entry (word32ToEnum entry)
-+               | otherwise  = Entry (fromWord32 entry)
-     ]
-   where
-     nodeSize  = arr ! nodeOff
-@@ -203,7 +225,7 @@
- -- | Build an 'IntTrie' from a bunch of (key, value) pairs, where the keys
- -- are sequences.
- --
--construct :: (Ord k, Enum k, Enum v) => [([k], v)] -> IntTrie k v
-+construct :: (Ord k, Enum32 k, Enum32 v) => [([k], v)] -> IntTrie k v
- construct = IntTrie . mkArray . flattenTrie . mkTrie
- 
- mkArray :: [Word32] -> A.UArray Word32 Word32
-@@ -217,7 +239,7 @@
- data TrieLookup  k v = Entry !v | Completions (Completions k v) deriving Show
- type Completions k v = [(k, TrieLookup k v)]
- 
--lookup :: forall k v. (Enum k, Enum v) => IntTrie k v -> [k] -> Maybe (TrieLookup k v)
-+lookup :: forall k v. (Enum32 k, Enum32 v) => IntTrie k v -> [k] -> Maybe (TrieLookup k v)
- lookup trie@(IntTrie arr) = go 0
-   where
-     go :: Word32 -> [k] -> Maybe (TrieLookup k v)
-@@ -230,9 +252,9 @@
-         Nothing       -> Nothing
-         Just entryOff -> go (arr ! entryOff) ks
-       where
--        k' = enumToWord32 k
-+        k' = toWord32 k
- 
--    entry       entryOff = Entry (word32ToEnum (arr ! entryOff))
-+    entry       entryOff = Entry (fromWord32 (arr ! entryOff))
-     completions nodeOff  = Completions (completionsFrom trie nodeOff)
- 
-     search :: Word32 -> Word32 -> Maybe Word32
-@@ -252,13 +274,6 @@
-       where mid = (a + b) `div` 2
- 
- 
--enumToWord32 :: Enum n => n -> Word32
--enumToWord32 = fromIntegral . fromEnum
--
--word32ToEnum :: Enum n => Word32 -> n
--word32ToEnum = toEnum . fromIntegral
--
--
- -------------------------
- -- Intermediate Trie type
- --
-@@ -313,19 +328,19 @@
-             []    -> Leaf k0 v0
-             ksvs' -> Node k0 ksvs'
- 
--type Offset = Int
-+type Offset = Word32
- 
- -- This is a breadth-first traversal. We keep a list of the tries that we are
- -- to write out next. Each of these have an offset allocated to them at the
- -- time we put them into the list. We keep a running offset so we know where
- -- to allocate next.
- --
--flattenTrie :: (Enum k, Enum v) => Trie k v -> [Word32]
-+flattenTrie :: (Enum32 k, Enum32 v) => Trie k v -> [Word32]
- flattenTrie trie = go (queue [trie]) (size trie)
-   where
--    size (Trie tns) = 1 + 2 * length tns
-+    size (Trie tns) = fromIntegral $ 1 + 2 * length tns
- 
--    go :: (Enum k, Enum v) => Q (Trie k v) -> Offset -> [Word32]
-+    go :: (Enum32 k, Enum32 v) => Q (Trie k v) -> Offset -> [Word32]
-     go todo !offset =
-       case dequeue todo of
-         Nothing                   -> []
-@@ -342,8 +357,8 @@
-       Leaf k v -> doNodes off            (leafKV k v  :kvs)    ts'  tns
-       Node k t -> doNodes (off + size t) (nodeKV k off:kvs) (t:ts') tns
- 
--    leafKV k v = (tagLeaf (enum2Word32 k), enum2Word32 v)
--    nodeKV k o = (tagNode (enum2Word32 k), int2Word32  o)
-+    leafKV k v = (tagLeaf (toWord32 k), toWord32 v)
-+    nodeKV k o = (tagNode (toWord32 k), o)
- 
- data Q a = Q [a] [[a]]
- 
-@@ -360,20 +375,13 @@
-                                x:xs -> Just (x, Q xs [])
-                                []   -> Nothing
- 
--int2Word32 :: Int -> Word32
--int2Word32 = fromIntegral
--
--enum2Word32 :: Enum n => n -> Word32
--enum2Word32 = int2Word32 . fromEnum
--
--
- -------------------------
- -- Correctness property
- --
- 
- #ifdef TESTS
- 
--prop_lookup :: (Ord k, Enum k, Eq v, Enum v, Show k, Show v)
-+prop_lookup :: (Ord k, Enum32 k, Eq v, Enum32 v, Show k, Show v)
-             => [([k], v)] -> Bool
- prop_lookup paths =
-   flip all paths $ \(key, value) ->
-@@ -386,7 +394,7 @@
-   where
-     trie = construct paths
- 
--prop_completions :: forall k v. (Ord k, Enum k, Eq v, Enum v) => [([k], v)] -> Bool
-+prop_completions :: forall k v. (Ord k, Enum32 k, Eq v, Enum32 v) => [([k], v)] -> Bool
- prop_completions paths =
-     mkTrie paths == convertCompletions (completionsFrom (construct paths) 0)
-   where
-diff -rN -u old-tar/Codec/Archive/Tar/Index.hs new-tar/Codec/Archive/Tar/Index.hs
---- old-tar/Codec/Archive/Tar/Index.hs	2015-10-29 15:40:28.313571854 +0100
-+++ new-tar/Codec/Archive/Tar/Index.hs	2015-10-29 15:40:28.313571854 +0100
-@@ -154,7 +154,7 @@
- 
- 
- newtype PathComponentId = PathComponentId Int
--  deriving (Eq, Ord, Enum, Show, Typeable)
-+  deriving (Eq, Ord, Enum, IntTrie.Enum32, Show, Typeable)
- 
- -- | An offset within a tar file. Use 'hReadEntry', 'hReadEntryHeader' or
- -- 'hSeekEntryOffset'.
diff --git a/p/haskell-tar/debian/patches/series b/p/haskell-tar/debian/patches/series
deleted file mode 100644
index b90b7f1..0000000
--- a/p/haskell-tar/debian/patches/series
+++ /dev/null
@@ -1 +0,0 @@
-32-bit-fix.patch

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-haskell/DHG_packages.git



More information about the Pkg-haskell-commits mailing list