URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 136231
[ Назад ]

Исходное сообщение
"Выпуск компилятора языка D 2.110"

Отправлено opennews , 10-Мрт-25 16:32 
Опубликован релиз DMD 2.110, эталонного компилятора для языка D.  Код компилятора распространяется под свободной лицензией BSL (Boost Software License). Поддерживаются системы Linux, Windows, macOS и FreeBSD...

Подробнее: https://www.opennet.ru/opennews/art.shtml?num=62854


Содержание

Сообщения в этом обсуждении
"Выпуск компилятора языка D 2.110"
Отправлено Ivan_83 , 10-Мрт-25 16:32 
> При запуске с опцией "-preview=fixImmutableConv" запрещено копирование переменных с типом "const void[]" в переменные с типом "void[]", так как такое копирование в последствии может привести к использованию вне контекста "const".

Опять придётся через memcpy() обходить дурные хотелки компелятора :)

static inline void *
deconst_ptr(const void *prt) {
    void *ret;
    memcpy(&ret, &ptr, sizeof(void*));
    return (ret);
}


"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 10-Мрт-25 16:57 
Или не использовать опцию -preview=fixImmutableConv.

"Выпуск компилятора языка D 2.110"
Отправлено 12yoexpert , 11-Мрт-25 10:50 
каким местом результирующий массив должен быть immutable?

"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 10-Мрт-25 17:55 
> Опять придётся через memcpy() обходить дурные хотелки компелятора :)

Г*кодерам нет покоя...


"Выпуск компилятора языка D 2.110"
Отправлено Ivan_83 , 10-Мрт-25 18:13 
Вот именно, мешают своими типами код писать :)

"Выпуск компилятора языка D 2.110"
Отправлено ng , 11-Мрт-25 09:32 
Тут важно различать программистов и кодеров.

Когда первые с лёгкостью программы _пишут_, вторые неистово _кодят_.

Это закреплено в статье 1261 ГК РФ, где программа приравнивается к литературному произведению.

:)


"Выпуск компилятора языка D 2.110"
Отправлено 12yoexpert , 11-Мрт-25 10:51 
> Тут важно различать программистов и кодеров

это важно только маленьким детям, которые любят это повторять


"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 11-Мрт-25 11:30 
А можно мне для себя, как отличить программиста от кодера? Хочу понять, кем являюсь я.

"Выпуск компилятора языка D 2.110"
Отправлено ng , 11-Мрт-25 13:50 
Всё, на самом деле, просто.

Если пишет он программу, значит это программист; ну, а если кодит код, значит это кодер.

:)


"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 11-Мрт-25 15:34 
А если скриптует?

"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 12-Мрт-25 12:39 
Наверное, скриптор.

"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 10-Мрт-25 16:36 
>Опубликован релиз DMD 2.110, эталонного компилятора для языка D.

Господа это единственный компилятор не основанный на LLVM.

>Код компилятора распространяется под свободной лицензией BSL (Boost Software License).

Не копилефт. Это разрешиловка-пермиссивка.

>Поддерживаются системы Linux, Windows, macOS и FreeBSD.

Windows в этом списке лишний.


"Выпуск компилятора языка D 2.110"
Отправлено funny.falcon , 10-Мрт-25 17:58 
> Господа это единственный компилятор не основанный на LLVM.

Go, Ocaml, Haskel, FreePascal…


"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 10-Мрт-25 18:16 
Спасибо тебе, дорогой

"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 10-Мрт-25 18:17 
А раст то на llvm или нет ?!?

"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 10-Мрт-25 18:28 
Да

"Выпуск компилятора языка D 2.110"
Отправлено Ан Оним , 10-Мрт-25 19:30 
FPC with an LLVM code generator backend is available on the git main branch
https://wiki.freepascal.org/LLVM

"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 10-Мрт-25 20:02 
Зачем, если есть без LLVM?

"Выпуск компилятора языка D 2.110"
Отправлено Анонем , 10-Мрт-25 20:50 
> Will the FPC team, somewhere in the future, adopt the LLVM as the backend on all platforms?
> No, for various reasons

"Выпуск компилятора языка D 2.110"
Отправлено Bottle , 10-Мрт-25 22:14 
Ознакомься с Pascal-P5, который соответствует ISO стандарту языка.

"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 12-Мрт-25 18:52 
Никлаус Вирт с того света смотрит на тебя одобрительно.

"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 10-Мрт-25 20:30 
> Господа это единственный компилятор не основанный на LLVM.

Если бы он еще умел оптимизировать хотя бы в половину как LLVM - цены бы ему не было.

> Не копилефт. Это разрешиловка-пермиссивка.

Ну так поэтому и написано "под свободной лицензией"

> Windows в этом списке лишний.

Без винды оно вообще бы загнулось из-за ненужности.


"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 10-Мрт-25 20:42 
Для скорости есть LDC/GDC (с LLVM и GCC бэкендами)

"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 11-Мрт-25 12:33 
>Господа это единственный компилятор не основанный на LLVM.

Как бы, gdc тоже на нём не основан.


"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 10-Мрт-25 16:59 
Здесь должна быть дискуссия почему D должен был не допустить такое явление как Раст! Именно Раст заполонил умы опеннетовцев, а должен был D!

"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 10-Мрт-25 17:10 
Потому что у D не было достаточной поддержки со стороны корпораций.
Не очень убедительно пиарились.
Да и у Раст пока позиции крайне слабые. Хайп пройдёт и забудут.

"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 10-Мрт-25 17:14 
Некоторые маститые кодеры попробовали Раст, и вот что говорят: долго компилируются большие проекты, тащится куча зависимостей, многие вещи слишком сложно выразить на Расте (тогда как на плюсах это делается элементарно).

"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 10-Мрт-25 17:53 
> многие вещи слишком сложно выразить на Расте (тогда как на плюсах это делается элементарно).

Ох, лол. Прямо многие? Хоть одну "маститые кодеры" могут привести в пример?


"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 10-Мрт-25 18:18 
Говорили, что из-за требования постоянно угождать боров чекеру. Ломается производительность труда. Нужно изворачиваться, чтоб даже простые вещи реализовать.

Но это не моё мнение.


"Выпуск компилятора языка D 2.110"
Отправлено анон , 11-Мрт-25 08:08 
А это и есть фатальный недостаток Rust-а т.к. код сразу пишется в продакшн (производство)

"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 11-Мрт-25 10:36 
Что ещё говорят маститые кодеры (какой масти, кстати?)? Что-нибудь про удой кур известно стало?

"Выпуск компилятора языка D 2.110"
Отправлено 12yoexpert , 11-Мрт-25 10:55 
гугли статью на хабре, как разработчик игр пытался на расте писать. в итоге его выбесило, что компилятор мешает работать, что язык - нелогичная каша, собранная по сусекам, и что фундаметальные баги висят по 10 лет и всем пофиг

"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 11-Мрт-25 12:52 
Если ты про нытье этих неудачников:
Leaving Rust gamedev after 3 years
loglog.games/blog/leaving-rust-gamedev/
то неудивительно)

Достаточно вчитаться в статью и подумать "а что же за проблемы привели к такой ситуации?".

This post isn't a scientific evaluation or an A/B study. It's my personal opinion after trying to make Rust gamedev work for us, a small indie developer (2 people), trying to make enough money to fund our development with it. 

Т.е 2 нищука без финансовой подушки решили делать игры.

I'm looking at things from the perspective of "I want to make a game in 3-12 months maximum and release it so that people can play it and I can make some money from it.". 

Хотели наовнячить код побыстячку и сразу заработать бабосиков.
Логично что оно не вышло.
Надо было брать юнити или какой-то годот.

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


"Выпуск компилятора языка D 2.110"
Отправлено yet another anonymous , 11-Мрт-25 11:34 
> Ох, лол. Прямо многие? Хоть одну "маститые кодеры" могут привести в пример?

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


"Выпуск компилятора языка D 2.110"
Отправлено BeLord , 10-Мрт-25 17:54 
Они бы привели примеры этих многих вещей, а то есть умельцы которые технологическими линиями на Перле управляют, а есть кто приложение из 5 окон делает бегемотом-)))

"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 10-Мрт-25 20:14 
Видели мы код этих "умельцев" на перле…

"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 11-Мрт-25 11:39 
Да вообще код на Перле...

"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 11-Мрт-25 11:38 
Бегемот - что за ЯП такой?

"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 10-Мрт-25 17:20 
Потому что D в сравнении с плюсами в итоге не давал значимых преимуществ и при этом был нужен полутора анонимусам. Плюс разные стдлиб и несовместимые, но поддерживаемые DMD1 и DMD2 окончательно убили смысл в D вкладывать усилия.

"Выпуск компилятора языка D 2.110"
Отправлено анон , 11-Мрт-25 08:14 
У них не было GUI библиотеки что ограничвало распространение. У Rust есть Slint, у C/C++ есть Qt, wxWidgets, MFC и пр., даже у Pascal есть, и у Go есть Fyne, Gio. А у D ничего не было.

"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 11-Мрт-25 08:32 
D был хуже чем C++ т.к. в нем был GC, так что он встал куда-та на уровень с Go.

"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 11-Мрт-25 11:42 
Для кроваво-ынтерпрайзного софта GC в преимущество.

"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 10-Мрт-25 17:55 
Насчёт хайпа и забудут не уверен, стратегия раста - заразить как можно больше проэктов, пока хайп не прошёл. Вокруг Ди тоже хайп какой-никакой был, но на нём не было написано ничего важного, и он действительно помер после хайпа, тихо и незаметно.

"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 10-Мрт-25 18:32 
> стратегия раста - заразить как можно больше проэктов, пока хайп не прошёл

Ё-моё, вы посмотрите, "стратегия раста". Оказывается оно живое, у него ещё и какая-то стратегия есть. А ничего что тот раст о котором вы говорите это не раст, а ведущие разработчики этих самых проектов (да-да те самые пр которых выше аноним врём что они де жалуются на долгую компиляцию, зависимости и невыразительность), которые понимают что за языком будущее (на самом деле уже настоящее)?


"Выпуск компилятора языка D 2.110"
Отправлено laindono , 10-Мрт-25 20:04 
> они де жалуются на долгую компиляцию

Два ядра, два гига, посередине SATA (у мажоров, у остальных IDE).

У меня Рязань 2700, 32 гига рамочки и SSD в M.2. Не особо свежая сборка даже 5 лет назад.

Небольшая поделка на Bevy, требующая ~500 зависимостей:

    Total lines: 18269497
    (17515535 code, 274975 comments, 478987 blank lines)

Холодный релизный билд:

    Finished `release` profile [optimized] target(s) in 3m 42s

Горячий релизный билд:

    Finished `release` profile [optimized] target(s) in 11.86s

И я не закрывал два инстанса Firefox и VScode, чтоб получить циферки получше. И проц/память не разогнанны ибо мне лень.


"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 10-Мрт-25 20:19 
А что оно делает? У меня простенький привет мир (построчный разбор строк, фильтрация, форматирование вывода), тупо переписал простенький скрипт с питона (с ворохом сишных батареек) на раст, вышло по 50 гб на дебаг и релиз либы, сборка какое-то совершенно неприличное время.

"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 11-Мрт-25 11:45 
Минусующие предлагают вам не верить своим глазам.

"Выпуск компилятора языка D 2.110"
Отправлено Ivan_83 , 10-Мрт-25 20:26 
Смешно же.

Чтоб ты понимал у нас на работе продукт за 3-4 минуты собирается, при прогретых кешах.
А продукт тот включает сборку ISO загрузочного, в процессе оно разворачивает в chroot фрибсд с кучей портов, потом там внутри компеляет фрирдп+ещё С кода раз в 10 больше, потом вот это всё пакует в архивы, подписывает пгп, пакует в исо и выгружает по сети на нфс.
И где то минута там тратится потому что один кусок проекта достаточно большой и собирается он в один поток.

Тачка там не особо сильно быстрее твоей, ну проц 5950х да оперативы примерно столько же, естессно там браузер никто не запускает при этом, там просто ещё какие то виртуалки крутятся :)


Так что раст отстой.


"Выпуск компилятора языка D 2.110"
Отправлено laindono , 10-Мрт-25 22:11 
> при прогретых кешах

Что кеши кешируют? У меня кешированная сборка занимает десяток секунд.

> Тачка там не особо сильно быстрее твоей, ну проц 5950х

Проц примерно вдвое быстрее.

> ещё С кода раз в 10 больше

Процедурный код на два порядка проще компилировать.

> И где то минута там тратится потому что один кусок проекта достаточно большой и собирается он в один поток.

Рекоменду пофиксить.

Но опять же, сравниваем несравнимое.


"Выпуск компилятора языка D 2.110"
Отправлено Ivan_83 , 11-Мрт-25 03:27 
> Что кеши кешируют?

Почти всё :)
собранная ос, исходники портов, собранные порты, ccache.


> Рекоменду пофиксить.

Да всё как на той картинке с квадратными колёсами - некогда :)
Если честно то и не оч мешает.


"Выпуск компилятора языка D 2.110"
Отправлено laindono , 11-Мрт-25 04:24 
> собранная ос, исходники портов, собранные порты, ccache.

Холодная сборка за 3-4 минуты превращает 18 миллионов строк уже скачанного растокода в бинарник. Горячая сборка на десяток секунд использует встроенный аналог ccache.

Из забавного. Дебажная сборка собирается вдвое дольше. Возможно из-за особенностей того, как я это всё настроил и, возможно, из-за более дорогой линковки. Да и просто в IO упирается. Дебажный бинарник на 1.1 гигабайт как никак. Для сравнения релизный бинарник на ~100 мегабайт и вдвое меньше, если пытаться как-то оптимизировать это (strip/lto и прочие ништяки).

> Если честно то и не оч мешает.

Тут согласен.


"Выпуск компилятора языка D 2.110"
Отправлено Ivan_83 , 10-Мрт-25 20:20 
Да ничего они не понимают, такие же тупари как и тут.

Для примера могу привести пример дятла который сейчас sshfs рулит.
Оригинальному разрабу стало не интересно и он проект забросил. Появилась пара форков, один мой другой того дятла.
Дятел первым делом тупо замержил все PR а вторым написал что оно пока на С но скоро на раст перепишем.
Потом он пошёл задолбал основного автора и тот отдал ему проект, считай апстрим sshfs.
Уровень того что туда втащили - примерно такой же днищенский, но хотя кажется вреда пока нет.


А CVE вон пишут вообще люди с отрицательным IQ, как показывают новости за сегодня.
Именно те CVE на которые фапают растишки.


"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 10-Мрт-25 20:40 
> Появилась пара форков, один мой другой того дятла.

Ну да, ну да, а ты стоишь такой весь в белом пальто.

> Потом он пошёл задолбал основного автора и тот отдал ему проект, считай апстрим sshfs.

Это лучшее что могло случиться с проектом sshfs ever!
Потому что ты уже показал и как быdloкодишь на сишечке, и как знаешь алгоритмики, и как кладешь болт на стандарты, и как вертишь на том самом безопасность. Слава омнисиии что он тебе не отдал апстирим!

Ну и писать Secure Shell FileSystem на древнем дырявом языке из прошлого столетия... так себе идея.

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

Еще более днищенский чем твой? Не, ну не верю...

> А CVE вон пишут вообще люди с отрицательным IQ, как показывают новости за сегодня.

Зачем ты так про разрабов ядра линя. Люди просто устают.


"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 10-Мрт-25 20:28 
>"стратегия раста"
>оно живое, у него ещё и какая-то стратегия есть

Раст - это не только язык, но и сообщество, и политическая система. Раст всеобъемлющь.

>ведущие разработчики этих самых проектов
>понимают что за языком будущее (на самом деле уже настоящее)

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


"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 10-Мрт-25 21:18 
Наверное, если бы у раста не было такой стратегии, то и людей бегающих по репозиториям и требующих срочно переписать всё или хотя бы частями на раст не было?

"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 11-Мрт-25 00:32 
Только никто по репозиториями не бегает и не требует, свои репозитории переписывают сами авторы. Но да, этой движухи не было бы не будь rust революцией, а будь он посредственностью как какой-нибудь очередной D.

"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 11-Мрт-25 01:39 
>свои репозитории переписывают сами авторы

Торвальдс свой проект тоже сам переписывает?


"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 11-Мрт-25 13:11 
Да. От него, как от менеджера, требуется только разрешение.
Грег (по сути второй человек в ядре) - тоже только "за".


"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 11-Мрт-25 14:05 
> Да. От него, как от менеджера, требуется только разрешение.
> Грег (по сути второй человек в ядре) - тоже только "за".

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


"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 11-Мрт-25 14:49 
> Значит Линус, как менеджер, видит качество будущих кодописателей и готовит проект к снижению их квалификации.

Снижению?
У нынешних ядропикателей уровень уже на дне.
Линус сам говорил
"You'd think that all the basics would have been fixed long ago, but they're not. We're still dealing with basic issues such as memory management."
Т.е за 30+ лет, до сих пор не осилили.

Другой пример - Теодор "вы не заставите меня выучить раст" Тцо.
Процитирую анона из другой темы.


CVE-2022-1184 - ваще шикарная.
А теперь микрофон и все лавры передаются ox55ff с лора
"в 2013 году он закоммитил вот такую портянку github.com/torvalds/linux/commit/dc6982ff4db1f47da73b1967ef5302d6721e5b95

Через 9 лет (2022 год) тысячи глаз наконец-то рассмотрели там уязвимость CVE-2022-1184.
Которую смогли исправить только со второй попытки:
первая github.com/torvalds/linux/commit/65f8ea4cd57dbd46ea13b41dc8bac03176b04233
вторая github.com/torvalds/linux/commit/61a1d87a324ad5e3ed27c6699dfc93218fcf3201

    ext4: check if directory block is within i_size

Бгг. Видимо Теодорчик решил, что в его коде всё within, ведь "индекс проверять надо если программист решил что тут есть шанс того, что он окажется некорректным", а оказалось, что не within. Это какое-то шанс-ориентированное программирование. Сишник к успеху шёл, не получилось, не фартануло.


Вот типичный уровень писаки в ядро. Гарантии уровня "мне кажется" и "мамой клянусь".

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

И теперь корпам придется разбирать, что натворили эти "идеологические".



"Выпуск компилятора языка D 2.110"
Отправлено Bottle , 10-Мрт-25 22:16 
D для скриптинга использовали Remedy, те финны, которые Alan Wake и Control сделали.

"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 10-Мрт-25 18:36 
я не стал его юзать из-за сборщика мусора. он как бы был опциональным всегда, но по факту все было завязано на него и ты не мог вроде даже стандартную либу использовать без сборщика мусора.

"Выпуск компилятора языка D 2.110"
Отправлено fuggy , 10-Мрт-25 20:13 
Вот и получается. Возможная замена для Rust. А по факту нужно отключать сборщик мусора и использовать malloc/free без которого возвращаемся к тому что с чего начали. Или читать 10 страница мануала про все режимы работы.

"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 10-Мрт-25 21:18 
2 версия поворот не туда, но чего ещё ожидать от любителей додиеза.

"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 11-Мрт-25 11:52 
Можете использовать его подмножество BetterC, как замену Сишки, но с более красивым синтаксисом. Совсем без GC.

"Выпуск компилятора языка D 2.110"
Отправлено warlock66613 , 13-Мрт-25 00:08 
1) D очень безидейный. Точнее, идея там такая: давайте натащим из всех языков и подходов побольше всего, чтобы и так можно было писать и сяк и наперекосяк. Оказывается, людям это не нравится. Хотя казалось бы.

2) Сборщик мусора как родовое проклятие. Попытки так или иначе от него отвязаться продолжаются, но без него всё ешё плохо.


"Выпуск компилятора языка D 2.110"
Отправлено Tita_M , 10-Мрт-25 17:32 
Вопрос к тем кто следит за этим языком: добавили ли в него поддержку борроу чекера уже или ещё нет?
А то читал несколько лет назад, что рассматривают такую возможность.

"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 10-Мрт-25 18:35 
Для борроу чекера нужно вводить в синтаксис языка лайфтаймы, а значит ломать совместимость. Никакой из копроязыков на это не пойдёт, добавление борроу чекера останется на уровне балаболии.

"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 10-Мрт-25 20:22 
>> Для борроу чекера нужно вводить в синтаксис языка лайфтаймы

А для написания комментариев нужно вводить тест на слабоумие?


"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 11-Мрт-25 11:06 
Пока что добавили очень простую штуку только и она экспериментальная так и осталась https://dlang.org/spec/ob.html

"Выпуск компилятора языка D 2.110"
Отправлено blevakagmail.com , 10-Мрт-25 17:47 
Годнота. Круче сишарпа. Жаль не майки

"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 10-Мрт-25 18:34 
А где же их Verona?

"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 10-Мрт-25 19:57 
> Круче сишарпа.

В огороде бузина, в Киеве дядька.


"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 10-Мрт-25 23:24 
в сад

"Выпуск компилятора языка D 2.110"
Отправлено 12yoexpert , 11-Мрт-25 01:22 
с каких пор D это не майки? майки же его и закопали, взяв на работу Александреску

"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 11-Мрт-25 11:07 
Он в Нвидиа ушел
Майки там ни при чем

"Выпуск компилятора языка D 2.110"
Отправлено 12yoexpert , 11-Мрт-25 20:58 
перепутал майков с фейсбуком. нвидиа тут ни при чём.

"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 12-Мрт-25 12:57 
Андрей использовал D в фейсбуке
Потом когда ушел оттуда просто занимался D
И только относительно недавно он отошел от D потому что ушел в нвидия

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


"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 12-Мрт-25 00:20 
Если бы были майки, то было бы как ты ни пиши кроссплатформенно, а в результате получается под Винду.

"Выпуск компилятора языка D 2.110"
Отправлено зомбированный , 10-Мрт-25 18:56 
А этот компилятор умеет в порты звонить и собирать под ХР ??? Вообще, мне нужен С подобный современный компилятор, который умеет в порты звонить и собирать под ХР!!!

"Выпуск компилятора языка D 2.110"
Отправлено Ан Оним , 10-Мрт-25 19:37 
Lazarus/FreePascal умеет. Делал такую программу для работы с параллельным портом

"Выпуск компилятора языка D 2.110"
Отправлено зомбированный , 10-Мрт-25 19:43 
так Lazarus на Pascalе, а я спрашивал С подобный

"Выпуск компилятора языка D 2.110"
Отправлено Ан Оним , 10-Мрт-25 19:53 
Так Free Pascal и есть С-подобный, в нём есть все С-шные типы данных и способ вызова, из FP можно вызывать С-шные dll'ки для работы с портами.

"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 10-Мрт-25 20:00 
Синтаксис у него несиподобный.

"Выпуск компилятора языка D 2.110"
Отправлено _kp , 10-Мрт-25 20:51 
Ну, верни указатель в функции на Паскале. Ни как? А вот такие там тараканы. И так там везде.  :(

"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 10-Мрт-25 21:14 
Синоним типа сделай (а-ля type PChar = ^Char;) и массивы в функции передаются и указатели возвращаются.

"Выпуск компилятора языка D 2.110"
Отправлено _kp , 10-Мрт-25 23:18 
Да Вы затейник. Всю проверку типов поделить на их приведение к PChar. ;)
Там предлагается через var возвращать.
Так решаемо, но не всегда, и начинается раздутие исходника, и тому подобные идеологические палки в колеса.
Попросили недавно дописать ПО на Delphi, точнее кусок кода с С++ переписать на него, типа ты же раньше писал на нем... Сделал, но поматерился и поржал от души.

А уж про словесное недержание в синтаксисе опускаем, это так всем понятно. И не begin'измы, а просто  раздутие исходника дубовыми конструкциями.

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

По сути о Паскале бы и забыли уже, если б Lazarus и Embarcadero не были кроссплатформенными. Но это не заслуга языка, а заслуги IDE и библиотек.


"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 11-Мрт-25 15:13 
Паскаль не забыт, он развивается. Вот современный Паскаль:
https://www.remobjects.com/elements/oxygene/language.aspx

"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 11-Мрт-25 15:29 
> Да Вы затейник. Всю проверку типов поделить на их приведение к PChar. ;)

Вы вообще не поняли, что вам написали. Речь не о приведении всех типов к PChar, а о том, чтобы сделать синоним (как сишный typedef) определенного типа на указатель. Это нужно чисто синтаксически, чтобы вернуть указатель из функции.

В общем, вы бы сперва в базовых аспектах Паскаля разобрались, прежде чем с него покровы срывать.


"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 11-Мрт-25 15:36 
> Но язык мало изменился с тех времен когда я на нем писал, и морально устарел.

Что вы там могли на нем писать, если даже не знаете, как вернуть указатель из функции? Hello world?


"Выпуск компилятора языка D 2.110"
Отправлено _kp , 11-Мрт-25 16:32 
Вообще то,  я и переписал, и закончил работу.
Но исходник стал толще и хуже читаемым.  И не из за каких то атрибутов или конструкций безопасности, а именно из за дубовости языка.

Если любопытно, это был рендеринг отображения на дисплее контроллера, перенесенный  под  SDL, затем перенесенный на CBuilder, а после того как в Embarcader C++ перестал быть кроссплатформенным, попросили переписать на Delphi. В итоге вместо дорогой панели можно использовать дешевый Андроид планшет, или запустить эмулятор на компе.
Всякую фигню по стольку раз не переписывают. ;)


"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 11-Мрт-25 14:07 
> Ну, верни указатель в функции на Паскале. Ни как?

В чем проблема?

type
  TFn = function(): String;

function Foo: String;

function Bar: TFn;
begin
  Result := @Foo;
end;


"Выпуск компилятора языка D 2.110"
Отправлено _kp , 11-Мрт-25 14:27 
Речь про указатели на объекты и структуры.
Про аналог костыля ***void с приведением чего угодно к PChar упомянуто, и про недостатки игнорирования типов при этом.

Про возврат указателя через var параметры тоже сказано, и про недостатки способа.

Причем здесь ваш пример с обычной строкой? ;)
Вы точно читаете?


"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 11-Мрт-25 14:41 
В FPC используйте {$TYPEDADDRESS ON} и ^ для указания указателя на конкретный тип.

"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 11-Мрт-25 15:12 
> Причем здесь ваш пример с обычной строкой? ;)
> Вы точно читаете?

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

> Речь про указатели на объекты и структуры.

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


"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 11-Мрт-25 15:32 
> Про аналог костыля ***void с приведением чего угодно к PChar упомянуто, и про недостатки игнорирования типов при этом.

Какие еще костыли с игнорированием типов и void**? То был пример использования синонима (как typedef в C) "указатель на Char". Вы аналогично вольны сделать синоним указателя на любой объект/структуру.


"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 11-Мрт-25 15:16 
Для программирования портов на FP не нужно возвращать ничего из паскалевских функций. Нужно только импортировать пару С-шных функций из специальной dll-ки.

"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 10-Мрт-25 19:56 
Ещё пять лет назад минимум семёрка нужна была.

"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 10-Мрт-25 20:10 
Убрали поддержку XP достаточно давно
Но можно скачать старую версию компилятора попробовать

"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 11-Мрт-25 01:06 
Вы в музее работаете что-ли?

"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 11-Мрт-25 18:14 
У нас в универе хр стоит

"Выпуск компилятора языка D 2.110"
Отправлено зомбированный , 10-Мрт-25 22:48 
На самом деле я этот вопрос задал, чтобы проверить квалификацию системного программирования здешней публики. Ответ очень простой - есть ультра современная IDE, которая умеет свистеть в порты и компилировать как в ХР так и даже в Win3.1 - это безусловный лидер в мультиплатформенном программировании - Embarcadero RAD Studio 12.2
у меня проги скомпилированные на 7ке в RAD Studio 12.2 отлично запускаются на ХР/98 (в проекте указываешь минимальную версию ОС и всё!)

"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 10-Мрт-25 23:48 
Реклама - информация, распространенная любым способом, в любой форме и с использованием любых средств, адресованная неопределенному кругу лиц и направленная на привлечение внимания к объекту рекламирования, формирование или поддержание интереса к нему и его продвижение на рынке (Приказ ФАС России от 14.11.2023 N 821/23)


> отлично запускаются на ХР/98

киллер фича в 2025 году


"Выпуск компилятора языка D 2.110"
Отправлено зомбированный , 11-Мрт-25 01:34 
Что ты хочешь сказать этим приказом - так ваобще любую информацию можно назвать рекламой в том числе прогноз погоды на завтра или любую другую абсурдную информацию
С другой стороны, человека распространяющего информацию, но который НИКАКОЙ выгоды не получает от этого ни прямой, ни косвенной, ни моральной, ну ВАОБЩЕ НИКАКОЙ то такой чел не является рекламодателем, а следовательно ИНФОРМАЦИЯ НЕ ЯВЛЯЕТСЯ РЕКЛАМОЙ, а констатацией факта.
Реклмой можно назвать распространение информации только если есть материальная выгода (прямо или косвенно). В случае другой мотивации - применяются другие термины...

"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 11-Мрт-25 04:25 
> констатацией факта

Это ваша фантазия, а не констатация факта. Говорю, как человек, который прямо сейчас пилит клиент для телеграм под Windows 3.11 и перелопативший 1001 способ как это сделать и пришедший к выводу, что лучшее решение это нативный delphi первой версии в эмуляторе.


"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 11-Мрт-25 07:48 
>клиент для телеграм под Windows 3.11

Ух ты, актуальненько. Владельцы 80386 возрадуются.


"Выпуск компилятора языка D 2.110"
Отправлено _kp , 11-Мрт-25 00:28 

> Embarcadero RAD Studio 12.2

Новшество - похерили С++, везде, кроме Windows. ;)


"Выпуск компилятора языка D 2.110"
Отправлено зомбированный , 11-Мрт-25 01:36 
В RAD Studio 12.2 C++ отлично работает под Android, iOS, так что не только под Windows

"Выпуск компилятора языка D 2.110"
Отправлено _kp , 11-Мрт-25 11:04 
> В RAD Studio 12.2 C++ _отлично_ работает под Android, iOS, так что
> не только под Windows

Если Вас не смущает официальное заявление что в  последнем C++Builder похерена поддержка всего, кроме     windows, а 64х битных кроссплатформенных компиляторов и вовсе не было, то Вам точно виднее. Хоть разработчикам напишите, а то мужики то незнают.

Сферический С++ в ваккуме и так есть под любые платформы, в том числе и ещё непридуманные, а с библиотеками не под всё.
В всвязи с кончиной Builder'а и подкинули работку переписывать с Builder на Delphi.

Вернемся к обсуждаемому языку D.
Язык, как бы не был хорош, или безопасен, без полноценного IDE, с конструкторами форм, останется нишевым. На этом взлетели Delphi и C#. Delphi во времена актуальности отличался очень высокой скоростью компиляции. И то и другое  для меня это когда то послужило мотивом на переход на Delphi, несмотря на органическую неприязнь к Паскалю уже тогда. То есть, язык не влиял на выбор среды разработки, а сама IDE его сделала популярным.

Ныне живые Embarcadero и Lazarus, не смотря на непопулярный Паскаль, имеют и IDE и кроссплатформенность. Не будь её, про них бы забыли.

В плане популяризации новых языков, нужно параллельно делать IDE.
Будь что то типа Lazarus, но с D или даже  Rust под ккпотом, то пользовались бы и не жужжали.


"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 11-Мрт-25 11:11 
При этом один крупный D shop переехал на него как раз с Паскаля
И их продукты это GUI приложения, там правда основная фишка коненчо в вычислениях которое приложение делает. Правда на чем сам GUI написан не знаю)

"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 11-Мрт-25 04:19 
> и даже в Win3.1

Простите, но вы написали глупость.


"Выпуск компилятора языка D 2.110"
Отправлено зомбированный , 11-Мрт-25 13:45 
да ладна?
https://ibb.co/qMMbK27s

"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 11-Мрт-25 14:39 
Это под Win32s, что ли? Ой, нет, лучше не надо.

"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 11-Мрт-25 14:42 
А, ну OS Version осталась 6.0,всё понятно.

"Выпуск компилятора языка D 2.110"
Отправлено зомбированный , 11-Мрт-25 15:20 
ну так я могу и OS Version понизить до 1.0 - тoгда ещё лучше будет работать на win 3.1

"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 11-Мрт-25 21:13 
А вы вообще понимаете назначение этого списка? Впрочем, можете переключить на всё что угодно.

"Выпуск компилятора языка D 2.110"
Отправлено зомбированный , 11-Мрт-25 23:14 
понимаете, не веришь - могу выслать скомпилированную прогу скомпиленную в RAD studio 12, которая запустится у тебя на windus 98 или 3.1

"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 11-Мрт-25 21:07 
Это не то, совсем не то. Там можете хоть 0 указать. Важно то, где OS version, а там 6.0. Т.е. начиная от Vista.

"Выпуск компилятора языка D 2.110"
Отправлено n00by , 11-Мрт-25 08:12 
Как оно свистит, когда запись в порт выполняется привилегированной командой?

"Выпуск компилятора языка D 2.110"
Отправлено зомбированный , 11-Мрт-25 09:41 
ясный пень через драйвер портов PortTalk, а для этого нужно, чтобы компилятор поддерживал команды inport/outport

"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 11-Мрт-25 09:50 
Команды в ассемблере, а это библиотечные функции. Если их нет, их можно написать.

"Выпуск компилятора языка D 2.110"
Отправлено _kp , 11-Мрт-25 12:10 
>>Команды в ассемблере..

Оно не обойдет ограничения OS на доступ к портам.

>> это библиотечные функции. Если их нет, их можно написать.

Нет. Можно "просто написать" драйвер, причем для каждой ОС и её вариантов свой драйвер, и работать через него.
А в остальном, всё хорошо как никогда.


"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 11-Мрт-25 12:39 
Ну и каким боком это относится к компилятору? Как получить доступ к железу — это не его проблема. А писать в порты можно на любом языке, хоть при помощи инлайн-ассемблера.

"Выпуск компилятора языка D 2.110"
Отправлено n00by , 12-Мрт-25 13:30 
> ясный пень через драйвер портов PortTalk, а для этого нужно, чтобы компилятор
> поддерживал команды inport/outport

Спасибо, понял. Вместо чтения Уолтера Они и создания драйвера, судим о "квалификации системного программирования".


"Выпуск компилятора языка D 2.110"
Отправлено зомбированный , 12-Мрт-25 18:57 
Вот вы смешной, судя по вашему совету вы ни разу в порты не свистели на ПК, потому-что не нужно создавать драйвер изобретая велосипед, а бери какой хош в свободном доступе и свисти в порты - хоть в 32, хоть в 64 бита

"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 11-Мрт-25 04:18 
> А этот компилятор умеет в порты звонить и собирать под ХР ???

Что мешает кодить под XP на том, что выходило во времена официальной поддержки XP?


"Выпуск компилятора языка D 2.110"
Отправлено зомбированный , 11-Мрт-25 12:06 
то что выходило во времена официальной поддержки XP - не работало с портами, последняя версия Visual Studio умеющая свистеть в порты - 6.0. Но она кстати и под 7кой отлично работает и свистит в порты, но как бы не комфортно на ней...

"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 11-Мрт-25 12:44 
__asm очень сложно использовать, да.

"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 11-Мрт-25 15:40 
Зачем? Даже в Borland C++ для DOS были функции, которые читали из порта, писали в порт.

"Выпуск компилятора языка D 2.110"
Отправлено зомбированный , 11-Мрт-25 16:28 
так он говорит про компиляторы у которых нет таких функций

"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 11-Мрт-25 16:46 
Кстати https://learn.microsoft.com/ru-ru/cpp/c-runtime-library/outp...
То есть выпилили аж в 2015.

"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 11-Мрт-25 16:48 
Но повторюсь — код там тривиален:
.text:00000000                 public __inp
.text:00000000 __inp           proc near
.text:00000000
.text:00000000 arg_0           = word ptr  4
.text:00000000
.text:00000000                 xor     eax, eax
.text:00000002                 mov     dx, [esp+arg_0]
.text:00000007                 in      al, dx
.text:00000008                 retn
.text:00000008 __inp           endp

"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 10-Мрт-25 22:23 
На удивление один из самых быстрых языков - и даже ГЦ не мешает ему в этом
По многим бенчмаркам в топе находится

https://github.com/attractivechaos/plb2 - C, Rust и D практически похожую производительность показывают

https://github.com/jinyus/related_post_gen - а тут вообще всех уделал

Что творится?!


"Выпуск компилятора языка D 2.110"
Отправлено _ , 11-Мрт-25 04:11 
>Что творится?!

Обычные овнотесты. К реальности не имеющие...


"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 11-Мрт-25 11:03 
А что имеет к реальности отношение?)

"Выпуск компилятора языка D 2.110"
Отправлено 12yoexpert , 11-Мрт-25 10:48 
по первой ссылке чувак рассуждает о выносе переменных из внутренних циклов во внешние для эфемерной оптимизации этих вложенных циклов, но при этом не знает, в каком порядке эти циклы должны быть друг в друга вложены. дальше можно не читатьч, человек понятия не имеет об оптимизации кода

"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 11-Мрт-25 11:03 
Там это в целом неважно ведь
все делают одинаковый алгоритм, а уж оптимальный он сам или нет..

"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 11-Мрт-25 07:49 
Автор допустил ровно одну маленькую ошибку — сделал сборщик мусора встроенным по умолчанию.
А так это такой C++ на стероидах с человеческим синтаксисом классического сисярпа.

"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 11-Мрт-25 09:06 
что именно там человеческого, хочешь так сделай, хочешь сяк, заранее заложили бомбу под код-стайл

"Выпуск компилятора языка D 2.110"
Отправлено _kp , 11-Мрт-25 12:18 
> сборщик мусора встроенным по
> умолчанию.

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

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



"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 11-Мрт-25 16:16 
> Вы думаете, если дергать освобождение памяти  вручную на каждый чих, то будет быстрее? ;)

Что значит "каждый чих"? А с GC не на каждый чих? Ничего что с GC деаллокаций меньше не станет, их будет ровно столько же, никакого выигрыша от батчевания не происходит, а оверхед на хождение по графам всегда появляется, и всегда больше потребление памяти, и всегда просадки производительности в непредсказуемые моменты, как бы там не изголялись чтобы избежать stop-the-world. Поэтому да, блин, будет быстрее.

Скорее наоборот, есть специфические кейсы где деаллокацию выгодно отложить. Но точно не до хрен знает когда как с GC, а до заранее известного момента.


"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 11-Мрт-25 19:35 
Там же в критических секциях сборку мусора можно запретить.

"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 12-Мрт-25 00:32 
Мне нравится когда люди не шарят, но "мнение имеют" =)
В Ди понятно когда сборка работает в отличие от Джавы

"Выпуск компилятора языка D 2.110"
Отправлено abu , 11-Мрт-25 09:47 
D нравится, правда, в его дебри сильно не лезу. Пишу на нем мелкие тулзы и игровой пет-проект.

"Выпуск компилятора языка D 2.110"
Отправлено Ганс Грубер , 11-Мрт-25 13:06 
Жаль, нет гуя.

"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 11-Мрт-25 15:41 
Qt-биндинги есть.

"Выпуск компилятора языка D 2.110"
Отправлено Ганс Грубер , 11-Мрт-25 18:48 
Биндинги это фигня. Да и если я правильно понимаю, для Qt6 их нет, а он вышел 5 лет назад.

"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 11-Мрт-25 19:29 
D может работать с обычными классами C++. Я так понял, что кроме шаблонов, Qt moc. Поэтому, наверное, можно использовать C++ную GUI-библиотеку не на шаблонах. FLTK ?

"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 11-Мрт-25 19:48 
> Биндинги это фигня.

А что значит с гуем, но не биндинги? Пару примеров можно?


"Выпуск компилятора языка D 2.110"
Отправлено Ганс Грубер , 11-Мрт-25 20:23 
Пример - это как Qt, но изначально написанный на D и сдизайненный под него, а не под "дергаем через костыли крестовый код".

"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 12-Мрт-25 00:07 
Есть несколько нативных, но не все сейчас продолжают поддерживаться.
Из известных и более менее живых - это dlangui

Ксати создатель и текущий мейнтенер русскоязычные


"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 12-Мрт-25 00:02 
ГУЁв полно
Qt, GTK, FLTK, Tcl/Tk, Imgui/nanogui
Нативные некоторые тоже)

"Выпуск компилятора языка D 2.110"
Отправлено Вова , 12-Мрт-25 01:17 
Гуёв полно, ты просто не в теме. Но у Ди нет такого ГУЯ, который был бы написан на самом Ди с учётом всех его возможностей - ООП, шаблоны, миксины, CTFE и т.п. В любом случае, если тебе нужен был бы ГУЙ, ты его давно нашёл бы. А ныть по форумам - ну такое себе.

"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 11-Мрт-25 15:39 
Чего нет у D - армии фанатов в соцсетях и рекомендаций мануала по D вместе с чулками.

Потому и не взлетел.


"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 11-Мрт-25 16:07 
А еще у него нет внятного позиционирования.
Типа замена С++. Или С. Нипанятна.
В нем есть GC. Но можно отключить. Правда придется разбираться с кучей не очень явных проблем.

Он вроде безопасный... но есть SafeD и Better C.
Который из них лучше? Зачему нужно два? Неужели нельзя сделать один раз, но хорошо?
Почему BetterС если D замена С++.. никто не знает.

Вот поэтому и не взлетел)



"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 11-Мрт-25 16:38 
Сборку мусора отключить нельзя, её можно только приостановить

Better C - это про написание dll на D которые потом можно подключить в C с минимальными проблеммами.
SafeD - это набор "рекомендаций" для безопасно разработки.


"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 11-Мрт-25 16:53 
> SafeD - это набор "рекомендаций" для безопасно разработки.

Я бы не назвал это просто рекомендациями.
Как минимум там добавили @safe и @trusted.
Плюс лайфтамы в спецификацию.



"Выпуск компилятора языка D 2.110"
Отправлено Ганс Грубер , 11-Мрт-25 18:21 
Better C это про замену сишки, подмножество ди с фичами, которые не требуют его рантайма.

"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 11-Мрт-25 19:31 
SafeD и Better C - это, как бы, противоположности в смысле безопасности.

"Выпуск компилятора языка D 2.110"
Отправлено Facemaker , 11-Мрт-25 21:41 
>SafeD и Better C - это, как бы, противоположности в смысле безопасности

Короче, никто ничего не понимает — запутали, намудрили... А программисты люди простые, им подавай ясность и определённость. Например, если целый тип беззнаковый и 16-битный, то и называться он должен 'u16'. А не 'ushort'. Куда шорт, относительно чего шорт...


"Выпуск компилятора языка D 2.110"
Отправлено анончик , 11-Мрт-25 21:49 
А если на архитектуре он не 16битный? Плодить u18, u6, u36?

"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 12-Мрт-25 00:13 
Это где вы видели процессор с разрядностью не кратной байту, разработанный за последние лет 40 ? Байтовая организация памями уже давно, как само собой.

"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 12-Мрт-25 17:47 
То это уже не про D, где ushort подразумевает 16 бит.

По идее, для ясности можно использовать классический uint16_t из std.stdint[1], но современная запись поприятнее была бы (u16: Go, Zig, Rust).

[1] https://dlang.org/phobos/std_stdint.html


"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 12-Мрт-25 18:40 
alias u16 = ushort;

:)


"Выпуск компилятора языка D 2.110"
Отправлено Соль земли , 11-Мрт-25 16:35 
На нём написан неплохой эмульятор терминала Tilix.

"Выпуск компилятора языка D 2.110"
Отправлено Facemaker , 11-Мрт-25 19:51 
>эмулятор терминала Tilix

Да, отличная программа, пользуюсь постоянно.


"Выпуск компилятора языка D 2.110"
Отправлено Анониссимус , 12-Мрт-25 01:05 
Тут писали анонимы про D, что там баги годами не чинятся, и вообще -- тухляк и бесперспективняк. А под этой новостью, смотрю, многие положительно отзываются. Что скажете в защиту D?

"Выпуск компилятора языка D 2.110"
Отправлено Вова , 12-Мрт-25 01:21 
Ди не надо защищать, на Ди надо писать :) Забыть весь мусор про Раст и плотно начать изучать Ди (а там ДО___Я чего надо учить!). Там возможностей - море, неосиляторы подавятся на первой же странице.

"Выпуск компилятора языка D 2.110"
Отправлено Анониссимус , 12-Мрт-25 07:49 
> Ди не надо защищать, на Ди надо писать :) Забыть весь мусор
> про Раст и плотно начать изучать Ди (а там ДО___Я чего
> надо учить!). Там возможностей - море, неосиляторы подавятся на первой же
> странице.

Короче, я понял: баги не чинят, тухляк, но писать надо, а ещё хрен выучишь его, сложный собака! :D


"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 12-Мрт-25 11:20 
> Ди не надо защищать, на Ди надо писать :) Забыть весь мусор
> про Раст и плотно начать изучать Ди (а там ДО___Я чего
> надо учить!). Там возможностей - море, неосиляторы подавятся на первой же
> странице.

Сборщик мусора ведь ставит D примерно против Go, а не Rust?

D привлекает доведёнными до ума compile-time возможностями по сравнению с C и C++.
- творимое на шаблонах в C++ выглядит героически, но это лишь борьба с невыразительностью языка
- если бы C++ мог просто взять и выполнить любую функцию на этапе компиляции, у него бы отвалилась задни... обратная совместимость!
- если бы он мог просто взять и отрефлексировать содержимое enum'а (отдать строковый литерал), то страшно представить, что у него отвалилось бы
- Страуструп был сильно против даже static if, он такую штуку в языке видеть не хотел ("fundamentally flawed, and its adoption would be a disaster for the language"[1])
- плюсовые шаблоны не во всём лучше сишных макросов (нет простых решений, чтобы увидеть какое-нибудь промежуточное представление, как после подстановки макросов через gcc -E)
- а сишный препроцессор изначально жертвовал возможностями в пользу простоты, его предшественник из 60-х был сильнее (PL/I)
- compile-time вычисления и рефлексия не очень модны. "Явное лучше неявного" -> иди кодогенерируй на питоне; "безопасное лучше небезопасного" -> иди AST-макросы в Rust пиши, а string mixin в Dlang сжечь запретить гроб гроб кладбище CVE

[1] https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n36...


"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 12-Мрт-25 11:58 
Вообще, там полно умных идей. Иметь возможность "нарезать" массивы и иметь алиас для последнего элемента массива полезно.
arr[-1] - питон (фича - не позднее 1995)
arr(end) - матлаб 5 (1996)
arr[$-1] - ди

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


"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 12-Мрт-25 12:54 
D скорее в корзине с C++/Rust, чем с Go

"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 12-Мрт-25 13:17 
> D скорее в корзине с C++/Rust, чем с Go

И как эту мысль увязать с наличием сборщика мусора как ключевого компонента языка (не будем про betterC-режим)?

D близок к C++ синтаксисом и совместимостью с C. Но сборщик мусора! Он означает примерно то же родство, что у Java и C++: Java вытеснила C++ в определённой сфере (а потом появился C#, который учился на ошибках Java, потом гугл под свои нужды Go сделал).


"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 12-Мрт-25 13:27 
Увязать можно так
В Ди можно использовать сырые ссылки
А сборщик мусора там работает иначе чем в С# и Java
Он не вызывается когда ему вздумается
Поэтому управление памятью там более контролируемое (+native)
В каких-то кусках можно его отключать и включать позже (и это я не про betterC )

"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 12-Мрт-25 13:38 
В Go для обуздания GC предлагают arena-аллокаторы, unsafe есть.

"Выпуск компилятора языка D 2.110"
Отправлено Аноним , 12-Мрт-25 12:49 
Баги чинятся
Активная разработка и коммунити
Со всего мира в Дискорд и есть русскоясичный чат в телеге

А анонимусов лучше не слушать а попробовать самому


"Выпуск компилятора языка D 2.110"
Отправлено Алконим , 12-Мрт-25 15:25 
А почему не раст? Можно было бы написать на раст и использовать синтаксис и компиляцию раста.