@dlangru

Страница 393 из 719
Pavel
29.01.2018
18:55:15
без gc

:)

Maxim
29.01.2018
18:55:25
на BetterC хоть модули ядра пили неотличимые от сишных, только заголовочные файлы в ди переведи)

Oleg
29.01.2018
18:55:51
без gc
Для меня GC эффективен) мне быстро пишется с ним

Google
Oleg
29.01.2018
18:56:42
Быстро написал -- задача решена, дальше уже нужно или нет оптимизировать это другой разговор

А betterC по мне как раз для более нестандартных и низкоуровневых вещей

Evgeny
29.01.2018
18:59:28
Для меня GC эффективен) мне быстро пишется с ним
пишется быстро, а работает медленно, потому что GC не ахти

Maxim
29.01.2018
18:59:45
да нормально вроде работает)

если в цикле foo~=bar не делать)

Evgeny
29.01.2018
19:00:05
Oleg
29.01.2018
19:00:19
медленно
Если его активно использовать

Хотя хз, в любом случае быстрее питона))

Evgeny
29.01.2018
19:00:55
Если его активно использовать
ну вся прелесть гц, чтобы особо не думать об этом

Evgeny
29.01.2018
19:01:13
Pavel
29.01.2018
19:01:27
Нужен string без gc как строительный кирпичик

Oleg
29.01.2018
19:01:38
но медленнее жабы
Кстати было бы круто на тесты посмотреть

Google
Maxim
29.01.2018
19:01:49
на мой взгляд, большинство разговоров про медленность GC в D — это что-то из разряда религиозных или мировоззренчиских споров

Evgeny
29.01.2018
19:01:55
тесты ГЦ?

Evgeny
29.01.2018
19:02:14
кто-то вроде делал. Павел вроде

Oleg
29.01.2018
19:02:31
тесты ГЦ?
Сравнение именно гц в разных языках

Evgeny
29.01.2018
19:02:33
я про тесты ГЦ

Oleg
29.01.2018
19:02:51
Где-то я проглядел

Ну всмысле не читал

Pavel
29.01.2018
19:03:09
Могу рассказать инсайд из моей мифической недописанной статьи, как я делал бенчмарк GC ?

Pavel
29.01.2018
19:03:47
Its done when its done

Evgeny
29.01.2018
19:03:51
Oleg
29.01.2018
19:04:30
Было бы неплохо понимать когда, на каких задачах gc перестаёт быть тортом

Evgeny
29.01.2018
19:05:24
Было бы неплохо понимать когда, на каких задачах gc перестаёт быть тортом
при большом кол-ве объектов, многопоточность опять же.

Pavel
29.01.2018
19:05:37
Опыт эпичный. У меня был написан http сервер на который валилось около 10000 запросов в секунду. По таймеру каждые 0.1 секунды я выводил в консоль текущую метку времени. Когда сервер висел под нагрузкой, я в консоли постоянно жал enter и отбивал пустые строки. И заметил, что периодически мой сервак виснет где-то на 1-2 секунды, и в это время набирается с десяток пустых строк в консоли.

Поскольку соревнование где надо дать ответ за 0.1 миллисекунды чтобы попасть в топ, то естественно для меня неприемлемо когда все виснет на 1000000 миллисекунд.

Ну и памяти там выжиралось нормально, 500мб-1Гб туда-сюда сливалось, я делал принты тоже от GC

> когда все виснет на 1000000 миллисекунд. Тут неправ, я про 1000 миллисекунд конечно же

qwerty
29.01.2018
21:17:45
правильно понимаю, что betterC либа будет работать в приложении, которое собирается без betterC флага?

Pavel
29.01.2018
21:54:31
Да

Google
?
30.01.2018
09:20:09
Книгу лучше запилите) адександреску кончается, скоро читать нечего будет)

Nikita
30.01.2018
10:25:12
Всем привет, потихоньку учу D. Если что, буду всякие нубские вопросы задавать. С системными языками опыта нет, до этого в продакшене писал только на Ruby ?‍♂️

Mike
30.01.2018
10:42:21
Книгу лучше запилите) адександреску кончается, скоро читать нечего будет)
ИМХО не книгу надо, а тур дополнить... прям так дополнить, чтобы он вообще на ВСЕ вопросы отвечал... ? надо как-нить засесть на недельку и снова по нему пройтись, покаписывать где какие вопросы, где про что вообще не упоминается, потом найти на это ответы и «дописать» ? но эт пипец задача... круче чем развалить вторую звезду смерти ?

Pavel
30.01.2018
11:09:43
Если дополнить тур всеми вопросами, получится такая книжища

Stepanos
30.01.2018
11:18:14
тур допиливать + у нас же на GitHub есть набор материалов, их дополнять и надо

Stepanos
30.01.2018
11:30:28
https://github.com/deviator/duseful

Nikita
30.01.2018
11:31:13
Pavel
30.01.2018
11:50:35
Если воду выжать — нормально всё получится ? trust me
А как же без воды то? Тур без воды это официальная документация https://dlang.org/spec/spec.html Но хочется именно с философскими рассуждениями, почему вводили тот или иной атрибут, примеры когда он полезен, практики.

Stepanos
30.01.2018
11:50:54
++

Mike
30.01.2018
12:32:25
А как же без воды то? Тур без воды это официальная документация https://dlang.org/spec/spec.html Но хочется именно с философскими рассуждениями, почему вводили тот или иной атрибут, примеры когда он полезен, практики.
Ты не понял... ? под «водой» я подразумеваю всякие междометия, фразеологизмы, истории из жизни и прочие хрени, которые в технической документации только напрягают читателя ? нужен справочник, структурированный как самоучитель ? Но вот главная дилемма — как его составить так чтобы там была часть для тех кто не знаком с С/С++/Явой/ЯваСкриптом/т.п., но при этом чтобы она своим присутствием не напрягала тех кому совершенно не интересна ?

Pavel
30.01.2018
12:34:27
> истории из жизни и прочие хрени, которые в технической документации только напрягают читателя Не знаю что ты под этим понимаешь, но часто я как раз бы хотел почитать истории из жизни, когда например человек активно использует у себя in/inout параметры и как они ему помогают.

Pavel
30.01.2018
12:35:45
Или про тот же избитый betterC, вокруг него есть непонимание тоже. Он есть но зачем он нужен не всем ясно. Вчера я прочитал тему на форуме про него, что оказывается его даже сами разработчики не рекомендуют использовать кроме как в случаях постепенного переписывания Си кода на D

Maxim
30.01.2018
12:37:30
кстати, единственное применение in параметрам, которое я придумал, — это замена сишного const в параметрах функций при трансляции заголовочных файлов в D

По поводу BetterC, кстати, Уолтер же до последнего прятал его и не сознавался, что он существует. А теперь для большой части целевой аудитории (аля системные и близкие к железу программисты) BetterC может оказаться более интересным, чем D как таковой.

и это может внести раскол в и без того небольшое сообщество)

Google
Pavel
30.01.2018
12:54:52
А где тут раскол? betterC это все еще D хоть и урезанный

Если на него будут портировать старые Си поделки, то там дальше уже недалеко и рантайм подключить

А кто-нибудь знает где можно посмотреть реализацию string? Откуда оно вообще взялось? Это часть рантайма или фобоса? Что-то не найду.

Нашел alias string = immutable(char)[]; получается все операции со строкой это на самом деле операции с массивом. А вот где их найти?..

Pavel
30.01.2018
22:55:41
Нее, это там какие-то очень высокоуровневые функции

Oleg
30.01.2018
22:55:43
Там есть некоторые импорты

Pavel
30.01.2018
22:56:06
Например в рантайме objects.d я нашел методы dup, idup

Admin
ERROR: S client not available

Pavel
30.01.2018
22:56:22
А вот .ptr получение указателя на массив что-то не нашел

Oleg
30.01.2018
22:56:45
А вот .ptr получение указателя на массив что-то не нашел
Скорее всего это синтаксический сахар

Pavel
30.01.2018
22:56:58
То есть только компилятор его понимает?

Oleg
30.01.2018
22:57:26
Ну типа того

Встроенное свойство

Pavel
30.01.2018
22:57:58
Впрочем я уже экспериментально выяснил что string более-менее сносно работает в betterC, если не пытаться делать ~ конкатенацию. Но и насчет нее пишут что можно избавиться теоретически https://forum.dlang.org/post/mailman.2758.1517183623.9493.digitalmars-d-bugs@puremagic.com

Pavel
30.01.2018
23:00:01
Да такого кунг-фу мне еще далеко :\

Evgeny
31.01.2018
07:07:16
Да такого кунг-фу мне еще далеко :\
Обычно в подобных случаях возникает ошибка линковки. Для ее разрешения нужно самому дописать нехватающие функции. То есть самому сделать функции конкатенации.

названия выглядят примерно как d_array_alloc или что-то в этом роде

Google
qwerty
31.01.2018
07:56:35
так у betterC вообще нет никакой std?

Oleg
31.01.2018
08:14:01
так у betterC вообще нет никакой std?
Часть std может работать в betterC

Всё что ct

qwerty
31.01.2018
08:14:21
понятно

Pavel
31.01.2018
11:10:35
так у betterC вообще нет никакой std?
Хоть на форуме там кто-то пишет что большая часть std совместима с betterC, на деле мне еще не удалось найти ни одного модуля который был бы совместим. Ну разве что какие-нибудь трейты ;)

Даже nogc контейнерный массив не заработал, так как там кидаются исключения.

Pavel
31.01.2018
11:18:54
Да, там все хитро, может быть часть работает.

Mike
31.01.2018
11:34:35
Даже nogc контейнерный массив не заработал, так как там кидаются исключения.
А как вообще реализована тема исключений? ? я думал try/catch/throw это обёртка над goto......

Pavel
31.01.2018
11:35:29
Как минимум Exception это класс, что тянет за собой рантайм и GC

Бросить исключение можно через throw new Exception

Evgeny
31.01.2018
11:36:00
GC не обязательно

Pavel
31.01.2018
11:36:12
Ну может можно как-то это аллокатить на стеке, но кто будет так изврщзаться в исключениях

Которые и так скользкое место )

Evgeny
31.01.2018
11:36:32
Exception может быть аллоцирован в куче, а в catch его можно удалять

на самом деле есть темка от Брайта, где он предлагает в случае если эксепшн не утекает налево, то аллоцировать его в куче и автоматически удалять в catch

Evgeny
31.01.2018
11:38:28
точнее всегда создавать в куче, а если в catch он утекает, то копировать его в GC

Я думал он уже сделал это
Эм, я не видел такую инфу. Есть пруф?

Mike
31.01.2018
11:39:19
Короче печаль.........

Evgeny
31.01.2018
11:39:46
а так годно получается. если в catch эксепшн никуда не передавать, то получается вполне себе nogc

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