Rust 1.55 Programming Language Release

De frijlitting fan de systeemprogrammearringstaal Rust 1.55, oprjochte troch it Mozilla-projekt, mar no ûntwikkele ûnder auspysjes fan de ûnôfhinklike non-profit organisaasje Rust Foundation, is publisearre. De taal rjochtet him op ûnthâld feilichheid, jout automatyske ûnthâld behear, en jout de middels te berikken hege taak parallelism sûnder in gebrûk garbage collector of runtime (runtime wurdt redusearre ta basis inisjalisaasje en ûnderhâld fan de standert bibleteek).

It automatyske ûnthâldbehear fan Rust elimineert flaters by it manipulearjen fan oanwizers en beskermet tsjin problemen dy't ûntsteane út manipulaasje fan ûnthâld op leech nivo, lykas tagong krije ta in ûnthâldregio nei't it is befrijd, nul-oanwizers dereferences, bufferoverruns, ensfh. Om bibleteken te fersprieden, assemblage te garandearjen en ôfhinklikens te behearjen, ûntwikkelet it projekt de Cargo-pakketbehearder. It crates.io repository wurdt stipe foar hosting fan bibleteken.

Wichtichste ynnovaasjes:

  • De Cargo-pakketbehearder hat de mooglikheid om dûbele flaters en warskôgings te fusearjen dy't foarkomme by in build. By it útfieren fan kommando's lykas "cargo test" en "cargo check --all-targets" dy't resultearje yn meardere builds fan in pakket mei ferskate parameters, wurdt de brûker no in gearfetting toand fan it foarkommen fan in werheljend probleem, ynstee fan te sjen meardere identike warskôgings by it bouwen fan itselde ding meardere kearen. $ cargo +1.55.0 check -all-targets Kontrolearje foo v0.1.0 warskôging: funksje wurdt nea brûkt: 'foo' —> src/lib.rs:9:4 | 9 | fn foo() {} | ^^^ | = notysje: '#[warn(dead_code)]' op standert warskôging: 'foo' (lib) generearre 1 warskôging warskôging: 'foo' (lib test) generearre 1 warskôging (1 duplikaat) Finished dev [unoptimized + debuginfo] doel (s) yn 0.84s
  • De driuwende punt-parsearkoade yn 'e standertbibleteek is ferpleatst om it flugger en krekter Eisel-Lemire-algoritme te brûken, dat guon earder waarnommen problemen mei it ôfrûnjen en parsearjen fan nûmers mei heul grutte sifers hat oplost.
  • De mooglikheid om net-sletten berik yn sjabloanen op te jaan is stabilisearre ("X.." wurdt ynterpretearre as in berik dat begjint mei de wearde X en einiget mei de maksimale wearde fan it heule getaltype): match x as u32 { 0 => println! ("nul!"), 1.. => println!("posityf getal!"), }
  • Utwreide flaterfarianten bedekt troch std :: io :: ErrorKind (klassifisearret flaters yn kategoryen lykas NotFound en WouldBlock). Earder foelen flaters dy't net pasten yn besteande kategoryen yn 'e ErrorKind :: Oare kategory, dy't ek brûkt waard foar flaters yn koade fan tredden. Der is no in aparte ynterne kategory ErrorKind :: Uncategorized foar flaters dy't net passe yn besteande kategoryen, en de ErrorKind :: Oare kategory is beheind ta flaters dy't net foarkomme yn de standert bibleteek (standert bibleteekfunksjes dy't weromkomme io :: Flater net mear brûke de ErrorKind :: kategory Oare).
  • In nij diel fan 'e API is ferpleatst nei de kategory stabile, ynklusyf de metoaden en ymplemintaasjes fan eigenskippen binne stabilisearre:
    • Bûn::kloned
    • Drain ::as_str
    • IntoInnerError :: into_error
    • IntoInnerError :: into_parts
    • MaybeUninit :: assume_init_mut
    • MaybeUninit::assume_init_ref
    • MaybeUninit::skriuw
    • array :: map
    • ops :: ControlFlow
    • x86::_bittest
    • x86 :: _bittestandcomplement
    • x86::_bittestandreset
    • x86::_bittestandset
    • x86_64::_bittest64
    • x86_64::_bittestandcomplement64
    • x86_64::_bittestandreset64
    • x86_64::_bittestandset64
  • It attribút "const", dat de mooglikheid bepaalt om it yn elke kontekst te brûken ynstee fan konstanten, wurdt brûkt yn 'e str::from_utf8_unchecked metoade.
  • It tredde nivo fan stipe is ymplementearre foar it powerpc64le-unknown-freebsd-platfoarm. It tredde nivo omfettet basisstipe, mar sûnder automatisearre testen, publisearjen fan offisjele builds, of kontrolearjen oft de koade boud wurde kin.

Boarne: opennet.ru

Add a comment