Объявление о Rust 1.99.0

Автор The Rust Release Team01/10/2026 às 00:00137 просмотры

Команда Rust рада объявить о новой версии Rust, 1.99.0. Rust — это язык программирования, который позволяет каждому создавать надечное и эффективное программное обеспечение.

Если у вас установлена предыдущая версия Rust черезrustup, вы можете получить 1.99.0, используя:

$rustup update stable

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

Если вы хотите помочь нам, протестировав будущие выпуски, вы можете рассмотреть возможность обновления локально для использования бета-канала (rustup default beta) или канал nightly (rustup default nightly). Пожалуйста,сообщителюбые ошибки, с которыми вы можете столкнуться!

Что нового в версии 1.99.0 stable

extern "C" variadics

Rust 1.99.0 стабилизирует определение C-ABI функций с переменным количеством аргументов, используя "C" и "C-unwind" ABI. Функции с переменным количеством аргументов, определенные таким образом, используют список аргументов переменной длины (...) и принимать произвольное количество аргументов. Rust уже мог вызывать внешне определенные функции с переменным числом аргументов (например,libc::printfС использованием Rust

///SAFETY: должны вызываться с (по крайней мере) 2 аргументами типа i32.
unsafeextern«C«fnsum(мутаргументы: ...)->i32 {
 //БЕЗОПАСНОСТЬ: гарантируется вызывающей стороной.
leta =небезопасный {аргументы.следующий аргумент::<i32>() };
letb =небезопасный {аргументы.следующий аргумент::<i32>() };
a +b
}

fnfoo()->i32 {
Небезопасный {Сум(0i32, 2i32) }
}

Тип...являетсяVaList,va_listтип данных для чтения из разных целей. Какие типы можно читать изVaListзащищаетVaArgSafeTrait.

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

Информация о расположении данных из указателей

Это объявление решает требования безопасности для получения размера и выравнивания для указателей на сырые данные для обоихSized(просто безопасные, уже возможные наSizedтипы.

Это достигается путем стабилизации трех функций:

Рекомендуется не использовать функцию "непрозрачности" для односторонних транзакций.Утечка памяти

Несмотря на отсутствие изменений в семантике языка Rust 1.99, мы обновили документацию наBox::leakдля того, чтобы рекомендовать избегать шаблонов, которыеBox::into_non_nullследует отдавать предпочтение.

Это руководство также распространяется на другиеУтечкафункции в стандартной библиотеке.

Стабилизированные API

Другие изменения

Узнайте обо всем, что изменилось вRust, Должность, иКлиппи.

Вкладчики в 1.99.0

Многие люди объединились, чтобы создать Rust 1.99.0. Без вас мы бы не смогли этого сделать.Спасибо!

Источник
Rust Blog
Открыть оригинал ↗

⚙Переведено автоматически.

Была ли эта новость полезна?

Дебаты 0

Будьте первым, кто внесёт вклад в дискуссию.

Поделитесь информацией и продвигайте свои аргументы

Не стесняйтесь публиковать полезную информацию или данные.

Чтобы участвовать в дискуссии, войдите или создайте бесплатный аккаунт.