GHC 7.8.1

Спустя почти год с выпуска предыдущей версии, вышла новая версия 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) для сообщений компилятора, если текущая локаль поддерживает Юникод.Страница загрузки

 ghc, haskell

©  Linux.org.ru