@dlangru

Страница 517 из 719
Dark
14.04.2018
16:59:07
В прошлом году я интересовался темой

Максимум, что удалось найти - разрозненные маны, полного описания в одном месте нет

Google
Denis
14.04.2018
17:07:35
2k!7

Oleg
14.04.2018
17:15:00
Вот как сконвертировать int в строку?)
вообще можно руками, не сложный код ж вроде

ну не оптимальный не сложный

Denis
14.04.2018
17:28:32
Дотерпеть до эксепшенов

Pavel
14.04.2018
17:39:45
betterc был бы нужен если бы хоть кто-то реализовал динамический буфер байтов или даже строки

Maxim
14.04.2018
17:41:18
так можно самому реализовать)

Pavel
14.04.2018
17:42:41
Я посмотрел модуль array и там сложна

обобщенный код писать всегда на порядок сложнее чем специфичный в своей задаче

Maxim
14.04.2018
17:43:31
не, array, как в D не получить без сборки мусора

Pavel
14.04.2018
17:43:58
А вот кстати на го bytebuffer очень простой там строк 200

Maxim
14.04.2018
17:46:03
https://gist.github.com/maxfreck/8029006bb22bbdf2cfdc4dd5114f2542 я такое юзаю, мне норм)

Google
Maxim
14.04.2018
17:47:27
только в нем слайсы память копируют)

всё никак не дойдут руки сделать аналог явовского хэшмэпа, но он как-то и не очень нужен)

Stanislav
14.04.2018
17:52:04
Так это обычный АА разве, не? Правда в беттерС его нет )

Maxim
14.04.2018
17:52:54
АА?

Stanislav
14.04.2018
17:53:05
Ассоциативный массив

Maxim
14.04.2018
17:53:10
а, ну да

АА — это абстрактный тип данных с определенным поведением, хэшмэп — его реализация)

Stanislav
14.04.2018
17:59:09
Кстати, у кого нибудь на беттерС есть крупные проекты?

Интересная тема на самом деле

Pavel
14.04.2018
18:00:12
Мы тут недавно много спорили и пришли к выводу что как раз не интересная

Stanislav
14.04.2018
18:00:35
Я например хочу DPDK портировать

Pavel
14.04.2018
18:00:44
Сразу начинает хотеться всех плюшек D и зачем тогда это терпеть

Stanislav
14.04.2018
18:00:48
А там пц с тактами осторожно очень надо

Maxim
14.04.2018
18:00:52
ну вообще, достаточно сложно на betterC что-то крупное делать)

Stanislav
14.04.2018
18:00:59
Она вся на си написана

По сути это апишка к специальному драйверу

И для меня беттерС очень интересная тема )

https://dpdk.org

Maxim
14.04.2018
18:02:07
в принципе, как замена Си он хорош, но тут всегда надо держать в уме, что ни на чем меньше 32 бит это никогда не запустится)

Stanislav
14.04.2018
18:02:28
Ну и ладно

Google
Dark
14.04.2018
18:03:30
Igor
14.04.2018
18:03:36
betterC нужен для того что-бы можно было с минимальными переделками скомпилить С исходник и добиться его работы

А потом улучшать его

По крайней мере так это анонсироаалось

Maxim
14.04.2018
18:04:14
если верить Уолтеру, беттер Си ему ему нужен был именно как беттер Си)

исключительно для личных нужд

Igor
14.04.2018
18:05:27
Возможно, но кажется именно он описывал такой сценарий использования

Maxim
14.04.2018
18:06:28
но в общем и целом, для чего-то системного или критичного к размеру штука крутая)

Dark
14.04.2018
18:07:23
Но без std...

В общем

Надо пилить универсальный интерфейс для аллокации памяти

Тогда от беттер си будет толк

Maxim
14.04.2018
18:11:51
В беттер си доступна вся стандартная библиотека си)

Dark
14.04.2018
18:12:15
Ухх

Щас замаллочим

Maxim
14.04.2018
18:12:29
Люди с её помощью целые операционные системы умудряются делать)

Maxim
14.04.2018
18:12:47
Yeap

Dark
14.04.2018
18:13:13
Я что-то не видел ОС на stdc

На C - видел

Google
Dark
14.04.2018
18:14:36
На линухе, например, stdlib вообще не юзается

Да и вообще

stdlib в C привязана к ОС

Maxim
14.04.2018
18:15:31
ну я имею в виду ОС как инфраструктуру

Dark
14.04.2018
18:15:49
А я имею ввиду ОС как ядро + дрова

Maxim
14.04.2018
18:16:31
вот, кстати, у меня прям жизненный пример применения беттер си есть

решил я написать плагин для deadbeef, конечно, круто и удобно его делать с std, но тогда один плагин получается размером больше, чем сам deadbeef с плагинами)

не спортивно)

Dark
14.04.2018
18:18:15
Вот да

Но всяко меньше чем node_modules

Admin
ERROR: S client not available

Maxim
14.04.2018
18:18:54
это да)

нода находится за пределами добра и зла)

и иногда за пределами здравого смысла

Dark
14.04.2018
18:37:41
Зато удобно

Pavel
14.04.2018
21:27:28
Нашел баг в компиляторе

из-за которого мой чудо алгебраик не работал

// rdmd -unittest --main test.d import std.variant; struct Bug(T) { Algebraic!T type; unittest { struct S1 { int s1; } Bug!S1 bug; } } unittest { Bug!int bug; }

компилятор зависает и начинает выжирать память гигабайтами

Denis
14.04.2018
21:44:38
может это не баг?

Google
Denis
14.04.2018
21:44:50
у меня так было когда я в шаблон засунул словарь слов размером 60 метров

в массив строк

а массив строк там видимо по принципу COW при компиляции существует

Pavel
14.04.2018
21:49:04
Впринципе у меня есть теория почему такое поведение

Это не баг но это баг

struct S1 существует только в скоупе юниттеста, что заставляет компилятор породить еще один инстанс шаблона Bug с телом юниттеста. Потом это тело юниттеста тоже начинает выполняться и создается еще один инстанс шаблона со структурой.

Denis
14.04.2018
21:50:41
ну или так

Pavel
14.04.2018
21:50:49
Уходим в рекурсию и бесконечно создаем инстансы шаблона и выполняем юниттест

Потому что если его вынести из тела шаблона то все прекрасно работает

Denis
14.04.2018
21:51:11
можно ли вюниттесте статический флаг сделать?

Pavel
14.04.2018
21:52:38
Во надо же, я ничего не менял и теперь он начал выдавать ошибку

$ rdmd -unittest --main test.d /usr/include/dmd/phobos/std/traits.d(2483): Error: template instance std.traits.isNested!(S1) recursive expansion Failed: ["/usr/bin/dmd", "-unittest", "-v", "-o-", "test.d", "-I."]

Чудеса =)

Denis
14.04.2018
21:53:42
моя карма только что заставила меня сделать раздел с размером блока 8k для ext4, который может максимум 4k

щас буду 3 часа ждать пока оно заново скопируется

Pavel
14.04.2018
21:54:23
можно ли вюниттесте статический флаг сделать?
Да проще вынести из темплейта и все

Denis
14.04.2018
22:09:22
Что такое вообще эти алгебраические типы?

Смотрю ты патч запилил

Pavel
14.04.2018
22:10:48
Это union который хранит в себе еще информацию о том какой именно тип туда записали в последний раз

Получается динамическая типизация в переменной

Denis
14.04.2018
22:12:06
а смысл?

Pavel
14.04.2018
22:13:07
Это вот тут используется https://github.com/nexor/telega/pull/2/files#diff-e40a697166c006a3b50996397422bf86R982

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