
Denis
23.02.2018
15:14:20
Это как раз то, кмк, что нужно банку обычно

elias
23.02.2018
15:15:37
привет. а с чем хорошо у D-библиотек?

Denis
23.02.2018
15:16:36
Вообще везде всё плохо, не переживайте:
Core was generated by `/home/denizzz/.TelegramDesktop/Telegram'.
Program terminated with signal SIGILL, Illegal instruction.
bt#0 0x0000000001c4a5e1 in ?? ()
кто бы денег влил в язык

Google

Eto
23.02.2018
15:20:45
Или это опять локальная шутка?

Denis
23.02.2018
15:21:52
libc6 вроде стабильный стоит, даже хз что это
скайп линуксовый в январе сломали в начале, только недавно спустя 3 версии починили. зато тоже модно-молодежно обновляется сам. новые глюки приезжают прямо с доставкой бесплатно без смс.

Pavel
23.02.2018
15:23:56
Буду знать к кому предъявлять претензии если что ?

Valeriy
23.02.2018
15:24:49
У нас D будет только в нашем отделе.
Ито мы его только внедряем.
Я вот, пару недель как начал его учить.
Бэк на C# написан

Denis
23.02.2018
15:25:37
а в тинькове - хаскель

Valeriy
23.02.2018
15:26:53

Eto
23.02.2018
15:31:04

Denis
23.02.2018
15:32:41
Ну так народ со скайпа и повалил

Google

Eto
23.02.2018
15:34:45
И я бы свалил, если бы по работе не надо было использовать.

Pavel
23.02.2018
16:09:06

Eto
23.02.2018
16:09:37
На самом деле иногда надо...

Denis
23.02.2018
16:31:38

Eto
23.02.2018
16:35:27
Вообще, на соседних проектах народ Telegram уже использует.

Pavel
23.02.2018
16:47:25
Что лучше - выделять статически 255 байт на стеке или динамически по 2-3 требуемых байта?

Oleg
23.02.2018
17:06:20
Хотя сборщик может не делать системных вызовов и из пула внутреннего отдавать, но мы уже определились, что сборщик не очень))

Pavel
23.02.2018
17:07:56
Да, надеяться на него как-то не очень.

Evgeny
23.02.2018
17:09:19

Pavel
23.02.2018
17:09:43
Так а какой размер стека у функции? От чего это зависит вообще? Это быстро работает?

Oleg
23.02.2018
17:10:03
Чего бы ему быстро не работать?

Eto
23.02.2018
17:10:31

Evgeny
23.02.2018
17:10:33
аллокация на стеке очень быстрая. если можно на стеке, то лучше на стеке
точнее аллокация на стеке - вообще не занимает времени :)

Pavel
23.02.2018
17:11:36
Ну просто передвинуть ESP как я понимаю

Evgeny
23.02.2018
17:12:26
ага
просто передвинуть его дальше, чем без аллокации :)

Eto
23.02.2018
17:12:41

Google

Denis
23.02.2018
17:41:13
> Хм. Серьёзно? Это главная причина, что java тормозит?
Нет конечно, сарказм прост.

Владислав
23.02.2018
17:43:12

Denis
23.02.2018
18:02:51
Серьёзный вопрос: http://vibed.org/api/vibe.core.driver/FileDescriptorEvent.Trigger
Раньше во всяких select(2) был ещё error - а сейчас куда оно делось?

Eto
23.02.2018
21:33:01
https://mystudentvoices.com/a-look-into-nasas-coding-philosophy-b747957c7f8a

Pavel
23.02.2018
23:19:17
https://forum.dlang.org/post/pkxvppurjjeqwuceywlz@forum.dlang.org что это за магия??

Denis
23.02.2018
23:19:57
О чем речь?

Pavel
23.02.2018
23:21:30
enum CT(alias S) = S;
assert(condition, CT!("Text " ~ Double!"+" ~ ___FUNCTION__)); // Must be evaluated at CT no matter what
Я пытаюсь сконкатенировать заранее заданные строки в CT
Для этого над функцией я написал @nogc
Без этого шаблона он ругается
cannot use operator ~ in @nogc function
НО с этим шаблоном нормально компилирует ))

Denis
23.02.2018
23:23:00
дык потому что ~ работает как выделить память под новую строку (или удлинить исходную) и сложить туда всё

Pavel
23.02.2018
23:23:18

Denis
23.02.2018
23:23:32
Надо глянуть что там за шаблон

Pavel
23.02.2018
23:23:49
То есть компилятор думает что GC, а засунули в какой-то непонятный alias S = S и компилятор уже все тихо пропускает
enum CT(alias S) = S; так вот же шаблон

Denis
23.02.2018
23:24:16
ну я про код его

Pavel
23.02.2018
23:24:37
Аа
Так он сам не есть его код?
Я думал что CT это парень придумал просто название

Google

Denis
23.02.2018
23:25:33

Pavel
23.02.2018
23:25:41
Ну да, я прав
enum MYCT(alias S) = S; вот такое работает так же

Denis
23.02.2018
23:26:51
записть непонятная, если шаблон такой то такое бывает, в С++ часто используется
но при чём тут enum
аа, enum означает что вычислить надо в CT
https://ru.wikipedia.org/wiki/%D0%A1%D1%82%D1%80%D0%B0%D0%BD%D0%BD%D0%BE_%D1%80%D0%B5%D0%BA%D1%83%D1%80%D1%81%D0%B8%D0%B2%D0%BD%D1%8B%D0%B9_%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD
вот оно вроде
только не методы добавляются а строка вычисляется "назад"

Pavel
23.02.2018
23:28:53
хех
ну так-то, конкатенация заранее известных строк и так вычисляется в CT
Но @nogc почему-то об этом не догадывается

Denis
23.02.2018
23:31:16
возможно потом enum уберут и оно начнёт вычислять только то что знает а остальное потом в рантайме?
А enum щас для отладки

Pavel
23.02.2018
23:32:02
Теперь мне придется все конкатенации внутри функции обернуть в этот костыль. Отлично млять.

Denis
23.02.2018
23:32:43
да ладно костыль! красиво же

Pavel
23.02.2018
23:32:59
да ну
Расписной лакированный костыль, да

Evgeny
24.02.2018
06:33:39
enum CT(alias S) = S; форсирует вычисление значения идентификатора S в compile time

Google

Evgeny
24.02.2018
06:40:56

Pavel
24.02.2018
10:55:34

Denis
24.02.2018
10:58:47
Кстати, enum и танцы с CT! ещё может быть для конкатенации не строк,а чего-то другого.

Evgeny
25.02.2018
05:55:06
Тут никакой магии нет. Просто конкатенация даже известных в CT строк не обязана быть выполнена в CT.
"Магический" шаблон создает enum равный переданному выражению. Этот enum обязывает компилятор выполнить выражение в CT.
Можно иначе форсировать компилятор делать конкатенацию CT. Например так:
https://run.dlang.io/is/DchNJ8
фактически
auto s = CT!(expression);
полность эквивалентно
enum _hiddenEnum = expression;
auto s = _hiddenEnum;
Я обычно в подобных случаях сокращаю до
enum s = expression;
и нужды в волшебных шаблонах не возникает.

Igor
25.02.2018
06:45:16
прикольно, хром и фаерфокс показывают разный набор кнопок на run.dlang.io

Denis
25.02.2018
07:52:16
> Этот enum обязывает компилятор выполнить выражение в CT.
enum всегда обязывает этому, не только такой. Тут именно в рекурсивности шаблона дело.
> обычно в подобных случаях
Дык об этом и разговор что все так делают.

Evgeny
25.02.2018
08:52:52

Denis
25.02.2018
09:27:55
Да да, ок, нету.

Oleg
25.02.2018
14:07:09
почему dub НЕ ХОЧЕТ уметь выдавать настройки сборки для targetType "none"?
https://github.com/dlang/dub/blob/master/source/dub/project.d#L846
в моём случае это портит всю малину: один большой dub.sdl на связанные проекты содержит targetType "none" для корня, все программы как subPackages объявлены
workspace-d из-за этой строки не даёт автокомплит и переход на объявления
кто-нибудь сталкивался с подобным вопросом? поиск по issues и SO ничего не дал...
@ahdenchik нет идей?

Denis
25.02.2018
14:21:06
а зачем тебе none там? поставь source library например
даб ведь в этом случае всё равно автодетект пытается делать, т.е. какой-то тип ему задаёт
так что ничего сломаться не должно если угадаешь с типом

Evgeny
25.02.2018
14:21:56
он захочет сырцы тогда
придется городить фейк

Denis
25.02.2018
14:22:19
ну и пусть хочет - Олегу не нужно главный пакет собирать же, как я понял