Hello, I've now tried compiling with -flint, I've attached the .grin files generated and here is the error message I get: [korcan@localhost jhc_test_case]$ jhc -p SDL -p SDL-image -flint Test.hs -o test --optc='-lSDL' --optc='-lSDL_image' jhc -p SDL -p SDL-image -flint Test.hs -o test --optc=-lSDL --optc=-lSDL_image jhc 0.7.6 (0.7.6-0) Finding Dependencies... Using Ho Cache: '/home/korcan/.jhc/cache' Main [Test.hs] <~/.jhc/cache/sk1vb331e44fj3buqg067ao352.ho> Fresh: <~/.jhc/cache/sk1vb331e44fj3buqg067ao352.ho> Typechecking... Compiling... Collected Compilation... -- typeAnalyzeMethods -- BoxifyProgram -- Boxy WorkWrap -- LambdaLift E ├─case: 642 ├─case-alt: 1134 ├─error: 8 ├─lambda: 142 ├─let-binding: 148 ├─lit: 2257 ├─other: 313 ├─prim: 201 └─var-use: 1253 Converting to Grin... Found 0 CAFs to convert to constants, 0 of which are recursive. Recursive Constant CAFS -- eval ni70382562 WHNF-[CJhc.Addr.Ptr] -- eval ni21451946 WHNF-[CJhc.Order.Bool#] -- eval ni70773738 WHNF-[CJhc.Order.Bool#] -- eval ni1295127577 WHNF-[P2_theMain$8,P2_theMain$9] -- eval ni240266248 WHNF-[CGraphics.UI.SDL.Events.SDLVideoResize,CGraphics.UI.SDL.Events.SDLSysWMEvent,CGraphics.UI.SDL.Events.SDLQuit,CGraphics.UI.SDL.Events.SDLJoyButtonUp,CGraphics.UI.SDL.Events.SDLJoyButtonDown,CGraphics.UI.SDL.Events.SDLJoyHatMotion,CGraphics.UI.SDL.Events.SDLJoyBallMotion,CGraphics.UI.SDL.Events.SDLJoyAxisMotion,CGraphics.UI.SDL.Events.SDLMouseButtonUp,CGraphics.UI.SDL.Events.SDLMouseButtonDown,CGraphics.UI.SDL.Events.SDLMouseMotion,CGraphics.UI.SDL.Events.SDLKeyUp,CGraphics.UI.SDL.Events.SDLKeyDown,CGraphics.UI.SDL.Events.SDLActiveEvent,CGraphics.UI.SDL.Events.SDLNoEvent,CGraphics.UI.SDL.Events.SDLUserEvent] -- eval ni8985014 WHNF-[CGraphics.UI.SDL.Keysym.Keysym] -- eval ni53831604 WHNF-[CGraphics.UI.SDL.Keysym.Keysym] -- eval ni899420229 WHNF-[P3_W@.fInstance@.iForeign.Storable.peek.Graphics.UI.SDL.Events.Event$2,P3_W@.fInstance@.iForeign.Storable.peek.Graphics.UI.SDL.Events.Event$3] -- eval ni166760994 WHNF-[CInt#] -- eval ni139817886 WHNF-[CJhc.Prim.[],CJhc.Prim.:] -- eval ni36780836 WHNF-[CJhc.Maybe.Nothing,CJhc.Maybe.Just] -- eval ni191777968 WHNF-[P2_theMain$5,P2_theMain$3,P2_theMain$2] -- eval ni1042810937 WHNF-[P2_theMain$6,P2_Foreign.C.String.withCString$2,P2_Graphics.UI.SDL.Events.223_poll] -- eval ni2300728 WHNF-[CJhc.Addr.Ptr] -- eval ni1383605275 WHNF-[?] -- eval ni2996210 WHNF-[CJhc.Prim.[],CJhc.Prim.:] -- eval ni103540822 WHNF-[CGraphics.UI.SDL.Events.Focus#,CGraphics.UI.SDL.Keysym.Modifier#] -- eval ni7946072 WHNF-[CGraphics.UI.SDL.Events.Focus#,CGraphics.UI.SDL.Keysym.Modifier#] -- eval ni101149094 WHNF-[CWord8#,CWord32#] -- eval ni101149094 WHNF-[CWord8#,CWord32#] -- eval ni1773802053 WHNF-[CWord8#,CWord32#] -- eval ni1773802053 WHNF-[CWord8#,CWord32#] -- eval ni41382390 WHNF-[CGraphics.UI.SDL.Events.Focus#,CGraphics.UI.SDL.Keysym.Modifier#] -- eval ni71352712 WHNF-[CGraphics.UI.SDL.Events.Focus#,CGraphics.UI.SDL.Keysym.Modifier#] -- eval ni132079112 WHNF-[CWord8#] -- eval ni15034878 WHNF-[CJhc.Addr.Ptr]
Before Simplify-Grin Writing: test_lint-before-Simplify-Grin.grin Simplify-Grin ├─Grin │ └─Simplify │ ├─Assign │ │ ├─tuple-tuple: 70 │ │ └─unit-unit: 8 │ ├─Subst │ │ ├─const: 23 │ │ └─var: 33 │ ├─Unbox.case-return: 10 │ ├─error-discard: 1 │ └─tail-return-omit: 172 ├─Optimize.optimize.let-shrink-tail: 5 └─Simplify ├─CSE.demote: 34 ├─Omit.Bind: 8 ├─ZeroVar │ ├─bp254: 1 │ ├─bp353: 1 │ ├─bp557: 1 │ ├─bp575: 1 │ ├─h842: 1 │ ├─h867: 1 │ ├─l590: 1 │ ├─nd475: 1 │ ├─nd503: 1 │ ├─nd510: 1 │ ├─ni340: 1 │ ├─ni341: 1 │ ├─ni545: 1 │ ├─ni546: 1 │ ├─ni715: 1 │ ├─o317: 1 │ ├─o376: 1 │ ├─o394: 1 │ ├─w1062: 1 │ ├─w224: 1 │ ├─w500: 1 │ ├─w552: 1 │ ├─w813: 1 │ └─w96: 1 └─simplify.let-shrink-head: 4
After Simplify-Grin Writing: test_lint-after-Simplify-Grin.grin Type Errors variable not in scope: bp74 fGraphics.UI.SDL.General.failWithError ni1444155455 = do bp419 <- (HsPtr)SDL_GetError() ni166760994 <- nd347 <- let* fW@.fForeign.Marshal.Array.139_loop w41997188 = do ni1 <- nd302 <- dstore (CInt# w41997188) ni231367164 <- demote nd302 w99674760 <- w41997188 * sizeof(bits8)::bits32 bp60138236 <- (bits<ptr>)ConvOp Sx bits32 w99674760 bp20609280 <- bp74 + bp60138236 o5225520 <- bits8[bp20609280] case o5225520 of 0 -> return ni231367164 o317 -> do w194322548 <- 1 + w41997188 w1 <- return w194322548 nd1 <- fW@.fForeign.Marshal.Array.139_loop w1 ni2 <- demote nd1 return ni2 nd2 <- promote ni1 return nd2 in fW@.fForeign.Marshal.Array.139_loop 0 demote nd347 nd100084 <- promote ni166760994 (CInt# w8575516) <- return nd100084 h100086 <- 0 `Gte` w8575516 ni139817886 <- nd1 <- case h100086 of 1 -> return [] 0 -> do w139403250 <- w8575516 - 1 ni364 <- return &[] let* fW@.fForeign.C.String.7_loop nd36833818 w265732834 = do ni36834187 <- demote nd36833818 w252616262 <- w265732834 * sizeof(bits8)::bits32 bp157021598 <- (bits<ptr>)ConvOp Sx bits32 w252616262 bp61426846 <- bp419 + bp157021598 o43070828 <- bits8[bp61426846] w81608550 <- (bits32)ConvOp Zx bits8 o43070828 nd641 <- dstore (Char w81608550) ni155208920 <- demote nd641 h100088 <- 0 `Gte` w265732834 ni387 <- nd1 <- case h100088 of 1 -> do nd644 <- dstore (CJhc.Prim.: ni155208920 ni36834187) return nd644 0 -> do w108926542 <- w265732834 - 1 nd646 <- dstore (CJhc.Prim.: ni155208920 ni36834187) ni190326150 <- demote nd646 ni383 <- return ni190326150 w385 <- return w108926542 nd769 <- promote ni383 nd386 <- fW@.fForeign.C.String.7_loop nd769 w385 return nd386 demote nd1 promote ni387 in w366 <- return w139403250 nd731 <- promote ni364 nd367 <- fW@.fForeign.C.String.7_loop nd731 w366 return nd367 demote nd1 nd100090 <- promote ni139817886 nd331 <- case nd100090 of (CJhc.Prim.: ni0 ni0) -> dstore (CJhc.Maybe.Just ni139817886) [] -> return (CJhc.Maybe.Nothing) ni184969258 <- demote nd331 nd787 <- return nd331 ni68875450 <- istore (FGraphics.UI.SDL.General.failWithError$2 nd787) ni396 <- return &"\nSDL message: " ni398 <- return ni68875450 ni209621540 <- istore (FJhc.Basics.++ ni396 ni398) ni399 <- return ni1444155455 ni401 <- return ni209621540 nd100092 <- fJhc.Basics.++ ni399 ni401 ni134591876 <- demote nd100092 nd403 <- return nd100092 nd404 <- fJhc.IO.putErrLn nd403 exitFailure
----------------------------------------
Date: Tue, 10 Aug 2010 19:47:42 -0700 From: john@repetae.net To: korcan_h@hotmail.com CC: jhc@haskell.org Subject: Re: [jhc] bugs/issues in jhc-0.7.6
Out of curiosity, were you compiling with '-flint'? when you suspect a bug in the compiler, it is best to do a run with it, it will be much slower but do a full internal typecheck after each pass.
John
-- John Meacham - ⑆repetae.net⑆john⑈ - http://notanumber.net/