LINUX.ORG.RU

Вышел GHC 9.6.1

 , ,

Вышел GHC 9.6.1

0

3

Привет, ЛОР!

10 марта вышел релиз самого популярного компилятора языка Haskell — GHC 9.6.1. С момента предыдущего мажорного выпуска 9.4.1 прошло более 10 месяцев. GHC на данный момент является эталонной реализацией языка и распространяется под модифицированной лицензией BSD3.

Основные изменения в выпуске:

  • Добавлена начальная поддержка компиляции в JavaScript и WebAssembly. Поддержка JavaScript основана на предыдущих наработках в рамках GHCJS.
  • Снижены задержки в работе неперемещающего сборщика мусора.
  • Ошибкам компиляции присвоены уникальные коды, например GHC-12345, для упрощения поиска документации и возможных решений.
  • Добавлен новый способ объявления типов type data, позволяющий создавать типы без задания соответствующих им значений.
  • Убраны ограничения для названий полей при использовании OverloadedLabels (см. Unrestricted OverloadLabels).
  • Интерпретатор GHCi теперь корректно обрабатывает директивы {-# OPTIONS_GHC … #-} и {-# LANGUAGE … #-}.
  • В среду исполнения добавлена поддержка базовых операций для использования разграниченных продолжений (delimited continuations), что позволит серьёзно улучшить производительность библиотек, реализующих алгебраические эффекты, таких как Polysemy.
  • В базовой библиотеке реализована поддерка стандарта Unicode 15.0.
  • Добавлена поддержка компиляции с LLVM 15.

В дополнение к этому, вышла версия GHC 9.2.7 с исправлениями багов в ветке 9.2.

>>> Подробности

★★★★★

Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 7)

10 марта вышел релиз самого популярного компилятора языка Haskell

Разве есть ещё какие то компиляторы Haskell-а? Hugs не считается ;)

Rodegast ★★★★★
()
Ответ на: комментарий от ddidwyll

Давно уже есть. Но это полный отстой выходит, лучше так не делать.

hateyoufeel ★★★★★
() автор топика
Ответ на: комментарий от gns

Ждём stackage. А то он что-то запаздывает. Nightly только два месяца как на 9.4 перешёл.

hateyoufeel ★★★★★
() автор топика

компиляции в JavaScript

module Main where

main :: IO ()
main = putStrLn "Hello JS!"

This also means that all compiled programs, such as Main, are human-readable, for example here are the first ten lines:

$ head Main
#!/usr/bin/env node
var h$currentThread = null;
var h$stack = null;
var h$sp = 0;
var h$initStatic = [];
var h$staticThunks = {};
var h$staticThunksArr = [];
var h$CAFs = [];
var h$CAFsReset = [];
var h$regs = [];

Хьюман ридабл майасс.

fluorite ★★★★★
()
Ответ на: комментарий от fluorite

Хьюман ридабл майасс.

Оно нечитаемо в принципе. Хуже того, GHCJS генерит просто конские объёмы кода. Не самый сложный сайтик будет весить порядка миллиона строк кода.

hateyoufeel ★★★★★
() автор топика

Ну грацули. А когда новая версия Hakyll? В этом году ещё не релизились

kastro
()

Можно очень дурацкий вопрос? Оно в машинный код компилируется или как? То есть, там на выходе чистый ELF на линуксах получается? Или там VM?

А так - круто, классный язык, как мне кажется, хотя никогда не щупал.

GFORGX ★★★
()
Последнее исправление: GFORGX (всего исправлений: 1)
Ответ на: комментарий от GFORGX

Да, он компилируется в бинарник. Ещё есть бекенды для llvm, c , ну и теперь для js.

rk-d
()
Ответ на: комментарий от hateyoufeel

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

вот где не хватает суперкомпилятора..

но, по счастью для эстетов есть Elm!

AndreyKl ★★★★★
()
Ответ на: комментарий от hateyoufeel

Ну это хозяин-барин, конечно. Я только в стеке с ghcup разобрался и к емаксу language server прикрутил, а ты меня каким-то никсом пугаешь :) Эт мне пока не надо.

И ссылка твоя — это ж pull-request. Пока ревью, пока смерджат... Погоди бежать впереди паровоза.

gns ★★★★★
()
Последнее исправление: gns (всего исправлений: 1)
Ответ на: комментарий от gns

И ссылка твоя — это ж pull-request. Пока ревью, пока смерджат… Погоди бежать впереди паровоза.

Его уже смержили.

hateyoufeel ★★★★★
() автор топика
Ответ на: комментарий от GFORGX

Два варианта. Или можно использовать интерпретатор, или компиляция до обычного бинаря. В этом бинаре есть, конечно, изрядный кусок исполняющей системы, но бинарь как бинарь.

gns ★★★★★
()
Ответ на: комментарий от hateyoufeel

А нахрена он тогда такой красивый? И так-то под тяжестью вываливаемого со страницы жабаскрипта браузеры гнуться, а тут мульены строк... Если только что-то типа server-side, какой-нибудь node.js этим кормить, и то сомнительно.

gns ★★★★★
()
Ответ на: комментарий от gns

А нахрена он тогда такой красивый?

Сам задаюсь этим вопросом. Кому-то очень хотелось писать фронт на хачкелле, вот и пишут теперь. То, что я лично видел, не вызывало ничего кроме вящего ужаса и крови из глаз, потому что кроме собственно компилятора нужны ещё фреймворки, чтобы на голом хаскелле DOM на насиловать, а из фреймворков только чудовищный Reflex FRP. Причём он настолько страшен, что заставил как минимум двух фанатов хаскелла на моей памяти выучить JavaScript. Короче, это всё лучше не трогать.

Если только что-то типа server-side, какой-нибудь node.js этим кормить, и то сомнительно.

Server-side это нахрен не нужно, потому что можно запускать нативный код. GHCJS нужен чисто для браузеров.

hateyoufeel ★★★★★
() автор топика
Последнее исправление: hateyoufeel (всего исправлений: 1)
Ответ на: комментарий от hateyoufeel

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

gns ★★★★★
()
Ответ на: комментарий от gns

На самом деле, в это зачем-то вкладывались криптоложцы типа Serokell и IOHK, чтобы писать на хачкелле код для смарт-контрактов. Но что из этого вышло хорошего, я даже не представляю.

https://iohk.io/en/blog/posts/2020/06/04/looking-to-the-future-of-haskell-and-javascript-for-plutus/

hateyoufeel ★★★★★
() автор топика
Ответ на: комментарий от hateyoufeel

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

Причём он настолько страшен, что заставил как минимум двух фанатов хаскелла на моей памяти выучить JavaScript.

А вот это уже почти приговор :)

gns ★★★★★
()
Ответ на: комментарий от ddidwyll

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

hateyoufeel ★★★★★
() автор топика
Ответ на: комментарий от hateyoufeel

Релизов не было уже три с половиной года.

ого, вот это я отстал от жизни

AndreyKl ★★★★★
()
Последнее исправление: AndreyKl (всего исправлений: 1)
Ответ на: комментарий от ddidwyll

С одной стороны, да. С другой, как язык Elm был так себе. PureScript гораздо приятнее. В Elm из хорошего только встроенный фреймворк был.

hateyoufeel ★★★★★
() автор топика

Зачем это такое жирное и требовательное к процессору в процессе своего воплощения в бинарник?!

iZEN ★★★★★
()
Последнее исправление: iZEN (всего исправлений: 1)
Ответ на: комментарий от Werenter

Потому что hugs не компилятор?

Как бы да, тем более что он старый и поддерживает только Haskell 98.

Rodegast ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.