169 похожих чатов

Кто нибудь тестил ghcjs, для транспиляции haskell в js? Стоит ли

внимания?Есть ли подводные камни?

11 ответов

30 просмотров

Внимания стоит, если нужен для задачи. Подводные и рекоммендации: - Для сборки может потребоваться 10+GB RAM. - Не стоит писать фронт на хаскеле, потому что это неудобно и увеличивает время и память сборки. - Для релиза js можно использовать ghcjs 8.6.5 макс, т.к. с 8.10.7 версией есть проблемы с размером выходного файла (link). Использую 8.6.0.1 из pkgs из репы miso (link). - ghcjs не поддерживает ghci. GHC можно использовать с jsaddle (link, link), но я не стал. - Для разработки hs можно использовать GHC 9.6.2. С js-бэкендом собрать проект не получилось. (flake) - Релизить можно как при помощи nix build, так и cabal build в девшеле (nix develop). Собирать лучше cabal build, потому что часть сборки кэшируется. - Полученный js со всем-всем-всем может содержать одинаковые топлевельные имена, на которые ругается TypeScript при import. Я не был уверен, что смогу правильно отредактировать файл, поэтому решил не делать import в основное приложение, а грузить через script. - Сделал обертку с единственной нужной функцией (link) и зову ее из TS (link, link). Сам js подгружаю как <script> и жду, пока функция будет доступна (link). - Размер полученного js сейчас ~4 мб.

Danila Danko
Внимания стоит, если нужен для задачи. Подводные и...

Ещё не стоит ожидать что пакеты где есть ccall или capi заработают с ghcjs. FFI C код так и не понял как подцепить туда.

Danila Danko
Внимания стоит, если нужен для задачи. Подводные и...

я не согласен с тем, что "Не стоит писать фронт на хаскеле, потому что это неудобно". Из этой фразы можно убрать слово "фронт" и, на мой взгляд, получить эквивалентное утверждение. Проще говоря, - мне "удобно".

Danila Danko
Внимания стоит, если нужен для задачи. Подводные и...

> Не стоит писать фронт на хаскеле, потому что это неудобно и увеличивает время и память сборки. Спорная позиция и однобокое представление

Kirill Valyavin
> Не стоит писать фронт на хаскеле, потому что эт...

Посмотри тред. Я уже не могу отредактировать.

Danila Danko
Будь ласка, раскрой тему.

Да, неудобно, да, долго, но есть причины писать фронт на сабже даже с этими неудобствами Правда, это зависит от того, как идёт разработка

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта