Двач.hk не отвечает.
Вы видите копию треда, сохраненную 7 декабря 2020 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Rust #11 /rust/ 1664495 В конец треда | Веб
Rust — язык, позволяющий каждому
создавать надёжное и эффективное программное обеспечение
async/await наконец-то в стабильной версии!

https://www.rust-lang.org

Вместо шапки: https://gist.github.com/TatriX/183c816f1346d418f969c4576c2b9b41

Предыдущий тред: >>1602965 (OP) (OP)
2 1664517
>>664495 (OP)

> async/await наконец-то в стабильной версии!


Ну и сколько этой новости уже месяцев?
3 1664518
image.png7 Кб, 467x106
4 1664844
Вопрос на покакать - зачем тут коллект?
5 1664866
>>664844
args - возвращает итератор
collect - собирает в Vector<String>
6 1664869
>>664495 (OP)
татрикс, откуда ты знаешь про Haxe?
7 1664939
>>664495 (OP)
Как сделать, чтобы compile buffer не скроллился в самый низ?
8 1664993
>>664939
Чево
9 1664996
>>664993
В емаксе с rustic
2020-04-22-2131451182x792scrot.png98 Кб, 1182x792
10 1665003
11 1665019
>>665003
Ну это я сразу проверил, у тебя у самого нормально работает?
12 1665174
>>664996
попробуй установить (setq compilation-scroll-output nil) в ~/.emacs
13 1665244
>>665019
Работает, но через жопу.
Иногда рандомно начинает скролить вниз.
15 1665554
>>1664272 →

>Не, я как раз с сишки пришёл, понимаю, что это быстрее, но думал что для раста это менее важно.


Тут такая фишка, что эта фукнция - часть stdlib раста, а stdlib должна быть самым быстрым ковбоем или не быть такой огромной.
16 1666705

>dvach-02.webm


Что за либа, аноны?
17 1666706
>>666705
Всё, нашёл уже. Если интересно кому - Cursive.
Выделение089.png96 Кб, 840x978
18 1666709
>>666706
Отличная вещь, я на ней клиента для тинькова написал.
19 1666723
>>666709
Выглядит интересно! Сейчас доки полистаю, попробую себе обёртку для yaourt'а красивую набросать.
image.jpg110 Кб, 1500x1500
20 1666729
>>666723

>yaourt

21 1666745
>>666729
Легче, чем с ручной сборкой из аура ебаться :\
22 1666764
>>666723
Сразу дам пару советов:
1. Сразу пиши свой луп.
loop{ siv.step() -> твоя логика -> siv.refresh() }
в лупе работай с элементами через siv.find_name("el_name")
он возвращает Option, т.к. элемент может быть неактивен
2. Изнутри коллбэков этот сотона ничего не может видеть, если нужна связь с внешним миров в коллбэке, оберни его в структуру и просунь через siv.set_user_data(your_struct)

советую, так как сам довольно долго проебался, пытаясь обойтись дефолтным лупом с коллбэками.
image.png8 Кб, 901x28
23 1666903
24 1666910
>>666903
Как будто сама аурная свалка мейнтейнится
25 1666997
Какой пет можно написать на расте без опыта?
Сейчас говнякаю на реакте, но хочется потрогать раст.
26 1667019
>>666997
Поговнокодь на yew, сделай клиент для имиджборд.
27 1667023
>>667019
Спасибо, попробую
28 1667088
>>667019
Нативно интегрирую https://seed-rs.org/
29 1667122
>>666745
Юзай что-нибудь поновее, например, мне очень нравиться pikaur. Из минусов - написан на питоне и обновлять надо аккуратно, ибо если обновишь питон и не обновишь pikaur - то соснешь. Есть еще какая-то залупа на go, она тоже норм.
30 1667136
Установил 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. В топку. Слишком сыро.
31 1667140
>>667136
Ночная версия тулчейна ведёт себя так же.
32 1667163
>>666997

>Какой пет можно написать на расте без опыта?


Возможно не совсем понимаю, что такое pet project, посоветовал бы сперва реализовать базовые структуры данных.

>Сейчас говнякаю на реакте, но хочется потрогать раст


Чтобы веб-сайтики на расте делать?
33 1667168
>>667136

>pc-windows-msvc


Дальше не читал
34 1667169
>>667163
Думаю да, хорошая идея насчет структур данных для начала.

>Чтобы веб-сайтики на расте делать?


Ну почему, необязательно сайтики. Хотя хотелось бы сделать простую апишку.
35 1667172
>>667169
Раст практически не чем не отличается от реакта.
36 1667174
>>667172
Да, спасибо, именно поэтому хочу его попробовать.
1493179750445.jpg40 Кб, 625x396
37 1667176
38 1667182
>>667169
Просто в расте самый большой подводный камень, о котором надо знать, это ownership model (по-русски будет криво звучать), реализация базовых структур тебе позволит с этим ближе познакомиться.
>>667169

>Хотя хотелось бы сделать простую апишку.


Если ты про rest, то пока не стоит, там много делов, лучше если захочешь на кошках потренироваться напиши клиента для гофера/dns -> затем асинхронную версию, но не на async сгенерированных future, а чисто имплементацией трейта. Короче я считаю в веб лезть пока не стоит, слишком много там делов.
39 1667205
>>667182
Спасибо за советы <3
Буду вникать.
image.png20 Кб, 1364x668
40 1667213
Может гденто есть схема компетранспеляций конкретно из раста в итоговый васм?
Оно же на какой-то стадии переводит всё в С при помощи cdylib?
И на какой стадии (при использовании) впихиваются жсные модули?
41 1667220
>>667213

> Оно же на какой-то стадии переводит всё в С при помощи cdylib?


Нет, нахуя? Компилятор раста переводит в LLVM-байткод, LLVM переводит в WASM, а браузер уже переводит WASM в машинный код (там гибридная компиляция AOT+JIT) и объединяет с JS.
42 1667221
когда раст взлетит пацаны? через скок лет
43 1667227
>>667182
Хотел спросить, анон.
Давно работаешь и какой стек сейчас на работе?
Какие технологии пробовал по мере роста скилла?
44 1667241
>>667168
С gnu то же самое. Да, винда говно, но она у большинства людей. Поэтому из линукса стоит кросскомпиляцию настроить.
45 1667248
>>667221
Если ищешь язык чисто срубить бабла, то изучай лучше кресты и PHP - легаси говна тебе до пенсии хватит.
46 1667249
>>667221
Ныряй в вордпресс и вместе с этим учи жиквери.
>>667248
Справедливо.
47 1667263
>>667227
Начинал с c++ билдера когда-то давно, а кончил джавой, но попиливаю свой личный проектик на расте (правда в основном там используется либа на c).

>Какие технологии пробовал по мере роста скилла?


Мм, на перле пробовал форум писать.
>>667221
Ну типо его там и сям большие уже немного используют, в мозилле вообще целый web gpu пилят на ржаном-гречневом.
48 1667265
>>667263
В мозилле как минимум CSS-движок (servo) и рендер страниц (webrender) сделали на расте из того что уже используется в продакшене.
49 1667504
Зачем вам rust, когда есть ada?
50 1667565
>>667504
Немодно
51 1667578
>>667565
Есть модно-молодёжный spark.
image.png32 Кб, 392x376
52 1667588
>>667504
>>667565
Зачем нужны Rust и Ada, когда есть ATS?
53 1667591
>>667588

>Applied Type System


>multi-paradigm: functional, imperative


лол
54 1667595
>>667588
Ничего себе. У меня сайт этого языка давно в закладках, забыл. Ну я и шизик-любитель экзотики.
55 1667759
Ну-ка посмотрим, есть тут растопрограммисты. Можете без запуска компилятора сказать скомпилируется ли эта функция и если да, то что вернёт?
fn fun() -> i32 {
return return return return return return!!!!!!!111;
}
56 1667765
>>667759
Обычные 6 не
57 1667766
>>667765
7
быстрофикс
58 1667786
>>667504
Паскаль какой-то.
59 1667811
>>667759
Ты бы ещё спросил, что вернёт 1.00000000006 as usize.
60 1667832
>>667811
1 вернёт. Тут даже в нынешней версии нет UB и всегда возвращается целочисленное значение, которое ближе к нулю. А вот 1E20 as usize (на всех поддерживаемых архитектурах) уже UB, хотя скоро и это поправят: https://github.com/rust-lang/rust/pull/71269
61 1667895
>>667588
В чём профиты?
62 1667952
>>667766
Там число со знаком без +1.
63 1668051
>>667759
А вот эта?

fn fun() -> i32 {
return return return return--!-------!------!-!-!-!-!-!-----!---!!111-1;
}
64 1668324
>>668051
Очевидно, что все ретёрны кроме последнего не имеют смысла. Дальше мы видим кучу битовых not вместе с унарными минусами. Очевидно, что N - 1 будет выполнен после унарных минусов и битовых not, поэтому пока просто забудем об этом.
нот-нот 111 => 111
--- 111 => -111
!(-111) => бля, я тебе калькулятор штоле, считать two's complement в голове, когда это не -1?
----- => -(!(-111))
! => !(-(!(-111))

Короче, пошёл на хуй. Ебал я такой хуетой заниматься, у меня проекты есть, которыми надо заниматься.
65 1668340
Rust в ML будет?
66 1668533
рефлекшон есть в этом языке?
67 1668584
>>668340

>ML


фу бля
68 1668650
>>668533

> рефлекшон


фу бля
69 1668953
>>668533

>языке


фу бля
70 1669438
>>667122
Эта залупа называется yay
https://github.com/Jguer/yay
71 1669491
>>665266
Сделойте уже пул, хуйнул как написано и всё работает.

(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))))
image.jpg18 Кб, 300x291
72 1669501
Емаксовые хайлайты текста работают на регекспах
74 1669612
в чем сейчас раст более преуспел? веб, ембеддед, игры?
75 1669614
>>669612
высасывание грантов на новые манятехнологии
image.jpg20 Кб, 400x400
76 1671085
чзх
з
х

Десктоп наш? Почалось?

https://tauri.studio/en
77 1671132
>>671085
Какая-то пародия на электрон. Причем довольно пердольная.
78 1671136
>>671085

> Почалось?


Почалось можно будет сказать когда у гуя будут минимум три вещи: TableView, интернационализация и accessibility. Причём все три достаточно сложные вещи.
79 1671800
>>671132
А мне нравится их красивый роадмап. Так и хочется дать им мульён-другой.
80 1671816
>>668533
Круче. Есть процедурные макросы!
81 1672366
Зачем вообще нужен этот раст?
82 1672371
>>672366
Чтобы обросшие нищуки 60к/месяц могли чувствовать себя выше фронтенд-господ
83 1672748
>>672371
Есть пруфы, что фронтедеры - самые богатые?
84 1672877
Почему до владения переменнами додумались только в расте?
85 1672890
>>672877
Причем тут владение переменными? Единственное что в расте нового по сравнению с другими языками - что у каждой ссылки есть определённое время жизни (ну и плюс можно создавать структуры с временем жизни в качестве шаблонного параметра).
86 1672946
>>672890
А вот я бы поспорил! если бы шарил
87 1672985
>>672890
Я бы тоже поспорил!
88 1673295
>>672946
>>672985
Раст без 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();
}
88 1673295
>>672946
>>672985
Раст без 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();
}
89 1673381
Аноны, что заметил:
1. Наконец-то можно i32 + &i32 и так далее. Урра!
2. Какого-то хуя перестал работать мой собственный impl Drop
вот было, всё работало, отрабатывало по Ctrl+C, а потом перестало. Шо за нах это может быть? С обновлением напрямую не связано, работало уже после апдейта на 1.43, а сегодня с утра перестало.
90 1673420
>>673295

> Раст без borowck ни нужен, ну правда есть ещё секси енумы, макросы, комбинаторы по типу map_err и прочее для ошибок.


Речь не о крутых фичах, а о фичах которых раньше не было. Так-то солянки из идей разных ЯП были и до раста (да и сейчас появляются как грибы, благо есть LLVM, который берёт самую сложную работу - генерачию машинного кода - на себя).

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

[1]: https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=4f838cf43498f87425639fffb7efb60f
91 1674552
Кто-нибудь устраивался на работу? Чем занимаетесь?
92 1674790
>>673420

>специализация


Наверное не понимаю, что такое специализация. Но разве это не оно?

https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=284e4b4dee802e9c8a1d552ba4ba172f
93 1674843
>>674790
Не совсем. Специализация относится к функциям, а не объектам. Ты можешь определить функцию по-умолчанию и специализировать в зависимости от того какие трейты имплементируют аргументы функции, а в твоём случае функция выбирается в зависимости от типа объекта, а не от того какие трейты он имплементирует. Вот пример - есть трейты Clone и Copy. Если объект определил трейт Clone, то значит он может быть скопирован, но для этого надо всегда вызывать функцию clone, которая может делать нетривиальные операции (например увеличивать счётчик в случае умных указателей). А если объект определяет трейт Copy, то значит он может быть скопирован побайтовым копированием памяти. Со специализацией можно сделать дефолтную функцию, которая будет принимать все объекты с трейтом Clone и более быструю специализированную для тех кто ещё определил трейт Copy, чтобы использовать побайтовое копирования для ускорения кода.

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

Сейчас хотят сделать упрощённую версию без возможности специализировать время жизни, но и там есть свои проблемы.
94 1675308
>>674552

>Чем занимаетесь?


python/django/asyncio
95 1675571
>>674552
Jira+Confluence+команда из 7 человек.
96 1675580
>>675571
Я думал над джирой целая компания работает..
97 1675607
Что-то обсуждение на нуле. Раст заржавел окончательно? Кто-нибудь пишет на нём?
Выделение101.png16 Кб, 430x207
98 1675750
>>675607
Пишем. Торгового бота для себя и приложение камеры для ведроида. В заначке ещё пара проектов.
99 1675799
>>675580
Не над джирой, а в джире.
Тимлид или ПМ же.
100 1675831
>>675607
Всё прогрессивное человечество.
101 1675894
>>675831
Канадские трапы всякие то бишь?
102 1675948
>>675607
раст - мертворожденная хуйня для смузихлебов, максимум запилить проект для резюме.
103 1676048
>>675948
Что, мань, получаешь ЗП за отлов сегфолтов и боишься представить будущее без них?
104 1676076
>>676048

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


Я непомню, где слышал, но есть какой-то анализатор MIR, который позволяет находить подозрительные места. Что вообще анону есть сказать по доп. средствам для статического анализа для раста?
105 1676115
>>676048
Но ведь в джаваскрипте нет сегфолтов...
wb.jpeg8 Кб, 201x251
106 1676141
>>675831

>Всё прогрессивное человечество.

107 1676183
>>676115
В джаваскрипте и зарплаты то нет....
108 1676230
>>664495 (OP)

>2 пик


И эти люди называют С++ уродливым
109 1676233
>>676048
Это русачки из яндекса. У них там целый отдел евангелистов плюсов. На хвбре в каждом растотреде срут какой он плохой и восхваляют божественные плюсы.
110 1676284
>>676076
Спасибо, блядь, сам нашёл.
https://github.com/rust-lang/miri
111 1676450
вы тут джавистов любите не?
112 1676451
>>676115
Но жс и не язык программирования в том смысле, в котором раст и плюсы.
113 1676477
>>675894
Ну да. А кто по-твоему прогрессивное человечество?
114 1676493
>>676477
Кузьмич Тордвальдс, например?
115 1677096
Сап аноны. Решил ради теста заюзать 2 разных тулчейна: windows-msvc и windows-gnu. В итоге вес бинарника с одним крейтом(которому не нужна линковка) на MVSC: 277 КБ, GNU ебать его в рот 65.673КБ. Посмотрел через ldd - там дохуя каких-то dll. Вопрос - почему такая разница в весе?
116 1677108
>>677096
Я даже не могу выбрать, про что пошутить, на тему, что там понапихали в MVSC.
117 1677211
>>677108
Так файл MSVC весит то меньше чем гну..
118 1677239
>>677096
Это символы для отладки (нужны чтобы получить читабельные стектрейсы в случае паники). MSVC по умолчанию сохраняет их в отдельном .pdb-файле, а гну встраивает в бинарник. Их можно убрать командой strip или что-то типа того.
119 1677250
>>677239
Так в MSVC рядом с бинарником нет никаких файлов, а ошибка читабельная
120 1677261
>>677250
Потому что раст их туда не складывает (находится в каталоге deps, в виде имя_эксешника.pdb вместо с кучей других продуктов компиляции). Но если перенесёшь бинарник в другое место ошибка перестанет быть читабельной.
121 1678476
>>664495 (OP)

>dvach-02.webm


>rust - нвероятно быстрый язык для системного программирования


Объясните ньюфаундленду, если так важна скорость, зачем использовать какой-то хипстерский язык, почему бы не использовать Си или, упаси господи, ассемблер?
122 1678532
>>678476
Что бы при очередном сегфолте твоя жопа не поубивала соседей/коллег интенсивным гамма излучением
123 1678649
>>678476
Так и делают тащемта. Раст - хуйня для продакшена. Сам язык норм, но чисто как домашняя игрушка для пет-проектов.
124 1678681
>>678476
Тем временем в C++ треде

>Объясните ньюфаундленду, если так важна скорость, зачем использовать какой-то хипстерский язык, почему бы не использовать Си или, упаси господи, ассемблер?

125 1678689
>>678476
Ассемблер нужен будет один хуй, не для скорости, а для постоянного времени исполнения.
126 1678703
>>678689

> постоянного времени исполнения


И что ты под этим понимаешь? Жосткий риалтайм? Так наоборот с высокоуровневым языком проще будет, потому что к нему можно будет написать анализатор, который тебе сразу выдаст время выполнение в худшем случае. А если про то что нужно именно чёткое время выполнения каждой инструкции, то с современными процессами с конвейером и прочими оптимизациями ты быстро соснёшь (ну и в случае мк не забываем про прерывания, которые тоже могут въебать детерминизм времени выполнения куска кода). Тут справятся только FPGA (ну или ASIC, если нужно массовое производство).
127 1678787
>>678703
На МК перед запуском чего-то сильно рилтаймового прерывания отключают, потом включают.
Там асм я чаще всего видел в стартапе/бутлоадерах и всякой системной хуите вроде отладочно-трассировочной обвязки.
128 1678858
>>678476
Потому что зачем, если можно программировать с удовольствием?
129 1678869
>>678703

> Так наоборот с высокоуровневым языком проще будет, потому что к нему можно будет написать анализатор, который тебе сразу выдаст время выполнение в худшем случае.



К любому языку нельзя такой написать, кроме частных случаев когда программа совершенно линейная и выполняется в изоляции. А с высокоуровневым языком у тебя происходит больше скрытых вещей и меньше возможности на них влиять.
130 1678886
>>678869

> К любому языку нельзя такой написать


Можно. Для этого функциональщики и придумали такие понятия как "чистота" функций и прочее. В расте уже подобное тоже сделали: https://github.com/rtfm-rs/cortex-m-rtfm (с оговоркой, что это не чистый раст, а растоподобный язык, который макросами преобразуется в раст).
131 1678892
>>678703
Под постоянным я имел в виду то, что нет корреляции между значениями параметров и временем выполнения.
132 1678895
>>678892
Каких параметров? Ты шизик чтоле? WCET-анализ можно выполнять для любого ЯП. Даже более того любой ЯП можно преобразовать в машинный код и выполнять WCET для него. Ебаться с ассмеблером для этого не обязательно.
133 1678904
>>678895

>Каких параметров?


Ну, например, ключей для асимметричных шифров.
134 1678906
>>678904
И причём тут ассемблер?
135 1678910
>>678906
Потому что подходящий инструмент для решения проблемы.
136 1678913
>>678910
Ясно, точно шиз.
137 1679516
>>678681
Ну с++ вроде бы не позиционируется как сверх-быстрый язык, разве нет?
138 1679540
>>679516
лол, у если второй по скорости язык после Си (ассемблер не в счет) - это небыстрый, то земля тебе джаваскриптом, анон
15822331637070.png69 Кб, 446x435
139 1679838
>>664495 (OP)
Нужна либа для удобных assert'ов в тестах. Конкретно моя проблема, сравниваю два небольших буффера, равны по длине, но хочется, чтобы сразу показывало первую позицию по несовпадению, ну и чтобы вообще был вагон удобных ассертов для людей, а то стандартного ассерта таки маловато возможно будет в будущем. Чего посоветуете?
140 1680210
чё за апострофы перед переменными иногда ставят
141 1680222
>>680210
Означает время жизни. Может быть либо генерик-параметром у структуры (может означать разное, но зачастую означает что структура имеет ссылку со временем жизни равным этому параметру) либо относится к ссылке и означает что ссылка имеет это самое время жизни. Во всех случаях когда ты используешь ссылки ты используешь и времена жизни, просто зачастую компилятор их может вывести самостоятельно и потому тебе не обязательно давать им имена (апостроф нужен чтобы отличить их от параметров-типов).
142 1680244
143 1680246
>>680244
Ничего. Проходите дальше. C++ тред ниже.
144 1680520
>>679838
buffer.iter().zip(other_buffer.iter()).for_each(|(x, y)| assert_eq!(x, y));
145 1680522
>>680520
А если позиция нужна, то
buffer.iter().zip(other_buffer.iter()).enumerate().for_each(|(index, (x, y))| assert_eq!(x, y, "not equal items at {} index", index));
147 1681071
Типичный проект на расте

https://www.reddit.com/r/rust/comments/gezz84/buttplug_sex_toy_control_project/

>Buttplug is an open-source standards and software project for controlling intimate hardware, including sex toys, fucking machines, electrostim hardware, and more.

1571917563526.png106 Кб, 618x901
148 1681084
>>681071
Протухшая новость.
149 1681162
Аноны, вот есть у меня кастомный логгер, который
log::set_logger(&LOGGER).unwrap();
есть отдельный поток - напрямую из него логирование ок.
В потоке идёт работа с методами некой структуры, которая находится в другом файле - и вот оттуда с логированием облом. Причём если запускаю методы из основного потока, то всё логируется. Как их подружить?
150 1681167
>>681162

> которая находится в другом файле


Что значит "в другом файле"? Речь про динамически подключаемые библиотеки? Если так, то возможно проблема в TLS, который у основной программы и каждой из библиотек разный.
151 1681174
>>681167
Не, в модуле, то есть. LOGGER определяю статиком в майне
pub(crate) static LOGGER: CursiveLogger = CursiveLogger;
152 1681394
>>680893
Спасибо, но не то, а для структур наверное збс будет.
153 1681707
>>680222
Спасибо! Потихоньку начинаю разбираться
154 1682404
>>681167

> Речь про динамически подключаемые библиотеки



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

>>681174
Вообще без кода непонятно, в чем проблема. Но про CursiveLogger могу сказать, что он странный очень, я тоже на странную хуету натыкался. Юзай лучше https://github.com/deinstapel/cursive-flexi-logger-view , там таки под капотом нормальный логгер. И юзай эту либу с мастера, там есть аналог toggle_debug_view из Cursive.
155 1682491
Раст норм как первый язык программирования?
156 1682516
>>682491
Нет, ты выкатишься быстрее чем успеешь вкатиться, порог вхождения даже для опытных челиков достаточно высокий.
157 1682520
Кстати, аноны, а хоть 1 тулза/породия на иде умеет в автокомплит кода, измазанного tokio? Что RLS, что идея умирают нахуй когда видят #[tokio::main] и async/await?.
158 1682544
>>682491
Не, у тебя задача не та, тебе рст нахуй не нужон.
>>682520
У меня редактор + рлс, всё ок работает. Может у тебя rust analyzer?
Выделение111.png38 Кб, 1181x163
159 1682849
>>682404
Разобрался, там у меня был не работали вызовы, которые debug, т.к. я сам же их и отфильтровал, чтобы не видеть пикрил хуеты. Только я протупил и думал про них, что они warn.
Тогда след вопрос - как подавить дебаг выхлоп курсива, но видеть свой?
160 1682853
Такое дело, анонасы: всё чаще на тыкаюсь на сравнение раста с swift (if let, общий разраб). Кто-нибудь тыкал/сравнивал? Как у них там с bc?
Screenshot2020-05-1014-58-36.png77 Кб, 1258x344
161 1683186
>>682544
Rust analyzer тоже прекрасно работает

>>682849
Не думаю, что со стандартным логгером там получится. А для flexi-logger там работает такой же синтаксис, как и для env-logger (типа RUST_LOG="cursive=error,yourlib=debug", не уверен, что точно так должно выглядеть).
162 1683224
Бля, какой охуенный язык.
3ий месяц к ряду пилю разные пет-проджекты - хайлоад-веб-бекенд, блокчейн-аппликуху на Exonum'e, n64 - эмулятор.

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

Вообще, в плане работы. Я так понял, если хочешь устроиться куда - дрочи блокчейн ? Ибо из реальных вакансий я видел только блокчейн всё ну и пару а-ля хайлоад серверов.
163 1683235
>>682544
Да нет, всё действительно работает, автокомплит починился после зачистки экспорта (там reqwest и serde конфликтуют из-за структуры Error или какая-то подобная хуйня происходит, но ни RLS ни компилятор нормальное сообщение выдать не могут).
164 1683257
>>682853
По работе пишу на свифте, для души подрачиваю раст, что именно тебя интересует в сравнении?

>if let


Эээ, ну init statement в if-е даже в 17-е плюсы завезли, это уже просто максимальный мэйнстрим которые есть везде (даже в последней версии питона, лол).

>общий разраб


Один из десятков разрабов общий, ты хотел сказать?

>Как у них там с bc?


С чем?

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

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

Всё было зашибись, но потом я решил, что неплохо бы выводить в stdout в том, случае если в аргументах программы пользователь не указан путь к файлу на диске. Но тут возникла проблема из-за мономорфизации, как-нибудь можно построить тип с маркером, который бы указывал, что привязка идёт к AsRawFd?
166 1683336
>>683321
А что конкретно за проблема? Как именно (и где) выводишь в stdout и что за ошибка возникает?
167 1683351
>>683336
Ну короч я решил проблему. Просто берёшь и приязываешься к трейту.
Компилятор ругался вот на это:
let b = match fout {
Some(ref file) => FdBio::new(file),
None => FdBio::new(ref_stdout),
}
В ветках разные типы получались.
168 1683373
>>683224

>Ибо из реальных вакансий я видел только блокчейн всё



На хх.ру был секс-шоп.
169 1683378
>>683351
Ну тут да, либо использовать dyn (а учитывая что раст до сих пор не умеет в unsized locals, значит и использовать Box), либо енум с вручную сделанным vtable.
170 1683386
>>683224
В треды прошлые кидали какую вакансию что то с разработкой бд было связанно
171 1683389
>>683373
А ещё можно пойти работать в buttplug.io и писать чудесные программы на расте.
>>683378
Я не знаю, почему сразу не допёр сделать вот так
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=72b776d67842eaa5a8cc77be40b81507
Наверное трейты для меня до сих пор - эльфийские технологии.
172 1683397
>>683321

> 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 в имплементацию.
173 1683402
>>683397
Спасибо.
174 1683467
>>683224

>Бля, какой охуенный язык.


У тебя просто эффект чего-то нового, так-то язык как язык со своими хорошими и плохими местами.
175 1683570
те, кто готов отдать свою свободу (с/с++), чтобы приобрести немного временной безопасности (раст), не заслуживают ни свободы, ни безопасности
176 1683587
>>683570
Любитель отстреленных ног, ты?
177 1683616
>>683570
Ну дак вы же первые предали свободу в этом её понимании, уйдя с ассемблера.
178 1683663
>>683570

>те, кто готов отдать свою свободу (с/с++), чтобы приобрести немного временной безопасности (раст), не заслуживают ни свободы, ни безопасности



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

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

Раст плох, если ты не собираешься становиться программистом. Раст - это не язык для школьников, которые не хотят учиться этому ебаному программированию; ты должен чётко понимать, что ты учишь и зачем ты учишь, потому что учить эту срань ты будешь охуеть как долго.
180 1683754
buttplug.io

>Implementations in Rust


Вы официально закшварены.
181 1683755
>>683754
У меня есть фотки твоего ануса, которые я сделал с помощью твоего баттплага, который я запрограммировал. Так что вопрос о том, кто тут реально зашкварился, остаётся открытым.
182 1683774
>>683753

> 1. Системный, без GC,


А в чём проблема гарбаж коллекторов? Вроде норм же, тычешь им куда-то, он освобождает память, можно не бояться утечек памяти... Или это лишние циклы процессора использует? Я не знаю правда что такое эти ваши собиратели мусора.

> 2. Учит видеть UB. Это просто охуеть как полезно.


А другие - нет?

> Примерно так же полезно, как строгая типизация


А что это такое?

> 3. Best practices из мира крестов на уровне синтаксиса


Скажу честно, я в этом не разбираюсь.
А вроде бы всё то же самое есть в Сишечке, кроме синтаксиса...
>>682516
Ну ладно :/
А в чем заключается сложность, желательно простым языком?
>>682544

> Не, у тебя задача не та, тебе раст нахуй не нужон.


А какая у меня задача вообще? Научиться писать алгоритмы?
>>682491-кун
183 1683789
>>683774
Пошел нахуй.
184 1683793
>>683774

>Научиться писать алгоритмы?


У тебя нет задачи их писать, твоя задача разобраться, чем ты хочешь вообще заниматься, то есть выбрать область, которая твоя, а для этого тебе раст не нужен. Если в итоге захочешь заниматься системным программированием, то изучай Си - lingua franca в мире программирования, а в раст закатывайся только тогда, когда сам уже для себя всё решишь, ну или если пойдёшь работать в buttplug.io мозиллу.
185 1683810
>>683774

>А в чём проблема гарбаж коллекторов?


Они работают с памятью неявно.

>> 2. Учит видеть UB. Это просто охуеть как полезно.


>А другие - нет?


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

>> Примерно так же полезно, как строгая типизация


>А что это такое?


Гугли.

>Скажу честно, я в этом не разбираюсь.


>А вроде бы всё то же самое есть в Сишечке, кроме синтаксиса...


Нет. Как минимум, у растосообщества есть нормальный Code of Conduct.
Если не разбираешься, то чего споришь? А если разбираешься и троллишь так, то пойди на хуй, пожалуйста.
186 1684340
>>667263

>на расте (правда в основном там используется либа на c)


Естественно. Раста как языка не существует.
187 1684359
>>684340
Нихуя себе. Чо еще расскажешь?
188 1684429
Что там по вэбу? Есть что-нибудь нормальное из модулей? Потыкал го, такое ощущение, что там делают две комманды. Кто первый выпустит релиз, в ту сторону и движемся. С системой модулей вообще нихуя не понятно было. Две разные три используются "чтоб ничего не сломать".
А с вэбом почему, мне так проще вкатываться в язык, начиная с простых проектов.
189 1684566
>>684340
У меня есть возражение, на расте пишут продакшн код в buttplug.io, так что ты соснул.
190 1684581
Анон, а насколько сейчас раст пригоден для гамесов? Вроде же идеальный вариант чтобы быстро накидывать игры и без плюсовой хуйни по дороге. Или сейчас до-диез из Unity уже всех устраивает?
20200512084942.jpg247 Кб, 1235x667
191 1684731
Изучаю rust opencv, и... блядь, хули так плохо.
let res = core::mul_mat_mat(&mat1, &mat2)?.to_mat()?;
На с++ это было бы что-то типа auto res=mat1*mat2;
Правильно ли я понимаю, что Result как универсальный вариант хэндлинга ошибок делает перегрузку оператора, который может возвращать ошибку, невозможной, и, как следствие, бесполезной для околоматематических задач?
192 1684741
>>684581

>Анон, а насколько сейчас раст пригоден для гамесов?


Хзы, попробуй сам в аметист или еще во что нибудь потыкать.
Тока ECS не пугайся
по моему мнению, всё еще немного сырое, ну и в юнити всё легче намного и быстрее, мбы чуть позже на расте что то взлетит
193 1684756
>>684731
Нашел идеоматическую либу на расте. Перегрузка операторов есть, в коде везде assert!. Ебань какая-то.
194 1684785
>>684731

>Правильно ли я понимаю, что Result как универсальный вариант хэндлинга ошибок делает перегрузку оператора, который может возвращать ошибку, невозможной, и, как следствие, бесполезной для околоматематических задач?



Можно сделать енам или структуру наподобие { Matrix, Result <> }
195 1684790
>>684756
Ну дык, а как ты хочешь по-другому? Либо ручная ебля с резалтами, либо паника при нарушении контракта. Если панику объединить с catch_unwind (при включенном unwind в настройках компиляции), то получится классический try/catch из С++.
Screenshot2020-05-1210-56-49.png620 Кб, 723x649
196 1684792
>>684790
Я просто задаю вопросы
197 1684979
>>684741

> Тока ECS не пугайся



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

Другой анон
198 1685050
>>684979
ESC - это типо реляционная бд.
199 1685147
>>684979

>его преимущество перед обычным ООП


В том что ООП больно было бы сделать на расте, ебля со владением была бы нереальная
больше я не знаю
200 1685167
>>684979
Наоборот, когда пытаешь моделировать всю фигню через ООП, появляется миллион перекрестных ссылок. А вот когда у тебя есть, например, сущность "физический движок", то ему знать только то, что у него есть массив параллелепипедов, которые ему нужно обсчитывать. Лучше инкапсуляция, лучше использование кеша. Так все современные движки работают.
201 1685273
>>684979
1. ОПП убивает производительность, потому что Data Driven Design - это про расчленение всего этого вот, чтобы каждый кусочек работал максимально эффективно, и данные не дублировались без надобности (к тому же, как только ты начинаешь писать "настоящий" ООП, у тебя сразу все объекты хуярятся через Box, что опять-таки убивает производительность).
2. В реальном мире как раз всё похоже на ECS, а не на OOP, поэтому писать в виде ECS всякие штуки, которые хотя бы частично моделируют реальный мир - проще. Да и эффективнее, потому что см. пункт 1.
3. Ты путаешь Object из OOP и систему типов. Система типов вовсе не про "захуярим всё вместе", она про типы. Тут хуй расскажешь, это надо на хаскеле показывать.
202 1685410
>>685167
>>685273

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

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



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

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



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

>Ну и выбор всех компонентов для entity очевидно более тяжелый вычилсительно, чем получить объект.



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

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



Ты можешь точно также забыть проинициализировать поле объекта и у тебя получится персонаж по умолчанию размером с Австралию и весом ноль.
204 1685714
>>685711

>проинициализировать поле объекта и у тебя получится персонаж по умолчанию размером с Австралию и весом ноль.


С ECS даже проще, программа сразу запаникует, если ты забыл сделать инициализацию.
205 1685745
>>684731
В твоём случае это библиотека-биндинг плюсового opencv

>pub fn cv_operatorX_const_MatExprX_const_MatExprX(e1: const c_void, e2: const c_void) -> Result<*mut c_void>;


По-хорошему, должна быть "няшная" библиотека-обёрточка вокруг этой, которая внутри там паникует, когда надо, а когда нужно возвращает результат в виде определённых алг. типов.
>>685410
Ну тип выше уже написал, что это это реляционная БД по сути, и твоё недо-ооп умещается в "колонке".
206 1685952
я из джавы, хочу в системные, вот типа думаю, учить сразу раст или начать с си и плюсов
207 1685961
>>685952
После Джавы Раст будет комфортнее в плане количества странной херни, которая может случиться в скомпиленной программе. Плюсы комфортнее в плане количества странной херни до компиляции.

По работе: плюсы менее денежные, чем Джава, и это не изменится, сиди в своём энтерпрайзе. А если Раст наконец-таки взлетит, то вакансии на 300кк в наносекунду появятся именно на нём.
208 1686320
>>685711

>можешь точно также забыть проинициализировать поле объекта


В расте - не могу. А в ECS я могу не просто забыть проинициализировать, а полностью забыть добавить данные к объекту вообще.

> С ECS даже проще, программа сразу запаникует


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

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



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

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

Я боюсь представить высоту колонки, если будет реальный проект. Удобство как оно есть, несомненно.
209 1686532
>>686320

>Я боюсь представить высоту колонки


Даун ёбаный, ты это вообще из ресов грузить будешь.
210 1686984
>>686532

> Даун ёбаный


Ясно, порвался

> ты это вообще из ресов грузить будешь


Откуда? Говори хоть понятными не тебе одному терминами.
211 1686996
>>686984

>Говори хоть понятными не тебе одному терминами


Пошёл нахуй, сказал.
212 1687209
>>664495 (OP)
Мой одноклассник читает лекции по Расту. Горжусь.
213 1687367
Как посмотреть покрытие тестами?
214 1687368
>>685952
Плюсы конечно. Раст решает не существующую проблему, трудно учится, некрасивый, приходится много времени тратить на обход борроу чекера, нет обратной совместимости, трудно работать с системными концептами и быстро, эффективно их реализовывать. Язык пытается избавиться от сайд эффектов, но такова природа компьютера.
215 1687371
>>687209
Физматовец в треде, все в CSC!
216 1687373
>>687368

>Раст решает не существующую проблему


Это какая?
217 1687395
>>687368

>Раст решает не существующую проблему


С точки зрения студентика с laba.cpp - несомненно.

>пытается избавиться от сайд эффектов, но такова природа компьютера


Долбоёбушка, смысл не в избавлении от сайд эффектов, а в контроле над ними и изоляции от чистого кода.
218 1687398
>>687368

>Плюсы конечно


>Раст трудно учится


спасибо, поднял мне чсв.
219 1687456
220 1687605
>>687398
Ну тип современный язык, который для тупых зумеров, но чот немного сложноват в том смысле, что ЦА из джиэсо-макак не осиливает -> поэтому раст нахуй не нужен, и пишут на нём полтора энтузиаста. Ну как я это понял.
221 1687631
>>687605

>джиэсо-макак


в плюсы самая дорога, ага. Сколько там в полюсах занимает стороннюю либу подключить? Вечерок ёбли? Вот где настоящее программирование-то, жс-макак оценит.
222 1687702
>>687631

>в плюсы самая дорога, ага.


Я ничего не утверждаю, это вообще было про сложность со слов >>687368

>Сколько там в полюсах занимает стороннюю либу подключить?


Почитать хэлп у компилятора (или один раз написать makefile/CmakeList.txt/Gyp) (есть вообще люди, которые в мс студиях и силайонах сидят), карго удобен, конечно, но тип ты сильно преувеличиваешь сложность, тем более если ты в каком-нибудь линуксе, где куча тулзов и внезапно тоже есть пакетный манагер, с которым ты изи таскаешь хедеры и либархивы - даже быстрее, чем с карго всё будет, если привыкши. Кстати про удобство карго, зонецил expand, вот где раст действительно сияет, такой-то тулинг 10/10.
223 1687739
>>686996
Ясно, еще один кукарек залетел в тред.
224 1687766
>>687368

> трудно учится


типа плюсы легкие, пойду струпа обрадую, а то он говорит чет сложна
225 1687773
>>687739
Извиняюсь, понял, о чем там речь - признаюсь, был не прав, ну а как ты хотел, пидорасина, в той же sqlэлии ты напишешь джоин на 5 строк, когда нужно будет сджойнить 5 сущностей.
226 1688543
>>687702

> Почитать хэлп у компилятора


Это в случае header-only библиотеки сработает. А если не дай бог либа привязана к своей системе сборки, да ещё и тянет за собой питон/перл/прочее скриптовое говно чтоб суметь собраться, то начинается форменный пиздец.
227 1688599
>>687702

> Почитать хэлп у компилятора


Не поможет с подключением либы, там лишь десятки тысяч специфичных флагов компиляции, которые тебе не нужны.

> один раз написать makefile/CmakeList.txt/Gyp


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

> тем более если ты в каком-нибудь линуксе, где куча тулзов и внезапно тоже есть пакетный манагер


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

> ты сильно преувеличиваешь сложность


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

/ мимо сгоревший плюсовик /
228 1688607
>>688599

> > тем более если ты в каком-нибудь линуксе, где куча тулзов и внезапно тоже есть пакетный манагер


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


Еще есть nix, охуенная штука. Описываешь какие зависимости тебе нужны в nix файле, в дирректории проекта вводишь nix-shell и попадаешь в окружение с нужными пакетами.
https://nixos.org/nix/
мимо
229 1688633
>>688607

> всего-то осилить еще один ебанутый язык

image.png16 Кб, 253x217
230 1688863
>>688633
Во первых, для базового использования достаточно написать файл уровня пикрл, где в массив просто передавать нужные зависимости.
Во вторых, язык не ебанутый, а функциональный и ленивый, прям как хаскель. Вот такие йобы можно с его помощью делать: https://blog.galowicz.de/2019/04/17/tutorial_nix_cpp_setup/

Думаю на него перейти и для растасам юзаю его для хаскеля, плюсы взял только как пример, ибо заебался для каждого проекта ждать пока карго скачает полгигабайта тех же самых зависимотей.
metaconf.png354 Кб, 1440x1271
231 1689199
16 мая | ONLINE
Backend meetup
Ruby, GO, Rust, Node.js, Python, Elixir

https://metaconf.net/backend-meetup-2020
232 1689245
>>689199

>ONLINE


>meetup


Ни побухать, ни морду набить, зачем всё это?
233 1689250
>>689245

>побухать


>морду набить


>задроты-чуханы и задроты-хипсторы

234 1689322
>>688863
банан, ты....
235 1689393
>>689250
И я фашист. Как же заебали хохлы, либерда и приебалты.
236 1689403
>>689393
ты падажи осознание пиздеца творящегося вокруг еще не наступило, ща ломанутся орды хохлов с галер на рынок
237 1689472
>>688863

> для базового использования


Не надо вообще нихуя уметь и думать.

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



> 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


> )

238 1689600
>>689472

>ниасилил синтаксис, значит язык ебанутый

239 1689604
>>689600
Ты дохуя осилил, аж примеры из гугла тащишь.
240 1689684
>>664495 (OP)
Тех, кто пишут на Си в шутку называют "сионистами".
Тех, кто пишет на Паскале называют "пасквилянтами".
А как называют тех, кто пишет на Расте?
external-content.duckduckgo.com.jpeg25 Кб, 400x300
241 1689708
242 1689715
>>689684
Педерасты
243 1689786
>>689684
Никак, таких нету.
244 1689968
>>689684
В русском языке ещё не образовалось, а в английском - Senior Software Developer.
245 1689979
>>689968
Senior Software Developer from buttplug.io, ето ти?
247 1690382
>>690083
А матом там можно изъясняться? Хотелось бы употребить:

>ёбаный, сука, С++


>питон, нахуй


>goвно ебаное

248 1691269
249 1693542
Аноны, доколе в идейке
type + &type
будет подсвечивать ошибкой? Совсем обленились, ёма.
250 1693618
251 1693980
Хочу стать великим в Расте. Что и как делать для этого?
252 1693998
>>693980
Пишешь код
@
Пишешь код
253 1694222
>>664495 (OP)
the book, rustling или rust by example?

что посоветуете, если я уже что-то знаю о программировании в общем (функциональном в том числе), но не на расте
254 1694228
>>693980
До совершеннолетия можешь попробовать питон или го
255 1694521
>>694222

> the book

squidplug.png95 Кб, 1157x671
256 1694546
>>693980

>Хочу стать великим в Расте. Что и как делать для этого?

257 1694843
>>694546
Мультиплексирующий охладитель ануса?
258 1694871
>>694843
Вообще-то, это кальмар. Но твоя версия доказывает, что ты не ошибся тредом. Вэлкам, ёпт.
259 1694938
>>694871
Вообще-то у кальмаров нет 3.5 разъема на щупальцах.
260 1694945
>>694871
Кальмар, ну вы, блин, даёте ! Может ты ещё скажешь, что это мифическая медуза Горгона ?
Посмотри внимательнее - это мультипортовый охладитель ануса.
261 1694968
>>694938
>>694945
Вообще это ультрамодное поделие и работает на Расте.
262 1694985
При изучении Раста у вас возникнет необходимость для приобретения Великого Охладителя, который совместим абсолютно с любым гаджетом.
263 1694990
>>694968
Никто не доверит свой анус какому-нибудь с++.
image.jpeg5 Кб, 300x168
264 1695032
Обогнали и перегнали примитивное говно!
265 1695362
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=cdb79f48d6cca83b5c790d0349ab4579
Такое как-то получше можно сделать? Надо чтобы функции было похуй что жевать, указатель или валуе.
266 1695455
>>695362
Во-первых, я бы заменил сигнатуру на
fn plus(a: impl Borrow<i32>, b: impl Borrow<i32>) -> i32 {
Т.е. использовать impl-трейты вместо генериков.

> Надо чтобы функции было похуй что жевать, указатель или валуе.


Зависит от того что ты собираешься с этим значением дальше делать. Недостаток трейта Borrow в том, что на выходе у тебя всегда будет ссылка (даже если передаётся значение) и будет очень проблематично сохранить входные параметры в какую-нибудь структуру. Для простых типов и так сойдёт, потому что их почти бесплатно можно скопировать, а вот для чего-то более сложного (например строки или массивы) лучше использовать Cow (принимать что-то вроде impl Into<Cow<'a, str>> для приёма любых видов строк), который плюс уже содержит имплементации полезных трейтов для строк/массивов и прочего.
267 1695459
>>695362

>хачу завернуть 2 типа в 1


Вам в жс-тред.
268 1695462
>>695455
Ах да, чуть не забыл. Если функция большая, то лучше всего всю работы выделить в отдельную функцию, чтобы компилятор не создавал четыре копии почти одной и той же большой функции. Т.е. сделать как-то так: https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=baa30100332b874332cd1487df234785
image.jpg38 Кб, 396x385
269 1695470
Учу раст 2 года написал хеллоу ворлд
270 1695472
>>695455
Там что-то уровня этого же plus(), так что всё ок.
>>695459
Заворачивается же.
271 1695899
>>695362
Я бы переосмыслил и задал себе вопрос: а надо ли такое делать? Если, допустим, надо, но выходит много однообразного кода, то решать бы стал уже через макросы.

Лол, в треде обсуждают Раст, а не дилдаки - растём
272 1699333
Чет раст не взлетает..
273 1699740
https://www.chromium.org/Home/chromium-security/memory-safety

> The Chromium project finds that around 70% of our serious security bugs are memory safety problems.

274 1699782
>>699333
>>699740
https://chromium-review.googlesource.com/c/chromium/src/+/1752927/
Всего-то уже и разрабы хрома активно ищут язык на замену плюсам, лол. Из альтернатив расту:
а) запилить форк ллвм, цланга, написать свой гц и запретить сырые указатели;
б) модернизировать процессоры (лол);
в) жс/жава/котлин (хз почему они в этот список попали, кекус конечно), свифт (который все же слишком хайлевел).
275 1699836
Решил тут немного раст потрогать и наткнулся на проблему. Какая неожиданность!

Растаны, хоть и страшно у вас такое даже спрашивать, но почему в прикреплённых примерах, основной поток блокируется после того, как все сообщения получены и потоки отработали? Если перед получением сообщения заджойнить все потоки, то всё нормально.
В доке написано, что iter.next() возвращает либо Some либо None. Но у меня он блокирует поток поле последнего Some и всё.
276 1699861
>>699836
У тебя tx из оригинального треда не умирает, поэтому ресивер не знает, что уже неоткуда брать данные. Вызови mem::drop после своего цикла.
277 1699891
>>699861
Спасибо. Как я понял, по хорошему нужно дождаться завершения всех потоков, дропнуть rx, а потом уже собирать сообщения? Иначе ведь можно дропнуть rx а какой-то из потоков даже не успеет через него сообщение отправить.
278 1699928
>>699891
Нет же, до тех пор, пока жив хотя бы один сендер, ресивер будет блокироваться. Ты ничего пропустить не должен.
1482790021987.jpg37 Кб, 480x360
279 1699944
>>699891
У тебя tx и 10 его клонов, итого 11. Сообщение ты отправляешь 10 раз, остаётся один (оригинальный) ненужный, его тебе и надо дропнуть. Между for воткни drop(tx).
280 1699948
>>699944
Вот теперь понял. Спасибо
281 1699969
>>695032
Кто где что?
282 1701140
Аноны, вопрос по serde. Допустим, есть строка
"{a: 1, b: 2}". Хочу десериализовать её в структуру вида
struct MyStruct {
a: i32,
b: i32,
c: Instant
}
где в поле c буду пихать время десериализации Instant::now() - т.е. такое себе служебное поле только для меня, обратно сериализоваться оно тоже не будет. Можно такое провернуть?
283 1701161
>>701140
Можешь Serialize/Deserialize реализовать вручную, например. Или типа такого:

struct Container {
c : Instant,
data : MyStruct
}
284 1701316
>>701161
Эхх, ну, народ, совсем не шарите.
struct MyStruct {
a: i32,
b: i32,
#[serde(skip, default = "Instant::now")]
c: Instant
}
получится поле с дефолтным значением, которое есть только в структуре раста, но нет в сериализованном виде.
285 1701355
>>701140
Да. Делаешь имлементацию Default и метишь поле #[serde(skip)]

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

Если не можешь всю структуру сделать Default, тогда установи чере макрос для поля функцию, откуда брать дефолтное значение.
286 1701360
>>701355
бля, тред не читай, сразу отвечай
287 1705022
Блин, такой крутой язык, я попробовал и уже три дня не могу оторваться от изучения. Мне заходит
288 1705511
>>705022
У меня так же было, а потом понял, что пока нет никаких интересных фреймворков я ничего кроме простых утилит написать не могу. Я же джава макака.
289 1705765
>>705511

>нет никаких интересных фреймворков


Если заходить со стороны жабы/гвидона, то маловато. А если со стороны сей/плюсов, то очень даже + гораздо легче их подключить и использовать.
290 1706113
>>705765
unsafe руинит всю концепцию языка
291 1706130
>>706113
Не используй.
292 1706136
>>706113
В каком-нибудь проекте, который в иных обстоятельствах был бы на писан на жс/жабе/питоне, вполне можно и без ансейфа, даже не задумываясь "а не впендюрить ли".
293 1706190
>>706136
Кстати да, я как жаба макака вообще с трудом представляю зачем могут unsafe блоки понадобиться. Это чисто игрушки сатаны для всяких додиков, которые конпеляторы пишут.
294 1706193
>>706113
Death руинит всю концепцию жизни
295 1706262
>>706113
В Хашкеллях, Питонах, Сисярпах и прочих Джавах есть буквально точно такие же средства, но почему-то претензии есть только к Расту. Причем, Ансейфом пользоваться даже проще, чем Джавовским JNI, потому что не надо думать ни о каком сборщике мусора и сейфпоинтах.
296 1706481
>>706113

>unsafe руинит всю концепцию языка


unsafe - часть концепции языка
297 1706493
>>706190

>Кстати да, я как жаба макака вообще с трудом представляю зачем могут unsafe блоки понадобиться. Это чисто игрушки сатаны для всяких додиков, которые конпеляторы пишут.


Немного поржал с игрушки сатаны (просто забавно звучит), мест много где он нужен, например, если у тебя используется ffi (там правда код прямой как рельсы), или, нопример, из очевидного запись в вектор без инициализации буфера, пины, тысячи мест так-то.
298 1706592
>>706493
Ну и вся эта хрень в итоге не нужна, если ты пишешь клиента для рест-апишечки, например. Пины я, например, юзал лишь однажды - как раз с ffi, когда нужно было передавать контекст и получать коллбэк из сишного кода - часто ты проделываешь такое в жс, например?
Речь о том, что если ты юзаешь раст там, где обычно юзают жабу/питон/жс, то об ансейфе можно не вспоминать.
299 1706599
>>706592

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


Ну так и раст не нужен в этом случае, вообще раст и

>где обычно юзают жабу/питон/жс


попахивает хипстерской хуйней и buttplug.io, я к тому, что нормальные мужики на расте явно этим не занимаются.
300 1706608
>>706262
Не, в питонах такого нет, он безопасный и память не течёт.
301 1706615
>>706608
https://docs.python.org/2/extending/extending.html

А теперь попробуй заснуть.
302 1706631
>>706599

>Ну так и раст не нужен в этом случае


>нормальные мужики на расте явно этим не занимаются


ой, мужчинка, выйдите, а
303 1706774
>>706592

> если ты пишешь клиента


Потому что весь ансейф уже написан в библиотеках и зачастую его пользователям он не нужен. Исключение - неинициализированная память, для которой ансейф нужен как со стороны библиотеки, так и со стороны бинарника. Но тут уже что-то пытаются сделать: https://github.com/rust-lang/rfcs/pull/2930 после этого пулл-реквеста, ансейф нужен будет только библиотеке, а пользователь сможет использовать только безопасные функции.

А так ансейф зачастую используется для трёх вещей: (1) неинициализированная память, (2) ffi, (3) работа с указателями (у указателей нету времени жизни, но зато они могут указывать на освобождённую память, а потому нужно следить за ними самому).
304 1707594
Хочу выучить растик, лучший язык. (по виду)
Но вакансий мало
305 1707604
>>707594
Лучший язык это js. А раст это так игрушка на пару вечеров.
306 1708803
>>706615
Ты что, это ДРУГОЕ. Написано же, "C or C++", вот они и текут. А питон заебись и безопасный.
307 1709554
>>707604
gr8 b8 m8
308 1709680
https://habr.com/en/post/492410/

> C++ быстрее и безопаснее Rust, Yandex сделала замеры

309 1709760
>>709680
И что там вкрации? Что замеряли-то?
310 1709844
>>709760
В Яндексе у людей бомбит с Раста, это ответочка.
311 1709865
>>709844
Ну конечно бомбит.
Вот представь — ты пол жизни потратил на изучение чего-то и ценишься только из-за этого навыка, а тут приходят хипсторы и говорят "это всё хуйня, выкидывайте".
312 1709934
>>709865
Жаль, что уже поздно.
Похоже, Раст останется нужным 2.5 команиям(
313 1709947
>>709865
Яндекс - это кто вообще?
314 1709953
>>709934
Будет нужен, когда нынешним растошкольникам будет по 30. Но это случится лет через 25, не раньше
image.png128 Кб, 951x608
315 1710089
>>709953

>школьникам будет по 30


>лет через 25


судя по тому, как у тебя с математикой, предсказываешь ты тоже хуёво.

https://chromium-review.googlesource.com/c/chromium/src/+/1752927/
316 1710110
>>710089
Звучит как хуйня, если честно, не подумай, что расто-хейтер, вот когда хотя бы мози перепишет nss на раст, тогда и приходи.
317 1710115
>>709953
Жаль. Потому что язык беспрецедентно топовый.
Ну объективно же.
bug.jpeg11 Кб, 400x220
318 1710131
>>709680

>Вообще любой продукт, от которого зависит пол мира, очень даже имеет смысл переписать. OpenSSL приводят часто как хороший пример. Был бы он на расте мы, как минимум, избежали бы пачки уязвимостей, которые поставили эти пол мира на уши. Имеет смысл? Я думаю да.

319 1710141
>>709680

>Фишка в том, что в расте такой код "за забором". И я как-то считал, в СТД (в котором ужас-ужас сколько ансейфа) его значение порядка 0.1% от общей кодовой базы (считал очень грубо, по строчкам). Это значит, что у вас не миллион строк кода где можно "на секунду отвлечь/забыться", а тысяча. А теперь допустим что программист в среднем "забывает/отвлекается" раз на тысячу строк кода. В итоге в одной программе будет тысяча багов из-за этого, а в другой — один.


Что за унтеры там сидят? Уноси.
1547362870056.png105 Кб, 600x600
320 1710167
321 1710353
>>710131
Бесит, блять. Как появляется что-то реально годное, сразу набигают толпы неадекватов (у Раста это, видимо, такие вот переписатели) и портят годноте репутацию.
322 1710399
>>710353
А подобные процитированному долбоёбу из >>710141 тебя не бесят? Переписатели всегда были, у всего, просто мне нравится этот наивный юноша с "перепишем OpenSSL" на раст, он наверное и не в курсе, о чём там openssl.
323 1710428
>>710399

>он наверное и не в курсе, о чём там 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. Ну не про корявый язык на котором написана же?
324 1710457
>>710428
Твой высер не в тему вижу, переписанный на расте openssl тобою не вижу.
325 1710465
>>710457
Так openssl это про

>высер


?
Или про что? Не понимаю.
326 1710468
>>710457
Типичный критик:

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



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



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



Ты блять вообще способен связать 2 фразы в диалоге и построить семантически корректный ответ третьей фразой?
327 1710639
>>710353

> переписатели


Ну это даже в мемес переросло. Сейчас правда как-то поутихло, раньше хуже было.
1561205883225.png162 Кб, 600x382
328 1710684
>>710639
Самое смешное было смотреть на оправдание С/С++-идиотов, которые защищали дырки в своих языках. Линус так вообще откосплеил мэра лондона с его "UB это нормальная практика для разработчика на С и их не стоит бояться".
329 1710723
>>710465
>>710468
openssl - это две библиотеки crypto и ssl, первая - "швейцарских нож" от мира криптографии, вторая собственно сама реализация протоколов ssl разных версий от старых до самой последней. По поводу первой либы, значит, это огромный набор реализаций алгоритмов, которые все разом никому не нужны, что-то конкретное можно всегда найти в другом месте, даже в виде crate на расте. Вторую библиотеку тоже нет смысла переписывать, потому что там куча легаси + есть другие реализации, если тебя ssl из openssl не устроил, например, libressl, раз уж heartblead упомянули.
Пример из жизни, который работает, ring - небольшая по меркам монстра libcrypt библиотека, но её и webpki достаточно для реализации tls 1.3, ну и rustls как имплементация ssl.
То есть мало того, что переписать openssl на раст - непосильная задача, так она и не стоит вовсе.
image.png109 Кб, 794x379
330 1710749
Оригинальный тред: https://2ch.hk/cc/res/471403.html (М)

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

tondarDI@kleadANUSpJoCrotonmailPUNCTUMcdM@om
331 1710755
>>710749
Ты долбоеб, тон уже всё
332 1710756
>>710749
Раз уж расто-тред, что там с либрой, ну и для справедливости с зеброй, зойчем кому-то нужен тон, если упомянутые работают (если работают)?
>>710755
Тон уже всё, но был работоспособен.
333 1710757
>>710756

>Раз уж расто-тред, что там с либрой, ну и для справедливости с зеброй, зойчем кому-то нужен тон, если упомянутые работают (если работают)?


>либра


Лол. Во-первых, еще не работает, Цук сейчас пытается поулчить у США разрешение, во-вторых, сейчас бы отправлять сканы своих документов и проходить полный KYC-AML цикл, чтобы мне разрешили ВЛАДЕТЬ КРИПТОВАЛЮТОЙ. Это нормально вообще, зачем тогда крипта? Хотя это же создатель ФСБука, камон.
334 1710766
>>710757

>еще не работает


Я имел в виду работоспособность самой программы, типо как тон полгода назад, когда там они свои конкурсы проводили, как я понял, он уже был готов. Либру довольно давно пилят, возможно она уже готова, я это имел в виду, а не запуск. Ну и зебра ещё есть. На них смотрели?
335 1711230
struct Zalupa{
id: i32,
seks_list: Vec<Pizda>
}

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

Аноны, может кто объяснить как в данном случае правильно расставить лайфтайм спесифаеры? Вообще никак понять не могу. В залупе должен быть список пезд, залупа владеет и списком и каждой пиздой в нём. А в пизде ссылка на какую-то залупу.
1470616442766.jpg25 Кб, 585x433
336 1711295
>>711230

> в данном случае правильно расставить лайфтайм спесифаеры


Никак.
337 1711297
>>711295
Можно пожалуйста подробней?
339 1711316
>>711307
Пиздос вы тут умные завидую
340 1711341
>>711230
Поржал немного, ты меня развеселил, поэтому помогу тебе, добрый молодец.

>А в пизде ссылка на какую-то залупу.


struct Pizda<a> {
ptr: *mut Zalupa,
_marker: marker::PhantomData<&'a Zalupa>
}
mut/const по вкусу.
341 1711361
>>711316
https://rust-unofficial.github.io/too-many-lists/index.html это мне кажется может помочь разобраться
342 1711415
>>711341
Вообще для указателей лучше всегда NonNull<T> использовать https://doc.rust-lang.org/std/ptr/struct.NonNull.html , либо Option<NonNull<T>> если возможно null-евое значение. Оба равны usize и являются zero-cost абстракциями и чуть безопасней сырых указателей.
343 1711603
>>711415
Raw pointer - выбор настоящего системного программиста, NonNull Option - для девочек.
344 1711679
>>664495 (OP)
Бля, ну что за кривое пердольное говно? Стоял stable-x86_64-pc-windows-msvc, решил накатить gnu, теперь вообще ничто не ставится.
rustup срёт ошибками, что нет нужных папок. Создаю руками, он пишет всё установлено, но по факту нихуя нет.
Пробовал standalone installers, но где в этом говне стандартная библиотека? Clion не хочет это говно принимать, хотя нужную папку указываю.
Ну пиздец. Причём в справке нихуя не написано, пишут ставить интерактивной залупой rustup-init и ни слова как заставить это говно работать.
fcc7zgxua5h41.jpg40 Кб, 630x630
345 1711694
>>711679

>сидеть на виндовозе в 2к20.

346 1711725
>>711603
Girls win!
347 1711731
>>711679
https://github.com/rust-lang/rust-wiki-backup/blob/master/Using-Rust-on-Windows.md

Вообще, я бы посоветовал всё снести и обратно поставить заново всё, начиная с rustup.
348 1711803
>>711679

>Бля, ну что за кривое пердольное говно?


Шинда.
349 1711845
>>711803
>>711694
причем тут шинда, если проблема в ублюдском (((безопасном))) софте?
350 1711851
>>711845

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


>прием тут шинда

351 1711860
>>711230
Ну вот так оно даже скомпилируется

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

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

Только вот сконструировать что-то нормально не сможешь, да. Вместо ссылок надо юзать Rc/Weak, чтобы запилить циклическую зависимость.
352 1711936
>>711851

> шиндопроблемы с файловой системой и переменными окружения


Но ведь это говно просто не работает. В этом (((безопасном))) пердософте написано что будут скачаны небходимые пакеты и установлены в такие-то папки, но ни первого, ни второго не происходит. Если бы были проблемы с вводом/выводом шинды, то должно быть исключение, но это говно просто нихуя не делает. Это не проблема шинды, что эти говнокодеры понаписали что-то в реестр и теперь нихуя не работает. Я бы понял если была хоть какая-то ошибка, но это говно пишет что всё ок и установлено. Сегодня я уже сгорел и даже не хочу пытаться вычищать это говно из системы. Алсо, удаление этого говна ничего не поменяло, надо чистить вилкой.
У меня есть подозрение что это говно не работает потому что я как-то полуавтоматически ставил всё это через VS Code, но это не отменяет того что делали всё это говноделы, неспособные в простейшее тестирование, т.к. это всё официально поддерживается.
353 1712003
Нюфаги совсем охуели, походу скоро будут требовать релиз в стиме, чтобы от дотки не отвлекаться.
354 1712005
>>711936

>Алсо, удаление этого говна ничего не поменяло, надо чистить вилкой.


>ряяя это же не проблемы кривого дизайна шинды ряяяяяяя



>это всё официально поддерживается.


>опенсорс с баблом от некоммерческой организации


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

Тащемта, ты сам долбоёб, который не захотел делать всё по инструкции, сделал всё по своему и всё поломал. Теперь ты пришёл сюда, даёшь 0 инфы и срёшь какую-то хуйню. Блять, ты же даже сам переустановить не можешь, о какой нормальности фс и прочей шиндохуйни вроде реестра ты говоришь?
355 1712033
>>711936
Ты какой-то ебануй чес слово.
356 1712068
>>711936

> windows


> VS Code



Кажется проблемы все таки не в расте а в том что ты криворукий дебил
357 1712549
>>711230
struct Zalupa<'a>{
id: i32,
seks_list: Vec<Pizda<'a>>
}
struct Pizda<'a>{
id: i32,
zalupa: &'a Zalupa
}

Also, не забудь закинуть залупу в std::pin::Pin
358 1712550
>>711341

>*


Вот из-за таких говнокодеров потом программы приносят миллионы убытков, мда.
А если я мувну залупу?
359 1712584
>>712549
Ты видимо не до конца понимаешь значение Pin. Pin - это обёртка над ссылками и в твоём случае он должен быть в структуре Pizda, потому что именно там есть ссылка на Zalupa. Zalupa же владеет всеми экземплярами Pizda, а потому там пин не нужен.
360 1712665
>>712584
Pin это аналог unique_ptr из c++.

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

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

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

Пин — это просто маркер, который позволяет полагаться на то, что Zalupa не сдвинется через эту &mut ссылку, но при этом ты всё ещё можешь получить мутабельный доступ к полям внутри через DerefMut.
362 1712676
>>712674

> Пин — это просто маркер, который позволяет полагаться на то, что Zalupa не сдвинется через эту &mut ссылку, но при этом ты всё ещё можешь получить мутабельный доступ к полям внутри через DerefMut.


Ну да, так а что тогда ему нужно, чтобы Pizda к Zalupa нормально ссылалась?
363 1712699
>>712550

>А если я мувну залупу?


А если у тебя пропуска в интернет нету? Ты тут вообще должен быть? Начнём с этого.
364 1712707
>>712674

>core::ptr::unique::Unique


Его, получается, убрали из std lib, потому что Box имеет safe api и корректен, т.е. за ненадобностью?
365 1712716
>>712707
В std её не было изначально, это чисто внутренняя штука, чтобы код не копипастить.
366 1712752
>>712716
И касательно того шизика с пинами, я же правильно понимаю, что пин всегда нахуй не нужон как поле структуры, т.е. гораздо лучше его сделать частью api, то есть оборачивать хозяина объекта в пин, и работать везде с последним?
367 1712753
>>712716

>это чисто внутренняя штука, чтобы код не копипастить


Я вспомнил, где видел, в номиконе же.
368 1712991
>>712753
Она есть, но с пометкой "не трожь, пидр".
https://doc.rust-lang.org/1.4.0/std/ptr/struct.Unique.html
369 1713325
>>712752
В том случае именно надо сделать частью структуры Pizda, как-то так:
struct Pizda<'a>{
id: i32,
zalupa: Pin<&'a Zalupa<'a>>,
}
чтобы указать, что при создании этой структуры Zalupa уже должен быть "запиннен" где-то в памяти и его нельзя перемещать в другое место.
370 1715991
В этом замечательном языке есть нормальные библиотеки для работы с числами произвольной точности?

Попробовал bigdecimal, на первый взгляд ничего так, но нельзя указывать точность для операций. Например надо мне sqrt(2) с точностью 100 знаков, или деление, а там такое не предусмотрено.
Снимок экрана 2020-06-07 в 20.30.16.png111 Кб, 1790x522
371 1716006
Пачаны, я тут вам пикчу в копилку с buttplug.io принёс, но уже с вполне настоящими вакансиями. И даже придумал пару шюток:
1) Как CoC раст-коммунити к такому относится?
2) Если выгоришь — можно будет пойти работать на вебку.
372 1716009
>>716006
На самом деле мемная только нижняя часть, но какой же хуёвый дизайн, вроде зрение хорошее — а нихуя не увидел.
373 1716013
>>715991
Единственное что я смог нагуглить — https://docs.rs/num/0.2.1/num/
Если не то — либо писать самому, либо писать биндинги к сишным аналогам.
bf.jpg55 Кб, 900x900
374 1716024
>>716006

>buttplug.io


Я хоть и шутил про эту парашу, но мне казалось, что это чисто редитовый мем, а оно вона как.
375 1716539
>>716013
Уже смотрел, там вообще нет десятичных дробей, только натуральные.

Буду смотреть что там в bigdecimal, может допилю по свои нужды.
376 1716585
>>664495 (OP)
Аноны-растишки, поясните за оптимизацию исполняемого кода в rustc. Почему в rustc при opt-level=3 и опции использования расширений текущей архитектуры не используется ни одна инструкция из расширений, тогда как в gcc выходная программа чуть менее, чем полностью строится на AVX-расширениях? И есть ли вообще способ как-то собрать программу на Rust'е с этими расширениями?
377 1716726
>>716585
Проблема а) в -ffast-math, который не хотят включать по причинам б) Лишние проверки, которые блочат векторизатор.

https://godbolt.org/z/ZQwyGJ
378 1716742
>>716726
Есть какая-то информация, будут ли fast math завозить в Rust?
379 1716751
>>716742
По умолчанию точно нет. Собственно, fast-math - это когда мы считаем, что флоаты ассоциативные и коммутативные. Это можно закостылить вручную, хотя, наверное, проще интринсиками.

https://godbolt.org/z/bPH2vr
380 1716759
>>716751
Спасибо за информацию, анон.
IMG20200609214332.jpg470 Кб, 2694x2293
381 1718058
Я скозал
382 1718123
Есть микрозадача, которую не знаю как без говнокода решить.
Есть &[u8]. Там внутри записано ascii символами число. Допустим ['1', '2', '3']. Необходимо перегнать это дело в i32. Должно выйти 123.
Пока язык изучаю, поэтому придумать хорошее решение не в состоянии, может быть подскажете как без String::from_utf8(array).unwrap().parse::<i32>().unwrap() обойтись? Нашел from_str_radix, но оно принимает &str.
383 1718137
>>718123
Integer.valueOf(Arrays.stream(arr).collect(joining("")))
384 1718166
>>718123

> как без


Так у тебя парс этот же from_str_radix внутри и вызовет наверное

> но оно принимает &str


std::str::from_utf8(a).expect("kek")
ну или
unsafe { std::mem::transmute(a) }
385 1718347
>>718123
А чем from_utf8 и parse не устраивают? Выходит нормально, плюс не забывай что у раста мощный type inference, так что можно при вызове parse не указывать тип, если его можно вывести позже.
https://play.rust-lang.org/?version=stable&mode=release&edition=2018&gist=250dd2ec5df3dc8b53f3a834ac33dd2c
>>718166

> unsafe { std::mem::transmute(a) }


Для этого есть from_utf8_unchecked: https://doc.rust-lang.org/std/str/fn.from_utf8_unchecked.html
386 1718355
>>718347
И да, str::from_utf8 не копирует строку. Он просто проверят все ли байты в массиве соответствуют utf8, а потом вызывает from_utf8_unchecked, который просто превращает ссылку &[u8] в ссылку &str. Если ты уверен что массив содержит корректные данные (например проверка уже была выполнена ранее), то можешь вызывать напрямую from_utf8_unchecked, чтоб не проверять массив лишний раз.
387 1718389
>>718123
s *= 10 + (n as i32)-('a' as i32)
388 1718390
>>718389
s = s*10 + (n as i32)-('a' as i32)

fix
391 1718685
>>718444
Навелосипедил - убери за собой.
image.png19 Кб, 727x122
392 1718690
Аноны, такой пиздос: есть крейт и есть проджект. В крейте используется futures, написаны тесты с его использованием - работают, сук. Но при сборке проджект ругается на такую хуйню в крейте, сука. Как так?!
393 1718753
>>718690
Сделал
cargo update
cargo clean в обеих дирах
удалил всё в ~/.cargo/registry/src
попереставлял импрты туда-сюда - вродь заработало.
394 1718757
>>718753

>cargo clean


зис
395 1720436
тред умер как и язык
396 1720473
>>720436
ты тредом ошиблась, тебе сюда >>1719888 (OP)
397 1720699
>>720473
На нем хотя бы работа есть...
Да даже тред не такой мертвый как это
мимо
398 1721202
>>720699
Найди мне, как через swagger нагенерить OpenAPI биндинги для плюсов.
399 1721249
>>721202
А если не найду, то что?...
400 1721312
>>720699

>Да даже тред не такой мертвый как это


Треды тащемта абсолютно идентичны, вся разница в том, что тут студней с лабой1 нет, которые все шаражки гонят на потоке. Попробуй скрывать их в плюсотреде и посмотри какой он будет живой, лол.
401 1721320
Давно не следил за новостями, что там в расте с февралей этого года произошло? Конст-шаблоны уже стабилизировали? Рантайм для фьючей в стдлиб уже завезли, или всё также либо токио либо async-std?
402 1721338
>>721320
По факту добавили только две крупные фичи:
1) async/await теперь не требует Thread-Local Storage, а значит может работать в no_std и в целом быстрее и генерирует меньше кода (теперь может даже полностью оптимизироваться).
2) catch_unwind теперь имеет zero-cost есть код внутри него не выбрасывает панику.

Вот и всё. Остальное ещё в процессе.

> Рантайм для фьючей в стдлиб уже завезли


Сомневаюсь, что это туда вообще когда-нибудь завезут. Особенноу читывая, что помимо токио и асунк-сдт, уже есть особенно необычные рантаймы, например поверх io_uring у новых линуксов.
403 1721339
>>721338

> имеет zero-cost есть код внутри него не выбрасывает панику.


имеет zero-cost если код внутри него не выбрасывает панику.
fix
404 1721648
>>721249
Вроде как пишет на плюсах народу больше, а для стильной модной технологии модуля до сих пор нет. Напрашивается вывод - плюсисты, это или пердуны, которым не до того, или их студенты, которым лишь сдать все лабы и забыть плюсы, аки страшный сон.
405 1722382
>>720436
ой как воскрес быстро
https://habr.com/ru/post/506598/
406 1722401
>>722382

> некоторые идеи стали насаждать в головы настолько агрессивное, безапелляционно и грубо.


Как они смеют оскорблять лучший в мире язык С++? Вообще охуели. Вон эксперты яндекса говорят что раст не нужен и С++ гораздо безопасней. А я яндексу больше верю, потому что я патриот.
407 1722409
>>721338
Спасибо.
>>722382

>Есть некоторые люди, которые хотят выполнить свою работу на языке, который они уже знают


Лол
408 1722421
>>722382

>Сектант кукарекнул в пользу своего объекта поклонения


>Индустрия продолжил писать все на плюсах

409 1722425
>>722421

>Индустрия продолжил писать все на плюсах


Всё на си, ты хотел сказать?
410 1722426
>>722421
ты нихуя не понимаешь, скоро весь айти пересядет на раст (даже юи-бляди будут ебошить на васме), а плюсовики просто обосрутся заживо от каждодневного взлома их говноподелий
411 1722428
>>722425
Кто-то и на си, да
412 1722434
Почему тред всплывает, только когда кто-то жидко перданет про Раст в интернете?
413 1722537
>>722434
Потому что язык не популярный
414 1722958
То гугл перданёт, то M$, скоро, глядишь, Папа Римский богоугодным объявит. Но лабы у нас в шараге на нём не пишут, поэтому непопулярный.
415 1723180
>>722958

>Но лабы у нас в шараге на нём не пишут


Я пишу
416 1723233
>>722958
На Го тоже не пишут, но он популярный.
417 1723271
А вот и правильная могопоточность подъехала:

https://docs.rs/specs/0.16.1/specs/
418 1723333
>>723271

>ECS


нихуя не понятно что там у вас происходит вобще
419 1723348
>>723333

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

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

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

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

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

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

Ну то есть, был массив структур, енго превращаем в структуру массивов, сами массивы прячем друг от друга и от пользователя, бизнес-логика в системах, которые лямбда с циклом и которым безопасно выдаются слайсы коллекций только отдельных полей.
421 1723356
>>723353
А если захочется по-старинке: позвать, там, какой-нибудь метод с &mut self, который меняет поля структуры? А структурыто попиханы по векторам, которые итерируются хуй знает каким потоком - облом-с?
422 1723357
>>723348
Да общую идея то я понимаю
на писать и осозновать код не получается
к примеру пытался на аметисте писать, какая же боль была
423 1723363
>>723357

>на


но
424 1723372
>>723356

Значит система должна на выходе высирать множество сообщений (например физическая система пробежала по всем пулям и объектам в мире и высрала список кто в кого попала, этот список сожрался геймплейной системой, которая пробежалась по хп атаке и проставила соответсвующие статусы/флагии передала системе анимации, которая передала список анимаций скелетов рендеру который уже нарисовал корчащихся трупов итд), которые должна схавать другая система.
425 1723373
>>723372

И тут появляются сущности оркестровки вроде всякие так графы зависимостей.
426 1723694
>>723271

> Правильная



> Система типов - в помойку


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



Чето не, хуйня получилась, делайте заново.
427 1724325
>>723694
Ну, строго говоря, specs — не совсем ECS. Но при этом, ECS как раз очень хорошо подходит для мультипоточности, потому что всё независимое. Лучше ECS подходят только выросшие прямо из CRDT системы, но там расширяемость страдает по сравнению с ECS. Мультипоточность — это вообще всегда боль, потому что менять расшаренные данные нельзя, а всегда хочется.
428 1724479
Аноны, такое дело. Есть 2 группы асинхронных операций:
Группа1(оп11, оп12,..), группа2(оп21,оп22,..)
что нужно:
1. чтобы каждая из групп выполнилась асинхронно
2. чтобы выполнение группы 2 началось после того, как отработает группа 1
3. чтобы всё вместе это дело отработало внутри асинхронной неблокирующей таски
а то что-то сам я запутался - tokio, futures, async-std, куча тулз, рантаймов, пиздос. Вдруг кто уже проворачивал подобное.
429 1724627
>>724325
Все еще оба моих аргумента вполне обоснованны.

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

>>724479

Примерно так (я только не понял 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, лень гуглить.
430 1725868
431 1725958
>>725868
А если тип непринтабельный - ошибку вернёт?
432 1726092
Новость из блога トナリ уже закидывали?
433 1726178
>>726092
東京タンメン トナリ | 季節の野菜をたっぷり取り入れたタンメン。?
434 1726196
>>726092
https://blog.tonari.no/why-we-love-rust?ref=twtr
мог бы и сам ссылку скинуть, каког хуя мне пришлось самому её искать?
но впринципе достаточно интересно было глазами пробежаться, спасибо
ах ну да, а нахуя эта залупа зеркальная нужна? обычных вебок уже недостаточно?
435 1726240
>>724479

>группы


Почему именно группы?

>неблокирующей таски


Русский язык, не?

>а то что-то сам я запутался - 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().
>>726196
Можно коротко про что там? Быстро бегать глазами не люблю, а если что-то интересное, то можно и почитать аккуратно.
436 1726242
Ну что вы, расисты. Сколько реп у ваших зависимостей уже сменили название главной ветки с расистского термина master на политкорректные main или target? У меня пока только один: https://github.com/time-rs/time/issues/264

Планируете ли сами переименовывать? Или тут все гитлеры?
437 1726258
>>726242
Ну, он же написал, что не будет объяснять причин своего поступка и всё такое. Походу, африканские братушки просто выловили его на улице и что-то эдакое провернули с пруфами, потребовав сменить имя ветки, чтобы пруфы не всплыли.
438 1726261
>>726240

>Можно коротко про что там? Быстро бегать глазами не люблю, а если что-то интересное, то можно и почитать аккуратно.


Сам сильно не вчитывался
кратко: кампания начала пользоваться растом, рассказали как к этому пришли, с чем столкнулись, плюсы минусы и тд
ничего полезного
439 1726268
>>726258

> Ну, он же написал, что не будет объяснять причин своего поступка и всё такое.


Интересно все участвующие в этой рассылке тоже были провёрнуты африканскими братушками? ng$dWDgANUSmaFyfilPUNCTUMgmj4OailPUNCTUMc6E_om/" target="_blank" rel="nofollow noopener noreferrer">https://lore.kernel.org/git/CAOAHyQwyXC1Z3v7BZAC+Bq6JBaM7FvBenA-1fcqeDV==apd:k=WDgANUSmai9jFlPUNCTUMgmbC5ailPUNCTUMc;:6om/

И СЕО гитхаба тоже: https://twitter.com/natfriedman/status/1271253144442253312?s=19
440 1726353
>>726268

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

Тут многие не понимают, что вот эти все каминаутники на самом деле понимают ЧЬЯ повесточка и держат нос по ветру и за кого на самом деле вписываются.
441 1726357
>>726353

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

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

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

У меня-то пока хеловорлды которые собираются за секунды, интересно реальное положение дел.
445 1726484
>>726242
Планирую оставить мастер, а фича бранчи называть слейв.
446 1726510
>>726472
Статью не читал, линковка долгая - это да, но это вроде как решалось через новый линкер. Небольшой проектик, который использовал gfx-hal оче долго линковался, в тот момент кстати настроил в емаксе, чтобы cargo check, а не compile запускался.
447 1726540
>>726472

> И стало интересно и правда все настолько плохо в реальных проектах, что приходится держать 2 копии проекта, одну компилируешь, другую кодишь в данный момент?


Со включённым lto, даже мелкие проекты могут компилироваться пару минут.
>>726510

> но это вроде как решалось через новый линкер


Ещё не решилось. cranelift не интегрирован в стабильный раст. Можно закостылить в ночнушке, но никто ничего не гарантирует, там даже тесты не проводятся.
448 1726565
>>726472
Да, раст довольно медленно собирается. Но особых проблем нет, особенно при кодинге. У меня рабочий проект уже под 50к строк кода, разбитых на множество крейтов, и rust-analyzer хорошо работает, не тормозит процесс (только при запуске немного тупит, пока анализирует проект). Вообще >>726510 анон прав, тебе нафиг не нужен compile (rust-analyzer его не делает, например), если тебе не надо что-то запускать.

Я пару раз менял структуру крейтов, чтобы было быстрее запускать тесты в отдельных крейтах, ну и не перекомпиливать вообще все из-за изменения в одном крейте. Но в целом это не такая большая проблема, и вряд ли вылезет на небольших проектах.
449 1726584
>>726565
что за проект?
450 1726607
>>726261
Почитал статейку, ну короч там хуй знает вообще о чём идёт речь по факту камеры с драйверами под линь и хуйня для браузера, шта? С одной стороны я не понял, вообще при чём тут джабаскрипт и 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 или плюсах судя по всему, наверное единственная причина, почему они там раст выбрали.

Чёт хуй знает, такая себе статья. Единственное, что подметил положительного, японские тянки худенькие, а не кабанихи и их много в разраб-конторе.
451 1726708
Аноны, я, кажется, понял причины особого градуса СЖВ истерии в среде западных программеров. Смотрите:
1. Проповедуется "институциональный расизм". В США 90% белых +- согласно с тем, что чёрному парню из гетто труднее устроится, т.к. в гетто плохая школа, после которой его не возьмут в хороший колледж, а после в MIT
2. Но чтобы работать программистом, не нужно оканчивать хороший колледж - в этой сфере полно самоучек.
3. Профессия престижная, выучиться можно сидя дома за компом. Почему же нет нигеров-программистов? Нам, белым, как-то неудобно получать такие бабки, когда бедные нигеры там курят крэк в подворотне и стреляют друг в дружку - вдруг каким-то боком мы, программеры, тоже расисты, сами того не замечая?
4. Всё ясно: нигеры боятся слова master в гите! Вот ща переименуем, тогда-то чёрные братишки перестанут бояться программировать и раскроют всему миру свой интеллектуальный потанцевал.
452 1726834
>>726708

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



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

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

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

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

https://www.youtube.com/watch?v=rStL7niR7gs
453 1726842
В России тоже негры живут.хоть одного чернокожего айтишника покажите.
454 1726864
>>726842

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



У меня есть знакомый, "дитя олимпиады", правда он из одминов, ныне девопс.
455 1726866
>>726864
Вся суть в воспитании. Если нигера воспитывает белая мать, может выйти толк - тот же Обама.
Если воспитывают нигеры, которым "все должны", вырастает дженерик нигга.
Вот только интересно - есть тенденция к скатыванию, или раз вставший на путь истинный нигга будет и детей своих и внуков воспитывать приличными людьми.
456 1727031
>>726584
Проприетарное СЗИ. Я хз, детали наверно являются коммереской тайной и хуй я что больше могу сказать.
457 1727128
>>727031
а петы?
458 1727249
>>689684
Растаманы.
459 1727512
>>726834
Кто бы сомневался, если какая-то заварушка - всегда ищи жида, и это уже, блядь, не шутки.
>>727249
Правильный ответ: rustaceans.
460 1727523
>>727128
А нихуя нет особо. Я инфантильный слишком, мне не хватает настойчивости работать над чем-то долго (ну кроме работы, лол). Так, буквально несколько коммитов в попен-сорс и все.
461 1727786
>>726472
Вот только что доделал свой пет-проект:

> Finished release [optimized] target(s) in 1m 36s


Маленькая программка, которая скачивает с антизапрета и рублэклиста список заблокированных доменов/айпи и на их основе генерирует dnsmasq/ipset фильтры для автоматического обхода блокировки средствами iptables. Самое смешное, что самая сложная часть - это поиск доменов второго уровня для группирования, если доменов третьего уровня слишком много. Я заморочился и сделал правильный поиск доменов первого уровня, используя список https://publicsuffix.org/list/ и написав парсер, который преобразует его в идеальный хэш-мап (т.е. без коллизий) на 10722 строк кода, с помощью которого и производится поиск доменов.
462 1727876
>>727786
Через полгода перепишешь в 5 раз короче.
463 1727891
>>727786
Ну так нормально. Релиз собрка и будет долгой + хуй знает, сколько у тебя там тянется зависимостями. Ну и последующие сборки должны быть быстрее, так как ты меняешь только свой крейт.
1345.PNG264 Кб, 1116x1442
464 1727962
>>727876
Это автосгенерированный код уровня пикрилейтед. Короче в пять раз он станет, только если доменов поубирают. Первая версия и так была в 16000 строк и собиралась 6 минут (потому что домены разбивались по частям в разные хэш-мапы и всего было несколько сотен хэшмапов, но во второй версии всё объединил в одну), это уже после оптимизации.
1345.PNG49 Кб, 1370x546
465 1727980
>>727891
Зависимостей относительно немного. Хотя да, http-клиент тянет за собой достаточно говна. Но это минимальный клиент с нужными мне фичами: кодировками (один из списков отдаётся в windows-1251), сжатием (чтоб не скачивать ~50Мб текстовых файлов) и TLS.
466 1727996
>>727786

>преобразует его в идеальный хэш-мап (т.е. без коллизий)


Как ты этого добился?
467 1728000
>>727996
https://github.com/sfackler/rust-phf

Вся суть в том, что все данные известны на момент создания хэш-карты, а потому можно на ихз основе сгенерировать идеальную хэш-функцию без коллизий. Недостаток в том, что чем больше данных тем дольше генерируется хэш-функция.
468 1728005
>>728000
И естественно под "без коллизий" понимается "без коллизий в рамках данных внутри карты". Коллизии вполне могут быть, например хэш ключа из карты и рандомных данных могут совпадать, а потому сравнение самих ключей после сравнения хэшей всё ещё необходимо.
469 1728016
>>728000
А коллизии внутри самой хешмапы? Будешь наращивать размер массива пока не исчезнут коллизии?
470 1728050
>>728016
Да, там создаётся массив с дополнительными данными для расчёта в случае коллизий. Но он не увеличивается бесконечно. Там больше упор на рандомную генерацию данных для хэш-функции пока все данные внутри карты не будут идеально хэшироваться. Потому генерация карты и занимает много времени (правда будет заметно при >1000000 элементах, моя с ~10000 даже в дебаг-билде генерируется моментально).
471 1728237
>>726480

> Но заменить ручной труд не удалось: например, для использования клея нужна была точность, которую оборудование не могло обеспечить, объясняет издание.


Хуета какая-то.
472 1728346
>>728237
Это не хуета, это глобализация и отмазки. Просто если сказать что китайцы/индусы/пакистанцы стоят дешевле роботов — это будет неполиткорректно.

Вообще, после коронакризиса как раз таки предсказывают уменьшение этой самой глобализации, и роботизация точно будет расти. Всё какие нибудь же ахуевшие американцы это не среднеазиаты, работающие за чашку риса, и оезко роботы перестанут быть «неточными».
473 1728366
>>728237
Трудности перевода

>Typical problems that arose include how Apple's use of glue required precision the machinery couldn't reliably match. And the tiny screws needed required the automation to correctly pick and position them but that same automation couldn't detect problems the way a human hand could.


https://appleinsider.com/articles/20/06/04/how-apple-learned-automation-cant-match-human-skill

Я так понимаю роботы иногда тоже промахиваются, но человек может понять что он не туда клея жахнул и исправить. А робота надо еще этому учить.
474 1729393
>>727962
Если у тебя всё известно до реальной работы, то почему просто не ебануть вектор с binary search? Можно даже ебануть константный массив, если до компиляции все данные известны.
475 1729395
>>728016
Потому что хэшмап быстрее, не? Там около 11000 элементов внутри и без коллизий время почти всегда одинаково (хотя скорость вычисления ключа и зависит немного от его длины). К тому же конкретно phf и создаёт статический вектор, а после вычисления хэша у тебя получается индекс в котором находится пара ключ/значение. Т.е. вся суть в том, что хэшмап полностью создаётся во время кодогенерации (а у меня она генерируется отдельной утилитой) и фактически хранится в бинарнике в готовом для использования виде и инициализировать перед использованием её никак не надо.
476 1729397
477 1732725
Чо можно практичного написать, что бы показывать в качестве примеров кода? То бы зайдя на гитхаб, меня захотели взять на работу)
478 1732794
Ну и когда ржавчина выстрелит то?
479 1732797
>>732794
NEEQUOGDA
480 1732927
>>732794

Уже выстрелила.

Ещё бы норм инструменты для opencl завезли.
481 1733031
>>732927

>opencl


На вулкане есть вычислительные шейдеры, которые должны работать на любых девайсах, поддерживающих вулкан - лучше юзай их. С OpenCL, например, на мобилах туго, а на десктопе куда давит. Да и сама концепция OpenCL немного устарела. AMD, вон, пилит HIP - аналог куды. Правда, тоже для плюсов-онли.
Для раста есть потуги в виде https://github.com/MaikKlein/rlsl https://github.com/gfx-rs/rspirv - когда-нибудь сможем полноценно ебошить для GPU прямо на расте.
482 1733099
>>732725
Основные критерии проекта, благодаря которому берут на работу:
1.Работа с вебом.
2. Многопоточность.
3. Асинхронность.
4. Пользуется популярностью у других/приносит прибыль создателю.

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

Самый легкий способ идеи для проекта - спиздить уже существующую и изменить её с упором на что то конкретное. Например, есть библиотека, которая охватывает множество юзкейсов, ты создаешь её копию, которая охватывает только часто используемые юзкейсы, улучшаешь либо функционал в этом направлении, либо производительность/ресурсоемкость. Называешь её lightweight оригинальная либа нейм, описываешь достоинства и радуешься звездочкам на гитхабе.
image.png93 Кб, 1239x559
483 1733277
>>733099
У меня практически все пункты покрыты кроме "Пользуется популярностью у других", только хуй я это выложу на гитхаб, такая печаль. А пилить что-то "для людей" мне лениво, вдохновения не хватит.
image.png36 Кб, 1368x103
484 1733501
Хочу забацать асинхронный тжред, из которого буду отсылать всякое в основной через channel. Сделал через tokio::task::spawn(async move {
Без асинхронности всё гуд, работает. Как только меняю вызов любой функции на асинхронный, ругается на пикрил. Хуле ему надо? Я чего-то невозможного хочу? Пиздос.
485 1733605
>>733501
Ну тебе же написали, что какая-то из ожидаемых тобой Future не является Send. Покажи код, хуле, так сложно сказать.

>>733277
Забей вообще. Сейчас, если ищут именно раст разработчика с опытом, никто особо не будет смотреть на твой гитхаб (ну то есть будут, но его отсутствие совсем не критично). Слишком мало кандидатов, чтобы еще и выкидывать тех, у кого нема гитхаба. У нас вон вакансия на раст разработчика закрывается уже хуй знает сколько месяцев.
486 1733648
>>664495 (OP)
Если после жабы накачу раст, я офигею писать бизнес логику на этом языке? Будет так же больно как на С++ или терпимо?
487 1733660
>>733648
Если привык писать абстрактные фабрики фабрик, то офигеешь. Но по факту язык гораздо проще тех же плюсов, если не пытаться натягивать сову на глобус.
488 1733661
>>733648
Именно писать будет заметно больнее чем на плюсах, зато вот тратить недели чтобы поймать какой нибудь сегфолт или месяц на отлов дата рейса не придётся.
download.jpeg5 Кб, 298x169
489 1733679
>>733660

Ебать проще... Проще... Проще...
490 1733683
>>733648
Не офигеешь, напишешь хеллоуворлд и всё, потому что на расте ничего не пишут.
491 1733711
>>733661
Благодарю
492 1733723
>>733711
>>733648
Блин, есть возможность выбрать свежий стек, поиграться. Так хочется вылезти из ООП парадигмы, но не сильно залезть в ФП. Прям не знаю.
493 1733742
>>733679
Прямо сейчас сижу перед сегфолтом, который случается каждый раз в разной строчке и не понимаю, это я дурак или баг где-то в зависимостях или еще какая-то хуйня. Да, проще.
494 1733745
>>733742
расте?
495 1733747
>>733745
Очевидные плюсы.
496 1733751
>>733742
Будь мы в си/плюсовом треде я бы просто ответил стандартную мантру про то, что ты макака, но лучше сам подумай чего бы ты наловил в тех же плюсах, лол.
497 1733787
Бля, это баг в стейбле? Ансейфов нет, но есть асинк + куча RwLock.

thread 'main' panicked at 'dispatch dropped without returning error', /home/vasya/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src/libstd/macros.rs:13:23
498 1733803
>>733787
Ты что, в расте такого быть не может.
499 1733808
>>733787

>thread 'main' panicked


>panicked


Проиграл. И это вы называете программированием? На ноготочки уже все сходили, паникеры?
500 1733828
>>733787
Ну какой-то код из либы, которую ты юзаешь, запаниковал. Судя по гуглу это что-то из hyper'а.

>>733808
>>733803
Невероятно, откуда вы все лезете. Открою секрет: вы ВООБЩЕ на любом языке можете дернуть системный exit и прибить любой процесс вне зависимости от гарантий языка. И я уж молчу про то, что сделать плохой дизайн либы/приложения можно тоже на любом языке (кроме C++ - там ты просто не дойдешь до дизайна, пока будешь ебаться с языком).
501 1733834
>>733828
Но он не вызывал exit
502 1733861
>>733834
Но вызов паники это практически эквивалентно. Это намеренное поведение, а не сегфолт какой-нибудь.
503 1733965
>>733787
RUST_BACKTRACE=full
504 1734068
>>733965
Как же я люблю магическое программирование через настройки глобальных переменных.
Ну нельзя что-ли какой-то ini-файл с настройками в той же папке скормить.

Говорили же всем - глобальное состояние - зло.
505 1734101
>>734068

> Ну нельзя что-ли какой-то ini-файл с настройками в той же папке скормить.


И тащить его за пределы компиляции? Совсем поехавший? Чем тебе env-vars не нравится?вполне удобная штука
506 1734236
>>734101
За какие приделы?
rustc -c dev.ini
rustc -c myDebug.ini
rustc // тоже самое rustc -c prod.ini

И вся твоя настройко-отладочная фигня лежит в твоей папке, а не в йоба-пространстве, которое хуй пойми в каком положение там сейчас.
507 1734237
>>734236

Хуйня непривычная.
tenor.gif229 Кб, 220x191
508 1734251
Тред ожил
509 1734317
>>734068
Необязательно глобально делать. И ещё бэктрейс по-моему переделывать собираются, может что поменяется.
510 1734331
>>734317
Это радует, но я там погуглил и увидел какой-то параметр типа --cfg, видимо через линуксовский pipe можно скормить.
511 1734333
>>734317
В тоже время херова когда все переделывают, это бьет по написанию библиотек для языка.
512 1734336
Раз тред утонул, настало время серьезных вопросов.
Кому не лень, перечислите недостатки раста, можно субъективно? Чисто ради того, чтобы иметь картину об языке. Плюсы и так можно услышать, а вот о недостатков - это интереснее узнать.
513 1734340
>>734336
Плохая поддержка ide. Вот, например, идея что вычудила
514 1734389
>>734336
Штош, поехали:

1. Недостаточно "взрослые" либы. Те либы, которые ты, например, юзаешь сейчас для проекта, через год будут совсем другими. Или вообще часть будет заброшена. Или изьята (особенно криптография).

2. Долгая компиляция.

3. Отсутсвие стабильного ABI. Очень мешает созданию растовых динамических либ (есть крейт abi_stable, но это жуткий костыль).

4. Борроу чекер иногда не способен обработать корректный код (проблема решается, NLL очень сильно улучшил ситуацию, polonius сделает прям вообще хоршо, когда будет готов).

5. Лично меня очень сильно раздражают orphan rules. Я понимаю, почему они введены, но было бы неплохо иметь возможность обходить эти правила в bin крейтах, ибо такой крейт уже никуда не будет реэкспортироваться (то есть он что-то типа final же).

6. Нет нормальной возможности указывать кастомные аллокаторы для разных контейнеров (вроде как над этим думают).

6.5 В целом есть некоторые претензии к стандартной либе, но они постепенно решаются.

Ну это вот что прям я бы назвал минусы. Так еще бы отметил слабоватый вывод типов, отсутствие HKT (да даже GATы хуй появятся видимо), да и наверно все.

Но при всех минусах юзать раст приятнее, чем другие языки, ИМХО.

>>734340
Ну так ты юзай нормальный редактор/ide, а не идею. Есть великолепный rust-analyzer, зависимость есть, брат жив.
515 1734391
>>734389

> Ну так ты юзай нормальный редактор/ide, а не идею. Есть великолепный rust-analyzer, зависимость есть, брат жив.


I mean надо подключить rust-analyzer к редактору, естественно.
быстрофикс
516 1734407
>>734389
О, спасибчи, анон.
517 1734413
>>734389

>Но при всех минусах юзать раст приятнее, чем другие языки, ИМХО.


Почему приятнее??
518 1734440
>>734413
1. cargo. Это просто манна небесная в плане упрапвления проектом (сборка и зависимости) после всего, что я юзал ранее (Python - pip/venv/pipenv, C++ - ебать нахуй make/cmake/зависимости из жопы, Java/C# - вообще неюзабельны без ide для новичка). cargo, будучи довольно простым в использовании, покроет примерно 90% потребностей проекта любой сложности.С build.rs - 99%. И никаких монструозных Makefile, pom.xml, стремных requirements.txt + env/bin/activate. Может есть и у других языков подобное cargo (точно есть), но я их не юзал.

2. Сам язык удобный. Один только pattern matching делает вещи куда удобнее. Не зря его пытаются в питон даже затащить (да, я знаю что в каком-нибудь хаскеле это есть хуй знает сколько лет). Ну и в целом многие вещи, заимствованные из функциональщины очень удобны.

3. МАКРОСЫ.

4. За счет большого количества либ (хоть иногда и сомнительного качества) + хорошей выразительности языка можно юзать легко вместо питона для скриптинга (я так и делаю иногда, особенно если сходу знаю, что мне знакомы нужные либы). А с evcxr можно даже юзать в REPLе (хоть и тормозит немного).

5. Там, где я его юзаю по работе, требуется производительность, поэтому аналогом мог бы быть только C или C++, и лучше уж Rust.

Ну вот как-то все вышеперечисленное и приводит меня к тому, что мне оч нравится использовать Rust (хотя я и питон юзаю, и что-то еще тыкаю иногда).
519 1734442
>>734391

А это поясни. Чем лучше просто идеи? Я в ней все пишу. Туда его нельзя?
520 1734467
>>734440
Раз ты юзаешь питон, то по опыту как считаешь, насколько легко читается код на расте? (в сравнение с тем же питоном, если взять условную планку, что питон это 10 из 10)
521 1734471
>>734442
Хз, можно ли к идее подключать произвольный language server. Но вот если сравнивать именно плагин intellij-rust и rust-analyzer, то я бы сказал что rust-analyzer лучше, потому что он а). Не привязан к редактору (берешь любой совместимый с lsp редактор - работает). б). В него вкладывается больше усилий со стороны коммюнити, так как он не завязан на идею. в). Ну его пилит matklad, который раньше в jetbrains пилил собственно intellij-rust. г). itellij-rust очень гейский и например отладчик есть только в платных ide (idea ultimate или clion).

Я тут намешал как технических так и "идейных" аргументов, но короче я бы сказал, что если тебе не нужна прям idea, то лучше перелезть на связку vscode + rust-analyzer (в моем случае это емакс, а не vscode). Но это вкусовщина, разумеется, на работе вон все в разных средах пишут (главное не быть пидором и не добавлять папку .idea/ в гит репозиторий).
522 1734491
>>734467
Ну мне раст вообще кажется более читаемым (я с ним таки 90% времени работаю), то есть 15/10. Сложный код на питоне (с большой вложенностью) вообще не могу нормально читать без подобной фигни https://github.com/antonj/Highlight-Indentation-for-Emacs/ . Ну и наличие типов в коде очень сильно помогает его читать (и давайте будем честными, в питоне очень редко код с type hint'ами).

Ну и вообще тебе будет проще читать то, с чем ты больше работаешь (хоть ассемлбер), так что такой себе вопрос.
523 1734552
>>734391
Абыдна, но попробую. Дело в том, что один из моих проектов, это микс из раста и жабы, а именно, проект под ведроид. Идейка норм переваривала их обоих вместе, правда, не заглядывал в него после того, как начало глючить раст в идее.
image.png6 Кб, 470x74
524 1734597
>>734391
Бля.
image.png8 Кб, 530x96
525 1734633
Ну вот, приехали, нах. https://stackoverflow.com/questions/59600409/error-in-rust-unit-test-the-async-keyword-is-missing-from-the-function-declara - но я не импортирую в проекте ничего из токио, кроме Runtime. Как забороть эту залупу? Есть идея прописать полный путь до test, но я не смог его ни нагуглить, ни выудить при помощи ide
526 1734642
>>734597
Кек. Видимо просто мне везет ¯\_(ツ)_/¯ (или ты нашел какой-то интересный баг, зарепорти).

>>734633
100% у тебя где-то что-то лишнее реэкспортится.
image.png20 Кб, 722x86
527 1734649
>>734642

>интересный баг


Этот интересный баг - всего лишь отсутствие доки у функции. Задержался курсором, получил пикрил. rls на этом же месте показывает {unknown}. То есть, вроде бы это и проблема vscode тоже.
>>734642

>что-то лишнее реэкспортится


Ага, #[macro_use] перед "extern crate tokio";
Пидарасы, могли бы обозвать tokio_test.
image.png9 Кб, 449x215
528 1734651
Блин, мож и правда большинство растоманов на виме и емаксе сидят? Ну невозможно же, ёпт.
image.png35 Кб, 759x236
529 1734740
Вскодеры все на месте? В идее такие штуки добавляются квик-фиксами, у тут что - никак? Или я криво настроил?
uE1LYUTL8H0.jpg50 Кб, 744x517
530 1734796
>>734740
Ctrl+. в дефолтных биндингах. Но вообще там экшн есть Quick fix. То, что там написано no quick fixes available - очередные баги.
>>734651
пикрил. Большинство Vsknob'ом пользуется. Мне тоже "приходится" им пользоваться, потому что эмакс слишком сильно лагает на моей машине, а что-то другое настраивать нет ни времени, ни сил.
531 1734817
>>734796

>эмакс


>лагает



мда. Vim неожиданно большая доля, може его попердолить.. Как в нём выглядят эти же хинты с фиксами?
532 1734827
>>734817
Как напердолишь так и будят выглядеть, это же вим.
dklYyIIYWWc.jpg86 Кб, 597x293
533 1734833
>>734817
Я не шучу, если что, по поводу эмакса. Elip сам по себе медленный. А тут ещё и вдобавок медленный gc и только один поток. Ну, может, голый он не лагает. А font-lock-mode(подсветка синтаксиса) уже заставляет фризить при скролле. По фичам то эмакс вообще топ, но с кучей пэкэджей он будет только раздражать своими лагами, если ты ,конечно, не на мейнфрейме его запускаешь.

Алсо, про вим. С coc.nvim оно выглядит так: нажимаешь хоткей или вручную вызываешь CocFix, стоя курсором на нужном месте, снизу открывается окно(пикрил), где выбираешь что нужно
534 1735170
>>734651
На Clion'e мне вполне заебись. Разве что если макросами обмазываешься, то пока что хуёвая там поддержка.
535 1735177
>>735170
Я мимокрокодил, но что там не так с макросами? Я вроде недавно только читал, что завезли в clion экспанды для макросов. Хз, правда, как оно сравнимо с trace_macro, но всё же это по идее должно быть лучше, чем сидеть на листочке их разворачивать, как раньше.
536 1735676
>>664495 (OP)
Напомните почему Rust медленнее си? Где то читал, или смотрел видео доклад, там было что то толи про LLVM, то ли про неудачный дизайн ABI с оверхедом ассесблера, не могу найти. Интересуют подвижки в этом плане.
538 1735900
>>735177
У меня цлион терял переменные если их в макросы передавать и начинал жаловаться на анъюзд.
539 1736796
>>735676
раст быстрее сишки
540 1737234
>>736796
Но медленнее сишарпа
https://www.techempower.com/benchmarks/#section=data-r19&hw=ph&test=plaintext

А вообще там в С++ какой-то годный бд драйвер завезли
https://www.techempower.com/benchmarks/#section=data-r19&hw=ph&test=query
541 1737277
>>737234
просто хейтеры не умеют делать бенчмарки
Проводились норм бенчи - раст ебал кресты в рот в 9 тестах из 10. Раст - будущее. Апогей компьютерных технологий, который сумел нивелировать на 99% ошибки памяти, не прикручивая при этом GC. Ассемблер был заменен сишкой, сишка заменяется растом потихоньку. Мир системного программирования тоже меняется, пора оставить UB, висячие указатели и переполнения в прошлом, 2к20 год уже как никак.
542 1737308
>>737277
Я ожидал рассказ про то что программисты плохие и никто не умеет писать программы на правильном языке. А тут что-то новое.

Может быть те бенчи которые видел, как раз не правильные и подкрученные?
543 1737328
>>737234

>Но медленнее сишарпа


На 0.3%
Дожили, блять.

>>737308

>Может быть те бенчи которые видел, как раз не правильные и подкрученные?


Самые релевантные бенчи — это, кто бы что бы не говорил, benchmarksgame, т.к. есть конкретные алгоритмы с конкретными ботлнеками и всё прозрачно. Тот же techempower — хуйня из под коня, ей богу. Что там вообще сравнивается? Кто напишет сервер поддерживающий меньшую часть http или не сующий в заголовки лишние 2 байта и это используется как аргумент в спорох о языках? Лол.
544 1737372
>>737328

>benchmarksgame


Помню в свое время как раз к ним были какие-то претензии и люди кричали не воспринимать те тесты за объективные.

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

Не думаю что результаты techempower.com дадут какую-то математическую точную истину. Нет, они показывают много интересных вещей, которые не видно за манипуляцией.

Да раст быстрый, это факт. Но блин хватит уже этого фанатизма в профессии.
545 1737384
>>737372

Все бенчи показывают лишь то, насколько авторы отдельных бенчмарков заморочились.
546 1737458
>>736796
Он не может быть быстрее, чисто логически, если он вставляет лишние ассемблерные инструкции доступа к памяти.
547 1737459
>>737277
Правильными бенчмарками ты видимо называешь такие, в которых на си++ написали хуже чем надо.
548 1737505
>>726866
Тенденции к скатывания не может быть. Бытие определяет сознание, а не наоборот.
549 1737533
>>737505

>Тенденции к скатывания не может быть


Запросто. Допустим, некий нигга из хорошей семьи вдруг решит стать гэнгста (книжек обчитается, рэпа обслушается, проникнется романтикой). Внезапно, на него, такого крутого гэнгста, западут с десяток нигресс из приличных семей - что-то у них щёлкнет унутре от его лихости. В итоге имеем 1 ниггу в тюрячке и 10 мамаш одиночек, воспитывающих гэнгста-деток - и всё по-новой.
telega.png37 Кб, 692x624
550 1737754
Помогите ньюфагу с ботом для телеги
пикрил
https://github.com/telegram-rs/telegram-bot/blob/master/lib/examples/simple.rs

Приходит сообщение, формируем ответ, отправляем. Но мне надо чтобы программа сформировала ответ без входящего сообщения, по списку зарегистрированных пользователей, как это сделать? Я не понимаю как мне самому создать структуру message, возможно ли её как-то сохранить в файл и загружать при запуске программы? Или как вообще это делается?
551 1737841
>>737754
Всё, разобрался, нашел в исходниках структуру ChatId, которая принимает идентификатор чата и позволяет формировать сообщения.
552 1738311
Обновился плагин раста, идейка заработала. Возвращаюсь на неё с вскода, т.к. на нём не было вот такого (не заюзанных модулей в хинте - точно, а это охуеть как удобно)
image.png6 Кб, 377x49
553 1739319
Вот ещё чего в вскоде не хватало. Я это всё вбрасываю не в тему восхваления идейки, просто, вдруг это я тупой и вскод не напердолил, а на самом деле там всё это есть.
554 1739380
плюсы и раст похожи? есть смысл парралельно с плюсами учить раст?
555 1739389
>>739380
Да, очень похожи.
Нет, не имеет смысл учить ни то, ни другое.
556 1740214
Я правильно понимаю, шо етот язык — С без указателей?
557 1740233
>>740214
Нет, не правильно.
558 1740235
>>739380

> плюсы и раст похожи?


Нет

> есть смысл парралельно с плюсами


Нет.
>>740214

> Я правильно понимаю, шо етот язык — С


Нет

> без указателей?


Нет.
559 1740260
>>740214

> етот язык — С без указателей


Нет, но можно зделоть.
560 1742266
Есть принципиальная разница в работе с растом из-под винды, линукса и мак оси?
561 1742271
>>742266
Касаемо написания программ в макоси рекомендуют вместо системного аллокатора всегда использовать jemalloc или другой кастомный: системный там лютое говнище и из-за него программы иногда работают в разы медленней чем на других системах.

А в целом всё одинаково - вс код и раст-анализер работают везде.
562 1744119
Перекатите тред, что-ли.
563 1744127
>>744119
Не стоит
564 1744133
>>744127
Всё правильно, сис. Стояк для максулинных токсичных фашистов. Мы, растолюбы, предпочитаем под хвостик.
Обновить тред
Двач.hk не отвечает.
Вы видите копию треда, сохраненную 7 декабря 2020 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски