Вышел компилятор языка D 2.083. Поддержка языка D включена в состав GCC

Опубликован релиз основного эталонного компилятора DMD 2.083.0, который поддерживает системы GNU/Linux, Windows, macOS и FreeBSD. Язык D использует статическую типизацию, обладает синтаксисом, схожим с C/C++, и обеспечивает производительность компилируемых языков, при этом заимствуя некоторые полезные возможности динамических языков в области эффективности разработки и обеспечения безопасности. Например, предоставляется поддержка ассоциативных массивов, косвенное определение типов, автоматическое управление памятью, средства параллельного программирования, опциональный сборщик мусора, система шаблонов, компоненты для метапрограммирования, возможность использовать библиотеки на языке C, а также некоторые библиотеки на C++ и Objective-C.

В новой версии:

  • Расширены возможности по связыванию с бинарными файлами, скомпилированными из кода на языке C++. Улучшена поддержка разработки проектов, сочетающих код на языках C++ и D;
  • Представлен дополнительный набор предопределённых идентификаторов для определения C++ runtime на этапе сборки: CppRuntime_Clang, CppRuntime_DigitalMars, CppRuntime_Gcc, CppRuntime_Microsoft и CppRuntime_Sun. Для определения C runtime используются идентификаторы CRuntime_Bionic, CRuntime_DigitalMars, CRuntime_Glibc, CRuntime_Microsoft, CRuntime_Musl и CRuntime_UClibc;
  • Предложен альтернативный синтаксис для связывания кодом на С++: 'extern (C++, «foo») void cppFunc ()';
  • Добавлено два новых встроенных типажа (traits): __traits (isZeroInit, T) для проверки инициализации типа нулевым значением и __traits (getTargetInfo, «key») для получения детальной информации о целевой платформе при компиляции;
  • Добавлена новая pragma linkerDirective, позволяющая указать библиотеку, которую следует передать компоновщику в исходных текстах.

Дополнительно можно отметить принятие в основной состав GCC фронтэнда с компилятором GDC (Gnu D Compiler), библиотеки libphobos (runtime) и тестового набора D2, что позволит использовать штатный GCC для сборки программ на языке программирования D. Процесс включения поддержки языка D в GCC начался ещё в 2011 году, но затянулся из-за необходимости приведения кода к соответствию требованиям GCC и проблем с передачей прав на интеллектуальную собственность компании Digital Mars, развивающей язык программирования D. Проблемы с интеллектуальной собственностью были достаточно быстро решены, но для решения технических проблем и синхронизации разработки с компилятором DMD потребовалось почти полностью переписать GDC.

Также недавно состоялся выпуск LDC 1.12.0, компилятора для языка D развиваемого на базе наработок проекта LLVM. В новой версии обеспечена поддержка LLVM 7.0, расширена поддержка JIT-компиляции, проведена оптимизация математической библиотеки, добавлена поддержка LTO-оптимизаций для платформы Win64.

© OpenNet