Сохранен 547
https://2ch.hk/pr/res/3310716.html
Прошлые домены не функционирует! Используйте адрес ARHIVACH.VC.
24 декабря 2023 г. Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

Rust #35 /rust/

 Аноним OP 29/10/24 Втр 18:01:18 #1 №3310716 
изображение2024-10-29175417490.png
1-3borisvallejosirensong.jpg
11pVq9Nik.jpg
изображение2024-10-29175936912.png
Добро пожаловать в тред гарантий, обещаний, владения, заимствования и тайных знаков

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

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

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

НОВИНКА: Rust для Windows: https://metanit.com/rust/windows/

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

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

Ресурсы на русском:
https://rust-lang.ru/
Отдельное спасибо автору этого гитхаба(старому ОПу). Здесь вы сможете найти много полезной информации: https://gist.github.com/TatriX/183c816f1346d418f969c4576c2b9b41


Предыдущий: >>3283990 (OP)
Аноним 29/10/24 Втр 18:32:37 #2 №3310750 
Зачем нужен невероятно быстрый язык, когда единственное для чего нужен невероятно быстрый язык С++ это работа с директикс, а для раста байндингов директикс нет?
Аноним 29/10/24 Втр 18:50:05 #3 №3310768 
>>3310750
На чём писать прикладной софт с компиляцией в бинарник? На чём писать ОС, когда гну-макаки в нарушение своих же гну-лицензий выгоняют из проектов неугодных людей и подчищают код?
Аноним 29/10/24 Втр 19:02:58 #4 №3310781 
>>3310768
Да хоть на питоне. Только сама по себе компиляция в бинарник ничего особо не дает, я видел проги переписанные на крестах которые работали примерно так же.
Аноним 29/10/24 Втр 19:03:47 #5 №3310783 
2.png
>>3310750
>директикс
Зайчем? Ты в 2к24 собрался писать игры под Хуан?
Аноним 29/10/24 Втр 19:06:54 #6 №3310784 
image.png
>>3310768
>На чём писать прикладной софт с компиляцией в бинарник?
Аноним 29/10/24 Втр 19:08:13 #7 №3310785 
image.png
>>3310750
>директикс
Аноним 29/10/24 Втр 19:08:23 #8 №3310786 
>>3310783
Я собираюсь в опенжл, но для чего мне раст, когда для этого есть божественный LWJGL и IDEA?
Аноним 29/10/24 Втр 19:13:51 #9 №3310790 
>>3310781
Нужна хоть какая-то производительность. Одно дело написать youtube-dl на нём, где 99% времени упор в IO, другое дело когда питон в 10-15 раз медленнее крестов и ты ничего не можешь с этим сделать, кроме как через костыли переписать на сишку кусок питоновского кода.
>>3310784
Без сахара жить сложно, нужен сахар что привкус хуёв во рту не чувствовался.
Аноним 29/10/24 Втр 19:15:18 #10 №3310793 
>>3310784
У меня негативные ассоциации с названием
Аноним 29/10/24 Втр 19:18:14 #11 №3310796 
6582f594b6457.jpg
>>3310786
>Java
>OpenGL
>IDEA

ТРЕД ЯВЛЯЕТСЯ АНКЛАВОМ ЕВРЕЙСКОЙ АВТОНОМНОЙ ОБЛАСТИ. ГОИ ОБЯЗАНЫ ПОКИНУТЬ ТРЕД В ТЕЧЕНИЕ 12 ЧАСОВ
Аноним 29/10/24 Втр 19:22:39 #12 №3310802 
>>3310790
>Без сахара жить сложно, нужен сахар что привкус хуёв во рту не чувствовался.
Что именно не хватает?
Аноним 29/10/24 Втр 19:25:24 #13 №3310805 
>>3310790
>Без сахара жить сложно, нужен сахар что привкус хуёв во рту не чувствовался.
С++/C# там столько синтаксических конструкций, что просто вынимать не будешь ох эти растеры и их аналогии с членами
Аноним 29/10/24 Втр 19:28:30 #14 №3310813 
>>3310793
Это у тебя извращенный ум, слово рандомное.
Уж куда лучше чем ржавчина.
Аноним 29/10/24 Втр 19:35:24 #15 №3310818 
>>3310790
>питон в 10-15 раз медленнее крестов
Ну не знаю, нейросетки работают одинаково что на питоне что на с++. Ну если профайлером найти ботлнек и переписать его на ассемблере то наверно будет быстрее.
Аноним 29/10/24 Втр 19:39:47 #16 №3310827 
>>3310818
У торча свой JIT. Речь про чистый код. Когда питоновского кода набирается пару десятков тысяч строк, то уже неприятно.
Аноним 29/10/24 Втр 20:42:38 #17 №3310875 
>>3310784
А если выйти за пределы бета тестирования?
Аноним 29/10/24 Втр 23:57:01 #18 №3310960 
>>3310875
У тебя полная совместимость с сями, тебе вообще нечего бояться. Это раст если загнется (уйдет в апач фондейшн) ты останешься с корытом, а здесь ты сможешь вернутся на си не переписывая код.
Аноним 30/10/24 Срд 00:05:14 #19 №3310966 
>>3310960
Если у зига были бы евангелисты языка, то из каждого утюга бы звучало про совместимость, как например:
js -> ts
java -> kotlin
c -> zig

Но увы, это до сих пор неочевидно.
Аноним 30/10/24 Срд 00:41:46 #20 №3310986 
>>3310960
Тогда нахуя оно надо, может проще сразу на сях писать
Аноним 30/10/24 Срд 07:31:58 #21 №3311097 
>>3310986
А кто тебе запрещал на сях писать? Это для тех кто кому нужно могущество си, но на самих сях писать уже не хочет.
Аноним 30/10/24 Срд 08:23:23 #22 №3311127 
>>3311097
Вот сделали бы для си инструмент типа cargo и нафиг ни какие зиги, расты не нужны были бы.
Аноним 30/10/24 Срд 10:07:43 #23 №3311194 
>>3311127
Они что-то пытаются, вон meson высрали, но там у них голова чуть по-другому работает в отличии от нормальных людей, они не стремятся к тому чтобы сделать что-то удобнее для себя, поэтому это скорее всего верхняя планка
Аноним 30/10/24 Срд 11:42:24 #24 №3311280 
>>3311127
> инструмент типа cargo
Это когда без подключения к серверам нельзя собрать ничего? Как показывает практика, завтра могут просто отключить доступ к ним из рашки, а послезавтра в коде сделать закладки для рашкинского региона, чтоб карга не работала там. И никто не будет разбираться, как в линуксе по буковкам "ру" будут нахуй посылать и иди жалуйся в спортлото.
Аноним 30/10/24 Срд 12:00:18 #25 №3311295 
image.png
image.png
>>3311280
Если тебя это беспокоит и ты не озаботился vpn'ом и/или собственным/надёжным реестром пакетов/зеркалом, то ты дурачок, вон из профессии, иди в пятёрочку.
Тебя и от гитхаба могут отключить, и от sourceforge, и от debian с арчом - хоть из США, хоть из РФ (что не менее вероятно лол - вспомни как РКН ёбнул доступ к гитхабу в РФ в 2014г)
Аноним 30/10/24 Срд 12:35:37 #26 №3311343 
Язык конечно интересный, но вот что непонятно:

Зачем нужен вездесущий маркетинг и реклама?
Почему нельзя собрать проект без интернета?
Почему нельзя называть переменные "не политкорректными" названиями?
Почему async и лайфтаймы выворачивают язык наизнанку?
Почему в сообществе одни трансы и пидоры?
Почему до сих пор ничего толком не написано на этом "системном" языке кроме цветных версий grep и ls?
Почему так много зависимостей в каждый проект тянется?
Аноним 30/10/24 Срд 12:50:36 #27 №3311356 
>>3311343
>Зачем нужен вездесущий маркетинг и реклама?
Его нет
>Почему нельзя собрать проект без интернета?
Можно
>Почему нельзя называть переменные "не политкорректными" названиями?
Можно
>Почему async и лайфтаймы выворачивают язык наизнанку?
Что значит выворачивают наизнанку?
>Почему в сообществе одни трансы и пидоры?
Общемировая практика
>Почему до сих пор ничего толком не написано на этом "системном" языке кроме цветных версий grep и ls?
Написали, но если хочешь что то конкретное то можешь начинать писать хоть сейчас
>Почему так много зависимостей в каждый проект тянется?
Я ебу почему в твои проекты так много зависимостей тянутся? Либо убирай из сам, либо проси разрабов убрать ненужные зависимости
Аноним 30/10/24 Срд 12:51:29 #28 №3311357 
>>3311343
>Зачем нужен вездесущий маркетинг и реклама?
Поставь adblock.
>Почему нельзя называть переменные "не политкорректными" названиями?
Можно.
>Почему async и лайфтаймы выворачивают язык наизнанку?
Не выворачивают.
>Почему в сообществе одни трансы и пидоры?
Микропластик.
>Почему до сих пор ничего толком не написано на этом "системном" языке кроме цветных версий grep и ls?
Напиши.
>Почему так много зависимостей в каждый проект тянется?
Не тяни.
Аноним 30/10/24 Срд 13:00:24 #29 №3311368 
>>3311295
Одно дело когда по IP блочат, совсем другое когда с другой стороной ищут русских под кроватью всеми способами. В том числе начинают резать "русский" код, что бы это ни значило. Я уже приводил пример с линуксом - там китайский/русский код подчищали, по буковкам "ру" банили, из списка авторов кода в нарушение лицензии убирали. Как тут тебе зеркала помогут не понятно. В симейке/ГОвне хотя бы нет привязки к пердольным репозиториям под юрисдикцией швятой, а просто по ссылке на репу зависимости ставятся, всё децентрализовано. А тут фактически нужно будет свою отдельную репу карги делать и поддерживать, чего естественно не будет никогда.
Аноним 30/10/24 Срд 14:38:58 #30 №3311464 
>>3311368
>а просто по ссылке на репу зависимости ставятся
В карго можно прописать ссылку на гит
> тут фактически нужно будет свою отдельную репу карги делать и поддерживать, чего естественно не будет никогда.
В чем проблема? Максимум сотню широкоупотребимых залить на фсбхаб даже просто руками ничего не стоит.
Аноним 30/10/24 Срд 15:55:08 #31 №3311551 
>>3311356
>>3311357
>Почему нельзя называть переменные "не политкорректными" названиями?
>Можно
Даже deadbeaf?
Аноним 30/10/24 Срд 16:05:06 #32 №3311570 
>>3311551
Нет, deadbeef нельзя, но зато можно nigger, faggot etc.
Аноним 30/10/24 Срд 16:07:38 #33 №3311577 
>>3311570
Почему ещё не запретили? Довольно странно. Пойду создам петицию на форуме спидерастов. Ещё нужно запретить BABE и прочие женоненастнические символы. я реально это сделаю через пару месяцев, найму пару прогрессивных компаний для этого
Аноним 30/10/24 Срд 16:08:38 #34 №3311581 
>>3311570
Кок разве такое позволит сделать?
Аноним 30/10/24 Срд 16:18:00 #35 №3311596 
>>3310966
>c -> zig
На ху я? Если можно на С писать без перделок и свистелок?
Аноним 30/10/24 Срд 16:21:58 #36 №3311602 
>>3311343
>Зачем нужен вездесущий маркетинг и реклама?
Кстати услышал тут в такси по радио рекламу крутили, типа ставь наш новый молодежный язык и будешь круче всех. По телевизору вообще 24/7 его рекламу крутят, я редко его включаю, но как не включу везде реклама раста. Ну я зашел к ним в офис в Питере на Рубинштейна 24, мне сказали что можешь бесплатно пользоваться, но чтобы установить нужна флешка, свою нельзя только фирменную, пришлось покупать фирменную, она стоит 100$, но из-за ссанкций ее везут через Казахстан, плюс НДС и растоможка и в рублях уже 16800. Попутно всучили подписку на serde за 499 в месяц. Вот тоже думаю совсем маркетологи охуели
Аноним 30/10/24 Срд 16:23:44 #37 №3311608 
>>3311368
Как показать что ты тупой не говоря об этом даже лень комментировать
Аноним 30/10/24 Срд 16:25:45 #38 №3311611 
>>3311127
Пишу на Си и инструмент типа cargo не нужен, а то и был бы во вред.
Аноним 30/10/24 Срд 16:30:10 #39 №3311616 
>>3311611
Как ты собираешь проекты, если там много файлов?
Аноним 30/10/24 Срд 16:32:03 #40 №3311617 
>>3311616
Дикарь-зумерок не слышал про инкрементальную сборку?
Аноним 30/10/24 Срд 16:39:00 #41 №3311628 
>>3311617
Типа ты вручную пишешь gcc file1.c, потом gcc file2.c и т.д.?
Аноним 30/10/24 Срд 16:40:42 #42 №3311630 
>>3311628
Этот растошизик даже мыслить не может вне своей карго-хуйни, лолд. Вот это выдрессировали опущенца.
Аноним 30/10/24 Срд 16:47:10 #43 №3311635 
>>3311628
Я типа могу Makefile написать и билдить всё скриптиком, хоть на верилоге, хоть на Си. Могу на Cmake написать, и билдить сгенерённым мэйкфайлом. Можно забиндить всё это дело в моём емаксе на f9 и не париться вообще, алсо никакой непонятной хуйни и анальной зависимости от вендора карги/другого магического комбайна, работало 30 лет назад и ещё также (с оговорками лол) проработает 100 лет.
Аноним OP 30/10/24 Срд 17:25:46 #44 №3311663 
>>3311343
>Почему нельзя собрать проект без интернета?
Хм, поподробней можно?
>Почему нельзя называть переменные "не политкорректными" названиями?
Coolstory? Не принимают код в Open Source сообществе, или за недопущением переменных с неправильными названиями следит сама IDE/компилятор?
>Почему в сообществе одни трансы и пидоры?
Сейчас трансов и пидоров, нет только разве что в Delphi (потому что он как Неуловимый Джо, никому не нужен) и в C (потому что там нужно реально мозгами шевелить, а среди реально мозговитых, "нитаких как все" квиров, обычно не встречается).
Аноним 30/10/24 Срд 17:30:00 #45 №3311667 
>>3311663
Да ладно сразу на ум приходит создатель такого тула как Yosys.
Аноним 30/10/24 Срд 18:24:48 #46 №3311714 
>>3311127
Карго и npm зло, они видимо пошли по пути го
https://zig.news/edyu/zig-package-manager-wtf-is-zon-558e
Аноним 30/10/24 Срд 18:38:30 #47 №3311727 
>>3311714
> json
Больные ублюдки. И так билд-скрипты как письмена шизов, только с мейкфайлами соперничать, так ещё и мету в жсоне делают, пиздос.
Аноним OP 30/10/24 Срд 18:41:05 #48 №3311730 
>>3311097
Проблема в том, что просто кодить на C не дают. Весь FAANG срочно переходит на Rust и даже Белый Дом требует на него переходить.
Аноним 30/10/24 Срд 18:41:47 #49 №3311733 
16476376078490.jpg
>>3311295
В npm были же диверсии в либах по ip, причем там дебил навредил больше своим службам, которые работали в сетях Беларуси и им все потерли (осталась его фото). Из-за флуда в пакетах говна можно засунуть в любой вложенности, а так как в случае карго ты не владеешь своими пакетами после публикации то проблемы могут иметь фанатичный характер.

Менеджер пакетов не должен быть привязан к одной репе. Да и сами репы имеют специфичный формат, а нужно как в го или зиге - скачал, если что, ручками и закинул. Такой подход так же не создает миллион мини реп.
Аноним 30/10/24 Срд 18:42:05 #50 №3311734 
>>3311714
Ебать вот это ПРОСТОТА, нахуя такой велосипед, если можно как сегодня поставить deb пакет со всем нужным/сконпилить из исходников привычным способом.
Аноним 30/10/24 Срд 18:53:34 #51 №3311753 
>>3311730
Естественно его рекомендует белый дом, карго вроде настроен так что автоматом подтягивает версии 1.1.х, то есть цру может просто включать и отключать бэкдоры когда надо в любой цепочки (в каком-нибудь очередном "left-pad"). Просто идеальная платформа.
Аноним 30/10/24 Срд 18:56:30 #52 №3311755 
>>3311727
Там не json, это анонимные структуры зига. Автор говорит "похоже" на json. В мире зига даже билдинг пишется на зиге.
Аноним 30/10/24 Срд 19:10:27 #53 №3311776 
>>3311730
Кто не дает? Они сейчас с тобой в одной комнате?
Си язык богов, скорее загнется все остальное чем си, поэтому хорошее обновление языка не помешало бы. Естественно веб макакам это не подойдет, да и хруст не особо для вебмакакинга подходит, эта беда с асинками, да и костылище сердо.
Аноним 30/10/24 Срд 19:19:57 #54 №3311786 
>>3311733

> Менеджер пакетов не должен быть привязан к одной репе.
Cargo не привязан к одной репе - можешь использовать любую другую доступную.

> Да и сами репы имеют специфичный формат,
Вся специфичность - наличие cargo.toml в папке с пакетом.

> а нужно как в го или зиге - скачал, если что, ручками и закинул. Такой подход так же не создает миллион мини реп.
В cargo.toml ты можешь использовать сторонний репозиторий, git и пути файловой системы для пакетов. Вот прям ручками качаешь, ручками распаковываешь в папочку и ручками прописываешь путь к этой папочке - всё
Аноним 30/10/24 Срд 19:22:32 #55 №3311788 
>>3311786
> любую другую доступную
Я хочу любую другую поддерживаемую. Ясен хуй напердолить можно что угодно, но тогда смысл в карго пропадает, зависимости по ссылкам на гитхаб намного проще в этом случае. А сколько-нибудь поддерживаемая только официальная.
Аноним 30/10/24 Срд 19:28:37 #56 №3311790 
>>3311788
Вот тебе по прямым ссылкам на любой гит репозиторий, можешь выбрать нужный коммит, тег, ветку и путь
https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#specifying-dependencies-from-git-repositories
Аноним 30/10/24 Срд 19:36:45 #57 №3311797 
17295196031172.png
>>3311753
Так, вот сейчас стало интересно - что это за cargo и с чем его едят?
Просто сколько лет программировал - ни разу ни одно средство разработки не требовало Интернета. Кроме разве что, FlutterFlow но там собственно, само средство разработки исполняется в облаке, а доступ через браузер.
Аноним 30/10/24 Срд 19:47:40 #58 №3311807 
>>3311786
>Cargo не привязан к одной репе - можешь использовать любую другую доступную.
Ну мы же говорим про реальный мир, а не вымышленный с единорогами, да? Можно, но де-факто это не так.

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

В общем, когда появиться с десяток реп по типу как у maven, тогда можно будет еще говорить о свободе. (такого не будет, сразу отменят тебя)
Аноним 30/10/24 Срд 20:07:59 #59 №3311824 
>>3311790
Это ты предлагаешь все зависимости зависимостей так пердолить?
Аноним 30/10/24 Срд 20:31:37 #60 №3311845 
>>3311797
Мне больше всего напрягает то, чтобы писать под винду надо тянуть вижлу и С++ билдер в 6гигов.
У зига так же?
Аноним 30/10/24 Срд 20:36:51 #61 №3311851 
>>3310716 (OP)
>https://2ch.hk/pr/src/3310716/17302140799711.jpg
Ого олдфаг в треде. Поведай нам свой экспириенс в разработке, тебе овер 40 лет.
Аноним 30/10/24 Срд 20:44:49 #62 №3311859 
>>3311824
Ну это уже как тебе угодно
Аноним 30/10/24 Срд 20:48:30 #63 №3311863 
>>3311845
> 6гигов
Не пизди, 1.6.
Аноним 30/10/24 Срд 20:57:58 #64 №3311869 
>>3311807
В реальном мире у меня для личного пользования несколько впс в разных регионах с впн, а для рабочих задач поднята artifactory с кешированием и проксированием до crates, docker hub, nuget, npm и прочего - полнейшая свобода.
Ты какую-то хуиту придумал и сам ее боишься как тот конь который насрал посреди манежа и пугался своего говна
Аноним 30/10/24 Срд 21:03:05 #65 №3311875 
>>3311869
>В реальном мире у меня
впн отрубается так же легко, как пукнуть в лифте
Аноним 30/10/24 Срд 21:04:42 #66 №3311879 
>>3311875
Вот как cloak и v2ray научишься отрубать - сразу пиши, а пока что попустись
Аноним 30/10/24 Срд 21:08:21 #67 №3311886 
>>3311879
Впервые про роутеры слышишь? Нет никакой проблемы трафик перекидывать на VPN на уровне роутера, а не софта. VPN клиент в любом контейнере поднимаешь хоть на самом роутере.
Аноним 30/10/24 Срд 21:28:41 #68 №3311909 
>>3311879
2011 год - хаха они не могут запретить <базворд>
-----вы находитесь здесь-----
2024 год - хаха они точно не смогут запретить <еще один базворд>

тор тоже не "могли заблокировать" а потом заблокировали, лол
После ввода китайского опыта будут просто автоштрафы прилетать за твои базворды, на твою карту/госуслуги.
Аноним 30/10/24 Срд 21:33:03 #69 №3311917 
haskell.jpg
>>3311909
> на твою карту
Хотя кого я обманываю
Аноним 30/10/24 Срд 21:40:11 #70 №3311928 
>>3311786
>Cargo не привязан к одной репе - можешь использовать любую другую доступную.
Безумный растошиз сейчас всерьёз эту хуйню высрал? Ору нахуй с оправданий.

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

К чему всё это? Очевидно что растом пользоваться просто невозможно в современных условиях, он для этого не предназначен.
Аноним 30/10/24 Срд 22:35:56 #71 №3311981 
>>3311928
Не гори так мань, сходи там pkgconfig подергай, autotools сконфигури, cmakelists.txt поправь - ну у тебя столько дел в твоей "испытанной временем" экосистеме, а ты тут ходишь позоришься, тролишь тупостью, уже даже скучно тебя обоссывать
Аноним 30/10/24 Срд 22:56:12 #72 №3311993 
>>3311863
>Не пизди, 1.6.
Я бы тебе поводил скриншотом по губам, но к сожалению все уже установлено (там даже больше 6гб).
Раз установилась вижла я еще шарпы поковырял, лол
Аноним 30/10/24 Срд 22:58:52 #73 №3311996 
>>3311993
Так кто тебя заставляет ставить студию? Ставь только тулчейн.
Аноним 30/10/24 Срд 23:18:44 #74 №3312001 
>>3311981
Зачем мне это делать, я же не безумный растошиз который вместо написания программ копается в конфигах и каргокале.
Аноним 30/10/24 Срд 23:53:08 #75 №3312023 
1701884341711.png
Те кто жалуется на раст, посмотрите какая красота у зиге. Там реально филиал дурки, такого даже в крестах в STL нет.
Аноним 31/10/24 Чтв 00:07:46 #76 №3312029 
>>3311996
установщик раста и заставляет.
Аноним 31/10/24 Чтв 00:11:00 #77 №3312030 
>>3312023
Что там? Или ты хочешь чтобы мы пошли изучили синтаксис зига чтобы понять твою мысль?
Аноним 31/10/24 Чтв 00:15:44 #78 №3312032 
17051546752200.png
praise-the-crab-crate-is-web-sys-btw-v0-vxhvnk2hq2ua1.webp
>>3312023
К сожалению филиал дурки в другом месте. я так понял ты в первые увидел правосторонний кодинг когда возвращают сразу инициализацию вместо присвоения в переменную? Тебе понравится котлин
Аноним 31/10/24 Чтв 00:21:20 #79 №3312034 
>>3312023
Кстати легко читается, даже не зная зига не режет глаза.
Загугли - ? это опшены, а встроенные функции через собаку.
Аноним 31/10/24 Чтв 00:22:15 #80 №3312035 
>>3312029
Не пизди. Даже если тебя отправляет в установщик студии, то там можно выбрать только тулчейн без самой студии.
Аноним 31/10/24 Чтв 00:39:04 #81 №3312051 
>>3312035
Да какая разница пиздишь ты, это не отменяет того что надо тянуть гиги за шаги.
Аноним 31/10/24 Чтв 00:45:51 #82 №3312056 
>>3312051
Пользователь винды опущенный чмошник и должен страдать
Мимо
Аноним 31/10/24 Чтв 00:48:35 #83 №3312058 
>>3312051
А на линуксе тебе не надо тянуть сто зависимостей и gcc?
Аноним 31/10/24 Чтв 01:05:22 #84 №3312065 
>>3312056
Ща бы покупать пеку с 64 гигами для компиляции цветного grep и не играть в компьютерные игры.
Аноним 31/10/24 Чтв 01:10:32 #85 №3312067 
>>3312056
Разве Линус разрешал тебе использовать пинус?
На самом деле обосрались тут не вин юзеры, а раст, который победил С++, но при этом без С++ тулинга не собирается.
Аноним 31/10/24 Чтв 09:58:21 #86 №3312282 
>>3312062
>>3312065
>>3312067
Найс подрыв от виндусятников
Аноним 31/10/24 Чтв 14:44:33 #87 №3312622 
>>3312282
Какой устойчивый манямир, не раст обосрался, а виндузятники. Так и запишем.
И кто вам разрешал сидеть на финском линуксе?
Аноним 31/10/24 Чтв 14:57:05 #88 №3312628 
>>3312622
>финском
Американском если быть точнее и не просто linux, а GNU/Linux GNU/Red Hat/Linux
Аноним 31/10/24 Чтв 21:03:34 #89 №3312917 
>>3312628
>GNU
Столлман уже высказал свое мнение? Или молча в сторонке грызет мозоли?
Аноним 31/10/24 Чтв 21:05:24 #90 №3312919 
>>3312917
Он вообще приболел немного
Аноним OP 31/10/24 Чтв 21:55:21 #91 №3312936 
>>3312282
>>3312622
Растоман + линуксоид = долбоеб в квадрате.
Аноним 31/10/24 Чтв 22:54:04 #92 №3312962 
>>3312936
># OP
>Растоман
Лол, а ты тогда кто? Или по доброте душевной на зарплате чужие треды перекатываешь?
Аноним 02/11/24 Суб 16:52:22 #93 №3314409 
image.png
Кто-нибудь раст на арме юзал? Допустим, у меня 16 ядер (32 потока), на пике я получу прирост производительности в четыре раза? IO не является узким местом и все упирается в CPU.
Аноним OP 02/11/24 Суб 16:53:29 #94 №3314411 
>>3312962
Интересующийся/зоонаблюдающий.
Аноним 02/11/24 Суб 19:17:52 #95 №3314509 
2d59758586af0f2c96b0a14cffc58e56.png
>>3314409
>на пике я получу прирост производительности в четыре раза?
Может получишь, а может и нет, а может вобще хуже станет
Аноним 04/11/24 Пнд 16:28:38 #96 №3315720 
>>3314409
>на арме
Как ты себе представляешь это? Просто переход на другую систему команд в вакууме? И при чём тут яп высокого уровня?
Аноним 04/11/24 Пнд 17:26:41 #97 №3315771 
>>3310716 (OP)
Своего ide написанного на русте не завезли. Ясно.
Аноним 04/11/24 Пнд 19:24:07 #98 №3315850 
>>3315771
Не нужно
Аноним 04/11/24 Пнд 19:44:16 #99 №3315863 
>>3315850
Конечно. Это же значит, что нужно что-то разрабатывать. Мало того, ещё и чтобы по уму все работало.

Я кстати заметил, что в тредах о русте сам код не обсуждается в принцепе, что показательно. Видимо секта раста - это методичка о том, какой он хороший, свободный и хороший.
Аноним 04/11/24 Пнд 20:16:19 #100 №3315875 
>>3315863
Этот тред пристанище шизов, если хочешь обсудить язык, то есть группы в телеге там обычно таких банят. Тут даже ОП на расте не пишет, а просто так перекатывает лол
Аноним 04/11/24 Пнд 20:16:26 #101 №3315876 
>>3315863
> Что вы код не обсуждает
> Так начни сам обсуждать
> Я!?
Аноним 04/11/24 Пнд 20:21:18 #102 №3315879 
>>3315876
Он наверное припёрся обсуждать zed, не просто так начал накидывать про иде, а тут чего-то не хотят, пусть сам с собой поразвлекается
Аноним 04/11/24 Пнд 20:26:38 #103 №3315883 
>>3315879
Ghbxtv nen zed?
ты ещё Notepad++ идешкой назови.
Аноним 04/11/24 Пнд 20:27:50 #104 №3315885 
>>3315883
сук.
>Причем тут zed
Аноним 04/11/24 Пнд 20:29:15 #105 №3315886 
>>3315879
>не просто так начал накидывать про иде
а что, что-то неудобное?
Аноним 04/11/24 Пнд 20:44:17 #106 №3315891 
>>3315886
Да не, всё удобно, обсуждай
Аноним 05/11/24 Втр 00:45:12 #107 №3316041 
image.png
>>3315863
>Я кстати заметил, что в тредах о русте сам код не обсуждается в принцепе, что показательно.
А ты такой же наблюдательный, как Слепой Пью. В Говноланге постоянные срачи на тему Котлина/Шапрпа/Джавы. В Джаве Котлин/Шарп/Го. Тут вся доска такая.
Аноним 05/11/24 Втр 09:14:02 #108 №3316229 
rust-be-like-v0-4axixtper9pb1.webp
>>3315863
Одно дело накручивать опросники и делать враперы, другое дело писать качественный софт с нуля.
Аноним 05/11/24 Втр 10:59:31 #109 №3316350 
>>3315863
>в тредах о русте сам код не обсуждается в принцепе
В прошлом треде смотри.
>>3308401 →
Там ещё было, но мне лень скроллить. Большая часть постов - толстые набросы и ответы на них. Агрессивный маркетинг привлекает не только потенциальны клиентов, но и поджигает дупы сектантам других языков, которые сюда прибегают что-то доказывать. Впрочем, без них мы бы затонули, наверное.
Аноним 05/11/24 Втр 12:10:03 #110 №3316439 
>>3316350
>Агрессивный маркетинг привлекает не только потенциальны клиентов, но и поджигает дупы сектантам других языков, которые сюда прибегают что-то доказывать.
Вот если есть маркетинг, то он работает в первую очередь на них, прям с таким усердным рвением нужно приходить сюда и что-то доказывать лол. Как религиозные фанатики показывают свои коран/библию/сторожевые башни представителем других конфессий и готовы усраться что-то доказывая
Аноним 05/11/24 Втр 12:46:44 #111 №3316508 
offending-95-of-the-sub-in-a-single-meme-v0-snx6rlmyod7d1.webp
h7t6eab1pau71 (1).webp
dont-look-at-them-ricky-v0-f529okcjfwwd1.webp
8axc40yc78gd1.webp
>>3316439
Искусственный хайп привлекает не очень умные массы, от чего появляется мемы типа "а вы не думали переписать на раст" или "дело не в языке, дело в навыке", или "половина раст чата состоит из питонистов" итд. Чтобы это увидеть надо сидеть в забугорном инете, сейчас лулзов меньше, но маркетологи продолжают натягивать раст то на питонистов то на джаваскрипшиков, который он нахер не сдался и которые не имеют бэкграунда С++, чтобы писать либы, но зато те как попугаи повторяют одни и те же идеи раста через свою призму тупости.

Отсюда феномен, его все любят, особенно те кто на нем не пишет, потому как идеи раста хороши (хоть за 10 лет надоели уже), но глубинный раст уродлив и неудобен да, проблема навыка, или в нашей интерпретации - неосилил
Аноним 05/11/24 Втр 12:51:41 #112 №3316518 
>>3316508
Почему не удалось продать аду?
Аноним 05/11/24 Втр 13:02:20 #113 №3316537 
>>3316350
>>3316439
Plot twist: агрессивные маркетологи раста под видом хейтерков сами постят сюда максимально тупые претензии, чтоб двачекомьюнити их блестяще опровергало.
Хейтерки обоссаны, комьюнити в сияющих доспехах сияет, тред живёт, профит!

Хотя я в этом треде с 2017 сижу-пержу и вижу, что претензии-то повторяются из треда в тред, можно и FAQ чисто под это запилить но мне лень расписывать.

Вот набросаю черновик пожалуй:

Q: В комьюнити одни сплошные LGBTQGCCPP
A: Похуй, ты как был одиноким пидором, так им и останешься

Q: Компилятор раста использует LLVM, а значит не настоящий
A: Похуй, фронтенд на расте, а хуячить собственный бекенд под все поддерживаемые LLVM архитектуры, когда есть готовый (и пилится GCC-кодген) - бестолковая трата ресурсов

Q: На расте нет больших/известных/крутых проектов
A: Похуй, но есть: https://github.com/rust-unofficial/awesome-rust?tab=readme-ov-file

Q: Раст задеприкейтил Windows 7
A: Похуй, оно давно end of life

Q: Раст для Windows требует установки Visual Studio C++ Build Tools
A: Похуй, это всего несколько гигов. Можно обойтись и MSYS2/x86_64-pc-windows-gnu . От туда нужны либы и линкер

Q: RC это GC
A: Нет, долбоёб, это shared_ptr (да и похуй)

Q: А вот зиг/плюсы/сишечка ...
A: Похуй

Q: Синтаксис сложна/нипанятна
A: Похуй, ты ещё туповат для него

Q: Бороу-чекер сложна/нипанятна
A: Похуй, он умнее тебя

Q: Агрессивные маркетологи раста ...
A: Похуй, алсо смешно читать как на opennet в любом посте с упоминанием раста горят жопы хейтерков

Q: Раст сейф но кругом ансейф ряяя
A: Похуй, зато сразу видно в коде что этот блок - ансейф, а не как в сишке/плюсах сплошной ансейф

Q: Проект не собрать без инторнета и доступа к crates.io
A: Похуй, возьми VPN или подними свой кеширующий/приватный реестр пакетов на artifactory/чём-то ещё и пользуйся. Не можешь - иди нахуй

Всё, заебался, пойду чаю попью
Аноним 05/11/24 Втр 13:06:35 #114 №3316546 
image.png
>>3316518
Потому что некромантия запрещена.
Аноним 05/11/24 Втр 13:09:21 #115 №3316550 
>>3316546
Ада - современный язык, алсо, у нас есть спарк.
Аноним 05/11/24 Втр 13:10:06 #116 №3316554 
16893508335672.png
esc.webp
>>3316537
>Похуй
>Похуй
>Похуй
>Похуй
Классическое злоупотребление .clone
Аноним 05/11/24 Втр 13:46:27 #117 №3316593 
>>3316537
Q: В комьюнити одни сплошные LGBTQGCCPP
A: Зашквар, пацаны не поймут.

Q: Компилятор раста использует LLVM, а значит не настоящий
A: Ну по суди да, они смогли только осилить ASТ дерево, да и то поставили макросы затычки.
Ты забыл что это говнина компилируется долго.

Q: На расте нет больших/известных/крутых проектов
A: Расту 10 лет, это настораживает, даже у говна есть флагманы, а он ппц какой неудобный.

Q: Раст задеприкейтил Windows 7
A: Там была проблема обратной совместимости. То есть, ты можешь взять старые рантаймы/интерпретатор любого языка и запустить на старом парке компов (всякие банкоматы и кассы могут на этой залупе еще жить). У раста такой возможности не существует из-за того что винда не ставит Visual Studio C++ Build Tools. В общем, нельзя делать так чтобы кабан соснул, иначе соснет язык.

Q: Раст для Windows требует установки Visual Studio C++ Build Tools
A: Расту как победителю С++ нужен тулинг С++, эпик вин.

Q: RC это GC
A: Да, с точки зрение терминологий CS. Но что в этом плохого (в реале это узкая и локальная сборка мусора, тут просто страдает маркетинг, сказать что у раста есть GC, это удар по языку, но язык без RC не может, по дизайну)

Q: А вот зиг/плюсы/сишечка ...
A: Нам нужны не пидорские языки, а интеропы С/C++

Q: Синтаксис сложна/нипанятна
A: Не сложный, он неудобный. Нас буквально хеллоу ворд встречает с макроса.

Q: Бороу-чекер сложна/нипанятна
A: Не сложный, он неудобный.

Q: Агрессивные маркетологи раста ...
A: Агрессивный маркетинг рождает ровно таких же фанатиков с другой стороны, с линукс комьюнити это показывает.

Q: Раст сейф но кругом ансейф ряяя
Q: зато сразу видно в коде что этот блок - ансейф, а не как в сишке/плюсах сплошной ансейф
A: Сначала тебе из каждого утюга говорят про безопасность, а потом на деле оказывается не так все просто. Ты ловишь фрустрацию. Еще раз, агрессивный маркетинг зло, не надо считать программистов за дебилов, ибо у тебя останутся только тупые фанатики, вместо реал кодеров.

Q: Проект не собрать без инторнета и доступа к crates.io
A: Похуй, возьми VPN
Сидит маленький мальчик без ножек на диване
смотрит мультики... тут в комнату врывается папа
И переключает на футбол...
- Пааап .. но я же мультики смотрю
-НУ тогда встань и переключи
-Но паап.. у меня же нет ножек...
-НЕТ НОЖЕК - НЕТ МУЛЬТИКОВ
Аноним 05/11/24 Втр 14:05:47 #118 №3316609 
>>3316593
Почему на расте постоянно все приходится переписывать, как так вышло? Почему это бай дезигн?
Аноним 05/11/24 Втр 15:13:42 #119 №3316697 
>>3316593
>Ты забыл что это говнина компилируется долго.
По сравнению с чем и на каком коде?

>Расту 10 лет, это настораживает
Какой крупный проект, которым все-все-все пользуются, появился на каком-либо другом языке за 10 лет?

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

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

>Расту как победителю С++ нужен тулинг С++, эпик вин.
Ты можешь напрямую дёргать системные вызовы винды, если тебя это настолько беспокоит. Придётся пересобирать половину тулчейна, но это в любом языке плата за ебанутость. Го на Линуксе каждые полгода стандартную либу правит.

>но язык без RC не может, по дизайну
Ни разу не пользовался. Несколько раз был нужен Сell и UnsafeCell по всяким эзотеричным нуждам.
Аноним 05/11/24 Втр 15:31:31 #120 №3316708 
>>3316697
>UnsafeCell
РЯЯЯ АНСЕЙФ
Аноним 05/11/24 Втр 16:06:01 #121 №3316750 
>>3316593
>Q: Проект не собрать без инторнета и доступа к crates.io
>A: Похуй, возьми VPN
>Сидит маленький мальчик без ножек на диване
Сидит тупой безрукий мальчик на диване, который в 2024 не смог завести себе vps'ку за пару криптобаксов вне РФ, ну и пусть себе сидит, нам не нужен дурачок
Аноним 05/11/24 Втр 16:49:33 #122 №3316807 
>>3316508
>>3316537
Не читал, извини, но ты продолжай писать
Аноним 05/11/24 Втр 16:52:38 #123 №3316809 
>>3316697
>>3316750
Да нахуй вы его кормите, пусть сам с собой общается
Аноним 05/11/24 Втр 17:47:15 #124 №3316865 
>>3316593
> маленький мальчик без ножек
> не может запустить впн
Типичный местный плюсовик
Аноним 06/11/24 Срд 03:34:32 #125 №3317111 
>По сравнению с чем и на каком коде?
Какая разница с чем? Вечно вам надо сравниваться, ладно, например с го.

>Какой крупный проект, которым все-все-все пользуются, появился на каком-либо другом языке за 10 лет?
Го - губер, докер, еще что-то там.

>даже у говна есть флагманы,
>Какая-то хрень для докера
Что за тупость?

>Ты можешь поставить старый Раст на старую винду.
Именно про это и говориться что не могу, физически просто не могу, я уже не знаю как это объяснить, одно и тоже.

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

>Ни разу не пользовался.
Начни уже писать программы, а не скрипты.
Аноним 06/11/24 Срд 03:36:36 #126 №3317112 
>>3316750
Почему растеры такие глупые, тебе говорят нет интернета - собери впску. У тебя ножек нет, сбегай в магазин.
Аноним 06/11/24 Срд 09:00:21 #127 №3317181 
>>3317112
Почему растохейтеры такие тупые? Тебе без интернета даже apt/dnf install gcc libc-dev make vim не выполнить, а ты все рвешься на расте писать. Возьми турбо-паскаль на дискетке, а лучше сходи во дворе погуляй, глупыш
Аноним 06/11/24 Срд 11:00:43 #128 №3317255 
>>3317181
То есть, если я приду с флешкой на другую машину, без сети я не смогу ничего сделать? Вы че там обкурились?
Аноним 06/11/24 Срд 11:37:38 #129 №3317291 
>>3317111
>Какая разница с чем? Вечно вам надо сравниваться, ладно, например с го.
Код на го будет в пять раз длиннее, потому что ни метапрограммирования, ни нормальной работы с памятью не завезли. В итоге будет одно на одно.
>Что за тупость?
Докер решает проблему управления микросервисной парашей, хотя микросервисная параша - это проблема сама по себе. Как вейп вместо сигарет.
>Именно про это и говориться что не могу, физически просто не могу, я уже не знаю как это объяснить, одно и тоже.
Что пишет?
>Давайте будем реалистами. Ты можешь и свой язык написать, если что-то не нравится.
Ты понимаешь, что это как жаловаться, на драйвера? Якобы легендарный Джон Кармак написал игру, а она вылетает, если не установить непонятный костыль с левого сайта.
>Начни уже писать программы, а не скрипты.
Чел, ты компилятор поставить не осилил.

>То есть, если я приду с флешкой на другую машину, без сети я не смогу ничего сделать? Вы че там обкурились?
На флешку нужно что-то скачать, а как это сделать, если РКН запретил?
Аноним 06/11/24 Срд 12:22:27 #130 №3317328 
Это какая то метаирония или вкатуны реально не смогли осилить запуск карго без интернета?
Ребят, вы если даже не можете две минуты в Гугле потратить, может системное программирование это не для вас?
Аноним 06/11/24 Срд 12:42:30 #131 №3317350 
>>3317328
>запуск карго без интернета
>две минуты в Гугле
Проиграл.
Аноним 06/11/24 Срд 12:51:16 #132 №3317359 
>>3317350
Ясно, толстота значит
Аноним 06/11/24 Срд 13:01:41 #133 №3317368 
image.png
>>3317291
>Чел, ты компилятор поставить не осилил.
Как это отменяет то что ты пишешь скрипты?

>Что пишет?
Читай прошлый тред. Из-за того что МС задиприкейтил тулы (те 7гб С++ радости), нельзя поставить старый раст.

>Докер решает проблему управления микросервисной парашей
Да какая разница, ты просил показать флагман проект языка за 10 лет, я тебе показал. Покажи мне флагман раста (к счастью с серво вы уже не носитесь)

>На флешку нужно что-то скачать
Маневры, то есть без сети эта залупа не работает?
Мне на инет как-то срать, меня больше беспокоит что все яйца в одной корзине. И правда что карго минорные версии автообновляет? То есть можно будет шустро включать отключать руткиты?
Аноним 06/11/24 Срд 14:54:30 #134 №3317453 
>>3317368
>Читай прошлый тред.
Я пытался, но какие-то долбоебы там искали геев и джавистов под кроватью, дальше не читал

>пук
Чего-то не читается что ты пишешь, но ты продолжай
Аноним 06/11/24 Срд 15:05:16 #135 №3317459 
>>3317368
>Как это отменяет то что ты пишешь скрипты?
Пилю игру/движок. Не UE5, но где-то в 50 раз сложнее всех твоих хелло ворлдов. Всё работает на базе элементарного бамп аллокатора даже без RAII. Стандартные контейнеры рассчитаны на слишком общий случай и для геймдева избыточны. Rc вообще по ощущениями добавили чтобы было даже в отрыве от геймдева.
>Из-за того что МС задиприкейтил тулы
Попроси Копайлот показать, где можно на сайте МС скачать старые либы.
>Да какая разница, ты просил показать флагман проект языка за 10 лет, я тебе показал
И ты показал набор скриптов, который умеет автоматически устанавливать пакеты. Охуенно.
>Покажи мне флагман раста
Клёво же.
https://www.youtube.com/watch?v=mKoRzTK1HkU

>правда что карго минорные версии автообновляет?
Если пишешь в зависимостях звездочку, то правда.
Аноним 06/11/24 Срд 15:18:58 #136 №3317470 
>>3317459
>Всё работает на базе элементарного бамп аллокатора даже без RAII
Зачем тут раст лол?
Аноним 06/11/24 Срд 16:04:44 #137 №3317488 
>>3317470
Трейты, замыкания, вывод типов, паттерн матчинг, нативный код, система сборки. Этого мало? С тем же успехом можно спросить, а чем Раст хуже любого другого языка. STL в плюсах настолько же неюзабельный кал, например.
Аноним 06/11/24 Срд 16:29:10 #138 №3317499 
>>3317459
>https://www.youtube.com/watch?v=mKoRzTK1HkU
Что это? Редактор для создание ассетов-башен?
Я просил флагман, а не мультяшные ассеты для юнити

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

>даже в отрыве от геймдева.
Неожиданно, в геймдеве часто применяют сборку мусора. Даже в анрил. Если бы ты варился в геймдеве то знал бы это.
Я понял что ты очередной раскрашиватель grep
Аноним 06/11/24 Срд 16:40:21 #139 №3317506 
offending-95-of-the-sub-in-a-single-meme-v0-snx6rlmyod7d1.webp
>>3317488
>же неюзабельный кал, например.
Ох эти питон специалисты. А потом окажется что нужная либа на плюсах, или врайпер багован и де-факто заброшен. И вдруг неюзабельныи гавном окажется твой раст.

Открою тебе секрет, что настоящая трудность и проблема для реального программиста это не наличие трейтов, вывода типов, паттерн матчинга и замыкания, а наличие стабильных либ с тысячами человека-часов работы.
Аноним 06/11/24 Срд 16:46:01 #140 №3317510 
> а вот я тру программист и эксперт вот моё мнение
> нет это я тру программист и эксперт, твоё мнение говно, вот моё мнение

Сука дети выйдите из треда, что за цирк вы тут устроили?
И почему в треде половина анонов вобще не программирует на расте а возможно и вообще, кто то форсит тред в б или что?
Аноним 06/11/24 Срд 17:28:40 #141 №3317542 
>>3317510
Это же вообще дефолт, в треде го по ощущениям большую часть постинга исходит от двух шизов - эксшепшн шиз и нинужен шиз. Возможно, второй это эволюция первого.
Аноним 06/11/24 Срд 18:07:18 #142 №3317574 
>>3317499
>Неожиданно, в геймдеве часто применяют сборку мусора. Даже в анрил
Во-первых, Rc не сборка мусора. Во-вторых, Анрил переинженеренное статтерящее мыльное недоразумение, которое используют, потому что остальное еще хуже. Или это был контрпример?

>>3317506
>а наличие стабильных либ с тысячами человека-часов работы.
Они требуют тысячи человеко-часов, потому что переизобретают готовые примитивы ОС поверх нескольких слоёв сериализации, виртуальных машин и такой-то матери. А по другому и не получится, потому что мы зачем-то эмулируем PDP-11.

>>3317510
Ну маааам.
Аноним 06/11/24 Срд 18:42:39 #143 №3317599 
>>3317574
>ряяя гц ненужно, а где нужно там деды и плохо.
>ряяя счетчик ссылок не сборка, в компьютер сайнс это сборка, а у нас нет, а если надо будет, перепишем ваш компьютер сайнс!!!
>ряяя либы ненужны, я крашу grep, мне там либы ненужны.

Я кажется стал понимать, все эти питонщики выбирают раст, потому что там нет GC и когда они слышат что умные указатели это тоже вид GC - у них взрывает пукан, мол как так я же раст терплю ради ручного управления памятью, а тут опять гц, ряяя!!!
Аноним 06/11/24 Срд 19:24:12 #144 №3317618 
>>3317510
>И почему в треде половина анонов вобще не программирует на расте а возможно и вообще, кто то форсит тред в б или что?
Тут тред держится или наоборот опустел из-за них благодаря шизам или даже одному и тех кто пытается чего отвечать на эти дешевые набросы. Сюда максимум как в зоопарк можно приходить, не более того
Аноним 06/11/24 Срд 19:26:39 #145 №3317619 
>>3317618
>чего отвечать
чего-то отвечать
быстрофикс
Аноним 06/11/24 Срд 19:27:23 #146 №3317620 
>>3317599
Принесика ссылку на определение rc как gc из cs, а то чот ты пиздишь
Аноним 06/11/24 Срд 19:28:27 #147 №3317621 
>>3317574
>>3317599
Вот кстати каноничный пример специальной олимпиады - спор о том являются самрт поинтеры сборкой мусора, нормальный человек в этом споре участвовать не будет
Аноним 06/11/24 Срд 20:13:51 #148 №3317645 
>>3317621
Нормальным людям и без этого понятно что умные указатели это сборка мусора.

Просто дети не в курсе что если требуется любая сборка мусора и любые умные указатели - следствие дерьмовой арахитектуры.
Аноним 06/11/24 Срд 20:16:08 #149 №3317649 
>>3317645
Как в расте и C++ придумывается архитектура? Вот в джаве есть чистая архитектура, но там пиздец полный, сложно. А в низкоуровневых языках как это делается?
Аноним 06/11/24 Срд 20:40:49 #150 №3317665 
>>3317542
>>3317618
Мда, ну я так и понял как тред весь пролистал
Жаль конечно что из за рака тред в такое скатился раньше такие хоть только в опеннете каком нибудь сидели, а теперь и тут
Аноним 06/11/24 Срд 20:48:23 #151 №3317668 
>>3317649
Отталкиваясь от данных. Смотришь на данные, как часто они меняются, как преобразуются, как долго хранятся, как запрашиваются. Выбираешь подходящие структуры для них, массивы структур, структуры массивов, многомерные массивы. Конечно же большая часть всего этого в глобале существует. Дальше пишешь под это дело всё функции, абстракции, итераторы, атомики всякие, смотря от требований и возможностей. Аллокаций в большинстве программ вообще можно избежать с таким подходом.
Аноним 06/11/24 Срд 22:29:43 #152 №3317704 
>>3317645
>дети
Вот как раз таки дети заполонили тред этими срачами, при этом не давая четких определений что чем является, собственно неопределенность и позволяет обеим сторонам вилять жопой и разводить бесконечный срач. Нормальные взрослые люди начинают с терминологии и определяют рамки того что чем является и уже дальше нужно смотреть подходят ли умные указатели под критерий сборщика мусора или нет, а не просто кидаться говном.
Мимо
Аноним 07/11/24 Чтв 05:56:16 #153 №3317801 
>>3317621
Это у питонистов бомбит, для нормального человека нет проблемы что смарт поинтеры это локальная сборка мусора без стоп-зе-ворд. Почему растеры рвут на себе чулки от этого я не понимаю
Аноним 07/11/24 Чтв 06:02:27 #154 №3317803 
>>3317704
>>3317620
Тебе несколько раз сказали про терминологию cs, в этом вся суть фанатиков, вы будете юлить до последнего и троллить тупостью.

Там очень просто определение
In computer science, garbage collection (GC) is a form of automatic memory management. The garbage collector attempts to reclaim memory that was allocated by the program, but is no longer referenced; such memory is called garbage.
Аноним 07/11/24 Чтв 06:22:15 #155 №3317805 
image.png
>>3317803
Этот спор можно навсегда закрыть. В прошлых тредах был пример связанного списка на rc<refcell и вроде на ансейве с сырыми указателями. Или же взять смарт поинтеры из с++ и сырые указатели, если раст ограничивает и ансейв.

И честно (с публикацией на гитхаб в докере с результатом) протестить этот список с десятками миллионов значений.
Если разница не велика - то вообще не важно GC или не GC, всегда можно обоссать оппонента, что это дешевая операция, а не костыль. Если же разница велика, втихую как крыса промолчать и спрятаться за анонимностью двача, до следующего срача.
Аноним 07/11/24 Чтв 06:35:11 #156 №3317808 
>>3317805
Спойлер - если указатели часто не создаются и не дропаются, то там почти нет накладных расходов (на разыменовывание).
Аноним 07/11/24 Чтв 06:43:14 #157 №3317809 
image.png
Что лучше для вката?
RR или vscode?
Аноним 07/11/24 Чтв 11:06:35 #158 №3317979 
>>3317809
обмазался обоими.
После победы трампа, куда-то все растеры пропали.
Аноним 07/11/24 Чтв 12:27:38 #159 №3318086 
>>3317803
>Тебе несколько раз сказали про терминологию cs
Это вы между собой там спорите, кидаясь какашками в песочнице, я же написал что мимо. Но то что уже пользуетесь справочной литературой, уже хорошо, молодцы

>>3317801
У нормального человека вообще не должно рвать от наличия или отсутствия сборки мусора, а нужно решать конкретную продуктовую задачу. Если при решении задачи сборка мусора не мешает, но при этом экономит еблячасы при разработке и сопровождении, то однозначно её нужно использовать. А всякие малолетние дебилы из этого срач на десяток тредов устроили на потеху публике.
Аноним 07/11/24 Чтв 12:31:44 #160 №3318092 
>>3317809
Если с нуля, то лучше vscode
Аноним 07/11/24 Чтв 13:32:24 #161 №3318134 
>>3315720
ну есть же Rust под ARM
разве я не могу взять исходники проекта и просто перекомпилировать его под ARM?
Аноним 07/11/24 Чтв 13:33:52 #162 №3318137 
image.png
>>3318092
Тоже так подумал, как то проще мне показался, да и vscode я знаю хорошо. А в чем RR выигрывает в перспективе?
Планирую активно сорцы исследовать, помниться в жб был удобный тулинг для этого и отладчик (но это в жабе, а тут хз).
Аноним 07/11/24 Чтв 13:49:11 #163 №3318156 
image.png
>>3318137
Годно, работает
Аноним 07/11/24 Чтв 13:57:02 #164 №3318160 
>>3318137
>А в чем RR выигрывает в перспективе?
Он не использует lsp и при внесении изменений в код быстрее соображает в обмен на съеденную память, плюс чуть побольше возможностей для рефакторинга, а в общем и целом все тоже самое. Сам летом пересел на vscode, по началу было непривычно, а теперь всего хватает

>Планирую активно сорцы исследовать, помниться в жб был удобный тулинг для этого и отладчик (но это в жабе, а тут хз).
А вот это хз, я этим не пользуюсь, только профайлером https://github.com/flamegraph-rs/flamegraph и тот из терминала запускаю
Аноним 07/11/24 Чтв 18:37:33 #165 №3318380 
>>3318156
Не везде, конечно, работает как надо, но лучше чем vscode, который показывает ассемблер (хотя я может ньюфаг и просто не знаю).
Аноним 09/11/24 Суб 11:02:46 #166 №3319315 DELETED
>>3310716 (OP)
Что это такое в шапке? Малварь?
>Это должен встроить каждый уважающий себя разработчик на Rust for Windows в свое приложение: https://ru.files.fm/f/y5x9uvm3ns
Аноним 09/11/24 Суб 12:24:12 #167 №3319342 
>>3319315
Потому что тред угнали и перекатывают школьники на винде потому что в игори надо играть, которые не имеют отношения ни к расту ни к разработке в целом, чтобы всех троллить. Вот полюбуйся на ОПа >>3312936
Но будучи не трудоустроенным ни дня такие не знают что почти все сидят на маках и линуксах, а виндой пользуются только опущенные пхпшники, шапрписты и игроделы. Поэтому шутка за 300 не взлетела
Аноним 09/11/24 Суб 12:33:49 #168 №3319344 DELETED
>>3310716 (OP)
>Это должен встроить каждый уважающий себя разработчик на Rust for Windows в свое приложение: https://ru.files.fm/f/y5x9uvm3ns
Скачал лол, там вот такой вот скриншот, зарепортил
Аноним 09/11/24 Суб 12:49:02 #169 №3319351 
>>3319346
Попробуй репортить не через две недели, а когда видишь провокации в оп-постах после переката. И сисики писики тоже репортить не забывай. Будет тебе счастье. Страницу обнови через F5.
Аноним 09/11/24 Суб 17:54:17 #170 №3319493 
image.png
image.png
Забавное наблюдение. Я знаю что компилятор видит, что мутабельная ссылка больше не используется и как бы дропает ее, но оказалось он еще ее как бы переиспользует (адрес не меняется, как у иммутабельных)
https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=ebc30b7403b9fbe00d88caab90b76d66
Аноним 09/11/24 Суб 18:19:17 #171 №3319511 
Ну как, нашли уже работу на расте?
Аноним 09/11/24 Суб 18:24:52 #172 №3319518 
>>3319511
Нашёл и потерял. Как обычно, блокчейн. Брали на испытательный срок. Оказалось, что там не разобраться в теме за две недели. Надо как минимум полгода. Чтобы во всех этих ебучих транзакциях, подписях, и проч. Ничего особо не объясняли. Месяц промучался и усё.
Аноним 09/11/24 Суб 18:28:38 #173 №3319522 
>>3319511
Раст это элитарный язык для души, а черкаши на галлере можно отскребать и на node.js
Аноним 09/11/24 Суб 19:31:12 #174 №3319545 
>>3319522
>Раст
>элитарный язык
А ты смешной, анончик)
Аноним 09/11/24 Суб 23:04:44 #175 №3319623 
>>3319522
>>3319545
У меня такое чувство что кто-то сам шутит и сам над собой смеется
Аноним 10/11/24 Вск 10:06:27 #176 №3319730 
image.png
Я помню все носились с двухсвязным списком, но читая доку я вдруг осознал - в расте нельзя реализовать фундаментальную архитектуру IoC из-за ограничение мутабельных ссылок. Буквально на пике нарушение инкапсуляции.

Как мы делали раньше - у нас есть объекты сервисы и мы их прокидываем как зависимость везде (ну самое простое коннект к базе) сам сервис либо имеет состояния либо нет, у нас просто есть ручки которые мы дергаем и нам не важно, состояние для нас скрыто/инкапсулировано.
С точки зрения архитектуры у нас есть контекст исполнения. А как реализовать подобное в расте? Одни иммутабельные ссылки - не вариант, клонировать владение - ну не вариант вообще (100500 коннектов в базе).

Получается только постоянно прокидывать мутабельную ссылку в каскад функций
f1(&mut MyService) -> f2(&mut MyService) -> f3(&mut MyService)
И надеяться что скоуп ссылки не будет пересекаться (хотя в 90% нам буде нужна иммутабельность).

Какую архитектуру строят на расте и главное как? только без - "а-а-а неосилил", тут правда не видно вариантов для построения большой архитектуры
Аноним 10/11/24 Вск 10:21:52 #177 №3319732 
nJ4N0qry1zuk74UjNgXLFVI15acHMaSBsGe-sEr7WGzn2zEqKWjk4THUn5cOMiEIbuM23QhJQc5fKz3auvNAXG.jpg
>>3319730
Аноним 10/11/24 Вск 10:31:58 #178 №3319739 
>>3319732
Очень хорошо, а теперь в палату, нам и одного объекта для указателей хватит.
Аноним 10/11/24 Вск 10:35:51 #179 №3319742 
>>3319739
Рад за вас, но только кто вы и что значит один объект для указателя и для чего вам его должно его хватить?
Аноним 10/11/24 Вск 11:02:53 #180 №3319756 
>>3319732
Жесть, а если я перепутаю, мне об этом как-то скажут?
Аноним 10/11/24 Вск 11:05:43 #181 №3319758 
>>3319756
Ну либо компилятор по попе даст, либо сам себе по попе за низкий перф
Аноним 10/11/24 Вск 12:42:57 #182 №3319795 
>>3319730
Mutex
Аноним 10/11/24 Вск 13:13:17 #183 №3319807 
>>3319795
Это же вроде про работу с критическими секциями, или у раста это несет дополнительный смысл?
Аноним 10/11/24 Вск 14:11:40 #184 №3319828 
image.png
>>3319732
Новая версия я обязательно выживу
Аноним 10/11/24 Вск 14:23:46 #185 №3319836 
Pt59X0mmtG9.jpg
>>3319795
https://www.youtube.com/watch?v=HwIHkq_kg https://www.youtube.com/watch?v=YeFKcJQe https://www.youtube.com/watch?v=ClxXDfvtoj https://www.youtube.com/watch?v=KCjMZMxNr-
Аноним 10/11/24 Вск 14:51:03 #186 №3319848 
>>3319807
>Это же вроде про работу с критическими секциями,
Это про смартпоинтеры, то что ты выше писал где тебе нужно передать кучу мутабельных ссылок. В большинстве случаев тебе для этого потребуется Arc<Mutex<T>> на картинке выше многопоточность и не нужно следить за владением
Аноним 10/11/24 Вск 15:22:21 #187 №3319855 
>>3319730
Как же ору с опущенного джавахуесоса.
Аноним 10/11/24 Вск 15:55:12 #188 №3319867 
>CISA recommends that developers transition to memory-safe programming languages such as Rust, Java, C#, Go, Python, and Swift
Поясните почему в этом списке rust?
Аноним 10/11/24 Вск 16:23:08 #189 №3319875 
>>3319855
Так предложи растовские бест-практикс, я не верю что в расте принято как в жопоскрипте дергать в модуле из другого модуля глобальное состояние.
Аноним 10/11/24 Вск 16:28:05 #190 №3319878 
>>3319730
Передаёшь в функцию замыкание
?????
PROFIT

А OOP игрушка дьявола.
Аноним 10/11/24 Вск 16:32:15 #191 №3319882 
>>3319878
Каким местом IoC про ООП? Это про связанность архитектуры и скорее про юнит тесты.
И причем тут замыкание, я даже спрашивать не буду, ты какой-то тролль или нездоров.
Аноним 10/11/24 Вск 16:41:34 #192 №3319885 
>>3319882
Связанность архитектуры и юнит-тесты - это баззворды, порожденные ОО дизайном. Голоса в голове сказали нам разделить данные на взятые с потолка лоскутки, в итоге каждый кусок кода надо покрывать тестами, потому что малейшая ошибка развалит всю систему, и ты концов не найдёшь.
Аноним 10/11/24 Вск 16:50:19 #193 №3319894 
>>3319885
Я одного не понимаю, нахуя этому обоссаному пидору IoC в расте (любом другом системном языке), ебало просто имаджинируйте: условная библиотечка для работы с свг форматомю, давайте затащим сюда IoC.
Аноним 10/11/24 Вск 16:53:11 #194 №3319896 
>>3319875
Нет конечно же, тут вкатунов мало и люди на опыте сразу делают все через DI чтобы код можно было легко тестировать и одна часть программы знала как можно меньше о других. Разумеется речь за бекенд, как там cli и gui приложения я не в курсе. Так что ближе к жабе чем к жопаскрипту, на гошке примерно также
Аноним 10/11/24 Вск 16:57:04 #195 №3319900 
Как после запросаreqwest спарсить и вытащить только значение одного поля(допустим Phone) с JSON вида:
Ok(
Object {
"Message": String,
"Result:" Array [
Object {
"Name": String,
"Lastname": String,
"Phone": String,
},
Object {
...
},
...
],
"Success":Bool(),
},
)

В документации serde ничего нужного и близко нет.
Аноним 10/11/24 Вск 17:22:40 #196 №3319911 
>>3319900
https://docs.rs/serde_json/latest/serde_json/#operating-on-untyped-json-values
Аноним 10/11/24 Вск 17:38:54 #197 №3319912 
>>3319896
>тут вкатунов мало
>сидят невдупляют о существование базовых архитектурных паттернов.
Ладно, было ошибкой спрашивать на двачах.
Аноним 10/11/24 Вск 17:55:13 #198 №3319915 
>>3319911
Не пашет
let v: Value = serde_json::from_str(data)?;
После reqwest data не &str.
Аноним 10/11/24 Вск 18:31:58 #199 №3319927 
>>3319912
>Непонятно до чего хочет доебаться
>Ладно, было ошибкой спрашивать
Ладно, узнал завсегдатого шиза ИТТ, не буду кормить
Аноним 10/11/24 Вск 18:33:25 #200 №3319928 
>>3319915
>После reqwest data не &str.
Скинь код целиком, что за тип у data?
Аноним 10/11/24 Вск 18:49:50 #201 №3319938 
>>3319927
>узнал завсегдатого шиза
Психологическая травма?
https://www.youtube.com/watch?v=R0w5P9A3l68
Аноним 10/11/24 Вск 19:04:20 #202 №3319940 
>>3319795
Скорее более подходящее оказалось interior mutability
RefCell (и Rc)
Тут даже пример сразу с моком для тестов.
https://doc.rust-lang.org/stable/book/ch15-05-interior-mutability.html
Аноним 10/11/24 Вск 19:10:08 #203 №3319942 
>>3319940
Насчет шумихи с Rc, насколько я понял значение там одно, не клонируется физически, просто счетчик увеличивается и уменьшается. Так что непонятно откуда столько шумихи.
хотя это правда выглядит все как овер-костыли, RefCell уже может упасть в рантайме и тогда смысл во всем этом борроу-чекенге
Аноним 10/11/24 Вск 19:10:46 #204 №3319943 
>>3319928
Разобрался, спасибо.
Аноним 10/11/24 Вск 20:08:04 #205 №3319965 
>>3319938
Не умею с голубем в шахматы играть
Аноним 10/11/24 Вск 23:06:20 #206 №3320032 
Почаны, я вам промышленного программирования на расте принес
https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=649484620382d9f4c54e46779948f772

Я смог достичь IoC превосходства. Спасибо Rc<RefCell (правда тут однопоточно).

>>3319848
>>3319795
Оказалось Mutex это RefCell для бедных для многопоточки. В общем, раст такая хрень, его надо сначала полностью изучить чтобы что-то пытаться кодить на нем.
Так то вроде норм, не сложно, но боюсь как меня еще асинки встретят.
Аноним 11/11/24 Пнд 00:58:07 #207 №3320054 
>>3320032
Можно вместо Rc<RefCell<T>> указывать просто дженерик, а уже конкретную реализацию сделать в структуре Context, например что-то типа этого
https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=b4d95093e294d5f2b6604d00f864f830
Аноним 11/11/24 Пнд 07:04:38 #208 №3320105 
>>3310716 (OP)
Почему у Раста так плохо с сетью? Какую-то tokio-перделку надо подключать. Хотя бы из main её можно вынести?
Аноним 11/11/24 Пнд 09:59:49 #209 №3320212 
>>3320054
Я сначала пришел к такому подходу, тут без Rc вообще
https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=f270ab858bc2ed0acbd2a8793576e75b

Что мне не понравилось.
1) Мы передаем иммутабельную ссылку, но структура в процессе мутируется. Выглядит грязно, это тот самый Interior Mutability Pattern, насколько это нормально я хз, по мне проще тогда просто везде мутированную ссылку прокидывать и все, как тут
https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=e11c7a2a9bc11992acd8445b9530a42d
Раст, кстати, не ругает если мы кидаем мутирующую ссылку но не мутируем (в этом примере это хорошо).

2) Не понравилось что меняется API, с задуманного:
fn status(&self) -> &str
на
fn status(&self) -> String
Не хватило мозгов как вернуть ссылку от RefCell может клонировать и прописать лайфтаймы? Хз возможно ли это.
Аноним 11/11/24 Пнд 10:18:36 #210 №3320227 
image.png
>>3320212
>Не понравилось что меняется API, с задуманного:
fn status(&self) -> &str
В общем, если кто объяснит почему тут так происходит и можно ли это решить буду благодарен.
Аноним 11/11/24 Пнд 10:46:23 #211 №3320246 
>>3320227
Чел, у тебя данные на стеке лежат, ты не можешь вернуть ссылку на стек, потому что он очистится. В случае со ссылочным типом типа строки - только класть на кучу его.
Аноним 11/11/24 Пнд 11:16:30 #212 №3320281 
>>3320246
Тут же работает
https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=0bbabe8a1090713a119031c74a4fe3a9

fn status(&self) -> &str {
self.status.as_str()
}
Аноним 11/11/24 Пнд 11:19:51 #213 №3320284 
Правильно понимаю, что агенты фбр убили с++ тред и бампают расто тред кд?
Аноним 11/11/24 Пнд 11:33:23 #214 №3320293 
>>3320281
Как я понял, так специально сделано там RefCell возвращает некий тип
Ref<'_, T> (вместо &T) - может фишка в этом лайфтайме?
Аноним 11/11/24 Пнд 11:42:40 #215 №3320298 
image.png
>>3320284
Тише, мистер Андерсон
Аноним 11/11/24 Пнд 11:47:17 #216 №3320301 
>>3320212
>Не хватило мозгов как вернуть ссылку от RefCell может клонировать и прописать лайфтаймы? Хз возможно ли это.
Там проблема что он не уверен во времени жизни ссылки из-за чего либо клонируй, либо делай что-то внутри этого метода
Аноним 11/11/24 Пнд 11:49:15 #217 №3320302 
>>3320293
Попробуй скорее всего прокатит, я так на скорую руку пример накидал. Я вообще Arc пользуюсь из-за асинхронности там свои другие приколы
Аноним 11/11/24 Пнд 12:54:02 #218 №3320340 
>>3320032
>Я смог достичь IoC превосходства
И ни у кого в этой цепочке не пришло в голову спросить, а не хуйню ли мы делаем?
Аноним 11/11/24 Пнд 14:08:03 #219 №3320402 
>>3320340
Я каждый рабочий день такие вопросы задаю. А так в целом +/- движешься в правильном направлении, такой подход с DI помогает проще тестировать и не зависеть от других кусков кода. Можешь кстати сразу взять actix+sqlx и сделать какое-нибудь crud приложение, глядя на примеры в интернете
Аноним 11/11/24 Пнд 14:33:53 #220 №3320425 
>>3320340
Главное тут не в том делаем ли мы херню или нет, а в том что мы можем это сделать если надо.

>>3320302
>>3320301
Я перепробовал все что на данный момент знаю, потом погуглив нашел коммент и как я понял - RefCell ведется себя как мьютекс. Вот один недооценённый коммент, затерявшемуся среди ответов стаковерфлоу (многие рекомендуют возвращать Ref<T>, а это плохо)

You can't return a &T because the borrow() on the RefCell creates a temporary. It let's go of the RefCell-borrow once the Ref is destroyed. Think about it: By returning a Ref<T>, you are effectively write-locking the RefCell until the Ref is dropped by whoever the caller of get() is. This seems like poor isolation.
Аноним 11/11/24 Пнд 15:00:50 #221 №3320454 
>>3320402
>>3320425
>такой подход с DI помогает проще тестировать и не зависеть от других кусков кода

Пусть у нас есть три функции, которые вызываются последовательно. Одна делает запрос в базу и складывает в более удобные массивы, вторая обрабатывает эти массивы и как-то их преобразует, а третья рендерит на базе первых двух какую-то хтмлку. Каждую из этих функций ты можешь запускать и тестировать отдельно просто через #[test] (немного сложнее в случае с асинком). Остаётся добавить какой-то смок тест, чтобы убедиться, что всё работает совместно.

Что мы получаем, превращая код в ебаный конструктор из абстрактных шизо-трейтов, ради которых еще приходится обходить боров чекер?
Аноним 11/11/24 Пнд 15:12:57 #222 №3320461 
image.png
Самое интересное работает такой вариант
Аноним 11/11/24 Пнд 15:28:52 #223 №3320473 
>>3320454
Ты когда пишешь код, ты выводишь те или иные состояния программы, ты делаешь по сути те же тесты, только проверяющий код это ты сам и тесты эти одноразовые.

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

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

Не знаю как в расте будет с тестами. Возможно чтобы что-то замокать придется писать очень много кода, но в других языках юнит тесты просто заставляют IoC юзать.
Тут смысл что тебе не нужен какой-то сервис-контейнер - ты зависимости можешь и в мэйне раскидать, тут именно смысл в инверсии управления, например ты можешь дать коннект на тестовую базу или вообще на сервис который вместо коннекта готовый объект возвращает.
Аноним 11/11/24 Пнд 18:29:29 #224 №3320619 
https://em-tg.github.io/csborrow/
Признавайтесь, кто писал.
Аноним 11/11/24 Пнд 19:31:42 #225 №3320664 
>>3320619
> кто писал
Шизик, борющийся с голосами в голове. Там какая-то каша, пиздец.
> struct method that returns by reference is allowed to return any reference other than the implicit this reference
Может быть потому что структура это value-тип, а класс - ссылочный? Просто возврат this из класса в шарпе вернёт внезапно ссылку, как этот шизик и пытается сделать со структурой.
> In C#, the garbage collector exists to make references last forever
> Ignoring the performance implications
Тут тоже ахуительные истории, игнорящие факт наличия оптимизаций компилятора и то что реальный GC намного сложнее, а не просто наивная реализация с референскаунтом и циклами сборки мусора.
> Maybe there’s something that makes C#’s ref subset so unusable that people just ignore it
Надо быть совсем отбитым, чтоб не понимать реальную причину. В шарпе JIT все оптимизации делает сам. Поэтому нет смысла ебаться с этим, если нет прироста производительности. А добавили ref в шарп для оптимизации жора памяти в сложных алгоритмах, а не чтоб везде это пихать в надежде получить скорость.
Аноним 12/11/24 Втр 13:26:09 #226 №3321062 
buttplugrustdocs.png
у меня от этой хуйни похоже пожизненная травма, вспоминаю каждый раз как юзаю раст
Аноним 12/11/24 Втр 13:31:58 #227 №3321067 
>>3321062
В общем, закончил я свои небольшие исследования, набросал небольшой вывод.
1) Если брать за аксиому, что нам нужны хотя бы юнит тесты, а для юнит тестов нужна инверсия управления и постоянно прокидывание DI-сервисов, то раст становится очень неудобен.

Представим у нас есть сервис который возвращает какой-то список товаров, не важно через что он работает, важно что мы его везде прокидываем, так или иначе у сервиса есть внутренние изменчивое состояние. Чтобы достичь изменчивости, хоть она и внутренняя мы прокидываем его везде через &mut и рано или поздно утыкаемся на ограничения количества mut ссылок. Для решения проблемы мы пытаемся использовать паттерн внутренней изменчивости (Interior Mutability Pattern) и прописываем RefCell контейнер для внутренних данных, который проверяет заимствование на этапе исполнения (комптайм идет лесом), но тут же сразу вытекает другая проблема - мы не можем вернуть данные даже в режиме иммутабельности (можем, но мы по сути блочимся и отдаем лок-мютекса в чужие руки, как вариант клонировать данные и передать владение, переписав сигнатуру трейта и объекта, то есть похерев API).

Из-за кривости паттерна внутренней изменчивости, мы принимаем решение обернуть не внутренние данные, а весь наш сервис в RefCell и еще раз обернуть в Rc так как мы решаем проблему множественного mut.
В итоге DI сущности у нас становятся вида Rc<RefCell<T>> и проблема решается ценой накладных расходов на производительность и проверкой в рантайме.
Потом оказывается некоторые наши DI-сущности надо будет использовать в многопоточном режиме. Если бы это был объектный мир, мы бы внутри объекта просто задействовали лок над критической секцией, но в расте мы снова ломаем API и не просто ломаем, мы переписываем все сервисы и все сигнатуры функций c Rc<RefCell<T>> на Arc<Mutex<T> (вот ревьюер обрадуется коммиту).

2) Почему на каждом этапе мы ломали апи и полностью меняли концепцию? Проблема стара как мир - проблема протекающих абстракций. Да, раст течет как водопад.
Вот пример, у нас есть объект радио, у него сложное устройство, но наружу выставлены только тумблеры и регуляторы (мы создали абстракцию спрятав/инкапсулировав сложность). Радио помимо своей главной функции имеет в АПИ возможность установитьЧастоту(hz) и получитьЧастоту(). То есть, наше радио имеет изменчивое состояние, но опять же вся сложность работы от нас спрятана - у нас только внешние регуляторы (методы). Проблема начинается тогда, когда мы в расте создаем "иммутабельное радио" тем самым повлияв на его внутренние поведение, запретив ему устанавливать себе частоту, тем самым извне мы сломали внутреннюю логику работы объекта. Это и есть протекание абстракции, самая распространенная проблема бизнес-логики.

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

И это я еще не дошел до асинхронного мира.
Аноним 12/11/24 Втр 13:37:26 #228 №3321074 
>>3321067
>>3321062
Случайно так получилось, что я тебя процитировал, но лого тут в тему оно же не нарушает авторских прав?
Аноним 12/11/24 Втр 15:37:27 #229 №3321222 
>>3321067
>мы переписываем все сервисы и все сигнатуры функций c Rc<RefCell<T>> на Arc<Mutex<T>

Безотносительно того, это всё выглядит как креативные способы нарисовать часы в Джире, а чего не сделать враппер или алиас?
Аноним 12/11/24 Втр 16:12:25 #230 №3321247 
>>3321067
>Потом оказывается некоторые наши DI-сущности надо будет использовать в многопоточном режиме. Если бы это был объектный мир, мы бы внутри объекта просто задействовали лок над критической секцией, но в расте мы снова ломаем API и не просто ломаем, мы переписываем все сервисы и все сигнатуры функций c Rc<RefCell<T>> на Arc<Mutex<T> (вот ревьюер обрадуется коммиту).
Именно поэтому нужно скрывать реализацию и везде передавать T и у тебя большинство описанных тобой проблем пропадет.

>>3321222
>а чего не сделать враппер или алиас?
Или вот второй путь, структура обертка или алиас

>И это я еще не дошел до асинхронного мира.
Там тоже самое
Аноним 12/11/24 Втр 21:58:39 #231 №3321445 
nTkklWPfET0.mp4
Вся суть программных костылей для контроля границ памяти:

Во-первых, следует отметить, что при инструментировании пользовательского приложения с помощью AddressSanitizer во время каждой операции доступа к памяти генерируется код, который проверяет корректность границы памяти.
Это приводит к значительному увеличению размера исполняемого файла и снижению производительности приложения.
Более того, требования к памяти для пользовательского приложения значительно возрастают из-за создания красных зон для всех объектов.
Еще одним недостатком использования красных зон является невозможность охватить все адресное пространство пользователя.
Например, если красная зона для некоторого объекта составляет 32 байта, а доступ к памяти относительно его расположения превышает это значение, то обнаружить такое нарушение с помощью AddressSanitizer невозможно, тогда как выполнение программы в защищенном режиме приводит к исключению из-за нарушения границ памяти.
Еще одним существенным недостатком AddressSanitizer является невозможность обнаружения ошибок доступа к памяти на границе адреса, соответствующих двум соседним байтам теневой памяти.
Первый теневой байт содержит информацию о том, что адрес, описываемый его значением, определен как неотравленный, а второй байт указывает на то, что соответствующий адрес отравлен.
Эту ситуацию иллюстрирует следующий пример на языке C:

...
char a[10]; // предположим, что адрес «a» выровнен на 8
int p = (int )&a[7];

// где-то здесь массив «a» должен быть инициализирован

return p; // здесь мы загружаем 4 байта, и один из них недействителен
Ошибка пользователя здесь заключается в чтении адреса, на который указывает переменная «p».
Первые три считанных байта будут в назначенной стековой памяти пользователя, но последний байт будет за пределами выделенной границы стековой памяти.
При проверке границы памяти адрес, находящийся в переменной «p», будет сопоставлен с теневой памятью, он будет соответствовать тому байту в теневой памяти, который содержит нулевое значение.
Таким образом, эта ошибка останется незамеченной. Во время выполнения программы с этим кодом в защищенном режиме описанная проблема будет обнаружена из-за использования дескрипторов, которые имеют точную информацию о размере памяти, доступной пользователю.
Аноним 13/11/24 Срд 11:54:49 #232 №3321596 
>>3321445
Что не так?
Аноним 13/11/24 Срд 15:58:00 #233 №3321773 
>>3321596
Это к дискуссии о том что защита на аппаратном уровне (как у эльбруса) не актуальна и все спокойно решается софтом. Просто не решается, худо-бедно решается только в рамках виртуальных машин, у которых в свою очередь проблемы с обработкой больших массивов данных. Ну а нативные библиотеки-санитайзеры это по сути защита только от дурака, пригодное только для того что бы в тестовом режиме запустить/погонять.
Аноним 13/11/24 Срд 17:33:21 #234 №3321848 
>>3321773
Во-первых, тебе никто не мешает для любого процессора написать компилятор, который вместе с каждым указателем держит длину объекта. Или тупо либу для плюсов. В 90% случаев дополнительную проверку можно будет выпилить, а остальные 10% влияния не окажут, потому что никогда не будут срабатывать.

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

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

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

В-пятых, Эльбрус не взлетит, хватит топить за этот кал.

>у которых в свою очередь проблемы с обработкой больших массивов данных
Как и у Эльбруса.
Аноним 13/11/24 Срд 20:01:59 #235 №3321931 
Kobe Zoo💕 カピバラが好き.mp4
>>3321848
>для любого процессора написать компилятор, который вместе с каждым указателем держит длину объекта.
И как это убережет от нарушений границ? Как ты проверишь обращение по указателю поехавший?
>Во-вторых, это вымученный пример, который в Расте даже не получится написать без ансейфа.
Так в расте много чего нельзя написать без ансейфа и что дальше? Разговор про адрес-санитайзер с которым у вас помоему даже программы по умолчанию собираются, его надо специально отключать.
>В-пятых, Эльбрус не взлетит, хватит топить за этот кал.
То же самое можно сказать про раст. И у эльбрусанет проблем с обработкой больших данных, там есть даже аппаратный аррей-префетч который по идее хорошо ложится на растовый итератор, в том смысле что он тоже один раз взводится и в режиме цикла обходит весь массив, причем данные массива не забивают кэш как интеловый префетч, а подкачиваются в специальный буфер подкачки откуда моваются на регистры.

Концептуально раст вообще продекларировал все то, что жизненно необходимо vliw архитектурам вообще и защищенным типа эльбруса в частности - компиляция всех модулей прямо из исходников, дебаг/релиз сборка из коробки, прекомпиляция модулей, lto. Для эльбруса так же важно что запрещены манипуляции со стеком которые в принципе не работают ни в каком режиме. Но на деле получилость как с llvm в свое время - все от и до продумано/реализовано настолько хреново, что не позволяет в полной мере даже задуманного
Аноним 13/11/24 Срд 22:05:31 #236 №3321986 
>>3320461
>>3320425
https://doc.rust-lang.org/core/cell/struct.RefCell.html#method.try_borrow_unguarded
unsafe > clone
Аноним 14/11/24 Чтв 12:53:58 #237 №3322241 
>>3321931
>И как это убережет от нарушений границ? Как ты проверишь обращение по указателю поехавший?

У тебя есть адрес указателя и размер буфера. Как проверить нарушение границы, не представляю.

>его надо специально отключать.
Лолчто.

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

Любая fixed-function фича - это техдолг разработчика, который он хочет спихнуть на тебя. Этим не нужно хвастаться, за это нужно обоссывать. Даже видеокарты уже лет десять как умеют работать с памятью через простые load\store, кроме семплинга из текстур. Невидия вообще SIMD-ядра проапгрейдила до SIMT.
Аноним 14/11/24 Чтв 15:45:05 #238 №3322358 
>>3321773
Защита на аппаратном уровне это вообще другой вопрос, наличие отсутствие средств диагностики и отладки ошибок идёт в параллельной плоскости.
>Ну а нативные библиотеки-санитайзеры это по сути защита только от дурака, пригодное только для того что бы в тестовом режиме запустить/погонять.
"только от дурака" - не в тему сказано, ты вообще возможно не понимаешь, что просто наличие санитайзера/любого рантайм инструментария это только 0.005 дела, тебе же надо попасть в ошибочное состояние ещё как-то.
Аноним 14/11/24 Чтв 15:46:01 #239 №3322361 
>>3321848
>не получится написать без ансейфа
А без ряяя ансейфа тоже мало что получится написать. Here we go again.
Аноним 14/11/24 Чтв 15:47:59 #240 №3322362 
>>3321848
>а упадёт в сегфолт
Вкатун, сегфолт это хорошо, плохо когда софт не падает в сегфлолт, но тебе похоже это неизвестно.
Аноним 14/11/24 Чтв 17:40:26 #241 №3322440 
>>3322358
>"только от дурака" - не в тему сказано
Ну да, там в целом разговор то не про безопасность а про средство отладки программ, и то что санитайзер даже в этом плане не сверхнадежное решение. Не помню уже о чем думал когда это писал. В любом случае получаем такую картину:
a) ловим санитайзером (далеко не) все рантайм ошибки, исправляем пускаем в прод окропив святой водой и молитвами дабы бесы не проникли и стек/память не попортили.
б) при помощи отладочной либы опирающейся на аппаратные возможности ловим все что можно, исправляем и в релиз запускаем так же защищенный вариант просто без отладочной инфы.
Аноним 14/11/24 Чтв 18:54:33 #242 №3322513 
>>3322362
>>3322440
>плохо когда софт не падает в сегфлолт
>исправляем и в релиз запускаем так же защищенный вариант просто без отладочной инфы.

Так а чем это паники, которая сразу напишет стектрейс и конкретную строчку? И без эзотерических режимов процессора.
Аноним 14/11/24 Чтв 18:59:46 #243 №3322522 
>>3322513
>это [лучше] паники
fixed
Аноним 14/11/24 Чтв 19:20:35 #244 №3322542 
>>3322513
Тем что сегфолт можно обработать, в отличии от паники. Чем тебе твой стектрейс поможет, если рантайм уже упал? И сегфолт обычно на уровне железа/ядра, это намного быстрее для производительности.
Аноним 14/11/24 Чтв 19:37:12 #245 №3322547 
>>3322542
>Тем что сегфолт можно обработать, в отличии от паники

Обработать и сделать что? Если у тебя в рандомном месте случилось неконсистентное состояние ты можешь максимум насрать в лог. Паника хотя бы деструкторы вызовет.

>намного быстрее для производительности
Алло, это Эльбрус, тут заведомо о производительности говорить приходится. Тем более с толстыми указателями.
Аноним 14/11/24 Чтв 20:36:07 #246 №3322564 
>>3322547
> Если у тебя в рандомном месте случилось неконсистентное состояние ты можешь максимум насрать в лог.
Нет. Как минимум в винде сегфолт бросает VEH-эксепшен, но наверное и в линуксе есть что-то подобное. Через AddVectoredExceptionHandler можно ставить обработчики эксепшенов и ловить Access Violation, прилетающие из ядра. Ядро убьёт процесс только если до него дойдёт этот эксепшен необработанным. Это один из беспалевных способов дебажить чужой процесс - ставить через VirtualProtect на участок памяти запрет на чтение, а как процесс пытается обратиться к своим данным случается сегфолт и выполнение прилетает в твой "зловредный" код. Ты там можешь даже посмотреть состояние регистров на момент сегфолта: https://learn.microsoft.com/en-us/windows/win32/api/winnt/ns-winnt-context
А потом можно вернуть выполнение обратно в следующую инструкцию цп, вернув из обработчика эксепшена EXCEPTION_CONTINUE_EXECUTION. При этом память самого процесса никак не меняется, все байтики как были.
Аноним 14/11/24 Чтв 20:38:35 #247 №3322565 
>>3322513
так это разные вещи, стектрейс выкатывает операционная система + библиотека, а вот отлавлов некоректных обращений происходит по разному: аппаратная сама контролирует процесс и просто выплевывает сигналы, лови обрабатывай, стек на эльбрусах в любом случае можно получить только от операционной системы. Программная реализация подменяет вызовы алокаторов стандартной либы и создает за границами области памяти "санитарную" зону, в которой и отстреливает (в идеале) всех нарушителей.
Аноним 14/11/24 Чтв 20:40:24 #248 №3322566 
>>3322565
>отлавлов
> аппаратная реализация сама
Аноним 15/11/24 Птн 00:19:46 #249 №3322664 
>>3322565
А зачем всё это нужно, если всё и так отлавливается в юзерспейсе?
Аноним 15/11/24 Птн 17:30:13 #250 №3323171 
>>3322440
>и то что санитайзер даже в этом плане не сверхнадежное решение
Ты опять не понял, с рантайм-инструментарием тебе ещё нужно наступить на "минное поле", чтобы вообще узнать об ошибке. То есть просто даже наличие неидеального санитайзера грубо говоря ничего не даёт без дополнительных средств, то есть твои возбухания на санитайзеры это вообще пшик, ворос вообще не в санитайзерах на практике.
Наличие аппаратных средств - это вообще другое.
Аноним 15/11/24 Птн 17:32:12 #251 №3323172 
>>3322513
Если багнутый софт не падает в сегфолт, но продолжает работать, это хорошо по-твоему, мистер вкатун/джавахусесос/сисярпоподсос?
Аноним 15/11/24 Птн 17:58:46 #252 №3323193 
>>3323172
зависит от софта

мимо
Аноним 15/11/24 Птн 19:53:58 #253 №3323278 
>>3323172
Ты в растотреде. Багнутый софт падает с паникой, блять.
Аноним 15/11/24 Птн 22:25:30 #254 №3323319 
>>3323278
если unsafe, то segfault
Аноним 15/11/24 Птн 22:41:45 #255 №3323327 
image.png
>>3314409
все получилось, прирост больше, чем в четыре раза
только один крейт выебнулся - SSE2 ему подавай
был выпелен, т.к. основной функционал не затрагивал
Аноним 15/11/24 Птн 22:43:31 #256 №3323328 
>>3323327
*выпилен
Аноним 16/11/24 Суб 00:25:54 #257 №3323359 
>>3323327
Ого, это что ты такое запускаешь?
Аноним 16/11/24 Суб 00:33:49 #258 №3323365 
image.png
>>3323359
хуйню одну
Аноним 16/11/24 Суб 02:26:42 #259 №3323379 
>>3319493
как я понимаю ему похуй mut или нет - там везде будет один адрес на стек (не кучу)
mut нужен для анализа перед компиляцией не натворил ли там делов
но я не сильно шарю, может хуйню написал
Аноним 16/11/24 Суб 14:52:53 #260 №3323625 
Ебучие пердоли делали bindgen. Если у меня либа в отдельном крейте в виде dll, то как мне эту dll положить рядом с основным бинарником при использовании либы? Из build.rs либы нет возможности узнать путь до папки билда основного проекта. Получается я должен в основном проекте либо руками dll подкидывать, либо писать build.rs чтоб найти и копировать из либы её? Очень удобно, пиздец просто.
Аноним 16/11/24 Суб 15:29:37 #261 №3323646 
>>3323625
1. Зачем тебе биндген для либы на Расте?
2. Просто пропиши путь через cargo::rustc-link-search=PATH
Аноним 16/11/24 Суб 15:33:20 #262 №3323649 
>>3323646
> Просто пропиши путь через cargo::rustc-link-search=PATH
Это для статической линковки. Dll так не линкуется.
Аноним 16/11/24 Суб 15:38:21 #263 №3323652 
>>3323649
DLL обычно линкуется через статический трамплин, который подгружает саму либу. Или через специальные системные вызовы, если нужна ленивая загрузка, хот релоад и подобная шняга. Собственно, если ты зайдешь в папку с билдом, там будет два файла - .dll и .lib
Аноним 16/11/24 Суб 15:49:48 #264 №3323655 
>>3323652
> если ты зайдешь в папку с билдом, там будет два файла - .dll и .lib
Нет, не будет. Биндген только биндинг высрет в папку билда. Dll он никуда не будет перемещать, даже если укажешь ему где она лежит. И её не окажется рядом с приложением, которое при cargo run выдаст что не может найти dll. По логике этих дегенератов она должна лежать где-то в PATH, либо кидай руками. Ну или статически линкуй. На динамическую линковку в винде смело положен хуй.
Аноним 16/11/24 Суб 15:55:58 #265 №3323659 
>>3323655
Создаешь в крейте с либой .cargo/build.toml

[build]
target-dir = C:/куда_хош

И не надо никуда копировать. Ты слишком эмоционально реагируешь на хуйню, на которую нужно потратить три минуты в гугле.
Аноним 16/11/24 Суб 16:13:55 #266 №3323675 
>>3323659
> C:/куда_хош
И как я узнаю куда пользователь либы хочет, лол? Скопировать не проблема, проблема узнать куда. Зависимости собираются до сборки основного проекта и не знают ничего о нём. А основному проекту похуй на всё, он собрал и радостно запускает, даже если dll нужных нет.
> на которую нужно потратить три минуты в гугле
Если бы ты потратил хотя бы минуту в гугле, то увидел что про динамическую линковку в документации ни слова нет. Я тебе ещё раз повторю, если не доходит - всё что ты предлагаешь работает только в момент сборки либы, всё что не прилинковалось статически в этот момент - раст забывает про это навсегда. Всё остальное надо делать руками или писать скрипты по поиску этого говна в кишках карго и копированию куда надо. Даже в крестах есть инструменты для этого, но не в расте.
Аноним 16/11/24 Суб 16:24:11 #267 №3323678 
>>3323278
>уии раст бизапасный
Жопу ставишь?
Аноним 16/11/24 Суб 16:47:22 #268 №3323689 
>>3323675
> Я тебе ещё раз повторю, если не доходит - всё что ты предлагаешь работает только в момент сборки либы, всё что не прилинковалось статически в этот момент - раст забывает про это навсегда

Плюсы работают также. Это в целом свойство винды.

https://learn.microsoft.com/en-us/windows/win32/dlls/dynamic-link-library-search-order

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

>писать скрипты по поиску этого говна в кишках карго
/release/крейтнейм.dll и /release/крейтнейм.lib. Кого ты собрался искать?
>>3323678
Пока ни разу не нужен был ни дебаггер, ни санитайзер, включая unsafe код.
Аноним 16/11/24 Суб 16:57:54 #269 №3323694 
>>3323689
>Пока ни разу не нужен был ни дебаггер, ни санитайзер, включая unsafe код.
Безопастность на доверии, я полагаю.
Аноним 16/11/24 Суб 16:58:02 #270 №3323695 
>>3323689
> Плюсы работают также.
Нихуя не так же. В том же cmake он знает таргеты зависимостей и при линковке либы всё сам делает.
> у тебя в принципе нет гарантии, что бинарь узнает либу, которую собрали другой версией компилятора
Ты опять путаешь статическую линковку и динамическую. ABI для динамической либы всегда один, какая ещё версия компилятора, нахуй. В каком-нибудь шарпе тебе даже биндинги не нужны, просто по сигнатуре вызываешь из неё функции.
> /release/крейтнейм.dll
Начнём с того что они лежат не в release, а в release\build\lib-7644e047376f5792 с рандомным именем. А закончим тем что могут и не лежать, если автор либы не положил туда её, раст только rlib оставляет там и никаких правил на этот счёт нет.
Аноним 16/11/24 Суб 17:25:31 #271 №3323705 
>>3323694
У Эльбруса безопасность вообще на товарище майоре (в смысле буквально: указатель можно создать только в режиме ядра, а ты можешь только менять оффсеты в пределах объекта. Сжатие указателей, XOR-списки и так далее - всё идет в жопу). Лучше уж на доверии, я считаю.
>>3323695
>В том же cmake он знает таргеты зависимостей и при линковке либы всё сам делает.
Когда ты делаешь find_package, это заведомо предполагает, что зависимость установлена или скачена в какую-то заранее определенную директорию типа /usr/lib. И каждый find_package - это отдельный скрипт, который прописывает что-то в PATH или что-то куда-то копирует. Сам симейк нихрена не знает по умолчанию. Точно также, когда ты настраиваешь сборку в Вижуал Студии, тебе нужно вручную прописать, откуда брать хедеры, что линковать, откуда запускать.
Вот, например, сколько ебалы нужно скопипастить в консоль, чтобы собрать средних размеров проект.
https://www.wireshark.org/docs/wsdg_html_chunked/ChSetupWindows
>ABI для динамической либы всегда один, какая ещё версия компилятора, нахуй.
Чел. Если ты пишешь функцию без #[no_mangle], то она записывается в выходной файл с рандомным суффиксом. Если экзешник ищет функцию foo_l44545803458409, а в либе она лежит под названием foo_jfkghkjlghergheroiugher, то при запуске экзешника у тебя будет ошибка линковки. Это ж база.
Аноним 16/11/24 Суб 17:37:23 #272 №3323706 
>>3323705
>У Эльбруса безопасность
Я про другое, пока ты формально не доказал корректность программы, всё это на доверии, были же утечки в стандартной либе, пока там rustbelt до них не добрался.
Аноним 16/11/24 Суб 17:41:21 #273 №3323709 
>>3323705
> это отдельный скрипт, который прописывает что-то в PATH или что-то куда-то копирует
Потому что он может. Как я тебе уже сказал, в расте ты не можешь из зависимости какими-то разумными средствами положить dll пользователю либы куда ему надо.
> в Вижуал Студии
Там уже давно по умолчанию интеграция с vcpkg, с ним вообще однокнопочное использование либ.
> Это ж база.
Растобаза с миллионом ABI даже на одной платформе. А я про биндинги сишных/крестовых либ через bindgen, у сишных либ при динамической линковке нет проблем с этим.
Аноним 16/11/24 Суб 17:46:15 #274 №3323716 
>>3323706
Я доверяю самому себе, когда пишу код на Расте. Доверяю чуть меньше, когда пишу на плюсах, но не настолько, чтобы байтоёбить с кандалах.
Аноним 16/11/24 Суб 17:58:31 #275 №3323720 
>>3323709
> А я про биндинги сишных/крестовых либ через bindgen
Так а чего ты мозги канифолишь, если dll сишная? Я думал, тебе зачем-то DLL на Расте сдалось собирать. Просто кладёшь dll в корень (или пишешь PATH), а крейт-обвязку делаешь статической либой. Всё само работает.
Аноним 16/11/24 Суб 18:52:05 #276 №3323760 
>>3323720
> DLL на Расте сдалось собирать
Я в первом посте про bindgen написал. Я не знаю зачем ты выдумал шизу про биндинги раста на расте.
> кладёшь dll в корень
Т.е. без костылей никак?
Аноним 16/11/24 Суб 19:05:44 #277 №3323775 
>>3323760
>Т.е. без костылей никак?
В смысле костыли. Все программы в истории Винды либо таскают свои либы, либо срут куда-то в system32 при установке. Ты же в любом случае будешь деплоить приложуху когда-то?
Аноним 17/11/24 Вск 14:58:55 #278 №3324221 
Вы на линуксе или на винде разрабатываете?
Аноним 17/11/24 Вск 17:39:13 #279 №3324297 
Microsoft отказывается от C# — ключевой компонент Microsoft 365 перепишут на Rust

Microsoft активно переписывает отдельные части своих программных продуктов на Rust — более производительной и безопасной альтернативе С#. Портал MSPowerUser заметил на сайте компании вакансию для главного архитектора ПО Microsoft 365: он возглавит новую команду специалистов, которые перепишут с C# на Rust серверный код облачной платформы.

Даже мплкософт отказались от своего поделия ака джаваклона лол.
Аноним 17/11/24 Вск 19:11:42 #280 №3324367 
>>3324297
Нихуя ты быстрый, даже двух лет не прошло как ты протухшее говно притащил. Ещё и максимально жёлтое, где шизо-журнашлюхи одну вакансию растана приравняли к "майки переходят на раст".
Аноним 17/11/24 Вск 21:59:39 #281 №3324455 
>>3324297
На тебя мочи не хватит.
>>3324454 →
Аноним 18/11/24 Пнд 19:44:13 #282 №3325107 
Есть структуры Foo и Bar. Функция создает структуру Foo и возвращает ее. Результат выполнения этой функции (т.е. Foo) присваивается одному из полей структуры Bar (изначально там был Foo::default()).
Внимание вопрос: что конкретно присвоилось? Адрес в куче, адрес не стеке, где лежит адрес на кучу или Foo клониролоась, хотя явно .clone() не вызывался. Foo после создания может релоцироваться? Если до возврата из функции я буду делать поинтеры на Foo, это норм? Они будут жить после присваивания?
Аноним 18/11/24 Пнд 21:47:38 #283 №3325157 
>>3325107
Какой адрес на кучу, какие релокации структуры
Таблетки прими, шизик.

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

Пиши как на скрипте и не лезь блять, дебилсукаебаный
Аноним 18/11/24 Пнд 21:49:31 #284 №3325159 
>>3325107
У тебя уже выделено место под Foo внутри Bar. Скорее всего компилятор просто будет писать в данную область нужные данные.

Другой вариант - выделится место в стекфрейме вызывающей функции, в которую потом запишутся данные от вызова, которые потом присвоятся по адрессу внутри Bar.

Естественно если возвращается Box<Foo>, то передатся указатель на выделенные данные в куче, который потом перезапишется по Bar и самоудалится
Аноним 18/11/24 Пнд 21:55:57 #285 №3325164 
Вот пример выше - человек думает что это джава, стекфреймы блять, кучи, Foo выделяется внутри bar пиздец
Аноним 18/11/24 Пнд 22:07:27 #286 №3325172 
>>3325164
Таблетки не забыл? Причем тут джава?

Как только переменную определил, если без оптимизаций, компилятор тебе на стэке выделяет область памяти под размер переменной + выравнивание. В частности, как в примере, в области памяти выделенной под Bar есть область памяти под Foo.
Аноним 18/11/24 Пнд 22:33:48 #287 №3325194 
>>3325157
>>3325159
два стула:

читаю файл
десериализацию в структуру Foo
на эту структуру хуярю поинтеры
структуру возвращаю из функции
Bar.foo = Foo

ИЛИ

читаю файл
десериализацию в структуру Foo
структуру возвращаю из функции
bar.foo = Foo
хуярю поинтеры уже на bar.foo

есть разница или вообще похуй, даже дверь открыта?
Аноним 18/11/24 Пнд 22:45:45 #288 №3325202 
>>3325194
или

собираешь портфель на завтра, готовишь уроки
Аноним 18/11/24 Пнд 22:47:12 #289 №3325205 
>>3325194
Как хранится Foo внутри Bar? Можешь вообще код использования кинуть?
Просто что ты делаешь в первом варике я не понял
Аноним 18/11/24 Пнд 23:08:06 #290 №3325217 
>>3325205

struct Foo{
bar: Bar;
}

struct x{
куча полей
}

fn load(x: &mut X) -> Bar{
let data = load_from_file();
X.имя_поля = data.as_mut_ptr();
}

где-то в майне:
экземпляр foo.bar = load(x);

ИЛИ

fn load(x: &mut X) -> Bar{
load_from_file()
}

где-то в майне:
экземпляр foo.bar = load(x);
X.имя_поля = foo.bar.as_mut_ptr();
}
Аноним 18/11/24 Пнд 23:10:27 #291 №3325220 
>>3325217
Один хуй
Аноним 18/11/24 Пнд 23:17:41 #292 №3325225 
>>3325220
так когда мы делаем foo.bar = load(x);, что конкретно присваивается?
Аноним 18/11/24 Пнд 23:54:49 #293 №3325254 
>>3325225
парик и смешной нос
Аноним 19/11/24 Втр 00:01:37 #294 №3325258 
image.png
>>3325254
а парик твои друзья до сих пор не вернули
Аноним 20/11/24 Срд 13:50:39 #295 №3326142 
>>3325225
так что конкретно присваивается: указатель на стек, где хранится указатель на кучу, сразу указатель на кучу или что-то еще? как это работает?

вот у нас есть структура, в ней поле, которое равно Foo::default()
потом мы создаем (читаем из файла) новый Foo (в функции)
возвращаем его из функции и присваиваем к полю структуру вместо Foo::default()
оно же никуда не релоцируется, правильно?
как это выглядит на более низком уровне?
Аноним 20/11/24 Срд 14:17:22 #296 №3326152 
>>3326142
Низкий уровень это команды@регистры, причем конкретной машины/архитектуры а не любой, если тебе интересно залезть в низкий уровень сначала изучи литературу поро какую нибудь архитектуру и ее ситему комманд которыми она все это делает, и потом просто возьми скомпилируй и сделай обжект дамп программы и так ты увидишь как это все реализовано на низком уровне. В данном же случае ты себе придумал какую-то джава-хип-подобную хуйню и требуешь объяснения как это на ней работает.

Никак оно блять не работает, считай все компилируется просто в "сишную программу" и все.
Аноним 20/11/24 Срд 14:35:10 #297 №3326156 
>>3326142
Для проца нет никакого стека или кучи, только память. Любой объект - это последовательность байт. Ты перемешаешь эти байты в конкретную локацию на памяти. Компилятор делает это статически, поэтому указателя никакого не создаётся, кроме указателя на стакфрейм (который, в свою очередь, тоже всего-лишь кучка байт). Кроме того, всё это дело может соптимайзиться, чтобы жить чисто в регистрах, но это детали.
Аноним 20/11/24 Срд 19:13:47 #298 №3326334 
>>3326152
>В данном же случае ты себе придумал какую-то джава-хип-подобную хуйню и требуешь объяснения как это на ней работает.
понятие стека и кучи есть и в книжках про rust
я читал, что в стеке лежат примитивы и ссылки на кучу, в куче более сложные объекты
в стеке все фикс размера, а в куче выделяется и освобождается память и т.д.
стек маленький и быстрый, а куча большая и медленная
при обращении к объекту ищут его на стеке, а там уже берут адрес в куче

let v1 = vec![1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
println!("v1.as_ptr(): {:p}", v1.as_ptr());
println!("&v1: {:p}", &v1);
первое вернет адрес в куче, а второе на стеке

где я напиздел?
Аноним 20/11/24 Срд 19:37:37 #299 №3326341 
image.png
>>3326334
добавлю
получается, что в foo.bar лежит адрес на стеке, где лежит адрес в куче?
Аноним 20/11/24 Срд 20:40:52 #300 №3326358 
>>3326341
Vec<u8> - это примерно struct A { len : usize, capacity : usize, data : *mut u8 }.

В первом принте ты видишь адрес вектора на стеке, а во втором значение указателя data, который лежит внутри этого вектора.
Аноним 20/11/24 Срд 22:07:21 #301 №3326375 
>>3326358
там даже не так, а как то вот так

text: {
0: "{:p}"
}

data: {
main: { 0: &vec foo.bar }
}

calls: {
main : {
0: Foo.new(&self[0]), // передаем адрес на стеке откуда начинаются данные структуры для инициализации
1: println(text[0], &self[0]), // печатаем этот адрес на стеке
2: println(text[0], self[0]) // печатаем то что лежит по адресу на стеке
3: return()
}
}

В любом случае это все условная абстракция которая перекладывается на реализацию конкретной архитектуры.
Аноним 25/11/24 Пнд 00:37:40 #302 №3328587 DELETED
Аноним 25/11/24 Пнд 01:26:41 #303 №3328593 
>>3328587
Вот это ровный чел, наш растан.
Аноним 26/11/24 Втр 14:42:42 #304 №3329722 
С приходом нейронок раст наконец перестаёт вызывать рвоту. С бойлерплейтом и построчным автокомплитом нейронка справляется без проблем, теперь не так бесит когда надо высерать десяток строк мусора. Вчера обёртку на сишную либу писал, почти всё нажатием таба сделал, изредка только руками приходилось пару слов написать.
Аноним 26/11/24 Втр 15:03:43 #305 №3329746 
>>3329722
>теперь не так бесит когда надо высерать десяток строк мусора

Это где? Код на Расте раза в полтора короче тех же плюсов. И раз в десять короче, чем любой ООП язык.
Аноним 26/11/24 Втр 15:12:26 #306 №3329754 
>>3329746
> Код на Расте раза в полтора короче тех же плюсов.
На крестах просто делаешь что хочешь, а на расте ебёшься с безопасностью и соответствием типов. Даже растовский match требует больше символов чем просто if else.
> раз в десять короче, чем любой ООП язык
В каком месте? В ООП языках не надо трейты отделять от структуры и реализовывать каждый трейт в отдельном блоке, не надо определять модули, не надо делать безопасные обёртки и обрабатывать каждый Result. Литералли только лямбды компактнее чем у других, всё остальное требует больше буков.
Аноним 26/11/24 Втр 16:48:22 #307 №3329838 
>>3329754
>На крестах просто делаешь что хочешь

>Rule of 5
>Rule of 3
>каждый указатель может быть нулём, каждый объект может быть в невалидном состоянии, и их нужно в каждом месте проверять.

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

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

>Даже растовский match требует больше символов чем просто if else.
Так он и делает больше, чем просто if/else. И все ветки матча может сгенерить раст аналайзер, даже нейросетка не нужна.

>В ООП языках не надо трейты отделять от структуры
Крестовый линкер передаёт привет (ну или добавляешь везде inline и собираешь любой проект длиннее 1000 строк по месяцу)

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

Ну да, там надо делать иерархии абстрактной хуйни, энкапсулировать один тип хуйни в другой хуйне и прочее перекладывание бумажек. А потом окажется, что ты неправильно понял задачу и у твоей иерархии хуйни надо пробивать дырки в стенах. Зато трейты отдельно определять не надо.
Аноним 26/11/24 Втр 17:17:42 #308 №3329862 
>>3329838
> как на минном поле
Никто не пишет на C++03.
> Так он и делает больше, чем просто if/else.
И что же он делает? Паттерн матчинг и в if бывает.
> Крестовый линкер передаёт привет
Кому он передаёт привет, уже третий стандарт с модулями сидим. Линкер наоборот передаст тебе привет если попробуешь реализацию шаблонов от определения отделить. Да и речь же не только про кресты, раз ты обобщаешь до ООП-языков.
> иерархии абстрактной хуйни
В расте их нет не от хорошей жизни, а от того что потом боров-чеккер не даст просто взять и поменять иерархию. Алсо, уёбищная реализация модулей раста, когда надо чтоб всё было в дереве проекта, а иначе раст-аналайзер отрубит подсветку синтаксиса - это пизда. Из-за этого потом городят костыли с mod-залупой. При том что у всех остальных достаточно просто определить модуль и он просто доступен во всём проекте, без выстраивания дерева от main/lib.
Аноним 26/11/24 Втр 17:30:06 #309 №3329869 
>>3329862
> уже третий стандарт с модулями
И ни одного конпелятора не под венду пхахаха
Аноним 26/11/24 Втр 17:39:59 #310 №3329878 
>>3329869
Сейчас бы пользоваться операционкой финского нацика. Пусть дальше сидят на gcc 12 и хоть на сишке пишут.
Аноним 26/11/24 Втр 18:04:52 #311 №3329891 
>>3329862
>Никто не пишет на C++03.

А, там же теперь правило семи. Виноват, попутал.

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

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

>Алсо, уёбищная реализация модулей раста, когда надо чтоб всё было в дереве проекта

Оформляешь как крейт и добавляешь по относительному пути. Без понятия, в чем твоя проблема.
Аноним 26/11/24 Втр 18:14:53 #312 №3329900 
>>3329891
> Ни разу не слышал
Может ты ещё ни разу не слышал как сдыхают проекты на расте из-за невозможности рефакторить его? А были бы нормальные абстракции - рефакторили бы любое легаси.
Аноним 26/11/24 Втр 18:44:37 #313 №3329928 
>>3329900
>Может ты ещё ни разу не слышал как сдыхают проекты на расте из-за невозможности рефакторить его?

Кроме той единственной истории от игродела, все наоборот дрочат на то, как легко им было отрефакторить код, при этом его не поломав к херам. И даже в той истории он не рефакторил, а наоборот пихал квадратное в круглое.

>А были бы нормальные абстракции - рефакторили бы любое легаси.
Абстракции есть. Неведомую херню сотворить сложнее.
Аноним 26/11/24 Втр 18:57:11 #314 №3329935 
>>3329928
> Кроме той единственной истории от игродела
Посчитай хотя бы сколько обёрток на Вулкан на расте написано одними и теми же людьми. Или сколько раз wgpu переписывали. И уже потом рассказывай как это всего лишь один игродел, лол.
Аноним 26/11/24 Втр 19:38:23 #315 №3329975 
>>3329935
>Посчитай хотя бы сколько обёрток на Вулкан на расте написано одними и теми же людьми. Или сколько раз wgpu переписывали

Они пишут абстракцию, ниже которой только драйвер. Базовый уровень. Естественно, что здесь каждый элемент должен быть на своём месте. ООП тут никак не поможет, только перед тем как ты поймешь, что написал херню, у тебя выйдет вдвое больше кода и ты больше заебешься.
Аноним 26/11/24 Втр 19:59:54 #316 №3329982 
>>3329754
Нефига манямир, а волосы шелковистее?
Аноним 26/11/24 Втр 20:03:16 #317 №3329986 
>>3329754
>Литералли только лямбды компактнее чем у других
Самые удобные лямбды в груви котлине и вытекающем оттуда dsl
Я не понимаю почему в новых экзотических языках обходят этот шикарный сахар.
Аноним 26/11/24 Втр 20:45:02 #318 №3330011 
>>3329746
ООП позволяет инкапсулировать внутренние изменчивое поведение от потребителя API, в расте изменчивое состояние достигается только через костыли рантайма rc<refcell>>.
Так что ООП это не только про злое и пугающие зумеров наследование, это еще настоящая инкапсуляция внутренних изменений (в расте это недостижимо, а значит проекты больше grep будут превращаться жопоболь)

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

ООП такая штука, она не всегда нужна полностью, но когда нужна, лучше когда она есть.
Аноним 26/11/24 Втр 23:36:11 #319 №3330109 
1651199670464.png
Как в вс-коде дебажить? Почему у раста дебаг через питон ебучий сделан и нихуя не работает?
Аноним 26/11/24 Втр 23:40:30 #320 №3330110 
>>3330011
> в расте изменчивое состояние достигается только через костыли рантайма rc<refcell>>.
Теплое с мягким перепутал
Аноним 27/11/24 Срд 01:02:30 #321 №3330129 
Пиздос, есть сишная либа, в крестах работает как часы. А в расте дёргаю функцию и через раз получаю: (exit code: 0xc0000374, STATUS_HEAP_CORRUPTION)
Кто мне в штаны насрал? Оно реально просто рандомно падает. Может 5 раз нормально вызваться, а потом 3 раза подряд упасть. На крестах гонял тесты час - всё ровно.
Алсо, самое поганое что отловить это невозможно никак, раст сразу в панику проваливается. Пробовал дебажить, кроме "Critical error detected c0000374" нихуя понятного.
Аноним 27/11/24 Срд 02:49:28 #322 №3330142 
>>3330129
Можешь попробовать втроянить в свою либу обработчик sigsegv и напечатать стек вызовов. А исходники есть у тебя?
Аноним 27/11/24 Срд 03:54:08 #323 №3330154 
>>3330110
Ты не можешь менять внутренние состояние если ты был создан через let. Это помогает барран-чекать, но просто множит на ноль инкапсуляцию и асбтракцию, а значит любое проектирование.

Простыми словами ты можешь создать машину которая не может завести двигатель, кофеварка, которая не греет, радио которое не может изменить частоту.
Аноним 27/11/24 Срд 07:14:58 #324 №3330179 
>>3330154
Ага, а в плюсах ты не можешь менять состояние если const

Про ключевое слово mut что то слышал?
Аноним 27/11/24 Срд 10:07:19 #325 №3330265 
>>3330179
const в си и плюсах это дополнительное объявление для типа переменной, а не для самой переменной.
Операторов объявления как таковых у них нет вообще. Раньше контроль преременных не считали проблемой, потому что раньше писали размашисто/увесисто типа:

function discursModeration
argument threadAbsoluteId type unsigned short int,
argument userUnicueId type unsigned long int,
argument trollFullWeight type fat64
returnvalue modVerdict type boolean
begin
if trollFullWeight == 10^99
then call zaBanitPidora with userUnicueId
then set modVerdict = true
else
then set modVerdict = false
end
end

наследие старых языков ориентированных на построчный ввод в терминале. Целые поколения в стенах университетов воспитаны объявлять dvernayaRuchkaN1 которую с локально объявленым xer -ом никак не спутаешь.

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

фу блять() {
аа = "1"
ыыы = ээ_блэт()
пук val
}

но с уменьшением количества буков пришла и проблема пересечения переменных, пришлось изобретать принудительный контроль
Аноним 27/11/24 Срд 10:17:43 #326 №3330273 
>>3330265
Такую шизофрению могла только чатгпт выдать, какое отношение этот текст к моему ветке постов имеет?
Аноним 27/11/24 Срд 10:39:15 #327 №3330284 
>>3330154
Словесный салат.
Аноним 28/11/24 Чтв 00:46:26 #328 №3330856 
>>333017
>Про ключевое слово mut что то слышал?
Смешно, но проблемы появляются именно, когда начинаешь передавать везде mut (с его ограничением).
Аноним 28/11/24 Чтв 11:28:18 #329 №3331011 
>>3330856
добро пожаловать в программирование
тут все проблемы от мутабельности и сайд эффектов
Аноним 29/11/24 Птн 04:47:21 #330 №3331539 
>>3331011
ФэПэшный манямир, напрочь оторванный от реальности (от чего фп и соснуло).
Аноним 29/11/24 Птн 07:57:23 #331 №3331570 
>>3331539
то что фп не может решить эту проблему не значит что этой проблемы нет
Аноним 29/11/24 Птн 08:52:08 #332 №3331604 
>>3330142
Исходники есть, там сишное ручное управление памятью и обращение к драйверу, где угодно может это происходить, максимальный ансейф. Как дебажать сишную либу, когда она в расте - не понятно. При этом у либы есть официальная обёртка под шарп и там она без проблем работает. Пробовал в расте делать вызовы функций без аргументов даже, если в цикле делать вызовы, то падает на 2-8 вызов, полный рандом. Раст каким-то образом подсерает в окружение или ломает память.
Аноним 29/11/24 Птн 10:24:38 #333 №3331672 
>>3331604
Переписать семплы на сырых вызовах пробовал?
Аноним 29/11/24 Птн 11:44:37 #334 №3331768 
>>3331539
Но фпшную хуйню проще верифицировать.
Аноним 29/11/24 Птн 16:57:13 #335 №3331983 
>>3331672
В общем, если либу из исходников собрать свежим MSVC, то всё начинает работать. Пидорство. А ведь в шарпе и с гитхаба бинарник работает, хоть с AOT, хоть с JIT. В расте даже пробовал с libloading с ручным вызовом в рантайме и так же рандомно падает.
Аноним 30/11/24 Суб 12:03:44 #336 №3332341 
>>3331983
МС пилит rustc под свой бэкенд. Тогда заживём.
Аноним 30/11/24 Суб 19:33:36 #337 №3332513 
>>3332341
Даже пидорастеры уже llvm хуисосят, этож надо было так обосраться с ним
Аноним 30/11/24 Суб 20:57:04 #338 №3332547 
>>3332513
Что за драма?

мимо говорил, лет 5 назад, что зависимость от чужого бэкенда зло и что говна пожрете
Аноним 30/11/24 Суб 21:40:31 #339 №3332567 
>>3332513
А когда его не хуесосили? Помню ещё лет 10 назад финский нацик горел с багов llvm и то что его пердольный код не работает как надо с оптимизациями, приходится только на gcc собирать. А у растанов наоборот всегда llvm был как позитивная фича, типа оптимизацию за них сделали, они только язык пилят не волнуясь о скорости ассемблерного кода.
>>3332341
Заживём когда Карбон допилят.
Аноним 01/12/24 Вск 11:05:51 #340 №3332723 
Я тут решил делать mmo игру, получается что будет мир и в нем игроки. Но мир же может изменяться любым игроком и у него должна быть мутабельная ссылка, а она может быть только одна, в с++ таких проблем не было, как быть то?
Аноним 01/12/24 Вск 11:14:43 #341 №3332728 
20241201131201.jpg
Аноним 01/12/24 Вск 11:57:39 #342 №3332758 
>>3332723
Игрок - это часть мира, зачем ему какая-то ссылка?
Аноним 01/12/24 Вск 12:21:11 #343 №3332771 
>>3332547
Драма в том что LLVM изначальн это виртуальная машина с компиляторами разного уровня как в джаве. Принимающее на вход абстрактный LLVM IR и выдающий абстрактный Machine IR абстрактного процессора.

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

Вот только с запуском не задалось, из за желания усидеть на двух хуях производительность исполнения кода на лету такая, что и годится только синтаксис в IDE проверять, а похожесть LLVM IR на байткод руинит всю идею отделения фронтендов, так как перегон целевого языка в это говно просто отметает целый класс оптимизаций, поэтому и раст и все остальные не делают независимый фронтенд, а тупо форкают libllvm и напрямую из фронтенда дергают функции или типа того.
Аноним 01/12/24 Вск 14:44:24 #344 №3332860 
>>3332567
>когда Карбон допилят.
Ты в курсе что над ним работает три человека?
Аноним 01/12/24 Вск 14:47:02 #345 №3332861 
>>3331011
Просто не нужно писать тысячи абсракций, которые захламляют логику и функции. Глобалстейт, композиция и минимальные абсракции чудесном образом исправляют любые проблемы сайдэффектов
Аноним 01/12/24 Вск 14:53:26 #346 №3332866 
>>3332860
Нет, не в курсе. Все кто его пилят - работают в гугле и получают от него зарплату, там минимум пять человек, кто ежедневно коммитит. А ты в курсе сколько людей зиг пилили? Даже трёх на фуллтайме не было. Сейчас активность в репе карбона примерно как активность у зига.
Аноним 01/12/24 Вск 14:56:42 #347 №3332867 
>>3332723
Если раст не компилируется при этом, значит подход не правильный и игра говно. Раст заранее спасает тебя от убыточной и неправильной игры.
Аноним 01/12/24 Вск 14:59:23 #348 №3332869 
>>3332861
Ты так пишешь как будто я противоположное утверждал или писал что эти проблемы нерешаемые
Аноним 01/12/24 Вск 15:07:23 #349 №3332870 
>>3332866
> работают в гугле и получают от него зарплату, там минимум пять человек
Уже не работают, и гугл отказался от карбона, никому ничего не платят уже.
> А ты в курсе сколько людей зиг пилили? Даже трёх на фуллтайме не было. Сейчас активность в репе карбона примерно как активность у зига.
Вот примерно то же самое будет и с карбоном - он никому нахуй не нужен будет кроме полутра землекопов.
Аноним 01/12/24 Вск 15:22:18 #350 №3332875 
1585758319546.png
>>3332870
> Уже не работают, и гугл отказался от карбона, никому ничего не платят уже.
Кому ты пиздишь. Пикрил с недавней конфы. Все люди из разработки сейчас в гугле работают.
Аноним 01/12/24 Вск 15:29:39 #351 №3332879 
>>3332870
Ты случаем не тот шиз которые бегает с джавой против котлина и шарпа? Уж очень манера шизы похожа.
Аноним 01/12/24 Вск 15:46:24 #352 №3332887 
>>3332875
Чел, это уже просто бренд.

Раньше над карбоном работало около 10 человек назарплате, сейчас осталось только три, которые, внезапно, работают над этим проектом в свободное от рабочих задач время. Это по-твоему финансирование и "получают зарплату"?

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

>>3332879
Протыков своих ищешь, шиз?
Аноним 01/12/24 Вск 18:30:46 #353 №3333017 
1585888129747.png
1644695597818.png
>>3332887
Чел, нахуй ты с фактами споришь, у карбона сейчас активности больше чем у зига пару лет назад.
> в свободное от рабочих задач время
Это твои фантазии, пикрил я вижу что два ключевых разраба стабильно коммитят последние 3 года и никаких просадок активности не было с начала проекта. По факту видно что в 2023 наоборот больше коммитов стало скачком, а не как ты фантазируешь про "забросили".
Аноним 01/12/24 Вск 18:55:00 #354 №3333039 
>>3333017
> пикрил я вижу что два ключевых разраба
Теперь подумай просто, два ключевых разраба вынуждены сами писать проект, сами коммитят как никогда ранее. О чем это говорит? То что кроме них некому этого делать. Это люди которые заняты теоретической частью языка, но вместо этого пишут сами, небось ещё и тестируют сами.

Твои пикрилы только подтверждают мною сказанное, а у тебя логика отвалилась.
Аноним 01/12/24 Вск 19:02:04 #355 №3333044 
>>3333039
Чел, большинство мелких языков вообще в одного пилят. Зиг один Андрюха пилил, сейчас всего лишь второго нашли на фултайм, весь 2024 год фактически только два разраба на проекте. Ты видимо макака и думаешь что разработкой языков должны заниматься толпа макак как ты. Но это не так.
> сами писать проект, сами коммитят как никогда ранее
Лол, а раньше оно само коммитилось? Они и есть те кто карбон изначально придумали.
Аноним 01/12/24 Вск 19:13:25 #356 №3333048 
>>3333044
> Но это не так.
Чел... Именно по этому ни ZIG ни Carbon никому нахуй не всрался - его никто не пилит и ошибки там исправлять некому. Никто не заинтересован в языке без фич, библиотек и с кучей ошибок, которых некому исправлять и некому даже протестировать это дерьмище.

Если для зига такое ещё хоть как-то допустимо, потому что оттуда выпилили всё ненужное, то для карбона, который пытается заменить с++ и над этим работает три человека? Ору нах, это звучит как сон собаки
Аноним 01/12/24 Вск 19:18:39 #357 №3333051 
>>3333048
> Никто не заинтересован в языке без фич, библиотек и с кучей ошибок
Нах ты так раст прикладываешь? У зига и карбона с библиотеками изначально никаких проблем нет, потому что они без всякого ffi их берут из сишки/крестов. Про bun сам вспомнишь и соотнесёшь с интересом в зиге и расте.
Аноним 01/12/24 Вск 19:36:23 #358 №3333053 
>>3333051
> Нах ты так раст прикладываешь?
Да кому нахуй нужен пидераст вообще? Про него говорить не стоит, он просто не работает и никому нахуй не нужен, кроме сообщества лгбтк++
> У зига и карбона с библиотеками изначально никаких проблем нет,
Есть. Приходят вот люди в карбон/зиг, а там половина кода на Си. А они пришли с какого-нибудь питона и не видовали никогда ничего кроме зига и пиотна. Что им делать? Как не обосраться? А никак, берёшь и срёшь под себя. Неприятненько.
Аноним 02/12/24 Пнд 07:42:19 #359 №3333199 
>>3333039
>Никто не заинтересован в языке без фич, библиотек
Это какая-то постирония? Мы говорим про два интероп-языках противовес заброшенным обертками раста.
Аноним 02/12/24 Пнд 07:58:57 #360 №3333214 
>>3333053
>А они пришли с какого-нибудь питона и не видовали никогда ничего кроме зига и пиотна.
Зачем питонщику зи/си? Это раст евангелисты пытаются ухватиться за все что можно, продавая якобы производительность вчерашним вебмакакам, в реальности вменяемому питонщику это нафиг не упало, сейчас объем бизнес логики не как в 70е годы, чтобы позволить себе дрочиться с указателями (пускай и умными), работая на полставки компилятором.

Это только двачеры переживают за железку кабана/барена, реальному разработчику комфорт важнее, а для всего остального есть шарпы, где если надо можно поконтролить иногда память.
Аноним 02/12/24 Пнд 14:00:50 #361 №3333410 
>>3333214
Ебать ты макакич, лол, ты реально думаешь что все только на барина работают и своих проектов не имеют?
Аноним 02/12/24 Пнд 15:31:29 #362 №3333469 
>>3333410
Ты реально веришь что из сотни твоих проектов выстрелит хотя бы парочка? Поверь, лучше на ралавеле или даже експрессе наговнить, это будет на порядок (а может даже на 10 порядков) быстрее чем прототипы на расте делать с сомнительным будущем.

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

Третья проблема, что на ты на i/o просядишь в 1000раз, какая разница на чем писать, если узкое место будет в бд и все держится на разогретом кэше.
А там какой-нибудь шарп или жаба еще работать быстрее будут, так как умеют в упаковку и поколения и дрочат свой резерв хипа, а не системный маллоком фрагментируют память.
Аноним 02/12/24 Пнд 17:00:46 #363 №3333510 
>>3333469
>Поверь, лучше на ралавеле или даже експрессе наговнить, это будет на порядок (а может даже на 10 порядков) быстрее чем прототипы на расте делать с сомнительным будущем.

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

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

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

Опять заладил. Ну нет никакой магии в поколениях и упаковке.
Аноним 02/12/24 Пнд 17:07:25 #364 №3333514 
>>3333469
>Ты реально веришь что из сотни твоих проектов выстрелит хотя бы парочка?
Хз, у меня все выстреливают. Ещё ни один проект не сфейлился или не отбил затраты.
> прототипы на расте делать
Прототипы на ноде делаю, потом переписываю на с++/зиг. В этот раз на зиг буду переписывать всё, вместе с написанным фреймворком и графической либой, которую нужно написать кста.
>это не значит что ты на нем автоматом будешь писать оптимизированный код
Спасибо что я на зиге пишу, тут сразу опитизированный код выходит.
>так как умеют в упаковку и поколения
Каждая вторая обёртка на бд может так. У меня на ноде работает всё с поколениями и батчингом. Переписать бы на зиг, но мне лень.
Аноним 02/12/24 Пнд 17:53:35 #365 №3333549 
>>3333469
>оптимизированный код
Или не оптимизированный, написал кучу сетевого кала под себя на сишке с еполом без оптимизаций, норм работает и похуй вообще. Зачем писать что-то на расте/говне/плюсах/другой нестабильной модной параше, если можно на си писать и вообще не париться - проработает 100 лет, можно вообще нихуя не трогать.
В своё время написал запускалку шейдеров и сцен на wgpu, со всяким изменением в расте, в самой либе приходилось переписывать, подстраивать, сейчас наверное проект даже не сконпелируется.
>>3333514
>тут сразу опитизированный код выходит
Сразу с флагом -O конпелирует что ли?
Аноним 02/12/24 Пнд 19:10:49 #366 №3333605 
>>3333549
> Сразу с флагом -O конпелирует что ли?
Дело не в флагах, там откровенное говно очень сложно писать, а нормальный код просто.
Аноним 02/12/24 Пнд 21:40:46 #367 №3333697 
Давайте наборшу еще говна на вентилятор
Я вот уже почти пенсионер, всю сознательную жизнь писал на C фирмарь для контроллерах и на C++ морды чтоб с этими контроллерами работать. В начале на msvc+mfc, потом перкатился на культи во имя кросс-платформенности. Много этого оборудования все еще работает на разных предприятиях нашей необъятной и у соседей. Простенький helloworld я могу написать еще на десятке языков.
А несколько лет назад я открыл для себя раст, и знаете - в рот я ебал этот си и си++, больше я на них добровольно писать не буду.
Года 2 назад я написал на расте программу для чтения файлов данных одной старой игры, нахуевертил кроме чтения еще поиск пути по миру, асинхронный многопоточный web сервер с апи, чтоб все это говно дергать, и обновлять и запрашивать данные на лету. И знаете, я это все написал без отладчика, rustroverа тогда еще не было. И не словил никаких проблем с утечками, повреждениями, ошибками многопоточной синхронизации. Вот вообще никаких проблем - если код компилировался - все работало как было задумано. Лет 5 назад я такое пробовал делать на плюсах - загрузку сделал и бросил, было тяжело писать, код получался говном, хотя я и старался.

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

Раст может и не идеальный, но это лучшее, что сейчас есть из языков программирования.
Аноним 02/12/24 Пнд 21:43:50 #368 №3333699 
>>3333549
Большая часть тех кто пишут на си тупо не умеют на нем писать, ни с точки зрения оформления кода/проекта, ни с точки зрения его оптимального исполнения.

Читал бложик какого то препода на дзене он там нахуевертил последоватильный говнокод который невозможно никак оптимизировать на си по какому то там учебнику и выкатив ассемблерный дамп написал смотрите всего пара регистров задействовано и какой компактный код! вот как правильно на си получается если по учебнику! Пиздец
Аноним 02/12/24 Пнд 21:46:58 #369 №3333703 
>>3333605
Машина не исполняет "нормальный" или "говняный" код. Она исполняет либо оптимизированный-быстрый, либо не оптимизированный медленный.
Аноним 02/12/24 Пнд 23:48:32 #370 №3333746 
>>3333703
Если ты пишешь функции с классами которые хуячат маллоки в какие-то ебанутые разделы памяти, использвая всякие "умные указатели" потому что потому - это неоптимизированный говнокодкод. Когда ты пишешь функции которые работают с плотными структурами и массивами - это оптимизированный, нормальный, код.
Так уж вышло что на зиге писать функции и плотные структуры куда проще чем на пидерасте или ещё каком другом языке. Оптимизации компилятора это уже другое.

>>3333697
>Сделал
Самое интересное в таких рассказах - никто этих суперкрутых фреймворков и пиздатого кода нахуй не увидит. Ни игр, ни рендеров, ни движков, нихуя нет. А всё потому что это пиздёж и говнокодище никому нахуй не нужное. Самый популярный движок на пидерасте работает раз в 5 медленнее чем js. Упс...
Аноним 03/12/24 Втр 00:04:03 #371 №3333748 
>>3333746
>Если ты пишешь функции с классами которые хуячат маллоки в какие-то ебанутые разделы памяти, использвая всякие "умные указатели" потому что потому - это неоптимизированный говнокодкод. Когда ты пишешь функции которые работают с плотными структурами и массивами - это оптимизированный, нормальный, код.

Что такое плотные структуры и массивы? Какой у них размер?
Аноним 03/12/24 Втр 07:19:26 #372 №3333814 
>>3333746
>Самое интересное в таких рассказах - никто этих суперкрутых фреймворков и пиздатого кода нахуй не увидит.

Резонное замечание.
Вот первая часть, о чем я говорил https://github.com/broker0/path_server
Вторую часть не выкладываю, тк пока зарабатываю на ней копеечку, продавая игрокам прокси со спецфункционалом.
Аноним 03/12/24 Втр 09:36:23 #373 №3333866 
>>3333697
+15 колготок.
Аноним 03/12/24 Втр 12:24:34 #374 №3333970 
>>3333748
Структуры и массивы при использовании которызх используются кэши процессора.

>>3333814
Чел.... Это... Ну чел, ну ты... Мда.... Уровень раста, таксказать, каждый раз одно и то же.

Ты в курсе что патчфайндер пишется нейросетью за десять запросов? Это как бы даже не рассматривается за код в 2к25 году.
Аноним 03/12/24 Втр 12:32:15 #375 №3333978 
>>3333970
>Ты в курсе что патчфайндер пишется нейросетью за десять запросов? Это как бы даже не рассматривается за код в 2к25 году.
Давай, покажи класс, повтори функциональность этого приложения хоть за 50 запросов к нейросети.
Без знаний о предметной области, нейросеть тебе не поможет.
Аноним 03/12/24 Втр 12:40:22 #376 №3333986 
>>3333978
Очевидно что речь про то что я знаю предметную область, по этому тебе и говорю что это какое-то дикое калище, которое нахуй никому не нужен. Патчфайндер, ебать ты конечно дал, стыдно бы такое приводить в пример как твой "проект".
Аноним 03/12/24 Втр 12:51:29 #377 №3333999 
>>3333986
Так код то где, а клоун?
Аноним 03/12/24 Втр 12:59:25 #378 №3334007 
>>3333814
Интересное. Спасибо что показал, анон.
Аноним 03/12/24 Втр 13:20:38 #379 №3334026 
>>3333970
Я тебе больше скажу. Всё, чем занимается 90% программистов заменяется бабкой со счетами.
Аноним 03/12/24 Втр 13:58:14 #380 №3334058 
image.jpeg
>>3333605
>откровенное говно очень сложно писать, а нормальный код просто.
Долбоёбы из зиг треда сказали, что в зиг просто завезли модные перделки и свистелки, а вот проблемы си никто там не решал.
>>3333699
Большинство тех, кто пишет в треде, не умеет читать.
Аноним 03/12/24 Втр 15:11:49 #381 №3334115 
>>3333970
>Структуры и массивы при использовании которызх используются кэши процессора.
кэш процессора это буферное устройство подсистемы памяти процессора, что бы подкачивать данные и, внезапно, сам код как можно ближе к фронтенду. Твои маняпуляции со структурами никакого влияния на ее работу не оказывают, не хватает места в кэше для более приоритетных данных/комманд твою структуру выбъют нахуй хоть как ты ее пиши.
Единственное что ты можешь и должен контролировать как программист это выравнивание и отображение данных на регистрах, а иначе твои "сверхплотные" массивы компилятор порежет на слова (а то и на длинные) с заполнением нулями и будет твоя структура в три раза длиннее по факту. А "массив" на стеке это вообще отдельная песня.
Аноним 03/12/24 Втр 15:24:24 #382 №3334119 
>>3334115
Ты использовал чатгпт с промтом "Говори как самоуверенный шиз-второкурсник"?

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

Кеш работает по простому и понятному алгоритму, какие нахуй приоритетные данные.
Аноним 03/12/24 Втр 15:51:52 #383 №3334139 
>>3334058
> в зиг просто завезли модные перделки и свистелки, а вот проблемы си никто там не решал.
Да хуй знает, главное что там понятные функции и работа с структурами, почти все проблемы решаются через comptime. Говнокод очень сложно написать.

>>3334115
>Твои маняпуляции со структурами никакого влияния на ее работу не оказывают
)
> места в кэше для более приоритетных данных/комман
Бредишь
> массивы компилятор порежет на слова
Это компилятор раста так делает? Сочувствую.
Аноним 03/12/24 Втр 16:14:56 #384 №3334153 
>>3334139
>Да хуй знает
>Говнокод очень сложно написать
Ясно.
Аноним 03/12/24 Втр 18:10:11 #385 №3334218 
>>3334139
>почти все проблемы решаются через comptime. Говнокод очень сложно написать.
Где-то мы это уже слышали. Кажется, был такой язык где тоже кучу всего делалось во время компиляции, и ещё там вроде бы были какие-то ограничения которые заставляли код сразу хорошо писать, а то если говнокод напишешь то не скомпилируется...
Аноним 03/12/24 Втр 23:49:12 #386 №3334444 
>>3315771
в смысле не завезли?
https://zed.dev/
Аноним 04/12/24 Срд 00:02:47 #387 №3334450 
Axum или Actix-web взять для джейсоноукладывательной хуитки? Первый вроде как активнее поддерживается и скачиваний больше...
Аноним 04/12/24 Срд 08:02:02 #388 №3334511 
>>3334450
Бери hyper и serde_json как настоящий мужык!
Аноним 05/12/24 Чтв 18:19:06 #389 №3335593 
>>3334058
>Долбоёбы из зиг треда сказали, что в зиг просто завезли модные перделки и свистелки, а вот проблемы си никто там не решал.
Кто тебе там такое сказал (тред маленький, чтобы так откровенно звездеть).
Аноним 07/12/24 Суб 15:12:06 #390 №3336786 
17321294830701.mp4
Всем привет. Заинтересовал язык Rust, захотелось его поучить, но говорят что перед Rust желательно выучить C, чтобы понимать что происходит. Это действительно так или на С можно забить?
Аноним 07/12/24 Суб 15:35:55 #391 №3336813 
>>3336786
Можно забить, но приготовься к тому, что все туториалы сосут и половина важных концептов объясняется где-то на уровне уроков из серии "квадрат это частный случай прямоугольника ёпта, а теперь иди ебашить энтерпрайз". После сей или крестов вопросов, а нахрена это всё, будет меньше.
Аноним 07/12/24 Суб 18:56:28 #392 №3336938 
>>3336786
Бля просто берешь учишь синтаксис, начинаешь писать, что непонятно - гуглишь. Это если ты в принципе знаком хоть с одним С-подобным языком и с программированием вообще.
Аноним 07/12/24 Суб 21:42:02 #393 №3337005 
>>3336938
Но раст не си-подобный.
Он скорее D-подобный
Аноним 08/12/24 Вск 01:15:16 #394 №3337065 
>>3336938
Знаю жопаскрипт и тупоскрипт. Даже работаю на этом почти два года. Но вот про всякие указатели и аллокаторы не ебу ваще, а в рустах и сях это знать надо.
Аноним 08/12/24 Вск 08:56:53 #395 №3337113 
>>3337065
Тогда лучше на плюсы
Аноним 10/12/24 Втр 00:57:25 #396 №3338362 
Сап, аноны, сейчас реально работу найти rust разрабом в РФ? Соориентируйте, по компаниям и вилкам зарплатным.
Аноним 10/12/24 Втр 07:26:00 #397 №3338427 
>>3338362
t.me/rust_jobs_feed
Аноним 10/12/24 Втр 10:24:20 #398 №3338503 
>>3336786
В сях (а лучше плюсы но с си основой) тебя объяснят за стек и указатели в хипе (как миниму 15 лет назад я такую книгу читал). В расте убогая документация типа "смотри у нас есть коробочка, а еще коробочка со счетчиком ссылок, а вот слайс строк надо конвертить в строку". Когда знаешь плюсы, еще понятен зачем этот зоопарк и как его использовать, но с нуля или с питонов ты просто будешь очередным додиком, который просто любит язык и поставил себе галочку что обязательно когда-нибудь разберешься нет
Аноним 10/12/24 Втр 13:51:41 #399 №3338708 
>>3338503
А ты с книжками Столярова случаем не знаком (по низкоуровнему программированию)? Я просто хз что почитать, а его нахваливают, несмотря на шизанутость.
Аноним 12/12/24 Чтв 17:08:00 #400 №3340126 
>>3310716 (OP)
> тайных знаков
Что за тайные знаки. Какой дебил это написал?
Аноним 17/12/24 Втр 21:18:57 #401 №3343491 
>>3338708
>Столяров
Нахуй русских авторов сразу
Аноним 17/12/24 Втр 22:33:37 #402 №3343529 
>>3336786
> выучить C, чтобы понимать что происходит
Кабанчиков дрессируют - вот, что происходит. Rust немного про другое.
Аноним 18/12/24 Срд 00:00:18 #403 №3343546 
>>3336786
>но говорят
Говорят бабки на лавочке.

>желательно выучить C
А почему не си шарп? Или java? Или с++? Или ассемблер? Лучше сразу учи машинные коды, как увидишь их, так сразу поймёшь "что происходит".

>чтобы понимать что происходит
А без этого ты не знаешь?
Аноним 18/12/24 Срд 00:04:46 #404 №3343550 
>>3338362
Реально абсолютно всё. Но есть одно НО! Rust - это как правило блокчейн. А это весьма специфическая тема, но правда бывает и хайлоад и другое.
Аноним 18/12/24 Срд 00:45:22 #405 №3343572 
>>3338708
>его нахваливают
Кто нахваливает? Анонимные пользователи интернета? То есть, почему нас это должно ебать. Чего добился тот нахваливает его книги? Если бы это писалось от лица гугла, майкрософта, амазона, тогда вопросов нет. Они авторитеты. А это кто-то что-то пукнул в интернете, ну охуеть теперь.
Аноним 18/12/24 Срд 01:16:37 #406 №3343581 
>>3336786
Я те советую сразу в действии познавать Rust. Нет смысла дрочить много лет теорию, мы слишком мало живём. По ходу дела всё узнаешь, т.к. интерес всё равно будет — банальное человеческое любопытство, это в каждом человеке присутствует. Удачи.
Аноним 19/12/24 Чтв 12:13:12 #407 №3344785 
Правду говорят, что раст для пидорасов? Я очень хочу освоить хоть какой то язык системного программирования, но у меня отец мусульманин, я не хочу чтоб через меня семья зашкварилась.
Аноним 19/12/24 Чтв 14:03:09 #408 №3344866 
>>3344785
> Правду говорят, что раст для пидорасов?
Да как и в целом +- индустрия программирования. Если ты рахитичный визгливый картавый слабак, которому сил хватает только на кнопки давить - идешь в эту профессию.
>хочу освоить хоть какой то язык системного программирования
Тогда ты не в ту дверь зашел. Тебе нужен C, а не этот толстый рантайм.
>я не хочу чтоб через меня семья зашкварилась.
)))
Аноним 19/12/24 Чтв 14:13:09 #409 №3344874 
Падажжите, тоесть раст работающий только при интернет коннекшоне это не толстая шутка?
Я только только вкатился, но это аж покоробило
Аноним 19/12/24 Чтв 15:02:14 #410 №3344908 
а чем растаманам не угодила концепция переменной и константы? Это чтоб не как у белых людей?
mutuable variable это же оксюморон
Аноним 19/12/24 Чтв 16:50:55 #411 №3344991 
>>3344908
Сейчас многие языки движутся в этом направлении. Эта тема пришла из фп, она как и некоторые другие функциональные концепты понравилась неспособным в полной мере осилить фп императивщикам, которые начали тащить все это в свои яп.
Если посмотреть любой свой код, большой процент переменных действительно не изменяются и их можно назвать константами, однако многие языки допускают в качестве константы только значения, однозначно известные на этапе компиляции. Самый яркий пример такого кастрата - Go, там емнип даже массив байт нельзя сделать константой, ну или результат вычисления математической функции с явно заданными параметрами - компилятор ругается.
Аноним 19/12/24 Чтв 16:54:04 #412 №3344994 
>>3344874
Сейчас любой проект с зависимостями (т.е. по сути любой не хелло ворлд) на почти любом языке не компилится без инета. JS, Java, C#, Go, питухон. Да даже для cpp есть какой-то vcpkg, если ты разрабатываешь под винду с MS тулчейном, он будет тебе пакеты ставить из инета (точно не знаю, может и нет).
Аноним 19/12/24 Чтв 17:04:43 #413 №3344998 
>>3344994
Почему под виндой? Я под линупсом vcpkg использую. Около 10 либ для апки. С cmake и vscode прекрасно работает

мимо
Аноним 19/12/24 Чтв 21:29:45 #414 №3345240 
image.png
image.png
Аноним 19/12/24 Чтв 21:34:20 #415 №3345245 
Может я чего то не понимаю, но это чё получается, стд либу раздели догола и выкинули на мороз, чтоб карго не был совсем бесполезным?
Аноним 19/12/24 Чтв 21:52:20 #416 №3345254 
>>3345245
Если всё будет в std, то нечего будет переписывать.
Аноним 19/12/24 Чтв 22:08:20 #417 №3345263 
И ещё меня очень насмешили строки о карго.лок и его кейсах использования.

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

И это подают как не-в-рот-ебенную фичу. Это же не питон нахуй.
Аноним 19/12/24 Чтв 22:40:35 #418 №3345276 
Очередной тред, очередные аноны вкатуны постят свою тупость в тред... когда же это закончится
Аноним 20/12/24 Птн 00:39:42 #419 №3345303 
>>3345263
Ну, ясно. Ты как бы сердцем его постиг, этот язык. А надо ещё умом постичь, понимаешь?
Аноним 20/12/24 Птн 00:48:03 #420 №3345304 
>>3345240
Ты линкуешь libc, хули тебе еще надо.
Аноним 20/12/24 Птн 09:37:30 #421 №3345477 
>>3345276
Ну так то разум говорит, что это троллейбус из хлеба.
Аноним 20/12/24 Птн 09:42:18 #422 №3345480 
>>3338503
>(а лучше плюсы но с си основой)
Это какой-то необычный C++?
Аноним 20/12/24 Птн 09:46:09 #423 №3345483 DELETED
А я сосал
Аноним 20/12/24 Птн 17:23:14 #424 №3345984 
>>3345480
Очевидно же что плюсы без классов и темплейтов
Аноним 20/12/24 Птн 18:35:17 #425 №3346097 
>>3345480
Когда плюсы начинаешь изучение сначала с си, а потом все это плавно перетекает в плюсы.
Аноним 20/12/24 Птн 20:03:50 #426 №3346175 
>>3346097
У меня си в раст перетёк, а до плюсов я так и не добрался.
другой анон
И да, после си раст очень приятен, если что-то скомпилировалось, то в 99% случаев отработает правильно.
Аноним 20/12/24 Птн 21:28:37 #427 №3346245 
>>3346175
> если что-то скомпилировалось, то в 99% случаев отработает правильно.
никогда не пишите этого, это показывает насколько вы некомпетентны в программирование, то есть не писали реального кода.
Аноним 20/12/24 Птн 21:42:48 #428 №3346251 
>>3346245
Ну он же не написал 100%...
Аноним 20/12/24 Птн 21:56:59 #429 №3346257 
>>3346245
Если есть опыт, то изначально пишешь относительно вменяемый код. А ошибки по невнимательности раст хорошо отлавливает в компайл-тайме. А на си у тебя может скомпилироваться, проходить тесты и на первый взгляд корректно работать, но в каких-нибудь редких эдж-кейсах выдавать какую-то неведомую хуйню, с которой ты будешь ебаться дольше, чем с компилятором раста.
Аноним 20/12/24 Птн 23:22:35 #430 №3346287 
>>3346245
Скорее можно сказать, он работает так, как ты написал, а не как хочется компилятору.
Аноним 21/12/24 Суб 00:25:54 #431 №3346323 
>>3346251
>>3346257
>>3346287
Компилируется и работает не так - в каком вы там мире живете? Мимо сишарп господин.
Аноним 21/12/24 Суб 00:54:00 #432 №3346337 
>>3346323
что
Аноним 21/12/24 Суб 12:52:00 #433 №3346466 
>>3346175
Я вот так же думаю сделать. Ладе на роадмап какой-то наталкивался, где писали что после C следует переходить на Rust, а не на C++.
Аноним 23/12/24 Пнд 12:29:45 #434 №3347885 
>>3346175
>И да, после си раст очень приятен, если что-то скомпилировалось, то в 99% случаев отработает правильно.
Ну что там нынче раст стабилизировался, не надо по сто раз переписывать/рефакторить? Можно уже какие-то проекты начинать на расте-то писать?
Аноним 23/12/24 Пнд 14:14:00 #435 №3347997 
1248911984013.jpg
Мимокрокодил, услышал что раст собирают растом и слегка прифигел. Чем вам Makefile не угодили?
Мне тут https://2ch.hk/pr/res/3333359.html#3347540 затирают что удобно (верю что удобно), но ИМХО смешивать сорцы и сборку - прямой путь к багам. А сборка отдельно - процесс довольно тупой, и фичи полноценного языка ему как пятая нога, скриптов хватит.

https://2ch.hk/pr/res/3333359.html#3347899
>>3347899 →
>В рантайме остаётся замаппить файл в память
И вот они кроссплатформенные баги, ибо нет гарантии что на машине юзера структуры байт-в-байт совпадут с твоим блобом. Или в расте есть? Хотя тактов экономится немало, тут ты хорош, но (де)сериализацию не просто так придумали, знаешь ли.
>и основной код становится чище
Любой толковый проект в любом сборочнике выносит данные в отдельные файлы. Плюс за чистоту, но как уникальная фича растосборки не катит.
>переписывать шейдеры на горячую
Ничего не понял. Ты работающему экзешнику кишки меняешь?
>если какой-то функционал окажется не нужен в рантайме, я смогу перетащить его в билд-скрипт
И зачем он в билд скрипте? Там тоже чистота нужна, знаешь ли.
Аноним 23/12/24 Пнд 15:07:47 #436 №3348057 
>>3347997
>фичи полноценного языка ему как пятая нога, скриптов хватит.
Скажем так, а что мы ПОЛУЧАЕМ за счет перехода с богатого выразительного языка на убогий недобейсик? Годах в 80-х это была экономия на компиляции и несовместимость разных компиляторов и процессоров. Сейчас это больше традиция и легаси либы.
>ибо нет гарантии что на машине юзера структуры байт-в-байт совпадут с твоим блобом.
Если у юзера поломанный файл - это пиздец в любом варианте. Релизиться на Nintendo Wii U с его биг эндиан тоже не планирую. А за меммап аж целый Царь Сишки топит.
>но (де)сериализацию не просто так придумали, знаешь ли.
Сериализация нужна, когда принимаешь недоверенные данные. А если потребляешь то, что сам произвёл, то проблем не будет. Редактор уровней, скорее всего, будет хранить файлы в ямле, чтобы было проще работать с гитом, но пока неактуально. А если юзер залез с хекс-редактором и поломал какой-то указатель, то сам дурак.
>Ничего не понял. Ты работающему экзешнику кишки меняешь?
Шейдеры на целевой системе всегда jit-компилируются из промежуточного представления SPIR-V. Сейчас билд-скрипт переводит glsl в SPIR-V и оно блобом вкорячивается в бинарь через аналог #embed. Если делать то же самое из текстового файла, то принципиально ничего не поменяется, только стартовать будет медленнее.
>И зачем он в билд скрипте? Там тоже чистота нужна, знаешь ли.
По нашему гитлабу не скажешь.
Аноним 23/12/24 Пнд 15:51:04 #437 №3348132 
>>3348057
>Релизиться на Nintendo Wii U с его биг эндиан тоже не планирую
Ну не планируй. Решил привязаться к ABI - привязывайся. Жди когда рванёт. Так вот, о системах сборки: на make портянках такая "база данных" просто ещё один таргет для компилятора. Мешать скрипт с кодом может и удобнее, но совсем необязательно.
>А за меммап аж целый Царь Сишки топит.
Что за царь? Я за его не голосовал.
>спойлер
Ну хоть мастер-ветку приберите, лодыри ;*

>а что мы ПОЛУЧАЕМ
РАЗДЕЛЕНИЕ ЗАДАЧ. Убогий недобейсик гораздо проще сопровождать. И раст, не утяжелённый сборочными фичами, в будущем не станет блотварным комбайном с кучей либ и конструкций, которые скорее мешают. Говорю как плюсовик.
Аноним 23/12/24 Пнд 16:35:43 #438 №3348187 
>>3348132
>Решил привязаться к ABI - привязывайся. Жди когда рванёт
Все структуры данных свои на оффсетных указателях, все типы фиксированного размера, всё аннотировано, чтобы компилятор не переставлял поля. Если в какой-то момент этого окажется недостаточно, то я нахрен брошу программирование и пойду класть ебаный газобетон.
>Что за царь? Я за его не голосовал.
Смешной шизоид с лора. Если увидишь странного чела, который в любой технологии видит пропаганду, приводит аргументы исходя из каких-то своих персональных определений и всех вокруг называет птушниками, то возможно это он.
>И раст, не утяжелённый сборочными фичами,
В языке их и нет, всем управляет карго.
Аноним 23/12/24 Пнд 17:16:04 #439 №3348241 
>>3348187
@
БЛОКИ ЕБАНОГО ГАЗОБЕТОНА ТО 23 СМ В ВЫСОТУ ТО 25
@
БРИГАДИР КЛАДЕТ ЕБАНЫЙ ГАЗОБЕТОН ОДНИМ СПОСОБОМ ТВОЙ НАПАРНИК ДРУГИМ А СТЕНЫ СОСЕДНЕЙ КОМНАТЫ ЯВНО УЛОЖЕНЫ ТРЕТЬИМ
@
ГРАНИЦЫ СТЕН НЕ СХОДЯТСЯ С ЧЕРТЕЖОМ И УПИРАЮТСЯ ДРУГ В ДРУГА
@
ПРИБЕГАЕТ НАЧАЛЬНИК КОСТЕРИТ ВАС ПО МАТЕРИ И ГОВОРИТ ПЕРЕДЕЛЫВАТЬ ЧЕТВЁРТЫМ СПОСОБОМ
Аноним 23/12/24 Пнд 20:28:01 #440 №3348401 
>>3347899 →
>>3348187
>Вместо пердолинга с сериализацией в какой-нибудь эс ку лайт просто делаешь несколько инсертов в б-дерево. В рантайме остаётся замаппить файл в память и пользоваться той же самой структурой данных, что и при создании. Работает быстрее, чем при каждом запуске обходить ФС, и основной код становится чище.
Я эдак году в 95-96, придумал так сохранять данные еще в Turbo Pascal - что-то типа, BlockWrite(f, struct, sizeOf(struct)), и смеялся когда увидел в чужой программе как там структуру по полям записывали, читали. Но я тогда школьником был. Надеюсь это просто троллинг.
Аноним 23/12/24 Пнд 20:33:45 #441 №3348405 
Чем rust лучше js. Только кратко
Аноним 23/12/24 Пнд 21:04:56 #442 №3348443 
>>3348405
> Только кратко
Чем js
Аноним 24/12/24 Втр 03:12:33 #443 №3348585 
>>3348405
Контроль каждого байта
Компилятор следит, чтобы программист не налажал
Проще упорядочить большие и сложные задачи
Аноним 24/12/24 Втр 04:41:35 #444 №3348596 
>>3348405
>Чем rust лучше js. Только кратко
Rust прощает меньше хуйни чем js. В расте ты не можешь даже u8 присвоить u16, хотя и то и то integer. В js похуй, он тебе и number сконвертирует в string легко. Это поощряет большее говнокодерство. Ну и плюс, производительность. Раст при любых раскладах работает раз в 15-20 быстрее js при меньшей загрузки памяти.
Аноним 24/12/24 Втр 08:40:04 #445 №3348663 
>>3348405
> Чем rust лучше
Можно придумать миллиард шуток про его компилятор и он даже не обидится.
Аноним 24/12/24 Втр 16:46:30 #446 №3349135 
17350478265510.png
17350478265511.png
Почему кто-то из вкатунов выберет Rust если пик?
Аноним 24/12/24 Втр 16:52:24 #447 №3349140 
>>3349135
Не пизди, там 136 вакансий. Да и вообще, чего ты ожидал, что только язык появится и сразу миллион вакансий на него? Rust сейчас это как пхп в 2004-м.
Аноним 24/12/24 Втр 16:55:35 #448 №3349144 
изображение.png
>>3349140
Ну, Go появился в 2009 году (Rust в 2006) и что-то он более популярен чем Rust
Аноним 24/12/24 Втр 17:04:05 #449 №3349152 
>>3349144
Это надо у работодателя спрашивать, почему они выбрали язык х, а не язык у. Это не проблема самого языка, язык не отвечает за: зарплату, вакансии, длину твоего члена и так далее.
Аноним 24/12/24 Втр 17:05:46 #450 №3349155 
>>3349152
Всё так, согласен
Аноним 24/12/24 Втр 18:58:22 #451 №3349236 
image.png
>>3348405
Если кратко
Аноним 24/12/24 Втр 19:04:30 #452 №3349243 
>>3348241
@
ПРИХОДЯТ ГЕОДЕЗИСТЫ И ВЫСТАВЛЯЕТ ОСИ ПО ПРОЕКТУ
@
ВНУТРЕННИЕ СТЕНЫ НАДО ПЕРЕНЕСТИ НА 35 ММ
@
ДЛЯ ПЕРЕВЯЗКИ БЛОКОВ НУЖНО РАЗОБРАТЬ ЧАСТЬ НАРУЖНЫХ СТЕН
@
РАСТВОР УЖЕ СХВАТИЛСЯ
@
ЗАКАЗЧИК УЖЕ СТОИТ С МОНТИРОВКОЙ
Аноним 24/12/24 Втр 23:10:45 #453 №3349396 
>>3348596
> говнокодерство

Я так вижу, это как искуство
Аноним 24/12/24 Втр 23:11:45 #454 №3349398 
Научите раста ребят
Аноним 25/12/24 Срд 17:11:39 #455 №3349801 
>>3348405
Тебе отрежут половину функционала чтоб ты не смог засрать память.
Аноним 27/12/24 Птн 10:45:45 #456 №3350779 
Пиздес тут круговой самоотсос происходит, лишь бы не работать.
Аноним 27/12/24 Птн 10:50:33 #457 №3350786 
Вы че rust учите ради работы а не ради удовольствия?
Аноним 27/12/24 Птн 18:45:11 #458 №3351111 
>>3350786
Я учу Раст, чтобы не было стыдно на Страшном Суде.
Аноним 27/12/24 Птн 19:03:46 #459 №3351129 
Почему вы постоянно говорите "перепишут на раст", а не "перепишу"?
Аноним 28/12/24 Суб 19:31:36 #460 №3351842 
struct MySelf{
zaebalsya: Pizdets
}
https://youtu.be/ColQ4E1PBIg?si=jFF1LnxXFYpruh1L
Аноним 28/12/24 Суб 19:55:05 #461 №3351856 
>>3351842
Ты не растан что ли? Растан это когда ебут, а не когда ебёшь. Просто получай удовольствие, больше ничего не надо делать.
Аноним 28/12/24 Суб 20:34:03 #462 №3351886 
15398872343630.jpg
>>3347997
Пидораст и его анальную инфраструктуру создавали ноде-девелоперы, когда им пытаются объяснить что то что хорошо для скриптовых языков не катит в системных они затыкают уши и топоют, а когда сталкиваются с тем что сторонние библиотеки через каргу собирать невозможно устраивают видрил и бегут писать свой трехколесный лисопед. В ноде то и пипах всяких все модули в исходниках и всегда доступны в репозитории, а в этом дуратском системном программировании оказывается все не правильно (не по ихнему) устроено.

Дальше они сталкиваются с тем что системы сборки необязательно только код собирают, но и проверяют процессор на инструкции, пакуют картинки и шрифты и начинают прикручивать к карге миллион статических опций и возможность запускать предсборочный код аки скрипт надеясь таким образом заткнуть свой обсер, но в итоге все равно кучу всего нельзя, ту же двухпроходную компиляцию так и не могут придумать как присовокупить.
Аноним 28/12/24 Суб 20:38:07 #463 №3351893 
16533538805280.mp4
>>3351886
>видрил
Аноним 28/12/24 Суб 22:17:32 #464 №3351933 
>>3351886
Ты что сказать-то хотел?
Аноним 28/12/24 Суб 22:20:14 #465 №3351934 
>>3351933
Что пора переходить на zig
Аноним 29/12/24 Вск 00:03:14 #466 №3351952 
>>3351886
Ты вот всю эту шизофазию на ходу придумываешь?
Аноним 29/12/24 Вск 12:54:56 #467 №3352148 
1231253463.png
>>3351952
На сиду
Аноним 29/12/24 Вск 13:49:19 #468 №3352186 
>>3347997
>Чем вам Makefile не угодили?
Да ктож тебе мешает Makefile для раста использовать?
Берёшь и пишешь свою сборочку на Makefile, делов-то.
Ну придётся с флагами rustc повозиться немного, но оно ведь того стоит, правда же?

>>3351886
> раст и его анальную инфраструктуру
rustc + cargo + build.rs опционально

Тем временем системы сборки c/c++:
BSD Make
GNU Make (не перепутай с BSD Make - они разные!)
Autotools
CMake (ко-ко это генератор сборочных файлов а не система сборки пок-пок)
Bazel
Build2
dmake (их несколько разных лол)
FastBuild
Gradle (ухх бля jvm моя jvm)
MBS из Eclipse CDT
MSBuild
Ninja
NMake
PreMake
QMake
SCons
Tundra
tup
Waf
XMake
и пачка менее известных

И пакетные менеджеры:
apt/rpm/pacman/etc + pkgconfig
vcpkg
conan
hunter
XRepo
CPM
Nuget

Это всё гораздо лучше, чем cargo с build.rs, конечно. Стандарт у языка есть (но не всё в компилятора поддерживатеся лол), а оффициальных сборочной системы и пакетного менеджера нет.

У байтоёбов в embedded так вообще проект keil/stm32cube какой-нибудь и ебись с этим как хочешь. Хорошо что я это говно не трогаю с 2017.
Аноним 29/12/24 Вск 15:18:07 #469 №3352227 
>>3352186
>мейкфалики раст
А ты пробовал? Мне кажется, рустк транслируемые модули даже не хранит в виде рел-эльфов, и вообще всё сильно сложнее.
>уиии нету единых тулов
Ди нахуй пидор.
Аноним 29/12/24 Вск 16:06:01 #470 №3352245 
1735477558387.jpg
>>3352227
Не гори так, мань
Аноним 29/12/24 Вск 16:29:59 #471 №3352266 
>>3352245
У раста самое смешное что либа-то соберётся, но никаких гарантий что она будет работать нет, если это обёртка сишной либы. В то время как в крестах если собралось, то будет работать. А в расте потом сиди и гадай почему паника вылетает.
Аноним 29/12/24 Вск 16:48:19 #472 №3352279 
image-20230912112844-4.png
>>3352186
все эти системы сборки появляются не с проста, а потому что чего то нехватает либо что-то не устраивает в существовавших.

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

Например в том же mpv этот самый meason позволяет автовыбрать/ или задать вручную рендер, ffmpeg либо libav бакенд, отключить/включить js/lua скрипты в общем собрать так как тебе нужно, поскольку mpv не просто плеер для проигрывания, это мультимедия движок с api.

Что касается репозиториев, то ты перечисляешь общие репозитории исходных кодов из которых в том числе ты ставишь rustc, попробуй его поставить из карго, напишешь как успехи.
Аноним 29/12/24 Вск 18:12:47 #473 №3352371 
>>3352266
> если собралось, то будет работать
орево

>гадай почему паника вылетает
дебажить чем то кроме принтов так и не научился?
Аноним 29/12/24 Вск 18:34:58 #474 №3352397 
>>3352371
> орево
В крестах как минимум будет нормальная ошибка что не так, а не как в пидорасте паника и стектрейс из неоткуда.
> дебажить чем то кроме принтов так и не научился?
И как ты отдебажишь кривую линковку раста? Сегфолт получаешь и пиздуешь нахуй, пытаясь понять кто в штаны насрал.
Аноним 29/12/24 Вск 18:50:26 #475 №3352422 
>>3352279
>все эти системы сборки появляются не с проста, а потому что чего то нехватает либо что-то не устраивает в существовавших.
Да, в make/autotools/etc что-то не устраивало, поэтому запилили n+1make.
В cargo если чего-то не устраивает - пишут свои плагины для cargo, а не переписывают cargo

>От того что ты заберешь все системы сборки счастье во всем мире не настанет. Карго из себя представляет пикрелейтед, не самую популярную систему сборки использующуюся в основном в больших проектах. И угадай что? к ней дописали конфигуратор на питоне - meason.
Ты наркоман, meson а не meason

>Например в том же mpv этот самый meason позволяет автовыбрать/ или задать вручную рендер, ffmpeg либо libav бакенд, отключить/включить js/lua скрипты
В cargo этот делается через features

> в общем собрать так как тебе нужно
Если что-то не делается стандартной функциональносью cargo, это делается или плагинами, или скриптом build.rs

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

> из которых в том числе ты ставишь rustc, попробуй его поставить из карго, напишешь как успехи.
лол ну попробуй поставить meson из meson без meson, напишешь как успехи
Аноним 29/12/24 Вск 19:02:38 #476 №3352430 
>>3352397
> будет нормальная ошибка что не так
КРИЧУ

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

а какое отношение раст к линковке имеет?
sage[mailto:sage] Аноним 29/12/24 Вск 19:34:05 #477 №3352446 
>>3352371
>орево
орео
Аноним 30/12/24 Пнд 14:24:09 #478 №3352912 
>>3352430
Да в расте же нет линковки лол.
Аноним 30/12/24 Пнд 15:32:38 #479 №3352954 
>>3352397
>В крестах как минимум будет нормальная ошибка что не так,

>На найден символ _pidor_458953498753469857348957_____
Аноним 30/12/24 Пнд 17:00:53 #480 №3353014 
>>3352912
ухты, у раста свой линкер?
Аноним 01/01/25 Срд 01:05:32 #481 №3353787 
Поздравляю всех с новым годом!!!

Что б бороучеккер не обламывал билды.
Что б все скучное проходило блэйзинг фаст, а веселое было зерокост.
Аноним 01/01/25 Срд 12:24:39 #482 №3353882 
Спасибо Rust, узнал, что такое fluent interface. Пойду поем. Всех с Новым годом.
Аноним 01/01/25 Срд 22:20:23 #483 №3354181 
Бамп
Аноним 07/01/25 Втр 20:29:05 #484 №3357624 
newtype-september-2023-815662.jpg
Аноним 11/01/25 Суб 09:54:45 #485 №3359716 
>>3310716 (OP)
> языка, и программирования в целом
А ООП можно объяснить на расте? У него же вроде как нет классов как в других языках.
Аноним 11/01/25 Суб 11:26:11 #486 №3359760 
>>3359716
Что значит объяснить?

Вообще так как у раста предполагалась рантайм-библиотека для безопасности, очень странно что в нем не реализовано ООП.

Моя теория в том что пидорастеры вдохновлялись языком D где есть классы с полноценным наследованием при помощи рантайм библиотеки, но так же есть структуры-классы совместимые с C/C++. Но пидорастеры зачем то взяли хуи дрочены и попытались срезать пики точены, естественно рантайм при тако м раскладе нахуй не нужон, он ничего не дает только раздувает и замедляет программы рантайм-проверками.
Опять таки скорее всего дело в том что им нужен был язык для быстрого обхода деревьев, если ты когда нибудь работал с плюсовыми xml библиотеками то там как правило очень много поинтеров каких то вложений и очень плохо это все ложится на ООП. Вот они и не стали его делать.
Аноним 11/01/25 Суб 12:01:29 #487 №3359773 
>>3359716
Только наследования нет, но большинство абстракций с помощью трейтов ака полиморфизм реализовать можешь
Аноним 11/01/25 Суб 12:32:04 #488 №3359789 
>>3359716
ООП - игрушка дьявола. Но в принципе тебе никто не запретит собрать виртуальную таблицу руками.
Аноним 11/01/25 Суб 13:05:41 #489 №3359809 
>>3359789
У раста есть динамическая диспетчеризазия и втейбл

https://users.rust-lang.org/t/v-tables-differences-between-rust-and-c/92445
Аноним 11/01/25 Суб 13:09:32 #490 №3359811 
>>3359760
Ну прикрутишь ты библиотеку, а с точки зрения семантики языка куда ты их засунешь, в жопу себе? В чем странность, если даже базовые операции типа сравнения на типажах построены?
Аноним 11/01/25 Суб 13:28:47 #491 №3359832 
>>3359760
>>3359773
>>3359789
А как на расте вообще архитектуру выстраивают? Как вообще на нем прикоадной код строить? ООП с классами - это база. Без этого всего можео было бы и на голых сях писать, но это же геморрой.
Аноним 11/01/25 Суб 13:34:46 #492 №3359836 
>>3359832
Как на чистой сишке архитектуру выстраивают https://en.wikipedia.org/wiki/Linux_kernel
As of 2021, the 5.11 release of the Linux kernel had around 30.34 million lines of code.
Аноним 11/01/25 Суб 13:44:53 #493 №3359847 
>>3359836
Тебя спрашивают про прикладное ПО
Аноним 11/01/25 Суб 13:50:40 #494 №3359851 
>>3359847
А какая разница с точки зрения архитектуры? Ну на держи https://docs.gimp.org/2.8/da/gimp-introduction-history-2-0.html
First, a statistic: the GIMP code base contains about 230,000 lines of C code, and most of these lines were rewritten in the evolution from 1.2 to 2.0
Аноним 11/01/25 Суб 14:28:59 #495 №3359882 
>>3359851
Сравнил хуй с батареей, даже не знаю что тебе ответить на твою хуйню.

гимп использует тулкит gtk, основной язык там Си и там именно что имитируется ООП https://docs.gtk.org/gtk4/method.Button.set_can_shrink.html

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

Ну а чем Си имитирующий UI объекты и их методы похож с архитектуру ядра это уже ты сам со своей мешаниной в голове разбирайся.
Аноним 11/01/25 Суб 14:48:22 #496 №3359901 
>>3359836
Никак. На голой сишке сейчас ничего крупного не пишется.
Аноним 11/01/25 Суб 15:00:23 #497 №3359910 
>>3359882
Причем здесь жтк если речь о жимпе? Жимп только из окошечек с кнопками состоит, а не алгосов для перегонки пикселей? Жтк архитектуру жимпа задает?
И зачем ты тему в десктопный гуй скатил? Какой нах гуй в 2025. Кто бы говорил о каше в голове...
Аноним 11/01/25 Суб 15:04:17 #498 №3359918 
>>3359901
А речь не о чудо сишке, а о том что как будто нельзя что-то мощное без синглтоов абстрактных фабрик написать.
Аноним 11/01/25 Суб 15:17:26 #499 №3359929 
>>3359910
Что-то понятное и хорошо масштабируемое? Нельзя. ООП - это стандарт индустрии. Абстрактные фабрики синглтонов необязательны, есть средства проще и выразительнее, но они так или иначе приурочены к объектам.
З.Ы. А тут вообще кто-то работает на расте или все только вкатываются? Как на реальных проектах это все строится?
Аноним 11/01/25 Суб 15:18:12 #500 №3359930 
>>3359929 сюды >>3359918
Аноним 11/01/25 Суб 15:44:41 #501 №3359939 
>>3359832
Я понимаю что ты просто в ахуй упадешь с моего ответа, но в Гугле, в чужих сорскх смотреть пробовал?
Я понимаю что ты нубик и в программировании ещё не очень, но для этого и создали чатгпт, поисковики и гитхаб

Смотри, читай, изучай

> Как писать архитектуру
Да все теже самые принципы солид, по них тоже почитай, пригодятся в будущем
Аноним 11/01/25 Суб 15:46:02 #502 №3359940 
Screenshot20250111163526.png
Screenshot20250111164154.png
Screenshot20250111164540.png
Поможите плиз, чёт я не вдупляю, где я обосрался.

1) Пробовал move добавлять - не сработало.
2) Пробовал lifetime'ы добавлять - не помогло.
3) Пробовал клонировать - говорит borrowed data escapes outside of method `tag_name` escapes the method body here.

tag_name вначале передаётся в функцию, а потом попадает внутрь closure где уже помирает. Что делать?
Аноним 11/01/25 Суб 15:51:39 #503 №3359941 
>>3359940
Нейронка тоже на этом обосралась, пробовал gpt-4o/claude 3.5 sonnet.
Аноним 11/01/25 Суб 16:23:50 #504 №3359961 
>>3359940>>3359941
Кажется я начинаю понимать для чего раст изобрели.
Для того что бы выявлять ебанутых макак еще на этапах компиляции.

Хотя впрочем мне он не из за этого не нравится, а из за системы сборки. zig мне глубоко симпатичен.
Аноним 11/01/25 Суб 16:26:25 #505 №3359964 
>>3359929
>ООП - это стандарт индустрии
ООП как описывается евангелистами - неработающая хуйня, которая делает код запутаннее, крадёт такты и жрёт память. И плодит баги.
От наследования в новых проектах и языках просто отказываются. Инкапсуляция работает только на уровне абстрактных конструкций типа хешмапы, а бизнес-логика в какой-то момент заставит какую угодно стройную архитектуру поломать, и, собственно, а зачем изначально выёбываться? А вот отказавшись от ООП мы обнаруживаем, что резко ушли проблемы, которые решает ООП. Удивительное совпадение. В общем, слушай базу:
https://www.youtube.com/watch?v=QM1iUe6IofM
>>3359832
>А как на расте вообще архитектуру выстраивают?
Анализируешь данные, с которыми работаешь и раскладываешь их в памяти так, чтобы к ним было удобно обращаться и модифицировать. В итоге должно будет получиться что-то вроде im-memory реляционной базы данных. Точно также минимизируешь избыточность, строишь индексы, делаешь сжатие, и т.д.

>>3359940
Судя по ошибке, MissingRequiredTag требует &'static str. Если код твой, то просто замени на String.
Аноним 11/01/25 Суб 16:51:35 #506 №3359988 
>>3359964
>ООП - неработающая хуйня, которая делает код запутаннее, крадёт такты и жрёт память. И плодит баги.
>раскладываешь их в памяти так, чтобы к ним было удобно обращаться и модифицировать.

а приватные данные записываешь с черточкой
struct { i32 _a, _b; }
а безопасное чтение/запись оргаybpetim через функции
fn get_value(self)
fn set_value(self, ..)
а виртуальные функции поинтером
...

бля чет хуйня получилось, давай мишаня private static virtual к структуре добавим

И так это по кругу продолжается 10летиями
Аноним 11/01/25 Суб 19:37:26 #507 №3360093 
>>3359988
>а приватные данные
Зачем? В SQL есть столбцы, которые мы запрещаем себе джойнить по рандомным причинам?
>виртуальные функции
Зачем, если у тебя нет наследования бизнес-логике?
Аноним 11/01/25 Суб 19:43:55 #508 №3360097 
>>3360093
>Зачем, если у тебя нет наследования бизнес-логике?
В универе ещё до полиморфизма не дошли?
Аноним 11/01/25 Суб 19:57:34 #509 №3360117 
>>3360097
Прочитай оба моих поста в одном контексте.
Аноним 11/01/25 Суб 22:15:20 #510 №3360182 
>>3360093
>В SQL есть столбцы
Че? SQL это язык если что. Язык на котором пишут запросы к БД
Аноним 11/01/25 Суб 22:17:34 #511 №3360183 
>>3360117
Я понял, ты шизик с чатом жпт вместо мозга

Не пиши сюда больше от тебя говной воняет
Аноним 11/01/25 Суб 23:10:22 #512 №3360193 
>>3360182
И этот язык работает с таблицами и столбцами.
>>3360183
Когда-нибудь ты устроишься на работу и прозреешь, сын мой.
Аноним 13/01/25 Пнд 13:55:37 #513 №3361058 
>>3359964
> The irony of this video is most people watching it are just going to be better at OOP by the end of it.
Kek, уноси.
Аноним 13/01/25 Пнд 18:10:08 #514 №3361359 
handy cargo tools.mp4
Аноним 14/01/25 Втр 01:31:35 #515 №3361615 
Аноны, пишу небольшой бэк на Rocket, нужно прочитать форму (multipart/form-data) с 2 полями, одно поле это файл (изображение), второе поле - текстовое (название для изображения). Файлы могут быть большими, до 15мб поэтому юзать TempFile совсем не хотелось бы. Какие есть подходящие инструменты для того что бы прочитать форму потоком, затем её распарсить и извлечь все нужные данные?
Аноним 14/01/25 Втр 18:44:35 #516 №3362202 
rust.png
+----------------------------------------------------+
| You made it to the Fe-nish line! |
+----------------------------------------------------+
Аноним 15/01/25 Срд 23:32:55 #517 №3363272 
8e917ade946db5e619f1ba60ae5113d61caefd1fhigh.webp
Для новичка в 2025 Раст или Плюсы?
Аноним 16/01/25 Чтв 00:07:00 #518 №3363288 
>>3363272
Я бы взял то что с плюсами, нахуй нужен раст со сплошными минусами.
Аноним 16/01/25 Чтв 18:59:32 #519 №3363981 
>>3363272
Для чего тебе?
Аноним 17/01/25 Птн 12:38:29 #520 №3364486 
image.png
жаль плюсовиков, скоро им кранты
Аноним 18/01/25 Суб 20:15:28 #521 №3365846 
>>3359940
>must outlive static
Вот что это вообще должно значить? Как можно оутливнуть статик который живёт сколько живёт программа?
Аноним 18/01/25 Суб 21:11:57 #522 №3365888 
>>3365846
Что вы шизики передаете стековый указатель (ссылку) на переменную строки которая перестанет существовать на момент когда этот Error дойдет до обработчика.

Таким образом жизнь показывает что даже в расте без мозгов будет говнокод.
Аноним 18/01/25 Суб 21:14:27 #523 №3365889 
>>3365888
Блядь, сука, лично я ничего никому не передаю. Я спросил про ебанутую формулировку ебаной ошибки компиляции.
Аноним 18/01/25 Суб 21:24:07 #524 №3365900 
>>3365889
Передаешь, сука, в сердце своем передаешь, покайся.

В любом случае не нужно использовать ссылки там где не предполагается записи по ней, не надо думать что это что то там экономит и общегчает, наоборот это усложняет работу компилятора.
Аноним 18/01/25 Суб 21:26:08 #525 №3365904 
>>3365900
>Передаешь, сука, в сердце своем передаешь, покайся.
Тише, не хрюкай.
>В любом случае не нужно использовать ссылки там где не предполагается записи по ней
Ебанутый что ли? Если у меня структура на треть килобайта ты предлагаешь мне всякий раз её клонировать?
Аноним 18/01/25 Суб 21:43:05 #526 №3365915 
>>3365904
Разговор вообще то про строки был, а в таких случаях как у тебя тогда аргумент функции лучше помечать константой. Но оно не поможет в случае как выше.
Аноним 19/01/25 Вск 10:00:37 #527 №3366176 
>>3365888
>даже в расте без мозгов будет говнокод
Так не компилируется же.
Аноним 19/01/25 Вск 10:34:36 #528 №3366182 
>>3366176
Так он свободно тыкал ссылку, пока не наткнулся на ситуацию когда компилятор не увидел что ссылка перестанет жить, gcc при таких явных проебах тоже ругается, разница только в том что тут (в расте) компилятор научили крутить вертеть эти свои анал-изеры в рантайме с приемлимой скоростью и тем самым избавиться от статических анализаторов которые по сути костыль, который одобные ошибки отловить не способен.
Аноним 21/01/25 Втр 16:44:55 #529 №3368238 
Слышали что Трамп начал бороться с траподебилами? Знаете что это значит? РАСТ - ВСЁ. Нет финансирования ЛГБАБДТВД, нет и языка программирования Раст.

Все просто.
Аноним 21/01/25 Втр 16:53:28 #530 №3368254 
>>3368238
Я медленно снимаю полосатые чулочки с неко-ушками и быстро залезаю в милитари-штаны и надеваю бейсболку с надписью MAGA. Я патриот, я за великую Америку, я за безопасность!
Мне платили и будут платить гуглы с майкрософтами, а теперь ещё и оборонка получит больше бюджетов и спустит всё на меня.
Хули ты мне теперь сделаешь, а?
Аноним 21/01/25 Втр 17:03:07 #531 №3368266 
>>3368254
Тебе платят только пенсию по шизе и твой сутенёр, чулочница.
Аноним 21/01/25 Втр 20:46:21 #532 №3368464 
>>3368238
Полониус пишет какой-то немец\ка\ко. Если не засорокодинится, то живём.
Аноним 24/01/25 Птн 08:28:42 #533 №3370638 
Как дела с abi обстоят? Какие то подвижки вобще идут?
Аноним 24/01/25 Птн 14:12:20 #534 №3370877 
>>3370638
Пока у тебя нет даже гарантии, что две одинаковые структуры с одинаковыми полями будут совместимы без repr(C). Задача низкоприоритетная.
Аноним 25/01/25 Суб 04:42:59 #535 №3371584 
https://www.youtube.com/watch?v=1Di8X2vRNRE

выписан из подсосов?
Аноним 25/01/25 Суб 04:49:05 #536 №3371587 
>>3346245
ну блядь логические ошибки мы оставляем за скобками как хуй за твоей щекой
Аноним 25/01/25 Суб 11:24:55 #537 №3371734 
>>3371584
Да. Я как подпивас выкатился из крестов в раст просто потому что в крестах ебёшься с компилятором, а не с кодом. На все недостатки раста похую, когда крестовый проект в одном окружении работает, в другом выдаёт сотню ошибок компиляции и попробуй догадаться что не так.
Недавно только ебался с симейком и кожанной кудой. При запуске сборки из вс-кода он не видит куду, как только не ебался, если из консольки запустить - без проблем находит куду из CUDA_PATH. При самой сборке первый раз ptx.exe залупа компилирующая ptx-байткод куды в машинный ловит сегфолт в 12.4 и 12.6 одинаково падает, при повторной попытке сборки собирается, и так каждый раз надо два раза прожимать сборку на любых перекомпиляциях. Я ебал, час потратил чтоб заставить это говно компилироваться.
Аноним 25/01/25 Суб 13:09:02 #538 №3371808 
OrenoImoutogaKonnaniKawaiiWakegaNai-ep06071.jpg
>>3371734
>Спермораб не разбирающийся в окружении либимой шинды пытается на ощупь что то собирать

А потом этот чепуш бегает тут срет про прыщи.

Операционные системы уебывай осваивать в /s/ здесь раздел про программирование.
Аноним 25/01/25 Суб 13:21:15 #539 №3371810 
> нерелейтед аниме
такое мы авто скрываем и не читаем
Аноним 25/01/25 Суб 13:43:46 #540 №3371826 
>>3371810
А какое аниме считается релейтед в растотреде?
Аноним 25/01/25 Суб 15:06:12 #541 №3371883 
>>3371826
никакое
Аноним 25/01/25 Суб 15:35:58 #542 №3371912 
>>3371826
радужные пони или инклюзивный лагерь-лагерь
Аноним 25/01/25 Суб 16:59:47 #543 №3371973 
>>3371734
Хуангораб должен страдать. Хотя драйвер Радеонов лет десять назад творил хуйню, если в кернеле был хотя бы один протекший регистр.
Аноним 25/01/25 Суб 17:56:23 #544 №3372020 
>>3310716 (OP)
https://2ch.hk/pr/res/3371041.html#3371041
ПЕРЕКАТ!!!
Аноним 26/01/25 Вск 08:31:44 #545 №3372404 
>>3346323
Сисярпер, в стойло.
Аноним 08/03/25 Суб 11:39:00 #546 №3404247 
Нужно писать новый проект и хотел на плюсах его писать, но что-то в последнее время часто натыкаюсь на статьи, что все проблемы в мире из-за того, что С++ не memory safe. Из-за чего появился вопрос почему Rust не взлетел? И верите ли вы в Carbon от гугла?
Аноним 14/03/25 Птн 23:13:56 #547 №3408964 
image.png
>>3310768
comments powered by Disqus