Выпуск компилятора языка D 2.084

Разработчики языка программирования D опубликовали релиз основного эталонного компилятора DMD 2.084.0, который поддерживает системы GNU/Linux, Windows, macOS и FreeBSD. Код компилятора распространяется под свободной лицензией BSL (Boost Software License). Дополнительно развивается альтернативный компилятор LDC, использующий наработки проекта LLVM и поставляемый под лицензией BSD.

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

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

  • Реализован флаг компилятора «-check«, позволяющий управлять включением различных runtime-проверок: проверки утверждений (assert), границ (bounds), инвариантов класса и структуры (invariant), входных и выходных контрактов (in/out) и вариантов по умолчанию (switch). При сборке без опции «-release» все эти проверки включены по умолчанию. Например, если требуется отключить assert-проверки, можно указать «dmd -check=assert=off». Для управления реагированием на сбой проверки добавлена опция «-checkaction=D|C|halt«;
  • Добавлен флаг компилятора «-mixin» для сохранения в отдельный файл кода, сгенерированного для «примесей», определённых оператором mixin. Опция может использоваться с целью упрощения отладки примесей, так как в случае ошибки позволяет определить точный номер проблемной строки в коде примеси;
  • В DUB, утилите для сборки и управления пакетами, предложена новая команда «add«,
    предназначенная для упрощения добавления зависимостей в пакет проекта без необходимости редактирования метаданных в форматах JSON или SDLang.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.