@dlangru

Страница 141 из 719
Oleg
24.03.2017
20:17:26
именно beta, а не head с master

LOL

403 ошибка при скачивании

мне не разрешают новый компилятор(

Google
Oleg
24.03.2017
20:18:34
http://downloads.dlang.org/pre-releases/2.x/2.074.0/dmd-2.074.0~b1-0.fedora.x86_64.rpm

у всех так, или у меня только?

Maxim
24.03.2017
20:19:09
у меня так же

Shorty(Ale Chapa) Manskiy
24.03.2017
20:19:30
http://nightlies.dlang.org/dmd-nightly/dmd.master.windows.7z
примая ссылка, какбы всегда последняя версии. только-что проверил, все там есть.

Oleg
24.03.2017
20:19:55
ну так это master

прям самый самый свежак

самый самый сырой

Shorty(Ale Chapa) Manskiy
24.03.2017
20:20:16
ну естественно мастер.

Oleg
24.03.2017
20:22:58
кстати на все платформы

опять косячат)

Shorty(Ale Chapa) Manskiy
24.03.2017
22:03:29
Я не знаю ассемблер, но IDA Pro примерно такой код показывает: // dmd file -O -release -inline -boundscheck=off T f1(ref T[] arr) { uint len = arr.length; uint idx = 0; T* item = arr.ptr; if (len) { do { if (arr[idx] > *item) item = &arr[idx]; ++idx; } while (idx < len); return *item; } return 0; } void f2() { uint idx = 0; T item = arr[0]; uint len = arr.length; if (len) { do { if (arr[idx] > item) item = arr[idx]; ++idx; } while (idx < len); } }

return 0; - там такого небыло, это я сам добавил.

Google
Shorty(Ale Chapa) Manskiy
24.03.2017
23:26:48
в теле benchmark: f1- вызывается каждую итерацию; f2 - полностью встраивается.

Dmitry
25.03.2017
06:49:41
э... Bar b = new Bar(); b.message = { return "Basic progress bar"; }; Последняя строка в данном случае что делает? на метод message веiает текст?

Oleg
25.03.2017
06:59:30
message в этом случае либо delegate, либо function (либо @propetrty, которая их принимает), просто происходит присвоение переменной

message потом можно вызвать как метод, который вернёт строку

Pavel
25.03.2017
09:59:05
Что то мне разонравилась идея читать из сокета в структуру

Почти все пакеты в socks5 переменной длины, получается структура отражает фиксированную часть пакета, потом мы смотрим длину оставшейся части и дочитываем пакет. Криво-костыльно.

Dmitry
25.03.2017
10:54:26
Альтернатива какая?

Сергей
25.03.2017
11:03:41
Никакой, это нормальный способ передачи данных по tcp

Pavel
25.03.2017
11:37:53
Альтернатива - каждый пакет представлять в виде класса

И в класс засунуть логику чтения

Там правил немного. "Прочитай байт из сокета", "прочитай столько байт сколько в первом полученном байте из сокета",

Maxim
25.03.2017
11:52:53
не думаю, что это хорошая идея, покси должна быть быстрой, а создание объектов — операция с огромными накладными расходами)

в идеале, конечно, это область, где очень подходит чистый C или C-подобный D, как раз и скилл можно прокачать и понять, насколько удобно использовать D без всяких навороченных плюшек, т.е. насколько он вообще подходит для системного программирования)

Pavel
25.03.2017
12:47:04
тогда придется еще писать бенчмарк для прокси

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

Я щас изучаю аналогичный исходник на c++ и там много каши

Dmitry
25.03.2017
16:18:59
Никак не пойму на что он тут ругается:



Pavel
25.03.2017
16:20:27
Похоже что он ожидает символ а не строку? Попробуй '#'

Dmitry
25.03.2017
16:21:17
судя по дока он строку тоже должен понимать: assert(startsWith("abc", ""));

Google
Dmitry
25.03.2017
16:21:57
с символом такая же фигня

все, кжется дошло, он не понимает что content нужно сплитом бить

и видимо его по символам пытается обработать

Oleg
25.03.2017
16:46:46
и видимо его по символам пытается обработать
ну так если content просто строка, то да

если ты написал foreach (line; somestring) это не значит, что компилятор увидев line будет по строкам итерировать somestring =)

есть splitByLines (кажется так)

Dmitry
25.03.2017
16:48:08
угу

lineSplitter заюзал

А есть ли способ при: foreach(line; content.lineSplitter) понять что мы находимся на последней строке файла? и дальше конец

Oleg
26.03.2017
09:15:59
А есть ли способ при: foreach(line; content.lineSplitter) понять что мы находимся на последней строке файла? и дальше конец
Это нужно сначала результат auto lines = ...lineSplitter в переменную загнать, и по ней итерироваться со включенной индексацией, и видимо делать index == lines.length

А как проще это сделать я даже не знаю) D же не итератор возвращает

Pavel
26.03.2017
11:46:39
Наткнулся на BigEndian когда читал ushort из сокета, пока решил проблему встроенной функцией swapEndian()

Eto
26.03.2017
11:48:41
https://www.youtube.com/watch?v=WaNLJf8xzC4

Pavel
26.03.2017
12:09:43
У меня это как-то не сработало

Вообще я больше всего борюсь с проблемами кастования типов между собой.

ubyte[4] в uint он не хочет сам переделывать ?

Oleg
26.03.2017
12:11:49
union, не?

Pavel
26.03.2017
12:12:59
Да вот мне думается должен быть какой-то более высокоуровневый способ

Oleg
26.03.2017
12:21:38
Да это вообще не высокоуровневая задача

Google
Pavel
26.03.2017
12:23:11
Ну мне надо подключаться к серверам, и я щас набрел на замечательную структуру InternetAddress, похоже что надо ее 1 раз заполнить IP адресом и портом и далее везде использовать. И никаких левых кастований.

Oleg
26.03.2017
12:47:07
Возможно

Maxim
26.03.2017
17:07:57
кастования — это вообще самая низкоуровневая вещь, какая может быть)

как вариант, для little endian: uint i = b[0] | b[1] << 8 | b[2] << 16 | b[3] << 24;

Shorty(Ale Chapa) Manskiy
27.03.2017
23:37:47
Кто знает сколько людей работает в Digital Mars?

Dmitry
28.03.2017
03:33:26
Я всегда думал что это только одно название. Просто регнули контору и все

Matero
28.03.2017
03:48:30
Всем привет! Котаны кто-нить сможет до понедельника 500 в долг дать?

с меня тонны нефти, благодарности и если надо могу с вёрсткой помоч

хотя кому сейчас вёрстка сдалась... и тем более в таком чате

qwe
28.03.2017
07:34:44
Как можно вернуть объект структуры без копирования из метода и без GC? Только если передать по ссылке и изменить внутри метода или своять свой умный указатель?

Admin
ERROR: S client not available

Maxim
28.03.2017
07:35:21
объект структуры?

а, инстанс что ли?

структуры на стеке создаются, без GC, делаешь структуру, передаешь ее по ссылке и меняй пожалуйста)

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

Oleg
28.03.2017
07:38:10
хотя кому сейчас вёрстка сдалась... и тем более в таком чате
Тему для gtk3 куплю, дизайн есть, верстать нет ни времени ни нервов

qwe
28.03.2017
07:38:50
кто-нибудь знает valgrind показывает актуальную информацию для программ, написанных на D?

в hello world у меня 2 утечки на dmd. А на ldc 7 утечек

Google
Shorty(Ale Chapa) Manskiy
28.03.2017
09:29:23
Я не знаю, что там valgrind считает утечками (никогда им не пользовался), но возможно это из-за того, что GC не собирал память, ведь зачем ее собирать в Helloworld, если ОС сама все сделает.

qwe
28.03.2017
09:32:11
логично, но я на работе хотел презентовать D, а тут такое(

Shorty(Ale Chapa) Manskiy
28.03.2017
09:34:08
и это не утечка памяти, т.к. если понадобится, то GC "соберет" ее. Утечка памяти - это тогда, когда она вообще не собирается.

qwe
28.03.2017
09:34:29
да я-то понимаю

https://github.com/dlang/druntime/pull/1557 PR еще висит

Dmitry
28.03.2017
09:36:32
Вопрос на засыпку. Почему Nim транслируется в Си, а не использует LLVM как кодогенератор?

Shorty(Ale Chapa) Manskiy
28.03.2017
09:38:04
хз, возможно из-за того, что если C, то это по определению больше платформ чем LLVM...

Max
28.03.2017
09:38:05
Потому что он вообще в разные языки транслируется, это такой DSL над плюсами, жсом и прочим как и хакс, сколько самостоятельный язык.

Pavel
28.03.2017
12:45:18
Есть идеи как можно соединить 2 сокета? Чтобы то что читается из одного сразу писалось в другой и наоборот

Есть socketPair() но не очень понятно как ее использовать

Oleg
28.03.2017
13:30:34
socat вроде умеет

ну эт к D не относится

Pavel
28.03.2017
13:40:24
ладно

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

qwe
28.03.2017
15:28:44
В таком количестве атрибутов есть смысл? size_t location() const pure nothrow @nogc @property

я бы только const и @property оставил

zk
28.03.2017
15:29:31
@safe забыл.

qwe
28.03.2017
15:29:36
я знаю что они все означают

Maxim
28.03.2017
15:29:45
а в @property сейчас вообще смысл есть?

qwe
28.03.2017
15:29:48
но действительно ли они нужны

стоп

прошу прощения

забыл сказать, что в методе одна строка

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