NoneC 2hs - это инструмент-генератор для привязок Haskell к библиотекам C.
0 ответов

Haskell FFi с c2hs: лучшая компоновка структур

Предположим, у вас есть C API, который предоставляет структуру C typedef struct A { int i; float f; } A; и функция, которая заполняет его: void getA(A* a); Например, это может быть получатель некоторой информации из внутренних частей C API. В Haskel…
14 дек '18 в 10:21
2 ответа

do..while(0) функционально-подобная оболочка макроса C в c2hs

Я хотел бы обернуть функциональный макрос C в функцию C (и, в свою очередь, обернуть его в Haskell с помощью {#fun ... #} блок), но c2hs Препроцессор дросселей на do.. while(0) синтаксис; вот код: module TestMacro where #c #define TestF1(n) do{if n=…
23 апр '15 в 17:23
2 ответа

Разница между hsc2hs и c2hs?

В чем разница между hsc2hs и c2hs? Я знаю, что hsc2hs является препроцессором, но что именно он делает? И c2hs может делать модули Haskell из C-кода, но нужна ли мне для этого hsc2hs?
15 май '11 в 14:36
1 ответ

Большой c2hs-выводимый размер перечисления C

При написании Storable экземпляр перечисления C, который имеет 5 опций (используя c2hs), {# sizeof #} макрос возвращает 4 (т.е. 4 байта). Разве это не очень расточительно, когда 3 бита будет достаточно? Зависит ли это от размера слова памяти?
26 май '16 в 15:13
1 ответ

Как объявить обратный звонок в землю Haskell

Я взаимодействую с библиотекой C, и есть функция, которая имеет аргумент обратного вызова типа (int (*fun) (void *)), Как бы я справился с этим c2hs? Я не вижу обратных вызовов, упомянутых в https://github.com/haskell/c2hs/wiki/Implementation-of-Has…
19 фев '15 в 22:19
1 ответ

Взаимодействие со структурами и анонимными союзами с c2hs

Как можно было бы кодировать этот кусок кода C в файле.chs, чтобы c2hs мог преобразовать его во что-то относительно хорошее? typedef enum { MONOME_BUTTON_UP = 0x00, MONOME_BUTTON_DOWN = 0x01, MONOME_ENCODER_DELTA = 0x02, MONOME_ENCODER_KEY_UP = 0x03…
17 май '14 в 23:10
1 ответ

Ошибка при попытке использовать аргумент ForeignPtr для динамической оболочки

Я пытаюсь обернуть библиотеку C, используя c2hs. У меня есть непрозрачная структура C, которую я отобразил в Haskell следующим образом: {#pointer *foo as Foo foreign newtype #} Я использовал внешний указатель, чтобы я мог автоматически очистить с по…
07 фев '16 в 10:35
0 ответов

Соответствия типа указателя C2HS

У меня есть несколько концептуальных вопросов о том, как C2HS генерирует соответствия типов из {#pointer …} деклараций. Во-первых, пусть ~ обозначить оператор соответствия типов между типами C и типами Haskell. Тогда правильно ли говорить, что {#poi…
20 июл '18 в 20:39
1 ответ

Кабал установить GTK не удалось

Я пытаюсь установить GTK через Cabal, однако я получаю следующие ошибки типа при его сборке [ 22 of 209] Compiling Graphics.UI.Gtk.Embedding.Plug ( dist/build/Graphics/UI/Gtk/Embedding/Plug.hs, dist/build/Graphics/UI/Gtk/Embedding/Plug.o ) Graphics/…
13 авг '15 в 22:04
1 ответ

Ошибка компоновщика в C2HS генерируется привязка C

Я строю и запускаю следующий минимальный пример (без внешних зависимостей) с C->Haskell Compiler, version 0.25.2 Snowboundest, 31 Oct 2014 build platform is "x86_64-darwin" <1, True, True, 1>; команда построения: c2hs Structs.chs ghci Struc…
08 апр '15 в 22:55
1 ответ

Как мне использовать Haddock с c2hs?

Я использую c2hs для написания некоторых привязок haskell, и я хотел бы использовать Haddock для документирования автоматически сгенерированных конструкторов и параметров функций. Тем не менее, c2hs игнорирует комментарии; {#enum define WinPos { CA …
07 мар '14 в 16:21
1 ответ

Как передать NULL внешней функции с аргументом типа char*?

Я пишу привязки Haskell к некоторому проекту на C, и есть функция типа void foo(char *); Проблема в том, что foo проверяет этот указатель на NULL ценить и делать что-то отличное от нормального поведения. В моей оболочке исходного кода Haskell для эт…
22 дек '12 в 11:50
1 ответ

inline-c: "`Type` нельзя маршалировать во внешнем вызове "

настройка Тип перечисления A C, отображаемый в Haskell c2hs, в комплекте с Storable экземпляр, который правильно компилируется (TypesC2Hs.chs). Я импортирую это неквалифицированное в модуль, который я назначил для inline-c контекст (Internal.hs). Об…
26 май '16 в 17:25
1 ответ

c2hs в маршаллере против gtk2hsC2hs

Я пытаюсь понять разницу между c2hs а также gtk2hsC2hs (модифицированная версия c2hs для использования в gtk2hs). Рассмотрим следующую кодировку: module Matrix where data Matrix = Matrix { xx :: !Double, yx :: !Double, xy :: !Double, yy :: !Double, …
12 апр '18 в 06:44
1 ответ

c2hs входящий и исходящий тип сортировки

Я смотрю на привязку haskell-mpi, и у нас есть, например, эта подпись в mpi.h: int MPI_Initialized (int *flag); который в Internal.chs представляется следующим образом: {#fun unsafe Initialized as ^ {alloca- `Bool' peekBool*} -> `()' discard*- #}…
15 апр '15 в 15:46
2 ответа

c2hs неправильно устанавливается / регистрируется

Когда я бегу cabal install c2hsКажется, что он заканчивается правильно, но не регистрирует пакет. Пакет выглядит так, как будто он даже не установлен: он не отображается в ghc-pkg listи перезапуск cabal install c2hs проходит ту же процедуру установк…
27 фев '12 в 02:13
1 ответ

Сборка Cabal с c2hs не находит модуль.chs

Я пробую c2hs и хотел скомпилировать небольшой пример общей библиотеки с Cabal, чтобы начать. У меня есть следующий соответствующий раздел файла клики test.cabal: executable libtest.so hs-source-dirs: src main-is: Dummy.hs other-extensions: ForeignF…
24 июн '15 в 21:48
2 ответа

Ошибка компоновщика GHCi с импортированными в FFI MPI-константами (через c2hs)

Я выясняю, как работает haskell-mpi, переписав привязку. Я пытаюсь повторно использовать установку MPICH, которая была установлена ​​путем установки PETSc (которая работает нормально). Вопрос: make main дает мне правильный модуль в GHCi, но когда я …
06 май '15 в 15:06
1 ответ

C2HS сортирует двойной указатель

Когда есть такая функция: some_type_t* some_type_create(const char* name, char** errptr); Есть ли способ получить C2HS для создания привязки Haskell со следующей подписью? someTypeCreate :: String -> IO (SomeTypeFPtr, String) Вот что я могу получ…
12 апр '16 в 14:02
1 ответ

nvcc + c2hs на OS X 10.9.5

Я создаю программное обеспечение, которое нуждается nvcc для компиляции. У меня нет CUDA-совместимого GPU, но на самом деле мне это не нужно - друг строит точно такое же программное обеспечение для Linux, у него нет CUDA GPU, но все в порядке. Я уст…
30 сен '14 в 16:38