Программирование

Ответить в тред Ответить в тред
Rust #11 /rust/ Аноним 22/04/20 Срд 15:28:46 16644951
mozrust.png 246Кб, 2000x1119
2000x1119
nibwkl2blms41.png 909Кб, 1072x672
1072x672
jb8ybhv9pms41.jpg 46Кб, 536x486
536x486
dvach-02.webm 2422Кб, 1920x1056, 00:00:12
1920x1056
Аноним 22/04/20 Срд 15:41:35 16645172
>>1664495 (OP)
> async/await наконец-то в стабильной версии!
Ну и сколько этой новости уже месяцев?
Аноним 22/04/20 Срд 15:44:01 16645183
Аноним 22/04/20 Срд 19:03:41 16648444
image.png 7Кб, 467x106
467x106
Вопрос на покакать - зачем тут коллект?
Аноним 22/04/20 Срд 19:27:50 16648665
>>1664844
args - возвращает итератор
collect - собирает в Vector<String>
Аноним 22/04/20 Срд 19:28:47 16648696
>>1664495 (OP)
татрикс, откуда ты знаешь про Haxe?
Аноним 22/04/20 Срд 20:53:09 16649397
>>1664495 (OP)
Как сделать, чтобы compile buffer не скроллился в самый низ?
Аноним 22/04/20 Срд 22:11:20 16649938
Аноним 22/04/20 Срд 22:14:02 16649969
Аноним 22/04/20 Срд 22:31:59 166500310
2020-04-22-2131[...].png 98Кб, 1182x792
1182x792
Аноним 22/04/20 Срд 22:57:55 166501911
>>1665003
Ну это я сразу проверил, у тебя у самого нормально работает?
Аноним 23/04/20 Чтв 09:30:06 166517412
>>1664996
попробуй установить (setq compilation-scroll-output nil) в ~/.emacs
Аноним 23/04/20 Чтв 11:48:23 166524413
>>1665019
Работает, но через жопу.
Иногда рандомно начинает скролить вниз.
Аноним 23/04/20 Чтв 12:30:36 166526614
Аноним 23/04/20 Чтв 16:17:53 166555415
>>1664272 →
>Не, я как раз с сишки пришёл, понимаю, что это быстрее, но думал что для раста это менее важно.
Тут такая фишка, что эта фукнция - часть stdlib раста, а stdlib должна быть самым быстрым ковбоем или не быть такой огромной.
Аноним 24/04/20 Птн 20:22:52 166670516
>dvach-02.webm
Что за либа, аноны?
Аноним 24/04/20 Птн 20:25:37 166670617
>>1666705
Всё, нашёл уже. Если интересно кому - Cursive.
Аноним 24/04/20 Птн 20:28:17 166670918
Выделение089.png 96Кб, 840x978
840x978
>>1666706
Отличная вещь, я на ней клиента для тинькова написал.
Аноним 24/04/20 Птн 21:11:22 166672319
>>1666709
Выглядит интересно! Сейчас доки полистаю, попробую себе обёртку для yaourt'а красивую набросать.
Аноним 24/04/20 Птн 21:16:59 166672920
image.jpg 110Кб, 1500x1500
1500x1500
Аноним 24/04/20 Птн 21:31:09 166674521
>>1666729
Легче, чем с ручной сборкой из аура ебаться :\
Аноним 24/04/20 Птн 22:05:50 166676422
>>1666723
Сразу дам пару советов:
1. Сразу пиши свой луп.
loop{ siv.step() -> твоя логика -> siv.refresh() }
в лупе работай с элементами через siv.find_name("el_name")
он возвращает Option, т.к. элемент может быть неактивен
2. Изнутри коллбэков этот сотона ничего не может видеть, если нужна связь с внешним миров в коллбэке, оберни его в структуру и просунь через siv.set_user_data(your_struct)

советую, так как сам довольно долго проебался, пытаясь обойтись дефолтным лупом с коллбэками.
Аноним 25/04/20 Суб 00:32:19 166690323
image.png 8Кб, 901x28
901x28
Аноним 25/04/20 Суб 00:50:25 166691024
>>1666903
Как будто сама аурная свалка мейнтейнится
Аноним 25/04/20 Суб 08:58:21 166699725
Какой пет можно написать на расте без опыта?
Сейчас говнякаю на реакте, но хочется потрогать раст.
Аноним 25/04/20 Суб 09:56:39 166701926
>>1666997
Поговнокодь на yew, сделай клиент для имиджборд.
Аноним 25/04/20 Суб 10:01:56 166702327
Аноним 25/04/20 Суб 12:10:20 166708828
Аноним 25/04/20 Суб 13:10:09 166712229
>>1666745
Юзай что-нибудь поновее, например, мне очень нравиться pikaur. Из минусов - написан на питоне и обновлять надо аккуратно, ибо если обновишь питон и не обновишь pikaur - то соснешь. Есть еще какая-то залупа на go, она тоже норм.
Аноним 25/04/20 Суб 13:20:29 166713630
Установил rustup, добавил toolchain stable-x86_64-pc-windows-msvc. Сделал его default, добавил target x86_64-pc-windows-msvc. На странице https://forge.rust-lang.org/release/platform-support.html указано, что rustc доступен. А вот хрен. Его нет. При добавлении компонента пишет up to date, будто устпновлен. Но в консоли при вводе rustc пишет, чтобы установил командой через добавления компонента, так как для этого тулчейна не установлен rustc. В топку. Слишком сыро.
Аноним 25/04/20 Суб 13:21:43 166714031
>>1667136
Ночная версия тулчейна ведёт себя так же.
Аноним 25/04/20 Суб 13:57:09 166716332
>>1666997
>Какой пет можно написать на расте без опыта?
Возможно не совсем понимаю, что такое pet project, посоветовал бы сперва реализовать базовые структуры данных.
>Сейчас говнякаю на реакте, но хочется потрогать раст
Чтобы веб-сайтики на расте делать?
Аноним 25/04/20 Суб 14:06:03 166716833
>>1667136
>pc-windows-msvc
Дальше не читал
Аноним 25/04/20 Суб 14:08:28 166716934
>>1667163
Думаю да, хорошая идея насчет структур данных для начала.

>Чтобы веб-сайтики на расте делать?
Ну почему, необязательно сайтики. Хотя хотелось бы сделать простую апишку.
Аноним 25/04/20 Суб 14:21:16 166717235
>>1667169
Раст практически не чем не отличается от реакта.
Аноним 25/04/20 Суб 14:24:07 166717436
>>1667172
Да, спасибо, именно поэтому хочу его попробовать.
Аноним 25/04/20 Суб 14:25:39 166717637
1493179750445.jpg 40Кб, 625x396
625x396
Аноним 25/04/20 Суб 14:27:23 166718238
>>1667169
Просто в расте самый большой подводный камень, о котором надо знать, это ownership model (по-русски будет криво звучать), реализация базовых структур тебе позволит с этим ближе познакомиться.
>>1667169
>Хотя хотелось бы сделать простую апишку.
Если ты про rest, то пока не стоит, там много делов, лучше если захочешь на кошках потренироваться напиши клиента для гофера/dns -> затем асинхронную версию, но не на async сгенерированных future, а чисто имплементацией трейта. Короче я считаю в веб лезть пока не стоит, слишком много там делов.
Аноним 25/04/20 Суб 14:58:46 166720539
>>1667182
Спасибо за советы <3
Буду вникать.
Аноним 25/04/20 Суб 15:18:49 166721340
image.png 20Кб, 1364x668
1364x668
Может гденто есть схема компетранспеляций конкретно из раста в итоговый васм?
Оно же на какой-то стадии переводит всё в С при помощи cdylib?
И на какой стадии (при использовании) впихиваются жсные модули?
Аноним 25/04/20 Суб 15:42:05 166722041
>>1667213
> Оно же на какой-то стадии переводит всё в С при помощи cdylib?
Нет, нахуя? Компилятор раста переводит в LLVM-байткод, LLVM переводит в WASM, а браузер уже переводит WASM в машинный код (там гибридная компиляция AOT+JIT) и объединяет с JS.
Аноним 25/04/20 Суб 15:44:37 166722142
когда раст взлетит пацаны? через скок лет
Аноним 25/04/20 Суб 16:01:56 166722743
>>1667182
Хотел спросить, анон.
Давно работаешь и какой стек сейчас на работе?
Какие технологии пробовал по мере роста скилла?
Аноним 25/04/20 Суб 16:21:15 166724144
>>1667168
С gnu то же самое. Да, винда говно, но она у большинства людей. Поэтому из линукса стоит кросскомпиляцию настроить.
Аноним 25/04/20 Суб 16:49:53 166724845
>>1667221
Если ищешь язык чисто срубить бабла, то изучай лучше кресты и PHP - легаси говна тебе до пенсии хватит.
Аноним 25/04/20 Суб 16:52:34 166724946
>>1667221
Ныряй в вордпресс и вместе с этим учи жиквери.
>>1667248
Справедливо.
Аноним 25/04/20 Суб 17:12:27 166726347
>>1667227
Начинал с c++ билдера когда-то давно, а кончил джавой, но попиливаю свой личный проектик на расте (правда в основном там используется либа на c).
>Какие технологии пробовал по мере роста скилла?
Мм, на перле пробовал форум писать.
>>1667221
Ну типо его там и сям большие уже немного используют, в мозилле вообще целый web gpu пилят на ржаном-гречневом.
Аноним 25/04/20 Суб 17:14:27 166726548
>>1667263
В мозилле как минимум CSS-движок (servo) и рендер страниц (webrender) сделали на расте из того что уже используется в продакшене.
Аноним 25/04/20 Суб 20:44:00 166750449
Зачем вам rust, когда есть ada?
Аноним 25/04/20 Суб 21:26:38 166756550
Аноним 25/04/20 Суб 21:31:12 166757851
>>1667565
Есть модно-молодёжный spark.
Аноним 25/04/20 Суб 21:36:19 166758852
image.png 32Кб, 392x376
392x376
Аноним 25/04/20 Суб 21:39:00 166759153
>>1667588
>Applied Type System
>multi-paradigm: functional, imperative
лол
Аноним 25/04/20 Суб 21:44:30 166759554
>>1667588
Ничего себе. У меня сайт этого языка давно в закладках, забыл. Ну я и шизик-любитель экзотики.
Аноним 26/04/20 Вск 02:14:57 166775955
Ну-ка посмотрим, есть тут растопрограммисты. Можете без запуска компилятора сказать скомпилируется ли эта функция и если да, то что вернёт?
fn fun() -> i32 {
return return return return return return!!!!!!!111;
}
Аноним 26/04/20 Вск 02:27:51 166776556
Аноним 26/04/20 Вск 02:28:16 166776657
Аноним 26/04/20 Вск 04:14:21 166778658
Аноним 26/04/20 Вск 07:51:01 166781159
>>1667759
Ты бы ещё спросил, что вернёт 1.00000000006 as usize.
Аноним 26/04/20 Вск 09:53:00 166783260
>>1667811
1 вернёт. Тут даже в нынешней версии нет UB и всегда возвращается целочисленное значение, которое ближе к нулю. А вот 1E20 as usize (на всех поддерживаемых архитектурах) уже UB, хотя скоро и это поправят: https://github.com/rust-lang/rust/pull/71269
Аноним 26/04/20 Вск 11:55:54 166789561
Аноним 26/04/20 Вск 13:13:18 166795262
>>1667766
Там число со знаком без +1.
Аноним 26/04/20 Вск 15:18:21 166805163
>>1667759
А вот эта?

fn fun() -> i32 {
return return return return--!-------!------!-!-!-!-!-!-----!---!!111-1;
}
Аноним 26/04/20 Вск 19:49:56 166832464
>>1668051
Очевидно, что все ретёрны кроме последнего не имеют смысла. Дальше мы видим кучу битовых not вместе с унарными минусами. Очевидно, что N - 1 будет выполнен после унарных минусов и битовых not, поэтому пока просто забудем об этом.
нот-нот 111 => 111
--- 111 => -111
!(-111) => бля, я тебе калькулятор штоле, считать two's complement в голове, когда это не -1?
----- => -(!(-111))
! => !(-(!(-111))

Короче, пошёл на хуй. Ебал я такой хуетой заниматься, у меня проекты есть, которыми надо заниматься.
Аноним 26/04/20 Вск 20:17:52 166834065
Rust в ML будет?
Аноним 26/04/20 Вск 23:51:10 166853366
рефлекшон есть в этом языке?
Аноним 27/04/20 Пнд 01:08:07 166858467
Аноним 27/04/20 Пнд 05:45:33 166865068
Аноним 27/04/20 Пнд 13:14:48 166895369
Аноним 27/04/20 Пнд 19:24:25 166943870
Аноним 27/04/20 Пнд 20:23:25 166949171
>>1665266
Сделойте уже пул, хуйнул как написано и всё работает.

(defun rustic-compilation-setup-buffer (buf dir mode &optional no-mode-line)
"Prepare BUF for compilation process."
(let ((inhibit-read-only t))
(with-current-buffer buf
(erase-buffer)
(setq default-directory dir)
(funcall mode)

(if (or compilation-auto-jump-to-first-error
(eq compilation-scroll-output 'first-error))
(set (make-local-variable 'compilation-auto-jump-to-next) t))

(unless no-mode-line
(setq mode-line-process
'((:propertize ":%s" face compilation-mode-line-run)
compilation-mode-line-errors)))
(force-mode-line-update)
(sit-for 0))))
Аноним 27/04/20 Пнд 20:37:06 166950172
image.jpg 18Кб, 300x291
300x291
Емаксовые хайлайты текста работают на регекспах
Аноним 27/04/20 Пнд 20:38:52 166950673
Аноним 27/04/20 Пнд 22:12:42 166961274
в чем сейчас раст более преуспел? веб, ембеддед, игры?
Аноним 27/04/20 Пнд 22:14:36 166961475
>>1669612
высасывание грантов на новые манятехнологии
Аноним 29/04/20 Срд 01:27:18 167108576
image.jpg 20Кб, 400x400
400x400
Аноним 29/04/20 Срд 06:46:04 167113277
>>1671085
Какая-то пародия на электрон. Причем довольно пердольная.
Аноним 29/04/20 Срд 06:52:38 167113678
>>1671085
> Почалось?
Почалось можно будет сказать когда у гуя будут минимум три вещи: TableView, интернационализация и accessibility. Причём все три достаточно сложные вещи.
Аноним 29/04/20 Срд 20:47:18 167180079
>>1671132
А мне нравится их красивый роадмап. Так и хочется дать им мульён-другой.
Аноним 29/04/20 Срд 21:04:14 167181680
>>1668533
Круче. Есть процедурные макросы!
Аноним 30/04/20 Чтв 14:54:41 167236681
Зачем вообще нужен этот раст?
Аноним 30/04/20 Чтв 15:03:03 167237182
>>1672366
Чтобы обросшие нищуки 60к/месяц могли чувствовать себя выше фронтенд-господ
Аноним 30/04/20 Чтв 19:24:38 167274883
>>1672371
Есть пруфы, что фронтедеры - самые богатые?
Аноним 30/04/20 Чтв 20:42:53 167287784
Почему до владения переменнами додумались только в расте?
Аноним 30/04/20 Чтв 20:49:28 167289085
>>1672877
Причем тут владение переменными? Единственное что в расте нового по сравнению с другими языками - что у каждой ссылки есть определённое время жизни (ну и плюс можно создавать структуры с временем жизни в качестве шаблонного параметра).
Аноним 30/04/20 Чтв 22:14:27 167294686
>>1672890
А вот я бы поспорил! если бы шарил
Аноним 30/04/20 Чтв 22:54:07 167298587
>>1672890
Я бы тоже поспорил!
Аноним 01/05/20 Птн 04:29:32 167329588
>>1672946
>>1672985
Раст без borowck ни нужен, ну правда есть ещё секси енумы, макросы, комбинаторы по типу map_err и прочее для ошибок.

inb4 ряяяя ансейф


use std::ptr;

let mut buf = [0; LOG_BUFFER_LEN];
let mut p = buf.as_mut_ptr();
let end = p.offset(LOG_BUFFER_LEN as isize);
let mut data: const c_char = ptr::null();
let mut flags: c_int = 0;
let mut n = 0;

if ERR_peek_error() == 0 {
return;
}

loop {
n = ERR_peek_error_line_data(
ptr::null_mut(),
ptr::null_mut(),
&mut data as
mut const _,
&mut flags,
);

if (n == 0) {
break;
}

if (p == end.offset(-1)) {
ERR_get_error();
continue;
}

ptr::write(p, b' ');
p = p.offset(1);

ERR_error_string_n(n, p as
mut _, 10);

while p != end && p != 0 {
p = p.offset(1);
}

if p != end &&
data != 0 && flags & ERR_TXT_STRING != 0 {
ptr::write(p, b':');
p = p.offset(1);
let len = {
let data_len = libc::strlen(data);
let left = end.offset_from(p);
if left <= 0 {
0
} else {
data_len.min(left as usize)
}
};
std::intrinsics::copy_nonoverlapping(data, p as *mut _, len);
p = p.offset(len as isize);
}

ERR_get_error();
}
Аноним 01/05/20 Птн 10:32:27 167338189
Аноны, что заметил:
1. Наконец-то можно i32 + &i32 и так далее. Урра!
2. Какого-то хуя перестал работать мой собственный impl Drop
вот было, всё работало, отрабатывало по Ctrl+C, а потом перестало. Шо за нах это может быть? С обновлением напрямую не связано, работало уже после апдейта на 1.43, а сегодня с утра перестало.
Аноним 01/05/20 Птн 11:45:54 167342090
>>1673295
> Раст без borowck ни нужен, ну правда есть ещё секси енумы, макросы, комбинаторы по типу map_err и прочее для ошибок.
Речь не о крутых фичах, а о фичах которых раньше не было. Так-то солянки из идей разных ЯП были и до раста (да и сейчас появляются как грибы, благо есть LLVM, который берёт самую сложную работу - генерачию машинного кода - на себя).

Впрочем и со временами жизни раст немного обосрался. А конкретно при даункасте структуры в трейт время жизни стирается (превращается в 'static) и из трейта его никак выковырять невозможно - оно указывается отдельно синтаксисом (impl|dyn) Trait + 'lifetime [1], но функции внутри трейта время жизни самого трейта никак узнать не могут. Из-за этой багофичи до сих пор не могут сделать специализацию.

[1]: https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=4f838cf43498f87425639fffb7efb60f
Аноним 02/05/20 Суб 18:07:34 167455291
Кто-нибудь устраивался на работу? Чем занимаетесь?
Аноним 02/05/20 Суб 21:32:37 167479092
Аноним 02/05/20 Суб 22:15:08 167484393
>>1674790
Не совсем. Специализация относится к функциям, а не объектам. Ты можешь определить функцию по-умолчанию и специализировать в зависимости от того какие трейты имплементируют аргументы функции, а в твоём случае функция выбирается в зависимости от типа объекта, а не от того какие трейты он имплементирует. Вот пример - есть трейты Clone и Copy. Если объект определил трейт Clone, то значит он может быть скопирован, но для этого надо всегда вызывать функцию clone, которая может делать нетривиальные операции (например увеличивать счётчик в случае умных указателей). А если объект определяет трейт Copy, то значит он может быть скопирован побайтовым копированием памяти. Со специализацией можно сделать дефолтную функцию, которая будет принимать все объекты с трейтом Clone и более быструю специализированную для тех кто ещё определил трейт Copy, чтобы использовать побайтовое копирования для ускорения кода.

Проблема в том, что в изначальном варианте хотели позволить специализировать не только по типам, но и по времени жизни. Но как оказалось трейты совершенно не знают о том какое у них время жизни и потому в подобной специализации можно используя безопасные конструкции языка превратить ссылку &'a с произвольным временем жизни в &'static - со временем жизни равным времени жизни программы.

Сейчас хотят сделать упрощённую версию без возможности специализировать время жизни, но и там есть свои проблемы.
Аноним 03/05/20 Вск 13:14:56 167530894
>>1674552
>Чем занимаетесь?
python/django/asyncio
Аноним 03/05/20 Вск 17:13:53 167557195
>>1674552
Jira+Confluence+команда из 7 человек.
Аноним 03/05/20 Вск 17:18:58 167558096
>>1675571
Я думал над джирой целая компания работает..
Аноним 03/05/20 Вск 17:38:11 167560797
Что-то обсуждение на нуле. Раст заржавел окончательно? Кто-нибудь пишет на нём?
Аноним 03/05/20 Вск 20:57:49 167575098
Выделение101.png 16Кб, 430x207
430x207
>>1675607
Пишем. Торгового бота для себя и приложение камеры для ведроида. В заначке ещё пара проектов.
Аноним 03/05/20 Вск 21:57:21 167579999
>>1675580
Не над джирой, а в джире.
Тимлид или ПМ же.
Аноним 03/05/20 Вск 22:22:00 1675831100
>>1675607
Всё прогрессивное человечество.
Аноним 04/05/20 Пнд 01:31:32 1675894101
>>1675831
Канадские трапы всякие то бишь?
Аноним 04/05/20 Пнд 09:02:39 1675948102
>>1675607
раст - мертворожденная хуйня для смузихлебов, максимум запилить проект для резюме.
Аноним 04/05/20 Пнд 12:17:36 1676048103
>>1675948
Что, мань, получаешь ЗП за отлов сегфолтов и боишься представить будущее без них?
Аноним 04/05/20 Пнд 12:58:50 1676076104
>>1676048

Нописал на расте
@
Ловлю сегфолты


Я непомню, где слышал, но есть какой-то анализатор MIR, который позволяет находить подозрительные места. Что вообще анону есть сказать по доп. средствам для статического анализа для раста?
Аноним 04/05/20 Пнд 13:53:54 1676115105
>>1676048
Но ведь в джаваскрипте нет сегфолтов...
Аноним 04/05/20 Пнд 14:18:54 1676141106
wb.jpeg 8Кб, 201x251
201x251
>>1675831
>Всё прогрессивное человечество.
Аноним 04/05/20 Пнд 14:36:53 1676183107
>>1676115
В джаваскрипте и зарплаты то нет....
Аноним 04/05/20 Пнд 15:08:13 1676230108
>>1664495 (OP)
>2 пик
И эти люди называют С++ уродливым
Аноним 04/05/20 Пнд 15:11:45 1676233109
>>1676048
Это русачки из яндекса. У них там целый отдел евангелистов плюсов. На хвбре в каждом растотреде срут какой он плохой и восхваляют божественные плюсы.
Аноним 04/05/20 Пнд 15:36:04 1676284110
Аноним 04/05/20 Пнд 18:15:21 1676450111
вы тут джавистов любите не?
Аноним 04/05/20 Пнд 18:15:21 1676451112
>>1676115
Но жс и не язык программирования в том смысле, в котором раст и плюсы.
Аноним 04/05/20 Пнд 18:44:46 1676477113
>>1675894
Ну да. А кто по-твоему прогрессивное человечество?
Аноним 04/05/20 Пнд 18:55:26 1676493114
>>1676477
Кузьмич Тордвальдс, например?
Аноним 05/05/20 Втр 10:35:06 1677096115
Сап аноны. Решил ради теста заюзать 2 разных тулчейна: windows-msvc и windows-gnu. В итоге вес бинарника с одним крейтом(которому не нужна линковка) на MVSC: 277 КБ, GNU ебать его в рот 65.673КБ. Посмотрел через ldd - там дохуя каких-то dll. Вопрос - почему такая разница в весе?
Аноним 05/05/20 Втр 11:01:43 1677108116
>>1677096
Я даже не могу выбрать, про что пошутить, на тему, что там понапихали в MVSC.
Аноним 05/05/20 Втр 12:16:24 1677211117
>>1677108
Так файл MSVC весит то меньше чем гну..
Аноним 05/05/20 Втр 12:31:12 1677239118
>>1677096
Это символы для отладки (нужны чтобы получить читабельные стектрейсы в случае паники). MSVC по умолчанию сохраняет их в отдельном .pdb-файле, а гну встраивает в бинарник. Их можно убрать командой strip или что-то типа того.
Аноним 05/05/20 Втр 12:51:51 1677250119
>>1677239
Так в MSVC рядом с бинарником нет никаких файлов, а ошибка читабельная
Аноним 05/05/20 Втр 13:03:09 1677261120
>>1677250
Потому что раст их туда не складывает (находится в каталоге deps, в виде имя_эксешника.pdb вместо с кучей других продуктов компиляции). Но если перенесёшь бинарник в другое место ошибка перестанет быть читабельной.
Аноним 06/05/20 Срд 09:51:20 1678476121
>>1664495 (OP)
>dvach-02.webm
>rust - нвероятно быстрый язык для системного программирования
Объясните ньюфаундленду, если так важна скорость, зачем использовать какой-то хипстерский язык, почему бы не использовать Си или, упаси господи, ассемблер?
Аноним 06/05/20 Срд 11:55:17 1678532122
>>1678476
Что бы при очередном сегфолте твоя жопа не поубивала соседей/коллег интенсивным гамма излучением
Аноним 06/05/20 Срд 13:34:05 1678649123
>>1678476
Так и делают тащемта. Раст - хуйня для продакшена. Сам язык норм, но чисто как домашняя игрушка для пет-проектов.
Аноним 06/05/20 Срд 14:01:54 1678681124
>>1678476
Тем временем в C++ треде
>Объясните ньюфаундленду, если так важна скорость, зачем использовать какой-то хипстерский язык, почему бы не использовать Си или, упаси господи, ассемблер?
Аноним 06/05/20 Срд 14:04:23 1678689125
>>1678476
Ассемблер нужен будет один хуй, не для скорости, а для постоянного времени исполнения.
Аноним 06/05/20 Срд 14:29:35 1678703126
>>1678689
> постоянного времени исполнения
И что ты под этим понимаешь? Жосткий риалтайм? Так наоборот с высокоуровневым языком проще будет, потому что к нему можно будет написать анализатор, который тебе сразу выдаст время выполнение в худшем случае. А если про то что нужно именно чёткое время выполнения каждой инструкции, то с современными процессами с конвейером и прочими оптимизациями ты быстро соснёшь (ну и в случае мк не забываем про прерывания, которые тоже могут въебать детерминизм времени выполнения куска кода). Тут справятся только FPGA (ну или ASIC, если нужно массовое производство).
Аноним 06/05/20 Срд 15:46:34 1678787127
>>1678703
На МК перед запуском чего-то сильно рилтаймового прерывания отключают, потом включают.
Там асм я чаще всего видел в стартапе/бутлоадерах и всякой системной хуите вроде отладочно-трассировочной обвязки.
Аноним 06/05/20 Срд 17:02:49 1678858128
>>1678476
Потому что зачем, если можно программировать с удовольствием?
Аноним 06/05/20 Срд 17:13:14 1678869129
>>1678703
> Так наоборот с высокоуровневым языком проще будет, потому что к нему можно будет написать анализатор, который тебе сразу выдаст время выполнение в худшем случае.

К любому языку нельзя такой написать, кроме частных случаев когда программа совершенно линейная и выполняется в изоляции. А с высокоуровневым языком у тебя происходит больше скрытых вещей и меньше возможности на них влиять.
Аноним 06/05/20 Срд 17:26:50 1678886130
>>1678869
> К любому языку нельзя такой написать
Можно. Для этого функциональщики и придумали такие понятия как "чистота" функций и прочее. В расте уже подобное тоже сделали: https://github.com/rtfm-rs/cortex-m-rtfm (с оговоркой, что это не чистый раст, а растоподобный язык, который макросами преобразуется в раст).
Аноним 06/05/20 Срд 17:36:16 1678892131
>>1678703
Под постоянным я имел в виду то, что нет корреляции между значениями параметров и временем выполнения.
Аноним 06/05/20 Срд 17:40:17 1678895132
>>1678892
Каких параметров? Ты шизик чтоле? WCET-анализ можно выполнять для любого ЯП. Даже более того любой ЯП можно преобразовать в машинный код и выполнять WCET для него. Ебаться с ассмеблером для этого не обязательно.
Аноним 06/05/20 Срд 17:54:35 1678904133
>>1678895
>Каких параметров?
Ну, например, ключей для асимметричных шифров.
Аноним 06/05/20 Срд 17:56:21 1678906134
>>1678904
И причём тут ассемблер?
Аноним 06/05/20 Срд 18:01:59 1678910135
>>1678906
Потому что подходящий инструмент для решения проблемы.
Аноним 06/05/20 Срд 18:03:55 1678913136
Аноним 07/05/20 Чтв 12:41:30 1679516137
>>1678681
Ну с++ вроде бы не позиционируется как сверх-быстрый язык, разве нет?
Аноним 07/05/20 Чтв 13:06:11 1679540138
>>1679516
лол, у если второй по скорости язык после Си (ассемблер не в счет) - это небыстрый, то земля тебе джаваскриптом, анон
Аноним 07/05/20 Чтв 16:31:27 1679838139
15822331637070.png 69Кб, 446x435
446x435
>>1664495 (OP)
Нужна либа для удобных assert'ов в тестах. Конкретно моя проблема, сравниваю два небольших буффера, равны по длине, но хочется, чтобы сразу показывало первую позицию по несовпадению, ну и чтобы вообще был вагон удобных ассертов для людей, а то стандартного ассерта таки маловато возможно будет в будущем. Чего посоветуете?
Аноним 07/05/20 Чтв 21:19:49 1680210140
чё за апострофы перед переменными иногда ставят
Аноним 07/05/20 Чтв 21:25:19 1680222141
>>1680210
Означает время жизни. Может быть либо генерик-параметром у структуры (может означать разное, но зачастую означает что структура имеет ссылку со временем жизни равным этому параметру) либо относится к ссылке и означает что ссылка имеет это самое время жизни. Во всех случаях когда ты используешь ссылки ты используешь и времена жизни, просто зачастую компилятор их может вывести самостоятельно и потому тебе не обязательно давать им имена (апостроф нужен чтобы отличить их от параметров-типов).
Аноним 07/05/20 Чтв 21:52:04 1680244142
Аноним 07/05/20 Чтв 21:53:15 1680246143
>>1680244
Ничего. Проходите дальше. C++ тред ниже.
Аноним 08/05/20 Птн 07:45:22 1680520144
>>1679838
buffer.iter().zip(other_buffer.iter()).for_each(|(x, y)| assert_eq!(x, y));
Аноним 08/05/20 Птн 07:47:33 1680522145
>>1680520
А если позиция нужна, то
buffer.iter().zip(other_buffer.iter()).enumerate().for_each(|(index, (x, y))| assert_eq!(x, y, "not equal items at {} index", index));
Аноним 08/05/20 Птн 16:11:47 1680893146
Аноним 08/05/20 Птн 17:37:40 1681071147
Аноним 08/05/20 Птн 17:41:58 1681084148
1571917563526.png 106Кб, 618x901
618x901
>>1681071
Протухшая новость.
Аноним 08/05/20 Птн 18:08:30 1681162149
Аноны, вот есть у меня кастомный логгер, который
log::set_logger(&LOGGER).unwrap();
есть отдельный поток - напрямую из него логирование ок.
В потоке идёт работа с методами некой структуры, которая находится в другом файле - и вот оттуда с логированием облом. Причём если запускаю методы из основного потока, то всё логируется. Как их подружить?
Аноним 08/05/20 Птн 18:10:48 1681167150
>>1681162
> которая находится в другом файле
Что значит "в другом файле"? Речь про динамически подключаемые библиотеки? Если так, то возможно проблема в TLS, который у основной программы и каждой из библиотек разный.
Аноним 08/05/20 Птн 18:14:22 1681174151
>>1681167
Не, в модуле, то есть. LOGGER определяю статиком в майне
pub(crate) static LOGGER: CursiveLogger = CursiveLogger;
Аноним 08/05/20 Птн 19:56:46 1681394152
>>1680893
Спасибо, но не то, а для структур наверное збс будет.
Аноним 09/05/20 Суб 00:24:17 1681707153
>>1680222
Спасибо! Потихоньку начинаю разбираться
Аноним 09/05/20 Суб 20:16:33 1682404154
>>1681167
> Речь про динамически подключаемые библиотеки

Не, для динамических библиотек все будет норм работать.

>>1681174
Вообще без кода непонятно, в чем проблема. Но про CursiveLogger могу сказать, что он странный очень, я тоже на странную хуету натыкался. Юзай лучше https://github.com/deinstapel/cursive-flexi-logger-view , там таки под капотом нормальный логгер. И юзай эту либу с мастера, там есть аналог toggle_debug_view из Cursive.
Аноним 09/05/20 Суб 21:23:01 1682491155
Раст норм как первый язык программирования?
Аноним 09/05/20 Суб 21:42:15 1682516156
>>1682491
Нет, ты выкатишься быстрее чем успеешь вкатиться, порог вхождения даже для опытных челиков достаточно высокий.
Аноним 09/05/20 Суб 21:44:12 1682520157
Кстати, аноны, а хоть 1 тулза/породия на иде умеет в автокомплит кода, измазанного tokio? Что RLS, что идея умирают нахуй когда видят #[tokio::main] и async/await?.
Аноним 09/05/20 Суб 21:59:18 1682544158
>>1682491
Не, у тебя задача не та, тебе рст нахуй не нужон.
>>1682520
У меня редактор + рлс, всё ок работает. Может у тебя rust analyzer?
Аноним 10/05/20 Вск 09:37:23 1682849159
Выделение111.png 38Кб, 1181x163
1181x163
>>1682404
Разобрался, там у меня был не работали вызовы, которые debug, т.к. я сам же их и отфильтровал, чтобы не видеть пикрил хуеты. Только я протупил и думал про них, что они warn.
Тогда след вопрос - как подавить дебаг выхлоп курсива, но видеть свой?
Аноним 10/05/20 Вск 09:43:02 1682853160
Такое дело, анонасы: всё чаще на тыкаюсь на сравнение раста с swift (if let, общий разраб). Кто-нибудь тыкал/сравнивал? Как у них там с bc?
Аноним 10/05/20 Вск 15:03:15 1683186161
Screenshot2020-[...].png 77Кб, 1258x344
1258x344
>>1682544
Rust analyzer тоже прекрасно работает

>>1682849
Не думаю, что со стандартным логгером там получится. А для flexi-logger там работает такой же синтаксис, как и для env-logger (типа RUST_LOG="cursive=error,yourlib=debug", не уверен, что точно так должно выглядеть).
Аноним 10/05/20 Вск 15:33:55 1683224162
Бля, какой охуенный язык.
3ий месяц к ряду пилю разные пет-проджекты - хайлоад-веб-бекенд, блокчейн-аппликуху на Exonum'e, n64 - эмулятор.

Просто охуенно. Плюсы кажутся дикой парашей после раста.
Были бы еще конст-дженерики и фулл-тайм проект, вообще бы спермой потолок пробил.

Вообще, в плане работы. Я так понял, если хочешь устроиться куда - дрочи блокчейн ? Ибо из реальных вакансий я видел только блокчейн всё ну и пару а-ля хайлоад серверов.


Аноним 10/05/20 Вск 15:46:40 1683235163
>>1682544
Да нет, всё действительно работает, автокомплит починился после зачистки экспорта (там reqwest и serde конфликтуют из-за структуры Error или какая-то подобная хуйня происходит, но ни RLS ни компилятор нормальное сообщение выдать не могут).
Аноним 10/05/20 Вск 16:16:48 1683257164
>>1682853
По работе пишу на свифте, для души подрачиваю раст, что именно тебя интересует в сравнении?

>if let
Эээ, ну init statement в if-е даже в 17-е плюсы завезли, это уже просто максимальный мэйнстрим которые есть везде (даже в последней версии питона, лол).
>общий разраб
Один из десятков разрабов общий, ты хотел сказать?
>Как у них там с bc?
С чем?

Вообще, хуй знает что сравнивать, они максимально разные. Из реально общего — несколько кейвордов. Мемори менеджмент — в расте завуалированный, но ручной, в свифте полностью автоматизированный (разве что в отличие от языков с GC приходится следить за цикличными ссылками). Дженерики — в расте полностью компайл-тайм, в свифте они компайл-тайм только в совсем простых случаях, а в не очень простых — джава-стайл рантайм. Коллекции — в расте можешь писать свои и вообще ты ни к чему не привязан, в свифте у тебя есть 3 вшитых в рантайм (array/map/set), а дальше ты либо идёшь нахуй, либо ебёшься (написать тото же двусвязный список на свифте, который при этом не будет лагать/течь как тварь — нихуя не легче чем на расте без unsafe, вот уж реально сходство). Парадигма — раст функциональный, а свифт ООП с кучей фич из ФП (как и любой современный хайлевел язык). Система модулей — в расте какой-то пиздец с притензией на плюсовые неймспейсы, дрочево на 2 экрана в каждом файле, в свифте — "import Foundation" и ты импортировал половину системных фреймворков. IDE — в расте блокнот с автокомплитом, не умеющим в генерики и нормальный error recovering, а в свифте из коробки ахуенная, хоть и багованная, full featured IDE со всем, что только может быть нужно. Сферы применения — в расте байтоёбля с миллисекундами, в свифте — клиентские приложения, где жс жирноват, сборка мусора слишком недетерменированно себя ведёт, но надо писать бизнес-логику и UI чтобы не лагало.
Аноним 10/05/20 Вск 17:43:03 1683321165
Есть "обёртка" вокруг указателя.

https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=0aab1b53434e354e0fc59088ababf3c5

Всё было зашибись, но потом я решил, что неплохо бы выводить в stdout в том, случае если в аргументах программы пользователь не указан путь к файлу на диске. Но тут возникла проблема из-за мономорфизации, как-нибудь можно построить тип с маркером, который бы указывал, что привязка идёт к AsRawFd?
Аноним 10/05/20 Вск 17:51:54 1683336166
>>1683321
А что конкретно за проблема? Как именно (и где) выводишь в stdout и что за ошибка возникает?
Аноним 10/05/20 Вск 18:00:43 1683351167
>>1683336
Ну короч я решил проблему. Просто берёшь и приязываешься к трейту.
Компилятор ругался вот на это:
let b = match fout {
Some(ref file) => FdBio::new(file),
None => FdBio::new(ref_stdout),
}
В ветках разные типы получались.
Аноним 10/05/20 Вск 18:15:17 1683373168
>>1683224
>Ибо из реальных вакансий я видел только блокчейн всё

На хх.ру был секс-шоп.
Аноним 10/05/20 Вск 18:17:18 1683378169
>>1683351
Ну тут да, либо использовать dyn (а учитывая что раст до сих пор не умеет в unsized locals, значит и использовать Box), либо енум с вручную сделанным vtable.
Аноним 10/05/20 Вск 18:25:42 1683386170
>>1683224
В треды прошлые кидали какую вакансию что то с разработкой бд было связанно
Аноним 10/05/20 Вск 18:27:50 1683389171
Аноним 10/05/20 Вск 18:32:58 1683397172
>>1683321
> FdBio<'a, T: 'a>
А тут точно T: 'a нужен? Оно означает что время жизни внутренностей T (нарпимер если внутри T есть ссылка на что-то) должно быть больше или равен 'a. При том при имплементации трейта у тебя стоит where T: AsRawFd, что является сокращением для T: AsRawFd + 'static (т.е. тут T либо не должен иметь ссылок внутри, либо все ссылки должны быть 'static). Это ошибок не вызывает, потому что T: 'static удовлетворяет требованию структуры к T: 'a (потому что 'static больше или равен любому 'a), но что-то явно не так. Либо убери требование T: 'a в структуре, либо добавь where T: AsRawFd + 'a в имплементацию.
Аноним 10/05/20 Вск 18:38:55 1683402173
Аноним 10/05/20 Вск 19:39:19 1683467174
>>1683224
>Бля, какой охуенный язык.
У тебя просто эффект чего-то нового, так-то язык как язык со своими хорошими и плохими местами.
Аноним 10/05/20 Вск 21:36:52 1683570175
те, кто готов отдать свою свободу (с/с++), чтобы приобрести немного временной безопасности (раст), не заслуживают ни свободы, ни безопасности

Аноним 10/05/20 Вск 21:56:02 1683587176
>>1683570
Любитель отстреленных ног, ты?
Аноним 10/05/20 Вск 23:08:22 1683616177
>>1683570
Ну дак вы же первые предали свободу в этом её понимании, уйдя с ассемблера.
Аноним 11/05/20 Пнд 01:13:16 1683663178
>>1683570
>те, кто готов отдать свою свободу (с/с++), чтобы приобрести немного временной безопасности (раст), не заслуживают ни свободы, ни безопасности

Ты ничего не теряешь, просто проверки, которые в плюсах
отсутствуют, нужно отключать стеной из ансейфа.

Только забыть сделать проверку можно, а вот написать
.unwrap_or_else(|| unsafe { unreachable_unchecked()}) случайно - нет.
Аноним 11/05/20 Пнд 09:47:53 1683753179
>>1682491
Он очень хорош, как первый язык программирования, потому что
1. Системный, без GC, так что учит тому, как работает память. Это не нужно всяким математикам, которые только proof of concept рисуют, и веб-макакам, но для любого другого программиста - очень полезно.
2. Учит видеть UB. Это просто охуеть как полезно. Примерно так же полезно, как строгая типизация (которая опять в хуй не упёрлась математикам и веб-макакам, которым вообще похуй, что там у юзера упадёт).
3. Best practices из мира крестов на уровне синтаксиса, а не "посоны, блет, ну мы же вам в 20 стандарте рекомендовали эту срань записывать в комменты к функции, ну почему всем поебать на советы".

Раст плох, если ты не собираешься становиться программистом. Раст - это не язык для школьников, которые не хотят учиться этому ебаному программированию; ты должен чётко понимать, что ты учишь и зачем ты учишь, потому что учить эту срань ты будешь охуеть как долго.
Аноним 11/05/20 Пнд 09:49:36 1683754180
buttplug.io
>Implementations in Rust
Вы официально закшварены.
Аноним 11/05/20 Пнд 09:55:28 1683755181
>>1683754
У меня есть фотки твоего ануса, которые я сделал с помощью твоего баттплага, который я запрограммировал. Так что вопрос о том, кто тут реально зашкварился, остаётся открытым.
Аноним 11/05/20 Пнд 10:32:08 1683774182
>>1683753
> 1. Системный, без GC,
А в чём проблема гарбаж коллекторов? Вроде норм же, тычешь им куда-то, он освобождает память, можно не бояться утечек памяти... Или это лишние циклы процессора использует? Я не знаю правда что такое эти ваши собиратели мусора.
> 2. Учит видеть UB. Это просто охуеть как полезно.
А другие - нет?
> Примерно так же полезно, как строгая типизация
А что это такое?
> 3. Best practices из мира крестов на уровне синтаксиса
Скажу честно, я в этом не разбираюсь.
А вроде бы всё то же самое есть в Сишечке, кроме синтаксиса...
>>1682516
Ну ладно :/
А в чем заключается сложность, желательно простым языком?
>>1682544
> Не, у тебя задача не та, тебе раст нахуй не нужон.
А какая у меня задача вообще? Научиться писать алгоритмы?
>>1682491-кун
Аноним 11/05/20 Пнд 10:45:40 1683789183
Аноним 11/05/20 Пнд 10:53:01 1683793184
>>1683774
>Научиться писать алгоритмы?
У тебя нет задачи их писать, твоя задача разобраться, чем ты хочешь вообще заниматься, то есть выбрать область, которая твоя, а для этого тебе раст не нужен. Если в итоге захочешь заниматься системным программированием, то изучай Си - lingua franca в мире программирования, а в раст закатывайся только тогда, когда сам уже для себя всё решишь, ну или если пойдёшь работать в buttplug.io мозиллу.
Аноним 11/05/20 Пнд 11:20:21 1683810185
>>1683774
>А в чём проблема гарбаж коллекторов?
Они работают с памятью неявно.

>> 2. Учит видеть UB. Это просто охуеть как полезно.
>А другие - нет?
Нет, не учат (C, C++, lua, и ещё куче других языков тупо срать, будет UB в коде или нет).

>> Примерно так же полезно, как строгая типизация
>А что это такое?
Гугли.

>Скажу честно, я в этом не разбираюсь.
>А вроде бы всё то же самое есть в Сишечке, кроме синтаксиса...
Нет. Как минимум, у растосообщества есть нормальный Code of Conduct.
Если не разбираешься, то чего споришь? А если разбираешься и троллишь так, то пойди на хуй, пожалуйста.
Аноним 11/05/20 Пнд 20:26:53 1684340186
>>1667263
>на расте (правда в основном там используется либа на c)
Естественно. Раста как языка не существует.
Аноним 11/05/20 Пнд 20:57:04 1684359187
>>1684340
Нихуя себе. Чо еще расскажешь?
Аноним 11/05/20 Пнд 22:41:28 1684429188
Что там по вэбу? Есть что-нибудь нормальное из модулей? Потыкал го, такое ощущение, что там делают две комманды. Кто первый выпустит релиз, в ту сторону и движемся. С системой модулей вообще нихуя не понятно было. Две разные три используются "чтоб ничего не сломать".
А с вэбом почему, мне так проще вкатываться в язык, начиная с простых проектов.
Аноним 12/05/20 Втр 01:49:37 1684566189
>>1684340
У меня есть возражение, на расте пишут продакшн код в buttplug.io, так что ты соснул.
Аноним 12/05/20 Втр 02:36:54 1684581190
Анон, а насколько сейчас раст пригоден для гамесов? Вроде же идеальный вариант чтобы быстро накидывать игры и без плюсовой хуйни по дороге. Или сейчас до-диез из Unity уже всех устраивает?
Аноним 12/05/20 Втр 08:57:17 1684731191
20200512084942.jpg 247Кб, 1235x667
1235x667
Изучаю rust opencv, и... блядь, хули так плохо.
let res = core::mul_mat_mat(&mat1, &mat2)?.to_mat()?;
На с++ это было бы что-то типа auto res=mat1*mat2;
Правильно ли я понимаю, что Result как универсальный вариант хэндлинга ошибок делает перегрузку оператора, который может возвращать ошибку, невозможной, и, как следствие, бесполезной для околоматематических задач?
Аноним 12/05/20 Втр 09:14:16 1684741192
>>1684581
>Анон, а насколько сейчас раст пригоден для гамесов?
Хзы, попробуй сам в аметист или еще во что нибудь потыкать.
Тока ECS не пугайся
по моему мнению, всё еще немного сырое, ну и в юнити всё легче намного и быстрее, мбы чуть позже на расте что то взлетит
Аноним 12/05/20 Втр 09:25:41 1684756193
>>1684731
Нашел идеоматическую либу на расте. Перегрузка операторов есть, в коде везде assert!. Ебань какая-то.
Аноним 12/05/20 Втр 10:45:35 1684785194
>>1684731
>Правильно ли я понимаю, что Result как универсальный вариант хэндлинга ошибок делает перегрузку оператора, который может возвращать ошибку, невозможной, и, как следствие, бесполезной для околоматематических задач?

Можно сделать енам или структуру наподобие { Matrix, Result <> }
Аноним 12/05/20 Втр 10:53:17 1684790195
>>1684756
Ну дык, а как ты хочешь по-другому? Либо ручная ебля с резалтами, либо паника при нарушении контракта. Если панику объединить с catch_unwind (при включенном unwind в настройках компиляции), то получится классический try/catch из С++.
Аноним 12/05/20 Втр 10:57:07 1684792196
Screenshot2020-[...].png 620Кб, 723x649
723x649
>>1684790
Я просто задаю вопросы
Аноним 12/05/20 Втр 14:10:47 1684979197
>>1684741
> Тока ECS не пугайся

Если шаришь, поясни, в чем его преимущество перед обычным ООП? Я вот пытался заюзать, и выглядит очень плохо. Вместо нормальных типизированных объектов мы храним каждый объект по кусочкам без какой-либо связи (только "entity id"-"component"), и тем самым теряем всю мощь системы типов.

Другой анон
Аноним 12/05/20 Втр 14:46:25 1685050198
>>1684979
ESC - это типо реляционная бд.
Аноним 12/05/20 Втр 15:48:15 1685147199
>>1684979
>его преимущество перед обычным ООП
В том что ООП больно было бы сделать на расте, ебля со владением была бы нереальная
больше я не знаю
Аноним 12/05/20 Втр 15:53:44 1685167200
>>1684979
Наоборот, когда пытаешь моделировать всю фигню через ООП, появляется миллион перекрестных ссылок. А вот когда у тебя есть, например, сущность "физический движок", то ему знать только то, что у него есть массив параллелепипедов, которые ему нужно обсчитывать. Лучше инкапсуляция, лучше использование кеша. Так все современные движки работают.
Аноним 12/05/20 Втр 16:44:26 1685273201
>>1684979
1. ОПП убивает производительность, потому что Data Driven Design - это про расчленение всего этого вот, чтобы каждый кусочек работал максимально эффективно, и данные не дублировались без надобности (к тому же, как только ты начинаешь писать "настоящий" ООП, у тебя сразу все объекты хуярятся через Box, что опять-таки убивает производительность).
2. В реальном мире как раз всё похоже на ECS, а не на OOP, поэтому писать в виде ECS всякие штуки, которые хотя бы частично моделируют реальный мир - проще. Да и эффективнее, потому что см. пункт 1.
3. Ты путаешь Object из OOP и систему типов. Система типов вовсе не про "захуярим всё вместе", она про типы. Тут хуй расскажешь, это надо на хаскеле показывать.
Аноним 12/05/20 Втр 17:59:20 1685410202
>>1685167
>>1685273

Ок, тогда как решается проблема "гарантировать, что я не проебал часть объекта"? Ведь мне ничего не мешает снести отдельный компонент, оставив остальные, принадлежащие конкретной entity? Ну и выбор всех компонентов для entity очевидно более тяжелый вычилсительно, чем получить объект.

> В реальном мире как раз всё похоже на ECS, а не на OOP

Очень спорно.Я бы сказал, что прямо противоположно.

> Ты путаешь Object из OOP и систему типов

Нет, не путаю. Может выразился несовсем корректно, это да. Я про то, что если брать подход "похожий на ООП", то у меня будет массив, например, NPC. Каждый NPC - инстанс вполне конкретного типа (в случае раста - структура), который может быть проверен компилятором. А в случае ECS мой NPC - это куча непонятно как связанных штук, корректность которых в компайлтайме не проверишь. Это реально похоже на реляционную БД, с потребностью в написании "запросов" или что-то типа ORM. То есть я, очевидно, не могу утверждать. что это менее быстро работает, но очевидно, что это хуево с точки зрения кода.
Аноним 12/05/20 Втр 20:10:29 1685711203
>>1685410
https://www.youtube.com/watch?v=aKLntZcp27M
>Ну и выбор всех компонентов для entity очевидно более тяжелый вычилсительно, чем получить объект.

А зачем? Если ты, например, считаешь урон от падения, то тебе нужно сделать запрос физическому движку и к хп персонажа. Ни анимация, ни моделька, ни данные с клавиатуры тебе не нужны. Да и доступ к массиву - это дешево.

>Ок, тогда как решается проблема "гарантировать, что я не проебал часть объекта"?

Ты можешь точно также забыть проинициализировать поле объекта и у тебя получится персонаж по умолчанию размером с Австралию и весом ноль.
Аноним 12/05/20 Втр 20:12:33 1685714204
>>1685711
>проинициализировать поле объекта и у тебя получится персонаж по умолчанию размером с Австралию и весом ноль.
С ECS даже проще, программа сразу запаникует, если ты забыл сделать инициализацию.
Аноним 12/05/20 Втр 20:37:44 1685745205
>>1684731
В твоём случае это библиотека-биндинг плюсового opencv
>pub fn cv_operatorX_const_MatExprX_const_MatExprX(e1: const c_void, e2: const c_void) -> Result<*mut c_void>;
По-хорошему, должна быть "няшная" библиотека-обёрточка вокруг этой, которая внутри там паникует, когда надо, а когда нужно возвращает результат в виде определённых алг. типов.
>>1685410
Ну тип выше уже написал, что это это реляционная БД по сути, и твоё недо-ооп умещается в "колонке".
Аноним 12/05/20 Втр 23:50:32 1685952206
я из джавы, хочу в системные, вот типа думаю, учить сразу раст или начать с си и плюсов
Аноним 13/05/20 Срд 00:15:44 1685961207
>>1685952
После Джавы Раст будет комфортнее в плане количества странной херни, которая может случиться в скомпиленной программе. Плюсы комфортнее в плане количества странной херни до компиляции.

По работе: плюсы менее денежные, чем Джава, и это не изменится, сиди в своём энтерпрайзе. А если Раст наконец-таки взлетит, то вакансии на 300кк в наносекунду появятся именно на нём.
Аноним 13/05/20 Срд 11:52:30 1686320208
>>1685711
>можешь точно также забыть проинициализировать поле объекта
В расте - не могу. А в ECS я могу не просто забыть проинициализировать, а полностью забыть добавить данные к объекту вообще.

> С ECS даже проще, программа сразу запаникует
Она должна отлавливать это в компайл тайм (чему ECS мешает полностью), а не в рантайме стрелять себе в голову.

> Ни анимация, ни моделька, ни данные с клавиатуры тебе не нужны

Ага, именно поэтому там уже в туториале получаются такие типы для получения данных:

type SystemData = (
WriteStorage<'s, Ball>,
WriteStorage<'s, Transform>,
WriteStorage<'s, UiText>,
Write<'s, ScoreBoard>,
ReadExpect<'s, ScoreText>,
);

Я боюсь представить высоту колонки, если будет реальный проект. Удобство как оно есть, несомненно.
Аноним 13/05/20 Срд 14:43:39 1686532209
>>1686320
>Я боюсь представить высоту колонки
Даун ёбаный, ты это вообще из ресов грузить будешь.
Аноним 13/05/20 Срд 18:51:11 1686984210
>>1686532
> Даун ёбаный
Ясно, порвался

> ты это вообще из ресов грузить будешь
Откуда? Говори хоть понятными не тебе одному терминами.
Аноним 13/05/20 Срд 19:06:25 1686996211
>>1686984
>Говори хоть понятными не тебе одному терминами
Пошёл нахуй, сказал.
Аноним 13/05/20 Срд 22:10:31 1687209212
>>1664495 (OP)
Мой одноклассник читает лекции по Расту. Горжусь.
Аноним 14/05/20 Чтв 07:37:35 1687367213
Как посмотреть покрытие тестами?
Аноним 14/05/20 Чтв 08:06:42 1687368214
>>1685952
Плюсы конечно. Раст решает не существующую проблему, трудно учится, некрасивый, приходится много времени тратить на обход борроу чекера, нет обратной совместимости, трудно работать с системными концептами и быстро, эффективно их реализовывать. Язык пытается избавиться от сайд эффектов, но такова природа компьютера.
Аноним 14/05/20 Чтв 08:33:18 1687371215
>>1687209
Физматовец в треде, все в CSC!
Аноним 14/05/20 Чтв 08:42:49 1687373216
>>1687368
>Раст решает не существующую проблему
Это какая?
Аноним 14/05/20 Чтв 09:44:16 1687395217
>>1687368
>Раст решает не существующую проблему
С точки зрения студентика с laba.cpp - несомненно.

>пытается избавиться от сайд эффектов, но такова природа компьютера
Долбоёбушка, смысл не в избавлении от сайд эффектов, а в контроле над ними и изоляции от чистого кода.
Аноним 14/05/20 Чтв 09:58:46 1687398218
>>1687368
>Плюсы конечно
>Раст трудно учится
спасибо, поднял мне чсв.
Аноним 14/05/20 Чтв 10:59:02 1687456219
Аноним 14/05/20 Чтв 13:04:15 1687605220
>>1687398
Ну тип современный язык, который для тупых зумеров, но чот немного сложноват в том смысле, что ЦА из джиэсо-макак не осиливает -> поэтому раст нахуй не нужен, и пишут на нём полтора энтузиаста. Ну как я это понял.
Аноним 14/05/20 Чтв 13:24:32 1687631221
>>1687605
>джиэсо-макак
в плюсы самая дорога, ага. Сколько там в полюсах занимает стороннюю либу подключить? Вечерок ёбли? Вот где настоящее программирование-то, жс-макак оценит.
Аноним 14/05/20 Чтв 14:04:19 1687702222
>>1687631
>в плюсы самая дорога, ага.
Я ничего не утверждаю, это вообще было про сложность со слов >>1687368
>Сколько там в полюсах занимает стороннюю либу подключить?
Почитать хэлп у компилятора (или один раз написать makefile/CmakeList.txt/Gyp) (есть вообще люди, которые в мс студиях и силайонах сидят), карго удобен, конечно, но тип ты сильно преувеличиваешь сложность, тем более если ты в каком-нибудь линуксе, где куча тулзов и внезапно тоже есть пакетный манагер, с которым ты изи таскаешь хедеры и либархивы - даже быстрее, чем с карго всё будет, если привыкши. Кстати про удобство карго, зонецил expand, вот где раст действительно сияет, такой-то тулинг 10/10.
Аноним 14/05/20 Чтв 14:35:54 1687739223
>>1686996
Ясно, еще один кукарек залетел в тред.
Аноним 14/05/20 Чтв 14:58:28 1687766224
>>1687368
> трудно учится
типа плюсы легкие, пойду струпа обрадую, а то он говорит чет сложна
Аноним 14/05/20 Чтв 15:10:09 1687773225
>>1687739
Извиняюсь, понял, о чем там речь - признаюсь, был не прав, ну а как ты хотел, пидорасина, в той же sqlэлии ты напишешь джоин на 5 строк, когда нужно будет сджойнить 5 сущностей.
Аноним 14/05/20 Чтв 23:39:52 1688543226
>>1687702
> Почитать хэлп у компилятора
Это в случае header-only библиотеки сработает. А если не дай бог либа привязана к своей системе сборки, да ещё и тянет за собой питон/перл/прочее скриптовое говно чтоб суметь собраться, то начинается форменный пиздец.
Аноним 15/05/20 Птн 01:07:37 1688599227
>>1687702
> Почитать хэлп у компилятора
Не поможет с подключением либы, там лишь десятки тысяч специфичных флагов компиляции, которые тебе не нужны.

> один раз написать makefile/CmakeList.txt/Gyp
Ага, всего-то осилить еще один ебанутый язык и на нем написать билдскрипт, в котором ко всему нельзя ошибаться, иначе получишь непонятную ошибку при билде с которой хуй пойми что делать, если опыта нету.

> тем более если ты в каком-нибудь линуксе, где куча тулзов и внезапно тоже есть пакетный манагер
Не стандартизировано, следовательно скорее всего оно будет работать только на твоей машине (в лучшем случае на твоем дистрибутивенейм, в лучшем случае пару лет, потом ебля с версиями). Чтобы это решить можно взять конан, но там половину рецептов придется писать самому ручками на богомерзком питоне, ибо готовых пекеджей нет.

> ты сильно преувеличиваешь сложность
Нет, работа с зависимостями в С++ это полнейший ад, что бы ты не делал. Всё потому что ебанное легаси и отсутствие стандартов билда в языке со стандартом. (стандарта по факту у С++ кстати тоже нет, но это другая история...)

/ мимо сгоревший плюсовик /
Аноним 15/05/20 Птн 02:01:22 1688607228
>>1688599
> > тем более если ты в каком-нибудь линуксе, где куча тулзов и внезапно тоже есть пакетный манагер
> Не стандартизировано, следовательно скорее всего оно будет работать только на твоей машине (в лучшем случае на твоем дистрибутивенейм, в лучшем случае пару лет, потом ебля с версиями). Чтобы это решить можно взять конан, но там половину рецептов придется писать самому ручками на богомерзком питоне, ибо готовых пекеджей нет.
Еще есть nix, охуенная штука. Описываешь какие зависимости тебе нужны в nix файле, в дирректории проекта вводишь nix-shell и попадаешь в окружение с нужными пакетами.
https://nixos.org/nix/
мимо
Аноним 15/05/20 Птн 04:14:19 1688633229
>>1688607
> всего-то осилить еще один ебанутый язык
Аноним 15/05/20 Птн 12:41:59 1688863230
image.png 16Кб, 253x217
253x217
>>1688633
Во первых, для базового использования достаточно написать файл уровня пикрл, где в массив просто передавать нужные зависимости.
Во вторых, язык не ебанутый, а функциональный и ленивый, прям как хаскель. Вот такие йобы можно с его помощью делать: https://blog.galowicz.de/2019/04/17/tutorial_nix_cpp_setup/

Думаю на него перейти и для растасам юзаю его для хаскеля, плюсы взял только как пример, ибо заебался для каждого проекта ждать пока карго скачает полгигабайта тех же самых зависимотей.
Аноним 15/05/20 Птн 16:48:41 1689199231
metaconf.png 354Кб, 1440x1271
1440x1271
Аноним 15/05/20 Птн 17:22:14 1689245232
>>1689199
>ONLINE
>meetup
Ни побухать, ни морду набить, зачем всё это?
Аноним 15/05/20 Птн 17:27:25 1689250233
>>1689245
>побухать
>морду набить
>задроты-чуханы и задроты-хипсторы
Аноним 15/05/20 Птн 18:07:43 1689322234
Аноним 15/05/20 Птн 18:49:42 1689393235
>>1689250
И я фашист. Как же заебали хохлы, либерда и приебалты.
Аноним 15/05/20 Птн 18:53:05 1689403236
>>1689393
ты падажи осознание пиздеца творящегося вокруг еще не наступило, ща ломанутся орды хохлов с галер на рынок
Аноним 15/05/20 Птн 20:19:50 1689472237
>>1688863
> для базового использования
Не надо вообще нихуя уметь и думать.

> язык не ебанутый

> f = libname: libs: derivs: with pkgs.lib;
> concatMap (deriv:
> mapAttrsToList (libVers: lib:
> (deriv.override { "${libname}" = lib; }).overrideAttrs
> (old: { name = "${old.name}-${libVers}"; })
> ) libs
> ) derivs;
>
> overrides = [
> (f "stdenv" compilers)
> (f "poco" pocoLibs)
> (f "boost" boostLibs)
> ];
> in
> pkgs.lib.foldl (a: b: a // { "${b.name}" = b; }) {} (
> pkgs.lib.foldl (a: f: f a) originalDerivation overrides
> )
Аноним 15/05/20 Птн 22:04:53 1689600238
>>1689472
>ниасилил синтаксис, значит язык ебанутый
Аноним 15/05/20 Птн 22:07:06 1689604239
>>1689600
Ты дохуя осилил, аж примеры из гугла тащишь.
Аноним 15/05/20 Птн 22:54:37 1689684240
>>1664495 (OP)
Тех, кто пишут на Си в шутку называют "сионистами".
Тех, кто пишет на Паскале называют "пасквилянтами".
А как называют тех, кто пишет на Расте?
Аноним 15/05/20 Птн 23:13:45 1689708241
external-conten[...].jpeg 25Кб, 400x300
400x300
Аноним 15/05/20 Птн 23:19:42 1689715242
Аноним 16/05/20 Суб 00:11:42 1689786243
Аноним 16/05/20 Суб 09:24:01 1689968244
>>1689684
В русском языке ещё не образовалось, а в английском - Senior Software Developer.
Аноним 16/05/20 Суб 10:16:41 1689979245
>>1689968
Senior Software Developer from buttplug.io, ето ти?
Аноним 16/05/20 Суб 13:50:25 1690083246
Screen Shot 202[...].png 402Кб, 1440x900
1440x900
Screen Shot 202[...].png 16Кб, 282x115
282x115
Аноним 16/05/20 Суб 16:48:18 1690382247
>>1690083
А матом там можно изъясняться? Хотелось бы употребить:
>ёбаный, сука, С++
>питон, нахуй
>goвно ебаное
Аноним 17/05/20 Вск 05:41:26 1691269248
Аноним 19/05/20 Втр 11:08:57 1693542249
Аноны, доколе в идейке
type + &type
будет подсвечивать ошибкой? Совсем обленились, ёма.
Аноним 19/05/20 Втр 12:19:50 1693618250
Аноним 19/05/20 Втр 17:24:17 1693980251
Хочу стать великим в Расте. Что и как делать для этого?
Аноним 19/05/20 Втр 17:34:58 1693998252
>>1693980
Пишешь код
@
Пишешь код
Аноним 19/05/20 Втр 21:03:36 1694222253
>>1664495 (OP)
the book, rustling или rust by example?

что посоветуете, если я уже что-то знаю о программировании в общем (функциональном в том числе), но не на расте
Аноним 19/05/20 Втр 21:11:15 1694228254
>>1693980
До совершеннолетия можешь попробовать питон или го
Аноним 20/05/20 Срд 06:38:27 1694521255
Аноним 20/05/20 Срд 08:23:11 1694546256
squidplug.png 95Кб, 1157x671
1157x671
>>1693980
>Хочу стать великим в Расте. Что и как делать для этого?
Аноним 20/05/20 Срд 11:46:27 1694843257
>>1694546
Мультиплексирующий охладитель ануса?
Аноним 20/05/20 Срд 12:02:14 1694871258
>>1694843
Вообще-то, это кальмар. Но твоя версия доказывает, что ты не ошибся тредом. Вэлкам, ёпт.
Аноним 20/05/20 Срд 12:33:43 1694938259
>>1694871
Вообще-то у кальмаров нет 3.5 разъема на щупальцах.
Аноним 20/05/20 Срд 12:38:55 1694945260
>>1694871
Кальмар, ну вы, блин, даёте ! Может ты ещё скажешь, что это мифическая медуза Горгона ?
Посмотри внимательнее - это мультипортовый охладитель ануса.
Аноним 20/05/20 Срд 12:54:16 1694968261
>>1694938
>>1694945
Вообще это ультрамодное поделие и работает на Расте.
Аноним 20/05/20 Срд 13:04:14 1694985262
При изучении Раста у вас возникнет необходимость для приобретения Великого Охладителя, который совместим абсолютно с любым гаджетом.
Аноним 20/05/20 Срд 13:07:02 1694990263
>>1694968
Никто не доверит свой анус какому-нибудь с++.
Аноним 20/05/20 Срд 13:43:14 1695032264
image.jpeg 5Кб, 300x168
300x168
Обогнали и перегнали примитивное говно!
Аноним 20/05/20 Срд 18:16:22 1695362265
Аноним 20/05/20 Срд 19:28:22 1695455266
>>1695362
Во-первых, я бы заменил сигнатуру на
fn plus(a: impl Borrow<i32>, b: impl Borrow<i32>) -> i32 {
Т.е. использовать impl-трейты вместо генериков.
> Надо чтобы функции было похуй что жевать, указатель или валуе.
Зависит от того что ты собираешься с этим значением дальше делать. Недостаток трейта Borrow в том, что на выходе у тебя всегда будет ссылка (даже если передаётся значение) и будет очень проблематично сохранить входные параметры в какую-нибудь структуру. Для простых типов и так сойдёт, потому что их почти бесплатно можно скопировать, а вот для чего-то более сложного (например строки или массивы) лучше использовать Cow (принимать что-то вроде impl Into<Cow<'a, str>> для приёма любых видов строк), который плюс уже содержит имплементации полезных трейтов для строк/массивов и прочего.
Аноним 20/05/20 Срд 19:29:27 1695459267
>>1695362
>хачу завернуть 2 типа в 1
Вам в жс-тред.
Аноним 20/05/20 Срд 19:37:03 1695462268
Аноним 20/05/20 Срд 19:56:08 1695470269
image.jpg 38Кб, 396x385
396x385
Учу раст 2 года написал хеллоу ворлд
Аноним 20/05/20 Срд 19:58:23 1695472270
>>1695455
Там что-то уровня этого же plus(), так что всё ок.
>>1695459
Заворачивается же.
Аноним 21/05/20 Чтв 04:17:14 1695899271
>>1695362
Я бы переосмыслил и задал себе вопрос: а надо ли такое делать? Если, допустим, надо, но выходит много однообразного кода, то решать бы стал уже через макросы.

Лол, в треде обсуждают Раст, а не дилдаки - растём
Аноним 23/05/20 Суб 20:55:13 1699333272
Чет раст не взлетает..
Аноним 24/05/20 Вск 11:33:34 1699740273
Аноним 24/05/20 Вск 12:22:31 1699782274
>>1699333
>>1699740
https://chromium-review.googlesource.com/c/chromium/src/+/1752927/
Всего-то уже и разрабы хрома активно ищут язык на замену плюсам, лол. Из альтернатив расту:
а) запилить форк ллвм, цланга, написать свой гц и запретить сырые указатели;
б) модернизировать процессоры (лол);
в) жс/жава/котлин (хз почему они в этот список попали, кекус конечно), свифт (который все же слишком хайлевел).
Аноним 24/05/20 Вск 13:16:25 1699836275
rust.PNG 46Кб, 812x471
812x471
rust2.PNG 63Кб, 805x675
805x675
Решил тут немного раст потрогать и наткнулся на проблему. Какая неожиданность!

Растаны, хоть и страшно у вас такое даже спрашивать, но почему в прикреплённых примерах, основной поток блокируется после того, как все сообщения получены и потоки отработали? Если перед получением сообщения заджойнить все потоки, то всё нормально.
В доке написано, что iter.next() возвращает либо Some либо None. Но у меня он блокирует поток поле последнего Some и всё.
Аноним 24/05/20 Вск 13:47:18 1699861276
>>1699836
У тебя tx из оригинального треда не умирает, поэтому ресивер не знает, что уже неоткуда брать данные. Вызови mem::drop после своего цикла.
Аноним 24/05/20 Вск 13:59:49 1699891277
>>1699861
Спасибо. Как я понял, по хорошему нужно дождаться завершения всех потоков, дропнуть rx, а потом уже собирать сообщения? Иначе ведь можно дропнуть rx а какой-то из потоков даже не успеет через него сообщение отправить.
Аноним 24/05/20 Вск 14:12:25 1699928278
>>1699891
Нет же, до тех пор, пока жив хотя бы один сендер, ресивер будет блокироваться. Ты ничего пропустить не должен.
Аноним 24/05/20 Вск 14:20:43 1699944279
1482790021987.jpg 37Кб, 480x360
480x360
>>1699891
У тебя tx и 10 его клонов, итого 11. Сообщение ты отправляешь 10 раз, остаётся один (оригинальный) ненужный, его тебе и надо дропнуть. Между for воткни drop(tx).
Аноним 24/05/20 Вск 14:25:25 1699948280
>>1699944
Вот теперь понял. Спасибо
Аноним 24/05/20 Вск 14:47:51 1699969281
Аноним 25/05/20 Пнд 08:31:07 1701140282
Аноны, вопрос по serde. Допустим, есть строка
"{a: 1, b: 2}". Хочу десериализовать её в структуру вида
struct MyStruct {
a: i32,
b: i32,
c: Instant
}
где в поле c буду пихать время десериализации Instant::now() - т.е. такое себе служебное поле только для меня, обратно сериализоваться оно тоже не будет. Можно такое провернуть?
Аноним 25/05/20 Пнд 09:20:36 1701161283
>>1701140
Можешь Serialize/Deserialize реализовать вручную, например. Или типа такого:

struct Container {
c : Instant,
data : MyStruct
}
Аноним 25/05/20 Пнд 11:23:22 1701316284
>>1701161
Эхх, ну, народ, совсем не шарите.
struct MyStruct {
a: i32,
b: i32,
#[serde(skip, default = "Instant::now")]
c: Instant
}
получится поле с дефолтным значением, которое есть только в структуре раста, но нет в сериализованном виде.
Аноним 25/05/20 Пнд 11:40:43 1701355285
>>1701140
Да. Делаешь имлементацию Default и метишь поле #[serde(skip)]

#[derive(Default, Deserialize, Serialize)]
struct MyStruct {
a: i32,
b: i32,
#[serde(skip)
c: Instant
}

Если не можешь всю структуру сделать Default, тогда установи чере макрос для поля функцию, откуда брать дефолтное значение.
Аноним 25/05/20 Пнд 11:42:36 1701360286
>>1701355
бля, тред не читай, сразу отвечай
Аноним 28/05/20 Чтв 03:00:23 1705022287
Блин, такой крутой язык, я попробовал и уже три дня не могу оторваться от изучения. Мне заходит
Аноним 28/05/20 Чтв 13:17:08 1705511288
>>1705022
У меня так же было, а потом понял, что пока нет никаких интересных фреймворков я ничего кроме простых утилит написать не могу. Я же джава макака.
Аноним 28/05/20 Чтв 16:12:53 1705765289
>>1705511
>нет никаких интересных фреймворков
Если заходить со стороны жабы/гвидона, то маловато. А если со стороны сей/плюсов, то очень даже + гораздо легче их подключить и использовать.
Аноним 28/05/20 Чтв 21:01:27 1706113290
>>1705765
unsafe руинит всю концепцию языка
Аноним 28/05/20 Чтв 21:17:46 1706130291
Аноним 28/05/20 Чтв 21:26:04 1706136292
>>1706113
В каком-нибудь проекте, который в иных обстоятельствах был бы на писан на жс/жабе/питоне, вполне можно и без ансейфа, даже не задумываясь "а не впендюрить ли".
Аноним 28/05/20 Чтв 22:52:41 1706190293
>>1706136
Кстати да, я как жаба макака вообще с трудом представляю зачем могут unsafe блоки понадобиться. Это чисто игрушки сатаны для всяких додиков, которые конпеляторы пишут.
Аноним 28/05/20 Чтв 22:53:45 1706193294
>>1706113
Death руинит всю концепцию жизни
Аноним 29/05/20 Птн 00:04:28 1706262295
>>1706113
В Хашкеллях, Питонах, Сисярпах и прочих Джавах есть буквально точно такие же средства, но почему-то претензии есть только к Расту. Причем, Ансейфом пользоваться даже проще, чем Джавовским JNI, потому что не надо думать ни о каком сборщике мусора и сейфпоинтах.
Аноним 29/05/20 Птн 09:56:56 1706481296
>>1706113
>unsafe руинит всю концепцию языка
unsafe - часть концепции языка
Аноним 29/05/20 Птн 10:05:04 1706493297
>>1706190
>Кстати да, я как жаба макака вообще с трудом представляю зачем могут unsafe блоки понадобиться. Это чисто игрушки сатаны для всяких додиков, которые конпеляторы пишут.
Немного поржал с игрушки сатаны (просто забавно звучит), мест много где он нужен, например, если у тебя используется ffi (там правда код прямой как рельсы), или, нопример, из очевидного запись в вектор без инициализации буфера, пины, тысячи мест так-то.
Аноним 29/05/20 Птн 11:48:02 1706592298
>>1706493
Ну и вся эта хрень в итоге не нужна, если ты пишешь клиента для рест-апишечки, например. Пины я, например, юзал лишь однажды - как раз с ffi, когда нужно было передавать контекст и получать коллбэк из сишного кода - часто ты проделываешь такое в жс, например?
Речь о том, что если ты юзаешь раст там, где обычно юзают жабу/питон/жс, то об ансейфе можно не вспоминать.
Аноним 29/05/20 Птн 11:59:07 1706599299
>>1706592
>Ну и вся эта хрень в итоге не нужна, если ты пишешь клиента для рест-апишечки, например.
Ну так и раст не нужен в этом случае, вообще раст и
>где обычно юзают жабу/питон/жс
попахивает хипстерской хуйней и buttplug.io, я к тому, что нормальные мужики на расте явно этим не занимаются.
Аноним 29/05/20 Птн 12:02:39 1706608300
>>1706262
Не, в питонах такого нет, он безопасный и память не течёт.
Аноним 29/05/20 Птн 12:10:48 1706615301
Аноним 29/05/20 Птн 12:20:43 1706631302
>>1706599
>Ну так и раст не нужен в этом случае
>нормальные мужики на расте явно этим не занимаются
ой, мужчинка, выйдите, а
Аноним 29/05/20 Птн 14:19:09 1706774303
>>1706592
> если ты пишешь клиента
Потому что весь ансейф уже написан в библиотеках и зачастую его пользователям он не нужен. Исключение - неинициализированная память, для которой ансейф нужен как со стороны библиотеки, так и со стороны бинарника. Но тут уже что-то пытаются сделать: https://github.com/rust-lang/rfcs/pull/2930 после этого пулл-реквеста, ансейф нужен будет только библиотеке, а пользователь сможет использовать только безопасные функции.

А так ансейф зачастую используется для трёх вещей: (1) неинициализированная память, (2) ffi, (3) работа с указателями (у указателей нету времени жизни, но зато они могут указывать на освобождённую память, а потому нужно следить за ними самому).
Аноним 30/05/20 Суб 01:07:59 1707594304
Хочу выучить растик, лучший язык. (по виду)
Но вакансий мало
Аноним 30/05/20 Суб 01:17:24 1707604305
>>1707594
Лучший язык это js. А раст это так игрушка на пару вечеров.
Аноним 31/05/20 Вск 01:57:54 1708803306
>>1706615
Ты что, это ДРУГОЕ. Написано же, "C or C++", вот они и текут. А питон заебись и безопасный.
Аноним 31/05/20 Вск 23:54:39 1709554307
Аноним 01/06/20 Пнд 06:37:58 1709680308
Аноним 01/06/20 Пнд 10:58:20 1709760309
>>1709680
И что там вкрации? Что замеряли-то?
Аноним 01/06/20 Пнд 12:54:38 1709844310
>>1709760
В Яндексе у людей бомбит с Раста, это ответочка.
Аноним 01/06/20 Пнд 13:24:59 1709865311
>>1709844
Ну конечно бомбит.
Вот представь — ты пол жизни потратил на изучение чего-то и ценишься только из-за этого навыка, а тут приходят хипсторы и говорят "это всё хуйня, выкидывайте".
Аноним 01/06/20 Пнд 14:42:45 1709934312
>>1709865
Жаль, что уже поздно.
Похоже, Раст останется нужным 2.5 команиям(
Аноним 01/06/20 Пнд 14:50:50 1709947313
>>1709865
Яндекс - это кто вообще?
Аноним 01/06/20 Пнд 14:53:35 1709953314
>>1709934
Будет нужен, когда нынешним растошкольникам будет по 30. Но это случится лет через 25, не раньше
Аноним 01/06/20 Пнд 16:21:35 1710089315
image.png 128Кб, 951x608
951x608
Аноним 01/06/20 Пнд 16:39:55 1710110316
>>1710089
Звучит как хуйня, если честно, не подумай, что расто-хейтер, вот когда хотя бы мози перепишет nss на раст, тогда и приходи.
Аноним 01/06/20 Пнд 16:43:36 1710115317
>>1709953
Жаль. Потому что язык беспрецедентно топовый.
Ну объективно же.
Аноним 01/06/20 Пнд 16:50:36 1710131318
bug.jpeg 11Кб, 400x220
400x220
>>1709680
>Вообще любой продукт, от которого зависит пол мира, очень даже имеет смысл переписать. OpenSSL приводят часто как хороший пример. Был бы он на расте мы, как минимум, избежали бы пачки уязвимостей, которые поставили эти пол мира на уши. Имеет смысл? Я думаю да.
Аноним 01/06/20 Пнд 16:54:53 1710141319
>>1709680
>Фишка в том, что в расте такой код "за забором". И я как-то считал, в СТД (в котором ужас-ужас сколько ансейфа) его значение порядка 0.1% от общей кодовой базы (считал очень грубо, по строчкам). Это значит, что у вас не миллион строк кода где можно "на секунду отвлечь/забыться", а тысяча. А теперь допустим что программист в среднем "забывает/отвлекается" раз на тысячу строк кода. В итоге в одной программе будет тысяча багов из-за этого, а в другой — один.
Что за унтеры там сидят? Уноси.
Аноним 01/06/20 Пнд 17:05:37 1710167320
1547362870056.png 105Кб, 600x600
600x600
Аноним 01/06/20 Пнд 19:23:34 1710353321
>>1710131
Бесит, блять. Как появляется что-то реально годное, сразу набигают толпы неадекватов (у Раста это, видимо, такие вот переписатели) и портят годноте репутацию.
Аноним 01/06/20 Пнд 20:38:00 1710399322
>>1710353
А подобные процитированному долбоёбу из >>1710141 тебя не бесят? Переписатели всегда были, у всего, просто мне нравится этот наивный юноша с "перепишем OpenSSL" на раст, он наверное и не в курсе, о чём там openssl.
Аноним 01/06/20 Пнд 21:21:42 1710428323
>>1710399
>он наверное и не в курсе, о чём там openssl.
Ну давай посмотрим на описание последней CVE
>Уязвимость CVE-2020-1967 представляет собой «ошибку сегментации» в функции SSL_check_chain. Серверные или клиентские приложения, вызывающие функцию SSL_check_chain () во время или после TLS-рукопожатия (версии 1.3), могут аварийно прекратить работу из-за разыменования нулевого указателя в результате неправильной обработки TLS-расширения «signature_algorithms_cert».
Так openssl — это про use after free?
Или из того что сразу приходит на ум — https://ru.wikipedia.org/wiki/Heartbleed
Так openssl — это про отсутствие проверки границ?
Поясни, про что же openssl. Ну не про корявый язык на котором написана же?
Аноним 01/06/20 Пнд 21:45:37 1710457324
>>1710428
Твой высер не в тему вижу, переписанный на расте openssl тобою не вижу.
Аноним 01/06/20 Пнд 21:51:10 1710465325
>>1710457
Так openssl это про
>высер
?
Или про что? Не понимаю.
Аноним 01/06/20 Пнд 21:52:53 1710468326
>>1710457
Типичный критик:

> он наверное и не в курсе, о чём там openssl

> Поясни, про что же openssl

> Сам не написал - нещитово

Ты блять вообще способен связать 2 фразы в диалоге и построить семантически корректный ответ третьей фразой?
Аноним 02/06/20 Втр 04:56:47 1710639327
>>1710353
> переписатели
Ну это даже в мемес переросло. Сейчас правда как-то поутихло, раньше хуже было.
Аноним 02/06/20 Втр 07:56:22 1710684328
1561205883225.png 162Кб, 600x382
600x382
>>1710639
Самое смешное было смотреть на оправдание С/С++-идиотов, которые защищали дырки в своих языках. Линус так вообще откосплеил мэра лондона с его "UB это нормальная практика для разработчика на С и их не стоит бояться".
Аноним 02/06/20 Втр 10:01:26 1710723329
>>1710465
>>1710468
openssl - это две библиотеки crypto и ssl, первая - "швейцарских нож" от мира криптографии, вторая собственно сама реализация протоколов ssl разных версий от старых до самой последней. По поводу первой либы, значит, это огромный набор реализаций алгоритмов, которые все разом никому не нужны, что-то конкретное можно всегда найти в другом месте, даже в виде crate на расте. Вторую библиотеку тоже нет смысла переписывать, потому что там куча легаси + есть другие реализации, если тебя ssl из openssl не устроил, например, libressl, раз уж heartblead упомянули.
Пример из жизни, который работает, ring - небольшая по меркам монстра libcrypt библиотека, но её и webpki достаточно для реализации tls 1.3, ну и rustls как имплементация ssl.
То есть мало того, что переписать openssl на раст - непосильная задача, так она и не стоит вовсе.
Аноним 02/06/20 Втр 11:07:06 1710749330
image.png 109Кб, 794x379
794x379
Оригинальный тред: https://2ch.hk/cc/res/471403.html

Привет! Работа над TON Dark (Rocks) уже идет вовсю. Скоро будем запускать тестнет и распределять наши настоящие коины (много коинов!) среди членов команды. А ты все сидишь на сосаче. Ты не хочешь попасть на раздачу? Для этого надо вступить в нашу команду и сделать какой-то effort. Особенно сейчас в почете C++-челы, Rust-челы и прогеры с опытом работы под блокчейн.

tondarklead@protonmail.com
Аноним 02/06/20 Втр 11:17:36 1710755331
>>1710749
Ты долбоеб, тон уже всё
Аноним 02/06/20 Втр 11:22:31 1710756332
>>1710749
Раз уж расто-тред, что там с либрой, ну и для справедливости с зеброй, зойчем кому-то нужен тон, если упомянутые работают (если работают)?
>>1710755
Тон уже всё, но был работоспособен.
Аноним 02/06/20 Втр 11:28:25 1710757333
>>1710756
>Раз уж расто-тред, что там с либрой, ну и для справедливости с зеброй, зойчем кому-то нужен тон, если упомянутые работают (если работают)?
>либра
Лол. Во-первых, еще не работает, Цук сейчас пытается поулчить у США разрешение, во-вторых, сейчас бы отправлять сканы своих документов и проходить полный KYC-AML цикл, чтобы мне разрешили ВЛАДЕТЬ КРИПТОВАЛЮТОЙ. Это нормально вообще, зачем тогда крипта? Хотя это же создатель ФСБука, камон.
Аноним 02/06/20 Втр 11:51:35 1710766334
>>1710757
>еще не работает
Я имел в виду работоспособность самой программы, типо как тон полгода назад, когда там они свои конкурсы проводили, как я понял, он уже был готов. Либру довольно давно пилят, возможно она уже готова, я это имел в виду, а не запуск. Ну и зебра ещё есть. На них смотрели?
Аноним 02/06/20 Втр 20:13:44 1711230335
struct Zalupa{
id: i32,
seks_list: Vec<Pizda>
}

struct Pizda{
id: i32,
zalupa: &Zalupa
}

Аноны, может кто объяснить как в данном случае правильно расставить лайфтайм спесифаеры? Вообще никак понять не могу. В залупе должен быть список пезд, залупа владеет и списком и каждой пиздой в нём. А в пизде ссылка на какую-то залупу.
Аноним 02/06/20 Втр 20:54:24 1711295336
1470616442766.jpg 25Кб, 585x433
585x433
>>1711230
> в данном случае правильно расставить лайфтайм спесифаеры
Никак.
Аноним 02/06/20 Втр 20:56:31 1711297337
>>1711295
Можно пожалуйста подробней?
Аноним 02/06/20 Втр 20:59:31 1711307338
Аноним 02/06/20 Втр 21:02:51 1711316339
>>1711307
Пиздос вы тут умные завидую
Аноним 02/06/20 Втр 21:18:31 1711341340
>>1711230
Поржал немного, ты меня развеселил, поэтому помогу тебе, добрый молодец.
>А в пизде ссылка на какую-то залупу.
struct Pizda<a> {
ptr: *mut Zalupa,
_marker: marker::PhantomData<&'a Zalupa>
}
mut/const по вкусу.
Аноним 02/06/20 Втр 21:44:05 1711361341
Аноним 02/06/20 Втр 23:00:11 1711415342
>>1711341
Вообще для указателей лучше всегда NonNull<T> использовать https://doc.rust-lang.org/std/ptr/struct.NonNull.html , либо Option<NonNull<T>> если возможно null-евое значение. Оба равны usize и являются zero-cost абстракциями и чуть безопасней сырых указателей.
Аноним 03/06/20 Срд 06:36:10 1711603343
>>1711415
Raw pointer - выбор настоящего системного программиста, NonNull Option - для девочек.
Аноним 03/06/20 Срд 11:22:14 1711679344
>>1664495 (OP)
Бля, ну что за кривое пердольное говно? Стоял stable-x86_64-pc-windows-msvc, решил накатить gnu, теперь вообще ничто не ставится.
rustup срёт ошибками, что нет нужных папок. Создаю руками, он пишет всё установлено, но по факту нихуя нет.
Пробовал standalone installers, но где в этом говне стандартная библиотека? Clion не хочет это говно принимать, хотя нужную папку указываю.
Ну пиздец. Причём в справке нихуя не написано, пишут ставить интерактивной залупой rustup-init и ни слова как заставить это говно работать.
Аноним 03/06/20 Срд 11:38:27 1711694345
fcc7zgxua5h41.jpg 40Кб, 630x630
630x630
>>1711679
>сидеть на виндовозе в 2к20.
Аноним 03/06/20 Срд 12:10:58 1711725346
Аноним 03/06/20 Срд 12:17:58 1711731347
Аноним 03/06/20 Срд 13:14:56 1711803348
>>1711679
>Бля, ну что за кривое пердольное говно?
Шинда.
Аноним 03/06/20 Срд 13:57:29 1711845349
>>1711803
>>1711694
причем тут шинда, если проблема в ублюдском (((безопасном))) софте?
Аноним 03/06/20 Срд 14:09:15 1711851350
>>1711845
>типичные шиндопроблемы с файловой системой и переменными окружения, с которыми ебутся и ебались все, кто когда-то работал на шинде
>прием тут шинда
Аноним 03/06/20 Срд 14:18:53 1711860351
>>1711230
Ну вот так оно даже скомпилируется

struct Zalupa<'a> {
id: i32,
seks_list: Vec<Pizda<'a>>
}

struct Pizda<'a> {
id: i32,
zalupa: &'a Zalupa<'a>
}

Только вот сконструировать что-то нормально не сможешь, да. Вместо ссылок надо юзать Rc/Weak, чтобы запилить циклическую зависимость.
Аноним 03/06/20 Срд 15:14:06 1711936352
>>1711851
> шиндопроблемы с файловой системой и переменными окружения
Но ведь это говно просто не работает. В этом (((безопасном))) пердософте написано что будут скачаны небходимые пакеты и установлены в такие-то папки, но ни первого, ни второго не происходит. Если бы были проблемы с вводом/выводом шинды, то должно быть исключение, но это говно просто нихуя не делает. Это не проблема шинды, что эти говнокодеры понаписали что-то в реестр и теперь нихуя не работает. Я бы понял если была хоть какая-то ошибка, но это говно пишет что всё ок и установлено. Сегодня я уже сгорел и даже не хочу пытаться вычищать это говно из системы. Алсо, удаление этого говна ничего не поменяло, надо чистить вилкой.
У меня есть подозрение что это говно не работает потому что я как-то полуавтоматически ставил всё это через VS Code, но это не отменяет того что делали всё это говноделы, неспособные в простейшее тестирование, т.к. это всё официально поддерживается.
Аноним 03/06/20 Срд 15:57:21 1712003353
Нюфаги совсем охуели, походу скоро будут требовать релиз в стиме, чтобы от дотки не отвлекаться.
Аноним 03/06/20 Срд 15:59:06 1712005354
>>1711936
>Алсо, удаление этого говна ничего не поменяло, надо чистить вилкой.
>ряяя это же не проблемы кривого дизайна шинды ряяяяяяя

>это всё официально поддерживается.
>опенсорс с баблом от некоммерческой организации
Эта "официальная поддержка" там от пары челиков, потративших на это своё время. Имхо — не стоило, с шиндой всегда так — ебли много, а потом ещё говнокодером назовут когда всё развалится.

Тащемта, ты сам долбоёб, который не захотел делать всё по инструкции, сделал всё по своему и всё поломал. Теперь ты пришёл сюда, даёшь 0 инфы и срёшь какую-то хуйню. Блять, ты же даже сам переустановить не можешь, о какой нормальности фс и прочей шиндохуйни вроде реестра ты говоришь?
Аноним 03/06/20 Срд 16:21:30 1712033355
>>1711936
Ты какой-то ебануй чес слово.
Аноним 03/06/20 Срд 17:00:31 1712068356
>>1711936
> windows
> VS Code

Кажется проблемы все таки не в расте а в том что ты криворукий дебил
Аноним 04/06/20 Чтв 02:36:20 1712549357
>>1711230
struct Zalupa<'a>{
id: i32,
seks_list: Vec<Pizda<'a>>
}
struct Pizda<'a>{
id: i32,
zalupa: &'a Zalupa
}

Also, не забудь закинуть залупу в std::pin::Pin
Аноним 04/06/20 Чтв 02:38:02 1712550358
>>1711341
>*
Вот из-за таких говнокодеров потом программы приносят миллионы убытков, мда.
А если я мувну залупу?
Аноним 04/06/20 Чтв 05:19:27 1712584359
>>1712549
Ты видимо не до конца понимаешь значение Pin. Pin - это обёртка над ссылками и в твоём случае он должен быть в структуре Pizda, потому что именно там есть ссылка на Zalupa. Zalupa же владеет всеми экземплярами Pizda, а потому там пин не нужен.
Аноним 04/06/20 Чтв 10:36:15 1712665360
>>1712584
Pin это аналог unique_ptr из c++.

Если не запинить Zalupa, то при муве Zalupa поинтер на нее поменяется, и все элементры внутри списка будут иметь референс(поинтер) на невалидную память.
Pin это позволяет избежать, т.е. память всегда хранится в одном месте.

В его случае если не запинить значение, то ты получишь ошибку лайфтаймов АРЯЯЯ!! НА РАСТЕ ЧТО-ТО ТАМ НЕЛЬЗЯ.
Есть еще вариант если у тебя Zalupa является 'static, в таком случае достаточно в самой Pizda брать &'static Zalupa.
Аноним 04/06/20 Чтв 10:53:14 1712674361
>>1712665
core::ptr::unique::Unique — вот аналог твоего unique_ptr (Box — safe аналог, но не прямой).

Если бы Pin работал как Unique, у тебя бы вся память по пизде пошла, потому что Unique дропает свой контент, а Pin просто привязывает указатель.

Пин — это просто маркер, который позволяет полагаться на то, что Zalupa не сдвинется через эту &mut ссылку, но при этом ты всё ещё можешь получить мутабельный доступ к полям внутри через DerefMut.
Аноним 04/06/20 Чтв 10:57:49 1712676362
>>1712674
> Пин — это просто маркер, который позволяет полагаться на то, что Zalupa не сдвинется через эту &mut ссылку, но при этом ты всё ещё можешь получить мутабельный доступ к полям внутри через DerefMut.
Ну да, так а что тогда ему нужно, чтобы Pizda к Zalupa нормально ссылалась?
Аноним 04/06/20 Чтв 11:31:04 1712699363
>>1712550
>А если я мувну залупу?
А если у тебя пропуска в интернет нету? Ты тут вообще должен быть? Начнём с этого.
Аноним 04/06/20 Чтв 11:40:45 1712707364
>>1712674
>core::ptr::unique::Unique
Его, получается, убрали из std lib, потому что Box имеет safe api и корректен, т.е. за ненадобностью?
Аноним 04/06/20 Чтв 11:52:39 1712716365
>>1712707
В std её не было изначально, это чисто внутренняя штука, чтобы код не копипастить.
Аноним 04/06/20 Чтв 12:31:06 1712752366
>>1712716
И касательно того шизика с пинами, я же правильно понимаю, что пин всегда нахуй не нужон как поле структуры, т.е. гораздо лучше его сделать частью api, то есть оборачивать хозяина объекта в пин, и работать везде с последним?
Аноним 04/06/20 Чтв 12:31:40 1712753367
>>1712716
>это чисто внутренняя штука, чтобы код не копипастить
Я вспомнил, где видел, в номиконе же.
Аноним 04/06/20 Чтв 15:29:38 1712991368
Аноним 04/06/20 Чтв 20:45:52 1713325369
>>1712752
В том случае именно надо сделать частью структуры Pizda, как-то так:
struct Pizda<'a>{
id: i32,
zalupa: Pin<&'a Zalupa<'a>>,
}
чтобы указать, что при создании этой структуры Zalupa уже должен быть "запиннен" где-то в памяти и его нельзя перемещать в другое место.
Аноним 07/06/20 Вск 20:16:28 1715991370
В этом замечательном языке есть нормальные библиотеки для работы с числами произвольной точности?

Попробовал bigdecimal, на первый взгляд ничего так, но нельзя указывать точность для операций. Например надо мне sqrt(2) с точностью 100 знаков, или деление, а там такое не предусмотрено.
Аноним 07/06/20 Вск 20:32:30 1716006371
Снимок экрана 2[...].png 111Кб, 1790x522
1790x522
Пачаны, я тут вам пикчу в копилку с buttplug.io принёс, но уже с вполне настоящими вакансиями. И даже придумал пару шюток:
1) Как CoC раст-коммунити к такому относится?
2) Если выгоришь — можно будет пойти работать на вебку.
Аноним 07/06/20 Вск 20:33:29 1716009372
>>1716006
На самом деле мемная только нижняя часть, но какой же хуёвый дизайн, вроде зрение хорошее — а нихуя не увидел.
Аноним 07/06/20 Вск 20:38:20 1716013373
>>1715991
Единственное что я смог нагуглить — https://docs.rs/num/0.2.1/num/
Если не то — либо писать самому, либо писать биндинги к сишным аналогам.
Аноним 07/06/20 Вск 20:48:05 1716024374
bf.jpg 55Кб, 900x900
900x900
>>1716006
>buttplug.io
Я хоть и шутил про эту парашу, но мне казалось, что это чисто редитовый мем, а оно вона как.
Аноним 08/06/20 Пнд 10:57:20 1716539375
>>1716013
Уже смотрел, там вообще нет десятичных дробей, только натуральные.

Буду смотреть что там в bigdecimal, может допилю по свои нужды.
Аноним 08/06/20 Пнд 11:24:56 1716585376
gcc.png 117Кб, 1919x1079
1919x1079
rustc.png 175Кб, 1919x1079
1919x1079
>>1664495 (OP)
Аноны-растишки, поясните за оптимизацию исполняемого кода в rustc. Почему в rustc при opt-level=3 и опции использования расширений текущей архитектуры не используется ни одна инструкция из расширений, тогда как в gcc выходная программа чуть менее, чем полностью строится на AVX-расширениях? И есть ли вообще способ как-то собрать программу на Rust'е с этими расширениями?
Аноним 08/06/20 Пнд 14:16:48 1716726377
>>1716585
Проблема а) в -ffast-math, который не хотят включать по причинам б) Лишние проверки, которые блочат векторизатор.

https://godbolt.org/z/ZQwyGJ
Аноним 08/06/20 Пнд 14:39:25 1716742378
>>1716726
Есть какая-то информация, будут ли fast math завозить в Rust?
Аноним 08/06/20 Пнд 14:47:47 1716751379
>>1716742
По умолчанию точно нет. Собственно, fast-math - это когда мы считаем, что флоаты ассоциативные и коммутативные. Это можно закостылить вручную, хотя, наверное, проще интринсиками.

https://godbolt.org/z/bPH2vr
Аноним 08/06/20 Пнд 15:00:49 1716759380
>>1716751
Спасибо за информацию, анон.
Аноним 09/06/20 Втр 21:45:55 1718058381
IMG202006092143[...].jpg 470Кб, 2694x2293
2694x2293
Я скозал
Аноним 09/06/20 Втр 22:52:32 1718123382
Есть микрозадача, которую не знаю как без говнокода решить.
Есть &[u8]. Там внутри записано ascii символами число. Допустим ['1', '2', '3']. Необходимо перегнать это дело в i32. Должно выйти 123.
Пока язык изучаю, поэтому придумать хорошее решение не в состоянии, может быть подскажете как без String::from_utf8(array).unwrap().parse::<i32>().unwrap() обойтись? Нашел from_str_radix, но оно принимает &str.
Аноним 09/06/20 Втр 23:11:06 1718137383
>>1718123
Integer.valueOf(Arrays.stream(arr).collect(joining("")))
Аноним 09/06/20 Втр 23:46:19 1718166384
>>1718123
> как без
Так у тебя парс этот же from_str_radix внутри и вызовет наверное

> но оно принимает &str
std::str::from_utf8(a).expect("kek")
ну или
unsafe { std::mem::transmute(a) }
Аноним 10/06/20 Срд 05:28:13 1718347385
>>1718123
А чем from_utf8 и parse не устраивают? Выходит нормально, плюс не забывай что у раста мощный type inference, так что можно при вызове parse не указывать тип, если его можно вывести позже.
https://play.rust-lang.org/?version=stable&mode=release&edition=2018&gist=250dd2ec5df3dc8b53f3a834ac33dd2c
>>1718166
> unsafe { std::mem::transmute(a) }
Для этого есть from_utf8_unchecked: https://doc.rust-lang.org/std/str/fn.from_utf8_unchecked.html
Аноним 10/06/20 Срд 05:34:27 1718355386
>>1718347
И да, str::from_utf8 не копирует строку. Он просто проверят все ли байты в массиве соответствуют utf8, а потом вызывает from_utf8_unchecked, который просто превращает ссылку &[u8] в ссылку &str. Если ты уверен что массив содержит корректные данные (например проверка уже была выполнена ранее), то можешь вызывать напрямую from_utf8_unchecked, чтоб не проверять массив лишний раз.
Аноним 10/06/20 Срд 07:33:02 1718389387
Аноним 10/06/20 Срд 07:33:30 1718390388
>>1718389
s = s*10 + (n as i32)-('a' as i32)

fix
Аноним 10/06/20 Срд 08:37:29 1718417389
Аноним 10/06/20 Срд 09:35:09 1718444390
Аноним 10/06/20 Срд 15:00:06 1718685391
>>1718444
Навелосипедил - убери за собой.
Аноним 10/06/20 Срд 15:03:55 1718690392
image.png 19Кб, 727x122
727x122
Аноны, такой пиздос: есть крейт и есть проджект. В крейте используется futures, написаны тесты с его использованием - работают, сук. Но при сборке проджект ругается на такую хуйню в крейте, сука. Как так?!
Аноним 10/06/20 Срд 15:52:29 1718753393
>>1718690
Сделал
cargo update
cargo clean в обеих дирах
удалил всё в ~/.cargo/registry/src
попереставлял импрты туда-сюда - вродь заработало.
Аноним 10/06/20 Срд 15:54:19 1718757394
Аноним 12/06/20 Птн 15:44:25 1720436395
тред умер как и язык
Аноним 12/06/20 Птн 16:14:21 1720473396
Аноним 12/06/20 Птн 19:52:44 1720699397
>>1720473
На нем хотя бы работа есть...
Да даже тред не такой мертвый как это
мимо
Аноним 13/06/20 Суб 09:35:39 1721202398
>>1720699
Найди мне, как через swagger нагенерить OpenAPI биндинги для плюсов.
Аноним 13/06/20 Суб 11:07:20 1721249399
>>1721202
А если не найду, то что?...
Аноним 13/06/20 Суб 12:25:54 1721312400
>>1720699
>Да даже тред не такой мертвый как это
Треды тащемта абсолютно идентичны, вся разница в том, что тут студней с лабой1 нет, которые все шаражки гонят на потоке. Попробуй скрывать их в плюсотреде и посмотри какой он будет живой, лол.
Аноним 13/06/20 Суб 12:42:08 1721320401
Давно не следил за новостями, что там в расте с февралей этого года произошло? Конст-шаблоны уже стабилизировали? Рантайм для фьючей в стдлиб уже завезли, или всё также либо токио либо async-std?
Аноним 13/06/20 Суб 13:08:45 1721338402
>>1721320
По факту добавили только две крупные фичи:
1) async/await теперь не требует Thread-Local Storage, а значит может работать в no_std и в целом быстрее и генерирует меньше кода (теперь может даже полностью оптимизироваться).
2) catch_unwind теперь имеет zero-cost есть код внутри него не выбрасывает панику.

Вот и всё. Остальное ещё в процессе.
> Рантайм для фьючей в стдлиб уже завезли
Сомневаюсь, что это туда вообще когда-нибудь завезут. Особенноу читывая, что помимо токио и асунк-сдт, уже есть особенно необычные рантаймы, например поверх io_uring у новых линуксов.
Аноним 13/06/20 Суб 13:09:29 1721339403
>>1721338
> имеет zero-cost есть код внутри него не выбрасывает панику.
имеет zero-cost если код внутри него не выбрасывает панику.
fix
Аноним 13/06/20 Суб 18:34:59 1721648404
>>1721249
Вроде как пишет на плюсах народу больше, а для стильной модной технологии модуля до сих пор нет. Напрашивается вывод - плюсисты, это или пердуны, которым не до того, или их студенты, которым лишь сдать все лабы и забыть плюсы, аки страшный сон.
Аноним 14/06/20 Вск 14:26:40 1722382405
Аноним 14/06/20 Вск 14:35:11 1722401406
>>1722382
> некоторые идеи стали насаждать в головы настолько агрессивное, безапелляционно и грубо.
Как они смеют оскорблять лучший в мире язык С++? Вообще охуели. Вон эксперты яндекса говорят что раст не нужен и С++ гораздо безопасней. А я яндексу больше верю, потому что я патриот.
Аноним 14/06/20 Вск 14:40:14 1722409407
>>1721338
Спасибо.
>>1722382
>Есть некоторые люди, которые хотят выполнить свою работу на языке, который они уже знают
Лол
Аноним 14/06/20 Вск 14:50:14 1722421408
>>1722382
>Сектант кукарекнул в пользу своего объекта поклонения
>Индустрия продолжил писать все на плюсах
Аноним 14/06/20 Вск 14:52:21 1722425409
>>1722421
>Индустрия продолжил писать все на плюсах
Всё на си, ты хотел сказать?
Аноним 14/06/20 Вск 14:53:12 1722426410
>>1722421
ты нихуя не понимаешь, скоро весь айти пересядет на раст (даже юи-бляди будут ебошить на васме), а плюсовики просто обосрутся заживо от каждодневного взлома их говноподелий
Аноним 14/06/20 Вск 14:56:03 1722428411
Аноним 14/06/20 Вск 15:02:56 1722434412
Почему тред всплывает, только когда кто-то жидко перданет про Раст в интернете?
Аноним 14/06/20 Вск 15:44:04 1722537413
>>1722434
Потому что язык не популярный
Аноним 14/06/20 Вск 20:47:12 1722958414
То гугл перданёт, то M$, скоро, глядишь, Папа Римский богоугодным объявит. Но лабы у нас в шараге на нём не пишут, поэтому непопулярный.
Аноним 15/06/20 Пнд 04:46:55 1723180415
>>1722958
>Но лабы у нас в шараге на нём не пишут
Я пишу
Аноним 15/06/20 Пнд 08:25:40 1723233416
>>1722958
На Го тоже не пишут, но он популярный.
Аноним 15/06/20 Пнд 09:20:40 1723271417
Аноним 15/06/20 Пнд 11:04:25 1723333418
>>1723271
>ECS
нихуя не понятно что там у вас происходит вобще
Аноним 15/06/20 Пнд 11:17:43 1723348419
>>1723333

Берешь такой объект за шкирятник и потрошишь его нахуй.

Эти поля превращаешь каждое в массивы или иные коллекции.

Теперь объекта нет.

Есть сущность, которая раньше была объектом, а теперь стала просто типа тегом со списком поддерживаемых компонентов

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

Есть системы - которые типа лямбда с циклом внутри итерирующаяся каждая только по своему компоненту и нихуя не знающая ни о сущностях ни о чужих компонентах.


Аноним 15/06/20 Пнд 11:19:36 1723353420
>>1723348

Ну то есть, был массив структур, енго превращаем в структуру массивов, сами массивы прячем друг от друга и от пользователя, бизнес-логика в системах, которые лямбда с циклом и которым безопасно выдаются слайсы коллекций только отдельных полей.
Аноним 15/06/20 Пнд 11:22:21 1723356421
>>1723353
А если захочется по-старинке: позвать, там, какой-нибудь метод с &mut self, который меняет поля структуры? А структурыто попиханы по векторам, которые итерируются хуй знает каким потоком - облом-с?
Аноним 15/06/20 Пнд 11:24:19 1723357422
>>1723348
Да общую идея то я понимаю
на писать и осозновать код не получается
к примеру пытался на аметисте писать, какая же боль была
Аноним 15/06/20 Пнд 11:26:56 1723363423
Аноним 15/06/20 Пнд 11:33:21 1723372424
>>1723356

Значит система должна на выходе высирать множество сообщений (например физическая система пробежала по всем пулям и объектам в мире и высрала список кто в кого попала, этот список сожрался геймплейной системой, которая пробежалась по хп атаке и проставила соответсвующие статусы/флагии передала системе анимации, которая передала список анимаций скелетов рендеру который уже нарисовал корчащихся трупов итд), которые должна схавать другая система.
Аноним 15/06/20 Пнд 11:34:02 1723373425
>>1723372

И тут появляются сущности оркестровки вроде всякие так графы зависимостей.
Аноним 15/06/20 Пнд 15:14:50 1723694426
>>1723271
> Правильная

> Система типов - в помойку
> На каждый чих - лукап в хранилище

Чето не, хуйня получилась, делайте заново.
Аноним 16/06/20 Втр 01:59:56 1724325427
>>1723694
Ну, строго говоря, specs — не совсем ECS. Но при этом, ECS как раз очень хорошо подходит для мультипоточности, потому что всё независимое. Лучше ECS подходят только выросшие прямо из CRDT системы, но там расширяемость страдает по сравнению с ECS. Мультипоточность — это вообще всегда боль, потому что менять расшаренные данные нельзя, а всегда хочется.
Аноним 16/06/20 Втр 10:40:34 1724479428
Аноны, такое дело. Есть 2 группы асинхронных операций:
Группа1(оп11, оп12,..), группа2(оп21,оп22,..)
что нужно:
1. чтобы каждая из групп выполнилась асинхронно
2. чтобы выполнение группы 2 началось после того, как отработает группа 1
3. чтобы всё вместе это дело отработало внутри асинхронной неблокирующей таски
а то что-то сам я запутался - tokio, futures, async-std, куча тулз, рантаймов, пиздос. Вдруг кто уже проворачивал подобное.
Аноним 16/06/20 Втр 13:48:12 1724627429
>>1724325
Все еще оба моих аргумента вполне обоснованны.

Я понимаю, почему ecs может быть полезен в видеоиграх, но в целом довольно редко есть кейс, что надо менять прям одни и те же данные из разных потоков ОДНОВРЕМЕННО. И в итоге проще применять всякие мьютексы для конкретных случаев, чем тянуть для всей системы ecs и все ее минусы. Как минимум думая о рабочих проектах (среди них один - довольно хайлоад система с мягким реалтаймом; везде - многопоточность), ecs выглядит как бесполезная и даже откровенно мешающая хуйня. Шарить изменяемые данные между потоками плохо, но если совсем надо, то Arc<RwLock_>> и вперед.

>>1724479

Примерно так (я только не понял 3 пункт, но подозреваю, что тебе надо просто запустить из работающей async функции и забить на результат)

async fn some_func(....) -> ... {
... <some code>
// Вот тут ты просто запускаешь свой асинк и идешь дальше
tokio::spawn(async move || { futures::join_all(<your ops>).await; futures::join_all(<your ops>).await; })
... <some other code>
}

Чо тут происходит:

1. tokio::spawn запускает переданную ей асинхронную функцию на текущем рантайме. Можешь думать об этой функции как об аналоге thread::spawn, только на вход подается асинхронная функция;
2. async move || {...} это просто асинхронная безымянная функция, тут все просто;
3. futures::join_all(<your ops>).await; futures::join_all(<your ops>).await; - это как раз последовательный запуск групп;
4. futures::join_all просто запускает все переданные ей футуры одновременно и ждет завершения всех.

Хуево описал, но надеюсь будет понятно хоть немного.

Если вместо tokio юзать async-std, то там наверно есть аналог tokio::spawn, лень гуглить.
Аноним 17/06/20 Срд 11:34:02 1725868430
Аноним 17/06/20 Срд 12:56:44 1725958431
>>1725868
А если тип непринтабельный - ошибку вернёт?
Аноним 17/06/20 Срд 14:13:30 1726092432
Новость из блога トナリ уже закидывали?
Аноним 17/06/20 Срд 16:17:56 1726178433
>>1726092
東京タンメン トナリ | 季節の野菜をたっぷり取り入れたタンメン。?
Аноним 17/06/20 Срд 16:38:05 1726196434
>>1726092
https://blog.tonari.no/why-we-love-rust?ref=twtr
мог бы и сам ссылку скинуть, каког хуя мне пришлось самому её искать?
но впринципе достаточно интересно было глазами пробежаться, спасибо
ах ну да, а нахуя эта залупа зеркальная нужна? обычных вебок уже недостаточно?
Аноним 17/06/20 Срд 17:29:20 1726240435
>>1724479
>группы
Почему именно группы?
>неблокирующей таски
Русский язык, не?
>а то что-то сам я запутался - tokio, futures, async-std, куча тулз, рантаймов, пиздос.
A { B_готов: bool }, B (первый набор задач), C (второй набор задач) реализуют std::future::Future
В poll у A, если B_готов, то опрашивается C, иначе B. Хуле тут сложного? По поводу рантаймов вопрос сложнее, про async-std я ничего не могу сказать, в токио есть оч простой способ ВАЙТИ, это если ты его используешь с фичей rt-core с сингл тредовый рантайм
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=ba94d6fc181417417a4e274386722038
В билдере .basic_scheduler().
>>1726196
Можно коротко про что там? Быстро бегать глазами не люблю, а если что-то интересное, то можно и почитать аккуратно.
Аноним 17/06/20 Срд 17:31:57 1726242436
Ну что вы, расисты. Сколько реп у ваших зависимостей уже сменили название главной ветки с расистского термина master на политкорректные main или target? У меня пока только один: https://github.com/time-rs/time/issues/264

Планируете ли сами переименовывать? Или тут все гитлеры?
Аноним 17/06/20 Срд 17:46:51 1726258437
>>1726242
Ну, он же написал, что не будет объяснять причин своего поступка и всё такое. Походу, африканские братушки просто выловили его на улице и что-то эдакое провернули с пруфами, потребовав сменить имя ветки, чтобы пруфы не всплыли.
Аноним 17/06/20 Срд 17:48:33 1726261438
>>1726240
>Можно коротко про что там? Быстро бегать глазами не люблю, а если что-то интересное, то можно и почитать аккуратно.
Сам сильно не вчитывался
кратко: кампания начала пользоваться растом, рассказали как к этому пришли, с чем столкнулись, плюсы минусы и тд
ничего полезного
Аноним 17/06/20 Срд 17:55:02 1726268439
>>1726258
> Ну, он же написал, что не будет объяснять причин своего поступка и всё такое.
Интересно все участвующие в этой рассылке тоже были провёрнуты африканскими братушками? https://lore.kernel.org/git/CAOAHyQwyXC1Z3v7BZAC+Bq6JBaM7FvBenA-1fcqeDV==apdWDg@mail.gmail.com/

И СЕО гитхаба тоже: https://twitter.com/natfriedman/status/1271253144442253312?s=19
Аноним 17/06/20 Срд 18:54:33 1726353440
>>1726268

"Африканские братушки" - это демократы и стоящие за ними рептилоиды из wall street , которые должны ухуярить промышленников-васпов.

Тут многие не понимают, что вот эти все каминаутники на самом деле понимают ЧЬЯ повесточка и держат нос по ветру и за кого на самом деле вписываются.
Аноним 17/06/20 Срд 18:58:43 1726357441
>>1726353

И они прекрасно понимают что мрии про Make America Great Again на фоне стремительно превращающихся в детроит промышленных городов и бесплатной рабочей силы в странах третьего мира с перспективой замены их роботами - это примерно чуть менее чем нихуя фейспалмово чем мрии во возрождении СССР 2.0.

По этому они вписываются за повесточку сильных, у которых план унасекомить васпов-промышленников через черный расизм.

Аноним 17/06/20 Срд 19:00:45 1726361442
>>1726357

Я даже вангую апофеозом сего действа станет сожжение какого-нибудь известного завода с предварительной расстановкой его белых работников - рабочих инженеров, менеджеров и директоров на колени перед въездным шлагбаумом..
Аноним 17/06/20 Срд 21:36:15 1726472443
Вопрос анонам которые работают над реальными проектами. Прочитал статью https://pingcap.com/blog/generics-and-compile-time-in-rust/
И стало интересно и правда все настолько плохо в реальных проектах, что приходится держать 2 копии проекта, одну компилируешь, другую кодишь в данный момент?

У меня-то пока хеловорлды которые собираются за секунды, интересно реальное положение дел.
Аноним 17/06/20 Срд 21:40:52 1726480444
Аноним 17/06/20 Срд 21:43:01 1726484445
>>1726242
Планирую оставить мастер, а фича бранчи называть слейв.
Аноним 17/06/20 Срд 22:05:22 1726510446
>>1726472
Статью не читал, линковка долгая - это да, но это вроде как решалось через новый линкер. Небольшой проектик, который использовал gfx-hal оче долго линковался, в тот момент кстати настроил в емаксе, чтобы cargo check, а не compile запускался.
Аноним 17/06/20 Срд 22:27:46 1726540447
>>1726472
> И стало интересно и правда все настолько плохо в реальных проектах, что приходится держать 2 копии проекта, одну компилируешь, другую кодишь в данный момент?
Со включённым lto, даже мелкие проекты могут компилироваться пару минут.
>>1726510
> но это вроде как решалось через новый линкер
Ещё не решилось. cranelift не интегрирован в стабильный раст. Можно закостылить в ночнушке, но никто ничего не гарантирует, там даже тесты не проводятся.
Аноним 17/06/20 Срд 22:54:23 1726565448
>>1726472
Да, раст довольно медленно собирается. Но особых проблем нет, особенно при кодинге. У меня рабочий проект уже под 50к строк кода, разбитых на множество крейтов, и rust-analyzer хорошо работает, не тормозит процесс (только при запуске немного тупит, пока анализирует проект). Вообще >>1726510 анон прав, тебе нафиг не нужен compile (rust-analyzer его не делает, например), если тебе не надо что-то запускать.

Я пару раз менял структуру крейтов, чтобы было быстрее запускать тесты в отдельных крейтах, ну и не перекомпиливать вообще все из-за изменения в одном крейте. Но в целом это не такая большая проблема, и вряд ли вылезет на небольших проектах.
Аноним 17/06/20 Срд 23:32:34 1726584449
Аноним 18/06/20 Чтв 00:01:23 1726607450
>>1726261
Почитал статейку, ну короч там хуй знает вообще о чём идёт речь по факту камеры с драйверами под линь и хуйня для браузера, шта? С одной стороны я не понял, вообще при чём тут джабаскрипт и web изначально, во-вторых, webrtc - это же хуйня, которая тунелится в http и, заворачивается в tls => по сути всё по цене tls. Зачем там были пляски вокруг webrtc? Зачем тут вообще некий web + нет нихуя исходников, чтобы понять о чём вообще речь. Из нового для себя открыл structopt, хотя он и не нужен. Там момент был
>A week of struggling with WebRTC’s nearly 750,000 LoC behemoth of a codebase revealed just how painful a single small change could be — how hard it was to test, and feel truly safe, with the code you were dealing with.
Ну потом решили "переписать" на раст
>webrtc-audio-processing is a good example. The benefits it provides (clear audio with no vocal echoes or feedback) are huge and porting it to Rust in the near-term is not likely (it's around 80k lines of C and C++ code).
Но 80к уже внебюджета + чел не шарит в C или плюсах судя по всему, наверное единственная причина, почему они там раст выбрали.

Чёт хуй знает, такая себе статья. Единственное, что подметил положительного, японские тянки худенькие, а не кабанихи и их много в разраб-конторе.
Аноним 18/06/20 Чтв 08:11:14 1726708451
Аноны, я, кажется, понял причины особого градуса СЖВ истерии в среде западных программеров. Смотрите:
1. Проповедуется "институциональный расизм". В США 90% белых +- согласно с тем, что чёрному парню из гетто труднее устроится, т.к. в гетто плохая школа, после которой его не возьмут в хороший колледж, а после в MIT
2. Но чтобы работать программистом, не нужно оканчивать хороший колледж - в этой сфере полно самоучек.
3. Профессия престижная, выучиться можно сидя дома за компом. Почему же нет нигеров-программистов? Нам, белым, как-то неудобно получать такие бабки, когда бедные нигеры там курят крэк в подворотне и стреляют друг в дружку - вдруг каким-то боком мы, программеры, тоже расисты, сами того не замечая?
4. Всё ясно: нигеры боятся слова master в гите! Вот ща переименуем, тогда-то чёрные братишки перестанут бояться программировать и раскроют всему миру свой интеллектуальный потанцевал.
Аноним 18/06/20 Чтв 11:01:25 1726834452
>>1726708

>Аноны, я, кажется, понял причины особого градуса СЖВ истерии в среде западных программеров

Смешно но нет.

Главная причина - банкиры и прочие рептилоиды с wall street и их борьба с васпами - владельцами производящей промышленности.

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

Поясняющий ролик:

https://www.youtube.com/watch?v=rStL7niR7gs
Аноним 18/06/20 Чтв 11:05:51 1726842453
В России тоже негры живут.хоть одного чернокожего айтишника покажите.
Аноним 18/06/20 Чтв 11:18:34 1726864454
>>1726842

> В России тоже негры живут.хоть одного чернокожего айтишника покажите.

У меня есть знакомый, "дитя олимпиады", правда он из одминов, ныне девопс.
Аноним 18/06/20 Чтв 11:23:02 1726866455
>>1726864
Вся суть в воспитании. Если нигера воспитывает белая мать, может выйти толк - тот же Обама.
Если воспитывают нигеры, которым "все должны", вырастает дженерик нигга.
Вот только интересно - есть тенденция к скатыванию, или раз вставший на путь истинный нигга будет и детей своих и внуков воспитывать приличными людьми.
Аноним 18/06/20 Чтв 13:35:55 1727031456
>>1726584
Проприетарное СЗИ. Я хз, детали наверно являются коммереской тайной и хуй я что больше могу сказать.
Аноним 18/06/20 Чтв 14:32:55 1727128457
Аноним 18/06/20 Чтв 15:33:06 1727249458
Аноним 18/06/20 Чтв 19:17:24 1727512459
>>1726834
Кто бы сомневался, если какая-то заварушка - всегда ищи жида, и это уже, блядь, не шутки.
>>1727249
Правильный ответ: rustaceans.
Аноним 18/06/20 Чтв 19:28:57 1727523460