Вопросы по теме 'ffi'

Использование c2hs в Windows
Я пытаюсь использовать пакет libxml-enumerator в Windows, который (в конечном счете) должен использовать c2hs. При попытке собрать соответствующий пакет я получаю печально известную ошибку «не существует» от c2hs. Кажется, это связано с отсутствием...
294 просмотров
schedule 11.06.2022

Преобразовать Haskell ByteStrings в С++ std::string
Я хочу преобразовать строгий ByteStrings из Haskell в std::string C++, чтобы передать его в библиотеку C++ через FFI . Поскольку ByteString может содержать NULL символов, преобразование в CString в качестве промежуточного шага...
1223 просмотров
schedule 09.08.2022

Взаимодействие LIRC с Haskell
Я использовал pyLirc при создании прототипа небольшого приложения на Python. Из соображений производительности (среди прочего) я перехожу на Haskell, но не могу найти модули, обеспечивающие аналогичную функциональность. Должен ли я просто...
130 просмотров

Предоставление Haskell-функций через внешний вызов экспорта не удается для CStrings
Я сделал короткую программу на Haskell, которая предоставляет функции для C или Python. Читал на http://www.haskell.org/ghc/docs/7.0.3/html/users_guide/ffi-ghc.html#ffi-library к письму, и это сработало для экспорта целых чисел. Хотите...
1724 просмотров
schedule 11.03.2022

Реализация MVar в C?
Есть ли известная реализация Haskell MVar в C? Существует пример того, как реализовать это на C++. Но я хотел бы реализовать это на C - скажем, пока только MVar CInt эквивалентно на C. Написание примитивов синхронизации может оказаться...
933 просмотров
schedule 05.05.2023

c2hs не устанавливается/не регистрируется правильно
Когда я запускаю cabal install c2hs , кажется, что он завершается правильно, но не регистрирует пакет. Пакет выглядит так, как будто он даже не установлен: он не отображается в ghc-pkg list , а повторный запуск cabal install c2hs проходит через...
401 просмотров
schedule 03.08.2022

как использовать разделяемую библиотеку из haskell без заголовочного файла?
У меня есть библиотека pdflib_py.so, которую я хочу вызвать из haskell. У меня нет заголовочного файла. И, как вы можете видеть, имя библиотеки не в стандартной форме libbla. Как мне получить к нему доступ из haskell? Я следовал учебнику c2hs....
401 просмотров
schedule 25.03.2024

Вызов стандартного открытого диалога с LuaJIT приводит к нарушению прав доступа
Следовал примеру MSDN GetOpenFileName используя FFI LuaJIT. Я пытался заставить это работать в течение двух дней, не только диалоговое окно не открывается, но и все вылетает. При отладке с помощью OllyDdb выдается уродливое нарушение прав...
600 просмотров
schedule 13.05.2023

Вложенные структуры и объединения с Common Lisp CFFI
Я хочу написать небольшую библиотеку-оболочку для библиотеки C (точнее, ZeroMQ v3). Однако мне интересно, как объявить иностранные вложенные структуры и объединения в CFFI. Заголовочный файл C, содержащий соответствующую комбинацию...
502 просмотров
schedule 14.05.2023

Почему GHC распространяется с gcc и g++?
В Windows GHC распространяется с gcc и g++, например. под ghc-7.6.3\mingw\bin . На -pgmc 3" rel="noreferrer">странице загрузки также указано, что сборка для Windows "также включает поддержку компиляции файлов C++». Я мог предположить, что эти...
2822 просмотров
schedule 31.10.2022

Почему я не могу хранить адрес одной переменной в Prolog+C?
Итак, в основном я хочу вызвать некоторый код C из Prolog, и вот код: Пролог: :-foreign(fun1(+integer,-integer)). :-foreign(fun2(+integer,-integer)). % p = b; testfuna(Var, Val) :- fun1(Val, Var). % p = &b; testfunb(Var, Val) :- fun2(Val,...
59 просмотров
schedule 11.10.2022

Как преобразовать строку C в строку Rust и обратно через FFI?
Я пытаюсь получить строку C, возвращаемую библиотекой C, и преобразовать ее в строку Rust через FFI. mylib.c const char* hello(){ return "Hello World!"; } main.rs #![feature(link_args)] extern crate libc; use libc::c_char;...
38012 просмотров
schedule 09.02.2024

Сбой привязки отложенного символа OS X Yosemite ffi-hunspell dyld: символ не найден
После обновления я получаю эту ошибку при запуске тестов: dyld: lazy symbol binding failed: Symbol not found: __ZN8HunspellC2EPKcS1_S1_ Referenced from: /usr/lib/libhunspell-1.2.dylib Expected in: flat namespace dyld: Symbol not found:...
1508 просмотров
schedule 09.05.2023

Как правильно управлять выделенной памятью на иностранном языке?
Мой случай довольно прост: у меня есть приложение на C++ и библиотека Haskell, и мне просто нужно экспортировать из Haskell функцию, которая вернет C-строку. Проблема в том, что строка C изначально является String , и чтобы получить из нее строку...
288 просмотров
schedule 26.12.2022

Почему не работает сон?
Почему в следующем коде c_sleep немедленно возвращается? {-# LANGUAGE ForeignFunctionInterface #-} import Foreign.C.Types import Data.Time.Clock import Control.Concurrent foreign import ccall unsafe "unistd.h sleep" c_sleep :: CUInt ->...
363 просмотров
schedule 07.05.2022

Когда запускается сборщик мусора при вызове экспорта Haskell из C?
При экспорте функции Haskell для вызова из C, когда собирается мусор Haskell? Если C владеет main , то невозможно предсказать следующий вызов Haskell. Этот вопрос особенно актуален при запуске однопоточного Haskell или без параллельного GC.
506 просмотров
schedule 21.03.2023

Как правильно создать OsStr(ing) из фрагмента, возвращенного FFI?
У меня есть функция, которая принимает обратный вызов с аргументами data: *const u8, length: usize , который представляет некоторый путь. Как правильно создать из этого OsStr(ing)? В OsStrExt есть from_byte_slice , но, похоже, он не проверяет...
1456 просмотров
schedule 10.08.2023

Передать черту Rust на C
Я создаю библиотеку Rust, которая должна вызывать некоторые функции C с объектами Rust. У меня есть черта с функцией, которая вызывает функцию C, функция C определена в Rust следующим образом: extern { fn process_trait(my_trait: MyTrait); }...
1120 просмотров
schedule 18.02.2022

Как поймать исключение Haskell, которое выдается в функции обратного вызова Haskell, вызываемой функцией C?
Есть ли хороший способ поймать исключение haskell, которое вызывается функцией обратного вызова haskell, вызываемой функцией c? Например, пусть у меня есть простая функция c, которая просто вызывает заданный обратный вызов, void callmeback (...
385 просмотров
schedule 08.05.2022

Проверка размера универсального типа во время компиляции
Я пытаюсь написать привязки Rust для библиотеки коллекции C (Judy Arrays [1]), которая предоставляет себе место только для хранения значения ширины указателя. У моей компании есть изрядное количество существующего кода, который использует это...
2282 просмотров
schedule 17.02.2024