
Oleg
22.03.2017
09:22:09
Я так понимаю единственный нормальный вариант это виртуалка?

Dmitry
22.03.2017
09:23:02
В Win10 вроде можно собирать линуксовые бинарики

Oleg
22.03.2017
09:23:17
хм
но у меня обратная ситуация)))

Google

Dmitry
22.03.2017
09:23:38
там тема была на форуме и даже образ докера был чтобы под виндой под андроид компилить

Oleg
22.03.2017
09:23:54
мне на linux надо под win10 собирать
под wine никто не запускал ldc виндовский? ?
бред бредом, но сейчас попробую)))

qwe
22.03.2017
09:26:51
Both GDC and LDC can be built so they can target Windows 32bit or 64bit straight from your Linux box.
http://stackoverflow.com/questions/13501595/should-i-compile-d-program-on-linux-for-windows
@deviator

Oleg
22.03.2017
09:27:32
оооо

Maxim
22.03.2017
09:28:08
но для тестов все равно нужна будет виртуалка)

qwe
22.03.2017
09:28:32

Maxim
22.03.2017
09:28:46
пичаль-пичаль)
хотя, можно, конечно, под вайном тестировать)
кросскомпиляция из линукса и юнит-тесты под вайном для месье, которые знают толк)

Google

Oleg
22.03.2017
09:30:44
сейчас проверю всё это)

Eto
22.03.2017
09:54:49

Oleg
22.03.2017
10:06:47
не, чёт просто так ldc не хочет собирать по win32
выдаёт что не определён символ FILE в core.stdc.stdio

Денис
22.03.2017
10:42:01
Всем привет
А по Go подсказать кто-нибудь может?

Maxim
22.03.2017
10:43:12
это канал об аниме? ©

Eto
22.03.2017
10:43:22

Денис
22.03.2017
10:44:02

Dmitry
22.03.2017
11:15:50
Кстати, на Go (жаль что не на Ди) полезные утилиты все же некоторые пишут. После поделий на Яве приятно когда на выходе один бинарик без доп-гемороя
только что для работы с OpenStreetMap такую утилиту нашел
явовская версия была каким-то нерабочим адом
@deviator кстати, у меня из головы вылетело. В итоге на Ди можно слинковать исполняемый файл так же как на Go чтобы не было никаких внешних зависимостей?

Pavel
22.03.2017
13:32:08

Oleg
22.03.2017
13:53:06

Dmitry
22.03.2017
13:54:11
А как быть с msvcr ? У меня его постоянно на чистой винде не хватает

Eto
22.03.2017
13:59:20
http://stackoverflow.com/insights/survey/2017/

Oleg
22.03.2017
14:12:28

Dmitry
22.03.2017
14:12:54
у меня такое с вайбом постоянно

Google

Dmitry
22.03.2017
14:13:30
какая-то его часть походу на *ssl какой-то завязана

Oleg
22.03.2017
14:19:28

Pavel
22.03.2017
14:22:01
Я его там что-то вообще не найду нигде

Eto
22.03.2017
14:36:24
Может это и к лучшему? Меньше обезьянок будет писать спагетти на D.

Pavel
22.03.2017
14:44:11
Так тогда его и будут в проде использовать только отъявленные энтузиасты, и при первой же возможности все будут переписывать на Go/Rust

Eto
22.03.2017
14:54:30
Эх, вероятно ты прав.

Maxim
22.03.2017
15:22:28
в очередной раз упираемся в отсутствие крупной компании, стоящей за D, или крупного свободного проекта, написанного на нем

Pavel
22.03.2017
15:23:50
Ну ведь штуки навроде питона и пхп как-то сами развивались на своем сообществе и нормально.
У них коммерческие вливания появились довольно поздно.

Maxim
22.03.2017
15:24:53
про питон ничего не могу сказать, а похапе прост, как три копейки, поэтому и взлетел
собственно, он взлетел, когда из альтернатив был только перл, который придумали инопланетяне)

Pavel
22.03.2017
15:25:31
То есть мы все же упираемся в сложность языка а не в коммерческую поддержку?

Maxim
22.03.2017
15:25:58
тут комплексная проблема
похапе изначально был «препроцессором» и был придуман для того, чтобы домохозяйки могли ваять свои сайтики, в этом была его киллер фича по отношению к популярному на тот момент перлу

Pavel
22.03.2017
15:27:23
Я надеюсь что все же доберусь до кода и допишу свою проксю. А то даже простых утилит нету в паблике, чтобы почитать, поучиться. Это меня тоже демотивирует.

Maxim
22.03.2017
15:27:52
D позиционирует себя как язык общего назначения, а значит, в области системного программирования он как бы должен переманить программистов C или C++, которым в силу понятных причин плевать на простоту языка
а в области веба он конкурирует с тем же похапе или го, которые на порядок проще в освоении
но у D есть своя киллер фича, конечно, — это приятность, почти все, кто пробовал его, говорят, что на нем приятно писать
но для энтерпрайза этого мало, энтерпрайзу нужна компания. которая будет стоят за D и гарантировать, что экосистема не помрет, когда двум с половиной программистам, которые пилят компилятор и стандартную библиотеку, надоест этим заниматься
вот и выходит, что D — это для энтузиастов и маленьких компаний, которые не так сильно боятся смерти экосистемы

Google

Pavel
22.03.2017
15:31:50
Заполнить ее из сокета и дальше с ней работать как со структурой.

Maxim
22.03.2017
15:35:01
это опасно)
можно сделать хак с union, кстати

Pavel
22.03.2017
15:37:37
А чем опасно просто так заполнять?

Maxim
22.03.2017
15:39:07
меньше контроль за размером переменных, можно выйти за границы
я обычно так делаю:
auto get(T)(socket s, T struct)
{
union buffer {
ubyte[T.sizeof] b;
T v;
}
buffer buf;
socket.receive(buf.b);
return buf.v;
}
прокатывает)

Admin
ERROR: S client not available

Maxim
22.03.2017
15:40:19
ну и код получается @safe

Pavel
22.03.2017
15:42:01
Выглядит прикольно, но как видишь даже тут хак пришлось сделать. А как это работает? Разве в buf.v что-то попадет?

Maxim
22.03.2017
15:43:02
собственно, union для этого и придуман: переменные b и v занимают одну область памяти, размер union равен размеру максимальной переменной
но это хак, да)
хотя, изящный, не помню, где подсмотрел)

Pavel
22.03.2017
15:43:51
А то есть b и v указывают на одно и то же, но b как массив ubyte а v как структура?

Maxim
22.03.2017
15:43:57
да

Pavel
22.03.2017
15:44:32
? Но я бы с моей текущей скоростью изучения через пару месяцев гугления только может быть набрел бы на такое решение. Спасибо что подсказал.
Ну и собственно непонятно почему не срабатывает что-то типа
socket.receive(&mysrtuct, mystruct.sizeof);

Maxim
22.03.2017
15:45:30
потому что безопасность)

Google

Maxim
22.03.2017
15:46:01
я тоже, когда начинал с D развлекаться, очень долго отучался думать в стиле указателей
на самом деле, это инерция мышления)

Max
22.03.2017
15:46:53

Maxim
22.03.2017
15:47:03
нет)
мой хак никогдане приведет к переполнению буфера

Pavel
22.03.2017
15:48:00
)) Я просто сам из мира интерпретируемых языков, а на C/C++ писал в студентчестве на втором курсе, и там помню довольно просто можно было написать, просто льешь данные в память по адресу и все ок.
Ну или в ассемблере была адресация BYTE PTR, DWORD PTR и т.д.

Oleg
22.03.2017
15:49:05
а вообще что такое опасно и безопасно?
опасно не знать что у тебя происходит в программе

Maxim
22.03.2017
15:49:23
я имею в виду управление памятью

Oleg
22.03.2017
15:49:33
не понимать сколько памяти куда отправил, что принял и тд
вот это действительно опасно

Maxim
22.03.2017
15:50:00
когда ты отдельно указываешь область памяти, куда читать, и количество байт, которые надо прочитать, велика вероятность, что когда-нибудь ты с этим накосячишь

Pavel
22.03.2017
15:50:37
Но если я указываю явно mystruct.sizeof то как компилятор может заподозрить меня в косяке? Я же точно по размеру читаю.

Maxim
22.03.2017
15:50:47
регулярно появляющиеся уязвимости, связаныне с переполнением буфера, доказывают, что от этого не застрахованы 100% разработчиков, и чем больше проект, тем больше вероятность, что такой косяк вылезет

Oleg
22.03.2017
15:51:06
ну хз, с такой же логикой можно не водить машину а ездить на общественном транспорте

Maxim
22.03.2017
15:51:17
я так и делаю)

Oleg
22.03.2017
15:51:18
мол всё равно накосячишь
лично по мне это просто не удобно
2 раза указывать то, что хранится в одном месте

Maxim
22.03.2017
15:51:57
потому что инертность мышления)

Max
22.03.2017
15:52:11
Да нет, это скорее как "нахер пдд, я сам знаю как мне кататься"