ipata 1.47 Siseto ede Tu

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

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

akọkọ awọn imotuntun:

  • Реализована поддержка типажей для массивов произвольного размера. Ранее, из-за невозможности определить generic-функции для всех целых значений, стандартная библиотека предоставляла встроенную поддержку типажей только для массивов, размер которых не превышал 32 элемента (типажи для каждого размера были определены статически). Благодаря созданию функциональности константных дженериков («const generics») появилась возможность определения generic-функций для любых размеров массива, но они пока не включены в состав стабильных возможностей языка, хотя реализованы в компиляторе и теперь задействованы в стандартной библиотеке для типажей массивов любого размера.

    Например, следующая конструкция в Rust 1.47 приведёт к выводу содержимого массива, хотя раньше привела бы к ошибке:

    fn akọkọ() {
    jẹ ki xs = [0; 34];

    println!(«{:?}», xs);
    }

  • Ti a pese ti awọn itọpa kukuru (backtrace), o wu ni awọn ipo pajawiri. Awọn ohun elo ti kii ṣe anfani ni ọpọlọpọ awọn ipo, ṣugbọn didasilẹ abajade ati ki o fa ifojusi lati awọn idi akọkọ ti iṣoro naa, ni a yọkuro lati inu itọpa naa. Lati da itọpa kikun pada, o le lo oniyipada ayika "RUST_BACKTRACE=ful". Fun apẹẹrẹ, fun koodu

    fn akọkọ() {
    ẹ̀rù!();
    }

    раньше выводилась трассировка в 23 этапа, а теперь она будет сведена к
    3 этапам, позволяющим сразу уловить суть:

    okùn 'akọkọ' bẹru ni 'ijaaya ti o han gbangba', src/main.rs:2:5
    akopọ backtrace:
    0: std :: ijaaya :: ibere_ijaaya
    ni /rustc/d…d75a/library/std/src/panicking.rs:497
    1: ibi isereile :: akọkọ
    ni ./src/main.rs:2
    2: mojuto :: ops :: iṣẹ :: FnOnce :: call_ni kete ti
    ni /rustc/d…d75a/library/core/src/ops/function.rs:227

  • Компилятор rustc обновлён до сборки с использованием LLVM 11 (Rust awọn lilo LLVM в качестве бэкенда для генерации кода). При этом сохранена возможность сборки со старыми LLVM, вплоть до версии 8, но по умолчанию (в rust-lang/llvm-project) теперь используется LLVM 11. Релиз LLVM 11 ожидается в ближайшие дни.
  • На платформе Windows в компиляторе rustc обеспечена поддержка включения проверок целостности потока выполнения (Control Flow Guard), активируемых при помощи флага «-C control-flow-guard». На других платформах данный флаг пока игнорируется.
  • Apa tuntun ti API ni a ti gbe lọ si ẹka iduro, pẹlu imuduro
    Ident::new_raw,
    Range::is_empty,
    RangeInclusive::is_empty,
    Result::as_deref,
    Result::as_deref_mut,
    Vec::leak,
    pointer::offset_from,
    f32::TAU и
    f64::TAU.

  • Ẹya “const”, eyiti o pinnu iṣeeṣe ti lilo ni eyikeyi ipo dipo awọn iduro, ni a lo ninu awọn ọna:
    • titun fun gbogbo awọn odidi miiran ju odo;
    • checked_add, checked_sub, checked_mul,checked_neg, checked_shl, checked_shr, saturating_add, saturating_sub и saturating_mul для всех целых;
    • is_ascii_alphabetic, is_ascii_uppercase, is_ascii_lowercase, is_ascii_alphanumeric, is_ascii_digit, is_ascii_hexdigit, is_ascii_punctuation, is_ascii_graphic, is_ascii_whitespace and is_ascii_control fun char ati u8 orisi.
  • Fun FreeBSD lowo инструментарий из FreeBSD 11.4 (FreeBSD 10 не поддерживает LLVM 11).

orisun: opennet.ru

Fi ọrọìwòye kun