
A few tools within nhc98 are built by the bootstrapping compiler: hmake, greencard, nhc98 itself, cpphs, and hsc2hs My question is: What should be the minimum requirement for the bootstrapping compiler? Haskell 1.4? Haskell 98? The latter would be preferable IMHO, because we have quite a few Haskell-98-conformant systems nowadays :-) and the code could be cleaned up a bit. Cheers, S.

Sven Panne
A few tools within nhc98 are built by the bootstrapping compiler:
hmake, greencard, nhc98 itself, cpphs, and hsc2hs
My question is: What should be the minimum requirement for the bootstrapping compiler? Haskell 1.4? Haskell 98? The latter would be preferable IMHO, because we have quite a few Haskell-98-conformant systems nowadays :-) and the code could be cleaned up a bit.
I think that we ought to be able to assume Haskell'98 by now, but unfortunately that excludes hbc and Helium, leaving only ghc, Hugs, and nhc98 itself. However, the nightly hbc builds have been broken for a long time anyway, and I haven't had any motivation to fix them, so I wouldn't object to removing any older, 1.4-related stuff. Since nhc98 is self-bootstrapping via C, I can't see any good reason to continue to support older versions of ghc either. Regards, Malcolm

Malcolm Wallace wrote:
I think that we ought to be able to assume Haskell'98 by now, but unfortunately that excludes hbc and Helium, leaving only ghc, Hugs, and nhc98 itself. [...]
Hmmm, haskell.org claims that hbc 0.9999.5 implements Haskell 98, perhaps I should try to install it, supporting it would be nice then. Helium OTOH implements only a subset of Haskell (no type classes, no records, simpler module system, etc.), so it's not really suitable for bootstrapping at all. Cheers, S.

Sven Panne
Hmmm, haskell.org claims that hbc 0.9999.5 implements Haskell 98, perhaps I should try to install it, supporting it would be nice then.
Well, the claim is just that, a claim. I'm running $ hbc -v hbc Haskell98 version 0.9999.5b, 1999 Apr 02 but several of the standard libraries have foibles that require extra #ifdefs to fix for hbc. The build errors I'm getting at the moment are: Errors: "PackageConfig.hs", line 0, [89] Bad import specifier for: hPutStrLn ... from the entirely reasonable line: import IO (hPutStrLn) But also, more worryingly: /grp/haskell/lib/lmlc-ix86-Linux/lib/runtime.o(.text+0x8653): In function `openfile': /home/guest/linux-LML/runtime/file.c:239: `sys_errlist' is deprecated; use `strerror' or `strerror_r' instead This one could be a mismatch due to upgrading Linux, which a re-compile of hbc might sort out. Except that I can no longer rebuild hbc. Here is a sample of the errors I get building from Magnus' snapshot of Feb 2003: In file included from amp.h:3, from bignum.c:19: longlong.h:77:12: warning: multi-line string literals are deprecated longlong.h:83:12: warning: multi-line string literals are deprecated longlong.h:108:12: warning: multi-line string literals are deprecated mv -f prelo/*.o . mv: cannot stat `prelo/*.o': No such file or directory lib/lib_i.a(termcap_c.o)(.text+0x59): In function `MoveTo': /tmp/LML/lib/termcap_c.c:48: undefined reference to `tgoto' lib/lib_i.a(termcap_c.o)(.text+0x62):/tmp/LML/lib/termcap_c.c:48: undefined reference to `tputs' lib/lib_i.a(termcap_c.o)(.text+0xf3): In function `ClearScreen': /tmp/LML/lib/termcap_c.c:74: undefined reference to `tputs' lib/lib_i.a(termcap_c.o)(.text+0x11e): In function `Mytgetstr': /tmp/LML/lib/termcap_c.c:87: undefined reference to `tgetstr' lib/lib_i.a(termcap_c.o)(.text+0x17c): In function `GetTermCaps': /tmp/LML/lib/termcap_c.c:109: undefined reference to `tgetent' lib/lib_i.a(termcap_c.o)(.text+0x1df):/tmp/LML/lib/termcap_c.c:120: undefined reference to `tgetnum' lib/lib_i.a(termcap_c.o)(.text+0x1f0):/tmp/LML/lib/termcap_c.c:121: undefined reference to `tgetnum' Regards, Malcolm

Malcolm Wallace wrote:
Sven Panne
writes: Hmmm, haskell.org claims that hbc 0.9999.5 implements Haskell 98, perhaps I should try to install it, supporting it would be nice then.
Well, the claim is just that, a claim. I'm running
$ hbc -v hbc Haskell98 version 0.9999.5b, 1999 Apr 02
but several of the standard libraries have foibles that require extra #ifdefs to fix for hbc. The build errors I'm getting at the moment are:
Errors: "PackageConfig.hs", line 0, [89] Bad import specifier for: hPutStrLn
... from the entirely reasonable line: import IO (hPutStrLn)
I've fixed that.
But also, more worryingly:
/grp/haskell/lib/lmlc-ix86-Linux/lib/runtime.o(.text+0x8653): In function `openfile': /home/guest/linux-LML/runtime/file.c:239: `sys_errlist' is deprecated; use `strerror' or `strerror_r' instead
This one could be a mismatch due to upgrading Linux, which a re-compile of hbc might sort out. Except that I can no longer rebuild hbc.
This no real problem and vanishes indeed after the 2nd stage.
Here is a sample of the errors I get building from Magnus' snapshot of Feb 2003:
In file included from amp.h:3, from bignum.c:19: longlong.h:77:12: warning: multi-line string literals are deprecated longlong.h:83:12: warning: multi-line string literals are deprecated longlong.h:108:12: warning: multi-line string literals are deprecated
Fixed.
mv -f prelo/*.o . mv: cannot stat `prelo/*.o': No such file or directory
These are harmless, I think...
lib/lib_i.a(termcap_c.o)(.text+0x59): In function `MoveTo': /tmp/LML/lib/termcap_c.c:48: undefined reference to `tgoto' lib/lib_i.a(termcap_c.o)(.text+0x62):/tmp/LML/lib/termcap_c.c:48: undefined reference to `tputs' lib/lib_i.a(termcap_c.o)(.text+0xf3): In function `ClearScreen': /tmp/LML/lib/termcap_c.c:74: undefined reference to `tputs' lib/lib_i.a(termcap_c.o)(.text+0x11e): In function `Mytgetstr': /tmp/LML/lib/termcap_c.c:87: undefined reference to `tgetstr' lib/lib_i.a(termcap_c.o)(.text+0x17c): In function `GetTermCaps': /tmp/LML/lib/termcap_c.c:109: undefined reference to `tgetent' lib/lib_i.a(termcap_c.o)(.text+0x1df):/tmp/LML/lib/termcap_c.c:120: undefined reference to `tgetnum' lib/lib_i.a(termcap_c.o)(.text+0x1f0):/tmp/LML/lib/termcap_c.c:121: undefined reference to `tgetnum'
Fixed. Apart from those fixes above, there were quite a few small changes that had to be applied to Magnus' hbc snapshot. I've uploaded a new version to http://haskell.org/hbc/hbc-2004-06-27.src.tar.gz http://haskell.org/hbc/hbc-2004-06-27.bin-i386-linux.tar.gz The latter is a binary built on my SuSE Linux 9.1. Simon: I tried to update implementations.html on haskell.org, but it's mode is 644 and is owned by somebody I've never heard of. :-[ Could you change the mode to 664, please? This hbc snapshot can almost build nhc98, there are only a few glitches left during compilation of the hierarchical libraries. :-) Cheers, S.
participants (2)
-
Malcolm Wallace
-
Sven Panne