GHC Head Bugs

Simon Marlow simonmarhaskell at gmail.com
Wed Aug 8 11:12:12 EDT 2007


Neil Mitchell wrote:

> Second, when compiling the attached program (which is probably
> familiar to you by now ;-) ), I get the thing at the bottom of this
> message. -fasm works fine, but -fvia-C seems to have been broken.

I've also seen this, with the most recent MSI built by the buildbots.  Ian, 
any ideas?

> -----------------
> 
> C:\Neil\supero\test\charcount>ghc --make -O2 -fvia-C -o viac.exe 4.hs
> [1 of 1] Compiling Main             ( 4.hs, 4.o )
> In file included from C:/ghc/ghc-6.7.20070709/include/Stg.h:150,
>                 from C:\DOCUME~1\nj\LOCALS~1\Temp\ghc3836_0\ghc3836_0.hc:3:
> C:/ghc/ghc-6.7.20070709/include/Regs.h:28:45: gmp.h: No such file or 
> directory
> In file included from C:/ghc/ghc-6.7.20070709/include/Stg.h:150,
>                 from C:\DOCUME~1\nj\LOCALS~1\Temp\ghc3836_0\ghc3836_0.hc:3:
> C:/ghc/ghc-6.7.20070709/include/Regs.h:119: error: syntax error before 
> "MP_INT"
> C:/ghc/ghc-6.7.20070709/include/Regs.h:119: warning: no semicolon at end 
> of stru
> ct or union
> C:/ghc/ghc-6.7.20070709/include/Regs.h:120: warning: type defaults to 
> `int' in d
> eclaration of `rmp_tmp2'
> C:/ghc/ghc-6.7.20070709/include/Regs.h:120: warning: data definition has 
> no type
> or storage class
> C:/ghc/ghc-6.7.20070709/include/Regs.h:121: error: syntax error before 
> "rmp_resu
> lt1"
> C:/ghc/ghc-6.7.20070709/include/Regs.h:121: warning: type defaults to 
> `int' in d
> eclaration of `rmp_result1'
> C:/ghc/ghc-6.7.20070709/include/Regs.h:121: warning: data definition has 
> no type
> or storage class
> C:/ghc/ghc-6.7.20070709/include/Regs.h:122: error: syntax error before 
> "rmp_resu
> lt2"
> C:/ghc/ghc-6.7.20070709/include/Regs.h:122: warning: type defaults to 
> `int' in d
> eclaration of `rmp_result2'
> C:/ghc/ghc-6.7.20070709/include/Regs.h:122: warning: data definition has 
> no type
> or storage class
> C:/ghc/ghc-6.7.20070709/include/Regs.h:125: error: syntax error before 
> '}' token
> 
> C:/ghc/ghc-6.7.20070709/include/Regs.h:125: warning: type defaults to 
> `int' in d
> eclaration of `StgRegTable'
> C:/ghc/ghc-6.7.20070709/include/Regs.h:125: warning: data definition has 
> no type
> or storage class
> C:/ghc/ghc-6.7.20070709/include/Regs.h:334: error: syntax error before 
> "StgRegTa
> ble"
> C:/ghc/ghc-6.7.20070709/include/Regs.h:334: warning: no semicolon at end 
> of stru
> ct or union
> C:/ghc/ghc-6.7.20070709/include/Regs.h:353: error: syntax error before 
> '*' token
> 
> C:/ghc/ghc-6.7.20070709/include/Regs.h:353: warning: type defaults to 
> `int' in d
> eclaration of `BaseReg'
> C:/ghc/ghc-6.7.20070709/include/Regs.h:353: error: register name given 
> for non-r
> egister variable 'BaseReg'
> C:/ghc/ghc-6.7.20070709/include/Regs.h:353: warning: data definition has 
> no type
> or storage class
> In file included from C:/ghc/ghc-6.7.20070709/include/Stg.h:162,
>                 from C:\DOCUME~1\nj\LOCALS~1\Temp\ghc3836_0\ghc3836_0.hc:3:
> C:/ghc/ghc-6.7.20070709/include/RtsExternal.h:45: error: syntax error 
> before '*'
> token
> C:/ghc/ghc-6.7.20070709/include/RtsExternal.h:62: error: syntax error 
> before '*'
> token
> C:/ghc/ghc-6.7.20070709/include/RtsExternal.h:63: error: syntax error 
> before '*'
> token
> C:/ghc/ghc-6.7.20070709/include/RtsExternal.h:63: warning: type defaults 
> to `int
> ' in declaration of `resumeThread'
> C:/ghc/ghc-6.7.20070709/include/RtsExternal.h:63: warning: data 
> definition has n
> o type or storage class
> C:/ghc/ghc-6.7.20070709/include/RtsExternal.h:66: error: syntax error 
> before '*'
> token
> C:/ghc/ghc-6.7.20070709/include/RtsExternal.h:124: error: syntax error 
> before '*
> ' token
> C:\DOCUME~1\nj\LOCALS~1\Temp\ghc3836_0\ghc3836_0.hc: In function 
> `rF0_entry':
> C:\DOCUME~1\nj\LOCALS~1\Temp\ghc3836_0\ghc3836_0.hc:27: error: request 
> for membe
> r `rSpLim' in something not a structure or union
> C:\DOCUME~1\nj\LOCALS~1\Temp\ghc3836_0\ghc3836_0.hc: In function 
> `r1uj_entry':
> C:\DOCUME~1\nj\LOCALS~1\Temp\ghc3836_0\ghc3836_0.hc:110: error: request 
> for memb
> er `rSpLim' in something not a structure or union
> C:\DOCUME~1\nj\LOCALS~1\Temp\ghc3836_0\ghc3836_0.hc: In function 
> `r1ul_entry':
> C:\DOCUME~1\nj\LOCALS~1\Temp\ghc3836_0\ghc3836_0.hc:202: error: request 
> for memb
> er `rSpLim' in something not a structure or union
> C:\DOCUME~1\nj\LOCALS~1\Temp\ghc3836_0\ghc3836_0.hc: In function 
> `r1up_entry':
> C:\DOCUME~1\nj\LOCALS~1\Temp\ghc3836_0\ghc3836_0.hc:249: error: request 
> for memb
> er `rHpLim' in something not a structure or union
> C:\DOCUME~1\nj\LOCALS~1\Temp\ghc3836_0\ghc3836_0.hc:260: error: request 
> for memb
> er `rHpAlloc' in something not a structure or union
> C:\DOCUME~1\nj\LOCALS~1\Temp\ghc3836_0\ghc3836_0.hc: In function 
> `r1ur_entry':
> C:\DOCUME~1\nj\LOCALS~1\Temp\ghc3836_0\ghc3836_0.hc:305: error: request 
> for memb
> er `rSpLim' in something not a structure or union
> C:\DOCUME~1\nj\LOCALS~1\Temp\ghc3836_0\ghc3836_0.hc:307: error: request 
> for memb
> er `rHpLim' in something not a structure or union
> C:\DOCUME~1\nj\LOCALS~1\Temp\ghc3836_0\ghc3836_0.hc:318: error: request 
> for memb
> er `rHpAlloc' in something not a structure or union
> C:\DOCUME~1\nj\LOCALS~1\Temp\ghc3836_0\ghc3836_0.hc: In function 
> `s1A4_ret':
> C:\DOCUME~1\nj\LOCALS~1\Temp\ghc3836_0\ghc3836_0.hc:356: error: request 
> for memb
> er `rHpLim' in something not a structure or union
> C:\DOCUME~1\nj\LOCALS~1\Temp\ghc3836_0\ghc3836_0.hc:365: error: request 
> for memb
> er `rHpAlloc' in something not a structure or union
> C:\DOCUME~1\nj\LOCALS~1\Temp\ghc3836_0\ghc3836_0.hc:366: error: request 
> for memb
> er `rR9' in something not a structure or union
> C:\DOCUME~1\nj\LOCALS~1\Temp\ghc3836_0\ghc3836_0.hc: In function 
> `r1uv_entry':
> C:\DOCUME~1\nj\LOCALS~1\Temp\ghc3836_0\ghc3836_0.hc:386: error: request 
> for memb
> er `rSpLim' in something not a structure or union
> C:\DOCUME~1\nj\LOCALS~1\Temp\ghc3836_0\ghc3836_0.hc: In function 
> `r1uB_entry':
> C:\DOCUME~1\nj\LOCALS~1\Temp\ghc3836_0\ghc3836_0.hc:417: error: request 
> for memb
> er `rSpLim' in something not a structure or union
> C:\DOCUME~1\nj\LOCALS~1\Temp\ghc3836_0\ghc3836_0.hc:419: error: request 
> for memb
> er `rHpLim' in something not a structure or union
> C:\DOCUME~1\nj\LOCALS~1\Temp\ghc3836_0\ghc3836_0.hc:431: error: request 
> for memb
> er `rHpAlloc' in something not a structure or union
> C:\DOCUME~1\nj\LOCALS~1\Temp\ghc3836_0\ghc3836_0.hc: In function 
> `r1uD_entry':
> C:\DOCUME~1\nj\LOCALS~1\Temp\ghc3836_0\ghc3836_0.hc:448: error: request 
> for memb
> er `rSpLim' in something not a structure or union
> C:\DOCUME~1\nj\LOCALS~1\Temp\ghc3836_0\ghc3836_0.hc:450: error: request 
> for memb
> er `rHpLim' in something not a structure or union
> C:\DOCUME~1\nj\LOCALS~1\Temp\ghc3836_0\ghc3836_0.hc:462: error: request 
> for memb
> er `rHpAlloc' in something not a structure or union
> C:\DOCUME~1\nj\LOCALS~1\Temp\ghc3836_0\ghc3836_0.hc: In function 
> `s1xw_entry':
> C:\DOCUME~1\nj\LOCALS~1\Temp\ghc3836_0\ghc3836_0.hc:566: error: request 
> for memb
> er `rSpLim' in something not a structure or union
> C:\DOCUME~1\nj\LOCALS~1\Temp\ghc3836_0\ghc3836_0.hc: In function 
> `s1xu_entry':
> C:\DOCUME~1\nj\LOCALS~1\Temp\ghc3836_0\ghc3836_0.hc:592: error: request 
> for memb
> er `rHpLim' in something not a structure or union
> C:\DOCUME~1\nj\LOCALS~1\Temp\ghc3836_0\ghc3836_0.hc:600: error: request 
> for memb
> er `rHpAlloc' in something not a structure or union
> C:\DOCUME~1\nj\LOCALS~1\Temp\ghc3836_0\ghc3836_0.hc: In function 
> `s1x0_ret':
> C:\DOCUME~1\nj\LOCALS~1\Temp\ghc3836_0\ghc3836_0.hc:671: error: request 
> for memb
> er `rHpLim' in something not a structure or union
> C:\DOCUME~1\nj\LOCALS~1\Temp\ghc3836_0\ghc3836_0.hc:683: error: request 
> for memb
> er `rHpAlloc' in something not a structure or union
> C:\DOCUME~1\nj\LOCALS~1\Temp\ghc3836_0\ghc3836_0.hc: In function 
> `s1AX_ret':
> C:\DOCUME~1\nj\LOCALS~1\Temp\ghc3836_0\ghc3836_0.hc:710: error: request 
> for memb
> er `rR2' in something not a structure or union
> C:\DOCUME~1\nj\LOCALS~1\Temp\ghc3836_0\ghc3836_0.hc: In function 
> `Main_a_entry':
> 
> C:\DOCUME~1\nj\LOCALS~1\Temp\ghc3836_0\ghc3836_0.hc:831: error: request 
> for memb
> er `rSpLim' in something not a structure or union
> C:\DOCUME~1\nj\LOCALS~1\Temp\ghc3836_0\ghc3836_0.hc: In function 
> `Main_a1_entry'
> :
> C:\DOCUME~1\nj\LOCALS~1\Temp\ghc3836_0\ghc3836_0.hc:880: error: request 
> for memb
> er `rSpLim' in something not a structure or union
> 
> -------
> 
> 
> ------------------------------------------------------------------------
> 
> {-# OPTIONS_GHC -fffi -fglasgow-exts -cpp #-}
> 
> module Main(main) where
> 
> import System.IO.Unsafe
> import System.IO
> import Foreign.C.Types
> 
> 
> import GHC.Base                 (realWorld#,State#,RealWorld)
> import GHC.IOBase               (IO(IO), unIO, unsafePerformIO)
> 
> main = IO main_generated
> 
> overlay_get_char = unIO $ do
>     c <- getchar
>     return $ fromIntegral c
> 
> system_IO_hPutChar h c = unIO $ hPutChar h (toEnum c)
> 
> foreign import ccall unsafe "stdio.h getchar" getchar :: IO CInt
> foreign import ccall unsafe "ctype.h iswspace" isspace :: CInt -> CInt
> 
> typeRealWorld :: State# RealWorld -> State# RealWorld
> typeRealWorld x = x
> 
> prelude_seq = seq
> 
> prelude_error x = error (map toEnum x)
> 
> aDD_W = (+) :: Int -> Int -> Int
> eQ_W = (==) :: Int -> Int -> Bool
> gT_W = (>) :: Int -> Int -> Bool
> lT_W = (<) :: Int -> Int -> Bool
> qUOT = quot :: Int -> Int -> Int
> rEM = rem :: Int -> Int -> Int
> 
> nEG_W = negate :: Int -> Int
> 
> 
> int_ x = x :: Int
> chr_ x = fromEnum x
> str_ x = map chr_ x
> 
> 
> system_IO_stdin = stdin
> system_IO_stdout = stdout
> 
> data_Char_isSpace c = isspace (toEnum c) /= 0
> 
> 
> {- OLD PREFIX
> 
> inlinePerformIO :: IO a -> a
> inlinePerformIO (IO m) = case m realWorld# of (# _, r #) -> r
> 
> main = main_generated `seq` (return () :: IO ())
> 
> overlay_get_char = unIO $ do
>     c <- getchar
>     return $ fromIntegral c
> 
> overlay_token = 0 :: Int
> 
> overlay_put_char h c = inlinePerformIO (hPutChar h (toEnum c) >>
> overlay_get_char h   = inlinePerformIO (getCharIO h)
> 
> -# NOINLINE getCharIO #-
> getCharIO h = do
>    c <- getchar
>    return $ if c == (-1) then h `seq` (-1) else fromIntegral c
> -}
> 
> 
> prelude_1111_showPosInt v26421 v26422 =
>     let v6 = qUOT v26421 (int_ 10)
>     in case (eQ_W v6 (int_ 0)) of
>            True -> f29 v26421 v26422
>            False -> prelude_1111_showPosInt v6 (f29 v26421 v26422)
> 
> prelude_1111_showPosInt4 =
>     prelude_1111_showPosInt (int_ 0) prelude__LAMBDA6
> 
> prelude_942_ll24 v1 v2 =
>     case (overlay_get_char (typeRealWorld (typeRealWorld v2))) of
>          (# v5  :: State# RealWorld , v6  #) ->
>             case (eQ_W v6 (int_ (-1))) of
>                 True -> v1
>                 False ->
>                     let v10 = aDD_W v1 (int_ 1)
>                     in seq v10 (prelude_942_ll24 v10 (typeRealWorld v5))
> 
> prelude__LAMBDA6 = str_ ""
> 
> f15 v1 v2 =
>     case (str_ "") of
>         [] -> f7 v1
>         (:) v5 v6 -> f8 v2 v5 v6 v1
> 
> f16 v1 v2 v3 v4 =
>     case (system_IO_hPutChar v1 v2 (typeRealWorld v4)) of
>          (# v9  :: State# RealWorld , v10  #) ->
>             case v3 of
>                 [] -> f15 v9 v1
>                 (:) v10 v11 -> f16 v1 v10 v11 v9
> 
> f29 v1 v2 = (:) (aDD_W (int_ 48) (rEM v1 (int_ 10))) v2
> 
> f7 v1 = system_IO_hPutChar system_IO_stdout (chr_ '\n') v1
> 
> f8 v1 v2 v3 v4 =
>     case (system_IO_hPutChar v1 v2 (typeRealWorld v4)) of
>          (# v9  :: State# RealWorld , v10  #) ->
>             case v3 of
>                 [] -> f7 v9
>                 (:) v10 v11 -> f8 v1 v10 v11 v9
> 
> main_generated real =
>     case (overlay_get_char (typeRealWorld (typeRealWorld real))) of
>          (# v5  :: State# RealWorld , v6  #) ->
>             case (eQ_W v6 (int_ (-1))) of
>                 True ->
>                     case prelude_1111_showPosInt4 of
>                         [] -> f7 (typeRealWorld v5)
>                         (:) v3 v4 -> f8 system_IO_stdout v3 v4 (typeRealWorld v5)
>                 False ->
>                     let v7 = typeRealWorld v5
>                     in let v8 =
>                                let v8 = aDD_W (int_ 0) (int_ 1)
>                                in seq v8 (prelude_942_ll24 v8 v7)
>                        in case (lT_W v8 (int_ 0)) of
>                               True ->
>                                   let v11 = system_IO_stdout
>                                   in case (system_IO_hPutChar
>                                              v11
>                                              (chr_ '-')
>                                              (typeRealWorld (typeRealWorld v7))) of
>                                           (# v9  :: State# RealWorld , v10  #) ->
>                                              case (eQ_W v8 (int_ (-2147483648))) of
>                                                  True ->
>                                                      case (str_ "2147483648") of
>                                                          [] -> f15 v9 v11
>                                                          (:) v7 v8 -> f16 v11 v7 v8 v9
>                                                  False ->
>                                                      case (prelude_1111_showPosInt
>                                                              (nEG_W v8)
>                                                              prelude__LAMBDA6) of
>                                                          [] -> f7 v9
>                                                          (:) v10 v12 -> f8 v11 v10 v12 v9
>                               False ->
>                                   case (prelude_1111_showPosInt v8 prelude__LAMBDA6) of
>                                       [] -> f7 (typeRealWorld v7)
>                                       (:) v9 v10 -> f8 system_IO_stdout v9 v10 (typeRealWorld v7)
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> Cvs-ghc mailing list
> Cvs-ghc at haskell.org
> http://www.haskell.org/mailman/listinfo/cvs-ghc



More information about the Cvs-ghc mailing list