Rust 1.52 Programming Language Tso tawm

Kev tso tawm ntawm cov kab lus programming Rust 1.52, tsim los ntawm Mozilla qhov project, tab sis tam sim no tsim los ntawm kev txhawb nqa ntawm lub koom haum ywj pheej tsis muaj txiaj ntsig Rust Foundation, tau tshaj tawm. Cov lus hais txog kev nyab xeeb ntawm kev nco, muab kev tswj hwm kev nco tsis siv neeg, thiab muab txoj hauv kev kom ua tiav cov haujlwm ua haujlwm siab tsis tas siv cov khoom siv khib nyiab lossis lub sijhawm ua haujlwm (runtime raug txo qis rau kev pib pib thiab kev saib xyuas ntawm lub tsev qiv ntawv txheem).

Rust txoj kev tswj hwm tsis siv neeg lub cim xeeb txuag tus tsim tawm los ntawm kev ua yuam kev thaum tswj cov taw qhia thiab tiv thaiv cov teeb meem uas tshwm sim vim kev tswj hwm kev nco qis, xws li nkag mus rau thaj chaw nco tom qab nws tau tso tawm, dereferencing null pointers, tsis overruns, thiab lwm yam. Txhawm rau faib cov tsev qiv ntawv, muab kev tsim kho thiab tswj hwm kev vam khom, qhov project tsim tus thawj tswj hwm pob khoom. Lub crates.io repository yog txaus siab rau hosting cov tsev qiv ntawv.

Main innovations:

  • Tshem tawm kev khi rau qhov kev txiav txim ntawm "cargo check" thiab "cargo clippy" commands. Yav dhau los, hu rau "cargo clippy" tom qab "cargo check" tsis tau tso tawm cov khoom siv hluav taws xob clippy (linter) vim tsis muaj cache cais rau cov qauv kuaj no. Tam sim no qhov teeb meem no tau raug daws thiab qhov kev txiav txim uas "cargo clippy" thiab "cargo check" hu ua tsis muaj teeb meem ntxiv lawm.
  • Ib feem tshiab ntawm API tau raug xa mus rau pawg ruaj khov, suav nrog cov hauv qab no tau ruaj khov:
    • Arguments::as_str
    • char:: MAX
    • char::REPLACEMENT_CHARACTER
    • char::UNICODE_VERSION
    • char::decode_utf16
    • char:: los ntawm_digit
    • char::from_u32_unchecked
    • char:: los ntawm_u32
    • daim::partition_point
    • str::rsplit_one ib
    • str::split_ib
  • Tus cwj pwm "const", uas txiav txim siab qhov muaj peev xwm ntawm kev siv nws hauv txhua lub ntsiab lus tsis yog qhov qub, yog siv rau hauv cov txheej txheem:
    • char::len_utf8
    • char::len_utf16
    • char::to_ascii_uppercase
    • char::to_ascii_lowercase
    • char::eq_ignore_ascii_case
    • u8::to_ascii
    • u8::to_ascii_lowercase
    • u8::eq_ignore_ascii_case
  • Ntxiv lint kos unsafe_op_in_unsafe_fn los txiav txim seb cov cai tsis zoo siv nyob rau hauv cov haujlwm tsis zoo yog tsim los ntawm cov blocks tsis zoo.
  • Nws raug tso cai rau nrum mutable pointers rau arrays rau hauv daim ntawv ntawm pointers rau hom array caij. cia mut x: [usize; 2] = [0, 0]; cia p = &mut x as *mut usize; cia p = &mut x as *const usize;
  • 9 daim tshev tshiab tau ntxiv rau clippy (linter).
  • Tus neeg saib xyuas pob khoom tam sim no txhawb nqa "manifest_path" teb hauv JSON rau pob. Ntxiv kev txhawb nqa rau kev qhia txog daim ntawv tso cai cov ntaub ntawv hauv SPDX 3.11 hom ntawv rau crates.io repository.
  • Nws raug tso cai los qhia ntau lub lim dej thaum khiav kev sim, piv txwv li khiav "cargo test - foo bar" yuav khiav tag nrho cov kev ntsuam xyuas sib piv cov qhov ncauj qhov ntswg "foo" thiab "bar".
  • Lub neej ntawd LLVM toolkit tau hloov kho rau LLVM 12.
  • Qhov thib peb theem ntawm kev txhawb nqa tau siv rau s390x-tsis paub-linux-musl, riscv32gc-unknown-linux-musl, riscv64gc-tsis paub-linux-musl thiab powerpc-unknown-openbsd platforms. Qib thib peb suav nrog kev txhawb nqa yooj yim, tab sis tsis muaj kev sim automated, tshaj tawm kev tsim kho, lossis tshawb xyuas seb tus lej puas tuaj yeem tsim.

Tau qhov twg los: opennet.ru

Ntxiv ib saib