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