@dlangru

Страница 401 из 719
Evil
05.02.2018
13:30:18
? да логично, все же есть, чето я туплю )
Блин, как какую-то сложную сетевую мутотень и гц, где я выпадаю, обсасывать, так мастера, а библиотеку собрать фиг?

Pavel
05.02.2018
13:31:00
Так это ты обсасываешь, я то фикс сделал за час просто )

Ну да, опыт неравномерный. Про сетевое и рейс кондишены всякие мне универских знаний хватает.

А сборка проекта это тулинг и сильно зависит от имплементации

Google
Pavel
05.02.2018
13:35:21
Кстати, я сделал воркэраунд который позволяет обойти все эти замутки с leastSize и плюс ко всему избежать дополнительного копирования в буфер

Evil
05.02.2018
13:36:43
Ну да, опыт неравномерный. Про сетевое и рейс кондишены всякие мне универских знаний хватает.
Фига, есть универы, где такие знания дают??Я самоучка, у меня другой раз терминология может быть дырявой, но опыт много где есть)

Pavel
05.02.2018
13:36:51
while (src.waitForData()) { chunk = src.peek().length; debug logTrace("Read src chunk %d", chunk); dst.write(src.peek()); src.skip(chunk); }

пишем сразу из буфера, и пропускаем прочитанное )

Evil
05.02.2018
13:37:13
Что пик даёт?

Это указатель на буфер фиксированного размера?

Т.е. возвращает

Pavel
05.02.2018
13:38:56
Да, это внутренний буфер TCPConnection

слайс на ту часть которая всегда заполнена

Evil
05.02.2018
13:39:25
А его размер какой?

Pavel
05.02.2018
13:39:50
Это слайс динамический, его размер .length и он всегда заполнен данными

Evil
05.02.2018
13:39:59
Почему тогда, лист сайз не возвращает его размер?

Google
Pavel
05.02.2018
13:40:14
Потому что это бага

Блин ты вообще смотрел мой ПР ? :D

Я же эту херню там и пофиксил

Evil
05.02.2018
13:40:56
Не смотрел)

Уже больше месяца свободного времени/сил нет ((

Но ща попробую взяться за камп

Pavel
05.02.2018
16:44:15
Мдэ конечно когда идет речь о гибкости и расширяемости, то структуры начисто сливают классам :(

Evgeny
05.02.2018
17:03:13
миксины и статический полифморфизм тоже весьма неплохие вещи

Pavel
05.02.2018
17:04:08
И как ты переопределишь методы и поля в структуре TCPConection? =)

Ничего уже никуда не подмиксинишь

Evgeny
05.02.2018
17:04:51
или через std.typecons.Proxy, но обычно alias this

Pavel
05.02.2018
17:06:29
Я тут пробовал на днях извращаться, делал юнион, одна структура из вайба, а другая структура накладывалась моя с другими методами. Но как-то оно не заработало.

Evgeny
05.02.2018
17:06:56
зачем нужен юнион?

в данном случае

нужена структура которвя косит под TCPConnection

так называемая утинная типизация

проще всего в обертку и alias this

struct MyTCPConnection { TCPConnection conn; alias conn this; // переопределяем что угодно }

Google
Pavel
05.02.2018
17:09:25
в данном случае
В моем случае он был нужен чтобы перезаписать private поле

Evgeny
05.02.2018
17:09:43
Pavel
05.02.2018
17:10:03
Это просто кто-то не должен был делать private поля ??

Pavel
05.02.2018
17:10:53
Ну в итоге я отказался от всей этой затеи, уж слишком хакично выглядело. Юнион с перезаписью приватного поля ?

Evgeny
05.02.2018
17:11:20
проще форкнуть убрав приватность

Igor
05.02.2018
17:27:01
а для классов переопределение полей через alias this тоже работает?

хотя там и так можно, туплю

Evil
06.02.2018
00:31:18
Комментарий дня: // Call the Webservice again with a null Dataset to clear the buffer

Линейный клиент на сервере вручную управляет памятью. Премию тому, кто это написал.

Pavel
06.02.2018
07:26:26
?

Oleg
07.02.2018
09:13:30
кто-то говорил что мало контейнеров https://github.com/dlang-community/containers

Igor
07.02.2018
09:43:55
говорили что ент контейнеров для betterc. эти годятся?

zk
07.02.2018
09:57:18
Вот думаю,алексанлреску стоит читать или уже безнадёжно протухла?

есть еще какой-то фреймворк MVC, обертка над vibe, название не помню

Чем дело с переводом книги Али кончилось?

1)читать надо обязательно 2)diamond вроде 3) перевод пока очень слоупочный*

@adhoc - должен был взять основную работу по переводу на себя, что собственно и сделал

он перешел на хаскелл, но на перевод не забил

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

Google
Pavel
07.02.2018
11:47:11
говорили что ент контейнеров для betterc. эти годятся?
Сейчас я уже согласен с Евгением что betterC не особо то и нужен. Главное чтобы был nogc, а там хоть с рантаймом хоть без.

Я попробовал написать динамический буфер для betterC но даже такая задача весьма сложна, если брать в расчет параллелизм и асинхронность.

В конечном счете это вопрос о том в какую сторону растет экосистема. Как было замечено в многостраничных срачах на форуме, у D нету какой-то выраженной ниши и сообщество растет спонтанно и в разные стороны. В этой ситуации возможно betterC был бы удобен для тех кто пишет или портирует программы/библиотеки на си

Igor
07.02.2018
11:53:05
ну Уолтер прямо говорит зачем нужен betterC - для того что-бы можно было брать сишный код и переписывать его в дишный синтаксис. потом когда код перенесен - можно начинать юзать и рантайм. Я тоже betterC не использую, поскольку пока нет задачи вписывающейся в эту схему.

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

Pavel
07.02.2018
11:55:35
Практические задачи, особенно в вебе например, довольно типичны - взять и написать расширение к nginx/php/postgres

Maxim
07.02.2018
11:56:18
плагин для deadbeef — моя задача на ближайшее время, например)

Pavel
07.02.2018
11:56:31
Ну и наверняка еще ко многим тулзам тоже можно писать расширения на си. Но как я понимаю если не требовать у итогового расширения размер в 100кб максимум, то туда можно нормально подтянуть рантайм и пусть он там крутится себе.

Maxim
07.02.2018
11:57:41
в случае с deadbeef хорошо бы было заюзать полноценную надстройку над dbus, но тогда плагин получится размером больше, чем сама программа, не спортивно)

Admin
ERROR: S client not available

Maxim
07.02.2018
11:57:57
так что, задача вполне для bettecC

ну и таких задач, на самом деле вагон и маленькая тележка

Pavel
08.02.2018
10:49:34
Если честно, я не знаю :) но для меня рантайм тесно связан с gc что недопустимо

Maxim
08.02.2018
10:49:46
мне кажется, вопрос задавать нужно немного подругому: а можно ли эт сделать без стандартной библиотеки и GC)

поскольку betterC, как некий дух имманентно присутствует в любой программе, написанной на D)

Pavel
08.02.2018
11:00:32
Как минимум будут встречаться разные костыли и трудности. Вот пытался я собрать расширение с рантаймом. Он мне говорит - не могу найти символ d_symbol или чето там. Что это значит? Это значит что рантайм надо слинковать в расширение статически. А еще это значит что если мы напишем 10 расширений к проекту и все подключим их, то будет у нас проект с 10 дишными рантаймами.

Pavel
08.02.2018
11:10:00
@nogc
Так он тебе просто выдаст ошибку что какая-то функция внутри may throw, и все.

Google
Pavel
08.02.2018
11:10:57
Ну например writeln из стандартной бибилотеки may throw

И получается что почти ничего использовать нельзя

Evgeny
08.02.2018
11:11:20
дык в betterC тоже самое

Pavel
08.02.2018
11:11:32
Не, там же нельзя все это юзать :)

Evgeny
08.02.2018
11:11:51
ну и здесь нельзя, в чем разница-то?

Pavel
08.02.2018
11:12:06
Зачем тогда нужен рантайм, чем он помогает?

Если в нем ничего нельзя

Evgeny
08.02.2018
11:12:43
Зачем тогда нужен рантайм, чем он помогает?
зато можно полноценно пользоваться самим D, например исключения

Pavel
08.02.2018
11:13:19
Я уже перечислил чем он мешает. Лишние библиотеки в линковку, лишние мегабайты в расширениях, лишний мусор.

Evgeny
08.02.2018
11:13:43
Pavel
08.02.2018
11:13:49
А расскажи как

Своим аллокатором создавать объект?

Evgeny
08.02.2018
11:14:22
А расскажи как
на куче вручную создай, брось, в catch удали

Pavel
08.02.2018
11:14:51
А если на catch не ловить, то не получится?

Evgeny
08.02.2018
11:14:54
Я уже перечислил чем он мешает. Лишние библиотеки в линковку, лишние мегабайты в расширениях, лишний мусор.
Это все несерьезные отговорки. Байтодрочерство давно уже в прошлом, если ты не на МК пишешь

Pavel
08.02.2018
11:15:36
А хотя.. Главное поймать хотя бы на верхнем уровне, и тогда можно почистить, верно?

Evgeny
08.02.2018
11:15:44
А если на catch не ловить, то не получится?
Получится, но оно падать будет, как и в любой другой программе. Попробуй в плюсах не поймать эксепшн нигде.

а так nogc и nothrow - получается тот же betterC

Pavel
08.02.2018
11:17:37
То есть твоя идея в том что 1) можно построить свою иерархию поверх Throwable с кастомными аллокаторами 2) если исключение нигде не ловится то программа падает и тогда уже нет смысла заморачиваться с чисткой мусора

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