@dlangru

Страница 136 из 719
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
но для тестов все равно нужна будет виртуалка)

Maxim
22.03.2017
09:28:46
пичаль-пичаль)

хотя, можно, конечно, под вайном тестировать)

кросскомпиляция из линукса и юнит-тесты под вайном для месье, которые знают толк)

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

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
А по Go подсказать кто-нибудь может?
https://github.com/A-gambit/awesome-telegram-chats

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

только что для работы с OpenStreetMap такую утилиту нашел

явовская версия была каким-то нерабочим адом

@deviator кстати, у меня из головы вылетело. В итоге на Ди можно слинковать исполняемый файл так же как на Go чтобы не было никаких внешних зависимостей?

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
А как быть с msvcr ? У меня его постоянно на чистой винде не хватает
опять же в детали углублялся я бы только в том случае, если бы что-то не заработало. в моём случае я на 10 винде собирал и на другой машине (тоже 10) запускал. из зависимостей доставлял только gtk, возможно он и содержит этот самый msvcr

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

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

Oleg
22.03.2017
14:19:28
http://stackoverflow.com/insights/survey/2017/
занимательно, но D, не в топе( D в жопе(

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
но у D есть своя киллер фича, конечно, — это приятность, почти все, кто пробовал его, говорят, что на нем приятно писать
Мне писать приятно но я чувствую что многие вещи не могу интуитивно вывести, надо что-то с этим делать

ubyte[] buf = new ubyte[1024]; auto read = socket.receive(buf); buf = buf[0 .. read]; Из своего старого кода, который работает, взял.
Например вот с этим у меня вышел затык, я попробую конечно это, но вообще, почему бы не иметь возможности скастовать структуру к некой области памяти определенного размера?

Заполнить ее из сокета и дальше с ней работать как со структурой.

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
Да нет, это скорее как "нахер пдд, я сам знаю как мне кататься"

мой хак никогдане приведет к переполнению буфера
А в чем разница, кроме того что размер передается неявно?

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