
Pavel
18.02.2018
18:39:24
Ну вот есть https://dlang.org/phobos/std_container_dlist.html может это тебе подойдет

Denis
18.02.2018
18:39:26
> Реализация FIFO пишется строк в 10
Это не ответ. Есть много таких алгоритмов, которые уже в std.

Pavel
18.02.2018
18:39:32
Довольно эффективно написано

Denis
18.02.2018
18:40:09
Я ubyte храню...

Google

Denis
18.02.2018
18:40:22
а там у них ссылки size_ptr
(подозреваю)
впрочем да, ты прав

Pavel
18.02.2018
18:41:50
Тогда как по мне, тебе действительно нужно 1 раз выделить память, равную максимальной длине твоей очереди, и обращаться к ней как к массиву ubute элементов. Это будет супер быстро как по скорости так и по памяти. Никаких аллокаций, мгновенный доступ.
Ну и замутить что-то типа кольцевой очереди

Denis
18.02.2018
18:42:11
Вот такой бы шаблон в std готовый уже!..

Pavel
18.02.2018
18:42:48
Таких специфичных в std нету, там довольно обобщенные случаи.
Один раз мне не подошел встроенный хешмап, пришлось быстренько накидать свой с непрерывной памятью. Работало намного быстрее, и получилось всего строк за 30-40

Denis
18.02.2018
18:44:32
У меня ругой кейс: мне надо быстро накидать а если вылезет проблема со скорсотью то уже свой сделать.
Этот кейс решается присвоением слайса.

Pavel
18.02.2018
18:45:09
Кстати в dub можно найти довольно много пакетиков которые предоставляют всякие обобщенные штуки, может там есть. Дишники любят делать по 10му разу свои контейнеры и аллокаторы )
Ну тогда возьми тот double linked list

Denis
18.02.2018
18:46:55
> которые предоставляют всякие обобщенные штуки
и баги

Pavel
18.02.2018
18:48:04
Ну с таким подходом вообще тогда нельзя ничего вендорного юзать

Google

Denis
18.02.2018
18:48:39
ну ты ж понимаешь какого уровня эти проекты? на 1 нормальный там 10 написанных "лишь бы было"
Вот мой личный бугурт:
https://github.com/msoucy/dproto/issues/96
даже не отмечен лейблом "баг"

Pavel
18.02.2018
18:59:34
> I haven't had much time for any side projects.
Хех отличный ответ

Denis
18.02.2018
19:03:12
Вот. При том что сейчас у нас нет другого работающего способа Protobuf читать

Igor
18.02.2018
19:30:00
вот еще есть набор полезных штук https://github.com/dlang-community/containers

Denis
18.02.2018
19:30:31
Ок, проблема номер 2: поиск code.dlang.org не находит такое

Pavel
18.02.2018
19:31:20
Я тоже только сегодня думал какое же говно "официальный" репозиторий пакетов. У него кстати даже нет API так что спарсить и построить на основе свое не получится.

Denis
18.02.2018
19:31:21
По хорошему ему бы весь проект парсить (хотя бы .d файлы) и по словам искать. Не сложно сделать, кстати, если там БД триграмы поддерживает.
> У него кстати даже нет API
Есть но секретный

Pavel
18.02.2018
19:31:59
Надо как-нибудь будет написать Людвигу чтобы сделал публичный JSON чтобы все могли пользоваться.

Denis
18.02.2018
19:32:07
https://github.com/dlang/dub-registry/issues/279
> написать Людвигу чтобы сделал
А то у нас лапки!
Все зашиваются, всё в бабло упирается.

Pavel
18.02.2018
19:33:40
Подождите ко, какие еще лапки? Никто не может сделать это кроме него по факту, так как у него монополия на dub пакеты
Свое написать можно будет только вместе со своим же менеджером пакетов, а дальше что? Продвигать его? Война менеджеров пакетов?

Denis
18.02.2018
19:34:39
Ну конфиг допустим нормальный уже у них. (имхо!)
а менеджер можно и другой, и регистрацию пакетов другую (+ спарсить ту что есть)

Pavel
18.02.2018
19:35:28
У кого домен, тот и на коне. Пусть отдаст JSON с проектами вместе со ссылками, а не просто голые названия, этого достаточно, дальше мы уже спарсим.

Denis
18.02.2018
19:35:29
Недавно видел на форуме вроде вопрос поднимали про пакеты: что делать со старьём?
там есть пакеты которые заброшены и давно не собираются

Google

Pavel
18.02.2018
19:36:48

Denis
18.02.2018
19:37:55
Конкретно с dub вроде проблема не в коде а в отсутствии понимания верного подхода. Мы не знаем как это сделать правильно.
Недавно ознакомился с go - мне не понравилось, ява тоже, и нода.жс тоже.
Судя по всему не только я такой.

Pavel
18.02.2018
19:38:14
Так то в npm довольно хорошо сделано все

Denis
18.02.2018
19:40:13
Да вот же недавно полинета лежало
Во! Кстати! Для code.dlang.org я бы принудительно выпилил блобы бинарные.
Есть такие пакеты которые (для винды обычно) юзают их вместо исходника лежащего рядом. Хз что там на самом деле.
Сам по себе пакет имеет право такое держать в себе, но вот если он публичный оттуда то возможность их инклюда должна быть отрублена.

Pavel
18.02.2018
19:58:53
Емае, вот это easter eggs у сайта ) Если зайти на страницу любого пакета и в урле дописать .json то выдается хорошая структурированная инфа по нему :)

Denis
18.02.2018
20:00:47
угу. но это ТАЙНА)
было бы ок всю инфу в виде архива раз в сутки качать и не напрягать сайт, например
особенно всякими CI-сборками

Pavel
18.02.2018
20:01:53
Ну то есть если делать свой фронтенд к репозиторию пакетов, то не стоит опираться на API и в любой момент все может сломаться.

Denis
18.02.2018
20:07:22
Ещё мысль: надо попробовать дерево зависимостей публичных пакетов нарисовать. Очень похоже что есть 3-4 заброшенных, от которых вообще всё нафиг зависит.
Багу нашёл - при сборках релизной версии неверно работает core.bitop.bt - возвращает мусор. Думаю, проблема не с этой функцией, а код dmd генерит неверный.
https://github.com/denizzzka/dcpu16/commit/6f2bf53411474daeb91a930bfaf323d7e70a8f01#diff-88543e6d645539c8eb75e58e103ebd3eL138

Pavel
18.02.2018
22:21:31
Ну это надо ишью заводить у них там

Denis
18.02.2018
22:22:53
Это сначала надо уменьшить до разумного примера
Щас проверим по-другому - заменим стандартную bt на самописную дубовую не меняя больше ничего
Подтвердилось!
https://github.com/denizzzka/dcpu16/commit/c5211945538c0b230580a7cf5d2e8c29d82c87f1

Google

Denis
18.02.2018
22:37:26
Выделил отдельной веткой. Хз что дальше делать - не могу запустить сборку одновременно релиза с юниттестами.

Pavel
18.02.2018
22:38:00
Ну поздравляю, надо делать ПР в core

Denis
18.02.2018
22:38:24
Не, с чего PR? Баг не в функции.
Баг где-то в конпеляторе. Потому что иначе функция бы врала и на дебажных сборках.

Pavel
18.02.2018
22:39:14
А, ну значит issue

Denis
18.02.2018
22:39:42
Воот, а чтобы issue надо уменьшить код. Я попробовал просто пример сделать - он на релизе норм отработал.
Есть!
кек
https://issues.dlang.org/show_bug.cgi?id=18461
пробуйте)

Pavel
18.02.2018
23:04:30
$ dub run --single bitop_bt.d --build=release
Performing "release" build using /usr/bin/dmd for x86_64.
bitop_bt ~master: building configuration "application"...
Linking...
Running ./bitop_bt
Program exited with code -4

Denis
18.02.2018
23:04:44
Надо запустить 10 раз
и увидеть что результат выполнения меняется

Pavel
18.02.2018
23:05:27
Да. Иногда нормально срабатывает, а иногда code -4
$ dmd --version
DMD64 D Compiler v2.078.1
Copyright (c) 1999-2017 by The D Language Foundation written by Walter Bright

Denis
18.02.2018
23:05:50
Вот -4 это нормально, а когда она просто завершается то это не нормально
Радует что это не только у меня )

Pavel
18.02.2018
23:10:27
Я этот багтрекер ненавижу, там баги еще где-то с 2013 наверно болтаются
Такое ощущение что всем плевать на него

Denis
18.02.2018
23:12:53
Ну такое-то не оставят - обхода нет, бага явно не в самой функции а в том как её компилирует компилятор.

Google

Denis
18.02.2018
23:13:00
гейзенбаги никто не любит
@chebotarevp https://issues.dlang.org/show_bug.cgi?id=18461#c7
Дело раскрыто

Pavel
19.02.2018
00:01:45
фигасе как быстро

NullSanya
19.02.2018
00:02:36
Какие у вас проблемы интересные, баги в языке ищете. А у меня code-d снова капризный какой-то.
Сначала работало все, а когда поставил в зависимости vibe.d, перестал любые проекты грузить.

Denis
19.02.2018
00:17:34
а оно там автокомплит в виде демона не юзает ли?
Может он наелся сырцов vibe.d и поплохел?

Pavel
19.02.2018
00:21:15
Смотри в консоли разработчика, он там выплевывает ошибки

NullSanya
19.02.2018
00:23:06

Dmitry
19.02.2018
06:28:39

Maxim
19.02.2018
06:41:16
Variant — это магия из std.variant)

elias
19.02.2018
06:45:17
привет. Как вы обычно поступаете с непонравившимися IDE для языка D - забываете про них или делаете feature requests ?

NullSanya
19.02.2018
06:47:29

elias
19.02.2018
06:47:49
7.40 answer detected

Maxim
19.02.2018
06:51:03
я забил)

NullSanya
19.02.2018
06:51:14
Хотя оживить mono-d хотелось бы
но чет он совсем умер.

Maxim
19.02.2018
06:52:29
в большей степени потому, что feature request для eclipse «жрать поменьше оперативки» — это из разряда фантастики)

NullSanya
19.02.2018
06:53:29