
Dmitry
21.10.2017
18:02:36
А зачем по 4096 байт читать? Почему не все сразу?
assert(this.readable);
Это что за флаг и где он устанавливается?

Andrey
21.10.2017
18:03:29
вот это как раз не знаю) зачем то оно понадобилось автором вайба, значит есть кейз какой то

Google

Dmitry
21.10.2017
18:06:28
при компиляции в релизе они остаются?

Andrey
21.10.2017
18:07:10
нет
в релизе остаются enforce
хых, смотрю, в вайбе yield переопределен, может он в нем и между потоками перераспределяет еще. но суть от этого не меняется

Dmitry
21.10.2017
18:15:27
короче функция чтения неблокирующая т.к. она прочитала 4096 байт, потом дальше управление передала, потом снова запустилась и снова 4096 байт так?

Andrey
21.10.2017
18:16:49
ага
точнее нет, просто ты из этой функции не выйдешь, пока все не вычиитаешь)
получается что блокирующая, в данном файбере.

Andrey
21.10.2017
18:20:54
в идеале оно должно юзать неблокирующие функции, а пока данных нет, передавать управлению следующему файберу

Andrey
21.10.2017
18:26:22
ну в этой конкретной функции неблокирующий read не нужен вроде как, а так для сокетов наверно так и сделано в вайбе этом

Dmitry
21.10.2017
18:27:28
сокет это прочато участок памяти где данные лежат?

Andrey
21.10.2017
18:31:44
нет, сокет это сокет) типа дескриптора соединения

Dmitry
21.10.2017
18:50:00
так) спасибо)

Google

Dmitry
21.10.2017
18:50:36
Вопрос. А почему все хотят стыковку делать на уровне Си кода, а не на уровне IR/LLVM кода? Там же формат вызовов наверно одинаковый

Ievgenii
22.10.2017
10:17:18
Нет
+ не все под LLVM делают

Pavel
22.10.2017
20:16:37
А как скомпилять экзешник со статической libphobos2 ?
Чета он не подхыватывает
"configurations": [
{
"name": "static",
"targetType": "executable",
"platforms": [ "posix" ],
"libs": [
"phobos2-ldc"
],
"lflags": [
"-lphobos2-ldc",
]
}
]
Сборка идет норм, но экзешник как весил 413 кб без билиотеки так и весит. И требует ее.

Andrey
22.10.2017
20:40:43
наверно, через флаги компилятора надо указывать. dflags, dflags-dmd вижу. может, указать "dflags-ldc": "-static" чем черт не шутит)

Pavel
22.10.2017
20:48:07
? надо же, оно попыталось сработать, спасибо)

Dmitry
23.10.2017
04:02:20
А разве она по умолчанию не линкуется статически?
Просто если тот же самый экзешние на другом компе работает, не значит ли это что она статически слинкована?

Pavel
23.10.2017
09:15:29
Ну вот в моем случае на другом "компе" он как раз не заработал
Это был абсолютно голый докер контейнер с минимумом библиотек.
Кстати слинковать статически так и не получилось, пришлось положить отдельно libphobos2-ldc, libdruntime-ldc и еще 5 линуксовых библиотек прямо в контейнер рядом с программой. Но итоговый размер контейнера получился 11мб что довольно неплохо :)

qwerty
23.10.2017
09:21:56
для gtk есть какой-нибудь набор элементов UI? В Qt есть Material control set https://doc.qt.io/qt-5/qtquickcontrols2-material.html
В gtk есть что-нибудь подобное? Гугл мне только темы для GTK выдает

Dmitry
23.10.2017
10:04:18
А все остальное это libc

Pavel
23.10.2017
10:04:39
Он 1 МБ
А libphobos2 4,5 МБ
Ну, не точно :) Это то что я вчера на соем опыте видел. Может там и можно как-то урезать.

Maxim
23.10.2017
10:10:45
а что вообще readelf -d говорит?

Google

Dmitry
23.10.2017
10:17:38
Павел, а что же тогда в бинарик линкуется по дефолту?
Я думал что это и есть рантайм

Pavel
23.10.2017
10:18:32
$ readelf -d socks5d
Dynamic section at offset 0x1924c0 contains 30 entries:
Tag Type Name/Value
0x0000000000000001 (NEEDED) Shared library: [libpthread.so.0]
0x0000000000000001 (NEEDED) Shared library: [libm.so.6]
0x0000000000000001 (NEEDED) Shared library: [librt.so.1]
0x0000000000000001 (NEEDED) Shared library: [libdl.so.2]
0x0000000000000001 (NEEDED) Shared library: [libgcc_s.so.1]
0x0000000000000001 (NEEDED) Shared library: [libc.so.6]
0x0000000000000001 (NEEDED) Shared library: [ld-linux-x86-64.so.2]Вот это собрано с помощью DMD
А версия ldc точно требует еще libz

Maxim
23.10.2017
10:20:02
ну и значит, фобос статически слинкован

Oleg
23.10.2017
10:20:05

qwerty
23.10.2017
10:21:35
а темы чем не подходят?
а я не знаю, я вот думаю, что взять GTK + D или Qt + C++. И посмотрел, что у Qt уже есть наборы контролов, а в GTK что-то непонятное, вот и решил спросить

Pavel
23.10.2017
10:21:51

qwerty
23.10.2017
10:21:58
а тему как-то в приложение можно встроить?

Oleg
23.10.2017
11:40:09

qwerty
23.10.2017
11:40:29
так

qwerty
23.10.2017
11:41:01
мне надо просто понять как использовать тему для своего приложения и упаковывать вместе с ней в дистр

Oleg
23.10.2017
11:43:43
как использовать готовые файлы ресурсов из темы я пока не разбирался
https://github.com/deviator/gtkui/blob/master/source/gtkui/builder.d#L83
пример выставления стиля

qwerty
23.10.2017
11:45:28
спасибо

Oleg
23.10.2017
11:45:53
в зависимости от последнего флага функции StyleContext.addProviderForScreen() будет немного разное повещение
можно выставить стиль заменялся, а можно чтобы полностью новый был

Google

Oleg
23.10.2017
11:46:27

qwerty
23.10.2017
11:46:55
нет, я как раз хотел взять что-нибудь
может даже найти какой-нибудь material ))

Oleg
23.10.2017
11:47:17
есть material под gtk3

Stepanos
23.10.2017
11:47:21
а зачем так делать? оно ж будет вьіделятся на фоне остальньіх приложений

Oleg
23.10.2017
11:48:08

qwerty
23.10.2017
11:48:11
а нативность поддерживать на всем разнообразии DE в Linux я не хочу(

Oleg
23.10.2017
11:48:40
некоторые приложения должны выделяться
дело в другом

Admin
ERROR: S client not available

Oleg
23.10.2017
11:49:39
люди, которые делали для таких приложений внешний вид делали это неграмотно, что делало в итоге приложения вырвиглазными
поэтому такое правило: приложение не должно отличаться внешним видом от других
потому что за внешний вид системы комерческих ОС (win, mac) отвечали профессиональные дизайнеры, знающие своё дело
НО
есть понятие бренда
мы, например, по указу сверху, брендируем приложения для desktop
следовательно они выглядят не так как системные
но как минимум стараемся это сделать +/- приятно выглядящим

Dmitry
23.10.2017
12:53:49
коммент интересный "Если программист, получающий 2 000 USD в месяц потратит 8 часов на оптимизацию памяти, мы получим около 95 долларов за решение этой проблемы. Это гораздо дороже, чем покупка 2ГБ ОЗУ. Так что, в этом есть рациональное звено."

Google

Maxim
23.10.2017
12:55:03
а потом другой программист перемещает курсор в очередном мега редакторе, построенном на электрон, и идет пить чай, пока тот все просвопит)
если где-то прибывает, где-то в другом месте должно убыть)

Dmitry
23.10.2017
12:57:20
Ну так значит не надо использовать софт написанный на Электроне)

Pavel
23.10.2017
13:02:13
Это все калькуляции профанов
Берут пару факторов из тысячи, и начинают их анализировать как независимые и изолированные.
> потратит 8 часов на оптимизацию памяти, мы получим около 95 долларов за решение этой проблемы.
Может получим, а может получим еще пару проблем, куда более дорогих. Так обычно и бывает о всеми этими оптимизациями.

Dmitry
23.10.2017
13:04:30
Электронщиков на кол!
/me кончил и закурил (с)

Stepanos
23.10.2017
13:25:21

Oleg
23.10.2017
13:38:40

Pavel
23.10.2017
13:39:43
100 rest запросов в секунду - это много или мало? =)

Oleg
23.10.2017
13:40:01

Stepanos
23.10.2017
13:40:33
@chebotarevp когда на Java переписали, стало в 12 раз больше)) запросьі те же остались

Dmitry
23.10.2017
13:40:49
Да там статья про то что с GC у питон вообще все в разы хуже чем у Ди там типа даже базовые типы жрут в 3 раза больше памяти чем надо

Pavel
23.10.2017
13:40:50
Но наверно и памяти жрет в 12 раз больше)
А как связаны "жрет в 3 раза больше" и GC ?
Если оно жрет но при этом эффективно и быстро освобождается - то все ок.
А если жрет в 10 раз меньше но при сборке все фризится - это не ок.

Oleg
23.10.2017
13:43:32
Ок или нет зависит от задачи и условий

Ievgenii
23.10.2017
14:05:28
Там просто такие разработчик были, явно...

Stepanos
23.10.2017
14:13:34
Ievgenii ну логику пилять на PHP (а там ее дофига) - плохая идея. он реально тугой

Ievgenii
23.10.2017
14:40:20
Субъективное мнение