@dlangru

Страница 392 из 719
Maxim
29.01.2018
07:19:04
странно

Igor
29.01.2018
07:19:15
Так должно быть

А с оберткой logger в safe придется еще оформить передачу имени функции, строки и т.д

Google
Maxim
29.01.2018
07:29:31
хм, и правда в дебаг билдах из pure можно вызывать impure)

Igor
29.01.2018
07:29:58
Иначе в логе мы всегда будем видеть только имя и номер строки враппера. Или не?

Evgeny
29.01.2018
07:32:49
static import std.experimental.logger; void log( int line = __LINE__, string file = __FILE__, string funcName = __FUNCTION__, string prettyFuncName = __PRETTY_FUNCTION__, string moduleName = __MODULE__, ARGS... )(const LogLevel ll, lazy bool condition, lazy ARGS args) @trusted { std.experimental.logger.log!(line, file, funcName, prettyFuncName, moduleName)(ll, condition, args); }

и так каждую функцию

Igor
29.01.2018
08:02:50
Ага, спасиб

Dmitry
29.01.2018
08:45:53
можно не оборачивая прям по месту писать:

() @trusted { someUnsafeCall(1,2,3); } ();

Igor
29.01.2018
09:14:27
() @trusted { someUnsafeCall(1,2,3); } ();
именно что-то такое я и искал, но выглядит страшновато debug () @trusted {f(1,2,3)} (); с враппером всё-же чище

Evgeny
29.01.2018
10:18:34
можно автогенерацию строковым миксином замутить, чтобы одно и тоже не писать несколько раз

Pavel
29.01.2018
10:23:08
Видел эти обертки в vibe-core выглядит ужасно ) Еще тогда подумал, вот это уродство приходится прописывать в языке

Да уж либо миксин либо просто продублировать методы логгера у себя локально и каждый пометить как trusted

Evgeny
29.01.2018
11:30:02
макросы нужны нормальные

Google
Igor
29.01.2018
12:09:46
довольно неудачно что номер строки и прчее попадают не в аргументы ф-ции а в параметры темплейта

из-за этого инстанцируется куча одинаковых ф-ций

Evgeny
29.01.2018
12:10:49
ну может оно там инлайнится

Oleg
29.01.2018
13:20:11
как-то раз сталкивался и результат был не очень приятный — не правильно передавались строки и имя файла

хотя сейчас не могу воспроизвести

Dmitry
29.01.2018
13:40:52
Сладенькие, а как в betterC передавать структуры в аргументы? Я тут по приколу решил маленький модуль для emacs накропать, а структура никак в аргументы не проползает.

Dmitry
29.01.2018
13:41:50
а чего говорит?

Dmitry
29.01.2018
13:41:55
То есть в сишном заголовке там extern int emacs_module_init (struct emacs_runtime *ert); А в дишном модуле int emacs_module_init (emacs_runtime* ert);

а чего говорит?
em.d(108): Error: basic type expected, not struct em.d(108): Error: found struct when expecting ) em.d(108): Error: semicolon expected following function declaration

Это если в дишном модуле написать int emacs_module_init (struct emacs_runtime* ert);

Dmitry
29.01.2018
13:43:18
по сишной привычке вместо X пишешь struct X?

просто не надо struct там

Dmitry
29.01.2018
13:43:44
по сишной привычке вместо X пишешь struct X?
По правде, я на си дальше хелловорлдов не уехал.

просто не надо struct там
Понял! Благодарю! :) Значит причина сегфолтов в другом.

Dmitry
29.01.2018
13:45:58
при общении с внешним кодом надо первым делом убедиться, что структуры одинаково расположили свои части, alignment содержимого. первым делом sizeof(X) сделать в Си и X.sizeof в D и сравнить.

Stepanos
29.01.2018
17:34:41
> Fastest I/O and http2 ... нормуль

Google
Igor
29.01.2018
17:53:52
Ну прежде чем делать http/2 на betterC нужен какой-то фундамент, хоть контейнеры стандартизованные...

Кстати по поводу не-сейф log функций я лоханулся. Сообщения об ошибках сказали что функция не сейф в то время как проблема была с аргументои

Pavel
29.01.2018
18:16:03
Да хотя бы байтовый буфер который увеличивается сам

Ведь такого же нету вроде )

Igor
29.01.2018
18:19:51
о каких "контейнерах" речь..?
Ну залоловки http держать в ассоциативном массиве хотя-бы, тело складывать в буфер коьорый можно удобно, безопасно и без копирований обрабатывать

Mike
29.01.2018
18:21:28
Да хотя бы байтовый буфер который увеличивается сам
...динамические массивы тут не?( "betterC" настолько better что уже не Д?

Pavel
29.01.2018
18:21:53
ты про std.container ?

Mike
29.01.2018
18:22:48
ты про std.container ?
кто? (в телеграме можно и НУЖНО "цитировать" того кому отвечаешь/задаёшь вопрос ?)

Igor
29.01.2018
18:23:07
Динамические массивы работают без gc и рантайма? Я не знал, хорошо емли так

Pavel
29.01.2018
18:24:11
кто? (в телеграме можно и НУЖНО "цитировать" того кому отвечаешь/задаёшь вопрос ?)
Хм ну по дефолту идет ответ на последнее сообщение, они же не так часто падают ) Каждый раз цитировать выглядит коряво. Обычные массивы a[] написаны в типичном Д - мало того что они используют рантайм так еще и без GC не могут.

Mike
29.01.2018
18:24:46
Динамические массивы работают без gc и рантайма? Я не знал, хорошо емли так
я вот тоже не в курсе, поэтому и спрашиваю... я вообще плохо представляю зачем нужен это садом с ГЦ ? можнож как в с++ делать, только "красивее" засчёт "умногО" компилтора, который кучу "очевидной" штуки будет делать сам ? не, в этой вселенной так нельзя?) ?

Pavel
29.01.2018
18:25:05
std.experimental.container уже не используют GC но еще используют рантайм, они для betterC тоже не подходят

Даже классами и наследованием не воспользуешься.

Mike
29.01.2018
18:26:48
Даже классами и наследованием не воспользуешься.
наверное, пока свой компилятор не напишу - не пойму как существующие это вот всё так вот "странно" делают............... ?

Pavel
29.01.2018
18:28:10
http://docs.algorithm.dlang.io/latest/index.html вот есть какой-то ndslice, но там вместо того чтобы написать что это массив байтов, пишут что это N-мерный слайс, меня это очень смущает.

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

Evgeny
29.01.2018
18:35:43
что вы прицепились к этому беттерЦ и рантайму?

В плюсах есть рантайм кстати.

Google
Evgeny
29.01.2018
18:36:37
чем вам рантайм-то неугодил?

Oleg
29.01.2018
18:39:17
Evgeny
29.01.2018
18:39:35
Он без GC))
но сам рантайм-то есть

Igor
29.01.2018
18:39:42
Да я уже понял что лучше хорошо писать на худшемD, чем плохо на лучшемС

Pavel
29.01.2018
18:39:59
чем вам рантайм-то неугодил?
Хотя бы например тем что он не совместим с линковкой c-библиотек

У меня не получилось с рантаймом построить рабочее расширение для php, а в betterC все построилось

Evgeny
29.01.2018
18:42:00
У меня не получилось с рантаймом построить рабочее расширение для php, а в betterC все построилось
хз что там не получилось, но это скорее проблема конкретного стандартного дешного рантайма, а не рантайма вообще.

Pavel
29.01.2018
18:42:18
Так мы про дешный и говорим

Evgeny
29.01.2018
18:42:33
дык егоже можно переделать

Admin
ERROR: S client not available

Pavel
29.01.2018
18:42:38
И весит он.. как минимум 400кб а то и пару мегов

Evgeny
29.01.2018
18:43:06
я же писал свой микрорантайм с парой функций для МК

Pavel
29.01.2018
18:43:59
я же писал свой микрорантайм с парой функций для МК
Где ссылки? Статьи? Вот когда это будет в комьюнити то про betterC забудут может быть

Evgeny
29.01.2018
18:44:41
беда дешки не в рантайме, а в ГЦ

Pavel
29.01.2018
18:45:31
Я типа говорю что это надо здесь и сейчас рабочее и с документацией, а не "теоретически возможно"

Oleg
29.01.2018
18:45:32
типа ты мне на слово не веришь, что это возможно?
Типа кроме тебя твой RT мало кто сможет легко подключить

Google
Pavel
29.01.2018
18:46:23
betterC есть и он прекрасно работает как заявлено, можно реально использовать

Вот почему про него все говорят

Evgeny
29.01.2018
18:46:57
Pavel
29.01.2018
18:47:32
Получаются реальные рабочие бинарники по 24кб, рабочие библиотеки с c-библиотеками линкующиеся и все остальное добро

например он не умеет статические конструкторы
Ну да куча фич дропнута, но сахарок остался

Evgeny
29.01.2018
18:48:56
Ну да куча фич дропнута, но сахарок остался
ну и зачем оно нужно? вместо того что пилить совместимость обычного D?

Oleg
29.01.2018
18:50:12
А речь то о чём вообще? То что один человек использует одно, а другой не согласен с его подходом?

Кто-то на что-то влияет сильно?

Или кто-то кому-то мешает?

Maxim
29.01.2018
18:51:53
мне кажется, пора переводить статью Уолтера про БеттерСи и класть ее в duseful

как разгребусь с текучкой, может быть, попробую

Oleg
29.01.2018
18:52:18
А что в его статье такого?

Maxim
29.01.2018
18:52:38
ну он объясняет там, зачем вообще придумал этот самый BetterC

Oleg
29.01.2018
18:52:49
Мне кажется здесь сейчас спорили те, кто достаточно хорошо осведомлен

Pavel
29.01.2018
18:52:52
Она уже переведена на хабре

Но там вроде есть немного неточностей в переводе

Oleg
29.01.2018
18:53:28
И раньше времени она была

Резонанс профукан

Maxim
29.01.2018
18:53:47
насколько помню, там в плюсах — встроенные юнит-тесты, что, мягко говоря, не совсем правда)

Oleg
29.01.2018
18:53:51
Что Брайт что перевод рановато были

Maxim
29.01.2018
18:54:26
штука-то крутая для своей ниши, но постоянно появляются срачи на тему, зачем оно вообще, и почему там кучу всего дропнули

Pavel
29.01.2018
18:54:37
Сейчас действительно рантайм тесно связан с gc, что делает трудным его эффективное использование.

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