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

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Rust #8 /rust/ 1456440 В конец треда | Веб
Rust — невероятно быстрый язык для системного программирования без segfault'ов и с гарантиями потокобезопасности.

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

https://www.rust-lang.org

Продолжение шапки: https://gist.github.com/TatriX/183c816f1346d418f969c4576c2b9b41
Screenshot2019-08-21-17-08-43.png133 Кб, 720x1280
2 1457681
It's happening!
3 1457701
>>457681
и как скоро асинк запилят? левые крейты заебали, пердолинг с потоками тоже
4 1457707
>>457701
1.39 стейбл выходит 5 ноября по их словам. Но можно на найтли уже потыкать
5 1457814
Кстати, по ощущениям компилятор стал намного шустрее.
6 1463413
Тут говорят, что rust для системщины. А что лично вы на нём написали для системщины, или хотя бы собираетесь писать?
7 1463441
Нахуя вам джва треда
8 1463514
>>463441
№8 только один, это №7 два
9 1463523
10 1463625
>>463413

>rust для системщины


системный, не значит для. Значит, что он наиболее близок к ос и железу. Например, использует системные потоки.
11 1463787
>>463625
На Си тоже можно писать не только системщину, но мы же понимаем, что для прикладного ПО лучше всего подходят языки со сборщиком мусора.
12 1463850
>>463787

>мы же понимаем


Вы - это кто? Да и чего уж там - сразу один жабаскрипт для всего прикладного.
13 1463915
Оказывается, для винды до сих пор нет драйвера F2FS. Было бы круто, если б кто-нибудь на расте драйвер запилил. С железом для разработки проблем не будет, так как флешки есть у всех. Линуксоиды тоже заинтересованы, ибо приходится давать флешки виндузятникам.
14 1463989
Растишки, а есть какие-нибудь best practices и советв, как перестать воевать с borrow checker'ом и начать жить? Очень часто приходится некоторые места у себя переписывать из-за ссылок и лайфтаймов. Большое всего бесит наверное про несколько мутабельных заимствований или про получение ссылки на элемент структуры и вызов с &mut self с этой ссылкой а качестве параметра .
com.jpeg15 Кб, 300x300
15 1464021
>>463989

>как перестать воевать с borrow checker'ом и начать жить


C++
16 1464071
>>463989
Либо смотри в сторону другой архитектуры, типа ECS, либо смотри в сторону более функционального подхода, либо юзай interior mutability, Rc, Cell, Arc, Mutex, вот это все.
17 1465045
>>463413
декодер, ресемплер
18 1465110
>>463989
Нормальный язык возьми
19 1465355
>>463989
Не используй ссылки, чтобы связывать между собой объекты. Заимствование - это строго для передачи аргументов в функции и для структур, которые живут сугубо на стеке. Для всего остального используй индексы в вектор или Rc. В особых случаях, когда ну прямо совсем-совсем критичен перформанс (перформанс с графовыми структурами, хех, мда), указатели.

>про получение ссылки на элемент структуры и вызов с &mut self с этой ссылкой а качестве параметра .



Есть причина, почему это не одна функция? Вытаскивать наружу кишки, а запихивать их же обратно - это как-то не по людски.
20 1465453
1
21 1465707
>>464071
Вот со всеми этими боксами ещё больше геморроя. Матчить что-то в них , borrowck орет ещё больше. Хотя может опыта просто нет нормального, как писать все это дело.
>>465355

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


А я и в одну функцию делал. Один хрен, в нее запихнешь, а в ней появляется еще одно мутабельное заимствование. Единственный воркэраунд нашел для этой штуки - это оборачивать такие переменные в RefCell и пропихивать его куда надо, но как-то больно уродливо получается. Ну да и что выше написал к нему же относится .
22 1473957
>>465707
Аноны, кто-нить пробовал скрещивать раст и NDK? У меня такой проблем:
через MaybeUninit создаю пустую структуру
скармливаю NDK-шной функции
после assume_init с простыми полями структуры всё збс - данные читаются и вполне валидны, но вот при обращении к ссылочным полям выкидывает сегфолт.
То есть, то ли проблема при конвертации изначально сишного пойнтера в растовый, то ли при вызове что-то недоинициализировалось, то ли я заголовки криво сконвертил через bindgen, то ли ещё ебола какая.
23 1474056
>>473957
Оставь в структуре сишный указатель и определи функцию, которая кастит указатель к с ссылке через разыменование. Ты не вызываешь мутабельные операции, используя немутабельные ссылки?
24 1474177
>>474056
Попробовал, не помогло. Короч, было так: структура, а у ней внутри анонимный union с указателями. bindgen сделал внешний тип union и вставил поле с ним в структуру. В итоге помогло тупо засунуть указатели из этого union в исходную структуру.

Вообще, чё-т дохуя накопилось уже правок в сгенеренном bindgen-ом заголовке, хоть в гит его добавляй
25 1474226
>>456440 (OP)
Поясните фастом без особых подробностей о языке по хардкору.
Если заинтересует, хочу вкатиться. От С блевать уже тянет.
Что на нем можно писать? Системное по? Мобилку? Гуи? Веб?
Есть какие-то либы для облегчения жизни и менеджеры зависимостей?
Что там с платформозависимостью? Есть какие-то фатальные недостатки или жуткие изъебы языка?
Спасибо.
Мимо perl, С программист
26 1474295
>>474226

>Что на нем можно писать? Системное по? Мобилку? Гуи? Веб?



Системщину и микросервисы да. Остальное пока в зачаточном состоянии. Ты можешь, например, подключить к проекту на Кутях растовую статическую либу через FFI, но работа с гуём из самого Раста пока только через всратые биндинги. Пилят какие-то штуки для фронтенда на ВАСМ.

>Есть какие-то либы для облегчения жизни и менеджеры зависимостей?



Есть встроенный cargo, пишешь в конфиг название пакета, скачиваешь мегабайт исходников и всё работает.

>Что там с платформозависимостью?



Более менее всё, где есть ЛЛВМ, поддерживается, но есть платформы второго и третьего класса. А так, люди, вроде бы и ОСи пишут, и диодами мигают.

>Есть какие-то фатальные недостатки или жуткие изъебы языка?



Если не считать изъебов с борроу-чекером и мов-семантикой, язык на порядок проще плюсов, да и, в каких-то отношениях, чего-то типа СиСярпа, особенно если не нужно трогать Ансейф. Замыкание - это просто структ с одной функцией, Фьючур - это просто конечный автомат, и т.п.
27 1474321
>>474295
Спасибо. Думаю, стоит потратить недельки 2-3 на вкатывание, а там посмотрим как зайдет.
28 1474373
растишки, дайте какой нить гайд по async/await
тока без сторонних крейтов по возможности
29 1474453
>>474373
Официальная книга https://rust-lang.github.io/async-book/
30 1474458
Актуальный перевод https://doc.rust-lang.ru/async-book/
31 1474513
Вот еще новичкам https://old.reddit.com/r/rust/comments/d28mt0/standard_async_tutorials_and_examples/
Особенно коммент D1plo1d доставляет.
20190917-0c0ed.png72 Кб, 1526x293
32 1474562
поглядите, аноны, что я сотворил:

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

код выглядит валидно, конпеляется, а работает - пиздос.
34 1474958
>>474562
Где-то читал про контейнеры раста (не помню где), что в таких случаях (до сотни элементов) выгодней всего использовать вектор https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=fa287995b1bfdf41f29bcbcc90ed453b
и HashSet если больше.
35 1475065
>>474864
Да, я про expect позже уже сам вспомнил. А тут что-то переклинило, помню, что вроде бы какой-то особый unwrap, а что конкретно - не помню - взял и наваял, а оно вон как.
А ведь то, что я сочинил, было бы даже лучше, если бы было признано идиоматичным и работало нормально.
37 1475763
Есть еще match
https://play.rust-lang.org/?version=stable&mode=debug&
edition=2018&gist=f9103375a42eec79b0043584d35684b3
39 1475842
>>475415
Да, вариант с find + expect был бы самый оптимальный. Плохо то, что способов сделать одно и тоже, в итоге, овердохуя, и мой вариант зачем-то сконпелировался.
Алсо, паника в моём варианте указывает на то, что любой вызов в unwrap_or будет выполнен, независимо от того, нужен тебе результат или нет. Даже так - можно просунуть вызов любой функции, оно также сконпеляется, и выполнит функцию.
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=c55b015785a2b64b0d5c505bd6434ddf

Хотя если просунуть напрямую ту же строку, которую она возвращает, то результат будет другой
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=79d0246d783c94b0237c8d483c0cc659

Короче, я ни хуя не понимаю, если это не ошибка разрабов языка, то что. Багулю завести, что-ль..
40 1475843
>>475842

>результат будет другой


бля, туплю, результат будет тот же. Но вот вызывать замыкание в примере выше вообще не нужно было.
41 1476123
>>475843

>Arguments passed to unwrap_or are eagerly evaluated; if you are passing the result of a function call, it is recommended to use unwrap_or_else, which is lazily evaluated.

42 1476216
>>476123
И вот так, шаг за шагом, наступая на грабли на каждой строчке, я таки напишу свой хэллоуворлд. Впрочем, я утрирую, не всё так плохо, конечно.
43 1476246
>>476216
Вообще если у тебя проблемы с понимаем почему это так работает, тебе бы лучше SICP почитать.
unwrap_or это обычный метод, который на вход принимает значение. Поэтому параметр будет вычислен перед передачей. А раз у тебя там была паника, то она взорвет приложение.
Код вида foo.bar(panic!("pizda")) не вызет ведь вопросов?
14316389337740.jpg82 Кб, 268x265
44 1476334
>>456440 (OP)

>3 webm


А как так сделать?
Хочу вкатиться в раст и зачекать язык в целом, искал идей для мини проекта. То, что на вебмке очень хочется повторить но с другим ресурсом ест-но.
45 1476369
>>476246

>SICP почитать


чтобы охуеть, выкатиться и не мешать серьёзным дядям шлёпать круды?
46 1476535
Почему это говно провалилось?
47 1476641
>>476216
А ты свой код спиздил, или нашел этот метод документации? Потому что если ты читаешь описание до половины, у тебя в каком угодно языке будут проблемы, лол.
48 1477394
>>476535
слишком эзотерическое говно
49 1480733
15364322638960.jpg12 Кб, 373x200
50 1481215
>>480733
Спасибо тебе, анон.
51 1481947
Зачемпотерли пост про сжв плюсовичку?
52 1481951
Лол. Тест.
IMG20190924083150.jpg295 Кб, 2409x1314
53 1481952
К.
54 1481953
Ену
55 1482492
Эх, аноны, какой же это пиздос.
56 1482528
Аноны, как передавать растовые функции как сишные коллбэки? Если просто объявить функцию
extern "C" fn blabla () {}
и передать без задней мысли - сишный код это схавает? А то растовый-то конпеляется.
57 1483634
>>482492
Ты уверен, что у тебя нет проблем с версией либы? Там из новых версий убрали GlobalRef::new(), может ещё какая-то херня с этой функцией была в разных версиях, до того как убрали.
Можно попробовать прописать полный путь: jni::objects::GlobalRef::new
Маловероятно, но вдруг это GlobalRef::new из какой-то другой либы?
А если нет, то пиздос, да.
58 1483794
>>483634
Да, я видел, что убрали, откатился на последнюю, для которой дока написана - а там это. Видимо, потому и убрали, что такая свистопляска. Ну да я пока кастанул типы через as , конпелируется, правда, я пока это даже не пробовал запускать на живом ведроиде - наверняка куча ошибок повылазит.
Ты тоже жабу с растом скрещиваешь?
И, если вдруг, тоже под ведроид?
image.png37 Кб, 1044x256
59 1483966
>>483794
Лол, нет, просто стало интересно, почему такая хуета могла возникнуть, загуглил "GlobalRef::new rust", а мне выдало старую версию либы. Я посмотрел сорцы того, что мне выдало на
https://docs.rs/jni/0.5.3/jni/objects/struct.GlobalRef.html
Там вроде как не должно выпадать такой проблемы. Посмотрел ещё последнюю версию этой либы, но другие смотреть уже не полез, своих забот полно.
3bc7bc030fad10c9b37619a25a9b05ff.jpg70 Кб, 640x570
60 1484259
>>456440 (OP)
Привет, двач. Есть у кого на примете годный курс лекций по алгоритмам? Знаю, что библией алгоритмизации считается книга Кормэна(потом по нисходящей идут Дасгупта и Бхагарва, тоже знаю) и мне нравится её полнота, однако, формальный язык очень и очень отталкивает, не способствуя пониманию. Да и вообще, формат лекций мне как-то ближе, нежели просто чтение книги. В общем, какие требования? Полнота(речь не об N-полноте, лол) Кормэна в сочетании с интересным, не сухоформально рассказывающим преподом. А, да, и чтобы на русском(знаю, что охуел). Подскажите чего по сабжу?
61 1485894
Че, растаны, когда ATC завезут? А то как лохи без манаток сидите.
63 1485988
>>485977
Associated type constructors. Ну или Generic associated types, кому как нравится
64 1486280
Аноны, поясните, как вы живете с tokio, блятб. Я заебался вкуривать, как мне данные считывать циклически и передавать их на обработку связанной структуре.
В asio я могу заюзать например async_read(...), пихнув в callback shared_ptr с контекстом и потом вызывать это чтение дальше до тех пор, пока не произойдет какой-нибудь пиздец.
Посмотрел в tokio, ебать в рот, какой-то хуй обсасывает пример как клиентом подключиться - с фьючерсом, естественно, но там какое-то блокирующее дерьмо по итогу выходит в работа в полудуплексе. Есть нормальное чтиво для понимания как это дерьмо разгребать, а то меня по-маленьку этот ваш Rust начинает вымораживать со своими "выебонами".
66 1486379
>>485988

>Generic associated types


https://github.com/rust-lang/rust/issues/44265
почитал RFC, но ни хуя не понял. В nightly уже есть, но с багами.
67 1486383
>>486280
Бросай это говно для смузихлебов и иди в кретред.
68 1486384
>>486383
крестотред
69 1486425
>>486280
Я не спец, но могу посоветовать https://github.com/tokio-rs/tokio#example
если тебе в этом примере ничего не понятно, значит ты какой-то тупой покури ещё мануалы/попиши хэллоуворлды.
70 1489468
Учусь в вузике, не могу решить что учить, раст или кресты. С одной стороны все говорят что раст много лучше, но с другой вакансий то нет.
71 1489497
>>489468
Кресты, конечно.
72 1489687
>>489468
Двачую кресты. Сначала наступишь на все крестовые грабли, зато потом, перейдя на раст, не будешь ругаться на борроучекер.
73 1489690
>>489468

На каком курсе?
Если на младших, то у тебя есть время, и лучше поебись с С. Полезнее будет.
Если на старших и уже поджимает искать первую работу, не трать время, лучше C#/Java.

К расту вернёшься, когда износишь пятый свитер и отрастить бороду.
74 1489749
>>456440 (OP)
Давно не интересовался этим перспективным языком. Скажите, нечитаемые неинтуитивные сообщения компилятора уже пофиксили?
75 1489852
>>489749
Какие именно? Было у меня одно https://github.com/rust-lang/rust/issues/52941 - пофиксили.
76 1489856
77 1489858
>>489856
И на эти тоже, ага.
78 1489859
>>489858
у зумера всегда язык виноват
79 1489875
>>489859

>язык виноват


Это вопрос для долгой дискуссии. Однако, могу назвать сходу 3 возражения:
1. Лучше учиться правильно управлять памятью на ошибках конпелятора, чем рантайма.
2. Ты не всегда можешь знать наверняка, что с твоими данными сделает сторонняя либа. Каждый раз лазить в исходники? Ну нафик. А раст тебе сразу скажет, что сторонний крейт хочет то и это, поэтому обеспечь, пжалста, вот это.
3. Я не зумер и всю жизнь избегал сей с плюсами ровно потому, что мне бы програмить, а не о подводных камнях думать. Раст тут думает за меня
80 1490326
>>489875

>Лучше учиться правильно управлять памятью на ошибках конпелятора, чем рантайма


Задумка годная и намерения благие, а как на деле? Вот например есть Standard ML с математически доказанной безопасностью. Почему мне стоит выбрать Rust а не его?
81 1490337
>>490326
Как минимум потому что crates.io
82 1490459
>>490326
Это как гвидон vs руби. Как бы ни был второй прогрессивнее, но первый выбирают из-за батареек. Так и с растом - он уже взлетел, есть куча батареек и мануалов, отзывчивое коммьюнити, это вот всё. Даже если появится что-то в теории лучше, на практике все, кому нужна безопасная работа с памятью без сборки мусора - уже на расте.
83 1490496
>>489468
Не стоит вопрос что учить. Язык учится в процессе разработки программы.
Стоит вопрос на чём эффективнее писать софт. Неверно принятое решение может потом дорого стоить.

Т.е. вопрос сводится к: в каких случаях в 2019-2020 лучше взять Rust, чем C++.
При этом для простоты можно допустить, что пишем новый код с нуля и можем использовать любые последние версии инструментов.
Здесь сразу возникает куча дополнительных критериев: сколько человек будет в команде, на какой срок рассчитан проект, предметная область и т.д.
Допустим, у нас какая-нибудь числодробилка, т.е. нужна максимальная производительность на конкретном железе. Команда 5-10 человек, срок разработки 2-5 лет.

Попытаемся сравнить.

C++
+ куча готовых библиотек отличного качества
− в языке куча подводных камней, всегда есть риск облажаться, особенно, если разработчик малоопытный
+ язык популярный, у заказчиков не возникнет вопросов, если вдруг кто захочет в код полезть

Rust
− библиотек гораздо меньше, многие сомнительного качества; да, можно подрубать по FFI, но это лишняя работа и трата времени (хотя возможно и не особо серьёзная в контексте проекта на несколько лет)
+ выстрелить себе в ногу гораздо сложнее
− выбор маргинального языка придётся обосновывать

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

Язык мне нравится, он уже не настолько маргинальный, как звезда хайпа прошлых лет - Haskell, выглядит практичным, продуманным и удобным.
На нём уже пишут какой-то софт, та же мозилла (хотя и про хаскель можно то же самое сказать, и на нём писали немало).
Но всё равно не хватает по-моему до того, чтобы выбрать раст для решения практической задачи.
Здесь ему немного не повезло - плюсы начали активно развиваться и реализовали многие вкусные фичи. Не было бы C++11 и последующих стандартов, тогда бы Rust конечно выглядел шикарно, а так единственное серьёзное преимущество это что язык изначально сдизайнен грамотно.
83 1490496
>>489468
Не стоит вопрос что учить. Язык учится в процессе разработки программы.
Стоит вопрос на чём эффективнее писать софт. Неверно принятое решение может потом дорого стоить.

Т.е. вопрос сводится к: в каких случаях в 2019-2020 лучше взять Rust, чем C++.
При этом для простоты можно допустить, что пишем новый код с нуля и можем использовать любые последние версии инструментов.
Здесь сразу возникает куча дополнительных критериев: сколько человек будет в команде, на какой срок рассчитан проект, предметная область и т.д.
Допустим, у нас какая-нибудь числодробилка, т.е. нужна максимальная производительность на конкретном железе. Команда 5-10 человек, срок разработки 2-5 лет.

Попытаемся сравнить.

C++
+ куча готовых библиотек отличного качества
− в языке куча подводных камней, всегда есть риск облажаться, особенно, если разработчик малоопытный
+ язык популярный, у заказчиков не возникнет вопросов, если вдруг кто захочет в код полезть

Rust
− библиотек гораздо меньше, многие сомнительного качества; да, можно подрубать по FFI, но это лишняя работа и трата времени (хотя возможно и не особо серьёзная в контексте проекта на несколько лет)
+ выстрелить себе в ногу гораздо сложнее
− выбор маргинального языка придётся обосновывать

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

Язык мне нравится, он уже не настолько маргинальный, как звезда хайпа прошлых лет - Haskell, выглядит практичным, продуманным и удобным.
На нём уже пишут какой-то софт, та же мозилла (хотя и про хаскель можно то же самое сказать, и на нём писали немало).
Но всё равно не хватает по-моему до того, чтобы выбрать раст для решения практической задачи.
Здесь ему немного не повезло - плюсы начали активно развиваться и реализовали многие вкусные фичи. Не было бы C++11 и последующих стандартов, тогда бы Rust конечно выглядел шикарно, а так единственное серьёзное преимущество это что язык изначально сдизайнен грамотно.
84 1490605
>>490496

>та же мозилла


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

>какая-нибудь числодробилка


уже подразумевает некую изолированность от внешних библиотек, поэтому этот минус тоже в минус.

Что касается хачкеля, то ему решительно не хватило плюсов (пгостите за каламбур) - одного "сконпелировалось - значит будет работать правильно" оказалось недостаточно, чтобы переманить на него с жабы и питона - т.к. скорость разработки на хачкеле куда ниже. У раста же с этим проблем нет - скорость написания на нём примерно та же.
85 1490638
>>490605

>А ещё гугл, Cloudflare и пейсбук


Пробуют на единичных проектах, не более. Зачастую это просто инициатива конкретной команды/разработчика. Если полазить по гитхаб-организациям этих компаний, там и более редкие языки можно найти. Например, OCaml.
Активнее всего продвигает мозилла, оно и понятно, остальные пока не так активны. Просто осторожный интерес.

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


По большей части да, но мало кто вообще никакой внешний код не импортирует. Обычно будет хотя бы несколько библиотек. Или по крайней мере скопипащенные в свой проект исходники на си/плюсах.
86 1490643
Ещё бы нормальный игровой движок на нем, гейрабы мигом распробовали бы.
87 1491400
Rust не тони
88 1491576
>>491400
А почему нет? У нас есть SO, растофорум на английском и куча книжек по расту. Зачем нам ещё на дваче тредак?
89 1491750
>>491576
А вакансий нет...
90 1491805
>>491576
for teh lulz очевидно
91 1491814
>>491750
На реддите была какая-то тема с вакансиями.
92 1491817
>>491814
Более того на реддите постоянно висит реклама от parity.io про вакансии на расте. В общем, было бы желание.
93 1492864
>>491814
Мне бы вот в расеюшке. Переезжать не хочу, семья тут. А удаленка - это то ещё приключение. Зато на гошке вон даже в мухосранях вакансии есть. И мозгами шевелить не нужно , когда на ней что-то пишешь.
94 1492990
>>490643
Ой нахер. Я после своего опыта на sdl2, попытался переписать свою одну игрулю на растишку и только поел говна. Все слишком сложно, передавать туда сюда игровые объекты внезапно стало трудно. Я вроде с растом где-то уже год вожусь, а когда начинаются проблемы с борровком и лайфтаймами, то все, ласты клею. В плюсах все те же махинации обстоят гораздо проще. Так что лучше так же , как и раньше на них писать и не страдать ерундой, выбирая БизАпАснаТь.
95 1493004
>>492990
Есть же RefCell, эдакий "Мамой клянусь" - обёртывай в него, когда совсем туго.
96 1493148
>>491814
Нахуй твой soydit не нужен.
97 1493149
>>492864

> Переезжать не хочу, семья тут.


Господи, какое же быдло.
98 1493233
>>493149
Будет круто, если после такого комментария ты пруфанёшь своё местоположение

мимо
99 1493272
>>493233
Мнение про "быдло" не разделяю, но сам переехал с семьей. Зависимость есть, брат жив.
100 1493316
>>493272
Куда переехал, как живется?
101 1493370
>>493004
И как жить потом со всеми Option<Rc<Refcell<..ещё какая-нибудь херня..>>>?
102 1493411
>>493370
Превозмогать. Можно и без Rc, и без RefCell, на одних лайфтаймах выехать - если грамотно структуру приложения и данных выстроить. А если ты в тупую сишный код переписываешь, ну дак так оно и будет.
103 1493554
>>493316
В Норвегию. Збс живется.
>>493370
Посмотри, например, на specs. Никаких Rc/RefCell.
1.png136 Кб, 400x388
104 1493604
>>493554
такую хуйню тебе писал когда сходил с ума изза пездеца по жизне спасибо за все люблю тебя респект до гроба
105 1493830
Ну что, ржавожопые, работу нашли уже?
106 1494086
>>493554

> specs


Знаю про эту штуку. Но я пытался свои плюсовые велосипеды переписать. Там у меня и компоненты сгруппированы в памяти. И индексы для них хорошие. Хотел чисто поглядеть, насколько похожа будет производительность. У спекса просто интересно бы ещё пробенчмаркать что-нибудь более-менее тяжёлое. Хотя оно наверное и не надо. Век уже не тот, чтобы игры оптимизировать
107 1494915
Анука анонцы, скажите, а что на нём пишите лично вы или собираетесь. Хоть один? Напоминает хаскелиную историю: всё можно, но на деле никто не будет
108 1494954
>>494915
Собираюсь контрибьютить в графический менеджер redox и потом портануть его на линупс, потому что даже в модном mutter-wayland память корраптится, аноны радуются артефактам на экране, баги не фиксятся годами, а самому пофиксить нереально из-за конченной культуры разработки free desktop
109 1494972
>>494954
начинай портировать, а там и законтрибьютишь
110 1495025
>>494954

>портануть его на линупс


А тулкиты под него тоже сам портанёшь?
111 1495131
>>494915

> всё можно, но на деле никто не будет


Хз, уже второе место работы подряд, где пишу на расте. Первое - блокчейны, сейчас - решение, связанное с ИБ.
112 1495336
>>495131

>Первое - блокчейны


шта, Данила, не вышел каменный цветок?
113 1495370
>>495336
Ну как не вышло, заебали задачи + заебала удаленка. Ща в офисе сижу, заебись.
114 1495397
>>495025
Ты про qt/gtk? Они умеют в wayland, так что достаточно его поддержать в orbital. А может уже кто-то чисто под wayland написал DM и композитор на расте. Тогда еще проще
115 1495415
>>495397
По "rust wayland" гуглится несколько проектов, насчёт WM не уверен, что есть что-то юзабельное. Как по мне, слишком масштабная задача, слишком много там внутри подводных камней, связанных с драйверами, тулкитами и прочим. Такое делать нужно сразу большой командой, имея кучу бабла, менеджмент, роадмапы и пиар.
Иначе будет очередной проект " Latest commit ab123cd 2 years ago".

Если бы я за такое брался, я бы делал что-то вроде юнити-7 поверх вяленого - так больше шансов получить пользовательскую базу. Но это такое моё имхо.
116 1495426
>>456440 (OP)
Сап. Как создать указатель на:
SystemTime::now().duration_since(UNIX_EPOCH).ok().expect(...)
Тип справедливо выводится, как
Duration, а не fn() -> Duration
Можно сделать указатель на:
SystemTime::now().duration_since
Но тогда все ровно каждый раз придётся обрабатывать Result. Писать врапер?
117 1495440
>>495415
Мне нравится gnome 3 wayland в целом - шустро, красиво, относительно стабильно, так что цель - более стабильный mutter, можно даже кусочек от него. Но вообще ты прав, задача навскидку довольно большая. В любом случае как минимум получу реальный опыт rust-а
118 1495490
>>495426
Че сделать-то хочешь? Залей пример на плейграунд.
119 1496378
>>495426
Тебе замыкание нужно, что ли?
let func = || SystemTime::...;

https://doc.rust-lang.org/rust-by-example/fn/closures.html
121 1500526
Раст-пропаганда пробила очередное дно
https://tsar1997.blogspot.com/2019/10/blog-post_6.html
1429008356731.jpg50 Кб, 600x600
122 1500539
123 1500559
>>500526
Высокохудожественный говно-анализ посредтвенного перевода. Детишки играют в испорченный телефон, ок.
124 1500865
>>500526
Насколько ты готов слушать человека, который считает, что в Расте можно шарить между потоками только глобальные переменные?
sage 125 1501196
>>500526

>tsar1997

126 1501746
>>500526
"Если вас по телефону
Обозвали дураком
И не стали ждать ответа,
Бросив трубку на рычаг,
Наберите быстро номер
Из любых случайных цифр
И тому, кто снимет трубку,
Сообщите - сам дурак."

Долбоёбы были, есть и будут, тут ничего не поделаешь. Но нехуй тут всем доказывать, что ты тоже долбоёб. Окей, раст бесполезен, если ты уже пять десять пятнадцать лет хуяришь код на си или крестах. И что дальше? Проблему обезьян, которые хотят в скорость, но не могут в с(++), ака "я уже не чувствую ногу, дайте мне то, чем я не смогу в неё выстрелить", раст решил, а больше и не надо. Да, я ленивая мразь, которая хочет решать свои йоба-задачки без ебли и кучи UB, которые желательно все помнить. Но это мои йоба-задачки, хули ты тут вылез со своей пропагандой антипропаганды?
127 1502002
>>501746

>пропагандой антипропаганды?


эм, скорее антипропагандой пропаганды. Да и, кстати, в примере, который они обсасывают, ясно же сказано, что чувак, типа, вообще не программист. Берёт сишечку и наступает на все возможные грабли, но в рантайме. А потом берёт раст и снова наступает, но уже при сборке.
128 1502566
https://ru.wikipedia.org/wiki/WebAssembly

А я не верил, что раст все заменит.
129 1503486
>>500526
Пиздец. Узколобый подумал, что обсирают его любимую сишечку, но основная мысль статьи на хабре была другая: хруст не даёт сделать хуйню. Дебил сагрился на побочку
1.png244 Кб, 1920x1080
130 1503491
Ньюфаг в треде. Можно ли писать в подпроцесс и читать из него в цикле? Без использования сторонних крейтов.
131 1503694
>>503491
А чего у тебя сублайм не зарегистрирован? Пират чтоль??
2019-10-24-1618351320x469scrot.png85 Кб, 1320x469
133 1503906
134 1503929
Все смеются над вами, что у вас работы нет.
Вы похожи на христиан во времена римской империи, когда они были мелкой сектой.
135 1503998
>>503929
Звучит как комплимент.
sage 136 1504019
чад-трудоустроенный > маня-теоретик > борщехлеб > сикпист > говно > моча > RUSTист
137 1504021
>>504019
Мань, ну не бомби. И тебя тоже когда-нибудь возьмут.
138 1504086
Я хз как вы работу ищете, меня сраного дотнетчика-бекендера с опытом хуйлоада/дистрибутеда с облаками и видеонаблюдением за последние 2.5 года около 10 раз звали на вакухи писать сраные сетевые/стриминговые/игровые сервисы, где раст или желателен, или даже обязателен . Как раз 2.5 года назад я в резюмешке на хх/линкдине указал раст на микроконтроллерах в качестве хобби, в акке на гитхабе вообще пусто.

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

Прост для ждунов/милдов на расте работы рили нет и хорошо, а у синьоров/лидов опыт нерелевантный описан.

Посмотрите на растовые вакухи, в тч из других стран (в том же this week in rust), поймите, что серьезные дяди на нем делают, и расставьте соответственно акценты в своей резюмехе. Понятно что фронтендера с 10лет опыта на джс не будут звать делать бэк на расте.

И да, не ищите растовакухи на хх. Линк и ангеллист - от туда меня в основном хантили, на индид говорят еще часто появляются, но я там не зареган. А лучше вообще ходить на митапчики типа @ruRust_msk , хоть узнаете, как докладчики работу нашли. Не забудьте напечатать себе визиток с крабиком лол
139 1504124
>>504019
Подтверждаю.
мимо сикпист-борщехлёб, трудоустроенный питономакакой
140 1504213
>>504086
Кстати, я заметил что в раст пытаются перекатиться очень много дотнетчиков. С чем это может быть связано?

Алсо, сколько у тебя опыта работы?
141 1504216
>>504213
Вангую что это те дотнечики, который виндовые формы клепали.
142 1504217
>>504216
Просто я сам дотнетчик, пилю всякое веб-говно, и хочу перекатиться
143 1504220
>>504217
Перекатится во что и ради чего. Хочешь клепать веб говно на расте?
144 1504241
>>504213

> Кстати, я заметил что в раст пытаются перекатиться очень много дотнетчиков. С чем это может быть связано?


Хз, у меня другая статистика по совсем нерепрезентативной выборке (из бывших коллег и знакомых):
C++ gamedev -> nodejs backend -> rust backend,
Python QA automator -> python backend -> rust backend,
C embedded -> c + c++ + asm в реверсинге -> то же + rust в каком-то инфобезе

Есть еще чувак, которого я года 3 назад из трейни довёл до стронгмидла-почтисеньора в aspnet fullstack, он удаленно поработал в пяти сраных крипто-блокчейно стартапах на rust+scala/nodejs/go/etc, и везде дольше полугода не задерживался.

> Алсо, сколько у тебя опыта работы?


12 лет в IT, из них 9 в разработке, из них 2 тимлидства.

>>504217

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


Попробуй сначала из крудо-формошлепства перекатиться в чистый бекенд с кафками-куберами-облаками-grpc'ми-числодробилками-хуйлоадом, или с текущим стеком вкатись в предметку, которую часто на расте пилят, типа сраного криптоблокчейна - будет гораздо легче найти работку на расте.
145 1505563
Ребят, вопрос к знатокам. У меня возникла задача -- разработать виртуальную машину для основанных на System F и ее вариациях ЯП.
Для довольно узкой области, поэтому на всеобщность и очередного убийцу жабки/erlang/чего там еще не претендую. Раст мне понравился, потому что на нем можно без мозгоебли уровня крестов сделать то, что будет работать и работать будет быстро. К сожалению, скорее всего, буду реализовывать на си, потому что мне нужно часто вручную управлять памятью для реализации сборщика мусора да и вообще почти всего, что только возможно. Собственно, вопрос: целесообразно ли разрабатывать подобную систему на расте, если предполагается хитровыебанный алгоритм сборки мусора и если да, то как идиоматичнее обходиться с raw memory?
147 1505633
>>505595
О, благодарю. Тут все то, что мне нужно.
148 1505648
>>505563
Мда, так все просто делалось, а я через какую-то жопу память выделял.
149 1505989
>>505563

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


В низкоуровневых штуках которые ты собираешься писать он выебет тебе мозги ещё сильнее, лол. Хотя бы для рантайма, просто возьми C и не выёбывайся — точно напишешь быстрее.
150 1506006
Господа, подскажите, пожалуйста, в какую сторону мне копать, чтобы решить проблему.
Где-то год назад видел на сях либу, в которой реализовывались потоки уровня пользователя, причем преемптивные. Т.е., по истечении некоторого кванта времени в процесс посылался сигнал и происходило переключение исполняемой функции, с сохранением состояний регистров текущей функции в специально отведенный стек.
Вопрос следующий: как реализовать подобное на расте? Точнее, что можно почитать, чтобы стало понятно, как это реализовать, т.к. просто взять готовое слишком скучно, хочется понять, как оно сделано.
151 1506013
>>505989
Ну вот я почитал книжку, которую мне вчера скинули, и понял, что у меня просто будет один огромный кусок unsafe-кода, так что проще на сях написать всю работу с потоками, исполнение байт-кода, jit-компиляцию, вот это все. И тогда закономерный вопрос -- а стоит ли тащить вторую технологию в стек?
152 1506118
>>506006
Насколько я тебя понял, ты описал стейтфул корутины.
Собственно, гуглится на раз два https://github.com/Xudong-Huang/may , и реализация подсматривается там же. Ну либо в той либе на ц, если интересно именно изобрести велосипед на расте.

>>506013

>проще на сях написать всю работу с потоками


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

>исполнение байт-кода


https://github.com/RustPython/RustPython
9 ансейфов на целый интерпритатор питона.

>jit-компиляцию


https://github.com/nbp/holyjit
2 ансейфа.

Просто именно GC, где вся деятельность — это ходить по стеку и искать ссылки — будет одним большим ансейфом, да.

Есть ли смысл брать раст — если хочешь сделать на скорость, то нет. Если ты собираешься делать какую-то низкоуровенную хуйню, у которой повышенные требования к безопасности (например, если она торчит в сеть, как браузер) — то да.
153 1506120
>>506118

>если хочешь сделать на скорость


Всмысле, набросать за пару недель.
154 1506240
>>506118
Насколько я понял, то, что ты скинул (may) -- это все-таки инструмент для кооперативной, не преемптивной многозадачности.
Мне же интересно прерывать исполнение процесса извне, а не изнутри него.
155 1507226
Зачем существует ваш язык?
156 1507235
>>507226
Чтобы у тебя сгорел пукич.
157 1507266
>>507235
Я занимаюсь арбузным бизнесом. У меня вызывает нейтральную реакцию rust и все, что с ним связано.
158 1507672
>>507266

>ваш язык


>арбузным бизнесом


Щтёбы Ащущать прэкрасный вкюс твАего арбуза, дарагой!
159 1507675
>>507672
В прошлом я был Senior Java Developer'oм и я говорил нормально.
160 1507705
>>507675
Бля. Знаешь, что. Пруфани арбузом и глубокими познаниями жабы. Сам я тоже сорт-оф жабист, но без погонов.
161 1507711
>>507705

> пруфани арбузами


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

> глубокими познаниями жабы


Ну, давай, нападай. Я периодически пилю свои проекты, так что не забыл почти.
upload9882.jpg16 Кб, 700x437
162 1507733
>>507711
Да что я тебе накидаю, всё же гуглится. Вот как у твоей нашей жавы с потокобезопасностью дела, какие преимущества перед плюсами? Вот расшарил ты, такой, List в кучу тредов и радуешься.
163 1507751
>>507733

> pic related


Было время и я думал, что арбузы можно на дому хорошо растить.

> потокобезопасность


Писать потокобезопасные приложения на джаве, конечно, можно.
Неблокирующих алгоритмов предостаточно (List, Stack и бол-во java.util.concurrent) и вполне можно потому и радоваться.
Но на других языках, бесспорно, это часто проще.

> преимущества перед плюсами


Их тебе любой школьник назовет. Ну лан.
Я имел опыт работы с плюсами еще с времен Borland C++ Compiler, поэтому отвечу по житейски, что в джаве программировать в разы безопаснее и реже приходиться ебаться с дебаггером и смотреть, что за хуйня у тебя вылезла.
На джаве кодить проще, так как ты не задумываешь о выделении памяти, не думаешь о том, смаллочить один огромный кусок или по кускам, как собака, таскать. Ты не думаешь о том, когда тебе надо освободить кусок памяти.
На джаве кодить быстрее. У тебя есть вотакенная стандартная библиотека на все случаи жизни и ты не будешь делать очередную реализацию картошки с торчащими палочками.
На джаве МУЛЬТИПЛАТФОРМЕННЕЙ.
На джаве больше работы и меньше требований.
На джаве, иногда, бывает быстрее. Правда, это скорее из области фантастики, но JVM способна байт-код переводить наиболее оптимально в код платформы, откуда она вызвалась, таким образом, беря бремя платформенных оптимизазаций на себя.

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

Ебал в рот кресты и джаву, люблю си и ассемблер и мне похуй.
164 1507796
>>507751

>реже приходиться ебаться с дебаггером


Да, да. Смотришь, а там concurrent modification exception прилетел, конкретно с какой строки и всё видать - красота. Но это в рантайме - может вылезти при отладке, а может и только в продакшене, как повезёт. Сама по себе жаба по-умолчанию позволяет наступать почти на все те же грабли, что и плюсы, только они у неё помягше. Ну, если ты сеньор, то ты, конечно, уже про все грабли знаешь и не наступишь.
А вот раст чем хорош - что он ещё на этапе компиляции отсекает все твои попытки пройтись по граблям. Понимаешь? Не надо быть сеньором, чтобы писать потокобезопасно - сам компилятор не даст тебе писать небезопасно. Это сильно упрощает и удешевляет разработку, снимая кучу головной боли.
Кроме этого, раст ещё и сахарный, почти как питон.

Как докатился до арбузов-то? Дядя - арбузный король оставил наследство?
165 1507807
>>507796

>Как докатился до арбузов-то?


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

>А вот раст чем хорош - что он ещё на этапе компиляции отсекает все твои попытки пройтись по граблям.


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

> Сахарный


Вот, вот это вот хорошо. А то, помню, golang смотрел...
166 1507810
>>507807
В АТО воевал?
167 1507822
>>507810

>В АТО воевал?


Палестина. Так вышло.
168 1507827
>>507807

>заказчиков


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

>>507822

>Java


>Палестина


>Арбузы


ЦАХАЛ?
169 1507832
>>507827

>ЦАХАЛ


Немного наоборот.
170 1507836
>>507832
Так, значит, ты - торговец арбузами, в прошлом ява-сеньор, отсидевший за наёмничество как палестинский боевик..?
171 1507842
>>507836
Не говори, а мы тут штаны просиживаем. Хотя, по арбузам можно было бы догадаться, что не ЦАХАЛ. Но я как-то решил, что было бы логично сперва работать жава-сеньором в кибуце, а потом пойти, соответственно, в ЦАХАЛ.
172 1507849
>>507842

> по арбузам


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

> ЦАХАЛ


Если бы там был, то не пришлось бы сидеть.
173 1507857
>>507849
Не знаю, как у вас, а у нас на рынке - что ни торговец арбузами, то с большой вероятностью, чисто внешне мусульманин.
174 1507864
>>507849
Сколько и где сидел? Тюрьмы нормальные? За кого воевал (и зачем - ты же программист епта, можешь переехать в любую страну)? Не очень разбираюсь, че там у вас.
175 1507866
>>507857

> А у нас на рынке - что ни торговец арбузами


У меня бизнес крутится в несколько другой плоскости. Я отвечаю, за организацию цепочки доставки с югов в регионы России, от Петербурга до Новосибирска. Я не занимаюсь курированием выращивания бахчевых культур.
А насчет этих уличных торговцев, могу сказать, что иногда думал заняться и этим, потому что часто они, несмотря на свой бомжеватый вид, гребут нормальные деньги. Я изучал этот вопрос и не мог понять, какого хуя они одеваются как бомжи, если получают такой титанический (для своей ниши) оборот. Вопрос, кстати, открытый.
176 1507874
https://www.openbusiness.ru/html/dop/arbuz.htm

>Арбузный бизнес, как и всякий плодово-овощной, в России имеет ярко выраженную сезонную окраску. Зато его рентабельность может достигать 60-100%. Главное - суметь быстро организовать цепочку доставки арбузов с юга России в Петербург.


охх, не знаю, может и меня заебёт однажды программировать и подамся организовывать цепочки поставок голубоглазых сибирских шлюх в Китай, тут близко
177 1507878
>>507866
Потому что оборот != прибыль.
Это как в расте: язык есть, фичи есть, потокобезопасность есть — работы нет.
178 1507879
>>507864

>Сколько и где сидел? Тюрьмы нормальные?


Тюрьмы - пиздец, в колонии было нормально. Так как были некоторые connections в ФСИН.
Сидел я недалеко от родной республики. Говорить где, точно не буду, сами уж понимаете. За меня смогли договориться с нужными людьми и я сидел в хороших условиях, имел доступ в интернет, получал нормальную пищу и не было в камере никаких урков. Сейчас, такое не прокатит уже (вне Кавказа точно), так как в 18 году один авторитет пропалился СМИ о том, что он на зоне икру с шашлыком хавает и СК да ФСИН все ужесточили да сжали яйки всем, кто такое практиковал.
Поэтому грешно мне жаловаться. Начал даже очень много читать на зоне, зона ушла - привычка осталась. Стал практиковать медитации отчего жить стало проще и чище.
Все сейчас идет на исправление. Через год планирую, вот, в Германию свалить.

> За кого воевал


Одно из крыльев ФАТХ за освобождение палестины.

> Зачем


Не понимал, что бороться с Израилем, пока штаты стоят за ним бесполезно.
179 1507880
>>507874

>https://www.openbusiness.ru


Сайт очень годный и в одно время очень помог мне.

>голубоглазых сибирских шлюх в Китай, тут близко


Они сами находят свой путь. Время сутенеров медленно уходит вникуда и романтика нелегальных борделей тоже.
>>507878
Да в том то и дело, что там по подсчетам и прибыль нихуйская была. Или они за крышу много отдавали, или они являются тайными воротилами теневой экономики. Третьего не вижу.
180 1507881
>>507874

> подамся организовывать цепочки поставок


Если интересно, то в свое время очень помогла эта книга
https://www.alpinabook.ru/catalog/book-5557/
sage 181 1507883
>>507878

>язык есть, фичи есть, потокобезопасность есть — работы нет.


Вангую, что через несколько лет работы будет много, если разработчики языка не уйдут в хаскельманду.
182 1507886
>>507880
Если точка не согласована, могут снести. А чтобы не снесли, доставай монетку. Продавцу зарплату плати, если сам не продавец (а если сам, то умей общаться, торговаться и целый день каждый день стоять или сидеть на жаре), за бензин плати, грузчикам плати, налоги плати. Где тут прибыль-то? Да и зачем дорого одеваться, если потом всё равно всё расхуячишь соком, когда арбуз резать будешь?
183 1507887
>>507886

>Да и зачем дорого одеваться


Я скорее про то, что они спят вместе с другими приезжими в бомжатниках.

А так ты верно все расписал про их издержки.
184 1507923
Только вышел из треда, прихожу, а тут уже какие-то арбузные боевики.

Рассказывайте, кто что пилит на расте?
185 1507994
>>507879
Хуя себе история. Ты верующий, я правильно понял? Никогда еще не встречал верующих программистов. Ты исследовал коран? Видишь ли ты противоречия в нем? Как ты относишься к наличию разночтений у суннитов/шиитов и других направлений? Как ты относишься к тому, что все религии (и течения ислама) считают свое учение правильным, а все остальные - не совсем?

Тебе легко было решиться пойти воевать (с высоким шансом умереть), когда ты такой себе сеньер 300к/нс? На каком языке вы там говорили в Палестине? Какими были ребята, которые воевали с тобой, какое у них образование? Они воюют чисто за территории Палестины или там замешана религия? У тебя была военная подготовка или учили там на месте? Ты сидишь в /wm/?

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

Есть ли у тебя знакомые евреи, которые являются хорошими людьми?
186 1508039
>>507994
дебик, тебе бы историю подучить. До евреев на этой земле были только Кнааны, потом были евреи, коих силой изгнали оттуда и они 2000 лет шароебились по планете Земля и их прессовали по кд все кому не лень. Иерусалим в Торе упоминается свыше 150 раз, в Коране - ни разу (да-да, пошел нахуй, у меня знакомый аспирант востоковед и знает всю эту чепуху, лично я ссал на все эти религии плотной струей урины). Никакой палестины нет и не было никогда за всю историю всех народов, это все равно, блять, что утверждать, что ДНР - это полноценное государство и всегда существовало, лол. У нее никогда не было государства, она была подмандатная после первой мировой, сама земля в то время принадлежала вообще британцам. А палестинцам (на верный лад, филистимлянам) дали такую кликуху римляне, которые тоже были мимозавоевателями. Образование государства Израиль в 1948 году - не более, чем возвращение евреев на родину после изгнания длиною в 2000 лет.
Факт - за 70 лет евреи построили одно из самых развитых государств в мире (технологии, медицина, экономика на мировом уровне), а когда обоссаный конч Ариэль Шарон отдал Газу этим даунам, она из цветущих садов превратилась в чистилище ада буквально сразу. Про исковерканные толкования Корана начала 20ого века, где ВНЕЗАПНО появляется инфа, что Иерусалим вовсе не принадлежит евреям, это вообще рофл. В общем, собаки лают, караван идет.
мимонежид, бтв
187 1508042
>>508039

>Факт - за 70 лет евреи построили одно из самых развитых государств в мире


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

Почему ты так сгорел?
189 1508061
>>508042
А разве американцы? По-твоему, союз == полное гособеспечение от А до Я? Тащемта, нет.

>>508050
Я тоже не имею к этому отношения, но арабы в современной истории причинили огромное количество страданий людям разных народов. Чем занимались евреи? Строили свою страну, разрабатывали новые технологии, продвигали науку вперед. Чем занимались муслимы? Аллахакбарились в метро, на улицах в толпах ни в чем неповинных людей, резали людей на улицах, насиловали женщин по всей Европе. Абсолютное большинство террористических организаций в мире состоит чуть менее, чем полностью из муслимов. Обобщать не хочется, ибо это очевидно, что не АБСОЛЮТНО каждый муслим в мире == террорист, но статистика энивей играет не в их пользу. Евреи - созидатели, муслимы - разрушители. Я уважаю евреев за то, что они, несмотря на гонения длиною в ТЫСЯЧИ лет, не исчезли с лица Земли, как народ, а восстали как Феникс из пепла, да еще и построили свое государство достойным образом. И я презираю большинство муслимов за то, что в современной истории они сеют смерть и ненависть. Это факт, с которым сложно спорить.
190 1508101
>>507994

>Хуя себе история. Ты верующий, я правильно понял?


Сложно ответить.

>Никогда еще не встречал верующих программистов.


Лично я заметил, что многие ударяются в буддизм (не совсем религия, но религозно-философское).

>Ты исследовал коран?


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

> Как ты относишься к тому, что все религии (и течения ислама) считают свое учение правильным, а все остальные - не совсем?


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

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


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

>На каком языке вы там говорили в Палестине?


Ебанутый вид арабского.

>Какими были ребята, которые воевали с тобой, какое у них образование?


Это простые ребята. Многие из них потеряли братьев, сестер, отцов, матерей и друзей от руки Израиля. Среди них было несколько людей с высшим, но бол-во - без него.

>Они воюют чисто за территории Палестины или там замешана религия?


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

>У тебя была военная подготовка или учили там на месте?


Учили на месте. Военная подготовка до этого была.

>Сейчас тебя беспокоит, что Израиль поступает несправедливо по отношению к Палестине?


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

>Или причина конфликта в том, что евреи именно в наше время сильно прессуют арабское население в Палестине?


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

>Есть ли у тебя знакомые евреи, которые являются хорошими людьми?


Среди евреев много хороших людей.

>в Коране - ни разу


Да. Он упоминается в Хадисах.

>Образование государства Израиль в 1948 году - не более, чем возвращение евреев на родину после изгнания длиною в 2000 лет.


Этот тезис смешной. Может теперь ассирийцам ближневосточным всю Месопотамию подмять?

>Факт - за 70 лет евреи построили одно из самых развитых государств в мире


С них надо брать пример.

>она из цветущих садов превратилась в чистилище ада буквально сразу.


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

>А разве не американцы это сделали?


Скорее немцы. Иронично.

>Почему ты так сгорел?


Потому что этот анон не держит себя в руках.

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


Я соглашусь. Им стоит вспомнить, то что во времена халифата все было наоборот.

>И я презираю большинство муслимов за то, что в современной истории они сеют смерть и ненависть.


Я не понимаю, зачем мусульмани идут на это, если в Коране чётко написано то, что их действия, терроризм и прочее - ебанный стыд и грех.
190 1508101
>>507994

>Хуя себе история. Ты верующий, я правильно понял?


Сложно ответить.

>Никогда еще не встречал верующих программистов.


Лично я заметил, что многие ударяются в буддизм (не совсем религия, но религозно-философское).

>Ты исследовал коран?


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

> Как ты относишься к тому, что все религии (и течения ислама) считают свое учение правильным, а все остальные - не совсем?


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

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


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

>На каком языке вы там говорили в Палестине?


Ебанутый вид арабского.

>Какими были ребята, которые воевали с тобой, какое у них образование?


Это простые ребята. Многие из них потеряли братьев, сестер, отцов, матерей и друзей от руки Израиля. Среди них было несколько людей с высшим, но бол-во - без него.

>Они воюют чисто за территории Палестины или там замешана религия?


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

>У тебя была военная подготовка или учили там на месте?


Учили на месте. Военная подготовка до этого была.

>Сейчас тебя беспокоит, что Израиль поступает несправедливо по отношению к Палестине?


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

>Или причина конфликта в том, что евреи именно в наше время сильно прессуют арабское население в Палестине?


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

>Есть ли у тебя знакомые евреи, которые являются хорошими людьми?


Среди евреев много хороших людей.

>в Коране - ни разу


Да. Он упоминается в Хадисах.

>Образование государства Израиль в 1948 году - не более, чем возвращение евреев на родину после изгнания длиною в 2000 лет.


Этот тезис смешной. Может теперь ассирийцам ближневосточным всю Месопотамию подмять?

>Факт - за 70 лет евреи построили одно из самых развитых государств в мире


С них надо брать пример.

>она из цветущих садов превратилась в чистилище ада буквально сразу.


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

>А разве не американцы это сделали?


Скорее немцы. Иронично.

>Почему ты так сгорел?


Потому что этот анон не держит себя в руках.

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


Я соглашусь. Им стоит вспомнить, то что во времена халифата все было наоборот.

>И я презираю большинство муслимов за то, что в современной истории они сеют смерть и ненависть.


Я не понимаю, зачем мусульмани идут на это, если в Коране чётко написано то, что их действия, терроризм и прочее - ебанный стыд и грех.
191 1508103
>>508101

>мусульмани


*мусульмане
192 1508152
>>508101
У меня в голове пока что плотно сидят 2 тезиса (я считаю это фактами)
1. Израиль будет сговорчивее, если в Палестине ко власти придёт партия, не ставящая своей целью уничтожение Израиля (сейчас там Хамас, он ставит, ФАТХ был миролюбивее - и с ним почти договорились)
2. Арабы (Саудовские и прочие) заинтересованы в том, чтобы Палестина была вечной кровоточащей раной - им это нужно для мобилизации собственного населения, для поддержания образа врага. Они то и поспособствовали смене ФАТХ на Хамас, так как мир им не выгоден.

Что касается помощи от США и проч: евреи, пусть на помощь США, пусть, организовали у себя государство первого мира с IT, медициной, фармакологией, кибуцами, космической программой и прочим. То есть, не сидят, сложа руки. Арабы, сидя на нефти, имея с неё гораздо больше, чем Израиль от США, только и делают, что пользуют Наташек и спонсируют "братьев" (в том числе некоторых жава-сеньоров) по всему миру. Рашка в этом плане не лучше, но это другой разговор.
Я про то, что если смыть Израиль в океан, то арабы не построят там ничего путного взамен, как не построили они в других странах (есть у них Дубай, но там ни черта не производят, это чисто мировой офис).
193 1508158
>>508152
С тезисами я согласен. Евреи и арабы должны как-то научиться жить вместе (звучит смешно, но им придется). Только произойдет это даже позже чем раст станет мейнстримом.
194 1508178
Всем привет. Я Олег.
Выделение016.png40 Кб, 387x701
195 1509001
Анон, нид хелп

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

что хочу: хочу 2 структуры чтобы одна (child) был вложена в другую (parent) и могла звать функции родителя. Можно такое провернуть без лишних изъёбов, на одном только Weak? Пробую, а всё никак: то, видите ли, parent owned, то ссылка lives not enough.
196 1509027
>>509001
Нахуя ты в палестинотред это говно притащил? Пшел отсюда.
197 1509028
>>509001
Создай парента через Rc<RefCell<>>, у Rc создай слабую ссылку.

Какую задачу ты решаешь? Скорее всего тебе такая ересь не нужна.
198 1509083
>>509028

>Какую задачу ты решаешь?


Чтобы child мог асинхронно через метод парента ответ вернуть.
199 1509136
>>507923

>Рассказывайте, кто что пилит на расте?


Движок для создания интерактивных карт для отображения истории Палестины.
200 1509141
>>509083
Трейты с дефолтом не подходят?
201 1509143
Ну что вы, мученики?
Найдете вы еще работу себе, не переживайте.
202 1509151
>>509143
Большинство тут с работой. Просто не педеRUSTами.
203 1509152
>>509143
>>509151
сдрыстрине в местный жс/пистон тред, макакам тут не рады
204 1509158
>>509152
Я считаю, что ты ведешь себя неподобающе и нарушаешь дискуссию, которую ведут тут добропорядочные аноны. Своими действиями ты позоришь себя и все, что ты с собой олицетворяешь. Я бы задумался и прекратил вести себя столь глупо и неуместно, дабы не пятнать своё достоинтсво подобными выходками.
205 1509170
>>509141
Думал о таком, а разница будет? Ща попробую.
206 1509174
>>509158

>с собой олицетворяешь


>достоинтсво


>>509170
Просто трейты — это раст вей, ООП через ансейф — не раст вей. В сущности, какая тебе разница, выносить функции в трейт или в методы парента? Если там серьёзная разница в коде между методами парента и чайлда, то имплементишь отдельно. А если маленькая разница, то в функцию можно передать кложуру.
207 1509385
>>509001
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=d1ef955bed15c42709ed95227940f74c

> Какую задачу ты решаешь? Скорее всего тебе такая ересь не нужна.


Анон прав.
208 1509431
>>509385
Да, уже решил через парент, переданный чайлду как нужный трейт.
209 1509451
>>509431
Покажешь псевдокод решения? Просто интересно стало.
211 1510127
Зачем нужно это гавно кагда есть яваскрипт и нода?
212 1510354
>>510127
А точно, че это мы все тут. Го на яве пилить софт.
213 1510402
Накопил денег, уволился с галеры, хочу сделать себе Diablo 2, как OpenXRay или OpenMorrowind, только на русте. Подскажите в какую сторону копать, а то этот гейдев какой-то сложный сильно.
214 1510404
>>510402
постри piston2d, gellium, vulkano и типо того
215 1510603
>>510404
Ещё Amethyst есть, хотя он сложный и пока не все мастхев фичи для игры есть.
216 1510966
>>456440 (OP)
Подскажите, что за прога в webm шапки
217 1510968
>>510127
Типы, контроль за выделениями памяти. Куча ошибок детектится на этапе компиляции
like-paintball.png40 Кб, 465x569
218 1511898
219 1511921
Ананасы, почему ржавый не стреляет. Он вроде как замена си и крестов, а на должности в область системного программирования энивей в 99% случаев требуют знания си или плюсов, но никак не раста
Ватафак?
220 1511924
>>511921
Наверное потому что если у тебя уже написан софт на си и ты открываешь вакансию, ты будешь искать того, кто будет писать на си?
Новые проекты и кампании довольно часто используют раст. Посмотри на те же крипту.

Но вообще, раст не только и не столько про системное программирование, сколько про безопасную и быструю альтернативу без гц.
221 1511933
>>511921
Потому что 99% разработчиков не пишут браузеры и подобную хуйню где фичи раста нужны
222 1511940
>>511933
А что и на чем они пишут?
223 1511952
>>511921
Потому что для ядра он всё ещё жирный, а для плюсов слишком сложный как второй язык. А для простых утилит го проще и либы у него все есть. Вот где у раста что-то подобное go x/crypto/ssh?
224 1511953
>>511952
Тебя не смущает что "простые утилиты" по факту пишутся либо на расте либо сразу на ноде, а не на го? ripgrep один чего стоит.
225 1511956
>>511940
Ну я математику пишу например. Шаблоны крестовые очень заходят, а вот борроу чекер не пришей пизде рукав
226 1511961
>>511956
https://www.nalgebra.org
const generics и GAT скоро завезут, будет лучше.
227 1511968
>>511953
Не смущает, ибо у меня обратный опыт. Щито поделать.jpeg
Взять хотя бы недавний https://github.com/neex/phuip-fpizdam - казалось бы питон идеален, но пок почму-то на го.
>>511956
Ну они ж пиздец. В d куда проще.
228 1511975
>>511968
И чем питон идеален? Тем что для запуска тулзы у тебя в системе должен стоять питон? Нет спасибо.

Незнаю что за го-пхп хуйня по ссылке, но у меня есть альтернативный пример. Рискну предположить что количество людей которые пользуются vscode на порядк выше тех, кому нужен эксполит для пыхи. vscode для поиска по проекту испольует ripgrep. Про то что все крупные игроки (мозила, гугл, мс, амазон, ...) так или иначе уже используют раст для своих нужд тоже отличный показатель.
229 1512010
>>511975
Класс. Напомню, вопрос был не в том кто использует раст, а кто разрабатывает на нём. ripgrep в контексте твоего примера - либа, на чём она написана не важно. В мире грепалок люди всё также продолжают использовать grep и egrep, они всё так же хороши для их задач. Мой пример - это новая утилита, автору было всё равно на чём её писать, но он взял и написал на Go. Так вот, почему Го, а не раст/плюсы/си? Потому что Го прост и достаточен для решения этой задачи. Ты просто берёшь блокнот и пишешь код на уровне между сишкой и вторым питоном, и получаешь что тебе нужно. Раст же тебе сразу диктует кучу требований к правильной архитектуре приложения, что для наколеночной тулзы уже слишком сложно.

Обратный пример - Кубер. Он классный, но его сложность превысила инструменты языка и они напилили костылей только чтобы не переписывать всё на новом языке. Но почему они начали на го, если знали что пилят? Хз.

> И чем питон идеален? Тем что для запуска тулзы у тебя в системе должен стоять питон? Нет спасибо.


Для сборки гошного бинаря тебе тоже нужен компилятор. Питон просто намного более декларативен, что для Proof of Concept куда приятнее. В мире эксплоитов похуй на чём они написан, лишь бы работали. Куча скриптов вообще на повершелле, ибо винда.
И да, покажи мне систему без питона. Нескучный DE для WSL не предлагай.
230 1512045
>>512010

> Но почему они начали на го, если знали что пилят?


Они начинали на джаве, но потом сверху спустили команду форсить го.

> Питон просто намного более декларативен


Имперптивный донельзя, как и гопараша.
231 1512148
>>512010
https://github.com/search?utf8=✓&q=stars:>1000+language:Rust&type=Repositories&ref=advsearch&l=Rust&l=
Инфы по закрытым проектами, как ты можешь догадаться у меня нет, а про мои вряд ли тебе будет интересно, ибо confirmation bias. Но я уже не на первом месте работе пишу на расте. Нет, не блокчейн.
232 1512233
>>512148
К содалению, в списке полтора серьезных проекта, а остальное - очередные http-библиотеки и консольные утилиты
233 1512234
>>511956
И что такого в крестовых шаблонах тебе заходит? Они пиздецом перестали быть только в свежем стандарте с приходом концептов.
Inb4 вариадик темплейтс, но я пока не встречал примера, где от вариадиков жизнь кардинально поменялась
234 1512240
>>512234

>И что такого в крестовых шаблонах тебе заходит


Динамическая типизация. Когда ты используешь их по изначальному назначению - а именно как слегка типизированный вариант сишного препроцессора, они охуенны. Можно комбинировать алгоритмы в статике, можно, подставлять флоаты и т. д. Самое приятное, что это работает даже на CUDA.
А концепты наоборот хуйня. Потому что одно дело тайпклассы, которые могут разрешаться ad-hoc, а могут тянуть за собой указатель таблицу функций и быть полиморфными в рантайме, концепты это просто способ чуть менее запутанно падать во время компиляции. Мне это вообще никак не помогает.
235 1512246
Анонс, такой проблем. Есть некий алгоритм, с 3 вложенными циклами, который имеет отличия в самом нижнем лвл
for x in (0..9){
for y in (0..9){
for z in (0..9){
SOME_OPERATION

вот этот SOME_OPERATION бывает нескольких типов. Как бы тут и переиспользовать код, и не проебать оптимизации? Ну, чтобы и if или вызов внешней функции внутрь не засовывать, и копипастой не заниматься.

Я придумал такой вариант - передавать параметром inline функцию, но что-то сомневаюсь - а конпелятор это норм отпимизирует?
236 1512252
>>512240
Дженерики растовые разве не то же самое? А если тебе нужен почти одинаковый — но таки разный — код для каждого типа, то просто
fn foo<T, F>(t: T, f: F)
where F: FnOnce() {} // or Fn() or FnMut()
И пихаешь кложуру в этот <F>.
>>512246
Пихаешь кложуру. Насчёт оптимизации не ебу, честно говоря, это надо гуглить.

Почти всё про пихание кложур наглядно расписано вот тут:
https://doc.rust-lang.org/rust-by-example/fn/closures/input_parameters.html
237 1512269
>>512252
Вот беру я код из примера по дженерикам

use std::fmt::Display;

fn main(){
print_pro(10 as u8);
print_pro(20 as u16);
print_pro("Hello TutorialsPoint");
}

fn print_pro<T:Display>(t:T){
println!("Inside print_pro generic function:");
println!("{}",t);
}

Стираю :Display

fn print_pro<T>(t:T){
println!("Inside print_pro generic function:");
println!("{}",t);
}

Не компилируется. Он не может догадаться, что я вообще-то в функцию посылаю только типы, для которых все имплементировано. Нет, мне обязательно нужен на этот тип констрейнт. И понятно, почему - потому что это тайпкласс на самом деле, тип T на самом деле это пара указателей, на непосредственно данные T и на код таблицы функций Display, а функция параметрически полиморфна даже в рантайме. Ad-hoc оптимизации когда тип известен возможны, но это не главное.
А в крестах без всяких баундов все скомпилируется, потому что шаблон это просто макроподстановка в статике.

И вот допустим я пишу точную математику, и у меня есть тип данных Qfloat, который как double, только сильно жирнее. Далее мне нужна полифорная функция, которая может обрабатывать float'ы, double'ы и вот этот qfloat. На крестах я ее просто беру и пишу, поставив вместо типа темплейт. Если не хватает каких-то функций, я их реализую. При чем мне компилятор сам скажет, чего ему не хватает.
А на расте https://rust-num.github.io/num/num_traits/float/trait.Float.html
Йоба. Ребята, мне никогда в жизни не понадобится столько функций для моего qfloat. Поэтому возникает два стула, либо стабы, либо какие-то ебические количества микротрейтов. Это уже проходили в хаскеле, когда оказалось, что монада это апликативный функтор, а вот прелюдия думает по-другому.
Короче, лично для меня отсутствие темплейтов это большой и бессмысленный гемор, который выливается в еблю с системой типов вместо програмиирования.
237 1512269
>>512252
Вот беру я код из примера по дженерикам

use std::fmt::Display;

fn main(){
print_pro(10 as u8);
print_pro(20 as u16);
print_pro("Hello TutorialsPoint");
}

fn print_pro<T:Display>(t:T){
println!("Inside print_pro generic function:");
println!("{}",t);
}

Стираю :Display

fn print_pro<T>(t:T){
println!("Inside print_pro generic function:");
println!("{}",t);
}

Не компилируется. Он не может догадаться, что я вообще-то в функцию посылаю только типы, для которых все имплементировано. Нет, мне обязательно нужен на этот тип констрейнт. И понятно, почему - потому что это тайпкласс на самом деле, тип T на самом деле это пара указателей, на непосредственно данные T и на код таблицы функций Display, а функция параметрически полиморфна даже в рантайме. Ad-hoc оптимизации когда тип известен возможны, но это не главное.
А в крестах без всяких баундов все скомпилируется, потому что шаблон это просто макроподстановка в статике.

И вот допустим я пишу точную математику, и у меня есть тип данных Qfloat, который как double, только сильно жирнее. Далее мне нужна полифорная функция, которая может обрабатывать float'ы, double'ы и вот этот qfloat. На крестах я ее просто беру и пишу, поставив вместо типа темплейт. Если не хватает каких-то функций, я их реализую. При чем мне компилятор сам скажет, чего ему не хватает.
А на расте https://rust-num.github.io/num/num_traits/float/trait.Float.html
Йоба. Ребята, мне никогда в жизни не понадобится столько функций для моего qfloat. Поэтому возникает два стула, либо стабы, либо какие-то ебические количества микротрейтов. Это уже проходили в хаскеле, когда оказалось, что монада это апликативный функтор, а вот прелюдия думает по-другому.
Короче, лично для меня отсутствие темплейтов это большой и бессмысленный гемор, который выливается в еблю с системой типов вместо програмиирования.
238 1512278
>>512246
Алсо крайне забавно что в крестах подобный код вообще бы вопросов не вызвал будет ли оптимизирован или нет.
Можно даже тупо template<enum> сделать и свитч в коде ебнуть. Очень просто и наглядно.
239 1512296
>>512269
Круто, хули. Но в чём проблема написать два слова в T:?
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=fe7aa58b6b945075590d6a16f63e1762

Для простеньких структур есть #[derive] вместо кучи прописываемых руками impl'ов.
Тебе же не нужно вписывать в ограничения типа функции все трейты, нужно вписывать только те, которые ты используешь.
Но да, писать надо чуть больше, чем в C++.
240 1512300
>>512278
А в расте нет вопросов по поводу того, будет ли оптимизирована передача кложуры.
https://www.reddit.com/r/rust/comments/7y2h09/how_powerful_are_closures_really/
241 1512307
>>512269
Дядя, а ты не путаешь trait objects и generics? Дженерики-то как раз реализованы через мономорфизацию типов, прямо как шаблоны плюсов. А trait objects - это как раз те самые 2 указателя, прямой аналог виртуальных функций плюсов.
242 1512324
>>512296

>Но в чём проблема написать два слова в T:?


Нужно знать эти два слова.
Вообще это типичные два стула между статикой и динамикой. Темплейты - это динамика, которая не требует описания, но зато падает со стектрейсом. А вот баунды падают не так громко, зато требуют дополнительной бюрократической работы. Которая лично мне не пришей пизде рукав.
243 1512329
>>512324
Да тебе конпелятор прямо в ебло выдаёт эти слова, вроде "std::ops::AddAssign", "Copy" или "Send". Не вижу проблемы. А вот выгоды, если ты пишешь в команде хотя бы из двух человек — вижу. Потому что если ты хочешь передать в функцию некий тип, то ты сразу видишь, реализацию каких трейтов тип должен иметь. И тебе не надо ползать по функции, выискивая плюсы, минусы, шифты и прочее, потому что всё, что применяется к этому типу ты видишь прямо в начале функции.
244 1512332
>>512329

> Потому что если ты хочешь передать в функцию некий тип, то ты


Пиздуешь имплементировать трейты для того чтобы просто использовать функцию со своим типом. Даже если 90% функций трейта тебе нахуй не нужны.
245 1512339
>>512332
Ты так говоришь, будто ты каждый день по типу добавляешь, для которого надо трейт Float реализовывать
Screenshot from 2019-11-03 21-08-36.png155 Кб, 776x1394
246 1512341
>>512339
Алсо, пикрил я сгенерил одним хоткеем за 2 секунды и ненужные методы можно не реализовывать.
247 1512342
>>512341
Это упадет в рантайме?
248 1512347
>>512341
Че за хоткей?
249 1512348
>>512332
Если это простая структура, то тупо #[derive], а если сложная, то ты всё равно должен или имплементить Add, или оверлоадить +, если ты будешь его использовать в той функции. Вот только в расте ты можешь сразу посмотреть, есть ли нужные тебе трейты, даже не прогоняя код через компилятор. И какая разница, сколько функций трейта тебе нужны, если все они требуют имплементить только одну функцию? А если не одну-две, то нахуя ты вообще это трогаешь, если оно тебе не надо? Мне кажется, ты пришёл в раст, потому что раст на SO четвёртый год подряд "мост лавед", потыкался, попытался сделать то, что не очень приятно делать на расте, и разочаровался в языке.
250 1512376
>>512269
>>512324
>>512332
>>512342
Твоя проблема из пальца высосана. Хочешь писать C++-way - придется делать стабы. Хочешь писать по-нормальному - либо пиши свой трейт для типа, либо реализуй чужой трейт. Все это займет максимум час и проблем позже не доставит. И не надо говорить, что мол геморно - ты каждый день новые реализации float не пишешь, так что реализовать даже чужой огромный трейт - задача ненапряжная. Зато потом другим разработчикам (да и тебе самому) не надо будет ползать по исходникам, выискивая заиспользованные операции.

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

Даже C++ отказывается от говнопрактики, которую ты юзаешь, а ты на Rust пеняешь.

>>512347
alt-insert в idea
251 1512390
>>512341
Твой unimplemented реализован через panic и падает в рантайме. А в плюсах будет ошибка компиляции. Плюсы вин.
252 1512410
>>512269
Если твоя функция должна обрабатывать только стандартные флоаты и твой qfloat, то какого хуя ты нашёл num_traits крейт? Потому что функция, которая обрабатывает обычные флоаты не требует этого крейта, если только не имплементит все трейты для обычных флоатов (или не превращает флоаты в кастомную структуру за сценой. Тогда тебе надо имплементить только две функции, которые выглядят как "foo(q: qfloat) -> generic_float {}" и превращение в обратную сторону. Но если для обычных флоатов уже известны все константы, то тебе эти константы для qfloat надо знать, если ты хочешь реальное превращение оттуда-сюда и обратно. А это будет ебля хоть в расте, хоть в крестах) под этот крейт. А если тебе нужен этот крейт, то сперва будь уверен, что тебе нужен именно этот крейт. Потому что он очень специфичный, сделан под #![no_std]. И если qfloat ничем не отличается от обычных, то кто мешает тупо скопипастить имплементацию обычных?
>>512390
https://docs.rs/num-derive/0.3.0/num_derive/derive.Float.html
Муля, не нервируй меня!
253 1512414
>>512390
В Rust-е нет дженериков, которые сопоставляют шаблонный параметр с фактическим интерфейсом, заюзанным в шаблонной функции. И правильно сделали - хочешь использовать дженерики - укажи интерфейс шаблонного параметра заранее, блеать.

А если хочешь использовать фичу, которая даже в самих плюсах с 20-го стандарта объявлена устаревшей - ебись с ошибками в рантайме. Да, анон, в C++20 от тебя требуют писать ровно те же трейты, что и в Rust. Только в Rust-е это обязательно, а в плюсах - можно забить и написать говнокод.
254 1512415
>>512376
И часто ты этим alt-insert пользуешься? Как вообще поддеркжа раста в идее? Сама иде не тормозит?
255 1512422
>>512415
alt-insert юзаю постоянно и во многих языках: C++, java, scala, rust. Плагин раста в идее работает еще хуже, чем скаловский, но выбирать как-то не приходится. Сама идея тормозит только в исключительных случаях, если выдать ей гигов 8 памяти (что все и делают)
256 1512426
>>512422

>Сама идея тормозит только в исключительных случаях, если выдать ей гигов 8 памяти (что все и делают)


В смысле практически никогда не тормозит, если выдать ей дохера оперативы
257 1512430
>>512426
Сравнивал с альтернативами? И что умеет расто-плагин? Точнее даже, что не умеет?
258 1512479
>>512430
Неа
259 1512523
Может кто написать сравнение Rust vs D ? В чем их разница и какие преимущества у каждого?
260 1512529
>>512523
В расте вообще нет GC. Собственно, главное различие. Все остальные различия примерно те же, что между любым C-based-lang с ограничениями и растом. Но мало кто будет сразу ,да и вообще писать на D без GC потому что без GC он ничем не лучше крестов, а обратная совместимость, сам понимаешь. А в расте у тебя выбора нет, но он и без GC выглядит неплохо, пока ты не упираешься в какую-то грязь, которая требует ансейфа и изъёбов в основном это алгоритмы с нестандартными структурами данных и просто нестандартные или оптимизированные для чего-либо структуры данных.
261 1512578
>>504241

> Попробуй сначала из крудо-формошлепства перекатиться в чистый бекенд с кафками-куберами-облаками-grpc'ми-числодробилками-хуйлоадом


А где этому учиться? Можешь посоветовать книжек и ресурсов?
Мимо-embedded на си, который учит node.js и хочет заниматься дрочкой серверов
262 1512602
>>512529

> которая требует ансейфа и изъёбов в основном это алгоритмы с нестандартными структурами данных


Как двусвязный список, например? Очень нестандартная структура данных.
263 1512604
>>512602
Спасибо, Капитан. А если это был сарказм, то скажи мне, сколько раз ты использовал двусвязный список в своём коде? На каждую сотню использованных векторов и каждый десяток очередей? Как часто тебе нужен был модифицированный список?
264 1512609
Ананасы, нужна мотивашка учить раст. Ради интереса - без б, но исключительно интерес на хлеб не намажешь. Работы на расте почти нет. Что на нем пишут сейчас вообще?
rust.png122 Кб, 1430x1153
265 1512611
>>512609
Дохуя всего абсолютно, вон пикрил посмотри.
266 1512613
>>512611
Толсто. И hh.ru чуть ли не самый худший вариант для поиска работы на расте, хотя и там иногда проскальзывают вакансии. Пока что Рашка не доросла до раста, ракорастов берут пока что только в Европке или Америке.
267 1512617
>>512611
раст основным хард-скиллом не идет вообще нигде. Только как плюс лол
В заголовках везде джава и макакаскрипт с сисярпом
268 1512621
>>512613
Возможно ли растом делать 7к$ на удаленке, если условно входишь в top25%?
269 1512642
>>512621
Нет, ибо на раст нет работы и так, что уж там про удаленку говорить, да еще и за 7к. Только если свою ОС на ржавом напишешь
270 1512828
>>512602
ну чтож...

struct PieceOfShit {
parent: Option<Weak<Rc<RefCell<PieceOfShit>>>>,
some_data: String,
child: Option<Weak<Rc<RefCell<PieceOfShit>>>>,
}
271 1512870
272 1512978
>>512828

>child: Option<Weak<Rc<RefCell<PieceOfShit>>


Зачем такая длинная запись, просто Option<RefCell<>> не катит?
273 1512987
>>512978
с виком я вроде слегка обосрался,
но вот Rc<RefCell нужен для мутабельности (не мутекс конечно, но тоже неплохо)

>>509028
а вот это я и пародировал
274 1513246
Попробовал ночную сборку Servo, пока очень сыро. Сначала он тупо валился т.к. не мог создать графический контекст Failed to create graphics context!: NoCurrentContext (thread main, at src\libcore\result.rs:1165). На angle завёлся. Мультипроцесс под виндой тоже не работает [2019-11-04T17:18:21Z ERROR constellation::pipeline] Multiprocess is not supported on Windows or iOS.
275 1513336
>>513246

>пока очень сыро


https://wiki.mozilla.org/Oxidation#Shipped
Сухим он никогда и не будет, все готовые куски просто тащат в фф и мерджить с гекко, а в серво будут тащить новые экспериментальные фичи.
276 1513367
>>512602
Ну давай сравнивать, где больше изъебов и где понятнее код.

http://cs.brown.edu/people/jwicks/libstdc++/html_user/stl__list_8h-source.html

https://doc.rust-lang.org/src/alloc/collections/linked_list.rs.html#38-43
277 1513456
>>513367
Так себе сравнение если честно, для меня нет победителей. С++ просто нечитаемое говно, а раст при первом же упоминании list скатывается в unsafe
278 1513459
>>512578

> А где этому учиться?


На работе, на должности бекенд-разраба.

> Можешь посоветовать книжек и ресурсов?


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

> node.js


> дрочкой серверов


Посмотри на хх, сколько вакух на чистый js backend, и сравни с питоньим и гошным бэком. Почитай, что хотят в вакансиях. И походи по собесам. Так, для понимания рыночка.

Тебе понадобится знание языка, платформы+фреймворка, какой-нибудь sql/nosql-бд, какого-нибудь брокера сообщений, общие поверхностные знания о сетях/протоколах/форматах данных/способах предоставить api, и умение пользоваться докером с каким-нибудь оркестратором (compose/swarm/кубер).
279 1513585
>>513456
У Сишки нет генериков, и даже без них Раст даёт банальные вещи вроде человеческого стектрейса по ООМ, который в Си нужно отдельно вкорячивать костылями. У всех остальных языков к двунаправленному списку нужно прибавлять весь код сборщика мусора, потому что без него он не имеет смысла.

Мораль в том, что двусвязный список - это нифига не что-то тривиальное, если браться серьезно. А ансейф - это часть языка, причем далеко не повсеместно нужная.
280 1513976
Всё-тки, аноны, нужно пробросить в дочернюю структуру постоянно хранимый коллбэк, иначе никак. И, знаете, очень странно, что с этим пиздец какие сложности. Постоянно "self doesn't live long enough" и подобная ебола. Вот как объяснить конпелятору, что это, сука, родитель, передаёт коллбэк, сука, потомку, которым сам же и владеет, а посему потомок никак родителя не переживёт и можно конпелять. Вот как?

https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=c2b0c60df88a888b0e68705f36bfd6ab вообще шедеврально:
note: ...so that the types are compatible:
expected &&mut Parent<'_>
found &&mut Parent<'_>
note: but, the lifetime must be valid for the lifetime '_ as defined on the impl at 13:13...
281 1513994
>>513976
Потому что ты вызываешь функцию чайлда на данные парента. И данные парента не должны сдохнуть до того, как сдохнет чайлд. Конпелятор не может этого обещать, потому что вызывает drop() на весь парент, а не на куски его данных. И я до сих пор не могу понять, нахуя тебе вот это вот наследование, если оно в расте реализуется только через уёбищное Box<dyn TraitObject>. Тем более, у тебя нихуя нет наследования, потому что парент i32, а чайлд u32. Если тебе надо только строку расшарить, то Rc<String> и клонируешь стронк референс. А если тбе иногда надо мутать эту строку, но ты её мутаешь редко и не в цикле, то Rc<RefCell<String>>, там оверхед маленький, если постоянно не менять эту строку. А если тебе эту шнягу из разных потоков надо менять, то Arc и Mutex.
282 1513996
>>513994

>данные парента не должны сдохнуть до того, как сдохнет чайлд


>Конпелятор не может этого обещать


эм, а почему, собсно? Ведь чайлд, это тоже данные парента. Как, разве может парент проебаться, а чайлд - нет?

>надо только строку


в том и дело, что это только в этом примере. В реальности без коллбэка никак ну никак, мам!
283 1513997
>>513994

>наследование


не смотри на данные, нет там цели что-то отнаследовать, эт я так, для более дальнейшего примера добавил и забил, а удалить забыл.
284 1513998
>>513996
Что мешает сделать так?
struct Data { vec: Vec<usize>, other_vec: Vec<f32> }
pub struct Parent { d: Rc<Data>, p: i32 }
struct Child { d: Rc<Data>, c: u32 }
285 1514002
>>513998

>Что мешает сделать так?


Через Rc<RefCell<Mutex<Box<Uebox<... все могут. А я хочу понять, какого конпелятор по-умолчанию считает, что парент может проебаться раньше чайлда (или что там значит его ругань на лайфтаймы, если не это самое)
286 1514008
>>514002
Если бы у тебя было
struct Parent {}
struct Child { p: &Parent, c: i32 }
То конпель и слова бы не сказал, потому что ссылку на парент ты передашь только с лайфтаймом. А про ссылку на часть данных я тебе уже рассказал, так что не нервируй меня, Муля.
Но если интересно, почему ссылка без овнершипа недействительна, смотри Pin в стандартной библиотеке.
287 1514022
>>514002
А, чёт в глаза ебусь. У тебя же child — это кусок парента. А ты хочешь из чайлда вызвать функцию на другой кусок парента. Это селф-референс, правильно я тебя в Pin отправил. Если прочитал про Pin, но нихуя не понял, то загугли repr(Rust) в номиконе. И если у тебя чайлд — это кусок парента, то хули ты просто из парента не вызовешь функцию? Ты же можешь тупо достать любые данные чайлда, потому что он кусок парента. То есть
impl Parent{
fn wtf(&self) -> AnyType {
let data = self.child.get_data();
return self.do_smth_with_data(data)
}
}
288 1514038
>>514022

> прочитал про Pin


прочитал, чё-т примерно понял, что данные в расте могут мотаться по памяти туда-сюда. Ухх.

>хули ты просто из парента не вызовешь функцию


тому що, в реальном примере смыл в том, чтобы её позвал чайлд (один из).
289 1514048
>>514038
В таких случаях пихаешь парентов и чайлдов в разные коллекции (типа как в SQL) и хранишь в объектах не ссылки, а индексы в векторах.
290 1514056
Купили как-то суровым сибирским лесорубам японскую бензопилу.
Собрались в кружок лесорубы, решили ее испытать.
Завели ее, подсунули ей деревце.
«Вжик» — сказала японская пила.
«У, бля...» — сказали лесорубы.
Подсунули ей деревце потолще. «Вж-ж-жик!» — сказала пила.
«Ух, бля!» — сказали лесорубы.
Подсунули ей толстенный кедр. «ВЖ-Ж-Ж-Ж-Ж-Ж-Ж-ЖИК!!!» — сказала пила.
«Ух ты, бля!!» — сказали лесорубы.
Подсунули ей железный лом. «КРЯК!» — сказала пила.
«Ага, бля!!!» — укоризненно сказали суровые сибирские лесорубы! И ушли рубить лес топорами…
291 1514057
>>514038
То есть, у тебя есть N переменных, и все они должны читать одни и те же данные? Это
struct Data<T, U> { some_data: T, other_data: U }
struct Child { d: Rc<Data> }
impl Clone for Child {
fn clone(&self) -> Self {
Self { d: Rc::clone(&self) }
А если они ещё и менять данные должны, то либо Rc<RefCell<T>>, либо Arc<Mutex<T>>, либо ансейф.
Ты хотя бы Книгу прочёл, или сразу пошёл код хуярить?
292 1514082
>>514057

>у тебя есть


У меня есть плюсовый код ndk приложения для ведроида с кучей unsafe вызовов к api ведроида и коллбэков, как завязанных на api, так и чисто внутренних.
Сейчас я просто решил внутренний коллбэк переписать в растовом стиле, без этих *mut ctx и прочей жути.
Можно, конечно, переосмыслить и переписать раставейно, но я бы предпочёл сперва получить рабочий вариант, а уж потом его переосмыслять.
И да, книг не читал, т.к. у меня в голове так ничего не откладывается. В режиме поиска ответов на возникающие вопросы оно как-то лучше прёт.
293 1514090
Кто-то когда-то юзал в своей практике double linked list? Я вот - нет.
294 1514116
>>514082
То есть, вместо того, чтобы тыкать во врага копьём, ты пытаешься руками затупить наконечник, чтобы потом можно было махать как дубиной? Как же был прав анон с анекдотом про лесорубов.
Короче, либо листаешь быстренько Книгу, особенно внимательно читая семнадцатую главу, либо пиздуешь писать на том языке, который уже знаешь. Если не хочешь Книгу, то читай rust by example, там та же книга, но в виде комиксов.
А если вообще ничего не хочешь читать, то либо дай уже ссылку на то, что ты реально хочешь сделать, либо пихай селф-референс через ансейф Pin, либо делай как тут написано >>514057
295 1514122
>>514090
Начиная от юзерской и крудовой хуиты (любое приложение со списком: плеер/контакты/список дел, любое приложение с вкладками: браузер/файловый манагер/консоль, любое приложение где нужно undo-redo: текстовый редактор/wyswig редактор/редактор таблиц, любая круд залупа в конце-то концов и тд), проходя байтойобство (любой GC, любой тред манагер, любая система сборки и тд), и заканчивая хуай-теч еботой (любой конпелятор, любая распределёнка, любая jit-вм). Вот нигде, блядь, не нужная структура данных. Я хз вообще что ты там можешь писать.
296 1514125
>>514122
Перечитал, и понял что с GC перегнул, там односвязным все обходятся, ладно.
297 1514129
>>513367
Ну, в плюсах и сях, в отличие от раста, списки обычно все делают руками (или юзают буст, если он уже есть в проекте), ибо неинтрузивный список = 2x оверхед от ожидаемого, и std::list персона нон грата в любом проекте, так что сравнивать странно.

Кстати, а во что разворачивается растовый LinkedList? Хранит ссылку как std::list или инлайнит данные? Вангую что первое, и в расте по-хорошему так же надо делать сырые списки руками, гыг.
298 1514158
>>513585
Лень гуглить, как выглядят генерики в расте? Просто указываешь от чего наследовать шаблонный параметр?
В джаве ебанина какая-то переусложнённая
299 1514162
>>514158
Ну так генерики джавы придумал Одерски (автор скалы), оттуда и type erasure, и прочая околоакадемическая ебанина.
300 1514164
>>514129

> Хранит ссылку как std::list


Как там в С++03? У нас тут в будущем появились операторы перемещения и прочие ништяки.
301 1514170
>>514129
Сорцы же можно посмотреть из доков.
https://doc.rust-lang.org/src/alloc/collections/linked_list.rs.html#38-43
Лист состоит из нод, нода — структура из данных и двух указателей (с размером указателя, даже несмотря на обёртку Option<>, потому что NonNull<> указатель, а Option::None разворачивается в null, которого в расте нет, только в байткоде раста). Это вроде как интрузив.
>>514158
Как foo<T>( variable: T) -> T { return variable }
Где T — любой тип, позволяющий производимые операции. Выглядит так, работает чуть иначе, чем выглядит.
302 1514182
>>514164
https://baptiste-wicht.com/posts/2012/12/cpp-benchmark-std-list-boost-intrusive-list.html
Ну такое.
>>514170

>Это вроде как интрузив.


Это вроде как набор слов.

>структура из данных и двух указателей


Если данные таки лежат отдельно — то это не интрузив нихуя.
303 1514191
>>514182
А что ты хочешь? Какую-нибудь ультра-ансейф
mem::transmute<Node, T>(node)
структуру вообще без обозначения этой структуры, чтобы какие-то байты там отвечали за данные, а какие-то за указатели, но процессор при этом вообще бы не знал, какие там данные за что отвечают? Иди читай repr(rust) главу в номиконе, тебе и так компилятор оптимизирует всё то, что по стандарту С не оптимизируется, а ты хочешь какую-то магию ебаную, которую даже на ассемблере не сделать.
304 1514193
Ребят, подскажите, что я делаю не так.

#![feature(alloc, heap_api)]
use std::alloc::heap;

сразу же вот такая ошибка отдается
unresolved import `std::alloc::heap`

Где теперь искать heap? Очень нужно выделять куски памяти произвольного размера простым api.
305 1514195
>>514122
Немного неясно выразился. Я говорил не о списке, как он определяется в линейной алгебре, а о структуре данных «двусвязный список» с O(1) добавлением/удалением в конец/начало/середину и с возможностью обратного прохода по списку. Ни разу не встречал еще необходимости именно в полном списке этих свойств. Всегда список можно было заменить на односвязный или на банальный массив
306 1514199
>>514158
Смотри обсуждение выше по треду. Вкратце - дженерики тут охуенные. И баунды, которые тебе не нравятся в джавовских дженериках есть в расте. Как и в С++20, лол
307 1514202
>>514193
Был box кейворд, но его так и не стабилизировали. Смотри функции вот тут
https://doc.rust-lang.org/alloc/alloc/index.html
Или в std::alloc
В коре аллока нет, если ты микропроцессор через core пишешь.
308 1514204
>>514195
Ещё один блядскую магию хочет. В любую точку списка тебе O(1) не вставит, потому что дойти до этой точки по указателям — O(N). O(1) только туда, куда у тебя уже есть указатель. Обычно это начало и конец.
309 1514207
>>514202
Ну т.е. мне нужно смотреть в сторону функции alloc_array и юзать ее для u8, если я хочу получить аналог malloc из c, я правильно понимаю?
310 1514210
>>514191
Я хочу, чтобы данные просто лежали в памяти вместе с ссылками. Для понимания: в плюсах для этого просто наследуются от класса с ссылками и всем остальным. В расте способов замутить такое (кроме макросов, которые ниебически раздуют код) как я понимаю, нет?

>>514195
Ну так перечитай моё сообщение, я тебя правильно понял, и все примеры в том посте именно о структуре данных, лол. Как ты что угодно с undo-redo/вперёд-назад или lru без него замутишь?
311 1514212
>>514207
https://doc.rust-lang.org/std/alloc/struct.System.html#method.alloc
В душе не ебу, пока что никогда руками память не выделял, кроме всяких стековых векторов. Но там же доки охуенные, всё описано.
312 1514214
>>514210
Ты ёбнулся? Я тебе дал ссылку на сорцы, рассказал, что структура для данных хранит в себе не только данные, но и два указателя. А ты начал пиздеть, что не интрузив. А что тебе тогда интрузив, ебанутый?
313 1514215
>>514204
Маня, вставлять в список можно, имея итератор. Совсем необязательно идти в место ставки, чтобы вставить/удалить элемент
314 1514217
>>514215
Это ты про итератор который может инвалидироваться и ты начнешь писать хуй пойми куда? Классические кресты?
315 1514218
>>514215
Это в том списке, в котором указатели не в структуре с данными, а в массиве на стеке лежат. А в нашем тебе надо по куче бегать по указателям: берёшь ячейку, берёшь из неё указатель, берёшь по нему следующую ячейку, берёшь из неё указатель... И так пока не найдёшь нужную ячейку.
316 1514227
>>514214
Пока пиздел тут, загуглил типы данных раста, и понял что это не интрузив лист нихуя.

В таком листе лежит 3 ссылки (и длинна зачем-то), вместо 2 ссылок и данных. В первом случае для доступа к данным после того, как мы доитерировались до нужной ноды, нам придётся лезть в рандомный кусок памяти хуй пойми где на бенчмарках это редко видно, потому что твоя программа в одиночку активно срёт в память, хотя даже по ссылке выше видно разницу в простом бенчмарке но ирл без компактирующего гц ноды раскидывает по всей оперативке), а в первом данные всегда будут в кэше сходу, как только мы дошли до ноды. Так понятно?
317 1514232
>>514227
PhantomData — не ссылка, а структура с нулёвым размером, которая просто говорит компилятору, что у нас тут Box<T>, а не Option<NonNull<T>> (который и есть Box<T>, что я тебе в самом первом посте объяснил. И нет, у нас тут не C, где нулёвые структуры занимают 1 байт, у нас раст, где нулёвые структуры занимают 0 байтов).
И если ты мне сейчас не скажешь, как ты хочешь, чтобы выглядел псевдо-байткод, то я с тобой разговаривать не буду больше. А когда ты мне покажешь байткод, я тебе скажу, что он точно так же выглядит в расте (и даже лучше в большинстве случаев, потому что компилятор сам оптимизирует расположение элементов в структуре, а твои кресты с обратной совместимостью так не могут).
318 1514234
>>514227

>а в первом


во втором
1.png6 Кб, 437x148
319 1514236
>>514227
Да ёптваю мать. На пике структура Node. Она содержит в себе две ссылки и объект (НЕ ССЫЛКУ НА ОБЪЕКТ, БЛЯТЬ). Как только мы дошли до ноды, нужные данные лежат ровно на 16 байт ниже этой ноды (А НЕ В РАНДОМНОМ МЕСТЕ, БЛЯТЬ).

Определись, что тебе надо. Я не знаю, может ты хочешь выделять память на стеке. Тогда тебе растовый LinkedList не поможет. Но у меня ощущение, что ты сам не знаешь, что несешь.
320 1514247
>>514232
>>514236
Блять, я всё это время смотрел на структуру LinkedList вместо Node, и понял это только когда посмотрел на LLVM IR.

Извини, антоша, что порвал тебе жепу, я не специально.
321 1514251
>>514247
А еще я прочитал-таки твою ссылку:

>For the intrusive list variations, the data are entered into a vector and then pushed back to the intrusive list.



Оказывается вызывать malloc один раз - это быстрее, чем вызывать его один раз. Удивительные открытия.
322 1514253
>>514251

>чем вызывать его один миллиард раз

323 1514254
>>514236
Не факт. Оптимизация компилятора таки может сунуть любое поле структуры куда захочет.
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=1c4650ca4dad0d7a327689e4e495785a
324 1514371
>>514254
Наверняка есть какая-то штука, типа no_mangle, чтобы так не сувал.
325 1514398
>>514371
repr(C) называется. Вот только ты уверен, что разберёшься с памятью лучше конпеля? Эта структура без оптимизации занимает на четыре байта больше.
327 1514424
>>514404
Сударь, ваша карта бита
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=860789dcb2dd6ffa5685487377bcdafc

да, читал про подводные камни
328 1514430
>>514424
Ты же знаешь, что packed просто так работать не будет? Что это ансейф для процессора, и каждый раз, когда ты что-то делаешь с запакованной структурой, ты должен чётко понимать, что делаешь?
https://doc.rust-lang.org/nomicon/other-reprs.html#reprpacked
329 1514435
>>514424
А ещё, у меня в твоём примере поменялись местами "aaaa" и "cccc". Так что не бита.
330 1514438
>>514435

>поменялись местами "aaaa" и "cccc"


Справа налево, от младшего бита к старшему
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=03c41a0e7b3b95adbcb4b8e635522ae9

>>514430

>ансейф для процессора


Баюс - баюс. Зато можно в файл писать-читать предсказуемо. Хотя, впрочем, не пробовал.
331 1514460
Бля, сук, сильно не пинайте, но вона, чего наваял.

https://play.rust-lang.org/?version=nightly&mode=debug&edition=2018&gist=c396822b2e2cfaf9dff8da2987582799

даже не знаю, что хуже - это, или обёртывания Rc<RefCell<...
332 1514463
>>514460
а, да, это найтли, но и похуй. В стейбл арифметику указателей не завезли, но куда без неё - рано или поздно этот ptr_offset_from или что-то наподобие стабилизируют.
333 1514475
>>514460
Поздравляю! Выглядит так себе, но если работает, то хули тут.
>>514463
Может и завезут, но она в расте не нужна, если ты не с FFI работаешь.
1557611486660.png24 Кб, 300x441
334 1515687
Асинк-эвейт завезли в стейбл!
335 1515710
>>515687
Уже много часов как. И картинку твою лучше под было кинуть под эту ссылку:
https://tokio.rs/blog/2019-10-scheduler/
336 1516072
О, переделал метод из fn в async fn - и оно без задней мысли сконпелировалось. И что, даже работать будет?
Это я всё с переписыванием с крестов - в крестах для вызова этого метода аж поток форкался.
337 1516112
>>516072
Откуда мы можем знать, будет ли оно работать, если мы не знаем, что должно работать? Но вообще, да, должно. Async возвращает Future, которая сама по себе ничего не делает. Чтобы она что-то сделала, надо её выполнить. Но вот когда ты будешь её выполнять, это уже сам решай.
https://rust-lang.github.io/async-book/01_getting_started/04_async_await_primer.html
338 1516122
>>516112
Вот, эт самое, а можно её выполнить без блокировки? Ну, тип, надо мне записать файл - чтобы оно там как-нибудь пошло записываться, а выполнение дальше пошло.
339 1516130
>>516122
Для этого нужен экзекутор, в std его пока еще нет.

https://docs.rs/tokio/0.2.0-alpha.6/tokio/
341 1516143
>>516122
А зачем тебе async, если тебе просто в файл записать что-то надо? Не проще заспавнить тредак, который этот файл обработает? А если тебе надо убедиться, что два тредака не полезут в один файл, то там всё равно будут блоки, вроде FIFO очереди с задачами, где следующая выполняется после того, как предыдущая вернула некое Ok(imma_done).
342 1516161
>>516143

>Не проще заспавнить тредак


Дак там у меня полно raw пойнтеров, а с ними "cannot be sent between threads safely".
343 1516169
>>516161
https://doc.rust-lang.org/stable/std/?search=from_raw
Выбираешь нужный тип и вперёд. А если тебе нужен не смартпоинтер, а тупо атомик примитив, то выбираешь из этих
https://doc.rust-lang.org/stable/std/sync/atomic/index.html
и создаёшь этот атомик из значения своего рав поинтера.
344 1516171
>>516169
О, лол, я даже не заметил, что там есть AtomicPtr, который как раз рав поинтер, но Send.
345 1516501
В-обсчем, аноны, соснул я с тредами.
Что так через тупо вызов треда, что эдак через async & LocalSpawn - получаю 'Unable to spawn: SpawnError("shutdown")' даже на вызове пустой функции-заглушки без параметров.
Надо попробовать воспроизвести на чистом примере и багулю куда-нить репортнуть.
И да, это я всё под ведроид корячу.
346 1516561
>>516501
Короч, завелось асинхронное сохранение. Сделал тред, в который передаю AtomicPtr (спасибо, аноний), до этого передавал слайсом, который получал через from_raw_parts. Но, что странно, версия с LocalSpawn вылетела вообще без передачи каких-либо параметров. Но это, мож я проглючил и затестил старый бинарь.
Можете меня поздравить, у меня теперь есть рабочая аппликуха, представляющая собой переписанный пример камеры отсюда https://github.com/android/ndk-samples/ (я взял texture-view и добавил в него функционал съёмки и сохранения из basic)
Осталось теперь работу найти.
347 1516565
>>516561
Ссылок и примеров реального кода не будет? Да и переписывать что-то на раст, балуясь ансейфом и голыми указателями просто так, а не ради оптимизации — так себе затея.
А ещё, я проебался немного по поводу AtomicPtr, он Sync, а не просто Send.
348 1516759
>>516565

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


Это я пока только пример переписал, дальше буду делать из него полноценное приложение. Буду брать за него деньги и жить на острове в гареме с наташками. Если не фартанёт, то выложу в попенсорс.

Что касается голых указателей - без них никак, так как там идёт очень плотное взаимодействие с API.
349 1517746
>>516561
А не проще на Kotlin писать, зачем на андроиде раст?
350 1517752
>>517746
Смотря где. На андроиде проще, на ios не проще, в хайлоаде проще.
351 1517754
>>517752
В хайлоаде проще на расте
Самофикс
352 1517786
>>517746
Ну, для всякой риалтайм залупы-то даже на андроиде выбор из плюсов или раста.
353 1517800
>>517786
А у него там реалтайм-залупа? Подозреваю какую-нибудь дорисовку рожиц на лицах, но в андроиде уже по идее все либы для этого есть, чтобы прямо из явы дёргать, ну и в самом андроиде всякие апи, которые эффективнее не реализуешь, а FFI в любом языке одинаково работает.
354 1517806
>>517800
Ну хочет написать имиджпроцессинг/игровой движок/кроссплатформенный гуй на (без гб памяти на старте) — пусть пишет. Низкоуровенных библиотек (тем более на мобилках, часах итд) всегда поле непаханное, тем более что всё дырявое как ебаное сито (что ведро что айос). Я хз чего ты доебался.
355 1518129
>>517746
Мне ko-ko-kotlin не интересен, в отличие от раста. С другой стороны - писать хайлоад-сервисы в качестве домашнего проекта не интересно, а вот приложуху - оче даже. Так что, в лучшем случае у меня будет приложение и прокачка в расте, в худшем - только прокачка.

Алсо, сам по себе нативняк при работе с камерой позволяет решать "в лоб" задачи, для которых на жабе/котлине пришлось бы пуд соли съесть, чтобы работало и не тормозило.
356 1518138
>>518129

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


Какие? Т.е. что конкретно ты будешь делать?
Для обработки пикселей должны уже быть либы готовые, с NEON-оптимизациями, раст тебе в этом не поможет. Там конечно есть интринсики, но вряд ли ты их будешь писать сам, т.к. та ещё еботня. Да и не сильно сложнее вызывать асм-код из явы (т.е. скомпиленный отдельно ассемблером), интринсики реже используют на практике.

Я не к тому, что раст не нужен, просто интересно зачем тебе он понадобился на андроиде.
357 1518151
>>518138

>либы готовые, с NEON-оптимизациями


Для обработки пикселей есть renderscript или vulkan, если уже по-большому ходить.

>понадобился на андроиде


прост. NDK жи есть, но на стрёмных плюсах. А тут я хочу на модном расте попробовать, ну и самоцель - больше в изучении языка.
358 1518457
Аноны, а есть какой-нибудь парсер раста в виде отдельного крейта? Чтобы можно было вытащить все сучности из кода, функции там, их параметры и проч. Для чего:
есть куча ffi функций вида ACaptureRequest_setEntry_rational , ACaptureRequest_setUserContext и т.д., которые принимают первым параметром "request: *mut ACaptureRequest" - хочу через build.rs нагенерить для этого всего обёрток, чтобы автокомплит работал.
359 1518472
>>518457
Сам нашёл, syntax::parse
360 1518804
>>518457
Юзай обычный стек для процедурных макросов: proc_macro2 + syn + quote. Покроешь все кейсы.
361 1520396
Посаны, а это правда, что если раст выстрелит и будет везде юзаться в системщине, то хацкеры вымрут как вид, ибо нечего будет эксплоитить? Или это маняфантазии?
15735055643860.jpg46 Кб, 1080x1076
362 1520400
>>520396

>маняфантазии


This.
Даже если всё переписать на руст, unsafe процессор всё равно вылезет и начнётся: meltdown, spectre, хуектер. А если мы закатаем процессор в ещё 3 виртуальных процессора, то начнутся дырявые сетевые протоколы. А потом, когда и их залатаем, для пущей безопасности надо хотя бы размещать датацентры в космосе будет.
363 1520405
>>520396
В скриптах (пхп, питон), жаве (и остальном поверх жвм) итд находят уязвимости.
364 1520462
>>520405
Там узявимости тащем-то уровня "на си написали, а тут — бац — и буфер оверфлоу".
365 1520486
>>520462
Тащем-то нет.
366 1520558
>>520486
Ну ты сейчас берёшь, открываешь радномный ченджлог рандомной скриптохуйни
https://www.php.net/ChangeLog-5.php
и наслаждаешься

>Mbstring:


>Fixed bug #77370 (Buffer overflow on mb regex functions - fetch_token). (CVE-2019-9023)


>Fixed bug #77371 (heap buffer overflow in mb regex functions - compile_string_node). (CVE-2019-9023)


>Fixed bug #77381 (heap buffer overflow in multibyte match_at). (CVE-2019-9023)


>Fixed bug #77382 (heap buffer overflow due to incorrect length in expand_case_fold_string). (CVE-2019-9023)


>Fixed bug #77385 (buffer overflow in fetch_token). (CVE-2019-9023)


>Fixed bug #77394 (Buffer overflow in multibyte case folding - unicode). (CVE-2019-9023)


>Fixed bug #77418 (Heap overflow in utf32be_mbc_to_code). (CVE-2019-9023)


>Phar:


>Fixed bug #77247 (heap buffer overflow in phar_detect_phar_fname_ext). (CVE-2019-9021)


>Xmlrpc:


>Fixed bug #77242 (heap out of bounds read in xmlrpc_decode()). (CVE-2019-9020)


>Fixed bug #77380 (Global out of bounds read in xmlrpc base64 code). (CVE-2019-9024)


вот вообще ни разу не так.
Потом мотаешь ниже и там всё по новой

>Fixed bug #73279 (Integer overflow in gdImageScaleBilinearPalette()).


>Fixed bug #73280 (Stack Buffer Overflow in GD dynamicGetbuf).


>Fixed bug #72482 (Illegal write/read access caused by gdImageAALine overflow).


>Fixed bug #72696 (imagefilltoborder stackoverflow on truecolor images). (CVE-2016-9933)


>Imap:


>Fixed bug #73418 (Integer Overflow in "_php_imap_mail" leads Heap Overflow).

367 1520564
>>520558
Я тебе про другое.

https://www.cvedetails.com/vulnerability-list/vendor_id-2337/product_id-4096/ даже наличие манажед языка не избавляет от проёбов.
368 1520571
>>520558

>gdImageScaleBilinearPalette


Как раст спасет от ошибок в сишных либах? Или ты предлагаешь все окружение на расте переписать? К тому же сейчас можно пересобрать либы с защитой стека, и ROP-ы не так страшны как раньше.
369 1520573
>>520571
Ну так эта ветка диалога и началась с фразы "а шо если всё переписать на руст"?

>К тому же сейчас можно пересобрать либы с защитой стека


Ведь все в мире аутисты гентушники, и собирают под себя весь мир.
370 1520575
>>520573

>Ведь все в мире аутисты гентушники, и собирают под себя весь мир.


Если тебе безопасность важна, то это сделать гораздо проще, чем переписать все окружение на другом языке.
371 1520585
>>520575
А потом повторять для каждой версии 0.0.0.1 a/b/c/d?
372 1520586
>>520585
Проще поставить hardened дистрибутив, где все уже собрано.
373 1520777
Аноны, какой же пиздец.
https://github.com/rust-lang/rust/issues/28687
только у меня эта хуйня всплыла и сразу нагуглилось.
374 1520809
Аноны, ecть одна строка, которую нужно проматчить.. Все уже напряглись, я чувствую. Её нужно проматчить другой, сука, строковой переменной. Это вообще возможно?
376 1520997
>>520815
Вот оно что, михалыч.
377 1522042
Аноны, чего притихли? Давайте, хвалитесь, чего за неделю накодили.
Я, вот, распарсил через ебаный syn не, ну на кой мне в ast запятые со стрелочками? Бошку сломал, пока структуру разгреб выхлоп bindgen и сделал симпатичную обёртку поверх андроидных структур. Навряд ли это где-то ещё пригодится, так как в андроиде оче удобно это всё поименовано: СтруктураНейм_методНейм, но мне должно помочь.
378 1522665
>>522042
Я всю неделю ходил на работу и массаж/лфк. Мне сейчас не до наворачивания своих проектов на расте в свободное время
379 1523018
Ананасы, зачем в расте unsafe? Ведь если не пихать код в ансейф вообще, то его будет невозможно взломать, 0 шансов на переполнение стэка/кучи/использования данглинг поинтера и т.п.
Или есть подводные? Ну или как всегда "хуяк-хуяк и в продакшн" превыше всего?
380 1523062
>>523018
unsafe иногда дает такие возможности, что-бы которые реализровать в сейв нужно затратить куча ресурсов.

например банально скопировать цвет из u16 в [u8, u8, u8, u8]. (хотя может я уже устарел и такая фича есть в сейве, но тем не менее)

еще удобно писать сейф враперы под С либы из ансейв кода.
381 1523063
>>523062

> u16


u32

fix
382 1523093
>>523062

>скопировать цвет из u16 в


уже есть to_be_bytes/to_le_bytes. А вот обратно пока вроде ансейф.

>удобно писать сейф враперы под С


Взаимодействие с сишным кодом - в принципе unsafe. Какой-то, хуй его знает откуда полученный, указатель, а ты его хуяк - и дереференсишь в конкретную структуру. Смысл в том, что если на этом месте у тебя сегфолт наебнёт, то ты сразу знаешь, куда копать.
383 1523128
>>523018
Затем, что раст — системный язык. Собственно, этим всё сказано. Но если ты хочешь примеров, то пожалуйста.
Имплементить Send и Sync для кастомной структуры — ансейф. Либо не балуешься кастомными структурами, которые не ловят Send и Sync автоматом, что охуеть какое ограничение, либо сосёшь лапу.
Голые указатели. Тут даже говорить ничего не буду, потому что растовая ссылка — голый указатель с обёрткой лайфтайма для компилятора.
Всякие страшные байтоёбища, тот же mem::transmute, что иногда очень удобен, но очевидно, что сейф трансмута не было и не будет никогда. Вот тебе пример, где без трансмута хуй обойдёшься: >>514404
384 1523454
>>523018
Без ансейфа ты сможешь... ты не сможешь написать ничего. Тебе все равно нужен IO, взаимодействие с внешними либами, а оно by design unsafe, так как хуй пойми откуда там появляются указатели, как работают функцуии и т.п. То есть ты даже hello world не напишешь без unsafe, строго говоря.

Альтернативой может быть разве что ОС и весь софт, написанный на расте, работающий поверх архитектуры, в которой раст это машинный язык (ведь мы понимаем, что использование ассемблерных вставок это тоже unsafe, да?).
385 1523687
1
Тред утонул или удален.
Это копия, сохраненная 18 ноября 2019 года.

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

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