Rust 1.68 Rilaxx tal-Lingwa ta' Programmazzjoni

Ġiet rilaxxata l-lingwa ta 'programmar għal skopijiet ġenerali Rust 1.68, imwaqqfa mill-proġett Mozilla iżda issa żviluppat taħt l-awspiċi tal-organizzazzjoni indipendenti mingħajr skop ta' qligħ Rust Foundation. Il-lingwa tiffoka fuq is-sikurezza tal-memorja u tipprovdi l-mezzi biex tikseb paralleliżmu għoli tax-xogħol filwaqt li tevita l-użu ta 'ġbir ta' żibel u runtime (runtime huwa mnaqqas għal inizjalizzazzjoni bażika u manutenzjoni tal-librerija standard).

Il-metodi tal-immaniġġjar tal-memorja ta 'Rut isalvaw lill-iżviluppatur minn żbalji meta jimmanipula l-indikazzjonijiet u jipproteġu kontra problemi li jinqalgħu minħabba t-tqandil tal-memorja ta' livell baxx, bħall-aċċess għal żona tal-memorja wara li tkun ġiet meħlusa, dereferencing null pointers, buffer overruns, eċċ. Biex iqassam il-libreriji, jipprovdi bini u jimmaniġġja d-dipendenzi, il-proġett jiżviluppa l-maniġer tal-pakkett tat-Tagħbija. Ir-repożitorju crates.io huwa appoġġjat għall-hosting tal-libreriji.

Is-sikurezza tal-memorja hija pprovduta f'Rut fil-ħin tal-kompilazzjoni permezz ta 'verifika ta' referenza, iżżomm kont tal-pussess tal-oġġett, iżżomm kont tal-ħajja tal-oġġetti (ambiti), u tivvaluta l-korrettezza tal-aċċess għall-memorja waqt l-eżekuzzjoni tal-kodiċi. Rust jipprovdi wkoll protezzjoni kontra overflows integer, jeħtieġ inizjalizzazzjoni obbligatorja ta 'valuri varjabbli qabel l-użu, jimmaniġġja l-iżbalji aħjar fil-librerija standard, japplika l-kunċett ta' referenzi immutabbli u varjabbli b'mod awtomatiku, joffri tajpjar statiku qawwi biex jimminimizza l-iżbalji loġiċi.

Innovazzjonijiet ewlenin:

  • Il-maniġer tal-pakkett tat-Tagħbija u r-repożitorju crates.io stabbilizzaw appoġġ għall-protokoll Sparse, li jiddefinixxi mod ġdid ta 'ħidma b'indiċi li jirrifletti l-verżjonijiet disponibbli tal-pakketti kollha eżistenti fir-repożitorju. Il-protokoll il-ġdid jippermettilek li żżid b'mod sinifikanti l-veloċità tax-xogħol ma 'crates.io u ssolvi problemi ta' skalar bi tkabbir ulterjuri fin-numru ta 'pakketti fir-repożitorju.

    Biex jitnaqqas id-dewmien ikkawżat mit-tniżżil ta 'indiċi sħiħ, Sparse minflok jaċċessa l-indiċi bl-użu ta' Git jinvolvi tniżżil dirett fuq HTTPS biss tad-dejta tal-indiċi meħtieġa, li tkopri d-dipendenzi ta 'proġett partikolari. Servizz ġdid, index.crates.io, jintuża biex jipprovdi dejta tal-indiċi. B'mod awtomatiku, il-protokoll il-ġdid huwa ppjanat li jintuża fil-fergħa Rust 1.70, u qabel dan, biex din tkun tista', tista' tissettja l-varjabbli ambjentali "CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse" jew iżżid il-parametru 'protocol =' mar-"[reġistri. crates-io]" taqsima tal-fajl .cargo/config.toml 'sparse'.

  • Żid il-makro "pin!", li jippermettilek toħloq struttura Pin<&mut T> mill-espressjoni "T" b'pinning lokali tal-istat tagħha (b'differenza Box::pin, ma tallokax memorja fuq il-borġ, iżda torbot fil-livell tal-munzell).
  • Ġie propost maniġer tal-iżbalji tal-allokazzjoni tal-memorja default, użat meta jintuża l-pakkett standard tal-allokazzjoni. Applikazzjonijiet li jippermettu biss alloc (mingħajr std) issa se jsejħu l-"paniku!" Programmi li jużaw il-librerija std se jkomplu jistampaw informazzjoni ta 'żball għal stderr u jiġġarrfu.
  • Porzjon ġdid tal-API ġie mċaqlaq għall-kategorija ta 'stabbli, inklużi l-metodi u l-implimentazzjonijiet tal-karatteristiċi ġew stabbilizzati:
    • {core,std}::pin::pin!
    • impl Minn għal {f32,f64}
    • std::path::MAIN_SEPARATOR_STR
    • impl DerefMut għal PathBuf
  • L-attribut "const", li jiddetermina l-possibbiltà li jintuża fi kwalunkwe kuntest minflok kostanti, jintuża fil-funzjoni VecDeque::new.
  • Biex taħdem fuq il-pjattaforma Android, mill-inqas NDK r25 (API 19) issa huwa meħtieġ, i.e. Il-verżjoni minima ta' Android appoġġjata żdiedet għal 4.4 (KitKat).
  • It-tielet livell ta 'appoġġ ġie implimentat għall-pjattaforma Sony PlayStation Vita (armv7-sony-vita-newlibeabihf). It-tielet livell jinvolvi appoġġ bażiku, iżda mingħajr ittestjar awtomatizzat, pubblikazzjoni ta 'bini uffiċjali, jew verifika jekk il-kodiċi jistax jinbena.

Sors: opennet.ru

Żid kumment