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

4 марта 2019 года

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

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

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

  • Добавлена поддержка взаимодействия с кодом Objective-C, позволяющая организовать обращение к классам, переменным и супервызовам, определённым в библиотеках на языке Objective-C. Классы

Objective-C теперь могут быть определены напрямую как классы D, без промежуточных прослоек (достаточно просто указать класс как extern(Objective-C) и использовать атрибут @selector для обращения к методам);

  • Внесены улучшения в сборщик мусора. В состав DRuntime добавлен новый сборщик мусора, реализующий более быстрый режим выборочного (в зависимости от типов) сканирования содержимого кучи

для выявления актуальных указателей или ссылок, указывающих на объекты в куче. Активация производится при помощи опции "--DRT-gcopt=gc:precise").

Кроме того, реализованы опции для управления поведением сборщика мусора при завершении приложения. Предложены три варианта: "collect" для инициирования полноценной сборки мусора при завершении приложения (поведение по умолчанию), "none" для завершения без чистки и "finalize" для завершения всех активных объектов без их анализа. Для выбора режима предложена опция "-DRT-gcopt=cleanup:режим". Дополнительно добавлены программные интерфейсы для доступа к статистике сборщика мусора и реализована возможность подключения к runtime собственных сборщиков мусора;

  • Улучшена совместимость со стандартной библиотекой C++. Добавлен новый DRuntime-модуль core.stdcpp.new_, предоставляющий доступ к C++ операторам new и delete, что позволяет программам на D использовать память, выделенную под кучу для C++. Кроме того, представлен модуль core.stdcpp.allocator позволяющий использовать C++ класс std::allocator с привязкой к типам контейнера STL;
  • Прекращена поддержка 32-разрядных версий macOS;

Кроме того, в прошлом месяце состоялся выпуск LDC 1.14.0, альтернативного компилятора для языка D, развиваемого на базе наработок проекта LLVM. В новой версии реализованы новые опции компилятора и runtime DMD 2.084.1, добавлена поддержка AddressSanitizer, переработан код компоновки при компиляции в формат WebAssembly.

Источники

править


 
 
Creative Commons
Эта статья содержит материалы из статьи «Выпуск компилятора языка D 2.085», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.