• Haskell ffi Хаскелисты! Не трахоёбтесь с низкоуровневыми биндингами к библиотекам. Пишите ЧАСТНЫЙ случай на C, и прибиндивайтесь к нему через FFI.
    1. Это не усложняет сборку из исходников. Даже под неполноценными системами, бинарники GHC идут вместе с GCC. Кабал же, ваши нужды отлично понимает, и никаких сторонних сборочных средств не потребуется.
    2. Это не усложняет разработку. GHCI позволяет подгружать как .so/.dll, так и .o и невозбранно ими пользоваться прямо из REPL.
    3. Это не вносит дополнительных методологических трудностей. Низкоуровневые биндинги предполагают, что вы и так хорошо знакомы с искомой библиотекой. Да и из документации, в лучшем случае, отошлют к оригиналу.
    4. Даже в низкоуровневых биндингах обычно полно всякой сишной враппер-дряни. Вам же в ней и разбираться, равно как и в хаскельской враппер-дряни.
    5. В «частный случай» на C можно много чего запрятать, что негоже. А жесткие API/ABI интерфейсы обеспечат отличную изоляцию.
    6. Это единственный годный способ прибиндиться к C++.
    ♡ recommended by @ndtimofeev, @L29Ah, @waterlaz

Replies (3)

  • @Macil, Про С++ это единственный выход. Но. Частный случай для С? Што ето за х-ита?
  • @Macil, 7. И так как вы используете свой частный случай, это не будет тормозить, т.к. вызов через FFI будет только один, а дальше на С их уже будет столько сколько нужно.
  • @Macil, при таком подходе есть опасность всё написать на C, а не трахаться с хаскелем :)