LINUX.ORG.RU

Очередная версия референсного компилятора языков D1/D2

 , digital mars,


0

2

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

Основные улучшения и изменения в языке D2 и его стандартной библиотеке:

  • Полностью реализована поддержка 64-битной архитектуры для Линукса, теперь представляются отдельные инсталляционные пакеты для 32-х и 64-хбитных архитектур (то же справедливо и для D1).
  • Модуль std.intrinsic перенесён в ядро и теперь называется core.intrinsic.
  • Добавлены средства для работы с сетью --- модули etc.c.curl для работы с libcurl и std.net.isemail.
  • Добавлены дополнительные средства для параллельного программирования --- модуль std.parallelism.
  • Модули std.algorithm и std.range дополнены новыми функциями, частично оптимизированы, для std.algorithm обновлено описание.
  • Убран модуль std.iterator, вместо которого предлагается использовать std.range.ElementType либо std.range.ElementEncodingType.

Устранено около сотни ошибок в том числе 14 ошибок стандартной библиотеки и 3 ошибки рантайма.

Кроме этого, следует отметить, что теперь для пользователей Fedora и SUSE собраны отдельные rpm пакеты для обеих поддерживаемых архитектур.

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

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

и опять ломают совместимость! идиоты, просто

D2 находится в разработке, в alpha стадии, поэтому для него это нормально. Для D1, насколько я понял, совместимость сохраняется.

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

>Ну и кто этим пользуется

Например я.

anonymous
()

Убран модуль std.iterator, вместо которого предлагается использовать std.range.ElementType либо std.range.ElementEncodingType

Кривой дотнето-джаво-стиль.

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

> и опять ломают совместимость! идиоты, просто

все правильно делают - если что-то и менять, то как можно раньше, так глядишь и получат D3==D

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

Убран модуль std.iterator, вместо которого предлагается использовать std.range.ElementType либо std.range.ElementEncodingType

Кривой дотнето-джаво-стиль.

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

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

> Не ясно, что имеете в виду.
имеется ввиду видимо имена методов/классов

memnek
()

Кстати, зачем тему перенаправили в раздел «Коммерческое ПО»? Вообще-то, компиляторы бесплатны, код их открыт. То, что DigitalMars является коммерческою компанией, ничего не значит, поскольку и Red Hat, и Novell ныне покойный и Canonical --- тоже суть коммерческие компании, но на выход очередной Федоры никто не подумает поставить метку «Коммерческое ПО».

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

> Кривой дотнето-джаво-стиль.

Да ладно, CamelCase для классов было бы еще нормально. Но вот за методы в camelCase хочется убить.

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

Я о длине и названиях классов :)

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

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

ты опоздал,

Лучше позже, но лучше. Проверил: код компилятора есть в src в предлагаемом к скачиванию архиве. Так что прошу метку OpenSource вернуть.

кстати они извращенцы - расширения файлов .c, а внутри сиплюсные классы

Есть такое дело. Впрочем, это очень распространённое явление. Насколько это приемлемо --- другой вопрос.

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

>код их открыт

Нет, к сожалению. DMD - закрытая разработка, хотя исходный код доступен. А GDC и LDC к DigitalMars никакого отношения не имеют.

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

DMD - закрытая разработка, хотя исходный код доступен

// License for redistribution is by either the Artistic License
// in artistic.txt, or the GNU General Public License in gnu.txt.
aho
()
Ответ на: комментарий от aho

Бэк-енд DMD закрыт. Хотя исходный код доступен.

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

>> кстати они извращенцы - расширения файлов .c, а внутри сиплюсные классы

Есть такое дело. Впрочем, это очень распространённое явление. Насколько это приемлемо --- другой вопрос.

Не примомню, чтобы такое попадалось. Только приплюснутые хедеры с расширением .h везде и всюду попадаются. Приемлемо? Предлагаю обзывать .pas, чтобы никому обидно не было.

const86 ★★★★★
()

Открывашка для пива в комплекте с компилятором по-прежнему идёт?

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

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

> Проверил: код компилятора есть в src в предлагаемом к скачиванию архиве. Так что прошу метку OpenSource вернуть.

Вообще мне не нравится, что на сайте Digital Mars о лицензиях или ни слова или информация куда-то упрятана подальше, но во всяком случае в скаченном deb-архиве я нашел файл в deb: /usr/share/doc/dmd/ copyright, а там:

The Software is copyrighted and comes with a single user license,

and may not be redistributed. If you wish to obtain a redistribution license, please contact Digital Mars.

Это на OpenSource ну никак не тянет.

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

Хорошо, с DMD разобрались :)

А упоминавшийся здесь GDC уже готов, чтобы на нём написать что-то полезное сложнее хеллоуворлда? Кто пробовал?

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

Не знаю, я про D чисто по верхам читал, даже ничего не пробовал на практике.

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

Правда, мне пришла на ум мысль, что учитывая слова насчет If you wish to obtain a redistribution license, please contact Digital Mars может оказаться, что на какие-то варианты лицензия всё-таки свободная, но я ничего не нашёл. Вообще, это лучше бы автору новости поискать, как более информированному.

anonymous_incognito ★★★★★
()

Хорошая новость. А неосилившие std.range идут нафиг.

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

gdc совсем немного отстает от DMD. В последний раз, когда я смотрел, был привинчен фронт енд от DMD 2.025, но модуль std.parallelism падал при попытке использования. Может уже починили.

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

2.052 а не 2.025 Надо внимательнее быть.

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

Есть уже такой, Go называется. Компилируемый, GC и куча синтаксического сахара в комплекте (вплоть до отсутствия необходимости писать в конце каждой строки точку с запятой).

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

> куча синтаксического сахара в комплекте (вплоть до отсутствия необходимости писать в конце каждой строки точку с запятой).

Так вот в чём залог успеха современного системного языка!

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

А зачем? Это же такая сишечка с плюшками.

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

> Это на OpenSource ну никак не тянет.

На OpenSource - как раз тянет. На Free Software - нет.

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

В зипованом архиве лежит файл лицензии, там написано следующее:

The front end source code to the dmd D compiler is under the GPL license.

The D runtime library, Phobos (which includes Druntime), is under the Boost license.

Обе лицензии открытые. С бэкэндом сложнее.

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

Этот компилятор ужасен, бинарные генерирует огромадные (под винду) Собрал QtD, библиотека с функциями обертками(пустышками) весит 10 мегобайт, сама программа весит 2 мб, а еще DLLки Qt весят 15 мб, повеситься можно!

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

> и опять ломают совместимость! идиоты, просто

Чорд, кокайа досадо! Из всех двух строчек, что ты написал на Ди, сломалась одна. Горе и печаль...

Да они молодцы, что не следуют заветам «сохраним баги для потомков!» - пока язык не особо распространённый, нужно максимально оптимизировать всё то, что потенциально будет источником проблем. Лучше сейчас в трёх проектах исправят 10 строчек, чем потом сотни прогеров будут недоумённо спрашивать: «А зачем в модуле network функция sin?».

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

> Ну и кто этим пользуется?

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

Ненужно. Закапывайте.


Ложись, закопаю. :)

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

> Собрал QtD, библиотека с функциями обертками(пустышками) весит 10 мегобайт

Во-первых, в слове «мИгобайД» у вас ошибка, а в-вторых, «врапперы» никогда столько не весили - видимо, либы собрались вместе с нативными.
Кроме того, см. дистр Qt на Линупсе - такие же монстры. Что в этом такого? Пытались запустить на кофеварке чтоль?

Собери граф. прогу на DFL, DWT, Harmonia или MinWin - будет тебе 500-килобайтное счастье! :)

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

Собери граф. прогу на DFL, DWT, Harmonia или MinWin - будет тебе 500-килобайтное счастье! :)

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

Впрочем, это понято, что обёртки делают только для стабильной ветки языка.

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

«врапперы» никогда столько не весили

$ ls -shS1
total 30M
 12M libcpp_gui.dll
9,4M QtGui4.dll
4,5M libcpp_core.dll
2,5M QtCore4.dll
1,8M screenshot.exe
 42K libgcc_s_dw2-1.dll
 12K mingwm10.dll

И даже при таком неадекватном размере библиотеки libcpp_*.dll не стыдятся импортировать функции из Qt*.dll

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

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

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

Как уже было сказано, Александреску не любит итераторы и считает, что range ничем не хуже.

Кстати, можете мне квалифицированно и доходчиво объяснить, в чём разница между итераторами (например, в той форме, как в Питоне) и реализацией range в D. На мой непрофессиональный взгляд вторая поглощает первые.

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