как настроить таргетинг haskell на android с помощью jhc?

Я хочу написать функцию (модуль) Haskell типа: String -> String для вызова в Android. Кажется, самый простой способ — использовать JHC для создания кода C, а затем использовать Android NDK для создания общей библиотеки, но я не смог найти никакой документации для JHC. Использует ли JHC Cabal для сборки? Достаточно ли стабилен JHC для использования библиотеки Parsec или Attoparsec?


person doofin    schedule 21.03.2015    source источник
comment
Самый простой метод, вероятно, Фреге.   -  person Janus Troelsen    schedule 17.04.2016


Ответы (2)


Еще в 2011 году я имел ограниченный успех, используя JHC аналогичным образом, но ориентируясь на iOS, а не на Android. Первоначальные результаты были хорошими в том, чтобы просто запустить эту штуку, но мы закончилось тем, что мы отказались от JHC в пользу GHC именно потому, что мы начали получать странные ошибки времени компиляции в программах, использующих Parsec. Имейте в виду, что это было в 2011 году, поэтому с тех пор JHC мог значительно улучшиться.

Если вы хотите дать GHC шанс, я бы порекомендовал посмотреть этот пример который использует GHC 7.8 для компиляции игры для Android. Я еще не использовал его в гневе, но мне удалось заставить его работать на Docker, дойдя до пересборки игры с нуля и установки ее на реальное Android-устройство, так что этот подход определенно заслуживает внимания.

ОБНОВЛЕНИЕ от августа 2017 г. Мориц Ангерманн опубликовал подробные инструкции по настройке Android с помощью кросс-компилятора GHC.

person Cactus    schedule 19.04.2016
comment
Спасибо за ваш ответ, но когда я опубликовал награду, я надеялся на недавние попытки, именно потому, что я не видел, чтобы кто-то использовал JHC для этого с 2011 года. - person Janus Troelsen; 20.04.2016

Что ж, компилятор с именем eta может быть сейчас наиболее удобным способом. Он нацелен на jvm и создаст файл jar, поэтому вы можете напрямую поместить его в свой проект

person doofin    schedule 17.08.2017