17得票1回答
使用Haskell构建动态库并从C++中使用它

我希望构建一个包含Haskell函数的动态库。我在Linux上工作,想要从C++代码中调用这个动态库。 我使用了http://wiki.python.org/moin/PythonVsHaskell中的示例,并拥有以下文件: Test.hs: {-# LANGUAGE ForeignFun...

17得票1回答
使用静态链接在Haskell库中与C库进行链接

我有一个Haskell项目,旨在创建一些C++绑定。我已经编写了C包装器,并将它们编译成独立的静态链接库。 我想编写Haskell绑定,以静态链接到C包装器,这样我就不必单独分发C包装器,但是我似乎无法使其工作,并希望得到一些帮助。 我将C库指定为额外库,但我的cabal build步骤似...

17得票2回答
如何处理Rust中长时间运行的外部函数调用,例如阻塞I/O?

编辑说明:此问题来自 Rust 1.0 版本之前的版本,使用了在 Rust 1.0 代码中不存在的术语和功能。所表达的概念仍然相关。 我需要在我的 Rust 程序中通过 POSIX 文件描述符读取外部进程提供的数据。文件描述符连接保持了很长时间(几个小时),另一侧不时地向我传递数据。...

17得票1回答
为什么从C语言调用Haskell函数会有额外开销?

我注意到在C中调用Haskell函数的开销很大,比本地C函数调用的开销要大得多。为了把问题简化到它的本质上,我编写了一个程序,它只是初始化了Haskell运行时,在其中运行了一个循环,调用一个空函数100,000,000次,然后返回。 如果将函数内联,该程序需要0.003秒。调用用C编写的空函...

16得票1回答
Haskell数据实例适用于不透明数据类型

我正在编写一个开源补丁,用于使用字体库,或者更精确地说是在 C 语言中使用字体库的 Haskell 绑定(FTGL)。 我正在指向其中一个数据结构中的 Font 类型,该类型定义如下:type Font = Ptr Font_Opaque data Font_Opaque 很不幸,为了适应我正...

16得票2回答
通过 FFI 将 C99 的 `bool` 类型正确返回给 Rust,应该使用哪种类型?

我和同事一直在考虑如何通过 FFI 从 C99 代码中返回 <stdbool.h> (即 _Bool) 到 Rust 中的 bool。 我们想要在 Rust 中使用以下 C99 代码: bool myfunc(void) { ... } 我们使用 extern C 块...

16得票2回答
从Haskell调用Clojure函数

是否可以使用FFI或其他技巧,在GHC上从Haskell中调用Clojure函数?我希望在GHC范围内实现这一点,而不是使用Frege。我还希望将主程序保持在Haskell中(这意味着应该从Haskell调用Clojure函数,而不是反过来)。 如何做到这一点?

16得票1回答
如何从Python ctypes中取消引用内存位置?

我想在Python的ctypes中复制以下C代码:main() { long *ptr = (long *)0x7fff96000000; printf("%lx",*ptr); } 我知道如何将这个内存位置作为函数指针调用,但不知道如何进行普通的解引用操作:from ctypes i...

16得票1回答
Haskell C FFI:访问静态数据结构

我有一个关于Haskell C FFI的问题,具体是关于如何访问由C库导出的静态数据结构。 我要包装的C库有像下面的FOO_GEORGE这样的静态数据结构,以以下方式导出:static struct foo_struct foo_table[] = { /* list of foo stru...

16得票2回答
从C++调用Haskell库

我正在使用C++的Qt构建一个应用程序,它使用了一个用Haskell编写的库作为后端。如何将Haskell库的接口导出到C++中? 当Haskell库中的函数使用像int或float这样的简单类型时,这不是问题,但是当它们使用结构作为参数时该怎么办?在这种情况下,最可扩展的解决方案是什么?