Разработчики языка программирования D представили (https://dlang.org/blog/2019/03/03/dmd-2-085-0-and-dconf-2019.../) релиз основного эталонного компилятора DMD 2.085.0 (https://github.com/dlang/dmd/), который поддерживает системы GNU/Linux, Windows, macOS и FreeBSD. Код компилятора распространяется (https://github.com/dlang/dmd/) под свободной лицензией BSL (Boost Software License).
Язык D использует статическую типизацию, обладает синтаксисом, схожим с C/C++, и обеспечивает производительность компилируемых языков, при этом заимствуя некоторые полезные возможности динамических языков в области эффективности разработки и обеспечения безопасности. Например, предоставляется поддержка ассоциативных массивов, косвенное определение типов, автоматическое управление памятью, средства параллельного программирования, опциональный сборщик мусора, система шаблонов, компоненты для метапрограммирования, возможность использовать библиотеки на языке C, а также некоторые библиотеки на C++ и Objective-C.
В новой версии DMD (https://dlang.org/changelog/2.085.0.html):
* Добавлена поддержка взаимодействия с кодом на Objective-C, позволяющия организовать обращение к классам, переменным и супервызовам, определённым в библиотеках на языке Objective-C. Классы
Objective-C теперь могут быть определены напрямую как классы D, без промежуточных прослоек, достаточно просто указать класс как extern(Objective-C) и использовать атрибут @selector для обращения к методам;
- Внесены улучшения в сборщик мусора. В состав DRuntime добавлен новый сборщик мусора (https://dlang.org/spec/garbage.html#precise_gc), реализующий режим тщательного сканирования содержимого кучи
для выявления актуальных указателей или ссылок, указывающих на объекты в куче. Активация производится при помощи опции "--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 (https://github.com/ldc-developers/ldc/releases), компилятора для языка D развиваемого на базе наработок проекта LLVM. В новой версии реализованы новые опции компилятора и runtime DMD 2.084.1, добавлена поддержка AddressSanitizer, переработан код компоновки при компиляции в формат WebAssembly.
URL: https://dlang.org/blog/2019/03/03/dmd-2-085-0-and-dconf-2019.../
Новость: https://www.opennet.ru/opennews/art.shtml?num=50245