On Fri, Nov 17, 2006 at 05:12:23PM +0000, Simon Peyton-Jones wrote: > The crash is definitely a bug. The user manual does not claim to allow > unboxed tuples in the return type for a foreign call; so GHC should reject > the program politely. > > You might ask "well, couldn't the above program be accepted?". Perhaps so... > but why do you want it. You should find that if you say > foreign import ccall unsafe getchar :: IO Int > and then > do { I# x <- getchar; ...} > then no boxing occurs. So maybe this new feature isn't reqd. Let us know
okay, I was hoping that ghc would see that I am giving it the unboxed version right out and not try to unbox/rebox things itself. I thought I saw this in the standard libraries, but looking through it again, the cases I was looking at were actually primitives and not foreign imports. so this isn't a bug. I will do the boxing myself, which is fine, it would be nice to run ghc without its optimizer and still not get the superfluous boxing to get a true test of just how our back-ends compare, but for that kind of control perhaps I will need to spit out ghc external core anyway. > > | the other is > | > | where 'global_argc' is a C symbol. > | > | > foreign import ccall "&global_argc" argc :: Addr# > > What's the problem here? Your mail looks garbled. yes. sorry about that. I started out asking one question, then decided to give some background that led to another one. > Concerning primitive types, Ian will respond in a few days. We're not sure > we understand what you want! At the moment, I don't think I need anything, I was just misreading certain features. the ghc backend seems to be working fine with the following caveats: * all integral types (even Integer) are flattened to Int#. * ghc -O on my generated programs crashes with the following: ghc-6.6: panic! (the 'impossible' happened) (GHC version 6.6 for i386-unknown-linux): primRepHint:VoidRep http://repetae.net/john/computer/jhc/stuff/HelloWorld_code.hs has this behavior when compiled with ghc -O on another note I have gotten these crashes also, but have been unable to recreate them: jhc: internal error: stg_ap_p_ret (GHC version 6.6 for x86_64_unknown_linux) Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug ghc-6.6: panic! (the 'impossible' happened) (GHC version 6.6 for i386-unknown-linux): hptRules FastMutInt [(Atom, False), (Binary, False), (C.FFI, False), (Doc.DocLike, False), (Doc.PPrint, False), (FastMutInt, False), (FrontEnd.SrcLoc, False), (FrontEnd.Tc.Kind, False), (GenUtil, False), (HsSyn, False), (Name.Name, False), (Name.Names, False), (Name.Prim, False), (Name.VConsts, False), (PackedString, False), (Support.CanType, False), (Support.Unparse, False), (Util.VarName, False)] John -- John Meacham - ⑆repetae.net⑆john⑈ _______________________________________________ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users