Новая версия референсного компилятора языка D2

13 декабря вышла новая версия 2.057 dmd --- референсного компилятора языка программирования D версии 2 от компании DigitalMars. Основные изменения (первоисточник):

  • Оптимизации работы на 64-разрядных архитектурах, в частности, улучшения алгоритма использования регистра XMM, добавление поддержки March-O для obj2asm и dumpobj, исправление нескольких ошибок оптимизации, характерных исключительно для 64-разрядных систем: 7026, 6997, 6354.
  • Произведена чистка дублирующего функционала --- объявлены устаревшими целый ряд функций или их вариантов в модулях стандартной библиотеки:
    • убран идентификатор invariant, который дублировал функционал immutable;
    • из двух вариантов std.array.replace оставлен только тот, который создаёт новый массив, замена на месте теперь производится только с помощью std.array.replaceInPlace;
    • toISOExtendedString и fromISOExtendedString заменены на toISOExtString и fromISOExtString соответственно;
    • вместо std.file.getTimesPosix следует использовать универсальную функцию std.file.getTimes;
    • варианты функций isDir, isFile и isSymlink из std.file, принимавшие в качестве аргумента целое беззнаковое число, убраны в пользу attrIsDir, attrIsFile и attrIsSymlink (варианты с аргументом в виде строки оставлены).
    Как всегда, изменения пока носят не окончательный характер, при использовании старых форм выдаётся предупреждение, препятствующее компиляции, которое вы можете игнорировать. Полное удаление запланировано на май 2012 (см., например, replace)
  • Убрана декларация typedef, как следствие, перестанут работать некоторые механизмы, которые были завязаны на неё, например, некоторые варианты std.conv.to.
  • Произведён большой пересмотр реализации модуля std.regex.
  • Как всегда исправлены около сотни ошибок библиотеки и компилятора.

На сайте загрузки доступны пакеты для ubuntu (работает и на debian), fedora и opensuse для архитектур i386 и amd64, а также универсальный zip архив с бинарниками.

©  Linux.org.ru