LINUX.ORG.RU

Вышел компилятор языка D LDC 1.0

 ,


1

7

Данное событие является очень важным в расширении применения языка D. Благодаря компилятору LDC у D теперь появилась полная поддержка архитектуры ARM и практически полная поддержка разработки под Android (включая графические приложения на базе dlangui). Также LDC поддерживает линковку с Objective-C-кодом. На данный момент доступны готовые сборки как под Windows, так и под Linux.

Следует отметить, что LDC основан на LLVM и позволяет генерировать хорошо оптимизированный код, значительно более оптимизированный, чем при использовании референсного компилятора dmd. Данная версия LDC базируется на LLVM 3.8.0.

>>> Подробности

Ответ на: комментарий от anonymous

Про remedy, выпустивших последние свои 3 ААА тайтла на D (всё, кроме рендера судя по докладу с последнего DConf), тактично умолчал? Оно и понятно что у них легаси куча – там и свой конкурентный GC, и в разработку компилятора они вкладывались раньше знатно, и своего кода тысячи строк.

Кстати, про IDE – она есть, и это Monodevelop с плагинами – там и отладка, и профайлинг, и навигация по коду, и его чекинг. До уровня VS не дотягивает конечно, и ломается на сложных участках, но всё же.

anonymous ()
Ответ на: комментарий от anonymous

Monodevelop таки лучшая IDE для дишки. Куда лучше плагина для idea. Но есть одно - не работает вывод сонсольный - всегда запускает внешнее окно, я так и не нашел, как победить эту гадость.

Есть-ли какой-то способ?

anonymous ()
Ответ на: комментарий от anonymous

Про remedy, выпустивших последние свои 3 ААА тайтла на D

Пруф?

RazrFalcon ★★★★★ ()
Ответ на: комментарий от anonymous

Rust

Труп

C++14 (низкоуровневые вещи)

Ты наркоман

Nim (метапрограммирование)

Vala 2.0 и тоже труп. 0 Проектов, и все присутствие языка выражается в 3 постах на хабре.

Xroft ★★ ()
Ответ на: комментарий от RazrFalcon

На dconf.org доклад был от них в этом году и до этого в 12-м или 13-м, можешь полистать коли не лень - там все слайды с видео бесплатно без регистрации и смс.

anonymous ()
Ответ на: комментарий от Xroft

Rust

Труп

толсто. Для трупа он слишком хорошо шевелится и растет.

anonymous ()
Ответ на: комментарий от EXL

Ага, особенно на последних своих устройствах. Где выпилили тормозную Java-J2ME, и впендюрили C++, Cascades на C++, Qt на C++ и QtQuick.

Недавно разморозился? В последних у них вообще Андроид :))))) Да толку теперь труп обсуждать, рим - уже 4 года как вио :(

Скоро, наверное, гугля тоже с томми-Java спрыгнет. Про Swift уже слухи поползли.

Я не против, но не верю. Не так то это просто.

anonymous ()
Ответ на: комментарий от Xroft

C++14 (низкоуровневые вещи)

Ты наркоман

Аргументированно. Если не веришь, посмотри на чем написаны Seastar и Sandstorm.

Nim (метапрограммирование)

0 Проектов, и все присутствие языка выражается в 3 постах на хабре.

открыл редит /r/programming : Nim language 0.14.0 gets released, 153 comments. Внутри внятное обсуждение. В новостях о D там обычно, помимо авторов языка с AMA постами, обитает полтора инвалида.

anonymous ()
Ответ на: комментарий от EXL

Зато это быдет выглядеть одинаково уродливо на любой платформе.

rupert ★★★★★ ()
Ответ на: комментарий от anonymous

толсто. Для трупа он слишком хорошо шевелится и растет.

Это опарыши.

anonymous ()
Ответ на: комментарий от EXL

DlangUI

Там скриншоты старые, пару лет давности, из билда, в котором включен FreeType. Сейчас под виндой по умолчанию Win32 API шрифты. Вообще, шрифты можно настроить - хинтинг, гамма.

Вот свежий скриншот - от DlangIDE http://buggins.github.io/dlangui/screenshots/screenshot-dlangide.png

Buggins ()
Ответ на: комментарий от EXL

Исходники кулридера - на sourceforge.

А DlangUI на самом деле порт GUI библиотеки от Cool Reader GL с C++ на D.

Некоторые части - поддержка шрифтов, графики, opengl, стили и темы интерфейса перетянуты почти один в один.

Обратный порт - поддержка Android в DlangUI только начинается.

Вот APK под ARM. https://sourceforge.net/projects/crengine/files/DlangUI/ Тетрис - даже вполне играбельный. Это обычные примеры от DlangUI, собранные под андроид (код самого приложения менять не надо) - выглядят одинаково под Linux/OSX/Windows/Android

Со временем собираюсь портировать DOM+CSS рендеринг из Cool Reader в DlangUI (сейчас это сделано частично). Тогда можно и читалку на D сделать, и просто в UI добавить просмотр/редактирование HTML/RTF/...

Buggins ()
Ответ на: комментарий от anonymous

Ну как-бэ и не интерпретатор, но идею вашу, я уловил, конечно. Вы попробуйте поделать большой проект на этом вашем D. Такой чтобы действительно большой. Что-бы человек хотя-бы 10 разработчиков. А потом поделитесь опытом. Не, я правда, без всякого сарказма - для D сейчас очень нужны истории успеха. В энтерпрайзе и опенсурсе. Дело ведь совсем не в «интерпретаторе, который нужно всюду таскать» - в венде он уже встроен, а для остальных случаев есть mono. Дело ведь в том, насколько эффективно можно с этим языком реализовывать совместную разработку, различные парадигмы программирования, и.т.д. Пока что D выглядит как какой-то комбаин, честное слово. Вот нафига нужен UFCS, миксины те-же ? (хорошо что хоть множественное наследование не присобачили). Встроенное UNIT-тестирование - это хорошо, ВОТ ТОЛЬКО ЗАЧЕМ ЭТО ТЯНУТЬ В ЯЗЫК ? Стандартная библиотека D - вообще тема для отдельного обсуждения...

UFCS, миксины, юниттесты очень полезны. Пользоваться ими никто не заставляет. Можно пользоваться как «C с классами» и более человеческим синтаксисом шаблонов.

Mixin + compile time reflection + CTFE дает возможность метапрограммирования.

Вот, например https://github.com/buggins/hibernated - HibernateD - ORM по мотивам Java Hibernate, написанный на D. Вся генерация D кода идет в compile time

Buggins ()
Ответ на: комментарий от Buggins

Ты - разработчик DlangUI?

Есть такой вопрос: в описании проекта написано, что гуй описывается qml-подобным языком. Но - главная фича qml - это биндинги в свойствах, которые сами пересчитываются по notify-сигналам при изменении их составляющих (что и делает qml зверски удобным). Я посмотрел демки и примеры, и не нашел ничего подобного - оно есть / планируется в будущем?

И еще попробовал поюзать IDE - при ресайзе окна его содержимое заливается чернотой и перерисовывается на глазах.

А вообще - желаю удачи, хороший гуй - это то, чего очень сильно не хватает языку.

anonymous ()
Ответ на: комментарий от Buggins

Извиняюсь, что встреваю, но означает ли это вероятность обновление/переработка coolreader на D ?

anonymous ()
Ответ на: комментарий от anonymous

Ты - разработчик DlangUI?

Есть такой вопрос: в описании проекта написано, что гуй описывается qml-подобным языком. Но - главная фича qml - это биндинги в свойствах, которые сами пересчитываются по notify-сигналам при изменении их составляющих (что и делает qml зверски удобным). Я посмотрел демки и примеры, и не нашел ничего подобного - оно есть / планируется в будущем?

Сейчас этого нет. В будущем планирую автоматический биндинг сигналов на обработчики и виджетов на переменные класса. Может быть, часть обработчиков можно будет писать прямо в DML на упрощенном интерпретируемом D.

И еще попробовал поюзать IDE - при ресайзе окна его содержимое заливается чернотой и перерисовывается на глазах.

Не замечал. Это на какой платформе? Если на Linux - может, получится исправить настройками параметров SDL-окна.

А вообще - желаю удачи, хороший гуй - это то, чего очень сильно не хватает языку.

Спасибо

Buggins ()
Ответ на: комментарий от anonymous

Извиняюсь, что встреваю, но означает ли это вероятность обновление/переработка coolreader на D?

Да.

Buggins ()

Андрей Александреску негодует — «Кто разрешил, твою мать. пилить для моего языка компилятор! Так, все сидим на „Марсе“ и не дрыгаемся!».

anonymous ()
Ответ на: комментарий от Buggins

Исходники кулридера - на sourceforge.

Неплохо бы и на Github'е официальное зеркало в вашем профиле сделать, тем более на SourceForge используется Git. А то куча левых репозиториев, а официального авторского нет.

Ещё что-то страшное произошло с coolreader.org, всегда оттуда скачивал сборки CoolReader, а теперь красная страничка в Google Chrome/Firefox и сайта нет.

Вот APK под ARM. Тетрис - даже вполне играбельный. Это обычные примеры от DlangUI, собранные под андроид (код самого приложения менять не надо) - выглядят одинаково под Linux/OSX/Windows/Android

Увы, протестировать на своём устройстве не смог. Там ведь NativeActivity->OpenGL ES? На ускорителе PowerVR SGX540 — чёрный экран. В логе имеется такое:

06-08 12:10:42.548: E/libEGL(11064): eglMakeCurrent:763 error 3009 (EGL_BAD_MATCH)
06-08 12:10:42.548: W/dlangui(11064): Unable to eglMakeCurrent

Попробовал у друга на Adreno, вроде есть картинка. А у себя на втором девайсе и Adreno тоже не могу проверить, там Android 4.1.2, а для APK видимо минимальный это KitKat (4.4.x), понизьте пожалуйста версию до ICS (4.0.x) хотя бы, вроде там ничего такого не используется.

EXL ★★★★★ ()
Ответ на: комментарий от Buggins

Извиняюсь, что встреваю, но означает ли это вероятность обновление/переработка coolreader на D?

Да.

Отличная новость! С нетерпением буду ждать CoolReader на D.

Удачи в ваших начинаниях! Обычно для «новых» языков биндинги к Qt/GTK+ делают и на этом ограничиваются, а вы вот прямо так сходу основательную GUI-библиотеку делаете под OpenGL(ES)/SDL2 блиттеры. Впечатляет уже проделанная работа.

EXL ★★★★★ ()
Ответ на: комментарий от anonymous

И еще попробовал поюзать IDE - при ресайзе окна его содержимое заливается чернотой и перерисовывается на глазах.

А с QML такого не бывает? У меня так же было и на QML-приложениях, пока не обновил OpenGL-драйвера.

EXL ★★★★★ ()
Ответ на: комментарий от EXL

Исходники кулридера - на sourceforge.

Неплохо бы и на Github'е официальное зеркало в вашем профиле сделать, тем более на SourceForge используется Git. А то куча левых репозиториев, а официального авторского нет.

Сделал https://github.com/buggins/coolreader

Ещё что-то страшное произошло с coolreader.org, всегда оттуда скачивал сборки CoolReader, а теперь красная страничка в Google Chrome/Firefox и сайта нет.

Это я забыл заплатить за домен - теперь его потерял.

Вот APK под ARM. Тетрис - даже вполне играбельный. Это обычные примеры от DlangUI, собранные под андроид (код самого приложения менять не надо) - выглядят одинаково под Linux/OSX/Windows/Android

Увы, протестировать на своём устройстве не смог. Там ведь NativeActivity->OpenGL ES? На ускорителе PowerVR SGX540 — чёрный экран. В логе имеется такое:
06-08 12:10:42.548: E/libEGL(11064): eglMakeCurrent:763 error 3009 (EGL_BAD_MATCH)
06-08 12:10:42.548: W/dlangui(11064): Unable to eglMakeCurrent
Попробовал у друга на Adreno, вроде есть картинка. А у себя на втором девайсе и Adreno тоже не могу проверить, там Android 4.1.2, а для APK видимо минимальный это KitKat (4.4.x), понизьте пожалуйста версию до ICS (4.0.x) хотя бы, вроде там ничего такого не используется.

Это из-за версии EGL. Нужно добавить поддержку более старых версий (без использования VBO).

Buggins ()
Ответ на: комментарий от anonymous

выверять что все классы на стыке модулей на Q начинаются.

У вас явно развита фантазия и отсутствуют знания.

x86_64 ★★★ ()
Ответ на: комментарий от EXL

Обычно для «новых» языков биндинги к Qt/GTK+ делают и на этом ограничиваются, а вы вот прямо так сходу основательную GUI-библиотеку делаете под OpenGL(ES)/SDL2 блиттеры. Впечатляет уже проделанная работа.

С биндингами сложнее было бы делать нестандартные виджеты. В нативном тулките это очень легко.

OpenGL опционален - можно софтверным рендерингом пользоваться.

Buggins ()
Ответ на: комментарий от anonymous

как получилось, что C++ взлетел в свое время?

Вполне очевидно.

1) синтаксис - почти полное надмножество над C. Т.е. бери старый проект и переходи на новый компилятор практически без проблем.

2) реализована почти всегда бесполезная, но модная на тот момент фича - ООП.

3) реализована незаметная, но в реальности полезная фича - деструкторы

anonymous ()
Ответ на: комментарий от eao197

На момент своего появления C++ был сильно не таким, как сейчас. ЕМПИН, исключения и шаблоны сильно позже добавились (и это в описании языка, в компиляторах они стали доступны еще позже). Тогда как обобщенное программирование в Ada уже было.

И это всё не просто так. Исключения довольно долго были непопулярной непонятной фигнёй. Шаблоны вроде как Страуструп изначально не хотел реализовывать, предлагая пользоваться препроцессором. Если сейчас, когда дженерики есть везде, авторы нового и довольно популярного языка go умудрились не реализовать их, предложив пользоваться кодогенерацией, на тот момент шаблоны вряд ли казались кому-то критически важной фичей, в конце концов, действительно, можно и препроцессором обойтись.

#define ITEM_TYPE int #define VECTOR_TYPE vector_int #include «vec_template.h» #undef ITEM_TYPE #undef VECTOR_TYPE

vector_int vec; vec.push_back(1);

anonymous ()

Закопайте обратно. Язык D мёртв. Это такой новый оберон: когда-то давно появился, имел на тот момент несколько мелких, но некритичных преимуществ, успеха не обрёл, пара действительно хороших фич была позаимствована другими языками, которые обогнали «прародителя» по популярности. Оставшееся никому не нужно. Несколько наивных любителей по прежнему на что-то надеются, но по факту уже безнадёжно устарел. Если какому-нибудь C++ или Java ещё можно простить отсталость, потому как она оправдана кучей легаси кода, то терпеть хвосты в D просто не имеет никакого смысла.

anonymous ()
Ответ на: комментарий от anonymous

но по факту уже безнадёжно устарел

До? И что же не устарело то?))

Xroft ★★ ()
Ответ на: комментарий от Xroft

До? И что же не устарело то?))

Не понял вопроса. Что не устарело в D? Или что из других языков не устарело?

anonymous ()
Ответ на: комментарий от anonymous

Какой язык по твоему не устарел? D на фоне Сипипи и монструозных Java просто вершина современности и изящности

Xroft ★★ ()
Ответ на: комментарий от Xroft

D на фоне Сипипи и монструозных Java просто вершина современности и изящности

Посмотрим, например, на список возможных спецификаторов типов аргументов для функций: in, out, ref, scope, lazy, const, immutable, shared, inout. Ну и плюс отсутствие спецификатора.

Вершина, тыкскзыть, современности и изящности.

eao197 ★★★★★ ()
Ответ на: комментарий от Xroft

Как я написал выше, они тоже устарели, но в процессе старения они обросли кучей кода, который хочешь - не хочешь, а надо поддерживать, поэтому эти языки и остаются привлекательными. D в этом плане в пролёте, у него нет легаси базы, нет чёткой ниши, в которой он бы всех бил, нет модных и типа перспективных фич, ради которых могли бы перейти новички.

anonymous ()
Ответ на: комментарий от anonymous

синтаксис - почти полное надмножество над C.

Лохонулся ты мужичок.Си — это отдельный язык. Всякий, кто говорит про над/подмножества должен мыть сортиры.

anonymous ()
Ответ на: комментарий от anonymous

Как я написал выше, они тоже устарели, но в процессе старения они обросли кучей кода, ...ными. D в этом плане в пролёте, у него нет легаси базы, нет чёткой ниши, в которой он бы всех бил, нет модных и типа перспективных фич, ради которых могли бы перейти новички.

Это речь ленивой твари.

anonymous ()
Ответ на: комментарий от anonymous

но некритичных преимуществ, успеха не обрёл, пара действительно хороших фич была позаимствована другими языками, которые обогнали «прародителя» по популярности.

«Вор» не является «потомком», того кого он обокрал. Американские языки программирования постоянно тырят «явропейские решения». У американцев ничего своего нет.

anonymous ()
Ответ на: комментарий от anonymous

Американские языки программирования постоянно тырят «явропейские решения»

И чем это плохо?

DarkEld3r ★★★★★ ()
Ответ на: комментарий от anonymous

«Вор» не является «потомком», того кого он обокрал. Американские языки программирования постоянно тырят «явропейские решения». У американцев ничего своего нет.

В этом специфика дурачков: идею об охране авторских прав на дорогой коммерческий продукт вы считаете ерундой, но при этом копирование одной удачной идеи для вас становится преступлением против человечества.

anonymous ()
Ответ на: комментарий от anonymous

Лохонулся ты мужичок.Си — это отдельный язык. Всякий, кто говорит про над/подмножества должен мыть сортиры.

Специально для идиотов написал: «почти полное надмножество». Даже уточнил важный момент: можно брать и более-менее нормально написанный код на C тупо компилилировать C++ компилятором. Но всё равно нашёлся чувак с подгорелым пуканом, который захотел отменить реальность путём наезда на того, кто о ней говорит. Отчасти в этом, кстати, и нелепость языка D: он не стал заимствовать из C основы синтаксиса, как java, он не стал пытаться быть надмножеством, вместо этого придумали дурацкое правило, типа если кусок c++ кода принимается D компилятором, то он должен работать так же как будто скомпилирован C++. В результате с одной стороны сохранили некоторые косяки синтаксиса C, с другой - ни о какой совместимости на уровне исходников не приходится говорить. В D 2 способа объявить массив, один попонятнее, сишарповский, второй, устаревший, «как в C++».

anonymous ()
Ответ на: комментарий от anonymous

Особо любящие С++ могут воспользоватсся форком LDC который позволяет подключать заголовочные файлы и библиотеки стандарта С++. Хотя форк не доделан, но Qt уже позволяет использовать. SEE https://wiki.dlang.org/Calypso

anonymous ()
Ответ на: комментарий от eao197

Этому объяснение простое: ни Волтер ни Андрей не удались как дизайнеры языка. Волтер до какого-то уровня дотянул, и у него иссякла фантазия. После чего наступил застой. Пока не пришёл Александреску, которому надоело играться с С++. Он решил запихать в D свои любимые фичи, отсутствующие в С++. И получился такой монстрик.

rupert ★★★★★ ()
Ответ на: комментарий от anonymous

Всякий, кто говорит про над/подмножества должен мыть сортиры.

Ай, далеко ты деду Страуструпа отправил:

С++ - язык общего назначения и задуман для того, чтобы настоящие программисты получили удовольствие от самого процесса программирования. За исключением второстепенных деталей он содержит язык С как подмножество

anonymous ()
Ответ на: комментарий от anonymous

С++ имеет недостатки, унаследованные от C. Без поломки обратной совместимости с C их не устранить. Если же поломать совместимость, то и получится D

cvs-255 ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.