Есть ли другие компиляторы, чем ghc, которые поддерживают интерфейс внешней функции Haskell, как в The Haskell 98 Foreign Function Interface 1.0 An Addendum to the Haskell 98 Report?Какие компиляторы поддерживают Haskell FFI
ответ
nhc98 заявляет, что он поддерживает ffi:
nhc98 компилятор содержит реализацию стандартной внешней функции интерфейса, который также доступен в Объятия и GHC. Самая последняя выпущена версия nhc98 реализует последний стандартный синтаксис деклараций о внешней функции, как указано в: http://www.cse.unsw.edu.au/~chak/haskell/ffi/
Я не уверен,
Соответствие отмечает ли
- Поддерживаемые вызова Соглашения: ccall, noproto и cast. (Последние два являются нестандартными, см. Ниже). Неподдерживаемые соглашения о вызове: stdcall, jvm, dotnet, cplusplus.
- импорт «обертка» по-прежнему не поддерживается.
- Аннотации, небезопасные, не имеют особого значения в nhc98; это просто оптимизация скорости для ghc.
- Внешняя спецификация экспорта рассматривается как фактическая подпись типа для экспортируемой функции. Вам не разрешена вторая (возможно, более общая) подпись типа.
- Следовательно, вы не можете экспортировать иностранные функции, требующие словаря класса.
означает, что поддержка только частично, или являются ли эти дополнительные вещи, но nhc98 есть, насколько я знаю, единственный компилятор, кроме GHC, который поддерживает по крайней мере, большой кусок FFI спецификации. (hugs - это не компилятор, а интерпретатор, он поддерживал [большую часть] спецификации FFI, как это было при завершении разработки объятий [2006].)
Обратите внимание, однако, что nhc98 также не поддерживается.
Из активно поддерживаемых реализаций jhc и UHC поддерживают только небольшую часть FFI (примитивный импорт извне) в соответствии с их домашними страницами, поэтому GHC в основном без конкуренции.
реализации Все Haskell поддерживают FFI, так как, по определению, это не компилятор Haskell, если он не реализует спецификацию языка (который включает в себя the FFI.
Это означает Hugs, GHC, nhc98 как минимум
- 1. Какие компиляторы поддерживают std :: filesystem?
- 2. Какие компиляторы C++ уже поддерживают лямбда?
- 3. Пользовательские литералы (расширенные литералы) C++ 11 ... какие компиляторы поддерживают его?
- 4. Все ли компиляторы gcc поддерживают флаг @FILE?
- 5. Отзыв о Haskell FFI
- 6. Haskell - FFI и указатели
- 7. Компиляторы для Haskell
- 8. Какие компиляторы Fortran есть?
- 9. Почему встроенные компиляторы C++ не поддерживают исключения?
- 10. Какие средства разработки поддерживают создание служб Windows?
- 11. Haskell FFI двойной указатель аргумент
- 12. Функция Haskell в Python FFI
- 13. Haskell - компиляторы парсера ключевые слова
- 14. Какие кодеки поддерживают Xuggler?
- 15. Какие clearfixes поддерживают браузеры?
- 16. Какие браузеры поддерживают bluebird?
- 17. Какие JDKs поддерживают jQAssistant?
- 18. Какие браузеры поддерживают globalStorage?
- 19. Какие макеты поддерживают animateLayoutChanges
- 20. Какие видеоформаты поддерживают флеш?
- 21. Какие браузеры поддерживают «! Important»?
- 22. Какие пропорции поддерживают ffmpeg?
- 23. Какие компьютеры поддерживают NUMA?
- 24. Какие сайты поддерживают U2F?
- 25. Какие браузеры поддерживают Object.observe?
- 26. Какие эллиптические кривые поддерживают jarsigner?
- 27. Какие браузеры поддерживают Xpath 2.0?
- 28. Какие версии Java поддерживают Griffon?
- 29. Какие языки программирования поддерживают TestComplete?
- 30. Какие классы Ruby поддерживают .clone?
Но так GHC не является компилятором Haskell, поскольку, например, в отчете говорится, что разрешены взаимно рекурсивные модули, но GHC не полностью их поддерживает. – scravy