Rust 1.44 Варақаи забони барномасозӣ

нашр шудааст нашри забони барномасозии система Занги 1.44, аз ҷониби лоиҳаи Mozilla таъсис дода шудааст. Забон ба бехатарии хотира тамаркуз мекунад, идоракунии автоматии хотираро таъмин мекунад ва асбобҳоро барои ноил шудан ба параллелизми вазифаҳои баланд бидуни истифодаи коллектори партовҳо ва runtime.

Идоракунии хотираи автоматии Rust хатогиҳоро ҳангоми коркарди нишондиҳандаҳо бартараф мекунад ва аз мушкилоте, ки аз коркарди хотираи сатҳи паст ба вуҷуд меоянд, ба монанди дастрасӣ ба минтақаи хотира пас аз озод шудани он, истинодҳои нули нишоннамо, изофаи буфер ва ғайра муҳофизат мекунад. Менеҷери бастаҳо барои паҳн кардани китобхонаҳо, таъмини ҷамъбаст ва идоракунии вобастагӣ аз ҷониби лоиҳа таҳия карда мешавад. бор, ба шумо имкон медиҳад, ки китобхонаҳои барои барнома лозимиро бо як клик дастрас кунед. Барои китобхонаҳои мизбон як анбор дастгирӣ карда мешавад crates.io.

Дар матни эълони нашри нав, таҳиягарони Rust ба сиёсат дахолат карданд ва ба таври қатъӣ аз нашри баррасии пурраи тағйирот дар Rust 1.44 ҳамчун нишонаи ҳамбастагӣ бо эътирозгарон алайҳи хушунати полис худдорӣ карданд, ки ин масъала муҳимтар аст. назар ба мубодилаи донишхои техникй. Асосӣ навовариҳо:

  • Менеҷери бастаи боркаш фармони "дарахти боркаш" -ро муттаҳид мекунад, ки графики вобастагии дарахтро нишон медиҳад. Инчунин опсияи "—дупликатҳо" (дарахти боркаш -d) илова карда шудааст, ки ба шумо имкон медиҳад вобастагӣ дар версияҳои гуногуни як бастаро арзёбӣ кунед.

    mdbook v0.3.2 (/Users/src/rust/mdbook)
    ├── аммиак v3.0.0
    │ ├── html5ever v0.24.0
    │ │ ├── сабти v0.4.8
    │ │ │ └── cfg-агар v0.1.9
    │ │ ├── mac v0.1.1
    │ │ └── аломатгузории5ever v0.9.0
    │ │ ├── сабти v0.4.8 (*)
    │ │ ├── phf v0.7.24
    │ │ │ └── phf_shared v0.7.24
    │ │ │ ├── siphasher v0.2.3
    │ │ │ └── unicase v1.4.2
    │ │ │ [вобастагии сохтан] │ │ │ └── версияи_санҷиш v0.1.5
    ...

  • Барои барномаҳое, ки ба std ("#![no_std]") баста нашудаанд, дастгирии усулҳои барномасозии асинхронӣ дар асоси функсияи "async", блоки ҳаракати асинхронӣ { ... } ва оператори ".await" амалӣ карда мешавад, ки содда кардани навиштани коркардкунандагони ғайримоддӣ ҷараёни асосии фармон.
  • Дастгирии нақшаи таърифи иерархияи васеъшавандаи модул ба таҳлилгар илова карда шудааст. Масалан, сохтори зерин сарфи назар аз мавҷудияти воқеии модули "foo/bar/baz.rs" хато намекунад (конструксия то ҳол аз ҷиҳати семантикӣ беэътибор аст ва метавонад хатогиро ба вуҷуд оварад, аммо тағиротро дар ин ҷо дидан ва таҳлил кардан мумкин аст) сатҳи макро ва шартӣ тартиб):

    #[cfg(FALSE)] mod foo {
    панели модул {
    мод баз;
    }
    }

  • Тартибдиҳандаи rustc қобилияти истифодаи парчами "-C codegen-units" -ро дар ҳолати афзоянда илова кардааст. Татбиқи catch_unwind аз нав кор карда шуд, то он таъсире ба иҷроиш надошта бошад, агар раванди бозсозӣ ғайрифаъол бошад ва ягон истисно вуҷуд надошта бошад.
  • Дастгирии сатҳи 64 барои платформаҳои aarch64-unknown-none, aarch64-unknown-none-softfloat, arm86-apple-tvos ва x64_XNUMX-apple-tvos таъмин карда шудааст. Сатҳи сеюм дастгирии асосиро дар бар мегирад, аммо бидуни санҷиши автоматӣ ва нашри сохторҳои расмӣ.
  • Қисми нави APIҳо ба категорияи устувор, аз ҷумла мӯътадил гузаронида шуд
    PathBuf::with_capacity,
    PathBuf::иқтидори,
    PathBuf :: равшан,
    PathBuf::reserve,
    PathBuf ::reserve_exact,
    PathBuf::shrink_to_fit,
    {f32|f64}::to_int_unchecked,
    Layout ::align_to,
    Layout ::pad_to_align,
    Layout :: массив ва
    Тарҳ:: васеъ.

  • Функсияҳои васеъи китобхонаи стандартӣ:
    • Варианти махсуси "vec![]" илова карда шуд, ки мустақиман дар Vec::new( инъикос ёфтааст) имкон медиҳад, ки "vec![]" дар контекст ба ҷои доимӣ истифода шавад.
    • Татбиқи (impl) хислат барои табдили::Infallible илова карда шудааст Хаш.
    • OsString нишондиҳандаҳои интеллектуалиро амалӣ мекунад ДерефМут и IndexMut, баргардонидани "&mut OsStr".
    • Дастгирии иловашуда барои Юникод 13.
    • Дар String амалӣ карда мешавад Аз<&mut str>.
    • IoSlice хусусиятро амалӣ мекунад нусха.
    • Век амалӣ карда шуд Аз<[Т; Н]>.
    • proc_macro::LexError fmt::Display ва Хатогиро амалӣ мекунад.
  • Аттрибути "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 баланд бардошта шуд.

Манбаъ: opennet.ru

Илова Эзоҳ