@dlangru

Страница 295 из 719
Dmitry
21.10.2017
18:02:36
А зачем по 4096 байт читать? Почему не все сразу?

assert(this.readable); Это что за флаг и где он устанавливается?

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

assert(this.readable); Это что за флаг и где он устанавливается?
проверка, что файловый дескриптор именно в режиме, позволяющем чтение. о чем раньше говорили - ассерты используют для проверки того, что бы в коде какой то хуни не допустили, и не пытаемся ненароком читать из файла, открытом на запись.

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
Ну вот в моем случае на другом "компе" он как раз не заработал
А точно проблема в дишном рантайме? На сколько я знаю он около 200КБ и в бинарик влинковывается

А все остальное это 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 говорит?
/ # readelf /bin/sh: readelf: not foundНу в минимальном контейнере он говорит вот такое =) А в обычной версии сейчас посмотрю

$ 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
ну и значит, фобос статически слинкован

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

Pavel
23.10.2017
10:21:51
ну и значит, фобос статически слинкован
Да скорее всего ты прав. В релизном режиме бинарник весит 2.6 МБ, а в моем контейнере он весил 437 КБ. Все дело в ldc стало быть?

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
мне надо просто понять как использовать тему для своего приложения и упаковывать вместе с ней в дистр
вроде флагами gtk можно указать тему, но если ты сам разрабатываешь, о можно выставлять css ручками

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

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
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
может даже найти какой-нибудь material ))
https://github.com/adapta-project/adapta-gtk-theme

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 кончил и закурил (с)

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
Субъективное мнение

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