FFI changes?
Dominick Samperi
djsamperi at gmail.com
Thu Jan 26 21:07:27 UTC 2023
Hello,
I have been working with a program that uses FFI to communicate with R for
several
years, but today there is a segmentation fault while importing functions or
data from R.
Before giving up on this project, I'm posting a few detail here, in case
anybody has
ideas...perhaps something changed with FFI?
I tried going back to the version of R and ghc where it worked using stack,
but no luck.
The Haskell code is a modification of the code in the package hR (by Dylan
Simon),
and here is a function that fails that worked before. It fails with a seg
fault
on the call to r_install. (s = "parse" when it fails)...
foreign import ccall safe "Rf_install" r_Install :: CString -> IO R_EXP
rInstall :: String -> IO REXP
rInstall s = withCString s r_Install >>= extREXP
The types are defined as follows...
extREXP :: R_EXP -> IO REXP
extREXP = newForeignPtr_
data REXPREC
type R_EXP = Ptr REXPREC
type REXP = ForeignPtr REXPREC
newtype SEXP a = SEXP { unSEXP :: REXP } deriving (Eq, Show)
Please let me know if you see anything obviously wrong and in need
of improvement, perhaps because of changes to the FFI.
Thanks,
Dominick
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-devs/attachments/20230126/8c238cb7/attachment.html>
More information about the ghc-devs
mailing list