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] aamonster.livejournal.com 2011-11-03 07:43 am (UTC)(link)
Дофига всего, но сводится к "пока не было нужно, так что не сделано".

А насчет 100500 "не передавать в каждую хаскелевую функцию 100500 указателей на хрень" - разве это FP-way?

[identity profile] trueblacker.livejournal.com 2011-11-03 07:59 am (UTC)(link)
>Дофига всего, но сводится к "пока не было нужно, так что не сделано"

в конце-концов, lazy парадигма - одна из ключевых в ФП ;)

[identity profile] plumqqz.livejournal.com 2011-11-03 07:59 am (UTC)(link)
Экспериментирую с интеграцией либ на хаскеле в опердень на дельфи.
http://dpmmax.livejournal.com/125551.html?mode=reply&style=mine#add_comment

Вы, знаете, во френдленте рядком шли.

[identity profile] nivanych.livejournal.com 2011-11-03 10:13 am (UTC)(link)
И у меня рядом...

[identity profile] nivanych.livejournal.com 2011-11-03 10:29 am (UTC)(link)
Он был самым спокойным, самым адекватным водителем!
Женская красота свела его с ума, надо же.

[identity profile] plumqqz.livejournal.com 2011-11-03 10:30 am (UTC)(link)
А может быть, наоборот? Может быть, он познал сущее?

[identity profile] nivanych.livejournal.com 2011-11-03 10:25 am (UTC)(link)
> с интеграцией либ на хаскеле в опердень на дельфи

Действительно, надо было пёрл интегрировать.
В этой идее, определённо, что-то есть...
Можно интегрировать так, что создатели Perl/Tk позавидуют!

[identity profile] plumqqz.livejournal.com 2011-11-03 10:29 am (UTC)(link)
Действительно, надо было пёрл интегрировать.

Ну например, если человеческие способы недоступны, но уж всяко не хаскель или старовавилонский.

[identity profile] metaclass.livejournal.com 2011-11-03 10:32 am (UTC)(link)
Только хаскель, только хардкор!

[identity profile] plumqqz.livejournal.com 2011-11-03 10:34 am (UTC)(link)
Нет, Вы уж определитесь - либо хаскель, либо хардкор. Секс соло - это ну никак не хардкор.

[identity profile] zelanton.livejournal.com 2011-11-05 11:43 am (UTC)(link)
Почему именно хаскель?

[identity profile] metaclass.livejournal.com 2011-11-05 11:57 am (UTC)(link)
Самый простой в плане кросс-платформенности, статической сборки и минимизированным синтаксисом. Вычисления на типах и метапрограммирование встроенное. Либ готовых немеряное количество. Система сборки вменяемая, не требует плясок с бубном.

Впрочем, я бы его в продакшен не советовал бы - вуду кромешное в краевых случаях. Это мне развлечение - по ночам компиляторы собирать и в рантайме отладчиком копаться, да баг-репорты слать, а для работы нужно что-то более предсказуемое.

[identity profile] metaclass.livejournal.com 2011-11-05 12:00 pm (UTC)(link)
Ну а если не лезть в краевые случаи, то даже при обычной работе хватает нетривиальности - я до сих пор не могу объяснить, как из ошибки вывода типов я делаю вывод "что исправить в программе". А любая практически применимая программа тянет за собой кромешные простыни сигнатур типов, которые без поллитры не поймешь.

[identity profile] metaclass.livejournal.com 2011-11-05 12:01 pm (UTC)(link)
Т.е. тут получается так: сложный язык, но очень простая инфраструктура, даже для кроссплатформенного случая - мне с таким удобнее работать, чем с простым языком и нечеловечески непонятной инфраструктурой, как в Java например.

[identity profile] zelanton.livejournal.com 2011-11-21 07:13 pm (UTC)(link)
Почему тогда не Ruby или что-нибудь из той новомодной песочницы?
Имхо, и проще, и перспективней в плане поддержки и развития.

[identity profile] metaclass.livejournal.com 2011-11-21 07:23 pm (UTC)(link)
Не люблю интерпретируемые языки.

[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# и начинаются пляски, кто во что горазд.
Так что выбрал чисто по эстетическим соображениям хаскель - мне нравятся его теоретические основания и их практическая реализация.
Но в продакшен глобально его тащить нету смысла, ибо если что сломается - никаким боком не найдешь, в чем проблема. Так что только как вспомогательный инструмент для себя.