Этого треда уже нет.
Это копия, сохраненная 17 ноября 2023 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
изображение.png706 Кб, 2560x1440
RUST #27 /rust/ 2800762 В конец треда | Веб
RUST #27

Rust — невероятно быстрый язык для системного программирования без segfault'ов и с гарантиями потокобезопасности.

Ссылка на официальный сайт: https://www.rust-lang.org/

В этом ИТТ мы можем объяснить базовые и продвинутые концепции языка, и программирования в целом, поможем вкатывающимся, подскажем что выбрать для веба, игр или, прости Абу, блокчейна.

IDE для Rust: https://areweideyet.com/
GUI для Rust: http://www.areweguiyet.com/
Web для Rust: https://www.arewewebyet.org/
GayDev для Rust: https://arewegameyet.rs/
Что еще есть для Rust?
- Посмотри сам: https://wiki.mozilla.org/Areweyet

Основная литература:
Rust Book(версия на русском языке): https://doc.rust-lang.ru/book/
Rust Book: https://doc.rust-lang.org/book/
Rust by Example: https://doc.rust-lang.org/rust-by-example/
The Rustonomicon(для продвинутых анонов): https://doc.rust-lang.org/nomicon/
Programming Rust: https://www.oreilly.com/library/view/programming-rust/9781491927274/

Ресурсы на русском:
https://rust-lang.ru/
Отдельное спасибо автору этого гитхаба(старому ОПу). Здесь вы сможете найти много полезной информации: https://gist.github.com/TatriX/183c816f1346d418f969c4576c2b9b41
Предыдущий: >>2720637 (OP)
2 2800775
Где там этот Серёга с перегрузками? Какая тема на этот тред, адресная арифметика может быть?
3 2800806
>>00775
Только не это... как я заебался из треда в тред читать одно и то же - обсуждения ненужности раста, "маркетинга", трансов. Вот бы больше анонов пишущих в продакшен на расте рассказывали про работу, сложности с которыми сталкиваются, наблюдения свои какие-то, всё такое
4 2801025
>>00806

>Вот бы больше анонов пишущих в продакшен на расте рассказывали про работу


А чего рассказывать, пишем бекенд микросервисы. Actix, sqlx, lapin, tokio, serde. RPS небольшой, но у нас работают парсеры которые много html говна и json перемалывают, стучат асинхронно на разные апишки потому и раст. Девопс все красиво делает в докерах. Короче в целом стандартно примерно как у гоферов, ты лучше спрашивай что тебе интересно.

>сложности с которыми сталкиваются


Как только начнешь набежит школота рассказывая что в шарпе не так и ваш язык говно и вообще я повелся на маркетинг лол.
5 2801090
А вы все тут геи?
6 2801097
>>01090
Нет, только тот что перегрузки методов хочет и на менторство напрашивается. Так что поаккуратнее с ним
7 2801376
8 2801396
>>00806

>Вот бы больше анонов пишущих в продакшен на расте рассказывали про работу, сложности с которыми сталкиваются, наблюдения свои какие-то, всё такое



Вот тебе лайфкодинг на русском.

1) 14-летка пишет компилятор. Понятно что это не первый раз пишет, но все равно очень легко ореентируется в языке
https://www.youtube.com/watch?v=cb_bt8v8TYY

2) Шарписты пишут на расте, бездари как всегда не подготовились, поэтому можно мотануть вначале хотя я хз что и дальше там
https://www.youtube.com/watch?v=jVHYV7Zkevs

Пчел тоже что-то пишет, сразу плейлист
https://www.youtube.com/watch?v=xHWab8r-OHc&list=PLV1XlLa7S2QbQQO36zqh8opQ7oTvvEBmo

Оставил себе на скучные дни посмотреть. Люблю лайфкодинг, но ангельский плохо знаю.
9 2801411
>>01025

> serde


Спурдо-спарде, блядь. Ебин!
Простите, проиграл.
Но со мной никто не играл.
10 2801418
Просто интересная залупень
https://www.reddit.com/r/rust/comments/15dp0hq/media_ant_colony_simulation_in_rust_and_bevy/
Сорцы не вроде как не сложные, можно потыкать.
image.png186 Кб, 1039x841
11 2801447
У шарпистов драма (машиный перевод на пикче)
https://www.reddit.com/r/programming/comments/15m2q0o/moq_a_net_mocking_library_now_ships_with_a/
12 2801454
>>01411
Ты поиграл сам с собой и проиграл
13 2801458
>>01447
Виндоюзеры и особенно шарписты должны страдать
14 2801459
>>01458

> шарписты должны страдать


Можно не надо? Они ведь полезут в другие сферы, а это чревато для рын-очка.
15 2801461
>>01447

>Moq — a .NET mocking library


В мире дотнета все стоящие внимания либы очень быстро заменяются их улучшенным клоном от МС, зачастую прямо встраивается в язык или в студию. А вот эта параша никому нахер не нужна, а если и нужна, то будет 100500 альтернатив.
16 2801472
>>01461
На самом деле тут беда не только шарпистов, а беда попенсорса в целом. Это уже не первый случай, когда у авторов происходит обострение. Если не начнут подавать в суд, количество безумия только увеличится.
17 2801482
>>01459
Они будут страдать и никуда не полезут из-за стокгольского синдрома к мелкософт
18 2801487
>>01461
Это вроде топ популярная либа там? Вообще это показатель, когда дети копируют поведение взрослых. Вот можно телеметрию им собирать, никто не возмущается, вот и "детки" начинают подрожать.
20 2801507
21 2801509
>>01496
Кажется я влюбился.
22 2801513
>>01496
ZIG FILE
image.png294 Кб, 1000x562
23 2801518
24 2801537
>>01509
Значит ты просто не сталкивался с местами где без этого просто никак не обойтись.
25 2801544
>>01537
Я так понял, это заменяется метапрограммированием. Тот же кодген только средствами языка, а не отдельным синтаксисом макросов.

Тут он демонстрирует это, этакая рефлексия на сях:
https://youtu.be/YXrb-DqsBNU?t=91
26 2801546
>>01544
В общем, там ссылка с таймкодом, макака съела таймкод при вставке.
27 2801558
>>01544
Ну если тебе нравится называть макросы метапрограммированием и считать, что этим язык лучше других, то спору нет...
28 2801570
>>01558
Это в zig называется метапрограммированием.
Я не критикую раст, там все норм. На самом деле и там и там будет эта магия макросов (любой кодген). Сложность надо заворачивать, в любом случае.
Просто мне нравится, что в случае зига это средствами языка делается, а не отдельным синтаксисом.

А еще полистал, там обработку ошибок завезли неплохую.
Не буду больше флудить, просто у меня вау эффект получился, как-то мимо него проходил раньше, а тут, по сути, годнота. попробуй посмотреть без предвзятости, проект правда смотрится неплохо
29 2801673
>>01570
Посмотрел. Ммм, фиш, никс, неовим с телескопом и скриншот с юникспорна как пример из продакшена, каеф. Тебя итерация по полям структуры поразила что-ли? Ну так это ещё в старых добрых плюсах на шаблонах делается. Да, там придётся написать побольше кода мягко говоря, тут за сахар жирный плюс. Если говорить про концепцию - разницу между макросами в расте и метапрограммированием в зиге не увидел что-то не увидел. Круто конечно, что это встроенно в язык, но вот тебе одностраничный крейт, который делает то же самое https://crates.io/crates/struct_iterable

Гораздо интереснее то, что он про разработку своего DAW рассказывал. Мол, то что пробовал писать на расте, заебался потому что какую-то фичу сделал на другом языке за 4 дня, а на расте это заняло 16, лол. Вообще, у меня сложилось впечатление, что язык появился потому что C++ слишком старый, а раст слишком сложный.
30 2801676
>>01673
Он реально читается проще. Это не сова притянутая за уши.
Например та же обработка ошибок.
https://www.aolium.com/karlseguin/4013ac14-2457-479b-e59b-e603c04673c8
Насколько, тупо проще, хотя концепт того же резалта, но насколько удобнее тот же catch и ведь это могло быть в том же го.

Я сегодня мониторил разное мнение, я думаю эта хрень может выстрелить, оказывается людям достаточно деффера, вместо тотальной победы над памятью, главное чтобы код проще сопровождался если ты читал код на сях, то там ппц адок

Растерам, кстати, припекает, зачем челик им накинул про раст, я хз. Это всегда только вредит обоим сторонам, но смотреть приятно.
https://habr.com/ru/articles/753078/
31 2801677
Что-то психанул и попробовал на расте сделать этот пример. Найди 10 отличий называется. Да зиг чуть лаконичнее получился, потому что в расте нельзя матчить вызову функции, а констант для типов не завезли. Вопрос, нахера я этим ночью занимаюсь, остаётся открытым.
32 2801678
>>01676

>если ты читал код на сях, то там ппц адок


Я на сях и работаю. Эмбеддед. Поэтому раст и интересен.
33 2801683
>>01677
Там, вроде, на видео была ошибка. Типа посыл такой, найдите ошибку, и типа вуаля, вы только что разобрались в неизвестном языке (мол насколько он интуитивен).

>Эмбеддед


Ну все же там более лайтово, железка не позволяет разойтись. Хотя может не прав.

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

Просто так вышло, что о карбоне, который существует только во влажной фантазиях и вообще не были понятны даже концепции, кроме как "сделать все хорошо" - кричали из каждого угла. Даже в каком-то ролике на ютубе вставили его вровень с С, С++ и Растом, как-будто он уже есть. А тут под боком живет полу-готовый продукт и кругом тишина.

Поэтому хз что переживать, без поддержки это будет очередной D. Как минимум интересно было о нём узнать, а так дальше сижу учу раст.

PS ладно, последний разок покушать принес
https://ziglang.org/ru/learn/why_zig_rust_d_cpp/
34 2801706
>>01677
Шрифт похож на JetBrainsMono, он?
35 2801844
>>01496
Интересная штука, тут кстати обработку ошибок лучше чем в расте сделали, остальное пока хз как-то там у них постоянно меняется всё, жду 1 версию
36 2801900
>>01677
Иногда итерации по структурам не хватает, приходится в json перегонять или вот так вот изъебываться. А так пиздатая фича тут можно делать ORM без макросов, которую подсветит любая ide и всякие подобные штуки которые будут работать более очевидно вместо магии под капотом у serde
37 2801914
Посмотрел видос, который всплыл в рекомендациях, лол.
И собственно, что я когда-то ныл, то в реальности и присутствует.

Сначала автор показывает в сравнение как раст делает код лучше, безопаснее, но потом приходит асинхронная задача и начинается просто костылеварение.

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

Так вот и получается, что кто-то бореться сигфолтами, кто-то с компилятором, а кто из этого выигрывает, непонятно.
https://www.youtube.com/watch?v=pmt0aaquh4o
38 2801988
>>01914

> но потом приходит асинхронная задача и начинается просто костылеварение.



Русским по белому чел говорит, что это из-за отсутствия async трейтов. Проблему никто не скрывает, люди работают. Непонятно, почему в либе нет воркараунда с динамическим фьючерсом.
39 2801994
>>01988

>Проблему никто не скрывает


Впервые слышу, как-будто реально замалчивают.
40 2802004
>>01988
А в чем проблема, типа в рамках синтаксиса языка нельзя это сделать, или что?
41 2802026
>>01994

>Впервые слышу


Потому что ты не пишешь и не интересуешься языком, очевидно, ибо костыль под это уже четыре года как существует. https://docs.rs/async-trait/latest/async_trait/

>>02004
Сначала нужна была поддержка GAT. Сейчас не знаю, но обещают, что soon (tm)
https://blog.rust-lang.org/inside-rust/2023/05/03/stabilizing-async-fn-in-trait.html
42 2802053
>>01994
Я раз 5 про это сылшал хотя на расте написал суммарно строк 800 наверное, вряд ли больше

мимо
43 2802073
>>02026

> ибо костыль под это уже четыре года как существует.


Как трудно расту даются такие вещи.
В зиге в 0.12 планируют тоже асинк/авэйт, посмотрим как у них получится.
44 2802110
>>01994
Все берут async_trait костыль не парятся и ждут лучших времен. Проблема в том что в трейтах нельзя объявлять асинхронные методы компилятор тебе говорит иди на хуй, а если объявить метод не асинхронным, а имплементацию сделать асинхронной будет говорить что ты хуй и у тебя сигнатура не соответствует. async_trait это исправляет в виде макроса делая примерно такой же изъеб как на видео

>>02073

>Как трудно расту даются такие вещи.


Их похоже проебали когда async/await добавили в 2019, а теперь это добавить стало сложнее
45 2802234
>>02110
Там обоснование было, что либо мы релизим хоть что-то работающее сейчас, либо ебем гусей следующие 10 лет.
46 2802238
>>01676
>>01844
Про обработку ошибок. Прочитал статью и может что-то не понял, но чем она лучше резалтов в расте? Из статьи я вижу такие особенности:
1. try
2. catch
3. автоматическая генерация вариантов енума для разных типов ошибок
4. отсутствие данных передаваемых вместе с ошибкой
Ну так и в расте есть оператор ? вместо try; unwrap*, if let или match вместо catch; данные в ошибках из коробки. Да автоматических енумов нет, или я про них не знаю, но во многих ситуациях явное описание вариантов это плюс. Блин, да там автор полстатьи показывал как сделать растовский резалт.
>>01706
Iosevka
47 2802256
>>01900
Согласен, что это бывает очень нужно, причём метапрограммирование только сериализацией или ORM не ограничивается. На моём примере вся магия улетает в #[derive(Iterable)]. В остальном обычная работа с методами и типами из стандартной библиотеки с соответствующей поддержкой от IDE. Буду честным, под капотом serde всё таки прилетело, лол. Я скорее против разграничения макросов и метапрограммирования. Это актуально было разве что только C, в котором это действительно разные этапы работы тулчейна. Во всех современных си-подобных язычках макросы, темплейты и это самое метапрограммирование обрабатывает компилятор. Поправьте, если ошибаюсь. И всё равно им до лиспа как до луны.
image436 Кб, 3648x1988
48 2802272
>>01683

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


Хороший ход, но нет, я вот не разобрался лол. Но про поиск ошибки кстати интересное замечание. В зиге (блять, название пиздец триггерит для русских) как и в расте нужно перечислить все варианты в свиче, поэтому мой пример пожалуй тут проигрывает, т.к. компилятор ошибку не подскажет. Поэтому переписал, получилось совсем 1 в 1 как по мне.
49 2802303
>>02238
Да, все так и еще там более грамотный просброс наверх, есть контекст из коробки и что-то типа стек трейса, короче что-то типа anyhow только из коробки и менее всратый.

https://ziglang.org/ru/learn/overview/#%D1%81%D0%B2%D0%B5%D0%B6%D0%B8%D0%B9-%D0%BF%D0%BE%D0%B4%D1%85%D0%BE%D0%B4-%D0%BA-%D0%BE%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B5-%D0%BE%D1%88%D0%B8%D0%B1%D0%BE%D0%BA

Вообще мне кажется что авторы языка в какой-то степени вдохновились растом и пытаются сделать что-то похожее исправив его ошибки в дизайне
50 2802337
>>02272

>В зиге (блять, название пиздец триггерит для русских)


https://zlanguage.github.io/
https://vlang.io/
51 2802338
>>01683

>PS ладно, последний разок покушать принес


>https://ziglang.org/ru/learn/why_zig_rust_d_cpp/


Чёт кекнул:

>В Zig нет макросов и метапрограммирования, но при этом он достаточно мощный для того, чтобы выражать сложные программы понятным, немногословным способом.

52 2802345
>>02337
У меня скорее ассоциации с третьим рейхом возникали, но это тоже смешно, да.
53 2802479
>>02337

>https://vlang.io/


хуйня без задач
54 2802620
>>01496
Вот честно говоря, мне как системщику пишущему на С эта штука очень интересна

Естесно меняться на это сходу никто не будет, но учитывая его простоту интеграции с С-шным кодом, а также сохранение С-шной возможности ткнуть в любое место кода и дизассемблировать его хоть в голове, может быть когда-нибудь это где-то и приживется
55 2802721

> zig


> first-class интероп с Си


Вирмейкеры, наверное, кончают радугой?
566380.jpg48 Кб, 400x569
56 2802882
Сап. Платину наверно спрошу, но вдруг кому то не влом ответить.
Короче, в качестве хобби хочу вкатиться в системное программирование и пописать что нибудь наконец то для души.
Работаю бэкэнд макакой, и самое "низкоуровневое" что я писал это реализация dhcp клиента на go а так вечное перекладывание жсонов

Начал читать пик, и запутался уже на теме с транзисторами, т.к в электротехнике полный еблан.
Стоит ли вообще начинать с такого? Или похуй, читнуть про ОС и забить?
И стоит ли сразу начинать с раста, или сначала поговнячить на Си или АСМ?
57 2802949
>>02882
Попробуй начать с книги «Код» Чарльза Петцольда.
58 2803103
>>02238
Отсутствие лишних и ненужных сущностей, кастомные юзерские ошибки тот еще бойлерплейт (к счастью или нет, фикситься макросом). catch это скорее unwrap_or_else. Тут просто истетика и наверное показатель для Го.
Про сахар "?" я чуть позже узнал, да и он не решает вопрос сигнатуры. Где в зиге возвращаемым типом может быть сам тип с восклицательным знаком.
!type = это аналог резальта
?type = это аналог опшена

Что лаконичнее?
fn foo() -> <Result<Option<u32>, io::Error>>
fn foo() !?u32
59 2803107
>>02338

>>В Zig нет макросов и метапрограммирования


С метапрограммированием мог я обосраться, май инглиш из бэд
60 2803128
>>03103

>catch это скорее unwrap_or_else


Почему же? Может быть unwrap_or() если нам просто нужно конкретное значение, unwrap_or_default() если хватит дефолтного или unwrap() если нужна паника (аналог catch unreachable в зиге). А ещё в расте есть удобные функции для перевода Result в Option и обратно, позволяющие строить прикольные цепочки.
>>03107
Я к тому что между всеми этими понятиями исчезающе тонкая граница. Хз, может есть какие-то строгие определения, я не в курсе.
61 2803129
>>02882
Танненбаума наверни, хз зачем тебе схемотехника. Ты с паяльником сидеть планируешь? Это уже не про программирование.
62 2803181
>>03128
Не спорю что у раста свой подход. Тут да, резалт может открывать больше возможностей, чем просто прибитый гвоздями синтаксический оператор catch (сахар).
В общем я не критикую, я просто дискутирую, что мол есть и другой подход в решение задачи.

PS Всем похер, но скажу: я воспринимаю языки как инструмент и это не просто шаблонные слова. То есть мне не нравятся или нравится языки, я их либо ценю, либо нет.
В данном случае раст, это, по сути, единственный инструмент, который реально решает пласт проблем С/С++ и приземляет разработку с того околосистемного траха, до прикладного уровня.
Действительно - трахаться с копиляцией, это лучше чем трахаться с дампом памяти. И в целом для меня он становится универсальным языком, где плюс минус можно будет писать все. Поэтому я могу одновременно восхищаться растом и в тоже время какими-то идеями zig.

Язык программирования это технически сложный проект требующий тонну часов для достижения стабильной разработки на нем, поэтому меня радует что могут появляться еще продукты данного типа, но вероятно с раста я не уйду, если мне не дадут "прикладной" уровень разработки без ГЦ. Там в реале тот же zig все еще достаточно сырой и тонна "васянства", это может быть очередной D, "скребущий" дно спроса. Но это не повод не смотреть на его сахар.
В общем, всем насрать, просто даю понять что я не троллю.
63 2803464
Подсел на раст недавно плотно, раньше тоже что-то пытался, но получалась хуйня нихуя неполучалось, собственно говоря. Смотрю крастофраст Жона Женгеста охуительны чел, из его видосов получаю больше, чем из книжки, изучаю пару проектов на разбор, сам пишу по мелочи. Странно, но никакой другой язык до этого не давал такое чувство удовлетворения от того, что прога компилится, лол.
image.png52 Кб, 665x344
64 2803802
>>03464
Гы Jon Gjengset. А вообще сейм, да. Теперь каждый раз когда натыкаюсь на TypeError в питоне вспоминаю про няшный растик
65 2804203
Стоит учить Раст если хочу
а) сделать скрипты для Хрома и Телефона андроида чтобы скачивать сториз с инсты быстро и чётко (АПИ, атво-соащдние папок по имени и дате, чекать было или нет ранеесохранено)
б) работу 300к в неделю
в) власть и капитал, уровня 100 млрд баксов+++
66 2804206
>>04203
другие варики: шарп, питон, с, с++
я хз что учить

го?
мба?
67 2804207
>>04203
>>04206
еще хосчу или делать классные игра на ПК и консоли и телефоны для начала, плюс роботы и дроны, и VR/AR стафф
69 2804321
>>04297
Лол, на днях пока девопсы прод роняли и поднимали на работе сидел хуи пинал и потыкал хэлоу ворды на этом говне, нихуя прикола не понял и попросил чат гопоту накидать круд и запросы к sql. Нахуевертила, результат мягко говоря меня удивил, погуглил примерно так и пишут на нем. Сидел экспирементировал с кодом и понял что это бессмысленная хуета которую невозможно поддерживать потому что write only, особенно забавило то как методы пишутся. Я вот не понимаю нахуя его вообще трогать кроме как в академических целях играться с монадами при помощи стрелочек, заебенивая в одну строку факториал. Из языков для ФаПа та же кложа более читабельна
70 2804322
>>04203

>а) сделать скрипты для Хрома и Телефона андроида чтобы скачивать сториз с инсты быстро и чётко (АПИ, атво-соащдние папок по имени и дате, чекать было или нет ранеесохранено)


Тебе лучше js

>б) работу 300к в неделю


>в) власть и капитал, уровня 100 млрд баксов+++


Стань другом по дзюдо у нужного человека
71 2804344
>>03802
Я его Джон Женшень называю. Четкий пацанчик.
72 2804395
>>01683

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



Гуглу в коммитете по стандартизации С++ в чём-то там отказали. Они обиделись и решили сделать свой собственный С++ с блэкджеком и шлюхами. В результате вышел высер под названием Карбон.
image.png624 Кб, 853x480
73 2804466
>>04203
За полмесяца не успеешь. А там уже ЕОТова подросла, не до этого будет.
74 2804467
>>04395

>вышел высер


Под пивков в пятницу у кодеров куда более детализированные высеры получается, чем это.
75 2804555
Поздравьте меня я поебался.

Короче, несколько часов было потрачено на попытки заставить дебагер в вскоде показывать значения переменных в винде вместо хуй пойми чего. Побовал и lldb, и c++, и в дебаг консоли прописывать команды - все тщетно.
Чтобы все заработало, пришлось запускать через wsl.

Была у кого-нибудь такая же проблема, и возможно ли это пофиксить? Хочу нормальный дебагинг раста в винде. Вроде mature язык, но я не представляю как дебажить приложения в таком виде.

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

Короче, есть ли решение?
76 2804698
>>04555

>показывать значения переменных


println!()
77 2804758
>>04698
dbg!();
Не в пещере родились.
78 2804823
>>04698
>>04758
Да это неудобно же. Какого хуя нет норм поддержки дебагинга на одной из 3 основных систем?
79 2804887
>>04555

>в винде


>wsl


>но хочется все-таки нативного кодинга на винде.


Ты должен страдать, удел виндоюзера клепать формочки на реакте
Попробуй этот гайд https://blog.logrocket.com/how-to-debug-rust-vs-code/
80 2804957
>>04887
Бля, я чет уж совсем сдался, но решил еще разок попытаться, и у меня получилось! Я удалил экстеншен lldb, там выбралось c++ расширение, и все заработало хотя я ВРОДЕ бы пытался уже это делать, и у меня не получилось, магия какая-то.
В статье, кста, ничего по теме особо дельного не написано, но я пригляделся, увидел винду у автора поста, и то, что у него хэшмапа нормально отображается, поэтому решил еще разок попробовать.
Так что спасибо тебе, анон.
Я до сих пор думал, что формочки на реакте это удел макос юзеров. Кстати, ничего не имею против реакта, годный инструмент в своей нише.
81 2804973
>>04823

>неудобно


Дело привычки. Я уже 12 лет дебажу принтами (в разных языках), мне, наоборот, в отладчике ковыряться неудобно.
82 2805000
>>04973
Двачаю так быстрее, к дебаггеру прибегаю крайне редко
83 2805025
>>04973
>>05000
Ну да, каждое свое.
Пока не починил, я дебажил принтами, но сдался, когда пришлось рекурсивную функцию дебажить.
84 2805029
>>04973
хуета. дебагер не только для удобного вывода переменных. С ним можно
1) наставить брекпоинтов в разных файлах и пробежать по ним
2) остановить выполнение в конкретной точке и ходить по коллстеку
3) отладка нескольких потоков одновременно
85 2805224
>>04973

> Дело привычки. Я уже 12 лет дебажу принтами (в разных языках), мне, наоборот, в отладчике ковыряться неудобно.


Бля, парни, вы чё дискредитируете язык то своими бест практисез?
86 2805245
>>05224

>Бля, парни, вы чё дискредитируете язык то своими бест практисез?


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

Ойти интересует из за финансовой стороны вопроса, что конкретно изучать мне пока что по барабану, все равно еще не разбираюсь. Есть ли смысл переходить на раст в финансовом плане? Или дальше дрочить сишку?

(Думаю именно с самим поиском работы проблем не будет ни там ни там а вот что по зарплатам и рабочей нагрузке уже вопрос. Сишка вроде интенсивная в разработке, ответственность там.)
88 2805351
>>05344

>Есть ли смысл переходить на раст в финансовом плане?



В последнее время на ХХ.ру появляются вакансии, которые даже вроде не блокчейн, но вкатуну точно нет.
89 2805372
>>05344

>Есть ли смысл переходить на раст в финансовом плане?


Вкатится тяжело для джунов работы можно сказать нет
90 2805414
>>04973
Дебагинг очень удобен для чтение чужих сорцов, а чтение чужих сорцев лучший способ обучения если понимаешь что там происходит.
91 2805415
>>05344
Ты и в С++ золотую жилу наносека с трудом найдешь, не набрав жир в 10 лет работы.
Если кодинг не интересен, выгоришь моментально. Я серьезно считаю, что именно профессия программиста самая неблагодарная, так что не ведись на хайп инфоцыган, вас там джунов на вакансию по 500-1500 приходится.

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

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

+15 ржавых крышек мне
92 2805416
Щас бы на компилируемых языках принтами дебажить. Ладно бы спиздить у кабана время для игр или проработки глыбовых тем. Эти же додики ни себе ни кабану. И переключиться на другую деятельность не могут. Сидят смотрят как строчки в консоли бегут. Аутисты. Охуеть дожили...
93 2805458
Понравилось интервью. Если кому еще интересен обзор по языку:
https://www.youtube.com/watch?v=95cKihTt82o
94 2805461
>>05416
Как-будто это вина разработчиков раста. Поколение гита, которое привыкли, что все где-то для них написано и за бесплатно. Ну не сидят авторы на винде или затык какой потому, что пропритарщина сплошная, ну вот и получаются костыли.

Покормил скрипткиди.
95 2805498
>>05461

>Как-будто это вина разработчиков раста


Я имею ввиду людей использующих раст, мол какой смысл ныть тем кто буквально юзает инструмент как ты.
96 2805500
>>05416
>>05461
Хватить дрочить друг другу или говорить с самим собой
Дебаггер крайне неудобная в повседневной жизни штука, мало того что под него все медленно компилируется, так оно еще ужасно тормозно работает. Иногда он полезен но чаще всего нужно просто узнать в нужном месте что будет в структуре, а для этого принт лучше всего подходит потому что все быстро насрет в консоль и готово.
А еще лучше под хуевоработающий кусок кода лучше написать тесты, иногда и я так делаю.
97 2805534
>>05500
Нихуя себе, ты даже тесты пишешь???!!?!?!!
98 2805549
>>05415
А где вообще еще осталась золотая жила? Разве не везде одинаково пиздец?
99 2805561
>>05500
Никто не запрещает дрочить друг другу вставлять дебаггер только тогда, когда ставишь точку останова, или когда какой-то ключ передаешь.
В общем, одно другому не мешает, если сделать с умом.
100 2805570
>>05549
Потенциально и субъективно, на-наносекать, где-нибудь в питоне, будет быстрее чем в плюсах.

Но мой идеальный мир - это прогать для себя для души, а работать на чем-то более благодарном.
Конечно, если ты не ИТ-звезда, которая может торговать лицом на конференциях или везунчик, который может лениво усваивать капитал кабана.
101 2805572
>>05534
Лол да, как ты без тестов живешь?
100% кода не покрываю, но то что надо проверить в разных вариациях проверяю тестами вместо того чтобы запускать как-то руками и еще всякие штуки типа парсеров или куски кода с регулярками и тп покрываю в обязательном порядке. Когда что-то дает не такой результат тоже проще тестами покрыть. Если заранее нормальный код писать и максимально все убирать в переменные окружения и поднять отдельную БД для тестов, то потом можно тестировать почти без боли. Сейчас кстати с чатом гопотой удобно стало, даю ей кусок кода она примерно что-то накидает, немного руками поправить и тесты готовы.
102 2805859
>>05572
Кажется, мой подъеб не был понят, ну штош...
103 2806003
>>05859

> подъеб


А я думал ты долбоеб или вкатун
104 2806287
>>05570
В питоне сейчас модно нейронки дрочить, но места там наверное сильно заняты потому что дрочеров много а больших корпораций с мощностями для нейронок мало. А так почему то сложно поверить что питонисты зарабатывают больше сишников, хотя я не разбираюсь может и зарабатывают.
image.png112 Кб, 1284x319
105 2806388
Мув-семантика получается
106 2806459
>>06388
Дарт словно бастард, который обделен вниманием отца, все пытается получить хоть какую-то любовь и признание. нахер ты это калище сюда принес
107 2806478
>>06459
У дарта есть флаттер и мобилки, а мобилки сейчас больше веба. У раста ничего такого нет. Раст не то что бастард короля, это Квазимодо влюбленный в трапа по имени Эсмеральда...
108 2806489
>>06478

>У дарта есть флаттер и мобилки


Ты бы поинтересовался хоть у тех кто под мобилки пишет почему-то все кто попробовал перелазят обратно на котлин

>а мобилки сейчас больше веба


Приложения ставят не все и не везде, так что иди верстай еще и мобильную версию
109 2806747
>>06478
Сейчас бы на каждую чепуху по языку делать. Когда у тебя рядом лежит универсальный язык пригодный для всего, от написания операционных систем, до потенциального инди геймдева в браузере если наконец-то перестанут душить вебассембли.
А ты все пытаешься с полутухлым говном на переполненный рынок залезть.
110 2806751
>>06747
1) У языков бизнес валуе нулевое. Валуе есть только у батареек.
2) Вебассембер душить не перестанут. Однопотоковый одностековый ивентлуп с единым содержимым в IP регистре никто в браузере не отменит никогда. У тех же вебворкеров доступ к DOM отсутствует.
3) Инди гейдеву до пизды ассемблеры с растами. Ему нужно максимально простое апи для графона.
111 2806806
>>06751

>1) У языков бизнес валуе нулевое. Валуе есть только у батареек.


Что несет этот господин?

Ладно, покормлю, как может быть нулевая ценность у технологии определяющую вообще основу продукта?
Это как сказать - строительный кран не важен, важен только построенный дом.

Бизнес-ценность определяется как вся ценность организации, общая сумма всех материальных и нематериальных элементов.

иди уже к школе готовься, пока родители мобильник у тебя не отобрали и ты не остался без основного рынка для дарта
112 2806827
>>06806

>как может быть нулевая ценность у технологии определяющую вообще основу


Как у воздуха. Не было бы воздуха на Земле - ты бы амиаком дышал. Ценность жизни не в воздухе.
image.png183 Кб, 480x360
113 2806885
>>06827
Подыши аммиаком, знаток биологии.
114 2806889
>>06885
https://ru.wikipedia.org/wiki/Альтернативная_биохимия#Азот_и_фосфор

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


>В аммиачной атмосфере растения с молекулами на основе фосфора и азота получали бы соединения азота из окружающей их атмосферы, а фосфор — из почвы. В их клетках происходило бы окисление аммиака для образования аналогов моносахаридов, водород бы выделялся в качестве побочного продукта.

image.png173 Кб, 480x270
115 2807101
>>06889

>Альтернативная биохимия


Для альтернативно одаренных.
У тебя там в навучных гипофизах аммиак как растворитель представлен, то есть на роль воды, а не воздуха.
image258 Кб, 2610x566
116 2807456
Сап, двач. Почему это работает? Изначально мутабельный массив можно поменять. Причём меняется оригинальное значение, как видно по логу деструктора.
https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=a4d308a614e2e5db137adca5bc4f7d96
117 2807517
>>07456
Ты его сделал мутабельным на 12-й строке, а по старой иммутабельной ссылке v ты к нему больше обратиться не можешь.
118 2807526
>>07517
А этот процесс как-то называется?

мимокрок, интересно почему из не иммутабельного можно получить мутабельное?
119 2807531
>>07526

>процесс как-то называется


https://doc.rust-lang.org/rust-by-example/scope/move.html

>When doing assignments (let x = y) or passing function arguments by value (foo(x)), the ownership of the resources is transferred. In Rust-speak, this is known as a move.



>почему из не иммутабельного можно получить мутабельное


https://doc.rust-lang.org/rust-by-example/scope/move/mut.html

>Mutability of data can be changed when ownership is transferred.

120 2807532
>>07526
Создание переменной. То, что это происходит через перемещение из другой переменной -это детали.
121 2807533
>>07531

>>Mutability of data can be changed when ownership is transferred.


А где-то это подобно объясняется? Или просто "примите как данность". Я нахожу это контр-интуитивным, хотя и очень удобным.
122 2807538
>>07533
Не знаю насчёт интуитивности, но вполне логически вытекает из правил. Ты создаёшь новую мутабельную переменную и инициализируешь её массивом из старой. В целях экономии ресурсов массив не создаётся с нуля, а используется тот же самый, всё равно на него больше никто не ссылается, старая переменная из-за move становится невалидной. Если бы ты явно указал .clone(), то новая переменная не поменялась бы, а старая была бы по-прежнему доступна в иммутабельном виде, и ссылались бы они на 2 разные копии массива.
123 2807539
>>07533
Согласен, ощущается как магическая смена типа.
Ну раз такое правило то ладно, но хотелось что-то более явное, типа:
let mut m = v.get_mut();
или
let mut m = mut!(v);

забавно, что еще в примере автор возвращает значение () из main, забыв точку с запятой
124 2807541
>>07538

>новая переменная не поменялась бы


... относительно примера выше
125 2807542
>>07538

>новая переменная не поменялась бы


Хотя, если подходить строго, новая переменная была бы новой копией, а вот старая осталась бы на месте.
Вообще не силён в объяснении теории, всё время криво выходит.
126 2807547
>>07538
Мне кажется это странным, потому что изменение сложного типа может порождать сайдэффекты. И допустим ты создал иммутабильный экземпляр такого типа, поработал с ним, передал в функцию и забыл про него. А функция в аргументах изменил его мутабельность и начала менять. И тут неожиданно какие-то сторонние вещи могут начать происходить.
127 2807559
>>07547
В расте из-за владения и вышеупомянутого move это невозможно. Если ты передал переменную, то она уходит в функцию и больше не доступна за её пределами.
128 2807561
>>07547
Ты путаешь передачу по ссылке и передачу владения. Ну типа ты владение передал и больше ты уже не увидишь (если не возвращает).
129 2807570
>>07559
>>07561
Сначала начал писать длинный пост про то что ожидаю поведения const из плюсов и даже набросал пример, но пока писал его — понял, что действительно жду поведения ссылки на константу, а это совсем другое. Главное, в плюсах-то это тоже уже не новая концепция, это я отстал со своими знаниями древнего стандарта. Надо уложить в голове. Интересно, что получается в расте нет настоящих констант?
130 2807577
>>07570
Ещё с первого поста заметно, что ты раст пытаешься натянуть на привычные тебе парадигмы из других языков.

>в расте нет настоящих констант


Есть, объявляются единожды во время компиляции и не меняются. Ключевое слово, как ни странно, const.
https://doc.rust-lang.org/std/keyword.const.html
image159 Кб, 822x1585
131 2807582
>>07577

>Есть, объявляются единожды во время компиляции и не меняются.


Вот именно, во время компиляции. Это не совсем то, что есть в плюсах. В расте это скорее что-то вроде именованного литерала, хотя наверное так неграмотно называть.
132 2807590
>>07582

>пикрил


const fn build_foo не пробовал? Как раз для таких извращенцев, которым непременно надо константу функцией инициализировать.

>что есть в плюсах


Нахуя ты учишь этот новый для себя язык, если хочешь ещё одни плюсы? Пиши на плюсах. В расте ты просто по-другому пишешь и не нуждаешься в том, что было в плюсах. Либо без конца воюешь с компилятором и жалуешься в этом треде о том, что в язык не завезли %фича нейм% из %язык нейм%, без которой невозможно писать программы.
133 2807597
>>07590
const fn и fn это разные вещи. На пике утрированный пример, максимально похожий для обоих языков. Хотел бы более ярко иллюстрации для раста — написал бы что-то вроде const PTR: Box<i32> = Box::new(42); Стандартную библиотеку я поменять не могу, как понимаешь.

По поводу остального — я нахожу раст максимально похожим на современные плюсы. Будто бы язык взяли и сделали с нуля, выкинув все десятилетия ненужной обратной совместимости. Поэтому невольно сравниваю. И вроде бы я ни на что не жаловался, просто писал свои субъективные ощущения, а ты их как будто личный наезд воспринял.
134 2807598
PS Я не тот толстяк с перегрузками.
135 2807599
>>07547

>сложного типа может порождать сайдэффекты


Не может

>И допустим ты создал иммутабильный экземпляр такого типа


Создал

>передал в функцию и забыл про него


>А функция в аргументах изменил его мутабельность и начала менять.


Передал и забыл, дальше этот экземпляр полностью перешел во владение функции и ты не можешь его использовать. Если хочешь передать ссылку на него, то она будет иммутабельной. Если тебе нужно передать по ссылке и изменять, то тебе нужно передать мутабельную ссылку &mut, но чтобы её передать нужно сделать переменную мутабельной при объявлении.

Надеюсь ты реально пытаешься разобраться, а не тот шиз с перегрузками
136 2807601
>>07598
А ну тогда ладно))
137 2807619
>>07590

>написал бы что-то вроде const PTR: Box<i32> = Box::new(42);


И не скомпилировал бы, потому что это бред какой-то, константа времени компиляции в Box. То, что ты пытаешься сделать - это обычный let без mut. Переменная получает значение 1 раз на этапе выполнения и больше его не меняет. Если не будешь использовать mut, как в примере выше >>07456 , то ты его никак не поменяешь, сколько ты там не переприсваивай.
138 2807621
>>07590
Алсо, если тебе нужна прямая аналогия с плюсами, то:
"int a = 42;" превращается в "let mut a = 42;", а "const int a = 42;" превращается в "let a = 42;". В расте объявление по умолчанию "const" (в плюсовом смысле), если не указано обратное.
139 2807625
>>07599

>Не может


У меня в голове что-то такое крутилось, когда я про сайдэффекты писал:
Представь, что есть некоторая структура, которая содержит какой-нибудь указатель на определённый адрес. Этот адрес замаплен на регистр какой-нибудь железяки, а сама структура предназначена для взаимодействия с этой железякой. Для неё определены методы, например, поморгать лампочкой, которые для своей работы используют тот самый указатель. Т.е. чтобы включить лампочку по адресу в указателе пишется одно число, а чтобы выключить другое.
И вот мы создаём иммутабельный экземпляр такой структуры, заполняем корректно все поля для гарантированный работоспособности и передаём её в какую-то функцию в полной уверенности, что всё будет работать как надо. А эта функция приняла объект как мутабельный и по ошибке поменяла тот самый указатель. И теперь все методы, которые вызываются у него в лучшем случае не просто работают, в худшем портят где-то память.
И получается, что с точки зрения языка и компилятора всё ок, а вот с точки зрения программиста, который не ожидал изменений переданного объекта - вообще не ок.

Сорян за такой сложный и низкоуровневый пример, но это то что близко мне. Я поленился писать код для иллюстрации, возможно и зря, раст имеет удивительное свойство надавать по рукам даже в самых очевидных моментах. Так что может подобной ситуации в расте не может существовать просто потому что. Либо есть какие-то более правильные идиоматически способы запретить изменение передаваемых значений.

Если что в плюсах простой const тоже в такой ситуации не поможет конечно. Но его хотя бы отменить в середине функции нельзя.
140 2807630
>>07625
Опять какой-то абстрактный пример ради примера, где непонятно, что ты хочешь сделать (понятно, что переписать буквально слово в слово код C++ и повоевать с компилятором и задаться вечным вопросом "почему так").
Что мешает не срать в иммутабельную структуру? Знаю-знаю, человеческий фактор.
Что мешает передавать не структуру, а read-only ссылку (&your_struct), если твоя функция ничего не меняет по определению, а только читает? Методу "поморгать лампочкой" при твоём подходе, как я понял, тоже не надо ничего писать в саму структуру, достаточно только прочитать адрес и работать с ним как с "сырым" указателем.
141 2807641
>>07619

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


Я об этом и говорю, что const в расте нифига не замена const в плюсах. Они разные.
>>07621
Я с этого и начал в >>07456, потому что именно так и считал. Но в расте не просто "const" по умолчанию для переменных, а ещё и перемещение по умолчанию вместо копирования или передачи по указателю/ссылке. Это сбивает с толку, и не только меня (>>07526 >>07539). Типа, в первом примере ожидаешь, что либо дропнутся все значения из вектора либо код не скомпилируется.
>>07630
Не цепляйся к примерам. Это не какой-то случай, который я хочу переписать, просто первое что пришло в голову, когда я стал думать, а чем такое изменение мутабельности может быть плохо. В функцию действительно можно ссылку передавать (правда вдруг я владение хочу в другой поток передать?). Метод "поморгать лампочкой" ничего во внутренней структуре не меняет (ну а вдруг мы хотим там же ещё подсчитывать сколько раз поморгали?).

Короче тут можно много херни напридумывать. Я в целом для себя разобрался, спасибо вот за этот пост >>07561. Для других ананасов хочу ещё добавить, что раст судя по всему под капотом при перемещении копирует память, но для оригинала уже не вызывает деструкторов при выходе из скопа. Т.е. по факту создаётся новая мутабельная переменная. При этом копирования самого по себе может и не быть за счёт оптимизаций. Возможно так легче для осознания.
https://www.tangramvision.com/blog/c-rust-interior-mutability-moving-and-ownership#rust
142 2807647
>>07641

>мы хотим там же ещё подсчитывать сколько раз поморгали


Если ты хочешь это записывать в структуру, тогда ты не сможешь таким образом использовать иммутабельный экземпляр, только и всего. Насчёт cpp не уверен, можно ли для const экземпляра структуры вызывать модифицирующие методы, давненько с ним дело не имел, но что-то мне подсказывает, что это неправильно уже на уровне самой идеи. В расте за такое получишь очередную закономерную битву с компилятором. За это мы его и любим, в отличие от cpp не даёт просто взять и выстрелить себе в ногу на ровном месте, для этого ещё надо постараться обойти ограничения.
143 2807698
>>07641

> Для других ананасов хочу ещё добавить, что раст судя по всему под капотом при перемещении копирует память


Если ты про let mut m = v; то думаю раст там ничего не делает, скорее всего просто меняет флаг "иммутабельности" во время компиляции и все.
Тут просто создается еще одно ощущение, это наличие иммутабельных типов в некоторых языках, которые можно конвертить из иммутабельного в мутабельное и обратно, но это как раз не то, тут не целый тип (вектор он один), а какой-то статус идентификатора во время компиляции (как я понимаю).

Возможно я не правильно понимаю, пускай джедаи поправят.
144 2807727
>>07625

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


Представил

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


Допустим

>Для неё определены методы, например, поморгать лампочкой, которые для своей работы используют тот самый указатель. Т.е. чтобы включить лампочку по адресу в указателе пишется одно число, а чтобы выключить другое.


Если я правильно понял то метод изменяет поле структуры

>. А эта функция приняла объект как мутабельный и по ошибке поменяла тот самый указатель.


> который не ожидал изменений переданного объекта


Как это ты не ожидал? Ты же в сигнатуре должен был mut написать и если дальше по коду передаешь везде должен написать mut. Собственно о чем я выше писал. Дальше метод в структуре меняющий его поля должен иметь мутабельный аргумент self и чтобы можно было воспользоваться этим методом извне у тебя должна быть мутабельная ссылка на структуру.
То есть для "неожиданного" эффекта тебе нужно руками везде указать mut

>Я поленился писать код для иллюстрации, возможно и зря, раст имеет удивительное свойство надавать по рукам даже в самых очевидных моментах.


Лучше бы попробовал написать то что ты хочешь
image358 Кб, 2956x1152
145 2807748
>>07698

>то думаю раст там ничего не делает, скорее всего просто меняет флаг "иммутабельности" во время компиляции и все


Неа, нихрена, я проверил: https://godbolt.org/z/8rTnG4vYE

Простая функция, заводит иммутабельный вектор из одного числа, потом делает его мутабельным, ну и снова иммутабельным для наглядности, больше ничего не происходит. Видим, что на стеке сразу выделяется 72 байта. Сначала аллоцируется вектор, а потом структура его описывающая дважды копируется на стеке. Собственно сам вектор — это три числа (указатель на буфер в куче, вместимость и длина), в сумме 24 байта, каждое копирование видно в коде ассемблера, 24 * 3 = 72, других переменных на стеке мы не заводили, так что всё сходится.

Уверен, что лишние копировании при оптимизации будут убраны, но сам мув как видно никакой особой магии не производит, это просто тупое копирование.

>>07727
Чел, не души. Мой посыл был не в том, что такое поведение неправильное, а в том что лично я его не ожидаю.
146 2807753
>>07748

>а в том что лично я его не ожидаю.


Как ты можешь не ожидать если тебе для такого поведения нужно писать mut везде?
147 2807843
>>07748

>Неа, нихрена, я проверил:


Любопытно. В какой-то момент это логично и в какой-то не очевидно.
Не силен в этом низкоуровневом, но видимо так нужно. Хороший вопрос на плохое собеседование.
148 2808560
>>07748
Под первым же флагом оптимизации мув должен убраться, но да, по дефолту, без оптимизаций, или если оптимизация не может произойти по какой-то причине обычно что-то вроде динамической фигни &<dyn Fn(Vec<()>)>, когда инлайн не происходит , то мув в расте это memcpy
image394 Кб, 2956x1270
149 2808655
>>08560
С оптимизациями тяжело придумать простой и наглядный пример, потому что современные компиляторы явно умнее простых работяг.

Тем не менее, вот посмотри на функцию f2() скомпилированную с -O3 https://godbolt.org/z/x4e1vPof8. Она берёт во владение (как это по русски адекватно говорить?) вектор и тут же отдаёт его, т.е. происходит двойная передача владения при её вызове. Компилятор скомпилировал её следующим образом:

1. Вместо одного аргумента ожидается два адреса в регистрах RDI и RSI для возвращаемого и принимаемых значений.
2. Адрес возврата тут же помещается в RAX, строка 89.Если честно, этот момент не понял, почему нельзя было просто входной аргумент передать в RDI (первый аргумент на x64 линуксе согласно fastcall соглашению), а вывод сразу в RAX херачить. Но я крайне редко смотрю код x64 бинарников, наверное что-то упускаю.
3. Копируется 64-битное значение по адресу RSI+16 в RDI+16 через RCX, строки 90-91.
3. Копируется 128-битное значение по адресу RSI в RDI через XMM0, строки 92-93

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

Конечно, если мы попытаемся использовать эту функцию, компилятор её тут же заинлайнит до полного отсутствия. Он даже создание вектора заинлайнил и просто сразу же записал внутреннюю структуру вектора на стеке единственный раз, строки 105-107, перед вызовом принта.

Но все эти оптимизации к расту на самом деле никакого отношения не имеют. Это всё LLVM делает. По хорошему надо смотреть промежуточный код, но я не имею. Да и их там раст вроде генерирует несколько уровней.
150 2808692
Как называется Раст для обучения детей программированию?
Педораст.
151 2808926
>>08655
Я не силен в ассемблере, но разве не нужно перемещать данные из стека в стек при вызове функции?
152 2809156
>>08926
Да я тоже его специально не изучал, поэтому запросто могу ошибаться в чём-то. Просто иногда приходилось читать, чтобы разобраться в некоторых особо неприятных проблемах.

В целом, соглашения о передачи параметров при вызове функций зависят от целевой платформы. На современных x86-64 и на 32-битных ARMах для аргументов, которые влазят в слово, предусмотрено несколько регистров. Всё что не влазит или если аргументов больше, передаётся через стек.

Через стек все аргументы обычно передаются на i386, но есть специальные соглашения (fastcall), которые всё же предусматривают пару регистров для передачи аргументов.

Чтобы данный конкретный случай разобрать надо плотненько погружаться в документацию ABI для линукса https://raw.githubusercontent.com/wiki/hjl-tools/x86-psABI/x86-64-psABI-1.0.pdf (п3.2.3)
Структура вектора определенно не влазит в слово, поэтому казалось бы должна передаваться через стек. Но там есть такое уточнение:

>If a C++ object is non-trivial for the purpose of calls, as specified in the C++ ABI, it is passed by invisible reference (the object is replaced in the parameter list by a pointer that has class INTEGER).


Что такое non-trivial for the purpose of calls я хз, но видимо это относится и к вектору в расте. Поэтому он передаётся в функцию по указателю. Т.е. при передаче владения значением вектора в функцию копирования данных не произошло. Хотя если оптимизацию отключить, он всё-таки через стек будет значения гонять. Так что хз, тут надо ещё глубже погружаться, чтобы разобраться.
Возврат структур по значению описывается так:

>If the type has class MEMORY, then the caller provides space for the return value and passes the address of this storage in %rdi as if it were the first argument to the function. In effect, this address becomes a “hidden” first argument. <...>


>On return %rax will contain the address that has been passed in by thecaller in %rdi.


Как раз то, чего я не понял в прошлый раз. Оказывается вызывающая функция должна подготовить место для возвращаемого значения и передать указатель на него в скрытом первом аргументе RDI. Вызываемая функция должна вернуть этот адрес в RAX. Что мы и наблюдаем в ассемблерном листинге. Ну и так же видим копирование данных по адресам из аргументов (из RSI в RDI). Т.е. при возврате владения значением вектора из копировани произошло.

На самом деле это всё лютые технические детали, не особо важные. Вывод, который я сделал для себя: раст, как язык, всегда копирует значения при передаче владения, но LLVM, как бэкенд, очень круто может оптимизировать и убрать лишнее.
152 2809156
>>08926
Да я тоже его специально не изучал, поэтому запросто могу ошибаться в чём-то. Просто иногда приходилось читать, чтобы разобраться в некоторых особо неприятных проблемах.

В целом, соглашения о передачи параметров при вызове функций зависят от целевой платформы. На современных x86-64 и на 32-битных ARMах для аргументов, которые влазят в слово, предусмотрено несколько регистров. Всё что не влазит или если аргументов больше, передаётся через стек.

Через стек все аргументы обычно передаются на i386, но есть специальные соглашения (fastcall), которые всё же предусматривают пару регистров для передачи аргументов.

Чтобы данный конкретный случай разобрать надо плотненько погружаться в документацию ABI для линукса https://raw.githubusercontent.com/wiki/hjl-tools/x86-psABI/x86-64-psABI-1.0.pdf (п3.2.3)
Структура вектора определенно не влазит в слово, поэтому казалось бы должна передаваться через стек. Но там есть такое уточнение:

>If a C++ object is non-trivial for the purpose of calls, as specified in the C++ ABI, it is passed by invisible reference (the object is replaced in the parameter list by a pointer that has class INTEGER).


Что такое non-trivial for the purpose of calls я хз, но видимо это относится и к вектору в расте. Поэтому он передаётся в функцию по указателю. Т.е. при передаче владения значением вектора в функцию копирования данных не произошло. Хотя если оптимизацию отключить, он всё-таки через стек будет значения гонять. Так что хз, тут надо ещё глубже погружаться, чтобы разобраться.
Возврат структур по значению описывается так:

>If the type has class MEMORY, then the caller provides space for the return value and passes the address of this storage in %rdi as if it were the first argument to the function. In effect, this address becomes a “hidden” first argument. <...>


>On return %rax will contain the address that has been passed in by thecaller in %rdi.


Как раз то, чего я не понял в прошлый раз. Оказывается вызывающая функция должна подготовить место для возвращаемого значения и передать указатель на него в скрытом первом аргументе RDI. Вызываемая функция должна вернуть этот адрес в RAX. Что мы и наблюдаем в ассемблерном листинге. Ну и так же видим копирование данных по адресам из аргументов (из RSI в RDI). Т.е. при возврате владения значением вектора из копировани произошло.

На самом деле это всё лютые технические детали, не особо важные. Вывод, который я сделал для себя: раст, как язык, всегда копирует значения при передаче владения, но LLVM, как бэкенд, очень круто может оптимизировать и убрать лишнее.
153 2809204
>>09156
Я не кодил крупного на расте, но не думаю что по работе владений и их оптимизации стоит париться, ведь оно буквально определяет место/контекст владения, а работать ты больше будешь с ссылками.

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

Мне вот больше интересует, может ли объявленное владение
в 1 функции, быть удаленно во вложенной n-функции если очевидно, что в коде это владение больше не используется (логическая утечка памяти).
154 2809606
>>09204

>быть удаленно во вложенной n-функции


Не может. borrow checker не инлайнит функции, если ты передал `qwe: &T`, в функцию, ты можешь работать только с `&T` и не можешь вызвать дроп.

А если про сам компилятор и его оптимизации, то тоже нет, потому что место дропа имеет значение, и раст даёт гарантии для этого самого места. Так что если ты выделил 100500 гигов для вектора и не дропнул его после использования, до конца функции у тебя этот вектор будет жить.
155 2809632
>>09204

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


Соглы. Как говорил Кнут: "Преждевременная оптимизация — корень всех бед". Я полез разбираться только из-за вопроса с отменой иммутабельности. Когда посмотрел как оно реализовано, все вопросы сразу отпали.

>Мне вот больше интересует, может ли объявленное владение


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


Ну drop() точно вызовется именно во вложенной n-ой функции. Т.е. например, в случае вектора, память в куче будет будет освобождена сразу же как только станет не нужной. А вот описывающая его структура будет лежать в стеке до тех пор, пока управление не вернётся к 1-ой функции. Из середины стека не выкинешь же кусочек. Поэтому, если у тебя в середине цепочки вызовов есть какой-нибудь бесконечный цикл, из которого выходишь только в конце работы приложения, тогда упс, немного стека зарезервированного до его начала будет висеть мёртвым грузом. Можно рассматривать это как своего рода глобальные переменные, только на стеке.
156 2809806
>>09606

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


Печалька, есть подозрение, что из-за владения, программисты будут раздувать код такими около-вечно живущими объектами.
image.png265 Кб, 1200x803
157 2811715
Есть такой феномен, где системные кодеры с большим опытом (это важно) отвергают раст, например автор зига, еще до зига написал, что надо быть безумцем чтобы на этом писать, ну и некоторые другие люди с большим багажом знаний в солидных компаниях хейтили раст, вероятно за какую-то сложность. Понятно что тут речь не про очередных "не осилили" и кривую обучения, а реально опытные люди видят в расте некую системную сложность.

У меня возник вопрос к опытным кодерам - о какой "сложности" они говорят? Может быть код становится сложнее поддерживать или просто у них синдром утёнка, или какие еще проблемы есть в сопровождение раста при длительной разработке?

Раст годнота, это не хейт, просто дискуссионный технический вопрос на тему "почему" и у кого какое мнение по этом поводу (если есть).
158 2811782
РЯЯЯЯ, НА СИШКЕ/ПЛЮСАХ ПРИХОДИТСЯ ЕБАТЬСЯ С УКАЗАТЕЛЯМИ И КУЧЕЙ СИМВОЛОВ
@
ТЕМ ВРЕМЕНЕМ РАСТ
https://github.com/clap-rs/clap/blob/df337de701ae1eb65175f6fbe71a7ff2686474f0/clap_builder/src/builder/value_parser.rs#L2559
159 2811796
>>11715

>У меня возник вопрос к опытным кодерам - о какой "сложности" они говорят?


Чтобы писать на нем нужно понять некоторые концепции типа владения и лайфтаймов, плюс компилятор доебывается до каждых мелочей. В первые несколько дней я испытавал сложности с этим, но вцелом они преувеличены.

> или какие еще проблемы есть в сопровождение раста при длительной разработке?


Тут как в гошке примерно те же проблемы при сопровождении. Главная из них что здесь отсутствуют фреймворки в которых все прибито гвоздями по полочкам из-за этого здесь каждый волен делать всё что хочет из-за чего могут возникнуть сложности. Мы в команде пишем примерно одинаково, но если придет другой человек со своими взглядами на жизнь то его код будет тяжело читать.
В целом работа с растом ничем не отличается от остальных языков.
160 2811816
>>11782
что там происходит?
161 2811874
>>11715

>о какой "сложности" они говорят


Опытным людям, возможно, сложнее переучиваться, чем новичкам учиться с нуля. Сидишь в своём болоте лет 10-20, и не охота уже куда-то переползать.
162 2811894
>>11796
>>11874
Два чая

Тут показали интересную статью, как раз по теме сложности.
https://hirrolot.github.io/posts/rust-is-hard-or-the-misery-of-mainstream-programming.html
163 2812053
>>11782
С++ в ядре? Нет. Раст в ядре? Да.
Шах и мат.
164 2812096
>>12053
Сегодня по-исследовал на тему сложности раста. Вероятно раст имеет проблемы в дизайне, когда люди упираются в проблему лайв-таймов и где приходиться компенсировать подобием rc или refcell (или unsafe). А с асинками там что-то вообще звездец какой-то, я даже не вникал.

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

Сделал для себя выводы, что раст реально имеет проблемы в дизайне, где с одной стороны он красив для простых вещей и в тоже время с другой стороны покрыт костылями. Вероятно это реальная причина, что раст развивается только на каких-то агрессивных фанатиках, потому как для практичного человека все это адок.
го тоже имеет плохойй дизайн и тонну костылей, но он хотя бы прост как палка
165 2812120
Посоны почему когда пишут вывод чего либо то всегда пишут ("Залупа коня - это {}", переменная_нейм)?
Можно ведь писать ("Залупа коня - это {переменная_нейм}")
В чем будет разница? Чому пишут именно первый вариант?
166 2812131
>>12096

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


В сях тоже можно включить -Wall -Wextra -Werror -fsanitize=address,undefined и обмазать это всё сверху каким-нибудь статическим анализатором. Программирование будет таким же быстрым и комфортным, как на расте.
Стикер63 Кб, 500x499
167 2812205
>>12096

>фанатиках


Серега, опять вылез из-под шконки? У тебя начинается стадия торга?
168 2812214
>>12120

>В чем будет разница?


В версиях раста

>Чому пишут именно первый вариант?


Для обратной совместимости

> ("Залупа коня - это {}", переменная_нейм)


Это старый синтаксис, который работает везде

> ("Залупа коня - это {переменная_нейм}")


Завезли где-то год назад
169 2812453
>>12205
Ну практичными их точно не назовешь.
Я еще понимаю тех, кто пытается самоутвердиться за счет раста, мол лайтовая версия для тех кто хаскель не осилил. Но вот я бы не назвал раст сложным, как раз эти костыли (rc, refcell, итд) и решают все эти дыры дизайна, пускай не красиво, но решают. То есть, это не сложно в когнитивном плане, это просто неудобно. Там на полных щах на этом пишут бэкенд, лол
170 2812597
>>12053

>С++ в ядре? Нет. Раст в ядре? Да.


>Шах и мат.


Охуенная логика.
171 2812607
>>12096

> А с асинками там что-то вообще звездец какой-то


Учу Раст, дошел до этих Токио(асинк библиотека) и уже думаю нахуя это все учить было если там все по другому и свои правила, растеры ебанутые что согласны вот на этом вот программировать, такой кал. Решил завести телеграм бота, на всех языках в 3 действия делается, в расте блять то библиотеки нет, она 4сть в зависимости но не ставится автоматом, то версия не та, токио там уже 1.3 версия а боту нужно 0.2, то фьюч не подключил, ага я должен угадать что там при установке всей библиотеки нужно отдельно ещё подключать
172 2813030
173 2813158
>>13030
Опенсорс хули. Думаю что serde либо форкнут, либо выкинут на мороз того кто придумал бинарники и за либу возьмется команда из крупной компании, либо еще чего. Из red hat уже интерес проявляют
Хз где там проблемы при компиляции, у нас разные проекты с разными версиями serde нигде проблем с ним не было
Стикер63 Кб, 500x500
174 2813162
>>12453
>>12607
Смотрю ты уже начал пробовать писать что-то, молодец, продолжай
175 2813281
Я так посмотрел по открытым источникам, и понял, что с растом есть проблемы. Количество ишшуев от раста сразу увеличивается в 5 раз.
1692284671568.mp4735 Кб, mp4,
1082x720, 0:07
176 2813310
177 2813366
>>13281
Классное исследование. Давай ещё проблемных языков накидаю.
image34 Кб, 494x375
178 2813367
А писать надо на F#. Лучший язык, атвичаю.
179 2813457
>>13158
https://github.com/serde-rs/serde/releases/tag/v1.0.184
Драма "всё". Вопрос поднимут после того, как запилят воспроизводимые сборки.
180 2813516
>>13281
По цифрам в 11 раз
С++ ~2 раза
Жаба ~2 раза
181 2813519
>>13367
Это логично, фшарп лучший и написан поверх еще лучшего сишарп/дотнета.
182 2813528
>>13457
Язык, где даже хелловорд состоит из кодгена, неожиданно уперся в критический кодген.

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

Эксперимент с растом стоило бы закрыть сразу как только утонули в кодгене или когда уперлись в асинки, а по честному, когда уперлись в лайфтами и костыли, которые решают их.
183 2813547
>>13528
А как там у вас в лучшем C# под капотом устроена джсономешалка? Или ты туда не заглядывал?
184 2813749
>>13310
>>13366
>>13367
>>13516

вообще надо смотреть не по репозиторий/ишшу, а пулл реквест/ишшу, потому что это будет отображать как часто разработчики (не)фиксят баги вместо того, чтобы добавлять новые фичи. Поэтому вся статистика переворачивается с ног на голову, и тут уже есть совпадения с реальностью, все репы с жавой являются легаси, где только фиксят баги. А на кресты всем посрать
185 2813761
>>13749
Да блять, на это вообще бессмысленно смотреть, потому что гитхаб какую-то невалидную херню показывает при таких запросах. Или ты серьёзно думаешь, что в проектах на F# ничего не зарепорчено? Я уже молчу, что это отношение скорее показывает популярность языка в опенсорсе, чем какие-то проблемы в его дизайне.
image.png54 Кб, 1448x284
186 2813783
>>13761
таки зарепорчено, но фронтендеры в реакте что-то насрали и счётчик не считает
187 2813887
>>13783

>но фронтендеры в реакте что-то насрали и счётчик не считает


За это это помогает шизу говорить что его до диез и фа диез божественные как песня на фоне других яыков.
Интересно расскажет про то как у них в шарпе сделаны джсономешалки или нет
188 2813895
>>13749
Ппц ты технический фантазер
3 ляма раста - это модно развивающий язык
3 ляма у крестов - на кресты всем насрать
11 лямов у жабы - очевидно легаси.

Откуда вы такие гении лезете?
189 2813916
>>13887

>у них в шарпе сделаны джсономешалки или нет


Причем тут шарп, у тебя в расте говно, прям обмазано говном, а он кричит, что там у соседей.

У шарпов есть рефлексия, а код ген для АОТ не приводит к звездецу, так как язык не игрушечный.
190 2813976
Зачем учить раст, если ты не знаешь C/C++ ?
191 2813995
>>13895
а ты попробовал соотнести эти данные с количеством репозиториев?
192 2814001
>>13976
а какая разница, знаешь ты си кресты или нет, если хочешь можешь ассемблер учить
193 2814003
>>14001
Работу то искать нужно, кушать хочется
194 2814031
>>13916

>рефлексия


То есть что-то там в рантайме какой-то интерпритатор чудо виртуальная машина делает под каптом.

>код ген для АОТ


И чем это лучше кодогенерации при компиляции? Те же яйца только в рантайме

> а он кричит, что там у соседей


Это ты свое говно в тред приносишь, вот я и решил поузнавать как "правильно"
195 2814033
>>14003
ну тогда у тебя нет времени чтобы учить что-то сложнее чем джаваскрипт
196 2814042
>>14033
Да я уже работаю. Интересно, как вы поживаете
image.png11 Кб, 338x149
197 2814091
>>14031
Одаренный, вместо обсуждения проблем кривого раста, начал сравнивать его с языком у которого виртуальная машина.
Ты не тот гений с лора, который сравнивает js с растом и говорит, что они очень похожи?
198 2814105
>>14091

>кривого раста


Проблема в библиотеке, это проблема в языке?

Ты же в тред свой C# принес лол, я хотел узнать как там сделано не в кривом языке. И как оказалось там также кодогенерация, только в рантайме. То есть C# тоже кривой, получается все языки так или иначе кривые? Или тут как с гц пару тредов назад будешь жопой вертеть то считается, а это не считается?
Вытер хуй о воротник твоей рубашки

>с лора


Croco, ты?
199 2814127
>>14105

>Проблема в библиотеке, это проблема в языке?


Да, именно это и сказал, что проблема избыточного кодгена. То есть, язык настолько ущербен, что продуктовая задача превратилась в адок.
вот (откуда ты тут шарп увидел я хз):
>>13528

Травмированный шарпом, лол
200 2814142
>>14127
Вот это >>13519

>Это логично, фшарп лучший и написан поверх еще лучшего сишарп/дотнета.


Других шизиков кроме тебя тут нет

А всё таки Croco это ты?
201 2814144
>>14142
Лол, это ответ на ишью картинки.
Да ты способный.
202 2814151
>>14142

>Других шизиков кроме тебя тут нет


>А всё таки Croco это ты?


Как растапёру неприятно, готов всякую херню придумывать, вместо того чтобы обсудить избыточный макросный кодген.
203 2814161
>>14144
Но ты же каждый тред упоминаешь что C# лучший, а тут стесняешься почему-то
204 2814189
>>14151

> кодген.


Потому что он везде есть, где-то в рантайме, где-то в компайлтайме, вот я и привел пример с твоим любимым C# где в рантайме при помощи рефлексии тоже самое делается. Но ты либо не понял о чем речь, либо всё таки понял и возникло желание все отрицать и включать дурочку.
Ты меня теперь запутал и я пытаюсь разобраться:
Все языки с кодогенерацией плохие?
Кодогенерация в компайлтайме плохая?
Почему кодогенерация в компайлтайме хуже кодогенерации в рантайме?
Столько вопросов, но мало ответов.
Всё таки Croco на лоре это точно не ты?
205 2814366
>>14189
Думаешь лучше на шарп перекатываться? раз у тебя обострение.
206 2814374
А можете объяснить, я захожу на Хабр Карьеру, вбиваю в навыки Rust и вижу 1 вакансию. Ок, на hh.ru делаю то же самое, 70 штук (вау, другое дело, казалось бы), но ни в одном заголовке вакансий нет слова Rust. Какие планы на жизнь, ребята?
image.png10 Кб, 214x228
207 2814377
>>14374
эту херню дёргал?
208 2814378
>>14374

>Какие планы на жизнь, ребята?


Хлебать борщи, сидеть на двачах, сраться на форумах для даунов, умереть от инфаркта в 35 лет
209 2814397
>>14366
Опять слился лол, таки не пояснил в чем разница
210 2814656
>>14397
Ему говорят в расте серьезные проблемы в дизайне, из-за кодгена макросов, примитивная продуктовая задача превратилась в звездец.
Тот сливает тему на шарп, только о нем и говорит, хотя о нем в ветке обсуждения вообще не упоминали, но слился почему-то я.

Я сначала подумал, что ты тот местный тролль Серега, который просто пытается увести тему с раста на другой язык. Но походу ты реально шизик, ты даже не понял, ты его с воздуха взял. И ладно бы угадал, но на шарпе я в жизни не писал (ну может пару окон в юности, для перделок своих).
211 2814756
Для зига завели раздел
https://habr.com/ru/hubs/zig/articles/
212 2814762
213 2814771
>>14762
Будут актуальны всегда
214 2814865
>>14762

>Когда мы вызываем malloc, мы просто надеемся, что для неё будет достаточно пространства в стеке, и почти никогда этого не проверяем.


Дальше стоит читать?
215 2814954
>>14656

>проблемы в дизайне


В дизайне или библиотеке?

> из-за кодгена макросов


Из-за кодогена в рантайме который в других языках такое не может быть?

>И ладно бы угадал


Ты просто похож на одного шарпошизика, он примерно также гавкает, а потом как до дела доходит жопой виляет
image.png344 Кб, 430x600
216 2815121
>>14954

>В дизайне или библиотеке?


Три раза написал - в дизайне языка. У вас даже хеллоуворд из кодгена.

>Из-за кодогена в рантайме который в других языках такое не может быть?


Как видишь, не встречалось. Проблема то не в самом кодгене, а в его количестве.

>Ты просто похож


Может все-таки таблетки примешь?
217 2815258
>>15121
Говорить говно потому что говно и в одной из сложных библиотек произошёл косяк значит язык говно, это пиздец как аргументированно прям как у того столяровского шиза, который не один тред набрасывал и в этом тоже отписался примерно в одно время с тобой вот я тебя и за него принял. Откуда мне знать что ты не тот душевнобольной, а просто похож на него.
218 2815451
Что думаете за обнову?
https://www.youtube.com/watch?v=dAT0kz0amgU
219 2815733
Аноны, помогите, пытаюсь подключить diesel orm, при подключении(use diesel::prelude::*;) выдает ошибку - fatal error LNK1181: не удается открыть входной файл "libpq.lib"
Что делать? Переустанавливал Rust, Postgres, пробовал более старую версию diesel, устанавливал переменную PG_LIB_DIR, ничего не помогает.
16884497545650.jpg92 Кб, 567x567
220 2815760
Что то тяжеловато с сишным при работать
Ручки так и тянутся по старинке все делать, а борроу чекер по рукам бьёт

Насколько хуевая идея пользоваться сейфовыми враперами для всяких вулканов и опенгл? Сильно ли по производительности бьёт и не добавляет ли слишком магических штук как например плюсовый враппер для плюсов
От простых и ансейфовых у меня ручки чешутся обратно на си перепрыгнуть
221 2815762
>>15760

> сишным при


Сишным апи

> как например плюсовый враппер для плюсов


Плюсовый враппер для вулкана
222 2815767
Анончики, а есть REPL для раста с интеллисенсом? Лучшее что нашёл so far это https://github.com/evcxr/evcxr но интеллисенса очень не хватает. Люблю REPL, во всех языках с ним играюсь если надо по фасту проверить как та или иная штуковина
223 2815768
>>15767

>как та или иная штуковина


как та или иная штуковина работает
224 2815770
>>00762 (OP)
Я так понял, если выбирать раст, то ты сильно ограничен, не можешь использовать OpenGL, SDL, Qt и многое другое.
От плюсов так просто не уйдешь.
225 2815772
>>15770

> не можешь использовать OpenGL, SDL


?)
226 2815774
>>15770
Все что написано на си, можно использовать в расте
227 2815778
228 2815779
>>15778
OpenGL и SDL написаны на си
229 2815790
>>15779
A qt нет.
230 2815792
>>15790
Да, с кути придется ебаться
Но все ещё не невозможно, на другие языки биндинги же есть
Просто из за плюсового abi придется трудновато и никому особо не нужно
231 2815798
>>15792

>и никому особо не нужно


Никому не нужен qt?
232 2815802
>>15798
С пробуждением

хотя нашел пару либ на расте для работы с qt, видимо кому то все таки нужно
233 2815833
>>15802
Ты консольный шиз?
234 2815839
>>15792

>Да, с кути придется ебаться



Биндинг к QML давно был .
235 2815842
>>15798
Кьют это фреймфорк для разработки ПО на С++. Он нужен разработчикам на C++ в первую очередь как некий способ организовать приложение с графическим интерфейсом на С++. Ну и набор библиотек с часто используемым функционалом для таких библиотек. Очевидно, что концепции применимые для С++ никогда не лягут полностью на раст, поэтому полноценно этот фреймворк никогда не получится (наверное — я с ним не знаком). Не знаю есть ли биндинги под раст, но даже если их нет, то доёбываться несколько странно. Так же можно сказать, а вот в расте нет React/AWT/Cocoa/MFC какого-нибудь. Это другая экосистема.
236 2815843
*для таких приложений
237 2815856
Добиваю растбук, возник один вопрос. В 17 главе на примере FSM показываются возможности раста в области ООП: https://doc.rust-lang.org/book/ch17-03-oo-design-patterns.html Пример описывает блог-пост, который имеет несколько состояний (черновик, ревью, публикация) и функции для перехода между ними. Приведено две реализации: инкапсуляция с помощью trait object и на типах в процессе компиляции. Авторы предлагают такое задание для самостоятельной работы:

>Require two calls to approve before the state can be changed to Published.



Для реализации с помощью trait object решение довольно очевидное: добавляем счётчик в структуру состояния PendingReview, который увеличивается в методе approve(). В этом же методе делаем проверку на равенство счётчика двойке и возвращаем либо self либо новый экземпляр стейта Published.

А вот для реализации на типах что-то ничего не могу сообразить изящнее, чем завести вторую структуру PendingReviewPost2, которую будет возвращать approve() из PendingReviewPost. Счётчик применить тут не получится, по понятной причине approve() должен возвращать экземпляр конкретного типа. Со вторым типом всё будет работать, но блин... а если мы не 2 аппрува хотим, а 10?

Короче как (бы) вы сделали?
238 2815906
>>15833
Ты хоть представляешь из чего сейчас десктоп состоит?
239 2815930
>>15856
Не всем удалось так далеко дочитать.
240 2815931
>>15842

> доёбываться несколько странно.


Да, странно, учитывая, что qt единственная возможность сделать гуи.
241 2815942
>>15931
Avalonia UI, Compose Multiplatform (desktop)
242 2815988
>>15931
Спорное утверждение.
16876337200950.jpg30 Кб, 320x320
243 2815999
244 2816002
>>15931
gtk на сишке
245 2816013
>>15988
Ну есть неполноценное веб-говно, qt это единственный полноценный фреймфорк для графического интерфейса. И для раста его нет.

>There are a number of bindings available today to existing frameworks, but those looking for a mature, easy to use, and completely Rust-based solution will most likely find themselves out of luck.


https://areweguiyet.com/
246 2816038
Какие кути, какие ГТК
ДЕСКТОП - МЕРТВ
image331 Кб, 2149x957
247 2816094
>>16013
Тебе перевести эту цитату, которую ты скопировал? Там написано, что нет зрелых полностью основанных на расте фреймворков. И это прекрасная возможность для амбициозных желающих проявить себя, кстати.

Кьют к расту прямого отношения не имеет. Биндинги есть, наслаждайся.

Ладно, я что-то потерял уже нить спора.
248 2816117
>>16094

>Биндинги есть, наслаждайся


Огрызки, которые никогда не будут доделанны?

>>16094

>И это прекрасная возможность для амбициозных желающих проявить себя, кстати.


Qt это продукт корпорации с миллионами долларов.
249 2816126
>>16117
Раст тоже, лол, и что?

Не пойму твою мысль. Ты предлагаешь переписать кьют на расте? Или ты утверждаешь, что раст не пригоден для разработки десктопных приложений, потому что кьют не написан на расте? О чём речь? Сформулируй, пожалуйста.
250 2816197
>>15931

>qt единственная возможность сделать гуи.


Электрон ты хотел сказать?
251 2816277
Мужыки и дамы, будьте добры поделиться, кто сейчас работает на расте как с основным языком, с какого языка свичнулись? Как вкатились в раст, сразу шли как раст разработчик? Или перекатились по ходу?
252 2816334
>>16277
Да нету работы, переключаться между домашними пет-скриптами, это не тоже самое, что свичнуться с другого языка по работе.
253 2816513
>>16277
Из тех, с кем работал и кто перекатился - все перекатились по ходу. Хотя вакухи иногда проскакивают - смотри в телеге rust_jobs_feed

В конторе по видеостримингу - делали на ноде что-то похожее на s3, только on premises и для видеоархивов. Заебались с нодой, переделали на расте. Ну и пришлось интегрироваться в прошивки некоторых камер/рекордеров/регистраторов - заебались возиться с сями, их зависимосями, типизацией и китайскими сумрачными гениями, запилили на расте. Этим занимались трое разрабов, двое теперь фулл-тайм пишут код на расте, один в основном на js/ts в ноде. У всех был опыт работы в гейдеве на плюсах. Когда переезжали на раст, я там уже давно не работал, но контакты поддерживаю, от туда и узнал.

В трейдинговой конторе была шарповая обвязка вокруг плюсового winapi/mfc клиента к брокерскому движку, я сделал grpc-обвязку на расте. Я об этой шляпе писал несколько тредов назад >>2568801 . Авторам либы вставили пистон, чтоб они переписали своё говно на Linux, и мою поделку теперь сопровождает и допиливает full time rust developer. Перекатился из шарпистов с бекграундом в плюсах.

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

В моей команде пилят вторую реинкарнацию криптобиржы, была на шарпах, и снова переписываем на шарпах. Пока думали, на чём переписывать, я предложил раст, но чот не зашло. Сделал прототип движка, который в разы обгонял шарповый прототип и по latency, и по throughput, но когда обозначили дедлайн - я сам и включил заднюю. Впятером за пол-года на незнакотом для большинства стеке такое не делается.
254 2816599
>>16513
ебешь ее?
255 2816605
>>16513
Ладно бы поднял технологию и остался у кабанчика в бизнесе, нет бегает везде и растом подсерает, потом сбегает, лол.
256 2816609
>>16513
Судя по обилию шарпа, мне думается это тот с обострением все фантазирует.
257 2816821
Можно прикрутить проге нативные апи гуи в линуксе, а на остальных виндовсам оставить консольный режим?
258 2816823
>>16513
Работаешь в HFT? Алсо, как вообще относишься к этим биржам, просто для меня, как для обывателя в целом в этой области, выглядит как что-то непонятное, которое имеет риск развалиться в короткий срок. Хотя на тех же плюсах, на которых я работают, хватает вакансий в этой области.
259 2816861
>>16821
Можно
260 2816881
>>16861
Или у линукса нет общих апи, зависит от оболочки: гном - гтк, кде - qt и тд?
261 2816895
>>16881
Нативно в линупсе это Xorg и Wayland, остальное только добавляет рюшечки.
262 2816994
>>16605
Раст это конечно хорошо, но ЗП х2 это ЗП х2

>>16609
Он тут не единственный кто на шарпах пишет

>>16823

> HFT?


И близко не HFT, скорее wannabe low latency

> как вообще относишься к этим биржам


Как к источнику денег и интересного для меня опыта, не более.
Да, многие разваливаются, но конкретно в моей конторе биржа - не основной источник профита, так что сама она не развалится, но меня могут прост выпиздить в любой момент, если решат что наигрались в биржи. Если хочешь спокойно работать - ищи проект в топ-10 брокерах или мосбирже/спббирже (тут у меня опыт только по РФ), если есть много энергии и свободного времени и нервов - крипто- или финтех- или трейдтех-стартапы. Там до CTO легко дорасти лол. А если тема трейдинга тебе не интересна - лучше не суйся, а то выгоришь.
263 2817522
Через qt можно сделать веб-приложение?
264 2817573
Это троллинг такой?
265 2817714

>Он тут не единственный кто на шарпах пишет


Нахер тогда теплое прикладное место менять на околосистемный язык? Чтобы потом в бизнес-логике бороться с ограничениями языка и колебаться между unsafe/refcell и .clone

Уж что что, а в шарпах куда больше варинтов оптимизировать код, прежде чем его выкидывать совсем.
image.png77 Кб, 466x277
266 2817806
>>17714

>На#вж#в##хевж#р товж#вжгдавж#в## тевж#пловж#в#е приклвж#адновж#в#е мевж#стовж#во менявж#ть на околосистевж#мнвж#ый язвж#в#ык? Чтобвж#ыв томвж#жпотом в бивж#зневж#с-ловж#гикевж#бовж#ровься с ограниченвж#иямвж#и язвж#ыквж#а и колебаться мевж#жду unvж#safvж#/refcvж#ell и .cvж#lonvж#е



>Увж#ж что что, а в швж#арпах кудавж#болвж#ьшвж#евж# ввж#арвж#интовж# овж#птимизироватvж#ь код, преждевж# чем еговж#выквж#иватvж#ь совсем.

image.png246 Кб, 883x704
267 2818004
>>17806
С каждым постом Сережа плохеет.
268 2819777
Кому нужна эта хуита если для всего есть C#?
image422 Кб, 1297x479
269 2819807
>>19777
Когда люди недогружены по работе, не придавлены тасочками, то у них появляется куча свободного времени и они начинают заниматься всякой хуйней.
270 2820054
>>17714

> Нахер тогда теплое прикладное место менять на околосистемный язык?


Потому что производительности тёплого прикладного места нехватает.

> Чтобы потом в бизнес-логике бороться с ограничениями языка и колебаться между unsafe/refcell и .clone


А так приходится бороться с ограничениями рантайма и колебаться между async/await и span/ref struct, между библиотечными ф-циями для строк/массивов (в т.ч. linq) и самопальными для fixed array в unsafe struct. Бизнес-логика на расте выглядит почти так же, как и в шарпе, проблемы возникают когда тащишь данные от сетевого сокета к бизнес-логике и обратно, по пути записывая что-то на диск.

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


Код моего проекта сейчас находится на таком этапе, когда большинство вариантов оптимизации на latency/throughput влияют мало, а код ухудшают сильно.
271 2820258
>>19807
Скорее начинают самоутверждаться за счет хайпа.
272 2820284
>>20054

>Потому что производительности тёплого прикладного места нехватает.


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

Если в продуктовой разработке ты борешься с языком - то нафиг такой язык, потому как сопровождать его потом будет нереально.
273 2820820
>>20284

>Если в продуктовой разработке ты борешься с языком


А зачем ты борешься с языком, вместо того чтобы писать на нем?
274 2821014
>>20284
Жаба-шарпы лихо идут нахуй по latency под нагрузкой, но в techempower не тестов latency.
275 2821125
https://www.youtube.com/watch?v=LValQ76TeWk
+та драма с moq [01:03:15]
276 2821153
>>21014
Ну не маняврируй ты как, как раз это продуктовые тесты, которые ткунили носом всех любителей тестов в вакууме и показали, что не обязательно жрать кактус, чтобы выпустить продукт. да, дорогой анальник, не забывай что ты делаешь продукты, а не картины рисуешь
277 2821159
>>20820
Только сегодня варил таску, что мозги от логики пухнули, если бы это были плюсы или расты, я бы обдристался от танца с бубном. Так что да, я не пишу на звезданутых языках и рад этому.
278 2821176
>>21014
Как раз реальные тесты показали, что мало только взять "быстрый" язык. По опыту и тем тестам, ни раз видел как говнили писари на ваших плюсах и сях, с криком преждевременная оптимизация зло.
Да, даже скажи спасибо этим тестам, раст хоть реально в топ попал (если не накрутили хайпующие), он буквально был на дне раньше, но самое смешное, что и тогда все заверяли про якобы сверхбыстрые http серверы на сверхбыстром языке, лол
Там даже хайпленный nginx причмокивает.

Так что не удивлюсь, что твои петпроекты тормозят по уровню питона (как, кстати нередко бывает, смотри тесты) и язык тут не причем. А может даже и норм наборщехлебил у себя, но взял какой-нибудь либу не протестировав и она тебе все просадила внулину.
279 2821181
>>21176

>Там даже хайпленный nginx причмокивает.


Может посмотрят на этот позор и допишут нормально, веб сервер раста смогли же до ума довести, правда с тонной unsafe, что аж все это в драму вылилось хз, восстановил ли чел репозиторий, не следил за драмой
280 2821210
>>21153
>>21176
Тебе пора съебать из этого треда, пока ты не разберёшься в разнице между throughput (который показывают тесты на techempower) и latency (который они не показывают).
281 2821226
>>21210
Только у таких домашних кодмонки могут не быть взаимосвязаны responses per second и latency.
Ты просто сказочная радость, которая посмотрела на ютубе про хайлоад, но ничего не поняла.
1657200074459.png330 Кб, 2468x1152
282 2821262
283 2821275
>>21210

>throughput


В контексте производительности, насколько это вообще корректно сказать вне сетевой задачи (и отдадим должное тем гениям которые смешали эти понятия) - responses per second есть throughput.

Но мне действительно пора линять, ведь это безумие сидеть на анонимных форумах, где только что обоссаный, всего через мгновение, продолжит писать как не в чем не бывало.
https://www.youtube.com/watch?v=1vgDUbK7Tao
image.png207 Кб, 1388x586
284 2821279
ИГРАЕШЬСЯ С БПЛА
@
УСЛЫШАЛ О НОВОМ СУПЕРЙОБА СИСТЕМНОМ ЯЗЫКЕ
@
РЕШАЕШЬ ПОПРОБОВАТЬ
@
ПРИХОДИТСЯ ОТКИНУТЬ ПОЧТИ ВЕСЬ ЯЗЫК
@
ЯЗЫК ПРЕВРАЩАЕТСЯ В ХУДШУЮ ВЕРСИЮ СИ И АСМА
@
ПРИХОДИТСЯ ПИСАТЬ КУЧУ ОБЕРТОК, ПОТОМУ ЧТО НА ГИТХАБЕ ЛИБО НИЧЕГО НЕТ, ЛИБО ОДНА ХУЕТА
@
НИКТО ИЗ СООБЩЕСТВА НЕ МОЖЕТ ОТВЕТИТЬ НА ТВОЙ ВОПРОС, ПОТОМУ ЧТО ВСЕ ПИШУТ ВЕБ-ХУЙНЮ
@
ЗАНИМАЕШЬСЯ АНАЛЬНОЙ ЭКВИЛИБРИСТИКОЙ, ЧТОБЫ УЖАТЬ БИНАРНИК ДЛЯ ЕГО ЗАЛИВКИ НА ПЛАТУ
@
ПЛЮЕШЬСЯ И ПЕРЕХОДИШЬ НА ПЛЮСЫ


Тру стори, пацаны. Я, конечно, мог потратить неделю, чтобы разобраться с этим говном, но решил взять то, что просто работает и не ебать себе мозги. А на свободное время я поехал в горы, где с кайфом поползал и вдобавок нашел себе тянку, лол. Поэтому сделайте правильный выбор, мужики.
285 2821291
>>21279

>ЗАНИМАЕШЬСЯ АНАЛЬНОЙ ЭКВИЛИБРИСТИКОЙ, ЧТОБЫ УЖАТЬ БИНАРНИК ДЛЯ ЕГО ЗАЛИВКИ НА ПЛАТУ


У тебя на железке сколько места?
286 2821301
>>21291

>У тебя на железке сколько места?


На основной железке дохуя, можно хоть линукс крутить. А вот в модулях по-разному: от десятков до сотен килобайт.
287 2821310
>>21301

> от десятков до сотен килобайт.


Вот тут да, печально всё, тут лучше сишку взять чем ебаться с отключением std и прочим
288 2821332
>>21279
Видел похожую драму в чате zig, в ембеддед не оч силен, но тыкал ли ты в зиг (он может вроде как си-либы подключать как есть)?
Если тыкал выкати сюда мнение свое.
289 2821339
>>00762 (OP)

>Rust — невероятно быстрый язык для системного программирования без segfault'ов и с гарантиями потокобезопасности.


справедливо ли утверждениеи что потокобезопасность и отсутствие сегментейшен фаулт (или бус еррор) достигается дополнительными проверками за счет потери в скорости исполнения?
290 2821395
>>21339
Зависит от программы. В основном все дополнительные проверки специфичные для раста осуществляются на этапе компиляции, но некоторые структуры данных, например RefCell<T>, делают это в рантайме. В остальном всё как в плюсах.
291 2821429
>>21310
Будто на сишке стандартную библиотеку не отключают.

Мимо-эмбед-разраб, наелся говна с newlib в многопоточном FreeRTOS, планирую выкинуть её нахер, всё равно только для работы со строками в проекте нужна.
292 2821604
>>21395
звучит как "да"
293 2821638
>>21332

>но тыкал ли ты в зиг


Не тыкал, но выглядит как-то сыро. Как первую версию языка со своим кодогенератором выпустят, тогда и посмотрим.
294 2821681
>>21339
В какой-то степени так и есть, например проверка границ массива или rc, refcell. Вообще с последними страданиями ембеддед господ, можно сказать, что раст и не совсем системный язык. А для прикладных задач избыточно затрахательный. В общем, этакий промежуточный уродец между си и жабо-шарпами.

Но проблема тут не в этом, раст хорош и имеет право на существование, если его так и позиционировать, честно. Но гейский маркетинг так заливает в уши, что ты приходишь к правде спустя n-количество времени и n-страданий и после ощущаешь тотальную фрустрацию (что тебя наеба...). Отсюда и такая реакция и такое обилие хейтеров (сами себе насрали, глупые гей-хипсторы).
295 2821685
>>21681

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


Да эмбедедам и плюсы не нравятся.
У них своя атмосфера
296 2822705
>>21604
Чудес не бывает. Я не шарю в теории ЯП, но попытаюсь объяснить своё понимание.

Раст предлагает относительно уникальную модель владения и заимствования "значениями" и форсит её на весь код ещё на этапе компиляции. Таким образом компилятор выступает в первую очередь как статический анализатор кода, а всё быстродействие и кроссплатформенность идёт от плюсового бекэнда llvm.

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

Поэтому перед создателями раста встал интересный вопрос — что делать с программами, про которые невозможно алгоритмически (т.е. на этапе компиляции) сказать верны ли они с точки зрения предлагаемой модели или нет? Из двух зол: пропустить потенциальную ошибку или пофейлить сомнительный, но корректный в итоге алгоритм — они выбрали последнее. Поэтому так сложно сходу написать валидный код, зато это даёт программисту уверенность, в том что ошибки связанные с памятью в нём точно отсутствуют.

К сожалению, как оказалось значительную часть программ просто невозможно написать в таком духе. Поэтому возникли unsafe блоки, в которых часть своих правил компилятор не проверяет (их реально не много кстати, штук 5 всего лишь). Предполагается, что программист будет использовать их осознанно и только в том случае, когда задуманное невозможно сделать иначе. В отличии от компилятора человек обладает знанием контекста программы, и таким образом может прикрыть его слабые стороны. Уже из этого и растут дополнительные проверки, которые есть в стандартной библиотеке для некоторых структур данных, это как раз то, что может человек и не может алгоритм.

Утверждать, что все операции в расте предполагают "растовый рантайм" неверно. Только часть в стандартной библиотеке. Такие вещи, как проверку выхода за границу массива я даже не рассматриваю как оверхед. В 80% случаев если это не делает стандартная бибилиотека, это делает программист руками. Растовый рантайм заключается в проверке владений и заимствований. При этом это настолько минимальный рантайм, насколько это возможно, особенно сравнивая с решениями, использующими сборщик мусора.

Подведя итог, с моей точки зрения раст предоставляет определённый компромисс между комфортом, производительностью и надёжностью с перекосом в сторону последней, но при этом оставляет возможности программировать настолько эффективно, насколько это возможно. Подходит ли это каждому? Не думаю.
296 2822705
>>21604
Чудес не бывает. Я не шарю в теории ЯП, но попытаюсь объяснить своё понимание.

Раст предлагает относительно уникальную модель владения и заимствования "значениями" и форсит её на весь код ещё на этапе компиляции. Таким образом компилятор выступает в первую очередь как статический анализатор кода, а всё быстродействие и кроссплатформенность идёт от плюсового бекэнда llvm.

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

Поэтому перед создателями раста встал интересный вопрос — что делать с программами, про которые невозможно алгоритмически (т.е. на этапе компиляции) сказать верны ли они с точки зрения предлагаемой модели или нет? Из двух зол: пропустить потенциальную ошибку или пофейлить сомнительный, но корректный в итоге алгоритм — они выбрали последнее. Поэтому так сложно сходу написать валидный код, зато это даёт программисту уверенность, в том что ошибки связанные с памятью в нём точно отсутствуют.

К сожалению, как оказалось значительную часть программ просто невозможно написать в таком духе. Поэтому возникли unsafe блоки, в которых часть своих правил компилятор не проверяет (их реально не много кстати, штук 5 всего лишь). Предполагается, что программист будет использовать их осознанно и только в том случае, когда задуманное невозможно сделать иначе. В отличии от компилятора человек обладает знанием контекста программы, и таким образом может прикрыть его слабые стороны. Уже из этого и растут дополнительные проверки, которые есть в стандартной библиотеке для некоторых структур данных, это как раз то, что может человек и не может алгоритм.

Утверждать, что все операции в расте предполагают "растовый рантайм" неверно. Только часть в стандартной библиотеке. Такие вещи, как проверку выхода за границу массива я даже не рассматриваю как оверхед. В 80% случаев если это не делает стандартная бибилиотека, это делает программист руками. Растовый рантайм заключается в проверке владений и заимствований. При этом это настолько минимальный рантайм, насколько это возможно, особенно сравнивая с решениями, использующими сборщик мусора.

Подведя итог, с моей точки зрения раст предоставляет определённый компромисс между комфортом, производительностью и надёжностью с перекосом в сторону последней, но при этом оставляет возможности программировать настолько эффективно, насколько это возможно. Подходит ли это каждому? Не думаю.
16876337200950.jpg30 Кб, 320x320
297 2822835
>>22705
Что я только что прочитал

сохранил как пасту для вайпов
298 2822920
>>22705
Но ведь проблемы с памятью вполне себе решаются сборщиком мусора на 100%, и никакие проблемы остановки тут не возникают.
299 2823057
>>22920
не решаются
300 2823094
>>22920
Сборщик мусора не бесплатная вещь, он потребляет сильно больше процессора чем ручное освобождение. Требует большого запаса по памяти, чтобы работать эффективно.
301 2823116
Задроты-очкарики, продолжайте писать мне быстрые либы на компилируемых языках, чтобы я, как господин, их в моем питон коде использовал :3
302 2823357
>>22920
Да, потому что сборщик мусора работает во время работы программы. Что такое проблема остановки на пальцах: ты смотришь на алгоритм и на начальные входные данные, нужно понять завершится он когда-нибудь или нет. Оказывается, что в общем случае, т.е. для всех алгоритмов и данных, это невозможно сделать, не запуская саму программу. К этой проблеме сводятся многие другие задачи, вот в частности анализ программы на расте. То что компилятор не может "понять" он отказывается компилировать и переносит на плечи программиста. Ещё раз повторю, это то как я понимаю уникальность раста, я могу ошибаться.
303 2823725
>>22705

>Такие вещи, как проверку выхода за границу массива я даже не рассматриваю как оверхед.


Ну конечно, проверить границу один раз или 200 миллионов раз. Разницу не ощутим. Кодмонки вечно думает в рамках своих крудов.
304 2823751
>>23357
>>22705
Звучит как стокгольмский синдром.
305 2823768
306 2823894
>>23725
Кодмонки поднабрался немного опыта, пока писал свои круды и знает, когда надо переживать о производительности, а когда это выеденного яйца не стоит.

Вот тебе простой пример. Пусть где-то имеется массив размером 200 миллионов элементов и два программиста решили написать функцию для его инициализации: 0, 1, 2, ...

Первый использовал константу в цикле, а второй благоразумно воспользовался функцией для чтения длины массива. И что мы видим в результате компиляции? Уже на первом уровне оптимизации все лишние проверки во втором варианте были выброшены. В первом варианте они остались, потому что компилятор всё-таки не может знать заранее, массив какого размера передадут в функцию.
307 2823898
>>23751
Так и есть. Все мы жертвы природы этого мира.
308 2823904
>>23894

>В первом варианте они остались, потому что компилятор всё-таки не может знать заранее, массив какого размера передадут в функцию.


Тогда что ты нам грязные штаны показываешь?

Ты не улавливаешь смысл, мы не платим за то что сами не написали, если там иногда какая-то магия проверки срабатывает, а иногда нет, так это уже какое-то руби-жопоскрипт-программирование, а не системное.
Прям безопасное ub, которое мы заслужили.
309 2823933
Кто-нибудь запускал embassy на stmf103?
310 2823957
>>23904
Да, что-то не улавливаю. "Магия" проверки срабатывает всегда, но исключается на этапе компиляции, если можно гарантировать корректное поведение, так что это не влияет на производительность. Не вполне понимаю, где ты там UB увидел. Это же именно твои слова выше:

>Ну конечно, проверить границу один раз или 200 миллионов раз. Разницу не ощутим.

311 2823966
>>23725

>Кодмонки вечно думает в рамках своих крудов.


Кстати, а ты что пишешь на работе? Если она есть Всегда было интересно знать что пишут настоящие программисты.
Мимо
312 2823976
>>23957
ты осмысливаешь текст?
313 2823998
>>23976
Серёга, иди выпей опять, заебал.
314 2824174
>>23998
кто такой Серёга? твой протык?
315 2824499
>>15767
Вчера сам заинтересовался темой репла для раста, попробовал этот evcxr. Прикольно, работает, но наверняка есть какие-нибудь ограничения. Как минимум в доках сказано, что нельзя использовать макросы из внешних крейтов и делать глобальные ссылки на глобальные переменные. Касательно твоего вопроса там по умолчанию дополнение по двойному табу. Думаю попробовать прикрутить к емаксу, но в функционале явно не хватает загрузки файла и выгрузки контекста.

Ещё у них в README упоминается IRust. В моём дистрибутиве его нет, поэтому не пробовал. Судя по описанию, будет пофичастее.
image.png21 Кб, 549x105
316 2824955
>>24499

>там по умолчанию дополнение по двойному табу


О, спасибо анон
317 2824958
>>24955
Случайно скрин прицепил
318 2825144
Шутить про чулки, думаю, уже не имеет смысла, поэтому давайте разберем действительно важный вопрос, ведь без этой вещи нормально программировать нельзя, компилятор отказывается работать.
Какие шрифты используете?
319 2825248
Обратите внимание как завтра упадет в этом разделе активность. Многие "тимлиды" уйдут на линейку, кто-то попрется в свою шарагу.
320 2825305
>>25144
Компилятор отказывается работать без шрифтов? Серьёзно?
321 2825435
>>25144
comic sans
322 2825496
>>25144
SF Mono, Courier New
изображение.png131 Кб, 846x651
323 2826049
324 2828379
>>21159
Расскажи хоть что там за логика такая, что мозги пухнут
325 2829111

>Thanks to its direct access to both hardware and memory, Rust is well suited for embedded systems and bare-metal development.



А что вообще имеют ввиду когда говорят что какой-либо якзык имеет "direct access to both hardware and memory"? Что именно раст/си/цпп могут сделать с железом чего не могут "высокоуровневые" языки? Я когда-то раньше ардуинкой/stm32 интересовался и там было что-то вроде такого что чтобы котнтрлировать поведение пина нужно записать определённый бит паттерн в определённый адрес в памяти (хотя поверх всего этого есть hardware abstraction layer) - это оно?
326 2829116
>>29111
Сегфолтиться не могут.
327 2829287
>>29111
Да это оно. А ещё прямой доступ к состоянию регистров на проце, чтение флагов процессора и всякое такое. Реализуется обычно ассемблерными вставками.
328 2830313
>>29111

>>Thanks to its direct access to both hardware and memory, Rust is well suited for embedded systems and bare-metal development.


Только в реальности ембедшики, я так понимаю, плюются, а кругом одни веб-макаки натягивают сову на глобус.

заипали этим бэкендом
329 2830367
>>30313
Эмбед это очень консервативная область и раст ещё не скоро будет в ней популярен. Например, во почти во всех проектах на плюсах, в которых я принимал участие, стандартная библиотека была под запретом из-за того, что шаблонный код сильно раздувает бинарник. Сейчас к слову пилим проект на C99. С опаской перешли с gcc 9-ой ветки на 10-ую.
330 2830444
>>30367
Ну не везде, хотя кресты мы выкидывали полностью (идеологические и практические причины у "тимлида"), но компилятор и шланг и гцц всех версий юзали, лишь бы сжал получше
PureMail.jpeg91 Кб, 1920x1080
331 2830537
Какая эмбедщина на всрасте если у него программы по 20мб.
Для эмбедщины зачастую и сишная библиотека черезмерная, не то что плюсовая.

Тем более ржавчина которую вообще то для прикладного ПО задумывали но как обычно тараса понесло куда угодно только не в приклад, который продолжают говнокодить на шарпе, си и плюсах обмазанных пистонами и другими скриптами. А все потому что просто так сишные библиотеки с [sp]пидо[/sp]растом не линкуются, без node-подобной инфраструктуры не компилируется и без IDE пидораст не программируется.

Его бы могло спасти появление .Net/Mono - подобия, с прикладным абстрактным апи, но этого не происходит, его пытаются тупо присунуть куда присунется.
video2023-09-0607-50-51.mp42,1 Мб, mp4,
720x1280, 0:04
sage 332 2830543
>>30537

> Какая эмбедщина на всрасте если у него программы по 20мб.


Не пизди, пожалуйста. Пиздаболище лесное. При наличии прямых рук, можно килобайт до 500 ужать, до мегабайта легко. Смотри опции оптимизации.

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


Рукожопам всегда что-то мешает. То язык не тот, то железо не то, то синтаксис не тот, то страна не та.

>сишные библиотеки с [sp]пидо[/sp]растом не линкуются


Всё там линкуется, долбоёб. Не надо дезинформировать людей.
333 2830573
>>30537

>Тем более ржавчина которую вообще то для прикладного ПО задумывали


Забавное обострение.
i(3).webp40 Кб, 1280x720
334 2830666
>>30543

> Рукожопам всегда что-то мешает.


> При наличии прямых рук


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

То же самое кстати касается яблочного высера свифт - не ты пишешь (желаемую) "жопу", алоцируешь и ебешь, как в нормальных языках, а расписываешь свой ass по базовому переписываешь нужные методы ебки снимаешь штаны и ждешь. Какое то метапрограммирование через прикладное апи

Вот что бывает когда технологии разрабатывают не ученые из институтов, а корпоративные петухи с пробкой в анусе.

>>30573
Ну вот lto и валгринд для кого по умолчанию встроены? Для системщиков или может для микроконтроллеров? Да даже на сайте раста (раньше по крайней мере) сходу предлагали написать вместе простой калькулятор.
335 2831467
>>30537

>Его бы могло спасти появление .Net/Mono - подобия, с прикладным абстрактным апи


Не могу распарсить эту строку, помогите.
336 2831567
>>31467
Ну там шоб сеть (клиент/сервер), треды / ивенты. Всякая хуйня для быстрой разработки приклада.

Может не как моно а скорее как кутэ, но в куте гуй встроенный, а он (еще один велосипедный) нахуй не нужон.
Как то там моно линковалось и линкуется с gtk-2/3, как то окна и меню на них рисует, вызывает файловый менеджер при выборе файла.

Просто блять в противном случае раст из далека выглядит как нода или скорее хаскель с кабалом - пустой язык с пакетником полным барахла разной степени захерелости, собирай из этого шо хочешь. Ноде то вон электрон и nw завезли, ее хоть начали для чего то внятного использовать.
image470 Кб, 3648x1988
337 2831747
Уф, наконец-то закончил растбук. Хочу поделиться своей статистикой с вкатунами (ну и похвастаться, чего уж там). Читал от корки до корки, попробовал почти каждый кусок кода, в непонятных случаях играл с изменениями, чтобы посмотреть что получится. Всё это заняло ровно два месяца или трое суток "чистого" (почти) времени. Старался уделять час-два каждый день этому занятию.

Помимо этого прошёл rustlings, решил 51 задачу на литкоде (начал решать после 6-ой главы) и пофиксил багу в одном опенсорсном проекте на расте, который сам постоянно использую. Правда бага оказалось не в самом растовом коде, лол, но это ничего, зато я получил представление о том, как делаются современные десктопные приложения на расте под гном. Потом ещё с парочкой похожих проектов ознакомился.

Теперь неплохо бы сделать карточки по сделанным записям для запоминания и приступить к своему проекту. В целом пока всё нравится. Офигел только от объёма, который занимает сборка небольшого по своей сути приложения. 3.5G, серьёзно? Но сам язык ощущается очень приятным.
338 2831944
>>31747
Тебя, по ходу, вдохновляют больше ачивки, чем сам результат.
Тебе раст то нужен вообще?

Не надо делать какие-то, блин, карточки, просто пиши код, это единственно что делает из теоретика читателя программиста с набитой рукой.
339 2831949
>>31567

>Может не как моно


Какое моно? Вылезай из криокамеры, там шарфы кроссплатформенны столько же сколько существует релизный раст.

Дотнет отличная технология, только с растом не пересекается вообще никак. Это унизительно глупо сопоставлять управляемые и неуправляемые языки.
340 2832226
>>31949
Я не силен в шарпах, но насколько помню открыт и доступен был только Core Net (то есть видимо базовая библиотека + jit наверное), а DotNet был долгое время эксклюзивом винды пока его тоже не открыли и портировали на линупс не так уж и давно на самом деле.

Вот только про гуй и приклад на дотнете под линукс я не слышал, насколько я понимаю оно пригодно только для написания бакендов и других сервер-сайд приложух, что бы отжать долю у жабы, так как языки по сути конкурирующие.
А благодаря моно появился фреймворк юнити, который сейчас в определенной нише рулит и педалит.
341 2832564
>>31944
Ачивки для мотивации и были придуманы, что же в этом такого? Раст учу для себя, потому что интересно. По работе есть пару минипроектов на нём, думаю присоединится.

Карточки пока использовал только для изучения естественных языков, показали себя неплохо, хочется попробовать и в технической области. Понятное дело не для того, чтобы объявление переменных заучивать, а для каких-то редко встречающихся вещей. Например, бегло просматривал приложения в растбуке, встретил описание символа @ и осознал, что к этому моменту напрочь забыл, когда и зачем он используется.
342 2832961
>>32564
Мозги немного по другому работают, как-то нужен был c/c++ (тогда еще их вместе обмазывали), я его выучил, но писал пару раз в год. В общем, я его каждый раз заново учу лет 15, так как без конкретной цели и долбежки каждый день кода руками, хер там что закрепляется в голове (и не надо выеживаться что ты дитё индиги и только на одном юношеском максимализме - все могу, это вывезешь).

Цель инструмент ради инструмента это борщехлепство. Твоя цель должна быть не на язык дрочить, а конкретный результат/софт/технология.
А то будешь как местный Сережа.
343 2833127
>>32961
Прекрасно понимаю, у меня такие же отношения с питоном. Ты видимо уцепился за слово "вкатун". За меня не переживай, я уже наносек-сеньор-помидор, всё как положено. Я имел в виду только сам раст. А вкатываться в погромирование, начиная с него и уж тем более с растбука, я бы никому не посоветовал.
image.png370 Кб, 1094x713
344 2836093
Rust supremacy confirmed
345 2836095
В рахе есть джобы на расте сейчаас вообще? Просто интересно как у вас дела
IMG20230906122952.jpg193 Кб, 1080x1560
346 2836438
>>36095
Работа есть только для конкретных областей айти (в рашке это банкинг, клиент-сервер, андрюхаприложения).
В каких областях у нас доминирует раст? Что ты за глупые вопросы задаешь, раст на сегодня чисто для энтузиастов.
изображение.png104 Кб, 1536x467
347 2836792
Извиняюсь за довольно глупый вопрос но как мне лучше разделить данные на "чанки" по три байта? Мне нужно что бы итератор сразу возвращал 3 отдельных байта за шаг. Или это можно как то сделать ещё во время чтения?
349 2836822
>>36806
Спасибо
350 2837095
>>36792
толстота то какая, жирнота.
Итераторов (которые на самом деле никакие не итераторы) хватит для всего.
351 2838221
Грозит собес на раст. Я собственно не растовик даже, писал на нем немного энное время назад, но забыл уже все. Что глянуть чтобы хоть минимально подготовиться?
353 2838469
354 2838470
>>38465
Как классно наблюдать что Раст, с каждым годом становиться только лучше, Как быстро выходят обновы. :)
355 2838523
>>38470
Как классно наблюдать, что на нем как было, так и будет полторы вакансии, потому что, внезапно, мертворожденная хуета
Любые попытки "убить" Си/плюсы обречены
image518 Кб, 3648x1988
356 2838526
Что-то хвалёные передача владением и итераторы оказались медленнее старого доброго перебора в цикле. Пытался через свёртку в хешмапу или в слайс подсчитать количество встреченных букв в строке (закомментированные строчки), оказалось в 10 раз медленнее обычного перебора. Такое ощущение, что аккумулятор в свёртке полностью копируется на каждой итерации, вместо ожидаемой передачи значения. Хотя в другой задаче я использовал такой же трюк и проблемы не было.
357 2838555
>>38526

> Такое ощущение, что аккумулятор в свёртке полностью копируется на каждой итерации



Такое ощущение, что у тебя каждую итерацию вычисляется хеш и поиск по мапе. Просто сделай статически массив в 26 символов, у тебя отображение 1 к 1. В идеале еще от потенциальных паник избавиться, но наверное пофиг.
358 2838597
Хочу вкатиться в энтот ваш раст чисто для души, чтоб мозги не слипались. Какие подводные?
359 2838718
>>38555
Делал уже, строки 18-24. Работает так же медленно как и хешмапа. Первый вариант, который я сделал, кстати, и очень удивился результатам.
360 2838742
>>38597
Тащит свои библиотеки не линкуется с системными.
Сам по себе сложный и перегруженный.
Сложная система сборки.
Зачастую чужой проект не собирается по причине того что он использует какие то экспериментальные фичи из ночной сборки, надо удалить дефолтный из репозиториев и устанавливать rustup с сайта по инструкции, и вот только тогда оно соберется/скомпилируется.

Так же раздражает генерация кучи какого то мусора и папок/подпапок.
На самом деле практически тоже делает cmake но тут еще в более фимозной форме.
361 2838754
>>38597
А ну и самое главное - все это напоминает ноду жс, где пока в инфраструктуре не разберешься ничего собрать или запустить несможешь. Единственное может отличие это то что если в говноде каждый год одна система сборки/пакетирования устаревает и появляется новая более модная, то тут хотя бы одна. Но минус в том что она не скриптовая как make/cmake/qmake, а блять конфигурируемая.
Надо конфиг правильно по шаблону задавать, короче пространства для полета нихуя нет.
362 2838764
>>38754

>Но минус в том что она не скриптовая как make/cmake/qmake, а блять конфигурируемая.


https://doc.rust-lang.org/cargo/reference/build-scripts.html
Серёга, ты?
363 2838793
Да как понять кто такой этот ваш str и [T]? Вот с &str, &[T] понятно - fat pointer на область последовательности. А сами по себе str и [T] это что?
16832837592750.jpeg119 Кб, 1554x1644
364 2838815
>>38764
Нет не я.
Но я вспомнил что кто то мне уже кидал мануал про билдскрипты, они еще помоему на самом расте пишутся, что конечно дополнительное очко к ебанутости.

Глянул снова, так это же сишные плюсовые файлы собирать, и нахуй оно нужно? Выглядит как костыльный инструмент для постепенного переписывания проектов с си/срр на раст, за такое вообще казнить надо.
365 2838825
>>38815

>16832837592750.jpeg


Красивая картинка, есть ещё?
image798 Кб, 1000x665
366 2838828
>>38815

>Ваш билд-скрипт — не билд-скрипт и вообще он не нужен.


Ну понятно. А чего начинал тогда?
367 2838833
>>38793
Как говорится, хороший вопрос содержит в себе ответ. Это сами последовательности и есть, очевидно же.
368 2838959
>>38828
Ну так это не скрипт для сборки проекта на расте. И не на скриптовом языке, а блять на расте со всеми его типами и конструкциями, но отсутствием вот таких вот элементарных вещей https://rune-rs.github.io/book/template_literals.html
Вроде как раст системный язык, но почему то на него пытаются все функции навесить, а ведь в чем проблема сделать простой скриптовый язык и интерпритатор к нему на расте, да и ввести режим интерактивной поэтапной сборки по типу cmake или meason. Нихуя, ишь че захотел, только одна мова, одна вира, одна система сборки.
369 2838988
>>38959

>Ну так это не скрипт для сборки проекта на расте.


А что?

>И не на скриптовом языке, а блять на расте со всеми его типами и конструкциями, но отсутствием вот таких вот элементарных вещей https://rune-rs.github.io/book/template_literals.html


Каких вещей нет? Чтения переменных окружения и форматной строки?

>Вроде как раст системный язык, но почему то на него пытаются все функции навесить, а ведь в чем проблема сделать простой скриптовый язык и интерпритатор к нему на расте


Какие проблемы решает отдельный язык?

>да и ввести режим интерактивной поэтапной сборки по типу cmake или meason


В чём проблема собрать проект на расте с помощью cmake или meson?
370 2839019
>>38988

>А что?


Интерфейс для сборки си/с++ исходников в коде проекта либо неродных модулей.

> Чтения переменных окружения и форматной строки?


Да, шаблонов нет, как и много всего другого, шела к примеру

> Какие проблемы решает отдельный язык?


Скриптовый язык (да и вообще любой другой) решает не проблемы, а задачи. Задачу написания сценария сборки.

> В чём проблема собрать проект на расте с помощью cmake или meson?


Запустить cargo build это не сборка при помощи cmake или meason.
Хотя на мейзоне можно наверное карго-томлы генерировать из шаблонов, но это какое то извращение уже.
371 2839049
>>39019

>Интерфейс для сборки си/с++ исходников в коде проекта либо неродных модулей.


Это не так. Прочти дальше первого предложения по ссылке выше.

>Да, шаблонов нет, как и много всего другого, шела к примеру


Шаблоны: https://doc.rust-lang.org/std/fmt/index.html
"Шел" (если я правильно понимаю, что ты так называешь запуск других процессов): https://doc.rust-lang.org/std/process/index.html
Что ещё другого тебе не хватает?

>Скриптовый язык (да и вообще любой другой) решает не проблемы, а задачи. Задачу написания сценария сборки.


Приведи конкретный пример задачи, который невозможно/очень сложно реализовать в рамках предлагаемой системы сборки. Хочу посмотреть. Кстати, в данном контексте слова проблема и задача можно назвать синонимами.

>Запустить cargo build это не сборка при помощи cmake или meason.


Так запускай rustc, в чём проблема? meson кстати, а не meason, смотрю ты даже не пользовался тем, за что так яростно топишь, раз второй пишешь с ошибкой. Произносится [ˈmiːzɒn], держу в курсе.
372 2839245
>>39049
Я так и понял что ты обычный гуманитарий свидетель раста.

> Шаблоны: https://doc.rust-lang.org/std/fmt/index.html


>The format! macro is intended to be familiar to those coming from C’s printf/fprintf functions or Python’s str.format function.


Блять, съеби отсюда нахуй, наркоман ебучий.
16928106506070.jpeg116 Кб, 1184x1115
373 2839248
>>39049

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


https://habr.com/ru/articles/548854/
Так что открывай Lern zig и начинай учить.
https://habr.com/ru/articles/753306/

Мое мнение выглядит куда лучше раста, и самое главное автор языка молодой ученый, а не сжв педики из мозилы наяривающие на говноду.
374 2839344
>>39248
zig конечно выгодно смотрится на фоне постоянной rust драмы. а у тебя какой опыт в расте чтобы советовать x вместо y?
IMG20210622062315.jpg51 Кб, 513x240
375 2839458
>>39344
X вместо Y могут советовать только религиозные фанатики, zig это более консервативное раст-подобие притендующее на альтернативу си и плюсам в определенных сферах. Это просто более правильный подход, однажды может быть пригодиться вместо си или плюсов.
Что касается раста то опыт у меня бекпортирование проектов (библиотека и программа). Бэк потому что изначально код был написан на одном языке, но авторы на волне растомании бросились в присядку переписывать на раст. Автор библиотеки молодец все переписал и даже улучшил, но беда в том что вместо сишных и плюсовых субмодулей, с гитхаба, которые гораздо лучше подходят под целевые задачи, постоянно развиваются и в них можно реквестить, ему естественнопришлось обмазываться модулями из репозиториев карги, причем как очевидные так и сомнительные, короче человек увлекся и забыл что это библиотека и ей положено быть легкой и компактной и плюс еще раст либы не линкуются просто так, там надо экспортировать функции в си/с++.
Второй переписал самое легкое связанное с io, на другом у него sdl был и его фукционал просто был обернут в плюсовые классы, методы вызывали сишные функции с указателем self структуру, все просто и главное работает, но он решил на расте не сишные вставки делать которые довольно ублюдочно выглядят, а переписать на расткоде как положено - прыгнул на ночную ветку сгреб все самое новое с репозиториев всякую хуйню для окон и графики, писал писал и бросил нахуй.
Я посмотрел оно даже работает правда там половины нет, а кода уже пиздец и читать вот это все нагромождение вложенных друг в друга функций тяжело.
376 2839740
>>39245

>Блять, съеби отсюда нахуй, наркоман ебучий.


Ну вот, хорошо же общались. Честно, не понял о чём ты, можешь гуманитарию попонятнее объяснить?
>>39248
Т.е. скрипт сборки на зиге это ОК, а на расте это не ОК? Всё правильно понял? Но вообще-то я просил конкретный пример, который проблемно сделать на растовой системе сборки.
377 2839799
>>39740

> вообще-то я просил конкретный пример


Я тебе принес пример, чем он тебе не нравится? У разработчика свое представление как должен выглядить его проект и как его собирать под разные контроллеры.
Но пидораст говорит - "нет". Учи сука мануал какие есть ключики хуючики параметры и поправляй код под них.

Это для таких как ты такое программирование в радость, когда надо больше читать чем применять, и ходить на форумы доказывать какое это для всех благо.
image257 Кб, 1319x1021
378 2839873
>>39799
Каюсь, пролистал по диагонали. Видимо "проблемы" системы сборки на пике. В первой проблеме автор хочет от раста сишных ifdef'ов. Я бы на его месте сделал типаж для контроллера и параметризовал им аргумент функции read_keys. Это встроено в язык, возможности системы сборки тут не нужны.

Проблему с RTIC можно решить кодогенерацией, это как раз одно из основных применений build.rs. Т.е. в зависимости от устройства генерировать разные входные точки.

Ещё примеры?
tumblrm7u5h2pptv1rasay6o1500.jpg50 Кб, 500x367
379 2840081
>>39873

> пролистал по диагонали.


> от раста сишных ifdef'ов


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

Лично я на его примере наоборот вижу ущербность растовых макросов по сравнению с сишным препроцессором. Точнее я вижу синтаксическую конфетную обертку над ifdef, то есть где то в файле конфига вбивается таргет, и в макросе прописано какой именно блок включает.
И чем это отличается от тупого

cc .. -DARCH_KN232

#ifdef ARCH_KN232
...
#endif

? Ущербность если что в том, что сишный препроцессор может не только играть в "убери лишнее", но и инклюдить допустим файл с функциями целевой архитектуры, что удобно. В расте же макросы приколочены к талмудам (к вопросу о простой компиляции файлов "скриптами") и теперь еще придется каждую ревизию не изменилось ли чего, а то хуяк и поменяли что нибудь. Тепер. Секция называется не futures а ckukolds и перенесена в другое место.

> Ещё примеры?


Определение архитектуры, наличия у нее fma библиотек в системе.
Для раста это все не актуально в прочем, у него свои библиотеки из своих репозиториев.
Но допустим завтра в дистрибутивах начнут появляться раст-библиотеки с сишными abi и заголовками, все как положено как сборочная система раст это учитывает? Можно не отвечать.
380 2840100
Что люди не делают, лишь бы ебаться в жопы не использовать лисп-макросы...
381 2840101
>>40100
Кто-то бы их знал/умел еще.
382 2840169
Как обстоят дела с разработкой под мобилки? Можно написать гуишную прогу и без лишней ебли сбилдить её под винду, линукс, мак, андроид и ифон?
image140 Кб, 380x240
383 2840174
>>40081

>Определение архитектуры, наличия у нее fma библиотек в системе.


Можно подробнее? Что там не так с определением архитектуры? Что такое "fma библиотеки"? Первый раз такую аббревиатуру встречаю.

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


Что именно она должна учитывать? Ты динамическую линковку имеешь имеешь в виду?

Твой высер про макросы распарсить не смог, прости, больше похоже на бред душевнобольного. Какие ещё талмуды?
384 2840178
>>40100
Чем тебе процедурные макросы в расте плохи? Читает одни конструкции языка, производит другие, чем не лисповые макросы.
385 2840255
>>40169
Хуёво обстоят. Бери флаттер
Screenshot2023-09-13-21-42-52-668com.android.chrome.png952 Кб, 1080x2248
386 2840281
>>00762 (OP)
Всем RustRover поцоны!
387 2840294
>>40255
Надо раст
388 2840331
>>40178
В тру-макросах можно качать цопе во время конпеляции, енти ваши гигиенические огрызки оставьте пионерам и бойскаутам!
389 2840369
>>40174
fma это инструкции fma, а библиотеки это , библиотеки.
Но это не важно.

> Что именно она должна учитывать? Ты динамическую линковку имеешь имеешь в виду?


Имею в виду линковку с библиотекой из линуксового репозитория. Да и вообще просто стороннюю.

> спойлер


Потушись, шизик.
Талмуды, это очевидные .toml -ы
Те что в пидорасте играют роль package.json + .bebelrc из ноды или . cabal из хаскеля.
Кстати в доках по хаскелю специально пометка для упертых шизиков есть:

>Cabal’s build system for simple packages is considerably less flexible than make/automake, but has builtin knowledge of how to build Haskell code and requires very little manual configuration.

390 2840376
>>40281
Эти дауны еще одну иде изрыгнули для заработка шекелей чишо?
391 2840392
>>40174
А ну и вторая часть о том, что пальцы по экрану не попадают а яндекс клавиатура на хуйню исправляет со временем может выходить новый стандарт/версия конфигурационных файлов (что обычное дело) но вместе с ним получается могут поламаться нахуй еще и макросы, бегай потом код еще поправляй. А все из за того что какой то умный долбоеб придумал препроцессор связать с файлами конфигурации проекта.
image213 Кб, 1696x1246
392 2840456
>>40369

>fma это инструкции fma, а библиотеки это , библиотеки.


>Имею в виду линковку с библиотекой из линуксового репозитория. Да и вообще просто стороннюю.


За машинный код отвечает llvm, он скомпилирует под указанную платформу, оптимально используя доступные инструкции, но при желании можно ему дополнительные флаги передать. Сторонние библиотеки может поискать тот самый build.rs: https://doc.rust-lang.org/cargo/reference/build-script-examples.html#linking-to-system-libraries . Слинковаться тоже может, как по твоему вообще программы на расте работают? Пустой helloworld пяток зависимостей имеет.

>>40392

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


Как они связаны? Атрибуты (ты же их макросами называешь, да?) cargo указывает с помощью флага --cfg у компилятора (rustc). Примерно так же как и дефайны условной компиляции указываются с помощью флага -D у gcc/clang. Если таковое воображаемое событие наступит, воспользуешься возможностью указать произвольные флаги компилятора.

Так, что ещё плохого видишь в растовой системе сборки?
изображение.png43 Кб, 369x332
393 2840489
Я так понял комьюнити версии у RR не будет когда он релизнится?
394 2840490
395 2840517
>>40489
Алл продуктс пак копейки стоит.
396 2840544
>>40456

> За машинный код отвечает llvm


> он скомпилирует под указанную платформу, оптимально используя доступные инструкции,


Главное верить.

>но при желании можно ему дополнительные флаги передать


Мы вроде про систему сборки говорили, а ты уже про прямые флаги компилятору. Это признание что сборочная система не справляется?

> Атрибуты cargo указывает с помощью флага --cfg у компилятора (rustc)


Так cargo указывает, а не ты.
Тебе надо забивать в cargo все ключи которые он передаст копилеру.
А потом выходит Manifest v3 и говорит что так как было по старому небезопасно, переделываете.

> Примерно так же как и дефайны условной компиляции указываются с помощью флага -D у gcc/clang.


Я об этом и говорил что растовые макросы в сущности мало чем отличаются от этого, при этом могут гораздо меньше

> Сторонние библиотеки может поискать тот самый build.rs


Судя по примеру как раз не может, раст не умеет работать с *nix пространством путей, у него все должно быть прописано в его собственных глобал/локал вариаблах, а в os::env он может только попытаться найти библиотеку для си и то только в определенной переменной, помск в LD_PATH я так понимаю не предполагается.

Всё. Я теперь понял что в нем не так. Раст делали разработчики сидящие на винде, где трудности с менеджерами пакетов, в системе нет posix env, а системные библиотеки никому не нужны. Теперь все понятно, вердикт - закапывать.
397 2840617
Какое отношение архитектура и библиотеки хост-системы имеют к процессу сборки? Сборка проводится в изолированном окружении, у неё своя система разрешения зависимостей, любые бинарные артефакты ничем друг от друга не отличаются.
То что диды лол, автозамена исправляет на "жиды" устраивали мусорку из хоста и ассьюмили его как таргет - это было от безысходности, а не потому что так надо.
image.png9 Кб, 412x63
398 2840648
image.png29 Кб, 979x221
399 2840669
Еще один удар по шарпу, основному конкуренту раст лол
Бесконечный трах в бэкенд, ад который заслужили.
Будем надеятся теперь на godot.
macaron.jpg38 Кб, 442x270
400 2840672
>>40617
Прямое, разработчики программы собирают не сами для себя, а для пользователя. Пользователь бывает разный с навороченой пкой и старенькой, может быть коммерческим/ведомственным и требовать пользоваться только проверенной библиотекой из состава дистрибутива и линковаться с непонятно чем с возможными дырами нулевого дня. Так же пользователь может быть энтузиастом или маинтейнером дистрибутива, да не болгеноса а авторететного стабильного дистрибутива с коммерческой поддержкой серверов клиентов. В конце концов это может быть другой разработчик, который хотеть что-то свое.

Нет каких то единственно правильных решений, есть единственно неправильный подход - придумывать серебренные пули от поноса и головной боли одновременно.
image257 Кб, 588x376
401 2840684
>>40544

>Это признание что сборочная система не справляется?


Ты сам выдумал какую-то гипотетическую ситуацию, в которой разрабы поломали обратную совместимость и не продумали механизма миграции. Нет большого смысла детально обсуждать то, что не случилось и к чему нет предпосылок. Я всего лишь указал, что даже это можно решать базовыми средствами.

>Судя по примеру как раз не может, раст не умеет работать с *nix пространством путей, у него все должно быть прописано в его собственных глобал/локал вариаблах, а в os::env он может только попытаться найти библиотеку для си и то только в определенной переменной, помск в LD_PATH я так понимаю не предполагается.


У нас разные примеры? Мой предлагает использовать самый обычный pkg-config, заботливо обернутый в удобный растовый крейт:

>This will likely only work on Unix-like systems with pkg-config installed.



Как я понимаю, с реальными примерами проблем мы закончили и перешли к выдумкам и фантазиям. На этом предлагаю дискуссию завершить. Думаю здравомыслящие аноны поняли несостоятельность претензий к cargo.
402 2841059
>>40669
Рат же не подходит для гейдева из-за мучительно медленной компиляции и отсутствия нормального кэширования и какого-либо хотлоадинга. помню читал в ишшуях эпопею про то, как они это начали пилить, потом обосралтсь, потом выпилили обратно, ну и короче это годами тянется, воз и ныне там

Причём никто об этом в комьюнити ресурсах старательно старается не упоминать, лол
403 2841063
>>40672

> собирают не сами для себя


Ну так о том и речь, что архитектура/состав хоста сборки не имеют никакого отношения к таргету

> из состава дистрибутива


Ну берёшь и динамически линкуешь, в чём проблема-то?
404 2843328
>>41059
Интересная обратная сторона раста.
405 2843492
>>41059
Еще с итераторами беда. Гейдевам итератор нужен не в цикле а при очередной смене фрейма (вот костыль https://github.com/hepek/ri )
Банально что бы текст тот же печатать по словам.
Зачем в мозиле сделали итератор сделали таким - загадка. Хотя разгадка скорее всего кроется в js, в необходимости реализовать Object.keys() Object.values() и других итерируемых объектов вроде Set и Map.
На плюсах помоему тоже itter_type или что то такое используется.
406 2843496
>>43492
Чтобы печатать текст по словам используется асинхронное программирование, в частности CSP. Вообще в целом это не имеет отношения ко встроенным типажам для итерации по коллекциям (которые в расте как раз таки корректные).
1691028801111.png506 Кб, 768x432
407 2843498
>>43492

> итератор нужен не в цикле а при очередной смене фрейма


Как это должно выглядеть?
408 2843507
>>43492

>с итераторами беда


У раста же?
Тогда почему по твоей ссылке

>This is an attempt to reproduce Rust-like iterators in C++


в расте такие хорошие итераторы, что их переписывают для цпп?
409 2843517
>>43496
печатать вот будет это Если асинхронно слова,.
410 2843525
>>43517
Дебил, иди гугли цсп и читай учебники.
411 2843528
>>43507
Плохие и хорошие - это воспитатели в детском саду.

Плюсовый итератор создан для последовательного чтения/записи: https://en.cppreference.com/w/cpp/iterator/next
Оастовый для перечисления элементов. Кому то понадобился легковесный итератор как в расте он написал IIterator. Можно ли плюсовый реализовать на расте я не знаю, у вас же те же файлы на чтение/запись реализованы как в свифте асинхронным блоком.
IMG20230916101533.jpeg162 Кб, 1080x1696
412 2843529
>>43525
У меня нет времени на чтение учебников.
413 2843545
>>43528
Итератор это ж интерфейс, как хочешь так и реализуй.
414 2843573
>>43528
Так а в чём беда-то? Вернее, что иллюстрирует твоя ссылка, что там за костыль? Растовый итератор реализуют в цпп, при этом в расте с итераторами беда. Я бы понял, если бы ты принёс гейдев проект на расте, где из других языков переписывают итераторы, потому что в самом расте с ними беда, тогда бы это подкрепляло твои слова. А так выглядит будто ты не ту ссылку скопировал.
415 2843607
Говорят, что если будешь программировать на (пида)Расте, то сразу станешь сиссибоем и начнешь кончать попкой. Стоит ли пробовать, или это опять пиздёшь?
416 2843615
>>43573
Что за беда то?
417 2843668
>>43528
Ну так раст - функциональный язык, поэтому и абстракция итератора в нём для итерации, такая же как в остальных фяп (минус мемоизация).

Всё ещё не понял, в чём проблема-то, может пример какой накидаешь?
418 2843670
>>43529
Тогда съеби в прикреп.
419 2843690
>>43615
>>43492

>Еще с итераторами беда

1693870908910.jpg137 Кб, 1280x720
420 2843695
>>43690
Так какая беда то?
421 2843703
>>43695
Не ко мне вопрос, я сам ответа жду от того анона.
422 2843718
>>43668
Пример не накидаю, когда возьмусь за движок, тода и накидаю.
Но примерно там засада в том что есть например большой файл с диалогами.
Один итератор смотрит на кусок диалогов сцены, второй на диалог персоонажа, проходит построчно при этом каждый символ печатается при всплытии frame update.
Если зажат пропуск то например вместо символа печатается вся строка или хуй его знает, это уже подстраиватется под визуальное ощущение.

Еще итераторами нужно будет обходить коды эффектов которые тоже в файлах записаны в своем формате. Все привязано к фреймам естественно, это не числодробилка, это не вычисления, твой раст тут порвут на части блять, ты не лезь сюда, подумай блять
word-image-179.png18 Кб, 763x546
423 2843725
>>43668

> Ну так раст - функциональный язык


Ну так я и говорю что он как под жавакрипт был сделан, что бы максимально просто методы интерпритировать и компилировать.
424 2843729
>>43718
Там всё обмазано дельтами, а не итераторами.
425 2843730
>>43718

>Один итератор смотрит на кусок диалогов сцены, второй на диалог персоонажа, проходит построчно при этом каждый символ печатается при всплытии frame update.



А причем тут итераторы-то? Рендеришь всю реплику за раз, потом выводишь на экран по маске, маска динамическая по времени.
426 2843732
>>43718

> проходит построчно


Третий проходит построчно конечно же. Смысл его в том что бы допечатывать предложение/два и вставать что бы человек прочитал и нажимал, либо выжидалась задержка.
427 2843734
>>43718
Посмотри лучше как у других уже сделано. Куча движков и движков вн валяются на жидхабе.
428 2843743
>>43729
Еще раз это не нейронка, это нельзя просто циклом обойти и в файле у тебя не бинарные данные которые надо декодировать а то и просто прочитать, а свой фармат который надо интерпритировать.
>>43730
Пререндер это конечно прекрасно, но его все равно надо каждый фрейм кусками переносить на экран, да еще реагируя на клацанье пользователя.
429 2843745
>>43743
Ты блядь сам как нейронка.
430 2843751
>>43734
У меня есть опыт рендеренга текста на js в canvas и на Cи через SDL.
Остальное дело техники ну и формата файлов с контентом, с которым придется иметь дело.
Я не гейдев, просто есть желание написать несколько свободных движков под уже имеющиеся игры.
431 2843752
>>43751
Ну и как ты собрался каждый фрейм по букве/словам выводить если 60 или даже дохуя побольше фпс?
432 2843753
>>43752
Как скорость показа собрался делать? Как справляться с другим фпс?
433 2843771
>>43752
Fps это frames per second
Как блять тебе игры анимации показывают а плеер 1,5мб играет по несколько минут?
Да все нахуй циклами за наносекунды проигрывается/рендерится, а потом наверное фея времени делает все по нормальному.
Есть вон движок дума3 и квейка3 на си и плюсах, надо посмотреть как там с кадрами все это синхранизовано.
Может в SDL специальные калбэки есть, потому что на жабаскрипте в браузере внезапно есть window.requestAnimationFrame().
434 2843781
>>43771
Ну так в том и дело что цепляешься не к фреймам, а времени.
435 2843783
Хотя музыка неудачный пример, там то как раз как в нейронке граф/синусойда по дельте высчитывается из сжатых данных. А в аудио-cd и на пластинках дорожки напрямую читаются и проигрываются в реальном времени.
Но видеоформат это уже фреймы и совсем другое, хотя ноги тоже растут от пленочных проекторов.
436 2843796
>>43781
Ну это если фреймы самой игры - то да. Но они могут быть привязаны к экранным фреймам, короче исходный код кармака прольет свет я надеюсь.
437 2843964
>>43718
Анон, ты первокур, да? у тебя очень смутное представление о вещах, о которых ты говоришь. Никаких проблем с этим нет и интерфейс итераторов тут вообще никаким боком.

>>43725
Нет, по окамл/хаскелль/клин (которые происходят от лиспа). Жс тоже происходит от лиспа.
438 2843976
rust vs zig?
439 2844010
>>43976
Зиг - просто очередной болженос убийца си с нескучными обоями, ничего принципиально нового не привносит, автор некомпетентен в PLT и дизайне языков. Если заняться нечем - можешь и выучить (писать на нём все-таки приятнее чем на голой сишке), но в интеллектуальном плане тебе это ничего не даст, вакансий очевидно тоже нет, так что смысл сего действа сомнителен.

Ближайшая аналогия - кофескрипт. если кто-то ещё такой помнит
440 2844133
>>44010
А раст что нового предлагает?
442 2844237
>>44211
Это да.
Первый язык который форкнули и развивают параллельно.
Как там он называется и переименован ли у него пакетник/сборщик?
443 2844326
>>44133
Аффинную систему типов.
444 2844440
>>44326
Это как?
445 2844450
>>44440
Как линейная, но переменную можно не использовать.
446 2844489
>>44440
Это концепция владения и заимствования.
447 2844493
>>44450
Типизация бывает строгая/нет статическая/динамическая итд. В расте насколько я понимаю типизация статическая как в плюсах и си строгая или нет хз. Деление целых не выдает вещественное итп. (деление на ноль выбрасывает ошибку?)

Типизация это то без чего статические языки не смогут еомпилироваться в машинный код так как от типа данных зависит и тип подставляемых операций, банально u8 + 1 и u16 + 1 сложения с разными срезами жанных, а есть ведь еще и u32 >> 4 и i32 >> 4 казалось бы одно и то же и результат может не отличаться, но в первом случае логический шифт, а во втором арифметический.

А переменные и прочая фигня это уже семантика языка.
448 2844495
>>44489
Заимствование и владение чего и от чего/кого?
449 2844497
>>44495
Прочитай 4-ую главу растбука, это лучше чем мне объяснять на пальцах.
https://doc.rust-lang.ru/book/ch04-00-understanding-ownership.html
450 2844507
>>44497

>Поскольку владение является новой концепцией для многих программистов, требуется некоторое время, чтобы привыкнуть к ней. Хорошая новость заключается в том, что чем больше у вас будет опыта с Rust и с правилами системы владения, тем легче вам будет естественным образом разрабатывать безопасный и эффективный код. Держитесь! Не сдавайтесь!


Чёта проиграл с не сдавайтесь. Всё так плохо? в плане порога вхождения
451 2844512
>>44507
В целом — да. Это действительно максимально непривычно для большинства программистов.
452 2844522
>>44512
Ну зато гарбадж коллектора нет поэтому ебёт пиздец. Но пока вакух на сытую зепку не будет меня не ждите
453 2844530
>>44497
По ссылке написано с предыханием рассказывают про по сути опцию -Wall из llvm, ну и в целом какую то чушь про стек и кучу.

По слухам опцию -Wall протащил кто-то из мцст или унипро, что бы видимо вместо не собирается на LCC под эльбрус в безопасном режиме в составе комплекса противоракетной обороны писать просто не собирается на llvm с опцией -Wall и как то более быстро находить понимание что в говнокод с нехорошей маняпуляцией указателями.
454 2844534
>>44133
Используй гугл.
455 2844537
>>44534
А преимущества линукс пойду в bing поищу.
456 2844542
Два часа делал изи на литкоде. Тяжело...
457 2844547
>>44530
В целом, это ты сейчас какую-то чушь написал. Вместо фантазирования лучше попробуй пару примеров написать. Вот тебе идея — сделать функцию, которая принимает строку по значение и выводит её на экран. Попробуй вызвать её дважды подряд с одной переменной.
458 2844555
>>44547
На какой экран по какому значению?
459 2844572
>>44555
Линукс-тред там, клоун <----
Или откуда ты там протёк.
460 2844697
>>44572

>Линукс-тред там, клоун <----


Как же тебе там жопу порвали, лол
мимо_из_линукс_треда
461 2844793
>>44697
🤡🤡🤡
IMG20230917055850.jpg259 Кб, 1080x1333
462 2844844
>>44547

> Попробуй вызвать её дважды подряд с одной переменной.


Допустим написал и вызвал, что будет? Вот это https://en.cppreference.com/w/cpp/utility/move ?
Screenshot 2023-09-17 122909.png16 Кб, 1656x85
463 2845092
>>44010
Умеет ли раст в 1024 битные числа?
зиг умеет, лол
464 2845098
>>45092
Вообще-то, умеет.
465 2845106
>>45098
Бля, и в этот раз не получилось :(
466 2845148
>>45092
Трудно найти что-то что не умеет раст, но еще трудней найти ему практическое применение.

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

Ждем третью попытку когда наконец придет кто нибудь нормальный и сделает нормальный функциональный статический язык, без управления памятью.
(Первая попытка если что хаскель).
467 2845251
>>45148

> хаскель


> первая попытка


> хаскель


> "нормальный", имплайинг для практического применения, без "новых физических принципов"


Не шаришь - не пиши
468 2845318
>>45251
Научись читать текст целиком, шизик, ты не на буре что бы из понравившихся слов наборы собирать.
469 2845372
>>44844
Возьми и напиши, а не фантазируй. Рекомендую https://play.rust-lang.org . На расте подобный код не скомпилируется.
470 2845384
>>45318
Я прочитал текст целиком, сделал очевидный вывод о том, что ты не шаришь, и указал тебе на места, где ты наиболее явственно несешь ахинею. Что-то ещё объяснить?
471 2845563
>>45372
std::move() отдает объект принимающей функции на совсем, а текущая область видимости теряет его.
В расте так это будет?

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

>>45384
Ты выдрал из поста отдельные слова и перетасовал как вздумается. Или ты хочешь поспорить что до раста уже был хаскель? Или что они оба "не ненормальные" а каждому вламываться с переосмыслением это нормально?

Я больше скожу народ давно ждет язык без указателей с typesafety, но нет, нельзя просто сделать нормальный привычный язык, надо высрать что то эдакое, чтоб все охуели.
472 2845635
>>45563

>а текущая область видимости теряет его.


Лолнет. Конструктор перемещения обязан оставить оригинал в валидном состоянии. Как раз в Расте перемещенный объект переиспользовать нельзя.
473 2845637
>>45563

>std::move() отдает объект принимающей функции на совсем, а текущая область видимости теряет его.


>В расте так это будет?


В расте это так (за исключением того что в нём объектов нет). Это не так в C++. Посмотри на свой же пример внимательнее. В нём str успешно используется после мува.
474 2845646
>>45635
Ну то есть он в расте перемещается всегда?

> Конструктор перемещения обязан оставить оригинал в валидном состоянии.


Кому и куда обязан? На картинке выше с примером из cppreference строку переместили в массив через метод push_back и она исчезла со стека. Или что имеется в виду?
475 2845649
>>45637

> Посмотри на свой же пример внимательнее. В нём str успешно используется после мува.


Ну так потому что в плюсах можно использовать неинициализированные переменные, а в расте видимо нет (что естественоо для языка с типобезопасностью), какая разница то?
image.png298 Кб, 1305x544
476 2845655
>>45646

>На картинке выше с примером из cppreference строку переместили в массив через метод push_back и она исчезла со стека.


Не понял. Вот же она осталась, просто пустая

мимо
477 2845657
>>45646
Переменная осталась на стеке, её содержимое очистили.
478 2845667
>>45649
В плюсах использование не инициализированных переменных это UB, а после мува переменная принимает unspecified state. Это валидное состояние и его можно использовать. Очевидно, что это большой простор для ошибок. Кроме того, это дополнительные накладные расходы в рантайме (изменение состояния и лишние проверки в деструкторе).
479 2845722
>>45563
Хаскель - это побочный продукт исследований монадного ио, никто его для прода не пилил. Предыдущей попыткой сделать функциональный системный язык был окамл, ну ещё атс. Предшественник раста - клин (а также дюжина вариаций на тему всяких реджион эмэль). Язык без указателей со статической типизацией - джава, сишарп, свифт, го. Для быдла также был ди, для небыдла - кристал, ну может ним (из популярных).
480 2845729
>>45657 >>45655
На стеке нет никаких переменных, там просто лежат локальные данные (адрес + размер). Поскольку std::move() и раст данные "передают" то они со стека никуда не деваются, не перемещаются, не копируется, не "очищаются". Что бы до строки больше никто не добрался, на нее в текущей процедуре теряют ссылку и выдают всем новую на пустую. Это в плюсах, в расте просто компилятор требует по сути сделать то же самое, только явно объявить заного через let.
В плюсах нет операторов вроде var и let, в плюсах есть только выделение сегментов на стеке - std::string a, b; int c, d; поэтому переобъявить ничего нельзя, но неявно подменить адреса в коде - можно, что и делается.
481 2845740
>>45722
В го есть поинтеры
482 2845758
>>45729

>На стеке нет никаких переменных, там просто лежат локальные данные (адрес + размер).


Когда данные лежат на стеке, это и означает, что переменная на стеке. Ты разделяешь как-то переменную и её данные?

>Поскольку std::move() и раст данные "передают" то они со стека никуда не деваются, не перемещаются, не копируется, не "очищаются".


Это неверно ни для раста, ни для плюсов. В обоих случаях происходит копирование данных (которое в некоторых случаях может выкинуть компилятор для оптимизации). Но раст на этапе компиляции помещает переменную в список неинициализированных и поэтому не будет добавлять код вызова деструктора при выходе её из области видимости. В плюсах программист, написавший перемещаемый тип должен сам явно некоторым образом изменить состояние перемещаемого (оригинального) объекта в конструкторе перемещения так, чтобы в его деструкторе не происходило лишних очисток. Т.е. код деструктора будет вызван всегда, будет менее эффективен чем деструктор не перемещаемого типа и будет некоторое состояние, в котором переменная будет не вполне понятно как себя вести.
483 2845775
>>45667

> а после мува переменная принимает unspecified state


Какого ещё мува какой переменной?
В программе просто подменяются указатели на данные.

> расходы в рантайме (изменение состояния и лишние проверки в деструкторе).


В каком нахуй рантайме, программа компилируется в машинный код, алё.
>>45722

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


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

>Предыдущей попыткой сделать функциональный системный язык был окамл, ну ещё атс. Предшественник раста - клин (а также дюжина вариаций на тему всяких реджион эмэль).


Никто о них не знает и в компиляторы их не подвезли.

>Язык без указателей со статической типизацией - джава, сишарп, свифт, го.


А хули не скала и тейпскрипт? Давай все подряд перечисляй. Че несет, пиздец блять.
484 2845797
>>45758
"Переменная" это абстракция языка, она может быть на стеке и/или на регистрах. Но в данном случае поскольку у нас объект, поэтому он так и так лежит на стеке.

> В обоих случаях происходит копирование данных (которое в некоторых случаях может выкинуть компилятор для оптимизации).


Этот мув специально ввели что бы не копировать жирные объекты и массивы, особенно если они не нужны, а просто подменить/переписать указатели.
Пей короче таблетки.
485 2846038
>>45775

>Какого ещё мува какой переменной?


>В программе просто подменяются указатели на данные.


Переменной, которая была аргументом вызова std::move(). Конкретные действия при муве зависят от программиста, который реализовал её тип.
>>45775

>В каком нахуй рантайме, программа компилируется в машинный код, алё.


Во-первых, помимо копирования (неглубокого, а то ведь доебёшься) данных при муве происходит изменение состояния оригинальной переменной (та самая "подмена указателей", про которую ты писал). Это всё явно пишется в конструкторе перемещения. Во-вторых, деструктор будет всё равно вызван и важно, чтобы он не разрушил данные, которые были перемещены. Даже если мув тривиален и просто заменит указатели на nullptr, то всё равно будет проверка на null при освобождении памяти, которую компилятор сгенерирует для тебя. В более сложных случаях это будет сопровождаться триллионом других телодвижений, можешь деструктор той же строки из стандартной библиотеки глянуть для общего развития. Всё это происходит в рантайме, в отличии от раста.
>>45797

>"Переменная" это абстракция языка, она может быть на стеке и/или на регистрах. Но в данном случае поскольку у нас объект, поэтому он так и так лежит на стеке.


А про кучу ты слышал? Можно ли переменную переместить в кучу? Подсказка: в этом примере с пушем строки в вектор, где оказываются данные, описывающую строку, после перемещения, если вектор на стеке представляет из себя три числа?
Просто как-то принято так говорить, чтобы разделить местонахождение данных, что-ли. Но если ты считаешь это неправильным, то не буду спорить.
Специфика раста в том, что после передачи владения, данные хоть и остаются лежать на стеке, но получить доступ к ним по имени переменной невозможно.

>Этот мув специально ввели что бы не копировать жирные объекты и массивы, особенно если они не нужны, а просто подменить/переписать указатели.


Для C++ это действительно так. Для раста это побочный эффект.
486 2846162
>>45740
Ну очевидно тот анон имел в виду поинтеры с арифметикой и возможностью отстрелить себе ногу еблей в память. В джаве как бы "указатели" тоже есть.

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

Скала и тайпскрипт не являются/задумывались заменой крестам, а джава и сишарп - задумывались. Го и свифт - это буквально ровно то о чём ты выше просил, компилируемые системные языки с безопасной работой с памятью без непонятных быдлу типа тебя концепций, притом свифт ещё и с нормальным современным дизайном (насколько это было возможно в рамках тз).
487 2847047
Приглядываюсь к расту, но не могу понять, как на нем правильно кодить? Насколько я понимаю, раст не совсем ооп-язык и всякие там наблюдатели не очень удобно на нем реализуются
488 2847205
>>47047

>Насколько я понимаю, раст не совсем ооп-язык и всякие там наблюдатели не очень удобно на нем реализуются


Почему? В расте отсутствует наследование в понимании ООП языков, но все эти паттерны проектирования можно хоть на C реализовать. Раст вполне себе предоставляет полиморфизм с динамической диспетчеризацией. Вот набросал тебе пример наблюдателя. Но я вкатун, наверное можно сделать идиоматичнее. Это просто калька с плюсов/джавы.
https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=1bf1203db3a58c624864b45db54e847f
489 2847562
>>47047
Для меня лучше работает парадигма "Си с доп. плюшками". Минимум абстракций, структуры используются в качестве контейнера, а их собственная логика ограничена валидацией, свободные функции. Замыкания для реализации инверсии зависимостей.

Когда люди пытаются обобщить всё подряд, получается какой-то ёбаный пиздец.
490 2847620
Какие есть годные либы для консольного юзеринтерфейса?
491 2847650
>>47620
Ratatui
492 2847658
>>47650

> Moreover, the library does not provide any input handling nor any event system and you may rely on the previously cited libraries to achieve such features.



Ок, а нормальное что-то есть?
493 2847795
>>47658
А ты не очень сообразительный, да? Выше этой строки как раз есть previously cited libraries, которые и делают input handling и event system
494 2847827
>>47795
Перечитай пост, на который отвечаешь.
495 2852086
>>46038

> при муве происходит изменение состояния оригинальной переменной


Происходит "перемещение" данных:

https://godbolt.org/z/dhx61cfv4

При этом да, адрес на стеке не подменяется, что хорошо.
Подменяются тупо указатели на данные внутри класса, и видимо данные всегда алоцируются где-то в памяти а при выходе из процедуры деструктор класса их очищает.
Мудреное ооп в плюсах, зато программа сама себе рантайм.
496 2852464
>>52086

>Происходит "перемещение" данных:


Которое заключается в копировании внутреннего представления и изменении состояния оригинальной переменной. Чтобы убедиться можно открыть исходники стандартной библиотеки.

Перемещающий оператор присваивания вызывает _M_move_assign():
https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/bits/stl_vector.h#L766

_M_move_assign() в лучшем случае создаёт пустой вектор, потом подменяет внутреннее представление целевого вектора представлением оригинального вектора и наконец подменяет внутреннее представление оригинального вектора представлением пустого вектора. В худшем случае производит поэлементное копирование всех элементов оригинального вектора, а потом его очищает. Всё это в процессе сопровождается созданиями аллокаторов, аллокациями в худшем случае и многочисленными деструкторами.
https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/bits/stl_vector.h#L1961

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

Ну и вишенка на торте — сравни с мувами в расте: >>07748. Скопирую картинку для удобства, подробное описание в том посте. Мув в расте это простое копирование внутреннего представления. Ничего лишнего не создаётся, не меняется и уж тем более не аллоцируется. Дроп вызывается однократно. Это просто минимальный минимум. В плюсах такое НЕВОЗМОЖНО.
497 2852498
>>52464
Я тебе принес ассемблер без оптимизаций, в котором:

allocator()
vector()
~allocator()
test(): {
vector()
vector=operator()
}
test::print()
~vector()
~test()
ret

Всё. один алокатор за всю программу, и поинтер на данные в структуре, через (size_t)(&vec[0]) можно убедиться что внешний перед классом и внутри класса Test после присваивания указывают на один и тот же адрес, а вот внешний после вызова конструктора класса Test указывает на 0.

При этом функции в секции main: функции мува не вызываются хотя внизу там все варианты присутствуют, все что есть в stdlib.
498 2852562
>>52498

>через (size_t)(&vec[0]) можно убедиться что внешний перед классом и внутри класса Test после присваивания указывают на один и тот же адрес, а вот внешний после вызова конструктора класса Test указывает на 0.


Это и есть изменение состояния внешнего. Что сказать-то хотел?

>Всё. один алокатор за всю программу


В данном конкретном случае это так. Про аллокации я говорил для худшего случая. А вот данном конкретном примере из лишних телодвижений создаётся пустой вектор (строка 445), разрушается объект аллокатора (строка 447, кстати не пойму где он создаётся), дважды свапаются представления векторов (строки 450 и 453), создаётся пустой вектор m_data (строка 196), потом он же разрушается (строка 465), разрушается временный вектор (строка 88), а так же ещё куча какой-то хрени, в которую мне погружаться лень.

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

Ну и в конце концов я не понимаю, что делает обсуждение стандартной библиотеки плюсов в треде раста. У плюсов своего треда нету что-ли?

Видимо, ты пытаешься утверждать что мув в расте не вносит ничего нового по сравнению с плюсовым и сделать на этом основании вывод о бесполезности раста, если я конечно продолжаю общаться с тем же человеком. То что это абсолютно не так видно и по примеру использования (>>44844) и по деталям внутренней реализации (>>52086). Не понимаю, что тут можно ещё размусоливать.
499 2852661
Как обстоят дела по работе на сабже? Европы/Америки и прочие загнивающие для меня открыты
500 2852672
>>52661

>Как обстоят дела по работе на сабже?


В основном криптоскам и скамостартапы.
501 2852677
>>52672
Ну бабки то есть? Простых не phd самоучек на работу берут?
502 2852679
>>52677

>Ну бабки то есть?


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

> phd


Такие в больших корпах в RD отделах работают. Наверное, единственная стабильная работа на расте.
503 2852696
>>52562

> Видимо, ты пытаешься утверждать что мув в расте не вносит ничего нового


Да, не вносит.

> сделать на этом основании вывод о бесполезности раста


> если я конечно продолжаю общаться с тем же человеком.


Да, с тем же человеком.
Я не пользуюсь мувами в плюсах и мне не нравится раст за то что он чуть более чем полностью весь состоит из вот таких решений "не как у всех".

Но в данном случае я просто спорю с утверждением что это некое ноу-хау а мув это совсем другое. Именно что оно и есть. По классике передача данных осуществляется либо указателем либо копией. Всё.
В php например все данные передаются копией, как в си.
Чтобы передать ссылку на данные нужно явно проставлять ссылку funct(&a)
В джаваскрипте все прототипное указателем. Хочешь избежать одновременного доступа к одним данным - копируй.

В плюсах пустились во все тяжкие, сперва функции не которым ты явно передаешь ссылку, а которые сами решают, но хуй с ним к этому как то привыкли, а вот функции которые еще и забирают данные это пиздец к которому привыкнуть сложно.
Однако это уже не выглядит как пиздец если этого поведения ожидаешь всегда, как в расте. Вопрос только стало ли от этого всем удобней.
Для меня раст это квинтессенция самых плохих решений в одном аккуратно упакованом и поданном продукте. Система сборки завязанная на один анальный репозиторий, как в говноде.
Ублюдочные let mut как комплитеры в свифте. Которые нихуя не функциональное и не асинхронное программирование. Асинхронщина это вон промисы в джаваскрипте или QFuture в qt.
Навязанная экономия символов в одном месте и избыточное буквописание в другом, навязанное калбеканье и присвоение переменных.
У меня свой стиль, почему я должен писать и оформлять код так как любит какой то пидор из мозилы?
В общем язык параша редкостная, хотя сама идея то здравая, вместо ооп пойти в функциональщину имитирующую ооп, компилировать программы с lto, с профилировкой-хуевкой, дать из коробки валгринд и мемори санитайзер, но опционально включаемый выключаемый.

Все вроде правильно но по итогу какая то хуйна "не такая как все". Которую ещё завтра некрософт подгребет, а про форк большинство людей и не слышали.
503 2852696
>>52562

> Видимо, ты пытаешься утверждать что мув в расте не вносит ничего нового


Да, не вносит.

> сделать на этом основании вывод о бесполезности раста


> если я конечно продолжаю общаться с тем же человеком.


Да, с тем же человеком.
Я не пользуюсь мувами в плюсах и мне не нравится раст за то что он чуть более чем полностью весь состоит из вот таких решений "не как у всех".

Но в данном случае я просто спорю с утверждением что это некое ноу-хау а мув это совсем другое. Именно что оно и есть. По классике передача данных осуществляется либо указателем либо копией. Всё.
В php например все данные передаются копией, как в си.
Чтобы передать ссылку на данные нужно явно проставлять ссылку funct(&a)
В джаваскрипте все прототипное указателем. Хочешь избежать одновременного доступа к одним данным - копируй.

В плюсах пустились во все тяжкие, сперва функции не которым ты явно передаешь ссылку, а которые сами решают, но хуй с ним к этому как то привыкли, а вот функции которые еще и забирают данные это пиздец к которому привыкнуть сложно.
Однако это уже не выглядит как пиздец если этого поведения ожидаешь всегда, как в расте. Вопрос только стало ли от этого всем удобней.
Для меня раст это квинтессенция самых плохих решений в одном аккуратно упакованом и поданном продукте. Система сборки завязанная на один анальный репозиторий, как в говноде.
Ублюдочные let mut как комплитеры в свифте. Которые нихуя не функциональное и не асинхронное программирование. Асинхронщина это вон промисы в джаваскрипте или QFuture в qt.
Навязанная экономия символов в одном месте и избыточное буквописание в другом, навязанное калбеканье и присвоение переменных.
У меня свой стиль, почему я должен писать и оформлять код так как любит какой то пидор из мозилы?
В общем язык параша редкостная, хотя сама идея то здравая, вместо ооп пойти в функциональщину имитирующую ооп, компилировать программы с lto, с профилировкой-хуевкой, дать из коробки валгринд и мемори санитайзер, но опционально включаемый выключаемый.

Все вроде правильно но по итогу какая то хуйна "не такая как все". Которую ещё завтра некрософт подгребет, а про форк большинство людей и не слышали.
504 2852737
объясните популярно, почему в константных выражениях можно использовать циклы while и loop, но нельзя for?
505 2852827
Так что, мне вкатываться в язык будущего раст или нет?
506 2852864
>>52827
Что значит вкатываться в язык Х? Язык в программировании нихуя не значит, потому что они все учатся за пару недель-месяц или даже по ходу работы. Куда важнее знать предметную область и общие принципы разработки, поэтому бери сишку/плюсы и изучай основы своей области. А когда понадобтся раст, то осилишь его за кратчайшие сроки. Раст, как первый ЯП, полная хуйня.
507 2852876
>>52864

> поэтому бери сишку/плюсы и изучай основы своей области. А когда понадобтся раст, то осилишь его за кратчайшие сроки. Раст, как первый ЯП, полная хуйня.


Не, раст у меня 5 будет. Но после шарпов второй по тому, насколько кайфово с ним работать.
508 2852912
>>52696
Ну а мне всё нравится. Желаю тебе найти такой же язык. Не очень понимаю правда, что ты забыл в этом треде.
509 2853016
>>52912
Я вообще искал плюсотред.
Но его нигде нет. Видимо тамошние обитатели все таки нашли работу в пятёрочке.
По поводу "бесполезности раста", его бесполезность связана прежде всего с отсутствием гуев, сетевых и прочих фреймворков.
С другой стороны его позиционируют как замену си, то есть этакий библиотечный системдизайн-левел, но лично для меня не совсем понятно как на него со всеми его ограничениями и правилами напяливаться. Даже мозила не все переписала и как баги были в их песочнице так и остались.
510 2853425
>>53016

>Я вообще искал плюсотред.


>Но его нигде нет. Видимо тамошние обитатели все таки нашли работу


>тред висит на главной

511 2853442
>>53425
Когда искал (на прошлой неделе) небыло.
А теперь мне уже похуй.
И даже немного хочется раст в попку примерить. Так на полшишечки, вдруг понравится.
512 2853447
>>52696

>Система сборки завязанная на один анальный репозиторий, как в говноде.


Давно сделали возможность пользоваться хоть несколькими анальными репозиториями, хоть по репозиторию на зависимость https://doc.rust-lang.org/cargo/reference/registries.html
513 2853805
>>52737
for требует итераторы, трейты в const еще не работают.
514 2853887
>>52737
>>53805
while тоже нельзя. Точнее можно и while и for, но это бесполезно чуть менее чем полностью, результат будет одинаковый.

На пальцах: чтобы использовать цикл в константном выражении необходимо чтобы он всегда возвращал значения одного типа. Цикл while (и for, который по сути синтаксический сахар для while и итераторов) неявно возвращает значение типа unit, т.е. (), когда условие выполнения становится ложным. Поэтому даже если внутри него ты сделаешь break, ты не сможешь вернуть через него значения других типов, иначе код просто не скомпилируется. В компиляторе сделали зачем-то отдельную ошибку для этого, наверное это вводит в заблуждение, но суть именно такая.
С loop всё просто, все выходы из него описываются явно, и возвращаемое через break значения могут быть любых типов, поэтому там можно вернуть что-то вменяемое.

Надеюсь правильно понял вопрос.
515 2853896
Пример вдогонку: https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=19afb57b070443d03c8c778259ef3180

Типа какое значение должно быть у переменной x? Не понятно. Если убрать 7-ую строчку то всё скомпилируется и отработает. Если при этом заменить цикл while на for - тоже:
https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=4c1642de19c36110ed8973e85213a182
516 2854808
>>01496
Радует, что убийц сиговна становится все больше. Давно пора шатать системные скрепы. В других направлениях программирования технологии постоянно выходят новые, а старое нещадно отправляется на парашу, а в системке до сих пор пишут на говне 70-х годов отказываясь от прогресса и удобств.
517 2854821
>>54808

> В других направлениях программирования


В каких

> постоянно выходят новые, а старое нещадно отправляется на парашу


Какие новые технологии? Уж не ооп ли с интерпритируемым кодом?

Новых систем программирования с доминированием архитектур типа интела нет и не предвидится.
518 2855269
И чего вы говорите что медленно компилируется? https://www.youtube.com/watch?v=gcBJ7cPSALo (минута 31:50) Добавил норм крейт, и за пару сек скомпилилось
519 2855431
>>55269
На си конфигурируют сборочный скрипт с -О0 в компилерфлагах и компилируют с make -j4 если проект большой.

В карге мало того что надо курить полную документацию на этот ебучий ini файл и придумать костыль для имитации гибкости сборки, так еще и фронтенд не такой как все. Альтернативу llvm в виде gcc или icc выбрать просто нельзя.
520 2855453
>>55431
Ты похоже уже накуренный.
521 2855457
>>11894
Тут не упомянуты одни из основных фишек раста, за которые его терпят - перформанс выполняемого кода, и скомпилировалось=работает
522 2855460
>>55457

> перформанс выполняемого кода, и скомпилировалось=работает


Это потому что как я и говорил, компилятор и опции компиляции по умолчанию (вроде lto и раскрутки циклов) запихали люди знающие в этом толк.

Однако не знающие что такое профилировка (нигде не нашел опцию профилирования программы), что может говорить о том что даже это делали не инженеры с научным знанием и пониманием, а просто опытные говнокодеры.
523 2855657
>>54821

>Какие новые технологии?


Пакетный менеджер и сборщик из коробки лол

>>55431

>карге мало того что надо курить полную документацию на этот ебучий ini файл


2 минуты в гугле

>придумать костыль для имитации гибкости сборки


так напиши makefile/build.rs, чо бухтеть-то?

>Альтернативу llvm в виде gcc или icc выбрать просто нельзя.


Не так быстро, ковбой https://github.com/rust-lang/rustc_codegen_gcc

>>55460

>нигде не нашел опцию профилирования программы


А где ты искал? Первый результат по запросу "rust performance profiling" в гугле даёт ссылку на https://nnethercote.github.io/perf-book/profiling.html
524 2855668
>>55457

> скомпилировалось=работает


Дежурно напоминаю, что это мем хаскель-коммунити (и вообще тайп-тиори-тусовки). Это ироничное выражение. Оно не подразумевает, что на самом деле скомпилировалось=работает. Примитивная статическая типизация (систем ф и аналоги) позволяет отловить лишь ограниченное число примитивных ошибок в коде.
525 2855703
>>55657

> Пакетный менеджер и сборщик из коробки лол


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

> так напиши makefile/build.rs, чо бухтеть-то?


Так и на нормальном gnu make наверное можно написать проблема то в том что компилятору нужен конфиг для связи файлов и модулей его все равно надо будет генерировать.

>This is a GCC codegen for rustc, which means it can be loaded by the existing rustc frontend


Переводить надо? Судя по всему да и с пояснениями - фронтенд Rustс может использовать альтернативный бакенд. Что бы раст появился на архитектурах на которые llvm не завезли.

> "rust performance profiling" в гугле даёт


Вот и авторы раста не вдуплили сразу що це и зачем. Man https://kobzol.github.io/rust/cargo/2023/07/28/rust-cargo-pgo.html
526 2855766
>>55703

>Судя по всему да и с пояснениями - фронтенд Rustс может использовать альтернативный бакенд


А что не так-то?
527 2855820
>>55766
То что это напяливание фронтенда на библиотеку из gcc, причем патченый форк, и все в таком духе.
Это опять таки к вопросу о том как авторы раста продумывали его будущее.

Ответ: никак чисто высрали инструмент под свою задачу - xml json и так далее парсера. Посколько современные браузеры на моторолах 68k и прочих легаси armv6 работать все равно не могут, то берем модный молодежный llvm.

Но ты можешь дальше кормить себя верой что это на замену си все изначально разрабатывалось.
3f34bca7640ff370.png65 Кб, 561x411
528 2856981
>>00762 (OP)
Всем ???? поцоны!
529 2856988
>>56981
Забавно, когда си-подобно-блядки обвиняют лисперов в том, что у них СКОБОЧКИ
530 2857391
>>56988
Когда этот синтаксис задумывался никто не собирался его применять с лямбдами, в отличии от лиспа. Замыкания можно вынести в отдельные переменные, тогда и вложенности не будет и читать станет легче.
531 2857417
>>57391

> применять с лямбдами


Да там и без лямбд скобочек больше и главное они на полэкрана размазаны

> вынести в отдельные переменные


Чел, монады...
532 2857693
>>57417
Открой код нормального проекта на сях, например ядро линукса. Там нет такого джаваскриптового стиля. Но в целом соглашусь, выглядит кошмарно и действительно встречается в си-подобных языках. Либо косплей на джаву, не знаю что хуже.
533 2857874
>>57391
Там вопрос как я понимаю не к вложеным калбэкам, а к вот этой хуйне ?!?!?!!???
Ну и выходящий отсюда вопрос к ретёрнам.
534 2858186
>>56988
Зачем лишп, если в котлине немного лямбды развиты и рекурсии?
editedimage(5).jpg25 Кб, 696x596
535 2858268
>>58186

> скотлин


Убери нахйу отсюдова.
536 2859469
>>58268
У них же тоже есть компиляция в говно-llwm? Не?
537 2859470
>>59469

>llvm


Не буду травмировать Сережу.
IMG20230616203656.jpg45 Кб, 417x503
538 2859571
>>59469
Научили фронтенд выдавать llvm-ir вместо байткода вот и все.
Алзо: https://discuss.kotlinlang.org/t/why-is-kotlin-native-much-slower-than-jvm/10226

Язык созданный для рантайм исполнения всегда будет плохо компилироваться, у него нет макрасов/инлайнов и прочих штук которые в статисеские языки вводят специально что бы программист помогал компилятору убирать из программы ненужные прыжки и лишний код. Рантайм языки в этом не нуждаются так как их на лету многократно перекомпилирует jit с pgo и агрессивными оптимизациями.
539 2860455
>>59571
А что думаешь о zig? кроме того что он еще в бете
540 2860463
>>60455
Ну он же как раст, что о нем думать?
541 2860568
>>55668
Я с тобой не совсем согласен в части того что они примитивные в отладке. Например двойное close() на объект, мутация в процессе итерации, и прочие вещи как дабл-фри. Особенно когда дошел до многопотока.
542 2860569
>>55820

>на замену С++ все изначально разрабатывалось.


/fixed
543 2860571
>>56981
Зачем ты запрещаешь людям писать на хорошем языке так, как им хочется? Тебе туда -> /po/раша
544 2860964
>>60463
К счастью второе такое макросное говно, с анальным ограничениями и костылями исправляющие эти анальные ограничения - делать пока никто не собирается.
545 2862720
У меня не одного же есть ощущение о Расте как о "песочнице"? Вроде бы достаточно проектов, интересно выглядят - но они все с плашкой "в разработке, много ключевых функций отсутствуют". К примеру Tauri, Bevy, Slint... и так далее. Многие закрываются просто так, Amethyst закрылся и всё. Так я до сих пор и не вижу полноценного готовго проекта на Расте. А жаль, язык мне вот очень нравится.
546 2862752
>>62720
Из того, что сам регулярно юзаю и знаю что оно написано на расте либо использует его в значительной мере: firefox, fd, spot. Ещё из популярных проектов могу назвать alacritty и ripgrep. Наверняка есть куча других. До масштабов C/C++ конечно ещё далеко.
547 2862866
>>62720
Да везде отваливаются, только тут выбора/ассортимента поменьше и сильнее заметно. Ну и всяким монстрам вроде qt, unreal итп уже вряд ли получится отвалиться, а мелкие вполне.
548 2863836
>>62866

>Ну и всяким монстрам


Можно ли wgpu назвать местным "монстром"? Я так понимаю любая rust библиотека где нужно что-то рисовать использует её.

К слову - я вот вообще новичок в расте, и мне wgpu слишком уж запутанным показался как-то. И сразу ещё вопрос wgpu при компиляции нужно указывать какой API использовать OpenGL, Dx12, Metal и так далее или он на ходу может самый оптимальный выбирать при запуске программы?
550 2863845
>>63843
Спасибо. Хотя странно, на гите написано что dx11 в процессе
551 2863958
Поясните пожалуйста за RustRover. Лично мне больше нравятся JetBrains IDE чем vsCode, можно ли уже использовать RR как основную среду разработки не смотря на значок Preview? И когда она выйдет будет ли комьюнити версия как с IntelliJ?
552 2864022
>>63958

> можно ли уже использовать RR как основную среду разработки не смотря на значок Preview?


Можно.

> И когда она выйдет будет ли комьюнити версия как с IntelliJ?


Не будет.
Screenshot14.png86 Кб, 856x586
553 2864233
Iced станет быстрее
554 2864237
>>64233

>2022


:)
556 2866342
2021-01-07
Generational references 2.3x faster than reference counting (unoptimized)
https://lobste.rs/s/sglvcc/generational_references_2_3x_faster_than
557 2866399
cargo careful is a tool to run your Rust code extra carefully -- opting into a bunch of nightly-only extra checks that help detect Undefined Behavior, and using a standard library with debug assertions. For example, it will find the error in the following snippet:

fn main() {
let arr = [1, 2, 3, 4];
let slice = &arr[..2];
let value = unsafe { slice.get_unchecked(2) };
println!("The value is {}!", value);
}
558 2867166
Как проидексировать строку? Собирать в вектор а потом обратно дохуя накладно же.
559 2867357
>>67166
Какая задача? Если что-то уровня литкода — удобно использовать получать представление в виде байтов с помощью as_bytes(). Ну а в общем случае итерироваться через chars().
560 2867759
Как стать таким же компетентным как аноны которые разбирали как мувы в расте и плюсах работают в ковыряясь в ассемблере...
561 2867994
>>67759
Это не так сложно, как кажется. Если ты осилил раст, то ты легко осилишь асм. Сложно найти хорошие материалы для обучения, но выучить что-то с хорошими материалами совсем не сложно, было бы желание.
562 2869052
>>67759
Учить си и системщину (это еще будет интересно). С раста начинать в системщину погружаться, это как через жопу гланды лечить, тебя и так ждут трудности и бойлерплейт, а тут еще специфичные рамки, в которые даже тру системщик охеревает.
Screenshot from 2023-10-07 22-21-42.webp13 Кб, 666x757
563 2869883
Смотри, анон, какая диковина: у меня есть дженерик трейт Externalizer, который как бы и не дженерик вовсе. Тело функции прямо в объявлении трейта, а в impl я ему только пропихиваю ассоциированные типы. Зачем это мне? Да вот, хочу растащить свой проект на трейты, а в точке сбора я через вот такие impl соберу всё в кучу и как-то должно поехать.
И вот какая проблема: с просто трейтом всё ок, объявляю ассоциированный тип и сразу использую функцию из него. Но вот как быть со структурой? Внутри impl структуры такой фикус не провернуть, а очень хочется, т.к. гораздо удобнее, чем прописывать 100500 дженерик типов, используемых в структуре, во все 100500 мест, где эта структура будет использоваться.

Поможите, люди добрые, с меня ни хуя.
564 2871329
>>66342

>Vale


>Scala 54.7% C++ 42.2%


Когда он своё поделие на самом себе перепишет, тогда и приносите, будет интересно.
565 2874234
Думал выучить раст для контроллеров, но что-то он там нахуй никому не нужен :(
566 2874799
Хочу вкатиться в раст, какие подводные?
Или не страдать фигней и взять управляемые языки типа го, жабы, шарпа?
567 2874934
>>74799
Цели у тебя какие?
568 2874935
>>74799
Уровень контроля возрастёт, станешь докапываться до близких, с хуя они не такие чёткие, как конпилер раста.
569 2875424
>>74934
Вкатиться в раст.
570 2875427
>>74234
Он там, вроде, еще херова вписывается.
571 2875528
>>75424
Тогда не вкатывайся
572 2875943
>>74934
>>75528
Ты сидишь такой, пытаешься быть умным, дать совет из области задач, как делают другие вумные люди, с другими языками, но смешно тут то, что это для раста не работает. Раст буквально, это только бэкенд и причем нередко крипта.

Ты перед тем как рисоваться и пытаться казаться эрудированным в вопросе, хотя бы подумай сначала.
573 2876005
>>75943
Хуя ты, шиз, из 5 слов сколько выводов сделал. Таблетки кончились?
574 2876621
>>76005
Твой уровень, это эмуляция чатгпт для ньюфажного треда, ты даже не уловил мысль.
Тебя спрашивают какие подводные, ты шаблонно и не думая спрашиваешь какие цели.
Цели мои это узнать все подводные этого языка.
575 2876759
>>76621
Единственный подводный, который встретил я: из-за того, что зависимости добавлять легко и приятно (в растовере оно само предлагает добавить крейт в зависимость просто по вызову), проект может раздуться и начать тормозить на анализе и сборке. А ещё тормоза, если у тебя много структур с derive макросами.
Ну, а ещё там такой контролль, я выше писал уже.
576 2876793
Лекции о языка программирования Rust в ФТШ (обновляют)
https://www.youtube.com/playlist?list=PLMdakVOACD9Ww337BXmG7AkozZalW0W--
577 2876794
>>76759

>растовере


Что это?
578 2876804
>>76794
Это как старовер, только растовер.
https://www.jetbrains.com/rust/
579 2876864
>>76793
Говно кинул, в одном месте слайды тормозят, в друго половину видео звука нет.
Хз зачем такое выкладывают вообще
Screenshot from 2023-10-14 12-09-41.webp74 Кб, 871x496
580 2878417
Смотрите, аноны, тут уже мерч для хейтеров раста подвезли.
581 2878593
>>78417
Успешный менеджеры раста не зря ограничили использование логотипа. Бизнес идет, караванщики лают.
582 2878598
>>76759

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


С условиями сколько эта штука жрет памяти, она должна уже за тебя писать, а не просто угадывать слова популярных крейтов.
Screenshot17.png53 Кб, 885x291
583 2879027
Я не очень понял, этот чел на пикреле прогер из Твича что ли ?
Screenshot from 2023-10-14 21-42-17.webp25 Кб, 760x228
584 2879058
>>78598

>жрет памяти


Пущай подавится.
585 2879146
>>79027
Выохдит что так. Почему ему им не быть?
586 2880351
Каждый раз забываю про раст,
@
Начинаю вкатываться снова
@
Первая мысль, о как круто сделано, че я раньше бухтел
@
Спустя время смотришь кругом какое-то костылеварение, даже макросы, созданные победить костылеварение, сами по себе костылеварения.
@
Интерес падает до нуля.


Почему так?
587 2880429
>>80351
Не знаю, макросы тоже недолюбливаю, но некоторым прям кайф, смотри как элегантно кучу хуйни навалить можно..
588 2881755
>>80429
Что-то мне думается, что какой-нибудь zig или ему подобное, если получит покровителя, выстрелит куда сильнее раста. Хоть есть в расте плюшки и не плох он, но что-то с ним не то (имхо, конечно)
589 2881756
>>80429
Что-то мне думается, что какой-нибудь zig или ему подобное, если получит покровителя, выстрелит куда сильнее раста. Хоть есть в расте плюшки и не плох он, но что-то с ним не то (имхо, конечно)
590 2881987
>>81755
ГОвноланг тоже выстрелил сильнее раста, так что неудивительно, так и будет. Спойлер: 80% программистов оценивают язык по логотипу и синтаксису.
591 2881995
>>81755
zig для дохуя умных с полутора программистами в штате. Раст для тырпрайза больше подходит.
592 2882097
>>81987

>ГОвноланг тоже выстрелил


Тут не покровитель, тут прямо создатель - аж целый гугл. ГО на момент создания воспринимался для веба как жаба/свифт для мобилок или .net для винды. Даже Sun, когда создавали жабу, были не самой последней компанией в индустрии.
Скажем, если бы Го создавался в недрах некой компании уровня Basecamp, то даже если бы гугл взялся использовать его для пары проектов - не взлетело бы, ибо слишком серо, мало чем лучше того же Erlang (который взлетел из недр другой корпорации). Корпорации доверяют корпорациям, в общем.

И раст неплохо стартанул потому, что mozilla в 2013 (что-то примерно тогда анонсировали servo), это совсем не то, что в 2023.

В любом случае я не верю в успех zig, так как вот эта ниша "чуть более лучший си" кем только не штурмовалась и всё безуспешно. Тут надо или радикально лучше, или никак, а радикально - это раст. Показательный пример Objective-C - который, будучи в этой же нише, без поддержки эппл сразу сдулся, как и не было его.

Ну, ещё такое спонтанное замечание: на расте очень много пет-прожектов. Даже вот этот тренд "переписать на расте" существует потому, что писать на нём так приятно, что даже когда нечего писать своего, ручки чешутся хотя бы переписать чужое. Те же го или жаба такой любовью похвастаться не могут. Если сравнить число пет-проектов на количество вакансий, то раст тут будет впереди всех. Не думаю, что zig сможет обойти раст и в этом плане (tsoding на стриме написал игру на zig, долго плевался, а потом и вовсе переписал на Jai). Вот у какого языка есть шансы, так это у упомянутого выше Vale, но только после переписывания на самом себе и с нормальным тулингом.
593 2882586
>>82097
Ты реально думаешь, что успех языка это гугл? Рядом же он обосрался с дартом и тонной закрытых проектов. Я помню окружение шепталось аля - а что если гугл и го закроет и многие кроме мелких микросервисов боялись писать (из тех кто вообще хотел на вендерлок от гугла садится).
Го вывезли его киллер фичи и простота в противовес жабьего тырпрайзного ООП ужаса, даже не помешал откровенно халтурный дизайн языка, вот такая была огромная потребность если бы шарпы попенсорснули где-то в 2010 годах, го может бы даже не выстрелил. Так что как была альтернатива жабе, так есть и альтернатива сям.
594 2882590
>>82586

>Так что как была альтернатива жабе, так есть и альтернатива сям.


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

PS смешно, но я считаю, что нужны и более современные скриптовые языки, чем нынешний зоопарк костылей.
595 2882802
>>82586
Го они прям пиарили. Да, потребность была, да го её закрыл. А если бы гугл поставил на эрланг, то все бы учили его, как миленькие - стали же учить жабу для андроида. А если бы го родился не в недрах гугла, то и нах не был бы нужен.

>в противовес жабьего


Дак и я о том же - говнояз одной корпорации потеснил говнояз другой.

>обосрался с дартом


Просто дарт стал ещё одним языком для васма. Ну и вообще, с альтернативами жс сложно не обосраться, это ещё некрософт пыталась затащить бейсик в браузеры, если кто не помнит.

Это ж я всё о чем. Что расту не хватает поддержки крупных корпорастов, чтобы его взяли на вооружение мелкие, но и без этого его любят и используют потому, что он хорош. А вот всякие zig/crystal и прочие odin с таким уровнем ставки/поддержки корпораций (гугл переписал часть прошивки, дропбокс пару сервисов и т.д.) шансов не имеют.
596 2883179
>>82097
Раст > говно > моча > зиг > си > моча > говно > вале > говно мочи > ушат говна > цистерна с поносом > хохлы > джае

По сравнению с тем челом, который говнокодит джаи, даже Роб пайк выглядит как 9000айкью пиэйчди по компутер сосаенс.
597 2883182
>>82586
Гугл и логотип же. Ты у дарта помнишь логотип? То-то же.

Ну и не забывай, что дартодегенераты посреди дороги взяли и сделали другой говноязык и назвали его дарт джва ноль, забив на обратную совместимость. А насчёт го, емнип ним вышел в то же время (но не вышел логотипом, азаза).
598 2883274
>>83179

>вале


Чем тебе не угодил? Ты с Vala не путаешь? Норм язык будет, когда за ум возьмутся.
599 2883371
>>83182

>Гугл и логотип же. Ты у дарта помнишь логотип?


Ну да, именно поэтому, а не за зеленные потоки (без всяких асинк/ойвэй), статичный бинарь с кросскомпиляцией и выкинутое нахер ООП, что упростило сопровождение кода в разы.
600 2883467
>>83274
А, да, я его с одином перепутал.
601 2883922
>>83179

>Раст > говно


Проиграл чёт.
602 2884172
603 2884176
При dynamic linking как минимум теряется https://ru.wikipedia.org/wiki/Межпроцедурная_оптимизация
605 2884182
^ это будет в каждом компе. Тогда на динамическую линковку смотреть уже никто не станет
606 2884185
inb4 плагины
607 2884224
>>84172 >>84176 >>84180 >>84182 >>84185
Когда одной рукой яростно дрочишь, а другой столь же яростно доносишь мысль до пацанов с двача.
608 2884230
Formal Development of a Network-Centric RTOS

Описывается опыт применения TLA+ для создания спецификаций при разработке сетецентричной ОС реального времени (RTOS) и опыт моделирования спецификаций с помощью TLC.

Книга интересна в первую очередь тем, что описывает разработку реального коммерческого продукта. А ещё тем, что использование TLA+ и моделирование позволило оптимизировать архитектуру настолько, что в результате объём кода уменьшился на порядок для той же самой функциональности, что и у RTOS предыдущей версии — Virtuoso. Разработчики даже не подозревали о таком эффекте, для них он стал весьма приятным сюрпризом.

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

отсюда https://habr.com/ru/companies/yandex/articles/471012/
609 2884364
>>83371
Да, именно поэтому. Ещё вопросы?
610 2884851
>>84364

>Ещё вопросы?


Мог бы промолчать, но сейчас ты выглядишь как малолетний дигрод с завышенным юношеским максимализмом.
Отдельная одаренность самоутверждаться на анонимных форумах
611 2884975
>>84851

> переход на личности


Съеби в /б/, дурачок. У тебя спросили, есть ли ещё вопросы по теме обсуждения.
612 2887242
>>84975
Новый клоун? Ты откуда чудо?
613 2887249
Подведём итог. Раст - это уже не модно, всем Zig Heil

>Локомотив Rust-сообщества buttplug.io переходит на Zig.

614 2887250
>>84975

>есть ли ещё вопросы по теме обсуждения


Да кому ты нужен то, чудо.
615 2887272
>>87249
Исторический момент.
616 2887449
617 2887573
>>87249
Враки, враки.
618 2887841
>>87249
Зиг конечно неплох, но что может сравниться с чувством победы над ебаным копилятором раста в 4 утра после 3 часов ебли с ебаными FnMut?
зато я в них наконец-то разобрался, лол
619 2887986
>>87841

>но что может сравниться с чувством победы над ебаным копилятором раста в 4 утра после 3 часов ебли с ебаными FnMut?


Так тебе инструмент нужен или нужно самоутвердиться?
Мне кажется грустным, когда ты самоутверждаешься в достаточно не сложном расте, когда есть такой гигант как хаскель.
620 2888197
>>87986
Ну, если в твоем понимании самоутверждение = достижение понимания какой-либо неочевидной концепции, то тогда да, я самоутверждаюсь. Раст для меня - пазл, который мне хочется собрать. На других языках мне писать намного менее интересно.
А хаскель не пробовал, он вроде со сборщиком мусора, а это не подпадает под мои критерии.
621 2888497
>>87249

>Zig


Он еще не вышел 1 версии, там могут все переписать еще 10 раз
169788994863288932.jpg250 Кб, 1080x1920
622 2888711
>>87249
Бля, я думал это рофл АХАХАХАХААХАХА
623 2888719
У зига прикольный курс ziglings. Я его потыкал пару вечеров, язык понравилс, но с раста наврядли уйду в ближайшее время.
624 2888768
>>88197
Что-то ты сразу переобулся, ты сам пишешь о каких-то победах и как тебе они важны.

>но что может сравниться с чувством победы над

625 2888775
>>88497
Мне больше нравится контраст.
На релизном, натянутом на глобус языке, пилят только утилитки и осилили только серво, которое уже выкинули в какой-то фондейшен протухать. А на другом языке, в бете уже клипают продукты (из последних помню новый интерпретатор для жопоскрипта).
Слежу за обоими пациентами, интересен интузиазм в этом зиге у людей.
626 2888803
>>88768
Я употребил слово "победил" в значении "понял, как что-то работает". Жаль, что до тебя туго доходит.
627 2888842
>>88775
Ну так зиг это очередной БолженСи с нескучным синтаксисом, а у раста всё-таки порог входа и прорывные (для мейнстрима) концепции.
image.png355 Кб, 1200x947
628 2888866
>>88842

>прорывные

629 2888961
>>88866
Так это слово уже было употреблено с известной долей иронии, так что твой пик тут как-то излишний.
630 2888999
>>88775
Ты опять таблетки не принял, шиз? Затычка в каждой пизде лол
631 2889046
>>88775

>интересен интузиазм в этом зиге у людей


Зиг Хайль!
>>88842

>а у раста всё-таки порог входа и прорывные (для мейнстрима) концепции


Какой же кринж пиздец.
632 2889142
>>88999
Какие пьешь ты? Может и мне помогут.
633 2889144
>>89142
Сходи к врачу и спроси
634 2889149
>>88842
>>88961
Да ты просто эталонный гомункул маркетинга раста.
635 2889200
Ты же за го топил, почему перешел на раст?
636 2889203
637 2889219
>>89149
При чём тут маркетинг? тред опять полон школоты Раст - первый мейнстримный язык с аффинной системой типов первый немейнстримный язык с ней вышел в 90-ых, аккурат вместе с хаскелем, так что прорывные инновации уровня /б/ индустрии разработки ПО, как всегда. В зиге никаких новых теоретико-плтшных концепций не используется, это просто альтернативный синтаксис с неплохим тулингом и компилятором. Порог входа в него очевидно ниже, т.к. не надо ничего изучать.
638 2889256
>>89203
Вот потому я и говорю чтобы ты к врачу сходил, я про го ничего не писал в этом треде
639 2889528
>>88775

>продукты


И где оно в продакшене?

>из последних помню новый интерпретатор для жопоскрипта


покажи. Я на https://github.com/C-BJ/awesome-zig нашёл только парочку рантаймов типа ноды.

А на расте реально пилят интерпретаторы
RustPython
https://rustpython.github.io/

Scryer Prolog
https://github.com/mthom/scryer-prolog/ - пролог рабочий, сам использовал. Можно решать детские задачки на логику, задавая условия прямо на русском.

WebAssembly INterpreter
https://github.com/rhysd/wain
640 2889570
>>89528

>RustPython


Зачем это говно, когда есть си-пайтон?
641 2889603
>>89570
Позиционируется, как встраиваемое решение в проекты на расте.
Вообще, прочитай внимательно, на что я отвечаю, не в этом суть поста.
642 2890306
>>89528
Чел, ты... Под камнем походу живёшь. Bun - это новый нодежс. алсо ты точно понимат, шо такое рантайм?

При том в ответ ты кидаешь петпроекты уровня студенческих поделок, ну камон.
643 2890700
>>89528

>RustPython


Это все пет проекты коих в гит-хламе миллионы. Это так называемый попенсорс, использовать это как продукт чаще практически невозможно и нередко существует для галочки - "а что еще переписать на расте/другом языке", к той же херне относились всякие попытки написать на расте ОС, понятно никто всерьез не думал реально написать продуктовую ОС, это все несерьезные игрушки.
Вот серво был флагманским продуктом, но что-то пошло не так.
644 2890703
>>89219
Неожиданно, новый си с тулингом мне как раз и был нужен. Мне не надо второго С++ скрещенным с хаскелем, мне не нужно самоутверждаться на костылях лайфтаймов и макросов, мне тупо нужен низкоуровневый, но современный инструмент. Что он не бросает вызов, мне это не важно.
645 2890733
>>90703
Суть не в бросании вызовов, а в открывающихся новых возможностях. Но в целом я ж это и написал: порог входа ниже, поэтому популярность вероятна.
646 2890782
>>90700
Solana
647 2890896
>>90782
Не селен в МММ крипте, но если активно юзается, то да, это продукт, пускай и испачканный в крипте.
648 2891059
>>90896

>но если активно юзается


Только в одной соляне крутятся бюджеты небольших стран, объем торгов около миллиарда долларов в день. Это наверное петпроект

>МММ


>испачканный в крипте


Лол, ты и правда не селен
649 2891169
>>90306

>Bun - это новый нодежс.


Ебать, ты птица , дятел. Посмотри в педивикии, что такое интерпретатор. И посмотри, что такое Deno с которым Bun, типа, компетирует.

>>90700
Маня, ау, я писал про интерпретаторы, которые на расте, внезапно, есть, а на зиге, внезапно, нет, вопреки утверждению в псто, на который я отвечал.
650 2891308
>>91169
Школьник, съеби в прикреп.
651 2891334
>>90700

>Это все пет проекты


Buttplug.io - успешная продуктовая фирма, пишет на расте. А на твоём Зиг-Хайль! пишут только всякую муть в виде пет проектов.
Ebat.mp4552 Кб, mp4,
1600x900, 0:02
652 2891379
653 2891390
>>91059

>Только в одной соляне крутятся бюджеты небольших стран


Только во влажных фантазиях таксистов и грузчиков. Циферки может и большие, пока не начнут объемно в реал выводить.
654 2891395
>>90700
Firecracker и bottlerocket от amazon
Postgres-ml (и менее известные штуки на pgrx)
Wasmer/wasmtime
Oxy/pingora в cloudflare
Дрова для arm m1 gpu в asahi linux
Вообще втаскивание раста в ядро линукса (куда даже плюсы не втащили)

Норм пет-проекты? Шо там у зига по петпроектам
655 2891533
>>91390

>Циферки может и большие, пока не начнут объемно в реал выводить.


При таком раскладе и цена акций упадет и любая валюта рухнет, даже квартиры если все в одном городе Воркута например начнут продавать, то цена рухнет. Ты правда не селен
656 2891590
>>91533
Когда падают акции и валюта страдают все нищуки. Когда падают очередные виртуальные фантики горит жопа только у очередных лохов.
657 2891611
>>91590
И? Механизмы взлетов и падений там и там одинаковые, по сути рынок крипты почти тоже самое что и рынок акций. А то что страдают все от кризисов на фондовых рынков, то это все из-за того что этот рынок больше проникает в жизнь людей чем рынок крипты.
Вообще речь не об этом в треде, а о том что на расте написано много всего для крипты и он тут во всю используется.
658 2891756
>>91611
Я к тому, что крипта, особенно не самая популярная, это фуфло, от которого ничего не зависит по сути. Возможно пока не зависит, не берусь ничего утверждать. Причём единственная польза от раста тут — это то что он на слуху и это является преимуществом своего рода в глазах инвесторов. Сужу это по своему стартапчику, в котором нет места ни расту, ни блокчейну, но оно впихивается просто потому что так легче получить бабки на развитие проекта. А вообще я мимо проходил, не отвлекайтесь от своего увлекательного спора.
659 2891878
>>91533
Банковская масса денег нередко ограничен каким-то числом в котором они могут раздувать пузырь (поэтому и работает если не кризисы), а пирамида фантиков не ограничена ничем, просто объемы столь большие, что можно стричь очень долго пока не схлопнется. В тот же бетховен стригли народ несколько раз (только я помню два раза из крупных), но там столь много вливаний, от продавцов железа, мошеннических схем, бирживых игроков и вкатунов, что пока это все работает.

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

PS Будем честны от самого любимого всем языка, хочется видеть больше чем скам продукты, малвар и бесконечное переписывание утилиток. Тот же го стартовал рядом и уже наклепал флагманов индустрии.
660 2891939
>>91878

>Тот же го стартовал рядом


Ну, ты ещё со swift сравни, который тоже, как стартовал, так на нём сразу клепать и начали.
661 2891962
>>91878

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


В банках должен быть необходимый объем капитала, поэтому они более устойчивы, но это не спасает от того когда вкладчики массово изымают вклады, это немного другое. Здесь же я сравнил рынок крипты с рынком акций и там примерно тоже самое акции из доли в компании по сути уже давно превратились фантики для спекуляций особенно IT компании раздуты по полной, цена также ничем не ограничена и точно также стригут лохов в кризисы. А бетховен вообще последнее время ведет себя как индекс SP500 и обеспечен тем что используется как платежное средство.
662 2892036
>>00762 (OP)

>поможем вкатывающимся


Вот я вкатываюсь с годами Дельфи, Вижуалбейсика и Шарпа за плечами.

Почему я не могу сделать так:

> use std::collections::HashMap::<String, String> as StringHashMap;


?
663 2892052
>>92036
type StringHashMap =
664 2892252
>>92036
Хера тебе шарпа не хватило, только не говори что уперся в гц и не осилил unsafe или спаны в шарпе?
665 2892435
>>92052
Спасибо! Как надо было правильно гуглить, чтоб найти? Я гуглил специализшон женерикс и выгугливалось вообще не то.

>>92252
Там в гц крупные корпы упёрлись, держатели хайлоад серваков, куда уж мне. Теи не менее я раст учу потому что синтаксис нраица, и бдсм с боровингом нраица.

Сап, растаны!
Я читаю растбук, но некому показать домашки. Вот я сделяль.
https://pastebin.com/ReqzxBYK
Покритикуйте, плиз.
Screenshot from 2023-10-24 17-45-12.webp4 Кб, 394x189
666 2892467
>>92435
break тут зачем? Бегло глянул до этого места, скорее всего, косяков больше.
667 2892644
>>92467

> break тут зачем?


Бля не бейте. Здесь я при помощи фора вычисляю только первый символ в строке, а потом брейкаю цикл. Щас-то я уже узнал про слайсы и понимаю, как это тупо выглядит. Мне нужно было просто word.chars().next() взять и работать с ним.
668 2892646
>>92435
https://doc.rust-lang.org/beta/reference/items/type-aliases.html

>Покритикуйте, плиз.


По феншую всё делают через итераторы, но пока сойдет.
669 2892647
>>92646
То есть... Да.
image174 Кб, 1636x877
670 2892688
Я это упражнение так сделал, тоже не оптимально наверное. Неудобно с UTF-8 строками работать конечно.
671 2892865
>>92688
next().unwrap() замени на просто [0]
Ещё используй линтеры, напр. clippy - он многие подобные вещи подсвечивает автоматом.
672 2892873
>>92865

> используй линтеры


Да. Я mscode юзаю там при первом открытии раст-проекта скачивается и хайлайтер и линтер. Но погляжу и клиппи. Сравню.
>>92688

> Я это упражнение так сделал


Нот бэд, нот бэд. К концу третьего упражнения, я если бы переделывал первое, сделал бы уже примерно так.
1698170603380.png97 Кб, 410x221
673 2892904
>>92865
Клиппи прям ругнулся красным
1698172885409.png883 Кб, 700x933
674 2892973
Божечки! Какой охуенный язык!
675 2892991
>>92865

>next().unwrap() замени на просто [0]


Это ж итератор, у него нет такого оператора.
image132 Кб, 1119x703
676 2893036
С индексацией можно через as_bytes() написать, т.к. по условию задачи у нас латинский текст и важна только первая буква.
677 2893089
>>92435
Вот, пофиксил линтером и добавил своих любимых привычных штук в код.
https://pastebin.com/bSbvbVrD
678 2893119
>>93036
Вот да, а ещё там функциональщиной можно баловаться. Чудо какое, а!
679 2893432
Нефига тут школотье нанесло. И какова причина? Кто-то из идолов малолетних гениев видосик по расту снял?
680 2893884
>>92973

>Какой охуенный язык!


>>56981
681 2894051
>>93884
После унсафе не читал. Изъёбы нёрдов.
682 2894182
>>94051
Я тебе так скажу: большинство "програмистов" - это говнокодеры, которые или на дядю за копеечку, или пилят тетрис мечты. Мало кто пилит либы, которыми пользуются миллионы.
Тебе должно быть важно, чтобы именно ты случайно не наговнокодил уб в своём коде, а либы тебе пишут умные дяди при поддержке других умных дядей. Дяди пусть следят за unsafe у себя, а ты следи у себя. Тебе же никто паяльник в жопу не пихал, чтобы заставить этот unsafe использовать? Вот и ладненько.
683 2894371
>>94182

> Вот и ладненько.


Нет, не ладненько.
Мне тут этим выебоном с лямбдами как бы намекают, что язык плох, что является демагогией и профанацией. Это следует проговаривать вслух, чтобы мимокрокодящие нубы не испугались. Нельзя такие поползновения на тормозах спускать.

Я тут полгода назад размышлял над гипотетическим языком мечты, и набросал несколько набросков (эдакий доведённый до совершенства по моему мнению шарпопаскаль с нативным компилятором) и запостил скрины с псевдокодом на двач (в шарпотреде кажется, а может и нет). Каково же было моё удивление, когда мне аноны сказали:

> это же раст


Я загуглил и охуел. Язык моей мечты существует!
684 2894435
>>94371
Ааа, так ты об этом.
Да, и так можно, и эдак. Я тоже замечал, что многие неофиты стремятся закрыть проход новоприбывающим намёками "тут сложна, не идите сюда, только элитка поймёт", подразумевая под элиткой, конечно же, себя. Ну это такое детство в жопе играет, в любой теме такое есть.

Я, вот, ещё к Vale присматриваюсь, но до стадии селф-хоста только краем глаза.
685 2895017
>>94371
>>94435

>Язык моей мечты существует!


>тут сложна, не идите сюда, только элитка поймёт


>После унсафе не читал.


>Чудо какое, а!


Серега, когда ты пил свои таблетки, ты был лучше. И прекращай общаться с самим собой, ты меня пугаешь.
Screenshot from 2023-10-26 09-16-41.webp32 Кб, 721x735
686 2895020
>>95017
Ну, справедливости ради, нас, как минимум, двое.
687 2895044
>>95020
Для уважающего себя шиза - писать с разных браузеров и даже не знать об этом, это норм.
image.png1,1 Мб, 1053x1500
688 2895047
Какое мнение о книге? Много англ. книг, но скилла до свободного чтения не хватает, а базовая дока это вообще не серьезно.
689 2895083
>>95044

> уважающего себя шиза


Искать семёна среди Анона в 2к23 - вот настоящая шиза. Год за годом ты повторяешь одно и то же действие с надеждой на другой результат. Ведь все мы давно знаем, что мы здесь - один, общаемся сам с собой, с разных браузеров. Осознаём ответ на свой вопрос в момент заполнения капчи.
Тем чудовищней выглядит твоя болезнь - маниакальный поиск семёнов.

>>94435
Мой разум поразила концепция, в которой отсутствует Null, вместо него энум с данными. Концепция энумов с данными тоже поразила до глубины души. Опять, же наверняка всё это было раньше в других языках и наверняка это не новость и не предмет для восторгов, но хули поделать, у меня восторг! ООП без классов и с типажами - ваще охуеть! Лучше, чем сэкс. В том же шарпе просто бесила концепция "всё есть класс и для написания безклассовой функции используй директиву static и всё равно обращайся к функции через литерал имени класса" просто пиздец был. Кроме того я всегда задавался вопросом, если есть структы и интерфейсы, зачем тащить классы? Потому что в последних версиях современных языков функционал классов полностью распределился между структами и интерфейсами, а классы остались пятым колесом телеги, чистое легаси для обратной совместимости. И тут мне двач показывает концепцию типажей. А я всегда считал, что название для интерфейсов выбрано неправильно, как старый паскалист, я помню, что интерфейс - это сумма всех публичных членов объекта, которая в паскале выписывалась в отдельную секцию паскалевского модуля, а мне тут тулят, что интерфейс это отдельная программная сущность. Я нутром чуял, что должно было быть более подходящее название. И вот же оно: ТИПАЖ! У нас есть типы, и у нас есть типажи типов, которые описывают функционал, и есть имплементации типажей для типов, которые собсна, имплементируют функционал. Семантично! Идиоматично! Да еще и зерокост, да ещё и мемсейф.

Есть конечно и минусы. Я привык к функциям с опциональными аргументами, наподобие foo(bar: str, baz: int = 100){} здесь такого нет, печально. И еще что-то было раздражающее, не помню, что. Вспомню напишу.
689 2895083
>>95044

> уважающего себя шиза


Искать семёна среди Анона в 2к23 - вот настоящая шиза. Год за годом ты повторяешь одно и то же действие с надеждой на другой результат. Ведь все мы давно знаем, что мы здесь - один, общаемся сам с собой, с разных браузеров. Осознаём ответ на свой вопрос в момент заполнения капчи.
Тем чудовищней выглядит твоя болезнь - маниакальный поиск семёнов.

>>94435
Мой разум поразила концепция, в которой отсутствует Null, вместо него энум с данными. Концепция энумов с данными тоже поразила до глубины души. Опять, же наверняка всё это было раньше в других языках и наверняка это не новость и не предмет для восторгов, но хули поделать, у меня восторг! ООП без классов и с типажами - ваще охуеть! Лучше, чем сэкс. В том же шарпе просто бесила концепция "всё есть класс и для написания безклассовой функции используй директиву static и всё равно обращайся к функции через литерал имени класса" просто пиздец был. Кроме того я всегда задавался вопросом, если есть структы и интерфейсы, зачем тащить классы? Потому что в последних версиях современных языков функционал классов полностью распределился между структами и интерфейсами, а классы остались пятым колесом телеги, чистое легаси для обратной совместимости. И тут мне двач показывает концепцию типажей. А я всегда считал, что название для интерфейсов выбрано неправильно, как старый паскалист, я помню, что интерфейс - это сумма всех публичных членов объекта, которая в паскале выписывалась в отдельную секцию паскалевского модуля, а мне тут тулят, что интерфейс это отдельная программная сущность. Я нутром чуял, что должно было быть более подходящее название. И вот же оно: ТИПАЖ! У нас есть типы, и у нас есть типажи типов, которые описывают функционал, и есть имплементации типажей для типов, которые собсна, имплементируют функционал. Семантично! Идиоматично! Да еще и зерокост, да ещё и мемсейф.

Есть конечно и минусы. Я привык к функциям с опциональными аргументами, наподобие foo(bar: str, baz: int = 100){} здесь такого нет, печально. И еще что-то было раздражающее, не помню, что. Вспомню напишу.
1698305490.png53 Кб, 738x449
690 2895103
>>95083

>функциям с опциональными аргументами, наподобие foo(bar: str, baz: int = 100){} здесь такого нет


Кстати, пока писал пост, придумал, как реализовать такой функционал. На уровне пользователя можно предварительно создать нужный структ с нужными полями, в функцию передавать экземпляр, пикрелейтед, кароч.

Но надо, чтобы на уровне языка это присыпали сахарком в виде старых добрых функций с опциональным аргументом. Компилятор просто берёт все аргументы функции, которые ему поданы, делает из них вышеописанное и делает еще одну функцию с единственным структ-аргументом.
691 2895104
>>95047
Норм
692 2895109
>>95047

>базовая дока это вообще не серьезно


Вполне серьёзно.
Если ты думаешь, что существует волшебная книга, благодаря которой ты всё поймёшь, прочёл базовую раст-буку и не понял, то это так не работает. Если ты не настроил себя на понимание, то будь автор хоть Алленом Карром, ты не бросишь курить. Аналогия ясна?
1698309268.png45 Кб, 646x503
693 2895165
>>95103
А потом я погуглил и оказалось, можно ещё проще. Без временного инстанса. С имплементацией стандартного типажа.
694 2895178
>>95165
Еще можно data: FuncData заменить на data: impl Into<FuncData> и будет по красоте.

На самом деле в реальном коде дефолтные параметры - это почти всегда костыль, когда ты в функцию, которая используется в в 3 местах добавляешь флажок, который чуточку меняет поведение. По хорошему, так делать нельзя.
695 2895200
>>95109
Там какая-то ньюфажная херня наподобие ютуб видосов как if писать и как цикл циклить. А про архиважные темы типа владений и лайфтаймов - мол смотрите они есть у нас.

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

Например не хрена непонятно как работает магия с response.set_mut, каким хером строка может превратиться в трейт Modifier и вызвать на себе modify() только смирился с магией макросов, тут еще какая-то магия трейтов
696 2895216
>>95178

> По хорошему, так делать нельзя.


Да. Вот и повод улучшить свой скилл. Избавиться от вредных привычек.
1698315004789.jpg19 Кб, 320x240
697 2895237
>>95200

> Там какая-то ньюфажная херня наподобие ютуб видосов как if писать и как цикл циклить. А про архиважные темы типа владений и лайфтаймов - мол смотрите они есть у нас.


Лайфтаймы подробно расписаны в главе 10. Ты, видимо до неё даже не дочитал. Всё остальное тоже наверняка есть, просто я сам пока что на 11 главе сижу читаю.
С таким отношением у тебя, я вижу всё верно написал выше. Ты не смотришь в книгу, ты смотришь на авторитет автора. И тебе кажется что прямо с первой страницы книги должна работать МАГИЯ АВТОРСКОГО СКИЛЛА, при которой ты волшебным образом сразу начнёшь понимать сложные концепции. Так не бывает. Сначала ты читаешь 200 страниц "ньюфажной херни", либо идёшь нахуй и тебе не перезванивают.

> как работает магия с response.set_mut


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

> каким хером строка может превратиться в трейт Modifier и вызвать на себе modify()


Лол. Прямо в этом треде написано как. Через трейт Into<T>.

> магией


> магия


> магия


Магическое мышление детектед. Тяжко быть тобой. Нет никакой магии, есть байтики на стеке, байтики в куче, указатели байтиками на стеке на байтики в куче. Всё. Больше ничего нет.
698 2895245
>>95237
Серега хватит шизить и мешать программистам общаться.
В го треде ты вел себя умнее.
sage 699 2895252
>>95245

> Серега


> В го треде


Обещал жениться и бросил? )))
И теперь бегаешь ищещь серёгу по всем тредам?
700 2895405
>>95178

>Еще можно data: FuncData заменить на data: impl Into<FuncData> и будет по красоте.


Можно, но не нужно. Трейт Into автоматически имплементирован для типов, которые имплементируют From, поэтому для своих типов правильнее имплементировать последний, чтобы не делать двойной работы.

По теме с дефолтными параметрами — не понимаю, что все с ними носятся который тред. По работе пишу на старом стандарте C, поэтому никаких дефолтов. Не испытываю никаких трудностей с этим. Наоборот, когда приходится делать всякие вспомогательные скрипты на питоне, раздражают его километровые списки дефолтных аргументов в функциях. Особенно, когда кто-то использует только часть из них без указания имени аргумента. Сидишь потом гадаешь, с какими же параметрами вызывается функция.
701 2895408
>>95405
>>95178
Ой блять, про Into хуйню написал, ты другое имел в виду, пардон.
702 2895417
>>95405

> все с ними носятся который тред


Ну вот, нас много таких. Да. Штош.
703 2895478
>>95405
>>95417
Потому что агрессивный маркетинг вливает ваш раст в неокрепшие мозги и естественно они начинают хотеть то, что есть в других языках, пытаясь натянуть системный раст на свою прикладную разработку.

Я больше чем уверен, что местные школьники перетекли из js, куда в последнее время стали активно заливать евангелисты раста.
704 2895545
>>95478
Да ну, ты преувеличиваешь. Нет никакого агрессивного маркетинга. Язык опенсорсный. Ни о каком маркетинге там в принципе речи быть не может. Продавать нечего. Всё скачивается бесплатно, то есть, даром. Маркетинг может быть только на мерче и саппорте.
705 2895668
>>95545
Наивный
706 2895879
>>95545
Не ломай его манямир
707 2895890
>>95668
Какие-то деньги крутятся, но в целом бизнес через язык программирования это довольно ебанутая затея.
708 2896107
>>95478

>системный раст


Системный язык высокого уровня только один - это C, раст - это хуитка для батплаг.ио, не больше.
709 2896128
>>96107
Срыгнул нахуй, обоссыш.
know.webp34 Кб, 640x620
710 2896259
>>95890
Сидишь себе переименовываешь "слэйвы" и "мэстер" в хэш константах и получаешь боблища как успешный менеджер, когда крупные игроки бегают вокруг тебя и заносят донат.

И чтобы сей источник не иссякал, куда ты будешь бабло заносить? Вот мы открываем ютуб и видим как говорят одно и тоже все 8 лет (см пикчу).

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

вот одно из многих, из свежих
https://www.reddit.com/r/programming/comments/17gclvh/was_rust_worth_it/
711 2896264
>>96107
Так и есть, си это прям чуть ли не уровень ассемблера, но удобнее. Поэтому такие яп как зиг (и еще там какие-то), я оч жду.
image.png104 Кб, 1284x496
712 2896401
Почему тут алиас не канает?
713 2896547
>>96401
Self::Output нужно.
714 2896553
>>96547
Спасибо
715 2896809
>>96259

>Раст очень замедляет разработку


Возможно, он замедляет на этапе хуяк-хуяк и в продакшн. Хотя, если сравнивать с плюсами, где часть времени съедает еботня с либами и системами сборки, то примерно то по времени и выходит.
Зато потом, когда проект разрастается, на расте его горасдо проще дописывать и рефакторить, на чём-то другом проще сразу переписать.

Почему крипта полюбила раст? Потому, что в отличие от корпораций, им нужен язык, на котором можно писать прямо сейчас, без риска проебать бабло из-за влома. На 10-15 лет вперёд они не загадывают, но вот сделать и не проебать уже сейчас - лучше всего годится именно раст. А корпорации пока принюхиваются, как принюхивались в 90-е к тому же линуху.
1698422479062.png67 Кб, 776x304
716 2896842
Как же раст хорош! Божечки-кочерёжечки!

Лучший язык в мире!
717 2896972
>>96809

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


Ебать, мантры хелоувордщика.
718 2897005
Дайте мне идей для пет проекта
719 2897095
>>97005
Открываешь кнопку ПУСК, выбираешь любую программу там и делаешь клон.

А если серьёзно, у тебя есть наверняка область, в которой ты работаешь, область твоих интересов. Вот в этой области и делай. Вангую, щас будет ответ наподобие "да я ничем не интересуюсь", тогда сделай программу учёта мамкиного борща.
720 2897120
>>96809

>Зато потом, когда проект разрастается, на расте его горасдо проще дописывать и рефакторить


Рефакторить раст, это еще одна известная боль о которой принято молчать. Но тебе, фантазеру, об этом откуда знать.
image.png210 Кб, 540x360
721 2897126
>>96809
Какие глубокие познания в крипте.
722 2897215
>>97095

>1) перепишем всё на расте


>2) ..


>3) ряяя ансейф


Любую полезную хуиту, которую пишешь для себя лучше писать на каком-нибудь заскорузлом языке, чтобы потом не обосраться, когда условные долбоёбы из мозиллы не апдейтнут язык x.x0 до версии x.(x+10)0.
723 2897350
>>97120
Как раз сейчас этим занят. Очень радует, что это вообще возможно на таком раздутом проекте, как мой. На любом другом языке проще было бы переписать с нуля.
724 2897630
>>97215

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


Пофиксил ебената.
725 2897632
>>97350
Да это вообще какие-то хейтерки набижали с набегом. Просто игнорируй их бредни.
726 2897635
Растаны, а у нас вообще перекатом кто-то занимается? Вы вообще в курсе, что тред давно и плотно затонул? Вы вообще осознаёте, что в любой момент тред может исчезнуть? Конечно, на дваче есть функционал архива, но я бы на него не надеялся. Если перекатывать никто не хочет, я перекачу.
727 2897636
>>97630
Как ты себе это представляешь это с пидоРАСТом, кукаретик?
728 2897638
>>97636
Не печатаешь в консольке rustup update.
1698494614574.jpg68 Кб, 550x550
729 2897645
Пикча для переката.
Кароче, думайте. Я пока полчасика книжки почитаю. Если за это время ОП не объявится, перекачу сам.
ПЕРЕКАТ 730 2898128
let over_roll = Some(>>2898122 (OP));
Тред утонул или удален.
Это копия, сохраненная 17 ноября 2023 года.

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

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