<div dir="ltr">Hello,<div><br></div><div>I have been working with a program that uses FFI to communicate with R for several<div>years, but today there is a segmentation fault while importing functions or data from R.</div><div>Before giving up on this project, I'm posting a few detail here, in case anybody has</div><div>ideas...perhaps something changed with FFI?</div><div><br></div><div>I tried going back to the version of R and ghc where it worked using stack, but no luck.</div><div>The Haskell code is a modification of the code in the package hR (by Dylan Simon), </div><div>and here is a function that fails that worked before. It fails with a seg fault </div><div>on the call to r_install. (s = "parse" when it fails)...</div><div><br></div><div>foreign import ccall safe "Rf_install" r_Install :: CString -> IO R_EXP<br>rInstall :: String -> IO REXP<br>rInstall s = withCString s r_Install >>= extREXP<br></div><div><br></div><div>The types are defined as follows...</div><div><br></div><div>extREXP :: R_EXP -> IO REXP<br>extREXP = newForeignPtr_<br></div><div><br></div><div>data REXPREC<br><br>type R_EXP = Ptr REXPREC<br><br>type REXP = ForeignPtr REXPREC<br><br>newtype SEXP a = SEXP { unSEXP :: REXP } deriving (Eq, Show)<br><br></div><div>Please let me know if you see anything obviously wrong and in need</div><div>of improvement, perhaps because of changes to the FFI.</div><div><br></div><div>Thanks,</div><div>Dominick</div></div></div>