LINUX.ORG.RU

GHC 8.0.1

 ,


4

8

Спустя 6 лет с момента релиза 7.0 выпущена новая версия компилятора языка Haskell — GHC 8.0.1.

Главные изменения:

  • Новое расширение DuplicateRecordFields, позволяющее использовать в различных типах поля с одинаковыми именами.
  • Поддержка превращения do-нотации в код, использующий класс Applicative вместо Monad.
  • Расширения Strict и StrictData, отключающие ленивое вычисление кода и данных соответственно в пределах модуля.
  • Поддержка инъективных (injective) семейств типов и рекурсивных суперклассов.
  • Улучшена генерация стектрейсов.
  • Новый генератор кода для платформы PPC64. Поддержка операционной системы AIX.
  • Улучшена поддержка платформы ARM.
  • Поддержка LLVM 3.7.
  • Новый аллокатор памяти для 64-битных платформ.
  • Добавлена поддержка пользовательских ошибок при проверке типов.
  • Windows XP более не поддерживается.

>>> Полный список изменений

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

P.S. я не совсем уверен насчёт русского перевода слова injective в данном контексте, может быть кто-то предложит лучший термин?

hateyoufeel ★★★★★ ()

Спустя 6 лет с момента релиза 7.0 выпущена новая версия компилятора языка Haskell - GHC 8.0.1.

По-моему, кто-то что-то не то написал. Дальше ссылка: https://downloads.haskell.org/~ghc/

А по этой ссылке можно понять, что релиз 7.0 состоялся в августе 2014 года и это далеко не 6 лет, как указано в новости.

К тому же, после 7.0 вышло ещё куча релизов вплоть до 7.10 и только после 7.10 (через полгода) вышел релиз 8.0.1.

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

так и говори: инъективный, инъективность.

kep ()
Ответ на: комментарий от Anonim999

А по этой ссылке можно понять, что релиз 7.0 состоялся в августе 2014 года

Нельзя понять. Посмотри на даты еще более ранних релизов и пойми свой косяк.

А релизы - штука такая, обычно считают время между мажорными релизами в таком контексте.

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

релиз 7.0 состоялся в августе 2014 года

Я в 2014 7.8 уже использовал, так что нет. В письме в рассылке было написано 6 лет, я им больше верю :)

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

А релизы - штука такая, обычно считают время между мажорными релизами в таком контексте.

Предыдущий мажорный релиз на самом деле был полтора года назад (7.10.1).

hateyoufeel ★★★★★ ()

Это больше не модно. Закопайте

anonymous ()

Что это за недоязычок, к которому компилятор выходит раз в 6 лет?

Sociopsih ★☆ ()

использующий класс Applicative вместо Monad

Монады вышли из моды?

tailgunner ★★★★★ ()

Про TypeInType уж точно следовало бы в новости отразить. Похоже, что это центральное изменение.

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

А по этой ссылке можно понять, что релиз 7.0 состоялся в августе 2014 года и это далеко не 6 лет, как указано в новости.

https://downloads.haskell.org/~ghc/7.0.1/

ghc-7.0.1-src.tar.bz2 12-Nov-2010

http://fa.haskell.narkive.com/KxJGgQMJ/haskell-announce-ghc-version-7-0-1

К тому же, после 7.0 вышло ещё куча релизов вплоть до 7.10 и только после 7.10 (через полгода) вышел релиз 8.0.1.

https://groups.google.com/forum/#!topic/haskell-cafe/4_GqDhjmJzw

В оригинале звучало как:

The GHC developers are very pleased to announce the release of the first new super-major version of our Haskell compiler in six years, GHC 8.0.1.

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

Applicative не накладывает ограничений на последовательность выполнения, что позволяет автоматически распараллеливать участки кода.

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

Про TypeInType уж точно следовало бы в новости отразить. Похоже, что это центральное изменение.

Одно из. Я хотел про него написать, но не смог придумать русский перевод к термины kinds.

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

Ну вот и kinds неплохо было бы перевести. Или скопипастить общепринятый вариант.

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

Класс Monad шире класса Applicative, получается, что класс Applicative строже. Поэтому решение правильное.

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

Насколько помню, Applicative допускает сайд-эффекты, отсюда зависимость от последовательности выполнения.

iVS ★★★★★ ()

Зачем оно нужно. Там поди и библиотек к этому динозавру кот наплакал. Вот в F# можно дёргать код из всего что компилируется cil код, например c#.

anonymous ()
Ответ на: комментарий от tailgunner

Устоявшегося перевода не завезли, поэтому имеет смысл оставить непереведённым

Softwayer ★★ ()

А где хоть про все эти нововведения почитать можно? RWH 8 лет уже, PCPH три. Ну http://dev.stephendiehl.com/hask/ есть, но и оно уже, чувствуется, протухло. Как угнаться-то?

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

А где хоть про все эти нововведения почитать можно?

Это не нужно. «Haskell - avoiding success at all costs» (ц)

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

Ну, например, по первой ссылке всё довольно неплохо расписано. Плюс документация к самому GHC довольно таки обширна.

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

Этот динозавр как был на передовой 20 лет назад, так и до сих пор развивается такими темпами, что живому человеку не угнаться за всеми нововведениями. Какие существенные изменения в F# за последние 5 лет произошли? Есть хоть что-нибудь сравнимое с введением type families, datatype promotion, kind polymorphism и новым type in type?

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

Класс Monad шире класса Applicative

Как на Хаскелля именины
Испекли аппликативы,
Вот такой ширины,
Шире той монадщины!

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

Насколько помню, Applicative допускает сайд-эффекты, отсюда зависимость от последовательности выполнения.

Сайд эффекты тут вобще не в тему, потому что IO a - это по сути State RealWorld a, и в этом случае исполнение всегда будет последовательным. Речь идёт скорее о более простых случаях типа Maybe. Например:

f :: Maybe a -> Maybe b -> Maybe c
f ma mb = do
    a <- ma
    b <- mb
    pure $ g a b
В этом случае вычисление a и b можно распараллелить.

А вообще ApplicativeDo запилили где-то в недрах Facebook, им оно для Haxl нужно.

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

Да, такой перевод довольно часто встречается.

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

Сорри, попутал. Каждая монада является Applicative.

iVS ★★★★★ ()

Windows XP более не поддерживается.

ШОК!

yoghurt ★★★★★ ()

Да мы еще конечки не сносили седьмой хаскель толком не освоили... :)

Но всё равно хорошо.

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

я не совсем уверен насчёт русского перевода слова injective

Математический термин переводится по-вкусу как «инъекция», «вложение», «мономорфизм».

Evenik ()

Поспешил, я имел ввиду существительное «injection». А прилагательное «injective» — соответственно как «инъективный», «вложенный», «мономорфный».

Evenik ()
Ответ на: комментарий от Twissel

в общем то это аналог типов для типив, чтобы не путать вместо type называют kind , по русски неплохо «вид». «Вид типа». «Это такой вид типа». Как «вид» у животных и растений. Например, волки - вид млекопитающих.

гм, ну это отсебятина, про вид животных. я так понимаю это. как задумано - не знаю. вроде логично.

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

ИМХО же. Я тут понял что я ещё про подвижки в сторону MonadFail Proposal забыл упомянуть.

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

Если уж приводить аналогии, что делать в принципе не стоит, то конкретное животное принадлежит определенному виду, роду, классу, это всё будут аналоги типов. А вот сами «вид», «род» и «класс» — это таксоны, которые будут аналогами каиндов.

Но даже так аналогия кривая и унылая в корень.

nezamudich ★★ ()

Windows XP более не поддерживается.

Круто. Они даже xp не осилили. Еще одна причина не использовать haskell. (У меня на виртуалке XP со всяким г.. которое не работает на 10).

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

Новый генератор кода для платформы PPC64. Поддержка операционной системы AIX.

Ну и кто мне тут недавно втирал про агонию AIX? Видать, мужики-то и не знали.

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