
Nick
12.08.2016
08:33:36
по поводу сборки просветите пожалуйста, кто как чистит/ужимает бинарники... насколько помню D не умеет динамически линковать, посему если использую например gtkd, то сую его всей пачкой к себе, в размере 20мб

Oleg
12.08.2016
08:35:48
умеет, но по умолчанию не делает...
это касается стандартной библиотеки
gtkd это немного другое

Google

Nick
12.08.2016
08:36:30
а как заставить ) стандартную библиотеку так и так придётся внутри бинарника держать как я понимаю

Oleg
12.08.2016
08:37:14
обёртка gtk статически линкуется, а сам gtk подключается динамически, вроде...

Nick
12.08.2016
08:37:31
щас покопаю, может тут https://dlang.org/dll-linux.html

Oleg
12.08.2016
08:37:55
сейчас политика статической линковки в том, что d не так распостранён и много где нет его std в виде библиотек
на данный момент это сильно упрощает перенос приложений

Nick
12.08.2016
08:38:30
ну как минимум иногда хочется либы держать в отдельных файлах

Oleg
12.08.2016
08:38:38
зачем?
насчёт gtkd согласен, но остальное как-то вроде не парит
gtkd долго компилится
но он не каждый раз должен компилиться

Nick
12.08.2016
08:39:38
не парит, но если что можно было бы и пакет замутить для моего debian чтобы прочий софт динамически линковать

Oleg
12.08.2016
08:40:01
пакет с прогой + пакет с либами?

Nick
12.08.2016
08:40:20
типа того, стандартно жеж, зависимости пакетами

Google

Oleg
12.08.2016
08:40:42
я про то, что нет dlang std как пакета

Nick
12.08.2016
08:41:04
так никто не мешает задеплоить если есть техническая возможность

Oleg
12.08.2016
08:41:04
есть полностью компилятор (и то не в репах, а если и в репах, то не всех)
а насчёт gtkd, кстати, удобно получается

Nick
12.08.2016
08:41:45
в репах конечно всегда старье, у меня из реп DMD64 D Compiler v2.071.0 поставился например

Oleg
12.08.2016
08:42:03
не такое и старьё) у меня в репах вообще его нет)

Nick
12.08.2016
08:42:25
gdc 5.4.0

Oleg
12.08.2016
08:42:36
удобно с gtkd получается потому, что он статически слинкован и в зависимости стоит только gtk

Nick
12.08.2016
08:43:06
а можно какойнть ссыль или как быстро найти как правильно слинковать

Oleg
12.08.2016
08:43:19
у меня 4.9.2 (dmd 2.066.1)

Nick
12.08.2016
08:43:25
вопросы нубовские конечно ) я ж вебщик

Oleg
12.08.2016
08:43:46
dub сам всё делает (и компилит gtkd и линкует его к проекту)

Nick
12.08.2016
08:44:34
да, но он помещает всё в бинарник, хочу его похудеть

Oleg
12.08.2016
08:44:55
ну это только динамическая линковка
и это ведёт к тому, что нужно скомпилить gtkd в динамические либы (по умолчанию он в статические компилит)
в readme на github есть как
https://github.com/gtkd-developers/GtkD
но всё равно не вижу пока в этом смысла
больше библиотек в зависимостях, но зато меньше исполняемый файл

Google

Oleg
12.08.2016
08:48:55
когда программ на D в системе больше 10, то наверное может иметь смысл
при условии, что все 10 программ используют gtkd

Nick
12.08.2016
08:49:36
ну вопрос с запасом )

Oleg
12.08.2016
08:50:04
вроде есть некоторые проблемы с компиляцией динамических библиотек под win

Nick
12.08.2016
08:51:32
первичная задача конечно сейчас просто убрать всё лишнее по возможности из бинарника, тк не верится что он тут собрал 24мб чисто из привязок и стандартной библиотеки

Oleg
12.08.2016
08:52:10
почему нет?
отладочная информация ещё для всего этого
или это release столько?

Макс
12.08.2016
08:52:34
Команда strip может ужать значительно.

Oleg
12.08.2016
08:52:46
что за команда?

Макс
12.08.2016
08:52:51
правда, я тоже нуб и слабо знаю, что она делает
линуксовая команда. ужимает бинарный файл

Oleg
12.08.2016
08:53:09
это какая-то отдельная прога, как, например ddmangle?
или она чисто линуксовая и не относится к dlang?

Макс
12.08.2016
08:53:28
выкидывает debug-инфу и что-то подобное
да, не имеет отношения к D
но я свои дишные бинарники ею пожимал

Nick
12.08.2016
08:54:43
а ничего так %) сразу 18мб слизнуло
видимо dmd пихает действительно полно отладочной фигни

Oleg
12.08.2016
08:55:16
без gtkd слизнул с 2.2Мб до 1.5Мб

Google

Nick
12.08.2016
08:55:36
спасибо за наводку в лбом случае
жирно конечно всё равно, если 1.5мб стдлиб занял
в такой вес можно целую ось поместить
не говоря уже что gtkd 5мб, а она насколько понимаю просто биндинги описывает
вопрос имеет вес при разработке для мобилок и контроллеров

Oleg
12.08.2016
09:03:04
ну как сказать... приложения сейчас для мобилок достаточно много весят
про контроллеры согласен
http://pdalife.ru/asphalt-8-android-a5592.html (1280 Мб в распакованном виде)

qwe
12.08.2016
09:16:00

Nick
12.08.2016
09:17:53
да

Admin
ERROR: S client not available

Nick
12.08.2016
09:18:58
только както странно, сейчас и dub без параметров урезанный бинарник делает, кэширует чтоли
--force пересобрал снова 24мб

Pavel
12.08.2016
09:22:51
Ты релиз собираешь или дебаг режим?

Oleg
12.08.2016
09:27:46
без gtkd разница между dmd file.d (2.2Мб) и dmd -release -O file.d (2.1Мб) минимальна
что достаточно странно

Макс
12.08.2016
09:44:10
а release-nobound не сожмёт ещё больше?
или release-nobounds, не помню

Oleg
12.08.2016
09:45:37
nobounds — отключение проверки выхода за пределы массива
мне кажется не много занимает

Макс
12.08.2016
09:46:55
просто предположил

Google

Oleg
12.08.2016
09:47:24
16 кб
на том же примере (с 2148 до 2132 меньше стало)

Макс
12.08.2016
09:49:19
может, нужно как-то раздробить std? скомпилировать её максимально независимыми кусочками... если уж так сильно хочется.

Oleg
12.08.2016
09:50:27
кстати говоря
в std ООЧЕНЬ много шаблонного кода
его не скомпилить в библиотеку
в любую библиотеку не скомпилить
тоесть шаблон должен инстанцироваться при компиляции проекта и соответственно его код сразу попадает в исполняемый файл

Макс
12.08.2016
09:52:09
тогда странно, лишнее как раз и не должно попадать в проект

Oleg
12.08.2016
09:52:20
так-то да...
кстати говоря
ldc2 стоит попробовать
во первых под микроконтроллеры не очень с dmd
во вторых ldc2 -release -O2 file.d выдаёт файл размером 716Кб
тот же, что dmd на 2.1Мб
код ldc2 работает быстрее
и 1.1.0-beta2 основана на 2.071.1
и split не может уже урезать исполняемый файл

qwe
12.08.2016
10:41:24
а с dub работает?
ldc

Oleg
12.08.2016
10:42:19
да

qwe
12.08.2016
10:42:25
мм