Finally! The ghc from the CVS repository can bootstrap itself. The way
to go was: Build a 3.02 from .hc files, compile 4.02 with 3.02, and
bootstrap 4.02 with 4.02. There were some small glitches (cf. patches):
* a missing include (for IF_DEBUG)
* a comment which isn't a comment anymore in Haskell 98
* fail's type has changed
* the defaulting mechanism for numbers changed, so a cast ... uhm:
type annotation :-) was neccessary in two places
I'll put a tar file for libc6 Linux into
ftp://ftp.informatik.uni-muenchen.de/pub/local/pms/
when I've remembered/guessed my password on our FTP server. :-]
(hopefully this will be *very* soon...)
Cheers,
Sven
--
Sven Panne Tel.: +49/89/2178-2235
LMU, Institut fuer Informatik FAX : +49/89/2178-2211
LFE Programmier- und Modellierungssprachen Oettingenstr. 67
mailto:[EMAIL PROTECTED] D-80538 Muenchen
http://www.pms.informatik.uni-muenchen.de/mitarbeiter/panne
diff -r -x CVS -c orig/fptools/ghc/includes/PrimOps.h fptools/ghc/includes/PrimOps.h
*** orig/fptools/ghc/includes/PrimOps.h Tue Jan 19 10:49:55 1999
--- fptools/ghc/includes/PrimOps.h Wed Jan 20 19:47:36 1999
***************
*** 8,13 ****
--- 8,15 ----
#ifndef PRIMOPS_H
#define PRIMOPS_H
+ #include "Rts.h"
+
/* -----------------------------------------------------------------------------
Comparison PrimOps.
-------------------------------------------------------------------------- */
diff -r -x CVS -c orig/fptools/ghc/lib/misc/Readline.lhs
fptools/ghc/lib/misc/Readline.lhs
*** orig/fptools/ghc/lib/misc/Readline.lhs Thu Jan 14 19:17:36 1999
--- fptools/ghc/lib/misc/Readline.lhs Wed Jan 20 19:47:36 1999
***************
*** 36,42 ****
import System
! --#include <readline/readline.h>
type KeyCode = Int
--- 36,42 ----
import System
! -- #include <readline/readline.h>
type KeyCode = Int
***************
*** 64,70 ****
prompt (length prompt)
litstr <- _casm_GC_ ``%r = readline (rl_prompt_hack);''
if (litstr == ``NULL'')
! then fail (userError "Readline has read EOF")
else do
str <- unpackCStringIO litstr
_ccall_ free litstr
--- 64,70 ----
prompt (length prompt)
litstr <- _casm_GC_ ``%r = readline (rl_prompt_hack);''
if (litstr == ``NULL'')
! then fail "Readline has read EOF"
else do
str <- unpackCStringIO litstr
_ccall_ free litstr
***************
*** 80,86 ****
-> IO ()
rlBindKey key cback =
if (0 > key) || (key > 255) then
! fail (userError "Invalid ASCII Key Code, must be in range 0.255")
else do
addCbackEntry (key,cback)
_casm_ `` rl_bind_key((KeyCode)%0,&genericRlCback); '' key
--- 80,86 ----
-> IO ()
rlBindKey key cback =
if (0 > key) || (key > 255) then
! fail "Invalid ASCII Key Code, must be in range 0.255"
else do
addCbackEntry (key,cback)
_casm_ `` rl_bind_key((KeyCode)%0,&genericRlCback); '' key
***************
*** 100,106 ****
IO ()
rlAddDefun name cback key =
if (0 > key) || (key > 255) then
! fail (userError "Invalid ASCII Key Code, must be in range 0..255")
else do
addCbackEntry (key, cback)
_casm_ ``rl_add_defun (%0, &genericRlCback, (KeyCode)%1);'' name key
--- 100,106 ----
IO ()
rlAddDefun name cback key =
if (0 > key) || (key > 255) then
! fail "Invalid ASCII Key Code, must be in range 0..255"
else do
addCbackEntry (key, cback)
_casm_ ``rl_add_defun (%0, &genericRlCback, (KeyCode)%1);'' name key
***************
*** 231,238 ****
rlSetMark mark = _casm_ ``rl_mark = %0;'' mark
rlSetDone :: Bool -> IO ()
! rlSetDone True = _casm_ ``rl_done = %0;'' 1
! rlSetDone False = _casm_ ``rl_done = %0;'' 0
rlPendingInput :: KeyCode -> IO ()
rlPendingInput key = primIOToIO (_casm_ ``rl_pending_input = %0;'' key)
--- 231,238 ----
rlSetMark mark = _casm_ ``rl_mark = %0;'' mark
rlSetDone :: Bool -> IO ()
! rlSetDone True = _casm_ ``rl_done = %0;'' (1::Int)
! rlSetDone False = _casm_ ``rl_done = %0;'' (0::Int)
rlPendingInput :: KeyCode -> IO ()
rlPendingInput key = primIOToIO (_casm_ ``rl_pending_input = %0;'' key)