LINUX.ORG.RU

Вышли новые версии оригинальных компиляторов языков D2 и D1

 ,


0

2

На днях вышли новые версии оригинальных компиляторов языков программирования D2 и D1 от коллектива авторов.

Как обычно, внесены как изменения и дополнения в стандартную библиотеку D2, так и многочисленные исправления (это касается обоих компиляторов). Некоторые важные изменения:

  • Продолжено улучшение поддержки 64-битных систем Linux, теперь эта поддержка декларируется официально, исправлен ряд ошибок и регрессий, связанных с компиляцией под 64-битную архитектуру.
  • В стандартную библиотеку добавлен модуль std.datetime, заменивший собою модули std.date и std.gregorian.
  • Добавлена поддержка HTML5.
  • Добавлен новый генератор случайных чисел — Xorshift random generator.
  • Исправлены 68 ошибок и регрессий в D2, в том числе и очень старых.

deb-пакет уже доступен для загрузки на официальной страницы, rpm-пакет, видимо, будет готов в ближайшее время.

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

★★★★★

Проверено: post-factum ()
Последнее исправление: shimon (всего исправлений: 6)
Ответ на: комментарий от zombiegrinder_6000

> Умные указатели есть уже давно. Конечно не сборка мусора

Ну то есть сборки мусора не будет. CTFE не будет, и компиляторы останутся тормозами. Не повлияет C++ 0x на D. Если D и не нужен, то это не зависит от наличия лямбды в Си++.

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

>> Ну то есть сборки мусора не будет

Не все ли равно как называется, если результат один.

Смарт-пойнтеры уже научились собирать циклические структуры данных?

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

Лучше бы gdc развивался

Не хочу Вас расстраивать, но gdc уже перешел на 2.052-ой фронтенд, т.е. все, что наразвивали в dmd уже есть в gdc (Пруф, раздел «Status»). Поэтому не совсем понятно, что Вы этим вбросом хотели сказать.

С другой стороны, разработчики для gdc действительно нужны, так что присоединяйтесь, возможно именно Вам удастся его «лучше развить».

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

С выходом c++0x, D станет не нужен.

Думаю, что невозможно в С++ одновременно сохранить совместимость и реализовать все фичи, которые требует новое время, так, что бы действительно можно было громко сказать «D не нужен».

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

Язык D интересен. В нем заложено большое количество грамотных идей. Фич-лист языка очень напоминает мне мой список - «Чего мне не хватает в С++». К сожалению D - это очень сырая и не отработанная технология. Возможно она такой и останется.

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

> Смарт-пойнтеры уже научились собирать циклические структуры данных?

Более того, shared_ptr (и QSharedPointer) медленнее, чем GC, когда используются блокировки, которые необходимы для многопоточных программ.

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

> Ну то есть сборки мусора не будет.

для этого есть более другие языки, один из принципов С++ - ты не используешь фичу - ты не «платишь» за нее скоростью работы

CTFE не будет


толсто же, для простых случаев есть libtcc, для сложных - придется таскать за собой десятки Мб, как собс-но и делают всякие С# и CL, ну его нах

и компиляторы останутся тормозами


освойте уже pch, купите нормальное железо - это несложно и недорого, да - gcc еще надо дорасти до скорости VC2010, но это проблема не языка, а именно gcc

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

> Фич-лист языка очень напоминает мне мой список - «Чего мне не хватает в С++»

мне он больше напоминает свалку, то за что ругали С++ - обилие разнородных фич по сравнению с С, тут возведено в квадрат

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

>> Ну то есть сборки мусора не будет.

для этого есть более другие языки

D - это как раз и есть другой язык.

освойте уже pch, купите нормальное железо - это несложно и недорого

Перед одноклассниками понтуйся «нормальным железом» и знанием опций компилятора.

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

> да - gcc еще надо дорасти до скорости VC2010, но это проблема не языка, а именно gcc

кстати может llvm тут поможет - вроде они обещали, что раза в 3 быстрее будет сборка по сравнению с gcc

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

> Язык спроектирован достаточно грамотно во многих отношениях:

забыл про активное использование CTFE, функций времени компиляции и mixin, подстановку строк во времени компиляции.

Примеры:

1. рейтрейсер времени компиляции by h3r3tic http://h3.gd/ctrace/

используются mixin, CTFE функции

Желающие могут сравнить вариант на D, который появился первым с Metatracer на C++ http://ompf.org/forum/viewtopic.php?t=1556

2. Dax, http://www.dsource.org/projects/dax ,

Dax is based on DDMD and aims to compile D code to Haxe. Haxe, in turn, can compile down to PHP, Flash, JavaScript, NekoVM and C++.

использует Goldie, бекенд к парсеру GOLD ( http://www.devincook.com/goldparser/ )

из-за использования mixin, static if, CTFE функций парсер работает во время компиляции

3. http://www.dsource.org/projects/semitwist/browser/trunk/src/semitwist/cmdline...  — парсер командной строки времени компиляции

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

> Стандартная библиотека постоянно пополняется.

в D2 появляется нормальный рефлекшн и std.ranges, лямбды (хотя и до него можно было имитировать в D1 лямбды через делегаты или mixin-ы)

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

>Смарт-пойнтеры уже научились собирать циклические структуры данных?

Давно умеют. Смарт-поинтеры - это не синоним shared_ptr, можно и свои писать.

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

> D - это как раз и есть другой язык.

пока что это выглядит как С с четырьмя плюсами, а не другой язык

Перед одноклассниками понтуйся «нормальным железом» и знанием опций компилятора.


выучить инструмент и купить оборудование для работы - понты? дело твое

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

>> Смарт-пойнтеры уже научились собирать циклические структуры данных?

Давно умеют

Линк на документацию можно?

Смарт-поинтеры - это не синоним shared_ptr, можно и свои писать.

Капитан, самому можно и сборку мусора можно написать.

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

> + отсутствие совместимости со старым кодом какого либо языка

совместимость с plain C кодом есть — прозрачно линкуется код на D и на plain C, как в С++ с extern «C» {...}

линковаться с С++ кодом уже сложнее, например можно посмотреть QtD. Там пришлось делать свой форк QtJambi для генерации D врапперов к C++ коду, и то в некоторых местах сложности остаются.

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

>> Перед одноклассниками понтуйся «нормальным железом» и знанием опций компилятора.

выучить инструмент и купить оборудование для работы

Выучи и купи, как это сделал я.

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

да, кстати. ещё Poseidon в качестве IDE неплох.

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

>мне он больше напоминает свалку, то за что ругали С++ - обилие разнородных фич по сравнению с С, тут возведено в квадрат

++

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

> Выучи и купи, как это сделал я.

вроде взрослый дядька, а аргументация на уровне дет. сада и «сам дурак»

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

> один из принципов С++ - ты не используешь фичу - ты не «платишь» за нее скоростью работы

Игра словами. На деле же не так. Все зависит от задачи.

dave ★★★★★
()

Блин, ну хоть бы одна бестоло^W ЛОР-оналитег сходил и просветился по теме! Нет, будут в форуме, как в болоте, сидеть и квакать: «Где проекты? Где ИДЕ?». Тем не менее, уже в сотый раз объясняю: есть и проекты (http://www.dsource.org/projects/) и ИДЕ (VisualD). Кому надо - находят, кому не обо что почесать язык, те лезут со своим Пистоном. Пипец...

Как язык, Ди на голову выше любых сипипей и шарпов. Нехватает только одного - пинка под зад опенсорсникам, чтобы те взялись за библиотеки (помимо стандартной).

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

> Брайт оставил в языке строковые макросы/шаблоны. Это убожество даже более убогое, чем препроцессор в си.

это более мощная фича, и вместе с тем лучше контролируемая, если ей пользоваться грамотно. Шаблоны в D рвут шаблоны в С++ как Тузик грелку — из-за static if, static assert, CTFE функций и того самого mixin

А многолетняя эпопея с константами?


а что с ними не так?

А куча багов в каждом релизе? А регулярная несовместимость минорных релизов?


Во-первых, это относится к официальному референсному DMD. Баги фиксятся помаленьку, несовместимость сильно жить не мешает. Что мешает жить применительно к DMD, так это глюки тулчейна с линкер OPTLINK под виндой (но под линуксом DMD собирается gcc + ld). Линкер вылетает при попытке слинковать слишком много методов в одном модуле. На это наткнулись, когда пытались конвертировать врапперы через QtJambi в QtD, и h3r3tic с его игрушкой и знатным 8-этажным метапрограммированием.

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

> Нехватает только одного - пинка под зад опенсорсникам, чтобы те взялись за библиотеки

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

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

> С выходом c++0x, D станет не нужен.

Повторяйте эту мантру по утрам, чтобы доказать себе, что не ковыряетесь в говне, пока другие пишут на нормальных языках.

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

> Вообще, мне кажется, что D/D2 по своим характеристикам очень напоминает ocaml, только парадигмы несколько разные

на эту тему см. презентацию Александреску, где он расписывает про pure и функциональный D.

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

> вроде взрослый дядька, а аргументация на уровне дет. сада и «сам дурак»

Я ответил тебе в твоем же стиле. Не нравится? А мне не понравилось твое обращение.

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

> пока другие пишут на нормальных языках.

посмотреть на результат можно?

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

> Думаю, все будут только «за», если D заменит C++

Никуда С/С++ не денутся, ибо были и останутся языками низкого уровня. И любые попытки вытеснить их языками высокого уровня напоминают идею майкрософта написать ядро свой ОС на .net! На данный момент грамотно написанное на сях приложение на порядок производительнее своих аналогов на удобных языках. Я уж молчу про модули ядра, демоны и системные либы, которые кроме как на С,С++ или ассемблере писать противопоказано.

Обертки кода и конвертеры хидеров из .h формата в .d

А кто мешает писать хидеры под разные языки? Идеально было бы вообще сделать их уни-языковыми (принять единый стандарт, научить компиляторы его понимать).

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

а gcc какой там сейчас версии? Когда перейдут на gcc 4.5 появится явный профит — возможность собрать gdc плагином gcc.

anonymous
()

Молодцы! Передрали почти все идеи из Object Pascal, но оставили только синтаксис и некоторые стандартные функции C/C++. Так и надо было уже давно сделать!

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

>> и компиляторы останутся тормозами

освойте уже pch,

у pch есть свои ограничения — сильно зашаблонизированный код они не соптимизируют.

Нужен не этот костыль, а нормальная модульность в языке, которой в С++ нет и не предвится.

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

> уже есть огромное кол-во качественных библиотек на С

Скажем так: есть громадная куча никем не проверенных библиотек, всё «качество» которых только в том, что конкретный баг ещё не был найден. Причём баги до того позорные (а-ля переполнение стека/строки, отсутствие уникода, перерасход памяти), что приходить с этим Г в 21 век просто стыд и срам.
В противовес этому, D _принципиально_ избавляет вас от этих глупых ошибок за счёт новой структуры языка. Более того - у D нет заплесневелого наследия говнокода, поэтому новые, НЕОБХОДИМЫЕ фичи легко обкатываются и вносятся в язык - это определяет перспективность языка.
А учитывая «Си-совместимость» Ди, ваши существующие либы даже не надо переписывать - их можно портировать!

matumba ★★★★★
()

Язык еще толком не появился, а уже соснули пилят новую версию.

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

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

мне трудно что-либо ответить на данное утверждение, промолчу

А учитывая «Си-совместимость» Ди, ваши существующие либы даже не надо переписывать - их можно портировать!


вперед - главное не забывайте развивать их дальше

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

:>есть и проекты

:Там же в основном костыли и библиотеки для самого языка.

Жаба тоже начиналась с апплета Nervous text! Ничего - развили, подключили сообщество... Только жаба была мёртворождённой и питалась баблом суня, а Ди - живая, _современная_ перспектива.

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

>Только жаба была мёртворождённой и питалась баблом суня, а Ди - живая, _современная_ перспектива

Только вот сравни, где сейчас «мертворожденныя» джава, и где этот ваш «живой» D.

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

>> Думаю, все будут только «за», если D заменит C++

Никуда С/С++ не денутся, ибо были и останутся языками низкого уровня.


А что в D вам мешает писать так же, как в Си?? Ровно те же возможности, только с бонусом в виде _отключаемого_ GC.

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

>А что в D вам мешает писать так же, как в Си??

Да хотя бы то, что в следующией версии языка сломают совместимость и программу придется переписывать.

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

> Только вот сравни, где сейчас «мертворожденныя» джава, и где этот ваш «живой» D.

Дай мне миллиард и завтра _тысячи_ будут писать на брэйнфаке++. Мы говорим о принципиальном преимуществе языка, а не количестве бабла в заднице Жабы, за счёт которого она кажется живой.

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