LINUX.ORG.RU

Новая версия референсного компилятора языка D2

 ,


0

1

13 декабря вышла новая версия 2.057 dmd — референсного компилятора языка программирования D версии 2 от компании DigitalMars. Основные изменения (первоисточник):

  • Оптимизации работы на 64-разрядных архитектурах, в частности, улучшения алгоритма использования регистра XMM, добавление поддержки March-O для obj2asm и dumpobj, исправление нескольких ошибок оптимизации, характерных исключительно для 64-разрядных систем: 7026, 6997, 6354.
  • Произведена чистка дублирующего функционала — объявлены устаревшими целый ряд функций или их вариантов в модулях стандартной библиотеки:
    • убран идентификатор invariant, который дублировал функционал immutable;
    • из двух вариантов std.array.replace оставлен только тот, который создаёт новый массив, замена на месте теперь производится только с помощью std.array.replaceInPlace;
    • toISOExtendedString и fromISOExtendedString заменены на toISOExtString и fromISOExtString соответственно;
    • вместо std.file.getTimesPosix следует использовать универсальную функцию std.file.getTimes;
    • варианты функций isDir, isFile и isSymlink из std.file, принимавшие в качестве аргумента целое беззнаковое число, убраны в пользу attrIsDir, attrIsFile и attrIsSymlink (варианты с аргументом в виде строки оставлены).
    Как всегда, изменения пока носят не окончательный характер, при использовании старых форм выдаётся предупреждение, препятствующее компиляции, которое вы можете игнорировать. Полное удаление запланировано на май 2012 (см., например, replace)
  • Убрана декларация typedef, как следствие, перестанут работать некоторые механизмы, которые были завязаны на неё, например, некоторые варианты std.conv.to.
  • Произведён большой пересмотр реализации модуля std.regex.
  • Как всегда исправлены около сотни ошибок библиотеки и компилятора.

На сайте загрузки доступны пакеты для ubuntu (работает и на debian), fedora и opensuse для архитектур i386 и amd64, а также универсальный zip архив с бинарниками.

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

★★★★★

Проверено: anonymous_incognito ()
Последнее исправление: post-factum (всего исправлений: 1)

объявлены устаревшими целый ряд функций или их вариантов
Убрана декларация typedef, как следствие, перестанут работать некоторые механизмы, которые были завязаны на неё, например, некоторые варианты std.conv.

пофиг на «как всегда исправлены около сотни ошибок» чуть ли не в каждом минорном релизе, но регулярность изменения самого ЯП не очень радует

anonymous
()

как я понимаю этот язык нацелен на широкий спектр задач системного программирования. а есть какое-нить сравнение о производительности каких-нить базовых алгоритмов (шифрования, поиска, графики, геометрические задачи), получаемого с помощью этого компилятора , кода? на сколько это медленнее чем аналогичный по функциональности код полученный с помощью gcc(свежих версий того и другого компилятора)/boost?

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

Вероятно, Mach-O?

Да, вы правы, рука дрогнула.

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

пофиг на «как всегда исправлены около сотни ошибок» чуть ли не в каждом минорном релизе, но регулярность изменения самого ЯП не очень радует

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

Vudod ★★★★★
() автор топика

убран идентификатор invariant, который дублировал функционал immutable;

Верблюд - это лошадь, разработанная комитетом.

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

Это делается сейчас, чтобы впоследствии не кусать локти.

это делается не сейчас, это делается уже 13 лет

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

Питон тоже, например, меняется, и даже еще сильнее, только вот корчи уж больно сильные при этом испытывает. А D еще совсем не популярный, так что пусть меняется, кому он нахрен нужен пока?

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

кому он нахрен нужен пока?

вопрос кому он будет нужен потом, заменить С++ у них не получилось, а ведь уже есть С++11 и C#, у обоих есть свои преимущества перед D за счет совместимости и большого набора инструментов и библиотек

anonymous
()

Ура, годному языку!

unDEFER ★★★★★
()

Господа, я в шоке!
И _ЭТО_ - язык программирования?
Когда каждая минорная версия языка делает несовместивый код???

Идеология *NIX всегда была всегда была в переносимости. Не только между разными версиями компиляторов, но и между разными архитектурами!!!

А в этой смешной поделке, получается, нет даже переносимости кода между версиями в одной и той же ветке!

Интересно, испытывают ли аффтары «языка D2» чувство ПОЗОРА за свою поделку?

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

Идеология *NIX
*NIX

D2

Осталось узнать, причём здесь *NIX. :)

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

В знаете, разработка языка начинается с разработки набора лексем и правил синтаксиса.

Потом, на основе разработанных лексем, пишется код для них.

Лексемы и синтаксис должны быть неизменными. Они могут расширяться, но обратная совместимость всегда должна быть безусловно.

Здесь же получается, что авторы «языка» не могут определиться даже в том, как тот или иной функционал НАЗЫВАТЬ.

Смешно. :)

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

D1 на днях официально перестали поддерживать.

Видимо, считают, что D2 достаточно созрел.

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

заменить С++ у них не получилось, а ведь уже есть С++11

Проблема здесь в том, что на D2 вам придётся писать правильно, а на C++ по-прежнему можно писать как раньше. К тому же список возможностей, добавленных в C++11 действительно впечатляет только программистов на C++, поскольку во многих современных языках эти вещи есть давно или с самого начала.

Vudod ★★★★★
() автор топика

Тайпклассы, n-rank полиморфизм, квазицитирование запилили уже? Или опять кукарекать НИНУЖНО начнем?

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

В знаете, разработка языка начинается с разработки набора лексем и правил синтаксиса.

Это идеальный случай. Так делал Вирт, но ни один из прижившихся его языков не остался с теми же лексеммами и синтаксисом, что были разработаны раньше. А те, что оставлись, например, Modula 2, фактически померли.

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

как я понимаю этот язык нацелен на широкий спектр задач системного программирования. а есть какое-нить сравнение о производительности каких-нить базовых алгоритмов (шифрования, поиска, графики, геометрические задачи), получаемого с помощью этого компилятора , кода? на сколько это медленнее чем аналогичный по функциональности код полученный с помощью gcc(свежих версий того и другого компилятора)/boost?

На сложных реальных задачах пока сравнивать не имел возможности, т.к. ничего сложного на 2 языках сразу не писал. Могу сказать, что метод Гаусса работает быстрее, чем в Паскале примерно в 1,5 раза для матриц размера порядка 50-100.

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

Когда каждая минорная версия языка делает несовместивый код???

Идеология *NIX всегда была всегда была в переносимости.

Мальчик, иди уроки делай.

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

Проблема здесь в том, что на D2 вам придётся писать правильно

просмотр вики со смешными ошибками в D говорит обратное

К тому же список возможностей, добавленных в C++11 действительно впечатляет только программистов на C++

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

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

В знаете, разработка языка начинается с разработки набора лексем и правил синтаксиса.

Потом, на основе разработанных лексем, пишется код для них.

Лексемы и синтаксис должны быть неизменными. Они могут расширяться, но обратная совместимость всегда должна быть безусловно.

Должен тебя разочаровать. Никто так языки не разрабатывает.

Waterlaz ★★★★★
()

Я думаю, если бы они запилили биндинги для Qt + интеграцию в Qt Creator, то язык вполне мог начать набирать популярность среди формошлепщиков.

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

биндинги для Qt

http://www.dsource.org/projects/qtd

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

уже есть питон + JS, последний поддерживается официально и уже интегрирован в QtCreator

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

когда я последний раз трогал QtD, это была жутко падучая и недоделанная штука. Об интеграции в qtcreator и речи не было.

zenden
()

«reference implementation» переводится как «эталонная реализация».

r ★★★★★
()

годный язык. Анонимус одобряет.

anonymous
()

Видел всего 1 годное приложение, написанное на D (не знаю D1 или D2): игра Torus Trooper. Кроме этого, в нужности языка D сильно сомневаюсь.

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

OpenMW был написан на D, правда первом и в итоге сдох.

anonymous
()

Шота оно — какая-то вещь в себе. Вроде и шевелится, но почти всем пох на эти шевеления. Декларацию typedef-ов за каким-то хреном убрали...

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

D еще совсем не популярный

еще? Да вы оптимист

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

Читайте внимательно, поддержка D1 заканчивается 31 декабря 2012 года. Может еще и продлят

anonymous
()

Убрана декларация typedef

Если в языке до сих пор такие тектонические подвижки, пользоваться им пока рано. Я ещё лямбды из последнего стандарта C++ не распробовал :)

И да, я видел это на одной странице :)

hobbit ★★★★★
()

объявлены устаревшими целый ряд функций

убран идентификатор invariant

варианты функций isDir, isFile и isSymlink из std.file, принимавшие в качестве аргумента целое беззнаковое число, убраны

Убрана декларация typedef

toISOExtendedString и fromISOExtendedString заменены

Пока не стабилизируют ЯП - не нужно.

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

Тайпклассы, n-rank полиморфизм, квазицитирование запилили уже?

А планировалось?

заменить С++ у них не получилось

И зачем оно теперь?

loz ★★★★★
()

улучшения алгоритма использования регистра XMM

может регистрОВ? Их как бы не 1 штук

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

Убрана декларация typedef

Если в языке до сих пор такие тектонические подвижки

Гг. Объявить typedef deprecated - это «тектонический сдвиг»? %)

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

Интересно, испытывают ли аффтары «языка D2» чувство ПОЗОРА за свою поделку?

интересно, испытываешь ли ты чувство ПОЗОРА за свою тупость ввиду незнания что D2 лишь ТЕСТОВЫЙ язык, не D1

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от anonymous

Опять убрали еду :(

Голод-печаль...

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