@dlangru

Страница 364 из 719
Evgeny
06.01.2018
08:03:48
Но что дальше-то делать?

Dmitry
06.01.2018
08:03:58
понять и простить :)

Evgeny
06.01.2018
08:04:01
Я считаю надо впилить в фобос нормальный RC

Dmitry
06.01.2018
08:04:07
использовать там, где это не мешает

Google
Evgeny
06.01.2018
08:05:18
использовать там, где это не мешает
Нужны нормальные средства для ручного управления памятью. Аллокаторы не самое важное, в конце-концов есть старый добрый malloc

Dmitry
06.01.2018
08:05:37
а чего именно не хватает?

Evgeny
06.01.2018
08:06:14
RC-контейнеров

И обещаной поддержки RC на уровне компилятора для классов

александреска даже DIP сделал

а потом видим на форуме по сто страниц обсуждения какого-нибудь сранного элвис-оператора

Dmitry
06.01.2018
08:08:37
А замыкания тоже RC делать?

Evgeny
06.01.2018
08:09:02
Замыкания отдельная попоболь, но ее можно пережить

Dmitry
06.01.2018
08:09:10
Как?

Если замыкания GC ловит, то все, весь твой RC перестает нормально работать

Evgeny
06.01.2018
08:09:35
Отдельным типом-структурой

А почему RC перестает работать?

В конце концов я могу вместо традиционных делегатов использовать самописный функтор, а-ля лямбды в C++11

Google
Dmitry
06.01.2018
08:11:24
Ну то есть половину фобоса к свиньям, вместо удобных замыканий говно из С++

Evgeny
06.01.2018
08:11:26
кроме того не все замыкания требуют GC

Пусть остается для любителей правильных инструментов.

Dmitry
06.01.2018
08:12:49
Если оставить, начнут смешивать GC и RC.

Будет жопа

Короче, чтоб RC нормально работал, надо весь язык с нуля переделывать

И получишь очердной С++

Evgeny
06.01.2018
08:13:31
Кому надо пусть смешивает, кому не надо пусть сидять на GC

И получишь очердной С++
Еще раз, GC - это мягко говоря не самое большое отличие D от С++

Dmitry
06.01.2018
08:14:51
Если конструктивно, можно запилить действительно библиотеку RC контейнеров в нынешнем языке. И в сочетании с @nogc ее использовать, кому надо.

Evgeny
06.01.2018
08:15:02
Я об этом и говорю

Dmitry
06.01.2018
08:15:10
А на уровне языка и классов RC вставлять - херня выйдет

Evgeny
06.01.2018
08:15:44
На уровне языка была обещана поддержка RC для классов

там хороший DIP, который и нашим и вашим

Dmitry
06.01.2018
08:16:04
Мне кажется, они ее не продумали до конца. Потому и не сделали

Начнут делать - скажут, опа.

Evgeny
06.01.2018
08:16:21
Я думаю это просто сложная задача

Dmitry
06.01.2018
08:16:41
Уолтер еще за безопасность топит все время

Evgeny
06.01.2018
08:16:49
Без поддержки компилятора безопасный RC не сделаешь

Google
Dmitry
06.01.2018
08:17:00
А чтобы ее хорошо обеспечить, это надо Раст делать из языка

Ибо у нас же свободно указатели передаются

Evgeny
06.01.2018
08:18:15
Ибо у нас же свободно указатели передаются
Поэтому и нужна поддержка компилятора для классов

Dmitry
06.01.2018
08:18:29
А для не-классов?

слайсы те же

сейчас слайс это два слова. с RC надо это менять, делать их толще и тормознее

Evgeny
06.01.2018
08:19:24
Ну тут ничего уже не сделаешь

сейчас слайс это два слова. с RC надо это менять, делать их толще и тормознее
Тормознутость RC - это такая же байка как и тормознутость GC

Dmitry
06.01.2018
08:20:15
ну сейчас передача слайса почти бесплатна

а будет чуть более платна

Evgeny
06.01.2018
08:20:24
Аж целая операция инкремента и только при копировании. Офигеть тормоза для современных процов.

Dmitry
06.01.2018
08:20:38
а если еще про многопоточность вспомнить

Dmitry
06.01.2018
08:21:08
тебе RC нужен однопоточный или безопасный?

И на каком уровне это должно решаться / управляться?

Для тех же классов

Evgeny
06.01.2018
08:21:36
ну сейчас передача слайса почти бесплатна
Зато потом сборка мусора не бесплатна. Кроме того компилятор во многих случаях может выпиливать инкремент/декремент там где можно

а если еще про многопоточность вспомнить
Потокобезопасные RC редко нужны. Отдельный тип или при помощи shared. Вместо обычного инкреиента atomicOp!"+="

Передача голых нестатических указателей между потоками - зло

аллокация в одном потоке, деаллокация в другом - это говнокод, которого нужно избегать всеми силами

Dmitry
06.01.2018
08:25:57
да. Но с GC таких вопросов даже не возникает. А с RC сразу большой простор для раздумий и ошибок.

Google
Evgeny
06.01.2018
08:26:31
Как ты выразилса "правда жизни" показывает, что еще как возникает.

Dmitry
06.01.2018
08:27:16
во всяком случае безопасность легко обеспечивается

Evgeny
06.01.2018
08:27:42
Dmitry
06.01.2018
08:27:56
тут Уолтер не согласится

Evgeny
06.01.2018
08:28:10
тут Уолтер не согласится
Думаю, даже он согласится

он в отличие от тебя не считает это нормальным

А так D годится только для домашних поделок.

вечный хобби-язык

Dmitry
06.01.2018
08:28:53
да просто не все в мире уеб-программисты

не всем нужны долгоиграющие сервисы

Admin
ERROR: S client not available

Dmitry
06.01.2018
08:29:13
а для многих задач Ди и сейчас ок

он в отличие от тебя не считает это нормальным
Он с этим мирится уже 15 лет или сколько там.

Его понимание безопасности - это SafeD. Лишь бы проездов по памяти и обращений к освобожденной не было

Evgeny
06.01.2018
08:38:56
да просто не все в мире уеб-программисты
да какой там в жопу уэб? У меня бакенд навороченный, а веб - маленькое окошко наружу.

А по-твоему теперь и для сервера онлайн игры D - "неправильный инструмент"

Dmitry
06.01.2018
08:40:36
Если на вайбе - то да, скорее всего неправильный

Evgeny
06.01.2018
08:41:47
Если на вайбе - то да, скорее всего неправильный
то есть уже GC нормальный, а вайбд плохой? Кстати, течет как раз не веб-сервис. А бекенд в котором те самые тысячи файберов

веб-сервис общается с бэкендом через RPC

Dmitry
06.01.2018
08:42:38
Нет, вайб плохой как раз в том числе из-за плохого GC

Google
Igor
06.01.2018
08:43:15
а есть же RC в std.typecons - они плохие?

Dmitry
06.01.2018
08:43:16
Если б не GC, то и вайб может и сгодился бы

Evgeny
06.01.2018
08:43:17
Нет, вайб плохой как раз в том числе из-за плохого GC
Так я тебя не понял. Ты говоришь, что D плох для долгоживущих задач. А сервер онлайн игры именно такая задача.

Dmitry
06.01.2018
08:43:41
Не D

Evgeny
06.01.2018
08:43:45
При чем тут вайбд? Вот буду писать на голых сокетах

Dmitry
06.01.2018
08:43:51
А фреймворки, использующие GC

Пиши на сокетах, следи за памятью, будет щастье

Evgeny
06.01.2018
08:45:15
Следи за памятью - это уже даже не по плюсовому, где активно используются умные указатели.

Dmitry
06.01.2018
08:45:46
Те же самые умные указатели у нас есть же

Соединить их с аллокаторами, и ок

Evgeny
06.01.2018
08:46:16
?
Он не работает только с PODами, то бишь структурами и простыми типами

И что мне теперь отказаться от встроенных массивов?

Dmitry
06.01.2018
08:47:03
да

аллоцировать их аллокаторами

слайсы можно использовать

Evgeny
06.01.2018
08:47:28
Да накой мне эти аллокаторы

Dmitry
06.01.2018
08:47:44
чтоб не в общей GC куче жили

Evgeny
06.01.2018
08:47:44
слайсы можно, но осторожно

безопасность к чертям собачьим

Dmitry
06.01.2018
08:48:38
ну уж не хуже С++ и итераторов

Evgeny
06.01.2018
08:48:58
причем здесь итераторы?

Страница 364 из 719