@dlangru

Страница 130 из 719
Pavel
05.03.2017
00:16:37
https://www.imagemagick.org/script/api.php кстати вот на D там что-то нету биндингов :(

Dmitry
05.03.2017
01:14:15
Ой да у dlib код выглядит круто

Надо будет в dcv в issues предложить dlib. А то там задач много похожих возникает

Oleg
05.03.2017
02:06:01
ну скорее наоборот

Google
Oleg
05.03.2017
02:06:07
да и вообще это странная затея)

dlib использует свои типы данных, а dcv свои

при этом в dcv они, насколько я помню, намного более обобщённые

да

в dcv image это sliced из mir

https://github.com/libmir/dcv/blob/master/source/dcv/imgproc/imgmanip.d#L81

resize кстати

да и вообще

в dcv есть imread

https://github.com/libmir/dcv/blob/a2dfdf586958a343f05e02d1e6351af70cbf1da9/source/dcv/io/image.d#L99

но, как понимаю, только png умеет

хотя нет, используется imageformats, она много умеет читать

Dmitry
05.03.2017
05:20:25
М... щас до компа доберусь гляну умеет ли dcv ресайз

Google
Oleg
05.03.2017
09:29:54
Ну так на unittest resize'а одна из ссылок

Dmitry
05.03.2017
14:17:26
Угу, щас посмотрю. Кстати в Volta идею шаблонов хотят упростить и сделать чтобы их можно было записывать в таком виде: struct LinkedDoubleList(T, Y) { data1: T; data2: Y; next: LinkedDoubleList*; }

Pavel
05.03.2017
14:19:01
Не понял в каком виде?

Dmitry
05.03.2017
14:19:36
Как я понимаю тупо передаются (X, Y, Z)

а не foo(T)(T data)

Oleg
05.03.2017
15:12:07
Вызов метода и структура вроде разное, не?

Pavel
05.03.2017
15:12:45
Я тоже не понял как это связано с шаблонами

Dmitry
05.03.2017
15:14:14
значит я не так понял

Мерлин
05.03.2017
15:50:27
D 2.073.2 Beta https://dlang.org/changelog/2.073.2.html#bugfix-list

Dmitry
06.03.2017
08:12:46
А как бысть с такой ошибкой? "router.d(32,30): Error: @safe function 'router.MyRouter.getNews' cannot call @system function 'database.Database.getNews'"

С одной стороны компилятор хочет чтобы роутинг был помечен как @safe с другой не может образение к БД сделать т.к. там атрибут другой

О блин, в первый раз такое вижу:



Oleg
06.03.2017
09:19:33
если ты хочешь из @safe кода вызывать @system ты должен 10 раз проверить системный код и пометить его как @trusted

Dmitry
06.03.2017
09:20:16
простоблема в том, что vibed 0.8 хочет чтобы роутинг был помечен как @safe

Oleg
06.03.2017
09:30:28
нет, проблема как раз такая, которая в ошибке написана

@safe код не может вызывать @system

прям вот ровно такая)

а путей её решения 2

ты можешь сделать код либо @safe, либо @trusted

Google
Oleg
06.03.2017
09:32:24
но @safe ограничивает код, а @trusted нет

Dmitry
06.03.2017
09:33:54
просто роутинг @trusted пометить и все?

Maxim
06.03.2017
09:40:13
ну или обращение к БД вынести в маленький @trusted кусок кода, так будет кошернее)

Олег
06.03.2017
09:50:17
можно использовать примерно следующую конструкцию для вызова @trusted куска внутри @safe функции, обернув в лямбду () @trusted { .... } ();

Dmitry
06.03.2017
09:56:12
в первый раз вижу, чтобы код можно было оборачивать скобками () в начале и конце...

Maxim
06.03.2017
09:56:48
это синтаксис делегатов

объявляется delegate и тут же вызывается)

Олег
06.03.2017
09:57:19
вторые скобки это вызов делегата

Dmitry
07.03.2017
11:39:51
Для D есть какой-то простой аналог следующей Питоновской записи? if string[0:2] == "##"? Просто с одним символом вопросов нет. Оно работает, а вот как массив проверить...

Alexander
07.03.2017
11:41:34
if (str[0..2] == "##")

Dmitry
07.03.2017
11:43:26
Я пробовал так. Он ругается: incompatible types for ((line[2]) != ("#")): 'immutable(char)' and 'string'

а хотя момент

Dmitry
07.03.2017
11:44:04
да все работает)

Я с этими одиночными и двойными кавычками ошабся

Кстати, нашел очень забавную функцию: writeln(succ("1")); // "2" writeln(succ("9")); // "10" writeln(succ("999")); // "1000" writeln(succ("zz99")); // "aaa00"

Pavel
07.03.2017
12:23:42
Прямо как в пхп )

Мерлин
07.03.2017
20:47:35
[last news] Goodbye Rust, and Hello, D (https://z0ltan.wordpress.com/2017/02/21/goodbye-rust-and-hello-d/)

Pavel
07.03.2017
20:53:25
yeah ?

qwe
08.03.2017
04:24:42
я не могу понять у D появились механизмы для владения (ownership) и заимствования (borrowing)? Я не могу информации по этому, но в то же время меня смущает сравнение Rust и D, описанное в блоге

Dmitry
08.03.2017
06:19:05
Я в устройстве памяти очень плохо шарю, но вроде как нет

Google
Maxim
08.03.2017
07:35:17
владения и заимствования в расте, я так понимаю, необходимы исключительно из-за отстутствия сборки мусора, в D контролем памяти занимается исключительно сборщик мусора, если обратного не захочит программист

поэтому жесткого контроля памяти со стороны программиста не требуется — память, зарезервированная под некий объект, освободится сборщиком мусора тогда, когда в программе этот объект перестанет использоваться

Dmitry
08.03.2017
07:37:53
Кстати, samsung tizen к осени оживят, так что возможно Ди для разработки под него покатит хорошо

Maxim
08.03.2017
07:40:59
а под tizen что-то на D разрабатывали?)

Dmitry
08.03.2017
07:53:19
Пока что нет, но туда Ди проще вкорячить будет чем под ту же iOS

Maxim
08.03.2017
07:55:07
хорошо бы было заручиться официальной поддержкой, тогда язык начал бы делать семимильные шаги)

Ksiw
08.03.2017
08:10:59
Вот что верно, то верно

Grigirii
09.03.2017
09:03:12
я не могу понять у D появились механизмы для владения (ownership) и заимствования (borrowing)? Я не могу информации по этому, но в то же время меня смущает сравнение Rust и D, описанное в блоге
https://github.com/dlang/DIPs/blob/master/DIPs/DIP1000.md Появился анализ времени жизни в скоупах. Это является одной из версий владения, так как указатели не могут жить дольше значений, на которые указывают. Заимствования(borrowing) нет.

qwe
09.03.2017
09:24:48
Вот я его читал и поэтому не могу понять есть или нет. Вроде статус draft, но я где-то видел, что он уже реализован. Поэтому и задал вопрос

Admin
ERROR: S client not available

Maxim
09.03.2017
09:28:07
Разные концепции, разные подходы к решению одной и той же проблемы, зачем из одного языка что-то тянуть в другой?)

Grigirii
09.03.2017
09:29:30
dip1000 реализован, но я не видел этого ни в одном анонсе

он не решает проблему безопасности на 100%, он всего лишь закрывает класс ошибок, вроде возврата указателя на локальную переменную. 100% безопасным без GC язык всё ещё не может быть.

Max
09.03.2017
09:31:43
При наличии указателей он таковым вообще быть не может

Grigirii
09.03.2017
09:32:31
при наличии адресной арифметики. Сами указатели могут быть безопасными

Max
09.03.2017
09:34:39
Туда всегда можно засунуть нулл либо уже убитый адрес. И проверять на уровне системы типов их ты заставить не можешь

Grigirii
09.03.2017
09:37:12
rust с этим отлично справляется. с повисшими указателями даже dip100 справляется. а null как раз решается системой типов

Max
09.03.2017
09:38:14
Там указатели только в ансейве есть, который вообще ничего не гарантирует. У указателей вся суть и вообще источник всех ошибок в том, что туда засунуть можно что угодно

Dmytro
09.03.2017
09:38:49
Так не засовывайте:)

Google
Grigirii
09.03.2017
09:38:52
мы видимо разные вещи понимаем под указателями, в этом и непонимаение

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

и они безопасны

qwe
09.03.2017
09:40:45
там есть как минимум ссылки, которые по всей семантике - указатели
В rust они кажется называются безопасными указателями

Grigirii
09.03.2017
09:41:13
они называются reference, то есть ссылка

Max
09.03.2017
09:42:45
там есть как минимум ссылки, которые по всей семантике - указатели
Думал расписать, но забил — нет, с точки зрения компилятора это нифига не те же вещи, и одинаковая семантика у них только в конечном сгенерированном бинарнике

Grigirii
09.03.2017
09:43:32
dip1000 всё ещё опционален, он не включен по умолчанию. но уже можно передать -dip1000 компилеру и попробовать. скорей всего недопилили ещё что-то, поэтому и не включили

Max
09.03.2017
09:47:17
Компилятора rust? Распишите если не трудно, пожалуйста
Любого компилятора. Ссылка — абстракция, со своими правилами, обеспечивающая ими свои преимущества на этапе компиляции. Указатель — это адрес, в который ты хоть рандомный инт засунь.

qwe
09.03.2017
09:51:38
Любого компилятора. Ссылка — абстракция, со своими правилами, обеспечивающая ими свои преимущества на этапе компиляции. Указатель — это адрес, в который ты хоть рандомный инт засунь.
Так компилятор rust насколько я понимаю как раз как-то ловко работает со ссылками. Я так понял, что это вообще его основная фича. То есть вот эти владение и заимствование этих ссылок и делает rust особенным. Нет?

Grigirii
09.03.2017
09:52:16
ну вот D, например, в safe коде никогда не давал засовывать инт в указатель. Он от этого больше не указатель?

Max
09.03.2017
09:54:42
>Memory-safe code cannot use certain language features, such as: >Modification of pointer values. >Taking the address of a local variable or function parameter.

Там вообще своя атмосфера, и именно тут непонятно зачем эти указатели нужны — ссылки при таком раскладе покрывают все нужды

Dmytro
09.03.2017
10:04:20
В чем будут отличия допустим если в D поумолчанию все будет @safe?

qwe
09.03.2017
10:37:17
Отличия от чего?

Pavel
09.03.2017
10:55:06
Там вообще своя атмосфера, и именно тут непонятно зачем эти указатели нужны — ссылки при таком раскладе покрывают все нужды
Может оставляют лазейку для всяких хаков или неочевидных костылей? Так делают с goto например

Dmytro
09.03.2017
10:55:40
Отличия от раста

qwe
09.03.2017
11:31:53
Отличия от раста
в плане владения и заимствования?

Dmitry
09.03.2017
13:46:22
Чnо-то не пойму. В документации написано: \s Matches whitespace, same as \p{White_Space}. Но в коде: `auto h2 = regex(" [a-z]*\n[\s\S]*?\n ");` я получаю ошибку: Error: undefined escape sequence \s

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