metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2011-11-03 10:19 am

Инициализация хаскелевого рунтайма

Блин, как так можно?
http://www.haskell.org/ghc/docs/7.0.3/html/users_guide/bugs-and-infelicities.html#ffi-divergence
hs_init() not allowed after hs_exit()
The FFI spec requires the implementation to support re-initialising itself after being shut down with hs_exit(), but GHC does not currently support that.
Экспериментирую с интеграцией либ на хаскеле в опердень на дельфи.
В принципе, мешать этот баг не должен, но за реализацию в которой цикл "Инициализация чего-либо/Деинициализация чего-либо" можно выполнить только один раз, в нормальных местах руки вырывают.
Даже с учетом того, что у них используются глобальные переменные на предмет того, чтобы не передавать в каждую хаскелевую функцию 100500 указателей на контексты, потоки и прочая хрень - что можно сделать такого, чтобы при деинициализации оно не могло вернутся в изначальное состояние?

[identity profile] zelanton.livejournal.com 2011-11-21 07:33 pm (UTC)(link)
из-за скорости исполнения или тупо по религиозным причинам?
Если первое, то есть хорошие варианты с быстрыми виртуальными машинами, байт-кодом и прочая. Всё идёт к тому, что всё так будет делаться, кроме совсем уж драйверов. Странно уже держаться за эти комплексы.

[identity profile] metaclass.livejournal.com 2011-11-21 07:58 pm (UTC)(link)
Сложно выбрать мейнстримный из кучи всего придуманного гиками безумия.
Т.е. шаг в сторону от С/С++/Java/C# и начинаются пляски, кто во что горазд.
Так что выбрал чисто по эстетическим соображениям хаскель - мне нравятся его теоретические основания и их практическая реализация.
Но в продакшен глобально его тащить нету смысла, ибо если что сломается - никаким боком не найдешь, в чем проблема. Так что только как вспомогательный инструмент для себя.