LINUX.ORG.RU

Синхронизированы версии компиляторов языка D (dmd, ldc) и gcc: D 2.098 теперь в gcc

 , ,


0

6

Iain Buclaw, разработчик компилятора D для GCC сообщил, что версия gcd синхронизирована с основной разработкой. gcd переведён с C++ на D, для сборки теперь требуется инсталляция gcc с работающим компилятором D.

Синхронизация разрабатываемой версии gdc и основного репозитория dmd будет проводиться до конца марта и вплоть до заморозки релиза GCC 12.

Работа компилятора была проверена на следующих платформах:

  • x86_64-linux-gnu;
  • mips-linux-gnu;
  • powerpc64le-linux-gnu;
  • sparcv9-sun-solaris;
  • x86_64-portbld-freebsd12;
  • amd64-openbsd6.9;
  • x86_64-netbsd;
  • x86_64-apple-darwin20.

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



Проверено: hobbit ()

Синхронизация разрабатываемой версии gdc и основного репозитория dmd будет проводиться до конца марта и вплоть до заморозки релиза GCC 12.

Обратно выкинут или будет готов для продукшына?

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

он прикольный. Прототип Раст без стероидов, первая реальная попытка уйти от толстых плюсов не забыв С

жаль что в своё время не нашёл спонсоров, и так и остался

MKuznetsov ★★★★★ ()

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

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

Языки со сборщиком мусора не нужны.

Безосновательное утверждение. Вот ручная работа с выделением и освобождением памяти вызывает вопросы. А сборка мусора всего лишь один из способов её решить. Прогрессивная штука.

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

Ок, поправлюсь: системный язык со сборщиком мусора – это оксюморон и бред собачий

Определение системного софта размыто до Го, и даже до скриптов. Системный – вовсе не значит низкоуровневый. Мне пофиг на Ди. Да и вообще на всё это. Я не ради спора. Просто Го, например, позиционируется как системный. Обычно это значит – не софт для прямого взаимодействия с конечным пользователем. А Го пожирнее будет.

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

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

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

Сборщик мусора в нём строго опциональный

Я слышал краем глаза, что его стандартная либа вся на жс завязана.

Разве это плохо?

А если я слышал неправильно, и не завязана, то неплохо, конечно же.

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

Я слышал краем глаза, что его стандартная либа вся на жс завязана.

Погуглил, там вот так советуют делать. Почти что malloc/free :)

import core.memory: GC;
GC.disable(); /* disable automatic collections */
/* ... do your loop ... */
GC.collect(); /* manually trigger collection */
GC.enable(); /* enable automatic collections */

По идее GC.enable() можно и не включать, а просто делать GC.collect(); временами :)

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

А не с Go его резоннее сравнивать?

С Go его роднит только GC. А фактически это C++ с GC и улучшенным синтаксисом шаблонов. По сложности его надо ставить рядом с C++ и Rust.

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

Короче говоря, завязана, но сборку запускать можно руками. Однако, нельзя собрать только часть, а другую часть оставить на потом. Не совсем аналог free()/delete() короче.

Но вроде был слух, сто библиотеку прям хотят вообще от GC отвязать.

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

Но вроде был слух, сто библиотеку прям хотят вообще от GC отвязать.

видимо пока в работе:

There is currently work in progress to make the runtime library free of GC heap allocations, to allow its use in scenarios where the use of GC infrastructure is not possible.

https://dlang.org/spec/garbage.html

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

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

он настолько плох, что в каждом треде его надо продать, пожалуйста, купите

наше прекрасное поделие. и да, если бы фанатики хотя бы чут-чут знали матчасть,

то они бы понимали, чем хороша дишечка и почему раст это адище, что по синтаксису,

что по аст.

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

D появился до Rust. К тому же он по сути своей очень C-like. То есть, человек, который умеет в C/C++/C#/Java/PHP - при крайне малых затратах времени может читать/писать код на D. Rust всё-таки более отличается. У D тоже много своих внутренних фишек, но это именно фишки. Основа похожа на C-like. Многие фишки из D переходят в C++ более поздних стандартов (11,17,20). Но при этом именно фишки D привлекают тех, кто с ним сталкивается и кто на нём продолжает писать. Мне кажется, как-то так.

Ну и главный грааль D - это одна из лучших реализаций метапрограммирования.

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

Толку от этих плюсов D если нет нормальной парадигмы работы с памятью. Если это GC то не надо называть его системным, драйвера с GC не попишешь, если без GC то много фишек языка теряется, язык лишь чуть лучше С становится, тот же Zig в этом плане интересней выглядит.

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

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

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

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

Ну и главный грааль D - это одна из лучших реализаций метапрограммирования.

Помедленнее, пожалуйста, я записсываю!

В AST-макросы умеет?

Квазицитирование?

AST типизированное?

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

Ну и главный грааль D - это одна из лучших реализаций метапрограммирования.

Помедленнее, пожалуйста, я записсываю!

В AST-макросы умеет?

Квазицитирование?

AST типизированное?

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

Свои аллокаторы писать можно, есть их базовый набор, placement new тоже есть, все как в плюсах

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

https://dlang.org/blog/2020/09/28/function-generation-in-d-the-good-the-bad-t...

Conclusion

Initially, D looked almost as good as Lisp for generating functions. As we tried to gain finer control of the generated function, our code started to look a lot more like C macros; in fact, in some respects, it was even worse: we had to put an entire function definition in a string mixin just to set its name.

This is due to the fact that D is not as “regular” a language as Lisp. Some of the people helming the evolution of D are working on changing this, and it is my hope that an improved D will emerge in the not-too-distant future.

In the meantime, the experimental refraction module from the bolts meta-programming library offers a saner, easier way of generating functions without compromising on the idiosyncrasies that come with them. It allows you to pretend that functions can be disassembled and reassembled at will, while hiding all the gory details of the string mixins that are necessarily involved in that task.

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

О, Вы его используете?

активно, очень удобный инструмент.

d уже готов быдлокодить - формошлёпить, тормошить базу, дёргать веб-сервисы и т.п.?

смотря, что подразумевается под «формо…». Что до гуя, из «промышленных», есть привязки к gtk. А вообще, с этим скверно, привязок к Qt нет. Точнее, есть живой проект и работает, но там эрзац – решение по слотам, автор сделал предопределённый набор.

С остальным – библиотек хватает, проблем нет.

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

А не с Go его резоннее сравнивать?

с чего бы? в D есть штатные файберы и есть даже библиотека, в которой человек сделал аналог Go. Но стиль D не заточен на «горутины» и точного аналога «горутин», нет.

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

Языки со сборщиком мусора не нужны.

Можно согласиться с поправкой: «Языки со сборщиком мусора, при решении Вашей, очень частной задачи, не нужны.» Тогда всё верно.

D позволяет разрабатывать очень быстро, я бы сказал, скорость написания не медленнее, чем на Питоне. Ну, предложите, как совместить быструю разработку и неавтоматическое управление памятью. Станете знаменитостью и войдёте в историю.

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

Ок, поправлюсь: системный язык со сборщиком мусора – это оксюморон и бред собачий.

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

В ядре, наверное. В задачах пространства пользователя, почему бы и да?

Наконец, есть разработка по применению D во FreeRTOS и вообще голом железе.

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

Зачем так извращаться если можно взять и использовать Rust?

Очень понятно желание неофита абсолютно везде использовать новую любовь.

Но зачем-то люди изобретают всё новые и новые инструменты, для разных задач. Удивительно, правда?

Раст, вероятно хорош в той области, для которой его разрабатывали: безопасного по памяти программирования. Что касается скорости разработки, то пока я не вижу оснований отказаться от опасений, что Раст вынуждает программиста слишком сильно концентрироваться на технической стороне в ущерб основному алгоритму. Пока история проектов, выбравших Раст, эти опасения подтверждает. Когда все разумные сроки оказываются недостаточными и всё буксует…

Короче, это РАЗНЫЕ инструменты. D не пытается гарантировать абсолютную безопасность, но старается предоставить разумную. Но писать на нём быстро и удобно. Раст пытается дать гарантии безопасности, но не скорости разработки. Только и всего.

Это разные инструменты, не па?

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

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

Кроме задач по написанию драйверов, никаких других не существует?

Всё, что выше, мусорщик делать не мешает или мешает не фатально.

, если без GC то много фишек языка теряется, язык лишь чуть лучше С становится, тот >же Zig в этом плане интересней выглядит.

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

glebiao ()
Ответ на: комментарий от X-Pilot

Чувак, ты много чего-то написал, но по делу («Чем D лучше») - ноль.

Я за него :)

Почему обязательно лучше? Это разные инструменты. Раст не в состоянии позволить писать столь же быстро, как D.

glebiao ()