LINUX.ORG.RU

Вышла очередная референсная реализация компиляторов языков D1 и D2

 ,


1

3

10 июля стала доступна для загрузки очередная референсная реализация компиляторов языков D1 и D2. Как повелось с предыдущего выпуска, готовы пакеты для Ubuntu, Fedora, и openSUSE, как 32-х, так и 64-хбитные.

Некоторые нововведения:

  • введены атрибуты @safe, @property, сделан автоматический интерфейс для @safe, pure, nothrow;
  • В inline assembler добавлена поддержка инструкций SSSE3;
  • добавлены новые предупреждения о свойствах, подлежащих удалению, часть свойств объявлены удалёнными;
  • расширены ядро языка и стандартная библиотека, в частности, добавлены core.sys.posix.netdb, td.array.uninitializedArray, std.array.minimallyInitializedArray;
  • часть функций, в первую очередь в модулях std.string и std.uni, была переименована для соответствия с разработанными правилами именования, старые названия частично сохранены для совместимости, но будут удалены из последующих версий;
  • добавлена возможность использовать логические переменные в качестве ключей в ассоциативных массивах, ранее с этою целью можно было использовать только целые числа и строки.

Авторы также рапортуют об устранении 127 ошибок различной природы.

Подробный список изменений можно посмотреть на официальном сайте.

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

★★★★★

Проверено: Shaman007 ()
Последнее исправление: adriano32 (всего исправлений: 1)

Нет ли информации, когда они планируют перестать ломать совместимость и стабилизировать D2?

metar ★★★
()

ошибки разной природы

они бывают только 2х видов - от глупости и от невнимательности

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

Мертворожденные D1 и D2. Видимо, наследственность плохая.

vada ★★★★★
()

Халабуда.

anonymous
()

Андрюша все никак не успокоится.

anonymous
()

Хорошо. И то, что на нём пока мало написано приложений — тоже, в некотором смысле, хорошо. Нет тяжкого груза обратной совместимости, и можно улучшать и допиливать язык.

one_more_hokum ★★★
()

Задумка у D, конечно, интересная: «С++ с человеческим лицом». Очень нравится автоматическая, а так же и явная сборка мусора. Жаль, что так долго и медленно развивается.

Casus ★★★★★
()

пытался поизучать....так там черт голову сломит.... 2 реализации, совместимости непонятные....один советует д1 второй д2, идешек несколько типа, отправляют по мертвым ссылкам....запустил убогий посейдон..ну нафиг... уж лучше си++ ковырять. не знаю нужен ли этот Д....из тех кому нужен 200 человек на миллион имхо.

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

>Задумка у D, конечно, интересная: «С++ с человеческим лицом». Очень нравится автоматическая, а так же и явная сборка мусора. Жаль, что так долго и медленно развивается.

по мне так лучше уж плагин к си++ придумали бы, типо

#include <garbageremove>

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

>Что на них имеет смысл писать? Для каких слоёв населения они предназначены?

для слоев подопытных кроликов мне кажется.

Deleted
()

Интересно, вот обычно сначала спецификацию разрабатывают, а потом по спецификации делают проект. А в DigitalMars фичи добавляют, удаляют, перемещают каждый месяц. Описание некоторых новых возможностей в спеках просто отсутствует. А эти прекрасные записи практически в каждом чейнжлоге: «функциональность модуля А перемещена в модуль Б»!
Это было бы простительно каким-нибудь васям пупкиным, но Брайт и Александреску разочаровывают

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

Вот мы и ждём C++0x. Обещанного долго ждать.

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

Вы наверное имели в виду, что ошибки от глупости это ошибки проектирования а ошибки от невнимательности - ошибки реализации? Если так то да, согласен.

Сначала помнится был просто D, теперь их оказывается уже два. Подожду до появления D3 с объемным программированием и возможностью наследования вдоль :)

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

> Интересно, вот обычно сначала спецификацию разрабатывают, а потом по спецификации делают проект.

А назови языки, которые так сделаны? %)

tailgunner ★★★★★
()

В такой хороший трэд набежало столько неуёмной школоты... ужснх.
Поясняю: Язык Д1 - просто язык Д1, старая версия, обращать на неё внимание не надо. Основная работа ведётся по Д2.

когда они планируют перестать ломать совместимость и стабилизировать D2?


Для тех тролей, которые не написали даже хелловорлда на Д, это НЕ ИМЕЕТ ЗНАЧЕНИЯ. Все остальные активно пишущие в курсе изменений и не являются противниками оных. Фактически, все «ломающие» изменения происходят единожды и направлены именно на СТАБИЛИЗАЦИЮ продукта. Это нормально, потому что и язык, и библиотеки должны выстроиться в логичную, самоочевидную модель. Для примера: новая «универсальная»(generic) библиотека для работы с диапазонами (ranges) охватывает всё, включая строки. Логично, что из std.string выкидывают дублирующие sort, find, и т.п. ВЫ ПРОТИВ? Тогда вам нужен похапэ и не замусоривайте ветку.
Далее...

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

> Все остальные активно пишущие А такие есть, лол? Из опенсорцных проектов могу только вспомнить OpenMW, но они от D уже отказались. А в бизнесы ему путь вообще пока закрыт: ни нормальной реализации, ни пиара, ни специалистов, ни библиотек - ничего нету.

anonymous
()

> кто-нить им реально пользуется?

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

Что на них написано?


Не поверите, ПРОГРАММЫ. Давать в сотый раз список софта нет желания, сами всё найдёте. Кроме того, не нужно ожидать здесь феерии вордов/фотошопов - язык Д2 молодой, развивается подобно Линуксу - через массы в продакшн.

Что на них имеет смысл писать? Для каких слоёв населения они предназначены?


Достаточно сказать, что это полная замена С++. При этом «слои» могут быть намного менее «профессиональные», т.к. Д2 сильно снижает грабленаступательность за счёт продуманных фич. Сборщик мусора, тесты модулей, сквозная неизменяемость, продвинутый компилер - будет очень сложно отстрелить себе ногу. При этом язык ещё не «забетонирован», т.е. открыт для любых инноваций и современных решений. В принципе, их уже акцептировано достаточно много.

Жаль, что так долго и медленно развивается.


Насколько я знаю, сейчас в Д2 нет «отложенных больших инноваций», идёт чистка кода и багофиксы. Не надо смотреть на «развитие», подымите задницу и напишите хоть что-то больше 1000 строк - вы с удивлением увидете, что в языке уже всего предостаточно.

Интересно, вот обычно сначала спецификацию разрабатывают, а потом по спецификации делают проект.


Если речь идёт о тригонометрической библиотеке - да. Если же ваш узкий опыт чуть расширить, вы удивитесь, сколько существует подходов к программингу! В данном случае Д2 развивается итерационно, т.к. нельзя в язык включить «всё и сразу» - все фичи очень постепенно обкатываются, устаревают/улучшаются, чтобы в конечный вариант попало только необходимое. Девиз Ди - «Практический язык для практиков». Не думаю, что вы способны даже на пальцах описать всё, что должен включать язык. Д2 развивается аналогично - по мере поступления идей.

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

> давно известно, что «с++ с человеческим лицом» - это джава

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

К преимуществам Ди здесь стоит отнести выходной ПРОЦЕССОРНЫЙ КОД (native code), причём как под оффтопик, так и под Линукс, оба варианта поддерживают 32/64.
Развитие Джабы - вообще тема для джентельменов на похоронах, сравните это с развитием Ди.
Кроме того, повторюсь - Ди делается как практический, _системный_ язык. Джаба в этот сегмент даже не заглядывала. Не думаю, что Джаба вообще уместна в контексте языка Ди.

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

Затянули они со стабилизацией. Кто теперь, после 12 лет попыток, будет всерьез использовать язык разработчики которого все никак не договорятся? Не, пока это не серьезно. И, кстати, вот нахрена силы на написание собственного кодогенератора тратить? Очередной лисапед про который разрабы будут с видом Колумбов говорить что он от языка не зависит. Таких творений уже понаделано мама не горюй.

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

> Для тех тролей, которые не написали даже хелловорлда на Д, это НЕ ИМЕЕТ ЗНАЧЕНИЯ.
Мне любопытен D и именно хеллоуворлды я писал, подглядывая в TDPL. Было бы здорово писать активно, имея уверенность, что DigitalMars не загнется до окончательного релиза второй ветки.

Так понимаю, что вы используете D в реальной жизни?

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

давно известно, что «с++ с человеческим лицом» - это джава

Это неверно. Только автоматическая сборка мусора сакс. Ну и компиляции байт-кода в машинный код в произвольные моменты времени тоже резко снижают детерминизм.

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

> #include ваще фигово задуман, к сожалению.

Для тех времён - вполне сносно (читай «эра ламповых компов»). При этом Ди не стал тупо копировать фичи Си (как это делал С++), а ввёл современный подход в виде Compile-Time Evaluation Functions (CTFE) - обязательно про них почитайте.

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

> Кто теперь, после 12 лет попыток, будет всерьез использовать язык разработчики которого все никак не договорятся?
Если я правильно помню, то разработка D1 закончилась в 2006 и тогда же начали делать D2. 5-ый год пошел. А сколько пилят C++0x?

metar ★★★
()

На самом деле идеи конечно интересные. Вот нигде такого не видел: Garbage collection can be controlled: programmers can add and exclude memory ranges from being observed by the collector, can disable and enable the collector and force a generational or a full collection cycle.

A-234 ★★★★★
()
Ответ на: комментарий от metar

> Было бы здорово писать активно, имея уверенность...

Зачем вам эти отговорки? Просто возьмите и напишите!
Даже SUN, лелея Джабу, не знала, что её продадут как уличную девку. Но ведь начинаюжие жабофилы ведь были уверены? :)

Так понимаю, что вы используете D в реальной жизни?


Именно. Не скрываю, что в продакшн с этим (пока) не сунусь, но для себя пишу-изучаю. Пока есть два проекта, антибаннер-прокси и ГУЙнёвая библиотека. Они мне интересны не столько как результат, сколько опыт.
К слову, АБ был написан года два назад, периодически перекомпилировал - из заявленных breaking changes меня коснулись только регэкспы и стринги, обновил _10_ строк кода. Это так много, что ЛОРчане готовы обкакаться от «нестабильности языка»???

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

Для тех времён - вполне сносно

Я знаю. Я с 89г на Си пишу, так что в курсе. Но с переходом к С++ разделение на заголовок и реализацию уже начинает заметно доставать.

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

обновил _10_ строк кода. Это так много, что ЛОРчане готовы обкакаться от «нестабильности языка»???

Бывает по разному. В больших проектах это может приводить к серьёзному рефакторингу. Ну и не надо говорить за всех посетителей ресурса.

Casus ★★★★★
()

хороший язык, мне нравится. только плохо, что он с с++ никак не совместим. (хотя это устаревшая инфа, может что-то поменялось уже).

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

и явная сборка мусора

в д2 выпиляли, сказали не нужно, емнип.

mi_estas
()
Ответ на: комментарий от A-234

> Затянули они со стабилизацией. Кто теперь, после 12 лет....

Вызывающе неверная информация! Сходите уже по ссылке что ли....

Не, пока это не серьезно.


Никаких заяв про серьёзность и не делается. Это бесплатный язык для энтузиастов, причём развиваемый коммерческой компанией - почувствуй разницу с самолепленными FOSSами!

нахрена силы на написание собственного кодогенератора тратить?


На кодогенератор силы тратят они, что сей генератор у них ДАВНО УЖЕ ЕСТЬ потому что. Читай «Дигиталмарс Си компилер».
Нет никаких глупых апломбов - это вы сами придумали врага и сами с ним отважно боретесь. ДМ просто пишет хороший компилер, остальные тюлени вяло кидаются огрызками.

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

> только плохо, что он с с++ никак не совместим

Ну бред же! В общих чертах он практически полностью повторяет его конструкции. В плане ООП естественно другой.
И потом, нельзя быть «новым» и «совместимым» одновременно: если вам нужны костыли - продолжайте писать на С++, для устойчивых, современных программ конечно лучше присмотреться к Ди.

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

>>> Интересно, вот обычно сначала спецификацию разрабатывают, а потом по спецификации делают проект.

А назови языки, которые так сделаны? %)

Алгол-60

А примеров поновее нет?

существовал исключительно в виде спецификаций (БНФ).

БНФ - это не спецификация языка, а спецификация _синтаксиса_ языка.

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

Ну бред же!

Вызывающе _неверная_ информация.

Вопрос: У меня есть so с классом, написан на с++. Как мне его использовать из Д?

Ответ: Никак.

Д подходит только для новых проектов, или же для проектов, сделаных «хорошо», «на будущее». В которых, например, классы из библиотек не торчат, а торчат сишные ф-и, интерфейсы тоже в виде списка сишных ф-ий сделаны, и т.п. Это в качестве примера, мысль я думаю ясна.

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

Так прямо сразу и «врага» :) Я обратил внимание на список достижений в котором упоминается, в частности: В inline assembler добавлена поддержка инструкций SSSE3. А как дело обстоит с поддержкой не x86? Не стоит пытаться обнять необъятное, впрочем, из того же автора: бывает, что усердие превозмогает и рассудок.

A-234 ★★★★★
()

Интересно. Никто еще ни разу не вспомнил, что у D аж две стандартных библиотеки: Phobos и Tango. И ФП в нем какое-то странное. Мутное, я бы даже сказал. Зачем прикручивали? Непонятно...

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

Qtd не забросили? Мне язык нравиться, но охото к нему еще хороший фреймворк.

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

> Вопрос: У меня есть so с классом, написан на с++. Как мне его использовать из Д?

Увы, не копал эту тему. Если вам это правда нужно было, страница ищется в 3 секунды: http://www.digitalmars.com/d/2.0/cpp_interface.html

Здраво же рассуждая, использовать ЛЮБЫЕ Сипиписные «таймбомбы» - это заранее срать в проект. Ди предназначен ДЛЯ ЗАМЕНЫ, а не интеграции. С++ - это слабое звено, на котором порвётся вся программа.

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

>В плане ООП естественно другой.

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

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