LINUX.ORG.RU

Rust


261

18

Всего сообщений: 136

Rust 1.88.0

Rust 1.88.0
Группа Разработка

Опубликован следующий стабильный релиз компилятора и стандарта языка Rust.

В этой версии добавлены следующие возможности:

  1. Синтаксис для описания функций без пролога и эпилога. Тело таких функций обязано состоять из naked_asm! блока :
#[unsafe(naked)]
pub unsafe extern "sysv64" fn wrapping_add(a: u64, b: u64) -> u64 {
    // Equivalent to `a.wrapping_add(b)`.
    core::arch::naked_asm!(
        "lea rax, [rdi + rsi]",
        "ret"
    );
}
  1. Возможность объявлять две и более переменных в условных выражениях if / while:
if let Channel::Stable(v) = release_info()
    && let Semver { major, minor, .. } = v
    && major == 1
    && minor == 88
{
    println!("`let_chains` was stabilized in this version");
}
  1. В DSL для условной компиляции cfg добавлены константы true и false, которые так же стали доступны в макросе cfg!.

  2. Добавлено предупреждение о попытке обращения к нулевому указателю для функций, чьи инварианты корректной работы требуют не нулевых адресов. К примеру попытка сконструировать объект std::slice по нулевому адресу:

// Undefined behavior
unsafe { std::slice::from_raw_parts(ptr::null(), 1); }

приведёт к выдаче сообщения. По умолчанию это предупреждение имеет уровень deny-by-default, то есть будет рассмотрено компилятором как ошибка.

Все нововведения перечислены в списке изменений.

>>> Announcing Rust 1.88.0

 

LamerOk
()

Команда разработчиков Rust запустила опрос по производительности компилятора

Группа Разработка

Это прямой перевод записи из блога Rust.

Мы за­пу­ска­ем Опрос по про­из­во­ди­тель­но­сти ком­пи­ля­то­ра Rust.

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

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

Для то­го, что­бы луч­ше по­нять эти ра­бо­чие про­цес­сы, мы при­го­то­ви­ли Опрос по про­из­во­ди­тель­но­сти ком­пи­ля­то­ра Rust. Он ак­цен­ти­ро­ван имен­но на про­из­во­ди­тель­но­сти ком­пи­ля­ции, что поз­во­ля­ет нам по­лу­чить бо­лее по­дроб­ные дан­ные, чем те, ко­то­рые мы обыч­но по­лу­ча­ем из еже­год­но­го опро­са «State of Rust». Дан­ные из это­го опро­са по­мо­гут нам по­нять ме­ста, на ко­то­рых нам сле­ду­ет со­сре­до­то­чить уси­лия по улуч­ше­нию про­дук­тив­но­сти Rust-ра­зра­бот­чи­ков.

Прой­ти опрос вы мо­же­те здесь.

Про­хож­де­ние дол­жно за­нять приб­ли­зи­тель­но 10 ми­нут ва­ше­го вре­ме­ни. Опрос пол­но­стью ано­ни­мен. Мы бу­дем при­ни­мать фор­мы до 7 и­юля 2025 го­да. По окон­ча­нии опро­са мы обра­бо­та­ем ре­зуль­та­ты и опуб­ли­ку­ем клю­че­вые мо­мен­ты в этом бло­ге.

Приг­ла­ша­ем вас при­нять уча­стие в опро­се, ведь ва­ши от­ве­ты по­мо­гут нам улуч­шить про­из­во­ди­тель­ность ком­пи­ля­ции Rust. Спа­си­бо!

>>> Запись в блоге Rust

 , ,

MrCookie
()

Microsoft открыл код WSL и текстового редактора Edit

Microsoft открыл код WSL и текстового редактора Edit
Группа Linux General

Microsoft опубликовал исходные тексты подсистемы wsl. Для желающих присоединиться к разработке запущен сайт wsl.dev.

WSL предоставляет виртуальную машину с полноценным ядром Linux (на базе ветки 6.6), в которой могут запускаться дистрибутивы Linux. Ядро включает специфичные для WSL изменения, такие как оптимизации для сокращения времени запуска и уменьшения потребления памяти, возможность возвращения Windows освобождённой Linux-процессами памяти и настройки для исключения лишних драйверов и подсистем. Система устанавливается в отдельный дисковый образ (VHD) c файловой системой ext4 и виртуальным сетевым адаптером.

Компоненты WSL, связанные с ядром Linux и графическим стеком wslg, применяемым для для запуска GUI-приложений на базе Wayland и X11, развивались в открытом виде изначально, но весь сопутствующий инструментарий оставался проприетарным. Отныне в число открытых переведены следующие компоненты:

  • утилиты командной строки wsl.exe, wslconfig.exe и wslg.exe, используемые для взаимодействия с WSL;
  • сервис wslservice.exe, применяемый для запуска виртуальной машины, активации в ней Linux-окружения и монтирования файловых систем;
  • фоновые процессы, запускаемые в Linux-окружении для доступа к функциональности WSL. Например, процесс init для начальной инициализации, gns для настройки сетевого доступа, localhost для перенаправления портов;
  • процесс plan9 с реализацией сервера Plan9, применяемого в WSL для совместного доступа к Linux-файлам из Windows.

Остаются частью Windows и не открыты в настоящее время:

  • драйвер ядра Lxcore.sys, применяемый для запуска исполняемых файлов в формате ELF через слой обеспечения совместимости;
  • драйвер P9rdr.sys и библиотека p9np.dll, обеспечивающие перенаправление доступа к ФС «\wsl.localhost» при обращении из Windows к Linux.

Одновременно компания Microsoft открыла под лицензией MIT исходный код консольного текстового редактора Edit, написанного на модном языке Rust и нацеленного на поставку по умолчанию в 64-разрядных версиях Windows. В ближайшие месяцы редактор будет предложен для ознакомления и тестирования в сборках Windows Insider Program, после чего войдёт в штатную поставку Windows 11.

В редакторе попытались реализовать современный интерфейс с управлением в стиле VS Code. Целью заявлено предоставление интерфейса, который был бы понятен и прост в использовании даже для тех, кто не имеет опыта работы в терминале. Редактор компактен и занимает всего 250kB на диске. Из возможностей упомянуты: система меню, управление клавиатурными комбинациями или мышью, поддержка вкладок и одновременной работы с несколькими файлами, операции поиска и замены, режим автоматического переноса текста на новую строку.

>>> Подробности (OpenNet)

 , , , ,

Ygor
()

Языку программирования Rust исполнилось 10 лет

Группа Open Source

15 мая этого года исполнилось 10 лет с момента выхода первой стабильной версии языка программирования Rust, разрабатываемого Mozilla совместно с сообществом.

Основные итоги за это время:

Попытки собрать истории растового успеха: раз, два.

>>> Официальный сайт

 , ,

anonymous
()

Ubuntu 25.10 переходит на sudo, написанный на Rust

Группа Ubuntu Linux

В Ubuntu 25.10 собираются использовать sudo-rs по умолчанию вместо привычного sudo. Это реализация утилиты повышения привилегий sudo, написанная на языке программирования Rust.

sudo-rs разработана Trifecta Tech Foundation (TTF), некоммерческой организацией, которая создает безопасные компоненты с открытым исходным кодом для инфраструктурного программного обеспечения.

В sudo-rs обеспечена совместимость с классическими утилитами sudo и su, что даёт возможность использовать sudo-rs в качестве прозрачной замены sudo в системе. Для пользователей, не желающих переходить на новые утилиты из uutils и sudo-rs, в Ubuntu 25.10 будет предусмотрена возможность обратного перехода на привычные варианты системных утилит coreutils и sudo.

Замена sudo на sudo-rs — часть глобального плана по повышению безопасности и качества Ubuntu путём перехода на компоненты, написанные на языке Rust.

>>> Подробности

 , ,

Zhbert
()

Разработчики Gnome удалят из С++ лишние фичи

Группа Open Source

Как всем известно, язык программирования С++, пожалуй, самый большой по объему из ЯП. Даже программисты, которые пишут на нем десятки лет не могут похвастаться, что знают его полностью. В связи с чем комитет по стандартизации С++ принял нелегкое решение: чтобы язык оставался конкурентоспособным перед напирающими новыми ЯП, например rust, нужно удалить из него все легаси фичи, написаные непонятно какими гоблинами в мохнатые восьмидесятые. В этом помогут хорошо известные на этом форуме разработчики Gnome, которые в свое время удалили все лишние фичи из своей DE, тем самым сделав ее вне конкуренции. Они будут удалять все фичи, пока не удалят все «плюсы» и не дойдут до С, из которого и вылез C++, но на этом не остановятся, оставят от языка только минимальный C--.

( читать дальше... )

>>> Подробности

 , , ,

goingUp
()

Linux 6.14

Linux 6.14
Группа Ядро Linux

После двух месяцев разработки Линус Торвальдс представил релиз ядра Linux 6.14. Среди наиболее заметных изменений: драйвер ntsync c примитивами синхронизации Windows NT, настройка балансировки операций чтения в Btrfs RAID1, поддержка reflink в XFS в режиме realtime, возможность некэшируемого буферизированного ввода/вывода, dmem cgroup для ограничения памяти GPU, задействование io_uring в FUSE, делегирование атрибутов в NFS, поддержка атомарной записи в Device mapper, ускорение символических ссылок, управление возможностью выполнения скриптов, поддержка чипов Qualcomm Snapdragon 8 Elite, драйвер для NPU AMD.

В новую версию принято 12115 исправлений от 1984 разработчиков, размер патча – 39 МБ (изменения затронули 10170 файлов, добавлено 531586 строк кода, удалено 235999 строк). В прошлом выпуске было 14172 исправлений от 2086 разработчиков, размер патча – 46 МБ. Около 41% всех представленных в 6.14 изменений связаны с драйверами устройств, примерно 13% изменений имеют отношение к обновлению кода, специфичного для аппаратных архитектур, 14% связано с сетевым стеком, 7% – с файловыми системами и 4% c внутренними подсистемами ядра.

( читать дальше... )

>>> Подробности на OpenNET

 , ,

dataman
()

BLAKE3 1.7.0

Группа Open Source

18 марта состоялся выпуск 1.7.0 библиотек BLAKE3, реализующих криптографический алгоритм хеширования BLAKE3 на языках C и Rust, и распространяемых как общественное достояние или по лицензии Apache 2.0.

Проектом также предоставляется консольная утилита b3sum, написанная на языке Rust.

( читать дальше... )

>>> Подробности на github.com

 , , , ,

dataman
()

Fish Shell 4.0

Fish Shell 4.0
Группа Open Source

Командная оболочка Fish Shell, популярная среди пользователей терминалов, обновилась до версии 4.0, которая принесла значительные изменения и улучшения.

Основное новшество заключается в том, что Fish Shell теперь полностью переписана на языке программирования Rust. Однако для обычных пользователей этот переход будет практически незаметен: команды, настройки и типичные взаимодействия останутся прежними.

( читать дальше... )

>>> Полный список изменений и релиз на GitHub

>>> Подробности в блоге fishshell.com

 , ,

CrX
()

Линус Торвальдс пояснил свою позицию в отношении приёма изменений на Rust

Группа Ядро Linux

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

Линус раскритиковал действия Кристофа Хелвига, мэйнтейнера подсистем DMA, KVM, Slab Allocator и архитектуры PowerPC. По мнению Линуса, Кристоф превысил свои полномочия и попытался повлиять на код, который не затрагивал код подсистемы DMA, был реализован в отдельном подкаталоге и не влиял на код, за который отвечает Кристоф. Кристоф попытался контролировать то, для чего используется подсистема DMA, и его действия можно сравнить с попыткой запрета использования DMA в каком-то драйвере, лишь потому, что ему не понравился этот драйвер. Итог: несмотря на то, что сопровождающие отвечают за свой код, они не отвечают за то, кто и как использует результат работы этого кода.

>>> Письмо Линуса

>>> Подробности (OpenNet)

 ,

hobbit
()

Вышла версия 25.2.11 файлового менеджера Yazi

Группа Open Source

Yazi (кит. «鸭子» означает «утка») — это невероятно быстрый терминальный файловый менеджер, написанный на Rust, основанный на неблокируемом асинхронном вводе-выводе. Он нацелен на предоставление эффективного, удобного и настраиваемого опыта управления файлами.

( читать дальше... )

>>> Основные особенности Yazi (осторожно, много мельтешащих видео на одном экране)

>>> GitHub проекта

>>> Более полный changelog в описании к релизам

 , , yazi

einhander
()

Развитие платформы CADBase за год

Группа Интернет

О платформе

Платформа CADBase обеспечивает систему публикации, хранения и версионирования данных инженерного дела, таких как 3D-модели и чертежи.
Название платформы образовано путём соединения двух слов — CAD (САПР) и Base (База), условно «База данных для систем автоматизированного проектирования».
На сайте платформы имеется просмотрщик для файлов STL, планируется добавить поддержку файлов в формате STEP.

( читать дальше... )

>>> Сайт платформы

 , , , ,

margarin
()

Arti 1.4.0

Группа Безопасность

Проект Tor объявил о выпуске новой версии своего клиента Arti 1.4.0, разработанного на языке Rust. Этот выпуск включает множество новых функций и улучшений, направленных на повышение производительности и удобства использования.

Arti — это клиент Tor, переписанный на Rust. Как и оригинальный клиент, написанный на C, он может использоваться как отдельно в качестве SOCKS5-прокси, так и совместно с Tor Browser.

( читать дальше... )

>>> Полный список изменений

>>> Подробности

 arti, , ,

CrX
()

Кризис при продвижении языка программирования Rust в ядро Linux

Кризис при продвижении языка программирования Rust в ядро Linux
Группа Ядро Linux

В сообществе разработчиков ядра Linux возникли разногласия по поводу интеграции языка программирования Rust. Кристоф Хелвиг (Christoph Hellwig), мэйнтейнер подсистем DMA, KVM, Slab Allocator и архитектуры PowerPC в ядре Linux, в своё время входивший в управляющий технический комитет организации Linux Foundation и выступавший истцом в связанном с GPL судебном разбирательстве с VMware, отказался подтверждать патчи, связанные с поддержкой разработки драйверов на языке Rust.

( читать дальше... )

>>> Подробности (OpenNet)

 , ,

Alexandr_0503
()

Numbat 1.16.0 — консольный научный калькулятор

Numbat 1.16.0 — консольный научный калькулятор
Группа Open Source

После месяца разработки состоялся выпуск 1.16.0 высокоточного консольного научного калькулятора Numbat, написанного на языке Rust и распространяемого по лицензии MIT и/или Apache 2.0.

Отличительные особенности Numbat:

  • полная поддержка физических размерностей и единиц измерения;
  • простой встроенный язык со статической типизацией;
  • автодополнение имён функций, единиц измерения и переменных;
  • поиск по истории ввода;
  • и многое другое.

( читать дальше... )

>>> Список изменений версии 1.16.0 на GitHub

 numbat, , , ,

dataman
()

bat 0.25.0

bat 0.25.0
Группа Open Source

После трёх месяцев разработки состоялся выпуск 0.25.0 кроссплатформенной консольной утилиты для просмотра файлов bat, написанной на языке Rust и распространяемой по лицензии MIT или Apache 2.0.
Утилитой поддерживается подсветка синтаксиса для 174 ($ bat -L) языков программирования и разметки текста.

( читать дальше... )

>>> Полный список изменений версии 0.25.0 на GitHub

 , , , ,

dataman
()

mmtui — TUI для монтирования дисков

Группа Open Source

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

( читать дальше... )

>>> GitHub

 , , ,

SL_RU
()

hyperfine 1.19.0

hyperfine 1.19.0
Группа Open Source

Состоялся выпуск 1.19.0 кроссплатформенной (Linux, MacOS, Windows) консольной утилиты hyperfine, написанной на языке Rust и распространяемой по лицензиям Apache-2.0 и MIT. Утилита предназначена для сравнения производительности других консольных утилит.

Список изменений:

  • добавлена опция --reference <cmd> позволяющая вручную указать команду <cmd>, с которой будут сравниваться результаты выполнения других команд;
  • добавлена опция --conclude <cmd>, выполняющая команду <cmd> после выполнения измеряемой команды;
  • команда --output= может быть задана для каждой команды;
  • переменная окружения $HYPERFINE_ITERATION теперь содержит текущий номер итерации для каждой команды бенчмарка;
  • в сообщение об ошибке добавлена информация об итерации;
  • в скрипт plot_histogram.py добавлена возможность позиционирования легенды графика на диаграмме. Выходной DPI графика установлен в 600 DPI;
  • улучшен скрипт plot_whisker.py;
  • исправлена ошибка отображения примерного времени выполнения в эмуляторах терминала с блочным курсором;
  • исправлено автодополнение zsh;
  • добавлена сборка aarch64-apple-darwin;
  • различный рефакторинг кода.

>>> Подробности

 , , , ,

dataman
()

Текстовый редактор Zed теперь официально поддерживает Linux

Группа Open Source

Написанный на языке Rust и использующий аппаратное ускорение рендеринга UI текстовый редактор Zed теперь поддерживает Linux. Команда разработчиков Zed начала выпускать официальные сборки этого редактора, которые должны работать на большинстве современных Linux систем. Для установки редактора предлагается запустить команду curl https://zed.dev/install.sh | sh.

( читать дальше... )

>>> Подробности

 , , ,

zg
()

Майский отчёт по разработке микроядерной ОС Redox на Rust

Группа Linux General

3 июня разработчики ОС Redox опубликовали ежемесячный публичный отчёт о прогрессе в разработке за май 2024.

  • COSMIC. Джереми Соллера (разработчик из System76, а так же разработчик COSMIC в Redox, ссылка на персональный гитхаб) занимался заменой компонентов с Orbital на собственные COSMIC-аналоги, и теперь COSMIC-файлы, COSMIC-редактор и COSMIC-терминал являются постоянной частью рабочего стола Redox:

    У нас все еще есть несколько ошибок при выходе из приложений, но в остальном они работают без сбоев и выглядят великолепно!

  • Обновление инструментария. Собственная ветка Rust была обновлена ​​до версии от 11 мая 2024 г. Исправлено множество проблем с программами, требующими последней версии Rust.
  • Улучшения самостоятельного хостинга. Порт компилятора Rust был обновлен для соответствия версии собственного кросс-компилятора Rust.
  • Обновлён собственный порт LLVM.
  • Обновление Mesa3D. Собственная ветка Mesa3D была обновлена ​​до последней стабильной версии 24.0.8.
  • Программная часть. Одним из участников разработки, Риббоном (Ribbon, ссылка на персональный гитхаб), упаковано больше программ, утилит и инструментов Cargo.

Для справки: Redox это unix-подобная микроядерная операционная система, написанная на языке программирования Rust с акцентом на безопасность и высокую производительность. При разработке использовался опыт таких ядер и операционных систем, как SeL4, Minix, Plan 9 и BSD. В качестве цели ставится создание экосистемы, похожей на GNU или BSD, но создаваемой на безопасном для памяти языке и с использованием актуальных для 2010-х годов технологий. Среди сопутствующих компонентов особо выделяются:

  • микроядро, выполненное по типу ядра MINIX;
  • библиотека Newlib для программ на Си (аналог glibc);
  • драйверы работают в пространстве пользователя;
  • имеется опционально включаемый GUI — Orbital;
  • Ion shell — базовая библиотека для оболочек и выполнения команд в Redox, а также оболочка по умолчанию;
  • файловая система TFS, аналог ZFS;
  • пакетный менеджер Magnet;
  • менеджер памяти Ralloc.

Проект существует и активно развивается с 2015 года, распространяется по лицензии MIT.

>>> Подробности на официальном ресурсе разработчиков

 , ,

NeTC
()