Puo ea Rust programming 1.44 tokollo

e hatisitsoeng tokollo ea puo ea lenaneo la sistimi Mafome 1.44, e thehiloeng ke morero oa Mozilla. Puo e shebana le polokeho ea mohopolo, e fana ka taolo ea memori ea othomathike, hape e fana ka lisebelisoa tsa ho fihlela ts'ebetso e phahameng ea ts'ebetso ntle le ho sebelisa pokello ea lithōle le nako ea nako.

Taolo ea memori ea othomathike ea Rust e felisa liphoso ha e tsamaisa lintlha le ho sireletsa khahlanong le mathata a bakoang ke ho qhekella ha memori ea boemo bo tlase, joalo ka ho fihlella sebaka sa memori kamora hore e lokolloe, li-null pointer dereferences, buffer overruns, jj. Motsamaisi oa liphutheloana o ntse a ntlafatsoa ho aba lilaebrari, ho netefatsa ho bokelloa le ho laola litšepe ka morero. thepa, ho u lumella ho fumana lilaebrari tse hlokahalang bakeng sa lenaneo ka ho tobetsa hanngoe feela. Sebaka sa polokelo se tšehetsoa ho amohela lilaebrari crates.io.

Lengolong la phatlalatso ea tokollo e ncha, baetsi ba Rust ba ile ba kenella lipolotiking 'me ba hana ka ho hlaka ho phatlalatsa tlhahlobo e feletseng ea liphetoho tsa Rust 1.44 e le pontšo ea bonngoe le baipelaetsi khahlanong le pefo ea mapolesa, e bontšang hore taba ena ke ea bohlokoa haholo. hofeta phapanyetsano ya tsebo ya botekgeniki. Motheo boiqapelo:

  • Motsamaisi oa sephutheloana sa Cargo o kopanya taelo ea "cargo tree", e bonts'ang kerafo e ts'oanang ea ho itšetleha ka sefate. Hape ke khetho ea "-duplicates" ("cargo tree -d"), e leng se u lumellang hore u hlahlobe ho itšetleha ka mefuta e fapaneng ea sephutheloana se le seng.

    mdbook v0.3.2 (/Users/src/rust/mdbook)
    ├── ammonia v3.0.0
    │ ├── html5ever v0.24.0
    │ │ ├── log v0.4.8
    │ │ │ └── cfg-haeba 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
    │ │ │ [ho itšetleha ka ho haha] │ │ │ └── version_check v0.1.5
    ...

  • Bakeng sa lits'ebetso tse sa tlamelletsoeng ho std ("#![no_std]"), ts'ehetso bakeng sa mekhoa ea mananeo a asynchronous e kengoa ts'ebetsong ho ipapisitse le "async" tšebetso, async move { ... } block le ".await" opareitara, eo nolofatsa ho ngola li-non-blockers tse tsamaisang taelo e kholo.
  • Tšehetso bakeng sa sekema sa tlhaloso ea maemo a phahameng a mojule e kentsoe ho mohlahlobi. Mohlala, moaho o latelang o ke ke oa hlahisa phoso, leha ho se na mojule "foo/bar/baz.rs" (mohaho o ntse o sa sebetse hantle mme o ka baka phoso, empa liphetoho li ka bonoa le ho aroloa ho boemo ba ho bokella boholo le maemo):

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

  • Rustc compiler e ekelitse bokhoni ba ho sebelisa folakha ea "-C codegen-units" ka mokhoa o ntseng o eketseha. Ho kenngwa tshebetsong ha catch_unwind ho hlahlobilwe hape e le hore ho se be le kgahlamelo ya tshebetso haeba tshebetso ya ho phutholla e timilwe mme ha ho mekgelo e bang teng.
  • Tšehetso ea boemo ba 64 e fanoe bakeng sa liforomo tsa aarch64-tse sa tsejoeng-ha ho letho, aarch64-tse sa tsejoeng-none-softfloat, arm86-apple-tvos le x64_XNUMX-apple-tvos platforms. Boemo ba boraro bo kenyelletsa tšehetso ea mantlha, empa ntle le tlhahlobo e ikemetseng le phatlalatso ea meaho ea semmuso.
  • Karolo e ncha ea API e fetiselitsoe sehlopheng se tsitsitseng, ho kenyelletsa le ho tsitsisoa
    PathBuf::ka_bokhoni,
    PathBuf:: bokhoni,
    PathBuf :: hlakile,
    PathBuf:: boloka,
    PathBuf:: boloka_hantle,
    PathBuf::honyela_ho_ho lekana,
    {f32|f64}::ho_int_unchecked,
    Sebopeho::align_to,
    Sebopeho::pad_to_align,
    Sebopeho::ramo le
    Sebopeho:: atolosa.

  • Mesebetsi e atolositsoeng ea laeborari e tloaelehileng:
    • E kentse mofuta o ikhethileng oa "vec![]" o hlahang ka kotloloho ho Vec::new(), e lumellang "vec![]" ho sebelisoa moelelong ho fapana le li-constants.
    • Kenyelletso (impl) ea tšobotsi e kenyellelitsoeng ho fetolela::Infallible Hash.
    • OsString e sebelisa lisupa tse bohlale DerefMut и IndexMut, e khutlisetsang "&mut OsStr".
    • Tšehetso e ekelitsoeng bakeng sa Unicode 13.
    • E kentsoe ka String Ho tsoa ho<&mut str>.
    • IoSlice e sebelisa mokhoa ona khopi.
    • Vec kenngwa tshebetsong Ho tloha<[T; N]>.
    • proc_macro::LexError e sebelisa fmt:: Pontšo le Phoso.
  • Tšobotsi ea "const", e etsang qeto ea hore na e ka sebelisoa moelelong ofe kapa ofe ho e-na le li-constants, e sebelisoa ho tloha ho_le_bytes, ho_le_bytes, ho tloha_be_bytes, ho_be_bytes, ho tloha_ne_bytes le ho_ne_bytes mekhoa bakeng sa mefuta eohle ea linomoro.
  • Tšehetso e ekelitsoeng bakeng sa ho hlahisa lilaebrari tse tsitsitseng ka ".a" format ho e-na le ".lib" bakeng sa liforomo tsa GNU Windows.
  • Litlhoko tse tlase tsa LLVM li phahamisitsoe ho mofuta oa 8 oa LLVM.

Source: opennet.ru

Eketsa ka tlhaloso