ipata 1.44 Siseto ede Tu

atejade itusilẹ ede siseto eto Ipata 1.44, ti a da nipasẹ iṣẹ akanṣe Mozilla. Ede naa dojukọ aabo iranti, pese iṣakoso iranti aifọwọyi, ati pese awọn irinṣẹ lati ṣaṣeyọri isọdọkan iṣẹ-ṣiṣe giga laisi lilo ikojọpọ idoti ati akoko asiko.

Iṣakoso iranti aifọwọyi ti Rust yọkuro awọn aṣiṣe nigbati o ba n ṣakoso awọn itọka ati aabo lodi si awọn iṣoro ti o dide lati ifọwọyi iranti ipele kekere, gẹgẹbi iraye si agbegbe iranti lẹhin ti o ti ni ominira, awọn ifọkasi ijuboluwole asan, awọn agbekọja buffer, ati bẹbẹ lọ. Oluṣakoso package ti wa ni idagbasoke lati kaakiri awọn ile-ikawe, rii daju apejọ ati ṣakoso awọn igbẹkẹle nipasẹ iṣẹ akanṣe naa. laisanwo, gbigba ọ laaye lati gba awọn ile-ikawe ti o nilo fun eto naa ni titẹ kan. Ibi ipamọ jẹ atilẹyin lati gbalejo awọn ile-ikawe crates.io.

В тексте анонса нового выпуска разработчики Rust ввязались в политику и демонстративно отказались публиковать полноценный обзор изменений в Rust 1.44 в знак солидарности с протестующими против полицейского насилия, указав, что этот вопрос важнее обмена техническими знаниями. Основные awọn imotuntun:

  • В пакетный менеджер Cargo интегрирована команда «cargo tree», выводящая древовидный граф зависимостей. Также добавлена опция «—duplicates» («cargo tree -d»), позволяющая оценить зависимости в разных версиях одного пакета.

    mdbook v0.3.2 (/Users/src/rust/mdbook)
    ├── ammonia v3.0.0
    │ ├── html5ever v0.24.0
    │ │ ├── log v0.4.8
    │ │ │ └── cfg-if v0.1.9
    │ │ ├── mac v0.1.1
    │ │ └── markup5ever v0.9.0
    │ │ ├── log v0.4.8 (*)
    │ │ ├── phf v0.7.24
    │ │ │ └── phf_shared v0.7.24
    │ │ │ ├── siphasher v0.2.3
    │ │ │ └── unicase v1.4.2
    │ │ │ [build-dependencies] │ │ │ └── version_check v0.1.5
    ...

  • Для приложений, не привязанных к std («#![no_std]»), реализована поддержка методов асинхронного программирования, основанных на функции «async», блоке async move { … } и операторе «.await», которые упрощают написание обработчиков, не блокирующих основной поток команд.
  • В парсер добавлена поддержка расширяемой схемы определения иерархии модулей. Например, следующая конструкция не приведёт к выводу ошибки, несмотря на фактическое отсутствие модуля «foo/bar/baz.rs» (семантически конструкция по-прежнему недопустима и может вызвать ошибку, но изменения можно увидеть и разобрать на уровне макросов и условной компиляции):

    #[cfg(FALSE)] mod foo {
    mod bar {
    mod baz;
    }
    }

  • В компиляторе rustc добавлена возможность использования флага «-C codegen-units» в инкрементальном режиме. Переработана реализация catch_unwind, которая теперь не оказывает влияния на производительность, если отключён процесс «размотки» (unwinding) и не возникает исключений.
  • Обеспечен третий уровень поддержи для платформ aarch64-unknown-none, aarch64-unknown-none-softfloat, arm64-apple-tvos и x86_64-apple-tvos. Третий уровень подразумевает базовую поддержку, но без автоматизированного тестирования и публикации официальных сборок.
  • Apa tuntun ti API ni a ti gbe lọ si ẹka iduro, pẹlu imuduro
    PathBuf::with_capacity,
    PathBuf::capacity,
    PathBuf::clear,
    PathBuf::reserve,
    PathBuf::reserve_exact,
    PathBuf::shrink_to_fit,
    {f32|f64}::to_int_unchecked,
    Layout::align_to,
    Layout::pad_to_align,
    Layout::array и
    Layout::extend.

  • Awọn iṣẹ ti o gbooro sii ti ile-ikawe boṣewa:
    • Добавлен специальный вариант «vec![]», напрямую отражаемый в Vec::new(), что позволяет использовать «vec![]» в контексте вместо констант.
    • В convert::Infallible добавлена реализация (impl) типажа elile.
    • В OsString реализованы умные указатели DerefMut и IndexMut, возвращающие «&mut OsStr».
    • Добавлена поддержка Unicode 13.
    • В String реализован From<&mut str>.
    • В IoSlice реализован типаж Copy.
    • В Vec<T> реализован From<[T; N]>.
    • В proc_macro::LexError реализованы fmt::Display и Error.
  • Признак «const», определяющий возможность использования в любом контексте вместо констант, применён в методах from_le_bytes, to_le_bytes, from_be_bytes, to_be_bytes, from_ne_bytes и to_ne_bytes для всех целочисленных типов.
  • Добавлена поддержка генерации статических библиотек в формате «.a» вместо «.lib» для GNU-платформ для Windows.
  • Минимальные требования к LLVM подняты до версии LLVM 8.

orisun: opennet.ru

Fi ọrọìwòye kun