[Hat] bugs, fixes and a wishlist item

Isaac Jones hat@haskell.org
16 Jan 2003 16:35:52 -0500


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Greetings, and thanks for your useful piece of software.

I'm using ghc 5.04.2 which the web page warns may not work with hat.
Even so, when I tried an older version, I had the same problem: the
hat compilation was complaining about a missing IOExt module, so I
added a '-package lang' to the makefile.  Perhaps this won't work with
nhc, but it solved one problem (more below).

The next problem I had in compiling was that it didn't know about a
certain data type, so I added an obvious "import" to the top of the
file (more below).

After having successfully built and installed hat, I tried to run it
on my program and got a pattern match failure in the function
"isIrrefutable" and so I fixed that bug which seems to be a typo.

By the way, when I tried to build hat with nhc I ran out of stack
space, but I wanted to use ghc anyway.

The diffs for those three fixes (the first two of which may just be
something about my compiler installation, but the third is certainly a
bug) are below.

After having spent some time getting hat to work, I can't use it on my
program since hat does not yet support multi parameter type classes,
so I thought I'd voice my opinion that supporting these type classes
would be great :)


peace,

isaac


diff -x'*.hi' -x'*.hx' -x'*lib*' -x'*script*' -u -r
hat-2.00/src/compiler98/AuxFile.hs
hat-2.00-altered/src/compiler98/AuxFile.hs
- --- hat-2.00/src/compiler98/AuxFile.hs  2002-06-13 09:57:20.000000000
- -0400
+++ hat-2.00-altered/src/compiler98/AuxFile.hs  2003-01-16
15:44:47.000000000 -0500
@@ -440,7 +440,7 @@
     and . (isNewTypeDataCon id :) . map isIrrefutableField $
fieldPats
     where
     isIrrefutableField (FieldExp _ _ pat) = isIrrefutable pat
- -  isIrrefutablePat _ = False
+  isIrrefutable _ = False

   isNewTypeDataCon id = case lookupAT identMap id of
     Just (Con Newtype _ _) -> True
Only in hat-2.00-altered/src/compiler98: AuxFile.hs~
diff -x'*.hi' -x'*.hx' -x'*lib*' -x'*script*' -u -r
hat-2.00/src/compiler98/Makefile
hat-2.00-altered/src/compiler98/Makefile
- --- hat-2.00/src/compiler98/Makefile    2002-06-07 12:13:21.000000000
- -0400
+++ hat-2.00-altered/src/compiler98/Makefile    2003-01-16
13:01:55.000000000 -0500
@@ -25,7 +25,7 @@
 endif
 ifeq "ghc" "${HC}"
 IMPROVE     = #-O
- -HMAKEFLAGS := $(shell $(LOCAL)fixghc $(GHCSYM) +CTS -syslib exts
- -CTS)  $(IMPROVE)
+HMAKEFLAGS := -package lang $(shell $(LOCAL)fixghc $(GHCSYM) +CTS
- -syslib exts -CTS)  $(IMPROVE)
 endif

 HMAKEFLAGS += $(shell echo $(BUILDOPTS))
diff -x'*.hi' -x'*.hx' -x'*lib*' -x'*script*' -u -r
hat-2.00/src/hat/tools/LowLevel.hs
hat-2.00-altered/src/hat/tools/LowLevel.hs
- --- hat-2.00/src/hat/tools/LowLevel.hs  2002-06-13 11:50:30.000000000
- -0400
+++ hat-2.00-altered/src/hat/tools/LowLevel.hs  2003-01-16
12:54:10.000000000 -0500
@@ -47,6 +47,7 @@
   ) where

 import FFIExtensions
+import Addr

 -- Reference into the .hat file
 newtype FileNode = FileNode {int::Int}

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (GNU/Linux)
Comment: Processed by Mailcrypt 3.5.8 <http://mailcrypt.sourceforge.net/>

iD8DBQE+JyW4BLPTZ7K4MaIRAqFlAJ9xFhYhToQiUHSOjHZnRojp/WPR0QCfSO1l
iGsc3+LlHPwUE6jv4wsbx3Q=
=lOAY
-----END PGP SIGNATURE-----