Rust 1.68 Programming Language Tso tawm

Kev tso tawm ntawm Rust 1.68 cov lus qhia dav dav, 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 qhia txog kev nyab xeeb ntawm kev nco thiab muab txoj hauv kev kom ua tiav txoj haujlwm siab sib luag thaum tsis txhob siv cov khoom siv khib nyiab thiab lub sijhawm ua haujlwm (runtime raug txo qis rau kev pib pib thiab kev saib xyuas ntawm lub tsev qiv ntawv txheem).

Rust lub cim xeeb tuav txoj kev cawm tus tsim tawm los ntawm kev ua yuam kev thaum tswj cov taw qhia thiab tiv thaiv cov teeb meem uas tshwm sim los ntawm kev ua haujlwm qis 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.

Kev nyab xeeb nco yog muab rau hauv Rust ntawm lub sijhawm sau los ntawm kev siv tshuaj xyuas, ua raws li cov tswv cuab ntawm cov khoom, khaws cov khoom siv lub neej (scopes), thiab ntsuas qhov tseeb ntawm kev nkag mus rau lub cim xeeb thaum lub sijhawm ua tiav cov lej. Rust kuj tseem muab kev tiv thaiv tus lej ntau dhau, yuav tsum muaj qhov sib txawv kom pib ua ntej siv, ua haujlwm yuam kev zoo dua hauv cov tsev qiv ntawv tus qauv, siv lub tswv yim ntawm cov ntaub ntawv tsis hloov pauv thiab hloov pauv los ntawm lub neej ntawd, thiab muaj kev ntaus ntawv zoo li qub kom txo qis qhov yuam kev.

Main innovations:

  • Tus neeg saib xyuas pob khoom thauj thiab lub chaw khaws khoom crates.io tau ruaj khov kev txhawb nqa rau Sparse raws tu qauv, uas txhais txoj hauv kev tshiab ntawm kev ua haujlwm nrog qhov ntsuas uas qhia txog cov khoom muaj nyob ntawm txhua pob khoom uas muaj nyob hauv lub chaw cia khoom. Cov txheej txheem tshiab tso cai rau koj kom nce qhov nrawm ntawm kev ua haujlwm nrog crates.io thiab daws cov teeb meem scaling nrog kev loj hlob ntxiv ntawm cov pob hauv cov chaw cia khoom.

    Txhawm rau txo qhov kev ncua sij hawm los ntawm kev rub tawm tag nrho qhov Performance index, Sparse es tsis txhob nkag mus rau qhov Performance index siv Git cuam tshuam ncaj qha rub tawm HTTPS tsuas yog cov ntaub ntawv tsim nyog, suav nrog qhov kev vam meej ntawm ib qhov project. Ib qho kev pabcuam tshiab, index.crates.io, yog siv los muab cov ntaub ntawv ntsuas. Los ntawm lub neej ntawd, cov txheej txheem tshiab tau npaj yuav siv rau hauv Rust 1.70 ceg, thiab ua ntej ntawd, txhawm rau ua kom nws, koj tuaj yeem teeb tsa qhov chaw hloov pauv "CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse" lossis ntxiv ' raws tu qauv =' parameter rau "[registries. crates-io]" ntu ntawm .cargo/config.toml cov ntaub ntawv 'sparse'.

  • Ntxiv cov "pin!" macro, uas tso cai rau koj los tsim tus Pin <&mut T> qauv los ntawm kev qhia "T" nrog rau hauv zos pinning ntawm nws lub xeev (tsis zoo li Box:: tus pin, nws tsis faib lub cim xeeb ntawm lub heap, tab sis khi ntawm pawg pawg).
  • Ib tug default memory allocation handler tau raug npaj, siv thaum siv cov txheej txheem alloc pob. Cov ntawv thov uas tsuas yog tso cai rau alloc (tsis muaj std) tam sim no yuav hu rau "kev ceeb ntshai!" tus neeg saib xyuas thaum lub cim xeeb faib ua tsis tiav, uas tuaj yeem xaiv tau cuam tshuam siv "#[panic_handler]". Cov kev pab cuam uas siv lub tsev qiv ntawv std yuav txuas ntxiv luam cov ntaub ntawv yuam kev rau stderr thiab poob.
  • Ib feem tshiab ntawm API tau raug hloov mus rau qeb ntawm qhov ruaj khov, suav nrog cov txheej txheem thiab kev siv ntawm cov yam ntxwv tau ruaj khov:
    • {core, std}::pin::pin!
    • impl Los ntawm rau {f32,f64}
    • std::path::MAIN_SEPARATOR_STR
    • impl DerefMut rau PathBuf
  • 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 nyob rau hauv VecDeque:: haujlwm tshiab.
  • Txhawm rau ua haujlwm ntawm Android platform, tsawg kawg NDK r25 (API 19) tam sim no xav tau, piv txwv li. Qhov tsawg kawg nkaus txhawb Android version tau raug tsa mus rau 4.4 (KitKat).
  • Qhov thib peb theem ntawm kev txhawb nqa tau siv rau Sony PlayStation Vita platform (armv7-sony-vita-newlibeabihf). 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 qhov chaws puas tuaj yeem tsim.

Tau qhov twg los: opennet.ru

Ntxiv ib saib