Harshen shirye-shiryen tsatsa 1.44

aka buga sakin harshe na tsarin shirye-shirye Kishiya 1.44, wanda aikin Mozilla ya kafa. Harshen yana mai da hankali kan amincin ƙwaƙwalwar ajiya, yana ba da sarrafa ƙwaƙwalwar ajiya ta atomatik, kuma yana ba da kayan aiki don cimma babban aiki daidaici ba tare da amfani da mai tara shara ba lokacin gudu.

Gudanar da ƙwaƙwalwar ajiya ta atomatik na Rust yana kawar da kurakurai yayin sarrafa masu nuni kuma yana ba da kariya daga matsalolin da suka taso daga ƙananan ƙananan ƙwaƙwalwar ajiya, kamar shiga yankin ƙwaƙwalwar ajiya bayan an 'yantar da shi, ɓangarorin null pointer, buffer overruns, da dai sauransu. Ana haɓaka mai sarrafa fakiti don rarraba ɗakunan karatu, tabbatar da taro da sarrafa abubuwan dogaro ta hanyar aikin. ofishin, ba ku damar samun ɗakunan karatu da ake buƙata don shirin a dannawa ɗaya. Ana tallafawa wurin ajiya don ɗaukar ɗakunan karatu akwati.io.

A cikin rubutun sanarwar sabon sakin, masu haɓaka Rust sun shiga cikin siyasa kuma sun ƙi buga cikakken bita na canje-canje a cikin Rust 1.44 a matsayin alamar haɗin kai tare da masu zanga-zangar adawa da tashin hankalin 'yan sanda, yana nuna cewa wannan batu ya fi muhimmanci. fiye da musayar ilimin fasaha. Na asali sababbin abubuwa:

  • Manajan kunshin kaya yana haɗa umarnin "itacen kaya", wanda ke nuna jadawali mai kama da itace. Hakanan an ƙara shine zaɓi "- kwafi" ("itacen kaya -d"), wanda ke ba ku damar kimanta abubuwan dogaro a nau'ikan fakiti iri ɗaya.

    mdbook v0.3.2 (/Masu amfani/src/tsatsa/mdbook)
    ├── ammonia v3.0.0
    │ ├── html5ever v0.24.0
    │ │ ├── log v0.4.8
    │ │ │ └── cfg-idan 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
    uba │ │ └─
    │ │ │ [gina-dogara] │ │ │ └── sigar_check v0.1.5
    ...

  • Don aikace-aikacen da ba a ɗaure su da std ("#! [no_std]"), ana aiwatar da goyan bayan dabarun shirye-shiryen asynchronous bisa aikin "async", motsi async {... } toshe da kuma ma'aikacin ".await", wanda sauƙaƙa rubuta masu kula da ba tare da toshe babban umarni ba.
  • An ƙara goyan bayan tsarin ma'anar ma'anar ma'anar ma'auni a cikin mai binciken. Misali, ginin da ke biyo baya ba zai haifar da kuskure ba, duk da ainihin rashi na modul "foo/bar/baz.rs" (ginin har yanzu ba shi da inganci kuma yana iya haifar da kuskure, amma ana iya ganin canje-canje a fassarowa macro da matakin harhada sharaɗi):

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

  • Mai tarawa rustc ya kara da ikon yin amfani da tuta ta "-C codegen-units" a yanayin haɓakawa. An sake yin aikin aiwatar da kama_unwind ta yadda ba shi da wani tasiri idan tsarin cirewa ya lalace kuma ba a jefar da keɓantacce ba.
  • An bayar da tallafin matakin 64 don aarch64-unknown-babu, aarch64-unknown-none-softfloat, arm86-apple-tvos da x64_XNUMX-apple-tvos dandamali. Mataki na uku ya ƙunshi tallafi na yau da kullun, amma ba tare da gwaji ta atomatik da buga ginin hukuma ba.
  • An canza wani sabon yanki na APIs zuwa tsayayyen nau'in, gami da daidaitacce
    PathBuf :: tare da iyawa,
    PathBuf :: iyawa,
    PathBuf:: bayyane,
    PathBuf:: ajiya,
    PathBuf :: ajiyar_daidai,
    PathBuf :: raguwa_to_fit,
    {f32|f64}:: ba a tantance ba,
    Layout ::align_to,
    Layout :: pad_to_align,
    Layout::tsari da
    Layout :: tsawo.

  • Ƙarfafa ayyuka na daidaitaccen ɗakin karatu:
    • An ƙara bambance-bambancen "vec![]" na musamman wanda ke nunawa kai tsaye a cikin Vec :: sabon(), yana barin "vec![]" a yi amfani da shi a cikin mahallin maimakon akai-akai.
    • An ƙara aiwatarwa (impl) na sifar don canzawa ::Ma'asumi Hash.
    • OsString yana aiwatar da masu nuna wayo DerefMut и IndexMut, yana dawowa "&mut OsStr".
    • Ƙara tallafi don Unicode 13.
    • An aiwatar a cikin String Daga <&mut str>.
    • IoSlice yana aiwatar da yanayin Copy.
    • Vec aiwatar Daga<[T; N]>.
    • proc_macro :: LexError yana aiwatar da fmt :: Nuni da Kuskure.
  • Siffar “const”, wacce ke tantance ko ana iya amfani da ita a kowane mahallin maimakon madaidaicin, ana amfani da ita a cikin daga_le_bytes, zuwa_le_bytes, daga_be_bytes, zuwa_be_bytes, daga_ne_bytes da zuwa_ne_bytes ga kowane nau'in lamba.
  • Ƙarin tallafi don ƙirƙirar ɗakunan karatu na tsaye a tsarin ".a" maimakon ".lib" don dandamali na GNU akan Windows.
  • An ɗaga mafi ƙarancin buƙatun LLVM zuwa nau'in LLVM 8.

source: budenet.ru

Add a comment