LINUX.ORG.RU

Вышла новая версия компилятора MLton

 mlton,


0

4

После трехлетнего перерыва вышла новая версия оптимизирующего компилятора MLton для языка Standard ML.

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

  • Компилятор
    • Улучшение сообщений об ошибках типов
    • Удалена возможность генерации байт-кода
    • Удалена поддержка .cm файлов, с помощью утилиты cm2mlb (доступной в базовой поставке) возможно сконвертировать CM проекты в MLB проекты, сохраняя область видимости идентификаторов модуля
    • Исправление ошибок, changelog
  • Runtime
    • Исправление ошибок, changelog
  • Язык
    • Директива (*#line line:col «file» *) работает с относительными путями файлов
    • В ML Basis annotations добавлена директива «resolveScope»
  • Библиотеки
    • Улучшена производительность String.concatWith
    • Используются битовые операции для REAL.class и других низкоуровневых операций
    • Поддержка дополнительных переменных в Posix.ProcEnv.sysconf
    • Исправление ошибок
    • Удален MLton.Socket
    • Обновлены: ckit library, MLRISC library, SML/NJ library
    • Добавлена MLLPT library
  • Дополнительные инструменты
    • Поддержка работы с относительными путями файлов в директиве (*#line line:col «file.lex» *) добавлена в mllex и mlyacc
    • Исправлена ошибка с обработкой комментариев в mlyacc

MLton осуществляет полнотекстовую (whole-program) компиляцию программ на SML. Полнотекстовая компиляция позволяет достичь высокого уровня оптимизации. Аналогом MLton являются Stalin для Scheme и jhc для Haskell.

MLton поддерживает стандарт SML'97, SML Basis Library, имеет свой FFI (т.е. может вызывать C-функции без оберток) и другие полезные расширения. MLton генерирует небольшие исполнимые файлы,не требующие внешнего рантайма.

Подробнее о языке SML: http://en.wikipedia.org/wiki/Standard_ML

Подробнее о компиляторе: http://mlton.org/Features

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

★★★★★

Проверено: Shaman007 ()

Ура! Работал с предыдущей версией, впечатления самые положительные.

gogabr
()

jhc для Haskell

Являлся :)

// Алсо, судя по предыдущей новости, три года — это их дефолтный цикл.

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

оптимизирующего компилятора MLton

Где можно посмотреть тесты производительности?

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

При том, что stalin — это whole-program optimizing compiler для scheme, как сабж для sml.

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

А разве ML похож на Basic? Вроде, не очень то и похож... На OCaml даже несколько интересных вещей написано, да и скорость работы у него куда выше, чем у Basic.

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

Когда-то он был на шутауте, но, видимо, кому-то было лень поддерживать (или почему там еще пропадают бенчмарки?).

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

Пример на ATS:

fun sum
  (n: int): int = let
  fun loop
  (
    i: int, res: int
  ) :<cloref1> int =
    if i <= n then loop (i+1, res+i) else res
  // end of [loop]
in
  loop (1(*i*), 0(*res*))
end // end of [sum]
monk ★★★★★
()

Хорошо, да! Теперь ждем новостей о smlnj :)

bose
()

Все-таки больше исследовательский проект. Даже у OCaml'а с батарейками не супер, но он хоть на какое-то относительно широкое применение может претендовать, а у всех реализаций SML с этим совсем плохо. Так что толку с этой производительности немного.

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

Не так пугающ, как у Haskell, говорите?

ATS более лучше пугающ :)

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

Дык это же экперементальный язычёк. Его следует попроботь лишь для пощупать dependency types.

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

По-моему гораздо страшнее хаскеля. На уровне с плюсами.

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

В современном Бейсике никаких таких анахронизмов вроде LET уже не осталось. Да что там, в MSX Basic образца 85-го года их уже не было.

anonymous
()

А где крики «ненужно»? Это же всего лишь отец окамла вроде как. Какой от него толк на практике если есть современный и популярный хаскель, кроме как компилить написанные на нем компиляторы других языков?

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

Сравнивать ATS и LiveScript, это как сравнивать Pentium и Windows

ЯП это не только внутренности но и «наружности». Меня не смущает эстетическое сравнение языков.

«Некрасивый самолёт не полетит» (c) не помню кто. Шутка.

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

MLDonkey, Xapi. MLDonkey - вещь полезная, ну а Xen кто юзает, те и Xapi могут оценить по достоинству.

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

Ненужность в данном случае настолько очевидна, что нет смысла ее озвучивать даже. Странно, как такую «новость» вообще пропустили.

anonymous
()

Закопайте это маргинальное яйцеголовое поделие.

Пруф - http://www.softcraft.ru/paradigm/fp/whynotfp.shtml

Сразу оговорюсь. Сам я использую аппликативный язык программирования. Для интеграции скриптов в самой популярной на сегодняшний день инфраструктуре.

Догадайтесь какой это язык программирования.

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

Даже у OCaml'а с батарейками не супер, но он хоть на какое-то относительно широкое применение может претендовать, а у всех реализаций SML с этим совсем плохо. Так что толку с этой производительности немного.

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

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

А вот и закомплексованный нищеброд пожаловал.

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