Предлагаю вашему вниманию дайджест интересных событий из мира D.
Событий за последнее время произошло не мало.
Новости языка
1. Состоялся новый релиз компилятора dmd 2.067.
Среди основных новшеств — значительные улучшения в скорости работы GC. В некоторых случаях количество потребляемой памяти сократилось в два раза. Появилась экспериментальная поддержка полного отключения GC:
app "--DRT-gcopt=profile:1 minPoolSize:16" arguments to app
Ассоциативные массивы теперь можно перебирать при помощи метода byKeyValue:
void main()
{
auto aa = ["a": 1];
foreach (pair; aa.byKeyValue)
{
assert(pair.key == "a");
assert(pair.value == 1);
}
}
В стандартная библиотека была расширена модулем для логирования.
import std.experimental.logger;
void main()
{
log("message logging in D");
}
Полный список изменений можно посмотреть в changelog.
2. Значительный прогресс произошел в разработке проекта Calypso. В настоящий момент Calypso представляет из себя форк компилятора LDC, позволяющий напрямую использовать библиотеки C/C++ без необходимости создавать специальные биндинги. В ближайшие дни ожидается выход первой версии Calypso, а в перспективе ожидается его слияние с основной веткой LDC.
3. Судя по всему, текущая версия DMD (референсного компилятора D) станет последней версией, написанной на С++. Месяц назад было объявлено, что процесс конвертации С++ в D для ветки DDMD практически завершен и теперь DDMD проходит все тесты.
4. Активно продолжает развитие компилятор SDC, который представляет из себя крайне легковесный и быстрый компилятор D, написанный на чистом D, который способен работать в виде библиотеки. В настоящий момент при размере компилятора 30K строк компилятор реализует более 80% возможностей языка, исходный код референсной версии которого (DMD) насчитывает более 300K строк кода.
5. Усилиями проекта ldc-iphone-dev достигнут определенный прогресс в поддержке ARM и возможности написания приложений под iOS с использованием D. Однако пока проект находится в статусе alpha.
Интересные проекты
1. Как многие слышали, D активно используется в области биоинформатики и других сфер, где требуется высокая производительность и обработка большого количества данных. Так, проект по разработке системы анализа данных генома Sambamba опубликовал отчет о своих достижениях. На странице проекта можно найти обоснование выбора языка и впечатление о его использовании.
2. Для D появился новый графический тулкит dlangui. Подробнее о нем можно почитать в данной статье на Хабре: «DlangUI — кросплатформенный GUI для D (Часть 1)».
3. Появился биндинг для Ruby (MRuby), позволяющий встраивать в код D Ruby.
4. Вышла новая версия PyD, позволяющая не только писать расширения для Python, используя D, но и встраивать в D код на Python.
5. Вышла новая версия веб-сервера vibe.d. vibe.d — это крайне легковесный web-сервер на D, позволяющий создавать self-hosting сайты и не только.
6. Вышла новая версия высокопроизводительного движка Higgs, так же написанного на D. По некоторым тестам Higgs обходит самый быстрый в настоящий момент движок от Google v8.
7. Появился аналог утилиты для GO gofmt. Называется dfmt.
8. Вышла новая версия игрового движка для 2D игр Dgame.
9. Обновились биндинги для графических тулкитов GTK и Tk.
10. Вышла новая версия демона автодополнения и анализатора исходного кода DCD.
Автор: beduin01