[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Bug on building yi-0.8.1



Hi Joachim,

>I just noticed that yi is incompatible with QuickCheck-2.7 (without
>specifying that in the version we have, unfortunately):
>https://buildd.debian.org/status/fetch.php?pkg=yi&arch=amd64&ver=0.7.1-1%2Bb3&stamp=1406815493

>Since you seem to be interested in yi: Could you try to come up a patch
>that makes yi-0.7.1 build with QuickCheck-2.7?
>
>yi-0.8.1 would be compatible... but it doesn’t build.

Of course!
I have made a minimal patch (Yi.Syntax.Tree-quickcheck-2.7-patch.diff)
which fixes the build in clean unstable. I made a quick test of the
binary and tried fumbling with pbuilder, which gave neither error nor
binary. I think the patch is sufficient, but to make a bit cleaner, the
second patch introduces a conservative upper bound in the dependencies
of yi to quickcheck, to find this sort of thing before attempting the
longish build.

Would you kindly commit the patches to make yi-0.7.1 build-/installable
on unstable again?

Be welcome,
Marcel

-- 
Marcel Fourné
"Artistic" need not be limited to the fine arts, but "simple" can be
harder to achieve in computer science. "Quality" even more so, so don't
get me started on "secure".
--- yi-0.7.1-orig/src/library/Yi/Syntax/Tree.hs	2014-08-04 08:36:28.000000000 +0200
+++ yi-0.7.1/src/library/Yi/Syntax/Tree.hs	2014-08-04 08:37:40.618395219 +0200
@@ -25,6 +25,7 @@
 import Data.Monoid (First(..), Last(..), getFirst, getLast, mempty)
 #ifdef TESTING
 import Test.QuickCheck
+import Test.QuickCheck.Property (unProperty)
 #endif
 
 import Yi.Buffer.Basic
@@ -339,33 +340,35 @@
    let final@(_, (_, finalSubtree)) = fromLeafAfterToFinal p n
        finalRegion = subtreeRegion finalSubtree
        initialRegion = nodeRegion n
-       
+
    whenFail (do putStrLn $ "final = " ++ show final
                 putStrLn $ "final reg = " ++ show finalRegion
                 putStrLn $ "initialReg = " ++ show initialRegion
                 putStrLn $ "p = " ++ show p
-            ) 
+            )
      ((regionStart finalRegion <= p) && (initialRegion `includedRegion` finalRegion))
 
 prop_allLeavesAfter :: NTTT -> Property
-prop_allLeavesAfter (N n@(xs,t)) = do
+prop_allLeavesAfter (N n@(xs,t)) = property $ do
   let after = allLeavesRelative afterChild n
   (xs',t') <- elements after
   let t'' = walkDown (xs',t)
-  whenFail (do putStrLn $ "t' = " ++ show t'
-               putStrLn $ "t'' = " ++ show t''
-               putStrLn $ "xs' = " ++ show xs'
-           ) (Just t' == t'' && xs <= xs')
+  unProperty $ whenFail (do
+      putStrLn $ "t' = " ++ show t'
+      putStrLn $ "t'' = " ++ show t''
+      putStrLn $ "xs' = " ++ show xs'
+    ) (Just t' == t'' && xs <= xs')
 
 prop_allLeavesBefore :: NTTT -> Property
-prop_allLeavesBefore (N n@(xs,t)) = do
+prop_allLeavesBefore (N n@(xs,t)) = property $ do
   let after = allLeavesRelative beforeChild n
   (xs',t') <- elements after
   let t'' = walkDown (xs',t)
-  whenFail (do putStrLn $ "t' = " ++ show t'
-               putStrLn $ "t'' = " ++ show t''
-               putStrLn $ "xs' = " ++ show xs'
-           ) (Just t' == t'' && xs' <= xs)
+  unProperty $ whenFail (do
+      putStrLn $ "t' = " ++ show t'
+      putStrLn $ "t'' = " ++ show t''
+      putStrLn $ "xs' = " ++ show xs'
+    ) (Just t' == t'' && xs' <= xs)
 
 prop_fromNodeToLeafAfter :: NTTT -> Property
 prop_fromNodeToLeafAfter (N n) = forAll (pointInside (subtreeRegion $ snd n)) $ \p -> do
--- yi-0.7.1-orig/debian/control	2014-04-14 23:44:16.000000000 +0200
+++ yi-0.7.1/debian/control	2014-08-04 08:49:42.109183846 +0200
@@ -12,6 +12,7 @@
                , libghc-diff-dev (<< 0.4)
                , libghc-diff-prof
                , libghc-quickcheck2-dev (>= 2.1.0.2)
+	       , libghc-quickcheck2-dev (<< 2.8)
                , libghc-quickcheck2-prof
                , libghc-cautious-file-dev (>= 1.0.1)
                , libghc-cautious-file-prof

Attachment: signature.asc
Description: PGP signature


Reply to: