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