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

Please unblock hat 2.05+rerolled-1



Hi,

Could you unblock hat 2.05+rerolled-1? This new upstream tarball (with
the same version as the previous released 2.05 *sign*) fixes a RC bug
where hat failed to work on 64 bit architectures (#403841)

The new tarball also included some fixes to make hat compile with GHC
6.4 so I can drop the "15_include-version-in-package-name.dpatch"
patch. 

Furthermore I added a missing Depends on xterm (#403836) and stopped
compiling the tools with profiling enabled (#403840)

The interdiff between the two versions is attached for easy comparison.

Greetings Arjan


diff -Nru /tmp/PbE9coidCJ/hat-2.05/debian/changelog /tmp/ywpengEUu3/hat-2.05+rerolled/debian/changelog
--- /tmp/PbE9coidCJ/hat-2.05/debian/changelog	2006-12-24 14:46:35.000000000 +0100
+++ /tmp/ywpengEUu3/hat-2.05+rerolled/debian/changelog	2006-12-24 14:46:35.000000000 +0100
@@ -1,3 +1,19 @@
+hat (2.05+rerolled-1) unstable; urgency=high
+
+  * (Not so) New upstream release. Upstream has rerolled the 2.05 tarball
+    as it was missing some fixes needed to compile against GHC 6.6:
+    - Drop debian/patches/15_include-version-in-package-name.dpatch as
+      it is fixed upstream.
+    - Upstream replaced "typedef unsigned long FileOffset" with "typedef
+      uint32_t FileOffset" which should fix issues on 64 bit
+      architectures. (Closes: #403841)
+  * debian/control: Add xterm as a Depends as hat needs the resize command
+    provided by xterm. (Closes: #403836)
+  * debian/patches/16_fix-buildflags.dpatch: Drop the profiling flags so
+    the tools are build without profiling enabled. (Closes: #403840) 
+
+ -- Arjan Oosting <arjan@debian.org>  Thu, 21 Dec 2006 22:49:04 +0100
+
 hat (2.05-7) unstable; urgency=low
 
   * debian/rules: don't do any optimisation on arm and m86k. This will be
diff -Nru /tmp/PbE9coidCJ/hat-2.05/debian/control /tmp/ywpengEUu3/hat-2.05+rerolled/debian/control
--- /tmp/PbE9coidCJ/hat-2.05/debian/control	2006-12-24 14:46:35.000000000 +0100
+++ /tmp/ywpengEUu3/hat-2.05+rerolled/debian/control	2006-12-24 14:46:35.000000000 +0100
@@ -9,7 +9,7 @@
 
 Package: hat
 Architecture: any
-Depends: libghc6-hat-dev (= ${binary:Version}), ${shlibs:Depends} 
+Depends: libghc6-hat-dev (= ${binary:Version}), xterm, ${shlibs:Depends} 
 Recommends: hmake
 Conflicts: nhc98 (<< 1.14-3)
 Description: Haskell source-level tracer
diff -Nru /tmp/PbE9coidCJ/hat-2.05/debian/patches/00list /tmp/ywpengEUu3/hat-2.05+rerolled/debian/patches/00list
--- /tmp/PbE9coidCJ/hat-2.05/debian/patches/00list	2006-12-24 14:46:35.000000000 +0100
+++ /tmp/ywpengEUu3/hat-2.05+rerolled/debian/patches/00list	2006-12-24 14:46:35.000000000 +0100
@@ -2,7 +2,6 @@
 12_include-stdlib
 13_byteorder
 14_fix-manpage
-15_include-version-in-package-name
 16_fix-buildflags
 21_no-register
 22_configure-incx-flag
diff -Nru /tmp/PbE9coidCJ/hat-2.05/debian/patches/15_include-version-in-package-name.dpatch /tmp/ywpengEUu3/hat-2.05+rerolled/debian/patches/15_include-version-in-package-name.dpatch
--- /tmp/PbE9coidCJ/hat-2.05/debian/patches/15_include-version-in-package-name.dpatch	2006-12-24 14:46:35.000000000 +0100
+++ /tmp/ywpengEUu3/hat-2.05+rerolled/debian/patches/15_include-version-in-package-name.dpatch	1970-01-01 01:00:00.000000000 +0100
@@ -1,31 +0,0 @@
-#! /bin/sh /usr/share/dpatch/dpatch-run
-## 27_include-version-in-package-name.dpatch by Arjan Oosting <arjan@debian.org>
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: change the -package-name hat to -package-name hat-$(HATVERSION)
-## DP: during compilation to make sure the hi-files have the correct
-## DP: module name.
-
-@DPATCH@
-diff -urNad hat~/src/hatlib/Makefile hat/src/hatlib/Makefile
---- hat~/src/hatlib/Makefile	2006-10-24 21:52:22.000000000 +0200
-+++ hat/src/hatlib/Makefile	2006-10-28 19:53:26.000000000 +0200
-@@ -33,7 +33,7 @@
- 		'-\#include "hat-c.h"'
- PKGCONF = hat-package.conf
-     else	# assume 604 or greater
--HFLAGS = -package-name hat -fglasgow-exts \
-+HFLAGS = -package-name hat-$(HATVERSION) -fglasgow-exts \
- 		-package base -package parsec -package mtl \
- 		-fno-warn-overlapping-patterns -fno-warn-missing-methods \
- 		-fno-warn-duplicate-exports -fallow-undecidable-instances \
-diff -urNad hat~/src/hatlib/hat.cabal hat/src/hatlib/hat.cabal
---- hat~/src/hatlib/hat.cabal	2006-10-24 21:52:25.000000000 +0200
-+++ hat/src/hatlib/hat.cabal	2006-10-28 19:53:41.000000000 +0200
-@@ -1,5 +1,5 @@
- name:		hat
--version:	2.04
-+version:	2.05
- license:	OtherLicense
- license-file:	docs/copyright.html
- copyright:	University of York
diff -Nru /tmp/PbE9coidCJ/hat-2.05/debian/patches/16_fix-buildflags.dpatch /tmp/ywpengEUu3/hat-2.05+rerolled/debian/patches/16_fix-buildflags.dpatch
--- /tmp/PbE9coidCJ/hat-2.05/debian/patches/16_fix-buildflags.dpatch	2006-12-24 14:46:35.000000000 +0100
+++ /tmp/ywpengEUu3/hat-2.05+rerolled/debian/patches/16_fix-buildflags.dpatch	2006-12-24 14:46:35.000000000 +0100
@@ -3,22 +3,22 @@
 ##
 ## All lines beginning with `## DP:' are a description of the patch.
 ## DP: Fix the way the BUILDFLAGS are inserted when building the
-## DP: hattools.
+## DP: hattools and drop the profiling flags.
 
 @DPATCH@
 diff -urNad hat~/src/hattools/Makefile hat/src/hattools/Makefile
---- hat~/src/hattools/Makefile	2006-10-27 04:54:29.000000000 +0200
-+++ hat/src/hattools/Makefile	2006-11-08 11:20:49.000000000 +0100
+--- hat~/src/hattools/Makefile	2006-12-21 20:47:24.000000000 +0100
++++ hat/src/hattools/Makefile	2006-12-21 21:47:15.000000000 +0100
 @@ -3,13 +3,13 @@
  ifeq "ghc" "$(findstring ghc, ${HC})"
    ifeq "606" "${GHCSYM}"
  HMAKEFLAGS = -I. -I$(INCDIR) -fglasgow-exts -package base -package readline \
 -		 -DUSE_READLINE=1 $(BUILDOPTS) -prof -auto-all
-+		 -DUSE_READLINE=1 $(shell echo ${BUILDOPTS}) -prof -auto-all
++		 -DUSE_READLINE=1 $(shell echo ${BUILDOPTS})
    else
  HMAKEFLAGS = -I. -I$(INCDIR) -fglasgow-exts -package base -package util \
 -		 -DUSE_READLINE=1 $(BUILDOPTS) -prof -auto-all
-+		 -DUSE_READLINE=1 $(shell echo ${BUILDOPTS}) -prof -auto-all
++		 -DUSE_READLINE=1 $(shell echo ${BUILDOPTS})
    endif
  else
 -HMAKEFLAGS = -I. -I$(INCDIR) -package base +CTS -H8M -CTS -K10M $(BUILDOPTS)
diff -Nru /tmp/PbE9coidCJ/hat-2.05/docs/download.html /tmp/ywpengEUu3/hat-2.05+rerolled/docs/download.html
--- /tmp/PbE9coidCJ/hat-2.05/docs/download.html	2006-10-23 16:12:05.000000000 +0200
+++ /tmp/ywpengEUu3/hat-2.05+rerolled/docs/download.html	2006-10-24 11:40:29.000000000 +0200
@@ -83,8 +83,8 @@
 <b>Tarfiles and RPMs:</b><br>
 <a href="ftp://ftp.cs.york.ac.uk/pub/haskell/hat/";>
 <tt>ftp://ftp.cs.york.ac.uk/pub/haskell/hat/</tt></a><br>
-<a href="http://www.cs.york.ac.uk/fp/hat/hat-2.04.tar.gz";>
-<tt>http://www.cs.york.ac.uk/fp/hat/hat-2.04.tar.gz</tt></a><br>
+<a href="http://www.cs.york.ac.uk/fp/hat/hat-2.05.tar.gz";>
+<tt>http://www.cs.york.ac.uk/fp/hat/hat-2.05.tar.gz</tt></a><br>
 <b>RPMs for RedHat:</b><br>
 <a href="http://www.dtek.chalmers.se/~d95mback/nhc98/";>
 <tt>http://www.dtek.chalmers.se/~d95mback/nhc98/</tt></a><br>
diff -Nru /tmp/PbE9coidCJ/hat-2.05/include/art.h /tmp/ywpengEUu3/hat-2.05+rerolled/include/art.h
--- /tmp/PbE9coidCJ/hat-2.05/include/art.h	2006-10-10 15:57:50.000000000 +0200
+++ /tmp/ywpengEUu3/hat-2.05+rerolled/include/art.h	2006-11-15 11:45:17.000000000 +0100
@@ -1,10 +1,12 @@
 #ifndef _ART_H
 #define _ART_H
 
+#include <stdint.h>
+
 /* FileOffset is just a byte-pointer into the file.
  * There are four distinguished values that are otherwise not valid pointers.
  */
-typedef unsigned long FileOffset;
+typedef uint32_t FileOffset;
 #define Root            0x0
 #define Unevaluated     0x1
 #define Entered         0x2
diff -Nru /tmp/PbE9coidCJ/hat-2.05/include/ntohl.h /tmp/ywpengEUu3/hat-2.05+rerolled/include/ntohl.h
--- /tmp/PbE9coidCJ/hat-2.05/include/ntohl.h	2006-10-10 15:57:51.000000000 +0200
+++ /tmp/ywpengEUu3/hat-2.05+rerolled/include/ntohl.h	2006-11-15 11:45:17.000000000 +0100
@@ -3,7 +3,7 @@
 
 /* Windows does not have ntohl, so define it here */
 #define htonl(x) ntohl(x)
-int ntohl(int x);
+uint32_t ntohl(uint32_t x);
 
 #else
 
diff -Nru /tmp/PbE9coidCJ/hat-2.05/src/hatlib/hat.cabal /tmp/ywpengEUu3/hat-2.05+rerolled/src/hatlib/hat.cabal
--- /tmp/PbE9coidCJ/hat-2.05/src/hatlib/hat.cabal	2006-10-10 15:57:51.000000000 +0200
+++ /tmp/ywpengEUu3/hat-2.05+rerolled/src/hatlib/hat.cabal	2006-11-03 17:16:24.000000000 +0100
@@ -1,5 +1,5 @@
 name:		hat
-version:	2.04
+version:	2.05
 license:	OtherLicense
 license-file:	docs/copyright.html
 copyright:	University of York
diff -Nru /tmp/PbE9coidCJ/hat-2.05/src/hatlib/hat-c.c /tmp/ywpengEUu3/hat-2.05+rerolled/src/hatlib/hat-c.c
--- /tmp/PbE9coidCJ/hat-2.05/src/hatlib/hat-c.c	2006-10-10 15:57:51.000000000 +0200
+++ /tmp/ywpengEUu3/hat-2.05+rerolled/src/hatlib/hat-c.c	2006-11-15 11:45:17.000000000 +0100
@@ -93,7 +93,7 @@
 void 
 hat_Open(char *progname)
 {
-    unsigned p = 0;
+    FileOffset p = 0;
     char filename[256];
 
     unevaluated = htonl(Unevaluated);
diff -Nru /tmp/PbE9coidCJ/hat-2.05/src/hatlib/Makefile /tmp/ywpengEUu3/hat-2.05+rerolled/src/hatlib/Makefile
--- /tmp/PbE9coidCJ/hat-2.05/src/hatlib/Makefile	2006-10-10 15:57:51.000000000 +0200
+++ /tmp/ywpengEUu3/hat-2.05+rerolled/src/hatlib/Makefile	2006-11-03 17:11:23.000000000 +0100
@@ -32,13 +32,22 @@
 		-i$(OBJDIR) -I. -I$(INCDIR) $(shell echo ${BUILDOPTS}) \
 		'-\#include "hat-c.h"'
 PKGCONF = hat-package.conf
-    else	# assume 604 or greater
+    else
+      ifeq "604" "${GHCSYM}"
 HFLAGS = -package-name hat -fglasgow-exts \
 		-package base -package parsec -package mtl \
 		-fno-warn-overlapping-patterns -fno-warn-missing-methods \
 		-fno-warn-duplicate-exports -fallow-undecidable-instances \
 		-i$(OBJDIR) -I. -I$(INCDIR) $(shell echo ${BUILDOPTS}) \
 		'-\#include "hat-c.h"'
+      else	# assume 606 or greater
+HFLAGS = -package-name hat-$(HATVERSION) -fglasgow-exts \
+		-package base -package parsec -package mtl \
+		-fno-warn-overlapping-patterns -fno-warn-missing-methods \
+		-fno-warn-duplicate-exports -fallow-undecidable-instances \
+		-i$(OBJDIR) -I. -I$(INCDIR) $(shell echo ${BUILDOPTS}) \
+		'-\#include "hat-c.h"'
+      endif
 PKGCONF = Hat.pkgconf
     endif
   endif
diff -Nru /tmp/PbE9coidCJ/hat-2.05/src/hattools/Makefile /tmp/ywpengEUu3/hat-2.05+rerolled/src/hattools/Makefile
--- /tmp/PbE9coidCJ/hat-2.05/src/hattools/Makefile	2006-12-24 14:46:35.000000000 +0100
+++ /tmp/ywpengEUu3/hat-2.05+rerolled/src/hattools/Makefile	2006-12-24 14:46:35.000000000 +0100
@@ -139,7 +139,8 @@
 # Tom Davie's tools
 $(DEST)/hat-anim: HatAnim.hs NodeExp.hs $(COMMONOBJS)
 	hmake -hc=$(HC) $(HMAKEFLAGS) HatAnim \
-		$(COMMONOBJS) -d$(OBJDIR) $(shell echo $(LIBCOMPAT))
+		$(COMMONOBJS) $(DETECTOBJS) -d$(OBJDIR)
+		$(shell echo $(LIBCOMPAT))
 	mv $(OBJDIR)/HatAnim$(EXE) $(DEST)/hat-anim$(EXE)
 $(DEST)/pretty-hat: PrettyHat.hs Pretty.hs NodeExp.hs EDT.hs $(COMMONOBJS)
 	hmake -hc=$(HC) $(HMAKEFLAGS) PrettyHat \
diff -Nru /tmp/PbE9coidCJ/hat-2.05/src/hattools/Pretty.hs /tmp/ywpengEUu3/hat-2.05+rerolled/src/hattools/Pretty.hs
--- /tmp/PbE9coidCJ/hat-2.05/src/hattools/Pretty.hs	2006-10-10 15:57:51.000000000 +0200
+++ /tmp/ywpengEUu3/hat-2.05+rerolled/src/hattools/Pretty.hs	2006-11-16 12:06:23.000000000 +0100
@@ -5,14 +5,15 @@
 #define empty emptySet
 #define toList setToList
 #define insert addToSet
+#define member elementOf
 #endif
 
 import LowLevel      (FileNode(..),nil,getParentNode,getSrcRef)
 import CommonUI      (Options(..),Keep(..))
-import NodeExp       (NodeExp(..),fullEval,flatEval,branches
+import NodeExp       (NodeExp(..),fullEval,flatEval,branches,result
                      ,findLambdas,removeResultCycles,removeNonResultCycles
                      ,nodeExp2SExp,getNode,CondType(..),getFirstCaredNode
-                     ,flatEvalText,nodeExpForNode,fullEvalText)
+                     ,flatEvalText,nodeExpForNode,fullEvalText,(===))
 import SExp          (QName(..),showQN,prettySExp)
 import qualified Data.Set as Set (empty, toList, insert, Set(..),member)
 import EDT           (EDT(..),buildEDT,detectCycles,trustModule,trustIO
@@ -20,6 +21,7 @@
 import SrcRef        (SrcRef(..), readSrcRef)
 
 import Char          (chr)
+import List          (sort)
 
 import System.IO.Unsafe (unsafePerformIO)
 
@@ -27,9 +29,11 @@
     || ( defined(__NHC__) && __NHC__ < 118 )
 addToSet :: Ord a => a -> Set.Set a -> Set.Set a
 addToSet = flip Set.addToSet
+setToList = Set.setToList
 #else
 addToSet :: Ord a => a -> Set.Set a -> Set.Set a
 addToSet = Set.insert
+setToList = Set.toList
 #endif
 
 data PrettyOption = ShowDecOffsets
@@ -123,8 +127,22 @@
 
 dotNodes :: Set.Set NodeExp -> [PrettyOption] -> String
 dotNodes s o
-  = foldr ((++) . makeNode) "" (Set.toList s)
+  = {-concatMap makeNode (setToList s)-}
+    concatMap (\s -> "{rank=same; " ++ concatMap makeNode s ++ "}\n") (groupSets s)
     where
+      groupSets :: Set.Set NodeExp -> [[NodeExp]]
+      groupSets s = groupSets' $ sort $ setToList s
+      
+      groupSets' :: [NodeExp] -> [[NodeExp]]
+      groupSets' [] = []
+      groupSets' (x:xs) =
+        (collected:groupSets' (filter (not . (`elem` collected)) xs))
+        where
+          collected = collectRs x []
+      
+      collectRs n v = if n `elem` v then []
+                                    else n:collectRs (result n) (n:v)
+            
       makeNode :: NodeExp -> String
       makeNode node@(NExpApp id fun args res)
         | (isVCycleOrApp res) && (getNode node) == (getNode res) && isId fun
@@ -272,7 +290,7 @@
 
 dotEdges :: Set.Set NodeExp -> [PrettyOption] -> String
 dotEdges s o
-  = makeEdges (Set.toList s)
+  = makeEdges (setToList s)
     where
       makeEdges :: [NodeExp] -> String
       makeEdges [] = ""
@@ -348,7 +366,7 @@
 dotEDTEdges edt opts =
   concat $ zipWith mkEDTEdge starts ends
   where
-    (starts,ends) = unzip $ Set.toList $ edgeSet
+    (starts,ends) = unzip $ setToList $ edgeSet
     edgeSet = edtEdgeSet edt Set.empty
 
 foldrM1 :: (a -> IO ()) -> [a] -> IO ()

Attachment: signature.asc
Description: Dit berichtdeel is digitaal ondertekend


Reply to: