LINUX.ORG.RU

GHC 7.8.1

 ,


3

4

Спустя почти год с выпуска предыдущей версии, вышла новая версия GHC 7.8.1 — одного из самых мощных и развитых на сегодняшний день компиляторов функционального языка программирования Haskell, который разрабатывается свободной рабочей группой из многочисленных разработчиков, собранных по всему миру и координируемых из лаборатории университета Глазго.

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

  • добавлена поддержка OS X Mavericks и XCode 5. В связи с этим GHC использует Clang для препроцессорной обработки кода для билдов Mavericks;
  • добавлено новое предупреждение по умолчанию -fwarn-typed-holes, подробнее в Typed Holes;
  • возможность выполнять вычисления над натуральными числами на уровне типов при использовании расширения DataKinds;
  • добавлены Closed Type Families;
  • при использовании расширения GeneralizedNewtypeDeriving теперь проводится проверка ролей, подробнее в Roles;
  • добавлены Overloaded Lists;
  • добавлено расширение Pattern Synonyms;
  • переработаны механизмы вывода типов, увеличена скорость, уменьшено потребление памяти;
  • по умолчанию GHC проводит unboxing всех строгих полей «малых» типов для datatype'ов. «Малые» типы — это типы, размер которых меньше, либо равен машинному слову. Это означает что больше не нужно использовать прагму UNPACK для строгих полей с типом Int. Это также относится к типам с плавающей точкой;
  • новый менеджер IO, который значительно лучше масштабируется по сравнению с предыдущим;
  • LLVM-backend поддерживает 128-и и 256-битные SIMD операции;
  • полностью переписан кодогенератор;
  • улучшена поддержка кросскомпиляции;
  • PrimOps для сравнения unboxed значений теперь возвращает Int# вместо Bool;
  • новые PrimOps для атомарных операций;
  • Typeable теперь poly-kinded, типы Typeable1, Typeable2 и т.д. объявлены устаревшими и перемещены в Data.OldTypeable;
  • добавлена возможность параллельной компиляции;
  • добавлена поддержка новой прагмы {-# MINIMAL #-}, разрешающей явную декларацию минимального полного определения класса;
  • в версии 7.10 Applicative станет суперклассом Monad, что потенциально приведет к неработоспособности большого количества кода. Для облегчения миграции GHC теперь генерирует предупреждения о конфликтах Applicative-Monad Proposal (AMP);
  • добавлено расширение InterruptibleFFI extension, подробнее Interruptible foreign calls;
  • добавлен модуль Hooks в GHC API;
  • кодогенератор LLVM теперь поддерживает динамическую линковку;
  • добавлена поддержка Unicode left/right single quotation marks (i.e. U+2018 and U+2019) для сообщений компилятора, если текущая локаль поддерживает Юникод.

Страница загрузки

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

★★★★★

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

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

Явный англицизм, автор наверняка имел в виду «reverse a string», что имеет вполне конкретный и понятный смысл.

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

Кстати, откуда попаболь? Может, ты и есть герой этой веселой истории? Расскажешь, как тебе потом жилось кассиром в макдональдсе?

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

Есть, где обычно применяется Haskell?

Ему есть место там где пишут на C++?

Для каких задач он идеально подходит?

Такие области есть. Просто изучайте, пишите, экспериментируйте, и даже не пытайтесь страдать подобно некоторым борщефилией.

Сейчас по работе активно использую libev и asio. Часто ловлю себя на мысли, что многие, очень многие вещи было бы гораздо проще сделать на хаскеле. И костыли вроде shared_from_this(), очень полезные для asio, выглядят порою весьма забавно.

Хаскель - очень богатый язык. Некоторые приемы программирования (пока??) недоступны даже на ближайших по духу языках типа F# и Scala. И это находит приложения (конкретики давать не буду, а то у некоторых вентилятор вечно работает в режиме нон-стоп).

Например, для меня было большим открытием узнать, что императивные вычисления IO можно записывать рекурсивно и фактически в произвольном порядке. Примерно так же можно делать и в F#, и в Scala, но дело в том, что в хаскеле реализован общий механизм, и его можно распространить на самописные вычисления (не будем называть это слово, на которое у многих здешних обитателей разыгрывается аллергия тяжелейшей формы). И мне это очень пригодилось.

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

Это какой-то парад плюсовиков-двоечников, которые даже два плюс два делают через указатели, с традиционной утечкой памяти и выпадением в корку. Этим изучать Хаскель?! Для начала, неплохо бы арифметику на уровне первого класса, а затем, что-то попроще, васик, например :-)

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

Явный англицизм, автор наверняка имел в виду «reverse a string», что имеет вполне конкретный и понятный смысл.

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

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

И поэтому ты, раздражительный, так и будешь кричать «свободная касса!», тогда как более адекватные будут говорить на сленге или вообще суржике в серьезных конторах.ca

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