ipata 1.67 Siseto ede Tu

Itusilẹ ti ede siseto gbogboogbo-idi Rust 1.67, ti o da nipasẹ iṣẹ akanṣe Mozilla, ṣugbọn ni bayi ni idagbasoke labẹ awọn atilẹyin ti ominira ti kii ṣe èrè agbari Rust Foundation, ti ṣe atẹjade. Ede naa dojukọ aabo iranti ati pese awọn ọna lati ṣaṣeyọri isọdọkan iṣẹ giga lakoko ti o yago fun lilo ikojọpọ idoti ati akoko asiko (akoko asiko ti dinku si ipilẹṣẹ ipilẹ ati itọju ile-ikawe boṣewa).

Awọn ọna mimu iranti Rust ṣe igbala awọn olupilẹṣẹ lati awọn aṣiṣe nigbati o ba ni ifọwọyi awọn itọka ati daabobo lodi si awọn iṣoro ti o dide nitori mimu iranti ipele kekere, gẹgẹbi iraye si agbegbe iranti lẹhin ti o ti ni ominira, piparẹ awọn itọka asan, awọn ifasilẹ ifipamọ, ati bẹbẹ lọ. Lati kaakiri awọn ile-ikawe, pese awọn kikọ ati ṣakoso awọn igbẹkẹle, iṣẹ akanṣe n ṣe idagbasoke oluṣakoso package Ẹru. Ibi ipamọ crates.io jẹ atilẹyin fun awọn ile-ikawe alejo gbigba.

Ailewu iranti ti pese ni ipata ni akoko iṣakojọ nipasẹ ṣiṣe ayẹwo itọkasi, ṣiṣe itọju ohun-ini ohun, titọju awọn igbesi aye ohun (awọn iwọn), ati iṣiro deede wiwọle iranti lakoko ṣiṣe koodu. Ipata tun pese aabo lodi si ṣiṣan odidi odidi, nilo ipilẹṣẹ dandan ti awọn iye oniyipada ṣaaju lilo, mu awọn aṣiṣe dara julọ ni ile-ikawe boṣewa, lo imọran ti awọn itọkasi ailagbara ati awọn oniyipada nipasẹ aiyipada, nfunni titẹ aimi to lagbara lati dinku awọn aṣiṣe ọgbọn.

Awọn imotuntun akọkọ:

  • Для функций async с Future::Output реализована возможность указания аннотаций «#[must_use]», включающих вывод предупреждения в случае игнорирования возвращаемого значения, что помогает выявить ошибки, вызванные предположением, что функция изменит значения, а не вернёт новое значение. #[must_use] async fn bar() -> u32 { 0 } async fn caller() { bar().await; } warning: unused output of future returned by `bar` that must be used —> src/lib.rs:5:5 | 5 | bar().await; | ^^^^^^^^^^^ | = note: `#[warn(unused_must_use)]` on by default
  • Обновлена реализация FIFO-очередей std::sync::mpsc (multi-producer single-consumer), которая переведена на использование модуля crossbeam-channel с сохранением прежнего API. Новая реализация отличается решением ряда проблем, более высокой производительностью и упрощением сопровождения кода.
  • Apa tuntun ti API ni a ti gbe si ẹka ti iduroṣinṣin, pẹlu awọn ọna ati awọn imuse ti awọn abuda ti jẹ imuduro:
    • {integer}::checked_ilog
    • {integer}::checked_ilog2
    • {integer}::checked_ilog10
    • {integer}::ilog
    • {integer}::ilog2
    • {integer}::ilog10
    • NonZeroU*::ilog2
    • NonZeroU*::ilog10
    • NonZero*::BITS
  • Ẹya “const”, eyiti o pinnu iṣeeṣe ti lilo ni eyikeyi ipo dipo awọn iduro, ni a lo ninu awọn iṣẹ:
    • char :: lati_u32
    • char :: lati oni-nọmba
    • char::to_digit
    • core::char::from_u32
    • core::char::from_digit
  • Реализован третий уровень поддержки для использования Rust в ядре Linux (linuxkernel), а также для платформ Sony PlayStation 1 (mipsel-sony-psx), PowerPC с AIX (powerpc64-ibm-aix), QNX Neutrino RTOS (aarch64-unknown-nto-qnx710, x86_64-pc-nto-qnx710). Третий уровень подразумевает базовую поддержку, но без автоматизированного тестирования, публикации официальных сборок и проверки возможности сборки кода.

Дополнительно можно отметить публикацию компанией ARM патчей, позволяющих использовать язык Rust для разработки драйверов и модулей ядра Linux, собираемых для систем на базе архитектуры AArch64.

orisun: opennet.ru

Fi ọrọìwòye kun