@dlangru

Страница 416 из 719
Denis
25.02.2018
15:47:52
так напиши скрипт и положи его в корень, в чём проблема то?

targetPath? А с ним что не так?

Oleg
25.02.2018
15:49:03
1 скрипт для подмены ldc, другой скрипт копирования доп файлов после сборки, ещё скрипт для того чтобы можно было спокойно собирать под 2 архитектуры в разные папки

Denis
25.02.2018
15:49:05
определение целевой платформы за рамками DUB просто

Google
Oleg
25.02.2018
15:49:16
как раз таки нет

Denis
25.02.2018
15:49:22
таки да

Oleg
25.02.2018
15:49:25
dub определяет целевую платформу

Denis
25.02.2018
15:49:26
я про тип процессора

не про targetType

Oleg
25.02.2018
15:50:01
причём достаточно хитро: создаёт файл со всеми возможными version и собирает его указанным компилятором

файл этот уже возвращает json с платформой

и дальше эта информация используется чтобы нужные библиотеки например слинковать (разные для разных архитектур)

Denis
25.02.2018
15:51:34
ну дык всё верно же. тут просто компилятор снаружи как бы а DUB урвонем ниже подсовывает всё что надо для сборки, так можно считать

Denis
25.02.2018
15:52:12
я щитаю это правильным потому что иначе бы мы щас имели кучу 32битных интеловых пакетов и кучу 64битных

Oleg
25.02.2018
15:52:17
по мне так эти задачи должна система сборки отрабатывать

Google
Denis
25.02.2018
15:52:49
DUB по документации не является системой сборки, он пакетный менеджер. Если уж буквоедствовать

Oleg
25.02.2018
15:53:08
ну вот

но для чего-то туда добавили эту возможность

Denis
25.02.2018
15:53:36
это как travis-ci использовать - он СНАРУЖИ дёргает DUB с разными опциями и собирает таким образом разными компиляторами один и тот же пакет

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

был наверно ещё вариант генерить через DUB Makefile - тебе хочется такого?)

Oleg
25.02.2018
15:55:08
ну а разница?

в любом случае в dub.sdl не прописать всего

Denis
25.02.2018
15:55:22
кстати, вот этот мужик https://github.com/JinShil ковыряет D на голом ARM

Oleg
25.02.2018
15:55:25
и что оно тогда сгенерит?

Denis
25.02.2018
15:55:36
и что оно тогда сгенерит?
то что попросишь внешними ключами

фишка в том что DUB отделяет стандартные опции языка и пакетов которые для всех архитектур подходят и нестандартные которых бесконечное множество вариантов.

Oleg
25.02.2018
15:56:08
ну так это ничем не отличается от сборки самим dub'ом

Denis
25.02.2018
15:56:40
ну да, представь что у тебя вместо dub компилятор - его же опциями настраиваешь и переменными? вот то же самое.

Oleg
25.02.2018
15:57:17
я смотрю на любые другие языки и вижу сборки cmake, meson и тд

Denis
25.02.2018
15:57:19
так что тебе надо скрипт пилить который будёт 4 раза dub дёргать. ожно даже Makefile написать, так проще если синтаксис знаешь

Oleg
25.02.2018
15:57:33
ты качаешь пакет и запускаешь одну команду без параметров, чтобы всё собрать

хотя бы в default'ном режиме

Denis
25.02.2018
15:57:56
Oleg
25.02.2018
15:58:11
не знаю такой

Google
Denis
25.02.2018
15:58:38
короче, твоя претензия это отсутствие возможности в версиях указывать флаги любые (компилятору, линкеру и т.д.)?

не знаю такой
http://lurkmore.to/%D0%9C%D0%B8%D0%BB%D0%BB%D0%B8%D0%BE%D0%BD%D1%8B_%D0%BD%D0%B5_%D0%BC%D0%BE%D0%B3%D1%83%D1%82_%D0%BE%D1%88%D0%B8%D0%B1%D0%B0%D1%82%D1%8C%D1%81%D1%8F

Oleg
25.02.2018
15:59:14
моя претензия к dub невозможности в одном файле полностью сконфигурировать сборку

Denis
25.02.2018
15:59:30
Но ведь есть cmake!

для этого

Oleg
25.02.2018
16:01:13
ну или meson

Denis
25.02.2018
16:01:23
угу

а я бы просто Makefile написал. clean там стандартный, install даже может. 6 строчек

и работало бы и в линуксе и в винде оно

Oleg
25.02.2018
16:03:26
Видимо так и надо делать

Но тогда зачем в dub копирования и pre и post команды?

Чтобы для простых случаев не нужен был cmake?

Denis
25.02.2018
16:04:36
думаю нет, не забывай что мы можем во время компиляции файлы парсить и прочее такое

думаю оно для этого

а пост это чтобы кучу бинарников распихать результирующих

ну короч на всякий случай. но общая идея (как я лично понял) именно вот как изложил - dub это не система сборки.

Oleg
25.02.2018
16:06:19
Вот в этом я и пытался удостовериться)

Просто могло же быть так что я просто не умею его готовить, поэтому создаётся ощущение пожирания кактуса

Denis
25.02.2018
16:07:57
вот travis-ci не юзал? там как раз есть выбор компиляторов и ОС, и он именно через переменные сделан, не надо прописывать в dub ничего для этого. Оттуда я и делаю вывод.

и как я понимаю, выбор компилятора это не только выбор компилятора, это ещё и выбор целевой архитектуры

Google
Pavel
25.02.2018
16:15:47
При создании треда сокеты копируются в него? Их надо закрывать и в родителе и в детеныше получается?

Denis
25.02.2018
16:34:36
сокет это int или Socket?

Socket убивает внутренний posix socket после выхода, int это просто int

Pavel
25.02.2018
16:39:13
У меня накапливаются какие-то хрени массово в lsof

Denis
25.02.2018
16:39:30
это же класс, как его в тред расшарить?

как треды плодишь?

Pavel
25.02.2018
16:39:47
socks5d 9394 ubuntu 325u sock 0,7 0t0 684457 can't identify protocol socks5d 9394 ubuntu 327u sock 0,7 0t0 686213 can't identify protocol socks5d 9394 ubuntu 329u sock 0,7 0t0 686235 can't identify protocol

Ну как обычно new Thread({ // work with mySocket here });

Denis
25.02.2018
16:42:27
так это кооперативная многозадачность же?

или я путаю?

Pavel
25.02.2018
16:42:56
Не, это обычный тред

Системный

Который почти как процесс

Denis
25.02.2018
16:43:31
ан у вот, короч сокет номер 1 закроется и закроет соединение, потому что он о своей "копии" знать не будет, он же не shared. Второй сокет при закрытии вызовет ошибку.

потому что тоже попробует закрыться

теперь когда у нас есть event loop из vibe нет нужды треды плодить ручками имхо

такие которые переменные снаружи шатают.

(я предполагаю что пишется какой-то сервер многопоточный)

Google
Denis
25.02.2018
16:46:32
отлично работает

опиши задачу

Pavel
25.02.2018
16:47:11
После некоторого времени намертво виснет в бесконечном цикле. Так что как бы замечательно он ни работал, в продакшен его выпускать нельзя.

Denis
25.02.2018
16:47:42
во, только что такую задачу решали с моей библиотекой)

короче очень плохо что сокет так вот передаётся. что сервер должен делать?

Pavel
25.02.2018
16:49:21
Передавать данные. Один тред работает в виде сервера, принимает клиентское подключение и работает с ним в созданном треде

Но при этом клиентский сокет то остается в родительском треде тоже

Denis
25.02.2018
16:51:06
не не, ты не как работает описывай, а какая задача стоит

Pavel
25.02.2018
16:51:18
:)

Denis
25.02.2018
16:51:25
ну без деталей, конечно

Pavel
25.02.2018
16:51:29
Задача такая ровно и стоит

Прокси сервер

Denis
25.02.2018
16:51:47
а ну то есть дальше пойдёт куда-то исходящее соединение?

Pavel
25.02.2018
16:51:54
да

Denis
25.02.2018
16:52:10
а исходящих соединений может быть столько сколько входящих? они кэшируются? в пуле?

Pavel
25.02.2018
16:52:48
В рожденном треде открывается сокет к целевому клиенту и гоняются данные между входящим и имходящим сокетом

Denis
25.02.2018
16:53:05
ага

Pavel
25.02.2018
16:53:21
а исходящих соединений может быть столько сколько входящих? они кэшируются? в пуле?
Не кешируются, без пула. Исходящих столько же сколько входящих

Denis
25.02.2018
16:54:10
ага жорошо

Pavel
25.02.2018
16:55:13
Как только или входящее или исходящее обрывается, я сразу делаю .close() на обоих сокетах и тред заканчивается

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