The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Выпуск Rust 1.90. Инструментарий для создания Windows-драйверов на Rust

18.09.2025 22:48

Опубликован релиз языка программирования Rust 1.90, основанного проектом Mozilla, но ныне развиваемого под покровительством независимой некоммерческой организации Rust Foundation. Язык сфокусирован на безопасной работе с памятью и предоставляет средства для достижения высокого параллелизма выполнения заданий, при этом обходясь без использования сборщика мусора и runtime (runtime сводится к базовой инициализации и сопровождению стандартной библиотеки).

Методы работы с памятью в Rust избавляют разработчика от ошибок при манипулировании указателями и защищают от проблем, возникающих из-за низкоуровневой работы с памятью, таких как обращение к области памяти после её освобождения, разыменование нулевых указателей, выход за границы буфера и т.п. Для распространения библиотек, обеспечения сборки и управления зависимостями проектом развивается пакетный менеджер Cargo. Для размещения библиотек поддерживается репозиторий crates.io.

Безопасная работа с памятью обеспечивается в Rust во время компиляции через проверку ссылок, отслеживание владения объектами, учёт времени жизни объектов (области видимости) и оценку корректности доступа к памяти во время выполнения кода. Rust также предоставляет средства для защиты от целочисленных переполнений, требует обязательной инициализации значений переменных перед использованием, лучше обрабатывает ошибки в стандартной библиотеке, применяет концепцию неизменяемости (immutable) ссылок и переменных по умолчанию, предлагает сильную статическую типизацию для минимизации логических ошибок.

Основные новшества:

  • В Linux на компьютерах с архитектурой x86_64 для динамического связывания crate-пакетов по умолчанию задействован компоновщик LLD от проекта LLVM. Применение LLD по сравнению с компоновщиком BFD привело к повышению производительности связывания больших исполняемых файлов и проектов с большим объёмом отладочной информации, а также ускорению инкрементальной пересборки. В большинстве случаев LLD обратно совместим с BFD. В случае возникновения проблем можно вернуть BFD, указав в переменной окружения RUSTFLAGS флаг "-C linker-features=-lld" или добавив в файл конфигурации .cargo/config.toml:
    
       [target.x86_64-unknown-linux-gnu]
       rustflags = ["-Clinker-features=-lld"]
    
  • В пакетном менеджере cargo в команде "publish" реализована опция "--workspace", позволяющая автоматически опубликовать все пакеты из выбранного рабочего пространства (набор пакетов, использующий один файл Cargo.lock и общий каталог результатов сборки), сохраняя порядок следования пакетов и учитывая зависимости между ними.
  • В разряд стабильных переведена новая порция API, в том числе стабилизированы методы и реализации типажей:
  • Признак "const" применён в функциях:
  • Для целевых платформ на базе библиотеки Musl, находящихся на третьем уровне поддержки, включено по умолчанию динамическое связывание: mips64-unknown-linux-muslabi64, powerpc64-unknown-linux-musl, powerpc-unknown-linux-musl, powerpc-unknown-linux-muslspe, riscv32gc-unknown-linux-musl, s390x-unknown-linux-musl и thumbv7neon-unknown-linux-musleabihf.
  • Целевая платформа "x86_64-apple-darwin" переведена с первого уровня поддержки на второй (Apple планирует прекратить поддержку архитектуры x86_64). Первый уровень поддержки подразумевает формирование бинарных сборок, проведение досконального тестирования и предоставление наивысшей гарантии поддержки платформы - каждое изменение в компиляторе проверяется выполнением полного тестового набора. Второй уровень поддержки подразумевает гарантию сборки, но отсутствие гарантий при прохождении тестового набора.

Дополнительно можно отметить развитие компанией Micrоsoft инструментария для разработки Windows-драйверов на языке Rust. На GitHub уже размещён набор crate-пакетов для создания драйверов на базе WDM (Windows Driver Kit), KMDF (Kernel-Mode Driver Framework) и UMDF (User-Mode Driver Framework), а также сервисов Win32, пригодных для использования в Windows 11. Целью проекта называется предоставление для разработчиков на языке Rust библиотек и функций, аналогичных тем, что предлагаются в инструментарии WDK для разработчиков драйверов на языке Си. На текущем этапе инструментарий разработки драйверов на Rust использует большое число unsafe-вызовов при взаимодействии с подсистемами Windows, но в дальнейшем планируется подготовить безопасные абстракции для структур ядра и DDI (Device Driver Interface). Наработки проекта распространяются под лицензиями MIT и Apache 2.0.

  1. Главная ссылка к новости (https://blog.rust-lang.org/202...)
  2. OpenNews: Выпуск Rust 1.89. Около 8% src-пакетов в Debian Sid завязаны на Rust
  3. OpenNews: Фишинг-атака на разработчиков пакетов на языке Rust
  4. OpenNews: Организация Rust Foundation запустила инициативу Rust Innovation Lab
  5. OpenNews: Компания Vivo открыла код ядра BlueOS, написанного на языке Rust
  6. OpenNews: Операционная система Munal и утилита rsched на Rust
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/63906-rust
Ключевые слова: rust
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (134) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, аноним2 (?), 23:19, 18/09/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    как его собрать с помощью gcc?
     
     
  • 2.3, Аноним (3), 23:37, 18/09/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    его даже llvm не собрать вечно
     
     
  • 3.12, 12yoexpert (ok), 00:30, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • –3 +/
    его-то собрать, но как раз вечно, потому что из-за постоянного ломания обратной совместимости приходится держать 2-3 версии этого дерьма в системе

    когда его уже выкинут из ff и ещё чего-то там зависимого

     
     
  • 4.43, Прохожий (??), 07:41, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Если вы одержимы процессом постоянной сборки (пересборки), то причём здесь Rust? Это я так мягко намекаю, что проблема не в нём, а у вас в голове.
     
     
  • 5.47, Аноним (47), 08:08, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    При том, что монстровидный.
     
     
  • 6.213, Прохожий (??), 17:20, 20/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Ещё раз, поскольку с первого раза, видимо, не дошло. Вас кто-то заставляет исходники компилировать?
     
  • 4.48, Аноним (48), 08:15, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > из-за постоянного ломания обратной совместимости приходится держать 2-3 версии этого дерьма

    Что ж ты так нагло врешь? В Расте не ломается ОБРАТНАЯ совместимость: последняя версия компилятора собирает код всех предыдущих версий.

     
     
  • 5.52, Прохожий (??), 08:23, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Да это тролль местный.
     
  • 5.79, Аноним (3), 09:53, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >> из-за постоянного ломания обратной совместимости приходится держать 2-3 версии этого дерьма
    > Что ж ты так нагло врешь? В Расте не ломается ОБРАТНАЯ совместимость:
    > последняя версия компилятора собирает код всех предыдущих версий.

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

     
  • 5.82, Аноним (82), 09:55, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    https://forums.gentoo.org/viewtopic-t-1173283.html
    Ты НИКОГДА не собирал раст с исходников.
     
     
  • 6.83, Аноним (3), 10:08, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > https://forums.gentoo.org/viewtopic-t-1173283.html
    > Ты НИКОГДА не собирал раст с исходников.

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

     
     
  • 7.135, Аноним (135), 13:14, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >У го емнип похожая ситуация -- тебе приходится полагаться на бутстрап с бинарного кода из интернета.

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

    Кстати, чтобы собрать gcc, вам тоже нужен уже готовый сишный компилятор.

     
     
  • 8.159, Аноним (159), 15:48, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Там развёртка начинается с компилятора Си на лиспе, емнип ... текст свёрнут, показать
     
  • 6.118, Аноним (118), 12:34, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > https://forums.gentoo.org
    > Ты НИКОГДА не собирал раст с исходников

    Ну да, я же не гентушник. 🤣

     
  • 6.121, Аноним (-), 12:37, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > gentoo.org

    О, типичные прдлико-проблемы.
    А просто взять бинарник dev-lang/rust-bin как это написано в мануале нельзя?
    gentoo.org/wiki/Rust#Development

     
  • 6.136, Аноним (135), 13:19, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Любители собирать софт из исходников по этой же логике должны ненавидеть кучу др... большой текст свёрнут, показать
     
     
  • 7.168, Аноним (159), 16:50, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    И? К чему вы вообще это написали? Нить потеряли? Речь шла про самораскручивание компилятора.
     
  • 6.141, freehck (ok), 13:25, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > https://forums.gentoo.org/viewtopic-t-1173283.html
    > Ты НИКОГДА не собирал раст с исходников.

    Вообще, по ссылке виден нормальный бутстрап компилятора. Они сохраняют обратную совместимость только между соседними версиями: т.е. для сборки 1.80 нужен 1.79, для него нужен 1.78, итд. То, что в source-based роллинг-дистрибутиве это приводит к последовательной сборке всех версий компилятора подряд -- закономерное следствие. Со стороны это конечно может показаться чем-то из ряда вон, но поверьте: если вы гентушник -- это не просто не проблема, это нормально и вообще фича.

     
     
  • 7.211, Fracta1L (ok), 15:22, 20/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Я гентушник и это проблема, поэтому я избегаю компилить всякую жирноту типа Firefox и Webkit. Либо ставлю -bin пакет, либо вообще из флатпака.

    Впрочем, не так страшен чёрт, как его малюют - тот же llvm собирается у меня всего за 20 минут, и это на половине потоков ЦП.

     
     
  • 8.215, freehck (ok), 18:14, 20/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Так может ты на самом деле не хочешь быть гентушником ... текст свёрнут, показать
     
     
  • 9.220, Fracta1L (ok), 19:46, 20/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Нет, я просто не хочу собирать всё подряд ... текст свёрнут, показать
     
     
  • 10.221, freehck (ok), 20:19, 20/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    По преданию, именно после этих слов Ян Мёрдок создал Debian ... текст свёрнут, показать
     
     
  • 11.231, Fracta1L (ok), 11:10, 23/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Жаль конепчно что он не создал нормальный дистриб вместо дебиана... текст свёрнут, показать
     
  • 6.152, Аноним (152), 15:15, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Ты НИКОГДА не собирал раст с исходников.

    Я бы сказал: В скором времени ты Никогда не соберешь раст. Вот цитаты из вашей ссылки:"Rust can build from one version to the next.", "needs all rust versions !"

     
     
  • 7.214, Прохожий (??), 17:26, 20/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >Я бы сказал

    Иной раз лучше молчать. Нужна версия 1.90 - берёте готовую,уже собранную кем-то для вас, версию 1.89. Хотя не понимаю этого бесполезного времяпрепровождения по самостоятельной сборке компилятора. Чтобы какой цели достичь?

     
     
  • 8.222, freehck (ok), 20:22, 20/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Если отвечать на этот вопрос, то неминуемо по индукции последует и более общий ... текст свёрнут, показать
     
  • 4.170, Аноним (-), 16:53, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > его-то собрать, но как раз вечно, потому что из-за постоянного ломания
    > обратной совместимости приходится держать 2-3 версии этого дерьма в системе

    Да и в целом LLVM это пример корпоративного монстра в хучшем виде. Какой гений допер вообще ВСЮ кодогенерацию ВСЕХ платформ затолкать в ОДНУ убер-либу - это вообще отдельный вопрос. Поэтому оно обречено пухнуть и уже распухло до ~100 мегов. Нормальная такая шаред либа. По моему более крупных в моей системе просто нет.

     
     
  • 5.173, Аноним (-), 17:15, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Да и в целом LLVM это пример корпоративного монстра в хучшем виде.

    Спорное утверждение)

    > Какой гений допер вообще ВСЮ кодогенерацию ВСЕХ платформ затолкать в ОДНУ убер-либу - это вообще отдельный вопрос.

    Это лучше чем потом попадать в ситуацию "нужно исправить баг в 10 либах и проверить чтобы ничего не потерялось".

    > Поэтому оно обречено пухнуть и уже распухло до ~100 мегов. Нормальная такая шаред либа. По моему более крупных в моей системе просто нет.

    И? 100 метров это непосильно для билд машины?
    Ты же не на коре2duo будешь собирать.

     
  • 5.175, Аноним (175), 17:36, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > уже распухло до ~100 мегов

    О боже, какая драма, библиотека для решения отнюдь не тривиальной задачи весит как средний видосик твоей любимой тиктокерши! Ну не качай, посмотри лучше как она танцует.

     
  • 2.23, Kerr (ok), 01:06, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    GCC точно умеет компилировать код на RUST:
    https://archlinux.org/packages/core/x86_64/gcc-rust
     
     
  • 3.34, 12yoexpert (ok), 07:07, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    ну так иди собери им ff, потом расскажешь
     
     
  • 4.35, Kerr (ok), 07:10, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • –3 +/
    В FFmpeg точно нет кода на RUST. При чём здесь это?
     
     
  • 5.37, 12yoexpert (ok), 07:16, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    ты ошибся новостью
     
     
  • 6.38, Kerr (ok), 07:17, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • –2 +/
    FF - это всё таки имелось ввиду Firefox, а не FFmpeg?
     
  • 5.39, Минона (ok), 07:20, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    FF это FireFox.
     
     
  • 6.74, 12yoexpert (ok), 09:48, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    он знает
     
  • 4.36, 12yoexpert (ok), 07:11, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    и thunderbird
     
  • 3.106, Аноним (106), 12:16, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Пока что ещё не умеет, а только учится.
     
  • 2.60, laindono (ok), 09:00, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Встречный вопрос. Есть ли дистры, которые избавились от gcc?
     
     
  • 3.84, Минона (ok), 10:09, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Встречный вопрос. Есть ли дистры, которые избавились от gcc?

    FreeBSD.

     
     
  • 4.183, Аноним (3), 18:08, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >> Встречный вопрос. Есть ли дистры, которые избавились от gcc?
    > FreeBSD.

    А OpenMandriva чё?

     
     
  • 5.228, Минона (ok), 07:14, 22/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >>> Встречный вопрос. Есть ли дистры, которые избавились от gcc?
    >> FreeBSD.
    > А OpenMandriva чё?

    А чё OpenMandriva?

     
     
  • 6.229, Аноним (3), 08:49, 22/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Не избавилась? Она так забавно по всем бенчмаркам просела сразу.
     

     ....большая нить свёрнута, показать (42)

  • 1.2, Аноним (2), 23:21, 18/09/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    Хорошая новость, но мы на nightly.
     
  • 1.4, Аноним (4), 23:41, 18/09/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +6 +/
    > для динамического связывания crate-пакетов по умолчанию задействован компоновщик LLD от проекта LLVM.

    Этот компоновщик написан на C++, не безопасно же.

     
     
  • 2.6, Аноним (6), 23:50, 18/09/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Когда ты уже поймешь что никакой безопасности не существует. А раст это маркетинговый продукт.
     
     
  • 3.11, Аноним (4), 00:27, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    https://ru.wikipedia.org/wiki/%D0%A1%D0%B0%D1%80
     
  • 3.76, Аноним (76), 09:49, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >А раст это маркетинговый продукт.

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

     
  • 2.30, анон (?), 06:30, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > не безопасно же

    вот и не используй

     

  • 1.7, Аноним (7), 23:58, 18/09/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Лично мне не нравится когда средство разработки предоставляются как услуга (Compiler as a Service). Мне, когда приобретёшь продукт - то он твой полностью. Представьте что вы купили холодильник, который через интернет контролируется производителем. Вы никогда не будете уверены будет ли работать этот холодильник завтра.

    А у этого Rust'а стандартный фреймворк находится на централизированном (единственном) хранилище. Конечно, можно сделать частичную локальную копию этого хранилища, но, извините меня, откуда в него вы будете скачиваются крейты? Из центрального, конечно. Который может быть заблокирован.
    То же и централизированное хранение документации на крейты (docs.rs)

     
     
  • 2.8, Витюшка (?), 00:02, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    А репозиторий gcc заблокирован быть не может?
     
  • 2.16, morphe (?), 00:43, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > А у этого Rust'а стандартный фреймворк находится на централизированном (единственном) хранилище

    Что есть стандартный фреймворк? Репозиторий cargo не используется пока ты его не используешь, оттуда ничего по дефолту не качает.

     
     
  • 3.139, freecoder (ok), 13:23, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Это бесполезно объяснять. Одно и то же, под каждой новостью о Rust.
     
  • 2.20, Аноним (20), 00:53, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Такое нынче модно - жизнь по подписке и вендорлок - массы такое схавают и будут просить еще. И корпорации и всякие фонды только рады.
     
  • 2.26, Аноним (26), 05:43, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • –3 +/
    > Представьте что вы купили холодильник, который через интернет контролируется производителем. Вы никогда не будете уверены будет ли работать этот холодильник завтра.

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

     
  • 2.29, Аноним (-), 06:20, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Бред Компилятор скачивается и работает локально Ты ничего не покупаешь - весь ... большой текст свёрнут, показать
     
  • 2.134, Аноним (135), 13:10, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >Конечно, можно сделать частичную локальную копию этого хранилища, но, извините меня, откуда в него вы будете скачиваются крейты? Из центрального, конечно.

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

     
     
  • 3.140, freecoder (ok), 13:24, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Исходники зависимостей и так качаются самим cargo и кладутся в локальный репозиторий.
     

  • 1.10, 12yoexpert (ok), 00:26, 19/09/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    > rustflags = ["-Clinker-features=-lld"]

    господи, какой же треш. вот просто каждый символ здесь - эталон вырвиглазного бардака

     
     
  • 2.21, Аноним (21), 00:53, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Так специально что бы не пользовались этим....
     
  • 2.22, morphe (?), 00:53, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ты до Rust части не дошёл, это toml обычный ещё...
     
     
  • 3.31, 12yoexpert (ok), 06:44, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    то, что в кавычках, - тоже toml?
    на раст-код я боюсь смотреть, уже как-то пробовал
     
     
  • 4.69, laindono (ok), 09:19, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Внутри кавычек обычный синтаксис аргументов. -С затем linker-features=-lld. Очевидно, что в данном случае -ldd передаётся дальше как опция для следующего уровня процесса компиляции. Возможно тебе несколько непривычно, что одна программа может вызывать другую и иногда нужно иметь способ протащить аргументы на следующий уровень.

    Если ты считаешь этот синтаксис плохим, то предложи замену, которая не будет выглядеть странно в глазах типичного *nix-пользователя. Только для того, чтоб что-то поменять, тебе придётся предложение пропихивать в стандарт POSIX раздел 12.

     
  • 4.125, morphe (?), 12:46, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    В кавычках передача аргументов, которая не хуже gccшного

    "-Wl,-Map,output.map" (да, это один аргумент для gcc)

    Что и требовалось доказать, местные критики Rust даже на сях ничего внятного не писали

     
     
  • 5.128, Аноним (-), 12:52, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > В кавычках передача аргументов, которая не хуже gccшного

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

     
  • 4.144, Аноним (135), 13:33, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >то, что в кавычках, - тоже toml?

    Типичный ыксперд. Зато про makefile, с кучей приблуд сверху, типа cmake - ни слова.

     
  • 2.53, Аноним (48), 08:23, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • +5 +/
    >> rustflags = ["-Clinker-features=-lld"]
    > каждый символ здесь - эталон вырвиглазного бардака

    Что, прямо каждый символ? Тут какой-то особый ACII - не такой, как в C++?

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

    Вобщем, слабенько набрасываешь. Впрочем, как и всегда...

     
     
  • 3.80, 12yoexpert (ok), 09:53, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Вобщем, слабенько набрасываешь

    нормально, ты вон сколько желчи выдал

     
  • 3.90, bOOster (ok), 11:07, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Слабенько? Зато ты кучу вон навалил и в ней еще и перемазался, да еще и пообедал видимо..

    C++ шаблоны хочешь пользуй, хочешь нет. А вот с синтаксисом RUST данный номер не пройдет.

     
     
  • 4.145, Советский инженер (ok), 14:09, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > C++ шаблоны хочешь пользуй, хочешь нет.

    Если ты пишеш на С++ без шаблонов, есть 2 варианта:
    1 - ты пишеш на С (без ++)
    2 - это хелоуворд

     
     
  • 5.158, их как в кефире (?), 15:43, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Какой какой ворд?
     
     
  • 6.181, Советский инженер (ok), 18:00, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Какой какой ворд?

    хелоу, хелоуворд

     
     
  • 7.185, Аноним (185), 18:34, 19/09/2025 Скрыто ботом-модератором     [к модератору]
  • +1 +/
     
  • 7.186, Аноним (152), 18:38, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    хеловорд - это приветственное Слово.
    хеловорЛд - это "привет, мир".
     
  • 5.177, Аноним (177), 17:40, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    3 - он не пишет ни на C++, ни на Rust
     
  • 5.204, bOOster (ok), 10:24, 20/09/2025 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >> C++ шаблоны хочешь пользуй, хочешь нет.
    > Если ты пишеш на С++ без шаблонов, есть 2 варианта:
    > 1 - ты пишеш на С (без ++)
    > 2 - это хелоуворд

    Бреднятина полная - никто не мешает в целом писать как на C но с удобствами в виде классов. Архаичность и костыльность работы со структурами в обычном С - это головная и не только боль. Причем и опять риск различных утечек, переписываний и т.д. данных. И еще раз повторяю - дальше ты можешь использовать шаблоны, а можешь и не использовать. С++  достаточно гибок чтобы обходится без шаблонов.
    Но недопрограммисты, в том числе и ты и 2-3 плюсующих, которые только и слышали о С++ и якобы сложности шаблонов, но никогда не щупали - не понимают вообще что такое шаблоны и для чего они используются.

     
     
  • 6.206, Аноним (206), 13:50, 20/09/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > С++  достаточно гибок чтобы обходится без шаблонов
    > недопрограммисты [...] не понимают вообще что такое шаблоны и для чего они используются.

    Объясни, как ты будешь "гибко" обходиться без шаблонов, когда нужен полиморфизм времени компиляции?

     
     
  • 7.219, Аноним (152), 18:58, 20/09/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Если классы не имеют общего предка, через составной класс. Но с шаблонами удобнее.
     
  • 7.226, bOOster (ok), 06:56, 22/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >> С++  достаточно гибок чтобы обходится без шаблонов
    >> недопрограммисты [...] не понимают вообще что такое шаблоны и для чего они используются.
    > Объясни, как ты будешь "гибко" обходиться без шаблонов, когда нужен полиморфизм времени
    > компиляции?

    Перегрузить операторы/методы класса с нужными типами.
    В целом тоже что и class cls<T> и это далеко не сложное в шаблонах и доступно для использования даже новичку.

     
  • 7.227, bOOster (ok), 07:03, 22/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >> С++  достаточно гибок чтобы обходится без шаблонов
    >> недопрограммисты [...] не понимают вообще что такое шаблоны и для чего они используются.
    > Объясни, как ты будешь "гибко" обходиться без шаблонов, когда нужен полиморфизм времени
    > компиляции?

    А вообще конечно позорище - элементарных вещей в С++ не знать..

     
  • 5.208, Аноним (-), 14:52, 20/09/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >ты пишеш на С (без ++)

    Программист на C++ никогда не сможет писать на процедурном Си. Чтобы писать на Чистом нужно алгоритмы знать, а также нужно знать типичные для Си идиомы.

     
     
  • 6.217, Аноним (152), 18:54, 20/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Откуда Вам знать? Если он свои классы пишет? Если алгоритм построен с использованием аффинных типов, реализовывать их придется самому.
     
  • 6.225, bOOster (ok), 06:48, 22/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >>ты пишеш на С (без ++)
    > Программист на C++ никогда не сможет писать на процедурном Си. Чтобы писать
    > на Чистом нужно алгоритмы знать, а также нужно знать типичные для
    > Си идиомы.

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

     
  • 2.109, Аноним (109), 12:19, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ну Clinker-features - это как бы синтаксис похожий на флаги в GCC, Сишные мейкфайлы выглядят похоже. Что касается квадратных скобок, это обозначение массива. Здесь могло быть несколько аргументов. Но в данном конкретном случае только один.

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

     
  • 2.165, Соль земли2 (?), 16:45, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    карл, это синтаксис конфига toml, а не rust
     

  • 1.24, Аноним (175), 01:45, 19/09/2025 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +/
     
  • 1.27, Голдер и Рита (?), 06:07, 19/09/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > Безопасная работа с памятью
    > Windows-драйверов на языке Rust

    'unsafe impl GlobalAlloc for WdkAllocator {
            unsafe fn alloc(&self, layout: Layout) -> *mut u8 {
                let ptr =
                    // SAFETY: 'ExAllocatePool2' is safe to call from any 'IRQL' <= 'DISPATCH_LEVEL' since its allocating from 'POOL_FLAG_NON_PAGED'
                    unsafe {
                        ExAllocatePool2(POOL_FLAG_NON_PAGED, layout.size() as SIZE_T, RUST_TAG)
                    };'

    🌬

     
     
  • 2.46, Прохожий (??), 08:08, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    У вас вызвало недовольство unsafe? Или вас просто с бодуна тошнит?

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

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

     
     
  • 3.55, Аноним (48), 08:26, 19/09/2025 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 2.67, Аноним (-), 09:15, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    М... а как вы иначе представляете вызов в безопасном языке функций из мерзопакостной сишки или плюсов? Они же никаких гарантий не дают и могут запороть память в любом месте!
    Поэтому каждое взаимодействие с ними приходится обмазывать ансефом.
     
     
  • 3.147, Аноним (147), 14:47, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > вызов в безопасном языке функций из мерзопакостной сишки или плюсов

    Это что такое, опять раст - всего лишь обмазка вокруг написанного на си?

     
     
  • 4.160, Аноним (185), 15:55, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >> вызов в безопасном языке функций из мерзопакостной сишки или плюсов
    >>> инструментария для разработки Windows-драйверов на языке Rust
    > Это что такое, опять раст - всего лишь обмазка вокруг написанного на си?

    Не, это опять лишь унылое πоπукивание жабоскриптозников в новости о Расте.

     
  • 4.216, morphe (?), 18:28, 20/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Это что такое, опять раст - всего лишь обмазка вокруг написанного на си?

    Это что такое, опять Си - всего лишь обмазка вокруг системных вызовов и ASM?

     
     
  • 5.223, SKZ (?), 22:33, 21/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Сами "системные вызовы" написаны, внезапно, на немодном C
     

  • 1.28, Odlopez (ok), 06:16, 19/09/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    > В случае возникновения проблем можно вернуть BFD

    Меня озадачило почему не ld.
    Я так понял BFD (что расшифровывается как "Big Fucking Deal") это либы для кросс-исполняемого-файла-форматы линковки которые используются в ld.

    И получается раст использовал не линкер-cli-программу, а линкер-библиотеку.

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

     
  • 1.33, Голдер и Рита (?), 07:05, 19/09/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    У меня есть несколько вопросов:

    1. Rust по-прежнему требует больше ресурсов (RAM и CPU) по сравнению с C++ при сборке крупных проектов?
    2. Защита от реверс-инжиниринга в Rust по-прежнему неэффективна? 🤔

    C++:
    • Есть статический полиморфизм шаблонов (запутывают код)
    • Есть возможность вынести критический код в отдельную динамическую библиотеку (.so/.dll) (скрывают логику)
    • late binding (вызовы по имени в рантайме — сложнее отследить).
    • Предоставляет полный контроль над тем, какие символы (имена функций, переменных) экспортируются в бинарник. Можно легко скрыть почти все символы с помощью компоновщика или атрибутов вроде __attribute__((visibility("hidden")))
    • Прогер может намеренно заюзать UB или хитрые оптимизации, которые затруднят реверс-инжиниринг.

     
     
  • 2.40, Vadim (??), 07:26, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    1. Да пусть хоть сколько ресурсов тратит при сборке, лишь бы результат лучше был.
    2. Зачем нужна защита от reverse engineering в open-source программах?
     
  • 2.45, Прохожий (??), 08:00, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >запутывают код

    Что в этом хорошего?

    >динамическую библиотеку

    В Rust тоже можно её сделать.

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

    В Rust тоже возможен полный контроль над видимостью символов в бинарнике — с помощью #[no_mangle], pub extern "C", и атрибутов видимости, а также благодаря возможностям линковщика по удалению неиспользуемых символов и настройкам компиляции

    >Прогер может намеренно заюзать UB

    Чтобы потом его программа навернулась в самом непоходящем месте? Это вы считаете достоинством?

     
  • 2.98, Аноним (109), 12:11, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Вы в другом треде говорили, что делаете вклад в опенсорс, а тут сетуете на то, что не получается запутывать код. А зачем вам это, разве это не противоречит концепциям свободы?
     
  • 2.143, Аноним (135), 13:28, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >2. Защита от реверс-инжиниринга в Rust по-прежнему неэффективна?

    Я не понимаю, а почему вы пишите не на хаскеле? Там даже если исходники утекут, всё равно ничего не понятно.

     
     
  • 3.193, Аноним (193), 22:33, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Когда-то дизассемблировал программы на Прологе. Вот это hardcore. Там логика программы совсем другая, основанная на backtracking'е
     

  • 1.56, Аноним (56), 08:31, 19/09/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Даже если драйвера писать на Python - BSODы никуда не денутся. Большинство дров опирается на недокументированную информацию, полученную путём реверсинга ядра.
     
     
  • 2.57, Аноним (56), 08:32, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    И на г8рязные хаки с хукингом и патчингом.
     

  • 1.61, Аноним (-), 09:01, 19/09/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Не успело у хейтеров остыть после системд и WebAssembly, как тут раст обновили! Кстати, раст можно компилить в WebAssembly))
    Может поэтому хейтеры вбрасывают с удвоенной силой.
     
     
  • 2.66, Аноним (66), 09:13, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • +4 +/
    не то что можно, а это и есть основной язык wasm
     
     
  • 3.87, Аноним (-), 10:21, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ты такое не говори, а то начнется))
    Вон выше наш Ыксперт-бульбазавр уже наcpaл почти в каждом треде.
    Ишъ беднягу корежит.
    А что будет если он интернет не сможет смотреть без раста?!!
     
     
  • 4.129, Незнакомка (?), 12:53, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Они будут отключать wasm как сейчас отключают js
     
     
  • 5.130, Аноним (-), 12:55, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Они будут отключать wasm как сейчас отключают js

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

     
  • 3.201, анонимд (?), 08:08, 20/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Не Rust, а Golang
     

  • 1.97, Аноним (109), 12:08, 19/09/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Хорошо вот программистам на Rust, можно программировать на системном уровне без головной боли. Хотел бы я тоже писать на этом языке!
     
     
  • 2.99, Аноним (99), 12:11, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Да, Раст - великолепный язык и главное, он позволяет безопасно работать с памятью!
     
  • 2.105, Аноним (99), 12:16, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Я люблю Раст❤, потому что он позволяет сосредоточиться на алгоритме, а не отвлекаться на проблемы с распределением памяти.
     
     
  • 3.167, Соль земли2 (?), 16:48, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Это да, но когда дело доходит до производительности, то приходётся работать напрямую с железом и гарантировать безопасность сможет только железо.
     
  • 3.205, Аноним (205), 13:14, 20/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Мы прекрасно осведомлены, что ****rustы тоже любят, только странной любовью... Но зачем же парад в честь этого проводить? Не могли бы вы проводить свои парады в другом месте, подальше от глаз людских?
     
  • 2.107, Аноним (99), 12:17, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Раст - самый современный и безопасный язык!
     
     
  • 3.120, Аноним (106), 12:37, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Безопастный, Ватсон. БезопасТный!
     
     
  • 4.218, Facemaker (?), 18:57, 20/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    И это ты ещё про provenance не узнал ☺☺☺
     
  • 2.149, Аноним (149), 15:06, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Раст — самый лучший, самый современный и самый безопасный язык! Советую попробовать! (Текст не редактировать, информацию в скобках - удалить. Оплата по ранее указанным реквизитам в течение 15 минут после публикации)
     
     
  • 3.161, Твой Менеджер (?), 16:13, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Оплата по ранее указанным реквизитам в течение 15 минут после публикации

    Не заслужил! Требовать премию за жалкие 40 м³ метана в минуту со среднего опеннетного "Борца с Растом" ­— это даже не смешно! Старайся лучше!

     
     
  • 4.166, Твой Директор. (?), 16:46, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Планктон, не суй свой нос в мои дела!
     

  • 1.142, Аноним (135), 13:26, 19/09/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Rust не нужен, так как в нём нет зависимых типов, только афинные. Нужен ATS. Сишников, не согласных использовать зависимые типы, ровно как и писать другие доказательства корректности кода, следует отлучать от компьютера.
     
     
  • 2.150, Анонон (?), 15:07, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    За ATS яро плюсую!
     
  • 2.153, Аноним (153), 15:17, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Пока есть, что есть. И не то, чтобы с завтипамм было эргономично работать, но кое-где они нужны.
    На вершине лямбда-куба холодно и одиноко, там обитают только theorem provers. Мало что из промышленного есть.
     
  • 2.156, Аноним (-), 15:32, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Rust не нужен, так как в нём нет зависимых типов, только афинные.

    Пока нету)
    Но если посмотреть на практические успехи всяких хаскелистов, то может оно и не надо?
    С теорией у них все чётко, это без вопросов.
    А вот сделать что-то полезное...

     
     
  • 3.212, Аноним (175), 15:53, 20/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > А вот сделать что-то полезное...

    Define полезное. А так, я в хаскельном финтех-стартапе работал, и как по мне, так польза была — и моему карману, и инвесторам, и клиентам бизнеса.

     
  • 2.162, Аноним (152), 16:36, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Нужен ATS

    А чекер не устанет? Не уйдет весь "пар" в клонирование или выдачу одноразовых ссылок в высоко-нагруженных чтением системах?

     
  • 2.182, Аноним (182), 18:04, 19/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    typenum и без них прекрасно справляется
     

  • 1.187, ИмяХ (ok), 19:03, 19/09/2025 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +3 +/
     

  • 1.192, 3draven (ok), 22:12, 19/09/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    О, обновлюсь. Lld уже включил. В целом после sccache+lld и ряда настроек rust-analyzer стало значительно быстрее.
     
  • 1.197, Аноним (197), 00:44, 20/09/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    скоро дрова для линукса и винды станут одинаковыми)
     
     
  • 2.210, Аноним (210), 15:09, 20/09/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > одинаковыми

    Одинаково глючными или одинаково отсутствующими?

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2025 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру