[GHC] #7388: CAPI doesn't work with ghci

GHC ghc-devs at haskell.org
Sun Feb 28 20:42:53 UTC 2016


#7388: CAPI doesn't work with ghci
-------------------------------------+-------------------------------------
        Reporter:  igloo             |                Owner:
            Type:  bug               |               Status:  new
        Priority:  normal            |            Milestone:
       Component:  GHCi              |              Version:  7.6.1
      Resolution:                    |             Keywords:
Operating System:  Unknown/Multiple  |         Architecture:
                                     |  Unknown/Multiple
 Type of failure:  None/Unknown      |            Test Case:  T4012
      Blocked By:                    |             Blocking:
 Related Tickets:                    |  Differential Rev(s):
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by hvr):

 Replying to [comment:10 bgamari]:
 > Can someone clarify what "CAPI" means in this context?

 Something like

 {{{#!hs
 {-# LANGUAGE CApiFFI #-}

 import Foreign.C

 foreign import capi "stdio.h printf" printfb :: CString -> CInt -> IO ()
 }}}

 There was a minor improvement in the error-message since 7.10 however:

 With 7.10 you get the somewhat cryptic message:

 {{{
 [1 of 1] Compiling T4012_B          ( T4012_B.hs, interpreted )

 ByteCodeLink: can't find label
 During interactive linking, GHCi couldn't find the following symbol:
   ghczuwrapperZC0ZCmainZCT4012zuBZCprintf
 This may be due to you not asking GHCi to load extra object files,
 archives or DLLs needed by your current session.  Restart GHCi, specifying
 the missing library using the -L/path/to/object/dir and -lmissinglibname
 flags, or simply by naming the relevant files on the GHCi command line.
 Alternatively, this link failure might indicate a bug in GHCi.
 If you suspect the latter, please send a bug report to:
   glasgow-haskell-bugs at haskell.org
 }}}

 whereas with GHC 8.0 you get

 {{{
 [1 of 1] Compiling T4012_B          ( T4012_B.hs, interpreted )
 Error: bytecode compiler can't handle some foreign calling conventions
   Workaround: use -fobject-code, or compile this module to .o separately.
 }}}

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/7388#comment:11>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list