Dimittis Rust 1.74 linguae programmationis. RustVMM audit. Rewriting Binder in Rust

Consilium programmandi generalis-propositum linguae Rust 1.74, fundatum a Mozilla inceptum, nunc sub auspiciis instituendi Rust Foundation independens non lucrum, dimissum est. Lingua ad salutem memoriae intendit et medium praebet ut ad summum officium parallelismum perveniatur, vitato purgamentorum collectoris et runtime usui (runtime ad initializationem fundamentalem et sustentationem bibliothecae vexillum redacta est).

Rubiginis methodos memoria tractandi praeter elit ab erroribus, cum argumentis abusionibus defendunt et contra difficultates oriuntur, ob memoriam humili gradu tractantem, ut accessu memoriae area postquam liberata est, dereferencing nullis indicibus, quiddam eliminatum, etc. Bibliothecas distribuere, aedifices praebere et clientelas administrare, consilium sarcina oneraria onerariarum enucleat. Crates.io repositorium ad bibliothecas hospites sustentatur.

Memoria salutis in Rubigo tempore compilationis providetur, per respectum inhibitionem, semita obiecti possessionis custodiens, semita obiecti vitarum (scoporum), et rectitudo memoriae accessum perpendens in codice executioni. Rubigo etiam tutelam praebet contra integris scaenicis, amet initializationem valorum variabilium ante usum requirit, errores meliores in bibliotheca norma tractat, notionem immutabilium indiciorum et variabilium per defaltam applicat, validas typings stabilis praebet ad errores logicos extenuendos.

Innovationes principales:

  • Addidit facultatem linteolum coercet configurandi per fasciculum Cargo.toml cum villico involucro manifesto. Ad uncinos unctiones definiendas, ut gradus responsionis (veto, negare, monere, permittere), novae sectiones "linmenta" et "[linea]" proponuntur, mutationes in quibus considerantur quando decernitur. reaedificandi. Exempli gratia, pro "-F", "-D", "-W" et "-A" notare, cum congregare vel addere "#![negant(unumne_code)]" et "#! : ” attribuit codicem : enum_glob_use )]" nunc in Cargo manifesto adhiberi potest: [lints.rust] unsafe_code = "interdicere" [lints.clippy] enum_glob_use = "negare"
  • Procurator involucrum Crate facultatem authenticitatis connectendi cum repositorio addidit. Distributio fundamentalis subsidia includit parametris in Linux documentorum thesauris (libsecreta fundatis), macOS (Keychain) et Windows (Fenestra Credential Procurator), sed ratio modularis initio facta est ac permittit ut opus instituas cum variis provisoribus ad condendum ac signa gignens, exempli gratia, plugin ad 1Password password procurator utens paratus est. Repositorium ad quamlibet operationem requiri potest authentica, non solum ad confirmandas sarcinas publicatas. ~/.cargo/config.toml [subcriptio] global-credential-providers = ["cargo:token", "cargo:libsecret"]
  • Auxilio reditus speciei proiectiones (impl_projectiones) confirmatae sunt, permittens se et T ::Assoc nominari in reditu species ut "async fn" et "->impl Trait". struct Wrapper<'a, T>(&'a T); // Opacum reddit genera quae nominant `Self`: impl Wrapper<'_, ()> { async fn async_fn() -> Self { /* ... */ } fn impl_trait() -> impl Iterator { /* ... */ } } trait Trait<'a> { type Assoc; fn new() -> Self::Assoc; } impl Trait<'_> for () { type Assoc = (); fn new() {} } // Opaque return genera quae genus adiunctum nominant: impl<'a, T: Trait<'a>> Wrapper<'a, T> { async fn mk_assoc() -> T::Assoc { /* ... */ } fn a_few_assocs() -> impl Iterator { /* ... */ } }
  • Nova portio API in categoriis stabilis mota est, additis methodis et notarum exsecutionibus confirmatae sunt:
  • attributum "const", quod determinat facultatem utendi in quovis contextu loco constantium, in functionibus adhibetur;
    • core :: mem :: transforme_copy
    • str :: is_ascii
    • [u8]::is_ascii
    • core :: num :: Saturating
    • impl Ex pro std :: processu ::Stdio
    • impl Ex pro std :: processu ::Stdio
    • impl A pro std:: process::Puer{Stdin, Stdout, Stderr}
    • impl A pro std:: process::Puer{Stdin, Stdout, Stderr}
    • std ::ffi :: OsString :: from_encoded_bytes_unchecked
    • std ::ffi :: OsString :: into_encoded_bytes
    • std ::ffi :: OsStr :: from_encoded_bytes_unchecked
    • std ::ffi :: OsStr :: as_encoded_bytes
    • std ::io :: Error :: alius
    • impl TryFrom quia u16 "
    • impl A<&[T; N]>pro Vec
    • impl From<&mut [T; N]>pro Vec
    • impl Ex<[T; N]> pro Arc<[T]>
    • impl Ex<[T; N]> pro Rc<[T]>
  • Compilator, toolkit, bibliotheca vexillum, ac applicationes executables generatae auxit requisita pro suggestis Apple, nunc saltem macOS 10.12 Sierra, iOS 10, et tvOS 10 in 2016 ad currendum emissi.
  • Tertius gradus subsidii ad suggestum i686-pc-fenestris gnullvm effectum est. Tertius gradus fundamentalis subsidii implicat, sed sine probatione automated, officialium aedificationum evulgandarum, vel iniecta an codici aedificari possit.
  • Secundus gradus subsidii ad scopum loongarch64-ignotum nullum suggestum impletum est. Secundum gradum subsidii involvit syngrapham synagogam.

Accedit duo certe ad Rusticam linguam pertinentia notari possunt;

  • OSTIF (Open Source Technology Fundi emendatio), ad securitatem aperiendam inceptis fons creatis confirmandis, eventus computum RustVMM consilii edidit, qui partes praebet ad faciendum opus hypervisores speciales et machinae virtuales monitores (VMMs). Societates ut Intel, Alibaba, Amazon, Google, Linaro et Red Hat participant progressionem rei. Intel Cloud Hypervisor et Dragonball hypervisores excoluntur secundum RustVMM. Auditorium confirmavit qualitatem codicis basis et usus technicae artis in architectura et exsecutione quam ad securitatem maximam obtinendam intendebant. In computo 6 problemata notata sunt quae directam ictum in salutem non habebant.
  • Google novam exsecutionem ligamenti interprocessus communicationis mechanismi induxit, in Rust lingua rescriptum, ad Linux nucleum elit tabellariorum. Rework facta est ut pars rei ad securitatem confirmandam, technicas programmandi securas promovendas et efficientiam cognoscendi difficultates augendam cum memoria in Android operando (circiter 70% omnium periculosarum vulnerabilium quae in Android sunt causantur ex erroribus cum memoria laborantibus ). Exsecutio Binder in Rust pari in functionality cum versione originali in C lingua consecuta, omnia AOSP (Android Open-Source Project) probat et adhiberi potest ad confirmandas editiones firmware operandas. Utriusque exsecutionis effectus in eodem fere gradu est (deviationes intra -1.96% et +1.38%).

Source: opennet.ru