@dlangru

Страница 80 из 719
Anatoly
05.10.2016
06:56:35
кросскомпиляция гуглится ... LDC / GDC …

Grigirii
05.10.2016
08:41:56
с кросскомпиляцией всё отлично, но не на DMD. я собирал дишный код для распбери пи и даже vibe.d поднялся https://habrahabr.ru/post/278775/

Anatoly
05.10.2016
09:01:37
годная статья

Dmitry
05.10.2016
10:09:19
Кому про ключи компиляции интересно: My understanding was that -betterC was not fully implemented yet, due mostly to tight compiler integration with the runtime. (old info?) I'm not super smart on the DMD source, but it looks like betterC prevents genhelpers() and genModuleInfo() from being called, with "helpers" appearing to be array checking, asserts and unit tests. A comparison of object files compiled with and without the flags shows just a small reduction in the size of the code, but grepping for bounds checking, unit tests and ModuleInfo in the -betterC generated object file shows they are missing. It is intended to allow you to link an application without druntime

Google
Peter
05.10.2016
11:00:46
Мне бы из линукса в винду собирать

ну вот

Pavel
05.10.2016
12:11:34
"Численность вашей деревни уменьшилась"

Oleg
05.10.2016
13:24:53
Мне бы из линукса в винду собирать
Ни разу этим не занимался, но почему-то кажется, что это проблема: в винде под разные битности разные линковщики нужны, ldc2 под винду (когда пробовал) не смог завести (да и не хотел особо), а gdc это mingw тусовка со всеми вытекающими. Имхо под вин только dmd норм работает (нормальный установщик, сам все пути прописывает), но и тут проблема с 64 битами - нужно вижак ставить чтобы линкер откуда подтянуть.

Pavel
05.10.2016
14:09:01
Опять Mike left group. Сколько можно уже??

Oleg
05.10.2016
14:11:58
это как с new/delete — сколько присоединился, столько и покинул)))

Oleg
06.10.2016
14:04:21
Я не говорил, что он плох, просто это gcc backend

Peter
06.10.2016
14:04:46
ну да, зато можно линкер из mingw использовать

можно же?

Oleg
06.10.2016
14:05:15
Хм, как-то не слышал о таких манипуляциях

Но звучит круто)

Peter
06.10.2016
14:06:08
а ты видел новомодные хипстерские языки типа Golang?

Google
Oleg
06.10.2016
14:48:15
видел конечно

ну я про go и rust

Peter
06.10.2016
14:48:52
в расте я неосилил кросскомпиляцию с линукса в винду, а вот в го это сделано божественно

//не фанбой, если что

Pavel
06.10.2016
14:56:56
У меня тут знакомый как раз пытается скомпилировать программу на го под все платформы, матерится уже час :)

Peter
06.10.2016
14:57:11
pure go?

Pavel
06.10.2016
14:57:22
?

Он под mac собирает

Peter
06.10.2016
14:57:38
чистый го? без сишки?

пусть в личку напишет

Pavel
06.10.2016
14:59:56
Да он вроде собрал уже

Peter
06.10.2016
15:02:23
код кривой, скорее всего. если чистый го, то собирается без проблем. для сишки нужен гцц и линкер, в линуксе ни один компилятор (кроме го) не умеет в mach-o

хотя не, видел какие-то вундервафли на гитхабе для компиляции сей в макинтош. насколько оно вообще рабочее - не представляю.

Dmitry
06.10.2016
19:21:26
на выходе что получается тупо 2-3 бинарика под разные платформы?

Их же перед тем как отдавать потестить нужно...

Dmitry
06.10.2016
19:21:57
да

Peter
06.10.2016
19:22:14
да)

можно компилить на 1 платформе под 5 или 6

это если чистый го, без си

Google
Dmitry
06.10.2016
19:23:23
а где гарантия что если я бинарик такой буду людям раздвать он у них заработает как надо? Там же наверняка как минимум проблемы с зависимостями всплывут

а если с си то?

Peter
06.10.2016
19:24:29
гарантия - скомпилилось. могут быть какие-то платформозависимые фичи как то пути файлов, вин - линь например

Pavel
06.10.2016
19:24:33
Обычно в го все зависимости в бинарник засовываются

Даже бд

Получаем полностью самостоятельный код

Peter
06.10.2016
19:24:54
да, зависимости все компилятся в один бинарь

а если с си то?
а с си тебе нужен компилер и линковщик сишки под платформу

Dmitry
06.10.2016
19:25:54
а в ди такое возможно?

Peter
06.10.2016
19:26:06
а вот я бы тоже хотел это знать

Dmitry
06.10.2016
19:27:08
ну хотя бы все зависимости вшить в файл

Pavel
06.10.2016
19:27:19
Так вроде да

Dmitry
06.10.2016
19:27:36
а что для этого нужно?

Pavel
06.10.2016
19:27:48
А отчего думаешь на ди получаются хелловорлды на 10 мегабайт? ?

Dmitry
06.10.2016
19:28:04
а как его собирать надо такой?

Pavel
06.10.2016
19:28:18
а что для этого нужно?
слинковать статически с библиотеками

Peter
06.10.2016
19:28:20
ну хотя бы все зависимости вшить в файл
наверное можно http://stackoverflow.com/questions/10365987/how-to-link-to-d-libraries-in-a-d-program

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

это ведь реально очень удобно, работать на любимой операционке и деплоить под любую другую

Sergey
07.10.2016
05:23:27
что-то эпизод дня рождения ослика из Винни-Пуха вспомнился. Про горшочек и шарик

Google
Dmitry
07.10.2016
05:29:46
Неужто при кроссбилде бинарики у юзеров будут работать с гарантией? Я просто до сих пор не могу поверить, что при сборке из под винды на том же линуксе какие то библиотеки не запросит которых там по дефолту нет (и наоборот)

Peter
07.10.2016
05:31:02
будут работать) у бинаря написаного на го нет зависимостей, он компилится в статик линкед

Dmitry
07.10.2016
05:37:29
Я никак себе в голову не мог уложить. Чем статическая либа от динамической отличается. Ясно дело что вторая подгружаемая, но что мешает из нее просто на этапе компиляции функции импортировать нужные

Peter
07.10.2016
05:38:48
так динамическая лежит в /var/lib, и нет гарантии что на таргет машине она будет. а так ты отдаешь 100% рабочую программу

Dmitry
07.10.2016
05:40:54
А в чем проблема ее вкомпилить? Как я понимаю в этом вся проблема, что динамическую надо отдельно таскать. И в бинарик ее не вшить

Admin
ERROR: S client not available

Peter
07.10.2016
05:41:13
так они разные же

ты когда на си компилишь, задаешь флагами

статик и шаред

нельзя просто взять и вкомпилить шаред либу

Dmitry
07.10.2016
05:42:39
Так я Си не знаю и не понимаю почему одну можно вкомпилить а другую нет

Peter
07.10.2016
05:43:34
http://zavelos.ru/forum/23447-Static-Shared-libraries

Dmitry
07.10.2016
05:44:47
О ща почитаю

Как я понял на уровне архитектуры разница только в том что статик результаты линковки включает?

А что они из себя представляют?

Другой разницы нет?

Любую либу как статик можно собрать?

Peter
07.10.2016
05:49:17
теоретически да (наверное) ?

0x9d8e
07.10.2016
09:22:40
Мне всётаки кажется запихивать все зависимости в бинарник плохо хотябы тем, что он выходит сильно раздутым. А ещё, если обновится какая либо, то нужно обязательно весь этот огромный бинарник обновлять. И лежит эта обязанность на его авторе. А обновление-то может быть критичным.

Peter
07.10.2016
09:24:19
да, бинари выходят большие, но это, как бы, сейчас не такая уж проблема. обновить в принципе не проблема

Google
0x9d8e
07.10.2016
09:24:34
В итоге такое пригодно только для всяких закрытых коробочных продуктов, в которых просто отсутствуют открытые либы, а производитель сам запаривается о регулярном обновлении своего продукта.

Но и тогда, по-мне так лучше бы эти либы лежали _рядом_ с бинарником

0x9d8e
07.10.2016
09:25:45
их можно будет обновить отдельно

Peter
07.10.2016
09:26:24
мы еще о гоу говорим? :) у него нет такой необходимости, нет необходимости в таких библиотеках.

0x9d8e
07.10.2016
09:26:58
как так? не понимаю, как это возможно

Peter
07.10.2016
09:28:59
ну блин :) большинство всех этих библиотек просто набор нескольких десятков функций, сахарок над стдлиб. большие библиотеки типа opencv - биндинги к сишной opencv, какие-то багфиксы происходят в оригинальной библиотеке, в биндингах особо нечего фиксить.

к тому же десктопный софт на нем почти никто не пишет, то есть девелопер сам может без проблем пересобрать что ему нужно

если это какой-то веб-фреймворк, то авторы обычно заботятся о совместимости, перекомпилять гоу программу дело нескольких секунд, компилится очень быстро

0x9d8e
07.10.2016
09:38:29
спасибо, теперь понятно

Peter
07.10.2016
09:39:18
у него мощная стандартная библиотека, есть практически на любой вкус

Dmitry
07.10.2016
09:42:17
Лично мне размер бинарика мало интересен. Гораздо удобнее когда все в него вшито.

Peter
07.10.2016
09:42:48
ну тебе же не вирусы писать ?

а кому-то надо минимальный размер

Dmitry
07.10.2016
09:43:11
Вот как допустим поддержку openssl вшить?

Peter
07.10.2016
09:43:41
у гоу openssl вроде не используется

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