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 (варианты с аргументом в виде строки оставлены).
- Убрана декларация typedef, как следствие, перестанут работать некоторые механизмы, которые были завязаны на неё, например, некоторые варианты std.conv.to.
- Произведён большой пересмотр реализации модуля std.regex.
- Как всегда исправлены около сотни ошибок библиотеки и компилятора.
На сайте загрузки доступны пакеты для ubuntu (работает и на debian), fedora и opensuse для архитектур i386 и amd64, а также универсальный zip архив с бинарниками.
>>> Подробности