Dimitte programmandi linguae Rust 1.75 et unikernel Eremitae 0.6.7

Consilium programmandi generalis-propositum linguae Rust 1.75, 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 utendi "async fn" et notationem "->impl Trait" in notis privatis. Exempli gratia, "->impl Trait" scribere potes methodum notam quae iterator redit: trait Continens { fn items(&self) -> impl Iterator; } impl Continens for MyContainer { fn items(&self) -> impl Iterator { self.items.iter().cloned() } }

    Etiam lineamenta "async fn": trait HttpService {async fn arcessere(&se, url: Url) -> HtmlBody; // augebitur ad: // fn arcesse(&self, url: Url) -> impl Future; }

  • Addidit API ad exsertiones calculandas byte relativa indicibus. Cum nudis indicibus laborat ("*const T" et "*mut T"), operationes requiri ad regulam addere offset. Antea, hac constructione uti " :: adde(1) fieri potuit, addito numero bytes pro magnitudine "size_of::()". Novus API hanc operationem simplificat et sinit possibilitatem adumbrare exsertiones byte sine prima specierum ad "*const u8" vel "mut u8" mittere.
    • monstratorem :: byte_add
    • monstratorem :: byte_offset
    • monstratorem :: byte_offset_from
    • regula :: byte_sub
    • monstratorem :: wrapping_byte_add
    • monstratorem :: wrapping_byte_offset
    • monstratorem :: wrapping_byte_sub
  • Continuavit opus ad augendam observantiam a rustc compilator. Fulmen optimizer addidit, qui in scaena post-link decurrit et informationes utitur ex profile exsecutionis praeparato. BOLT utens te permittit ut compilator executionem accelerare circiter 2% mutando extensionem librustc_driver.so bibliothecae codice ad efficaciorem usum processus cache.

    Inclusa aedificatio rustc compilator cum "-Ccodegen-unis=1" optionis ad emendandum qualitatem optimae in LLVM. Examinationes factae augmentum in effectu ostendunt in casu "-Ccodegen-unis=1" constructum per circiter 1.5%. Optimizationes additae possunt per default tantum pro suggestu x86_64 ignoto-linux-gnu.

    Praedictae optimizationes a Google temptatae sunt ad reducere tempus componentium suggestuum Android in Rust scriptum. Utens "-C codegen-unitates=1" cum aedificaretur Android permisit nos ad magnitudinem toolkit reducere per 5.5% et augere effectum per 1.8%, dum tempus fabricandi ipsius instrumenti fere duplicatur.

    Ut nexus temporis purgamentum collectionis ("-gc-sectiones") perficiendi quaestum attulit usque ad 1.9%, ut nexus Optimizationis (LTO) usque ad 7.7%, et profile fundatae optimizations (PGO) usque ad 19.8%. In finali, optimizationes utentes utilitatis fulmen adhibitae sunt, quae auctum ad 24.7% aedificandi celeritatem permiserunt, sed magnitudo toolkit augetur per 10.9%.

    Dimitte programmandi linguae Rust 1.75 et unikernel Eremitae 0.6.7

  • Nova portio API in categoriis stabilis mota est, additis methodis et notarum exsecutionibus confirmatae sunt:
    • Atomico*:: from_ptr
    • FileTimes
    • FileTimesExt
    • File :: set_modified
    • Fasciculus :: set_times
    • IpAddr ::to_canonic
    • Ipv6Addr::to_canonic
    • Option::as_slice
    • Option :: as_mut_slice
    • monstratorem :: byte_add
    • monstratorem :: byte_offset
    • monstratorem :: byte_offset_from
    • regula :: byte_sub
    • monstratorem :: wrapping_byte_add
    • monstratorem :: wrapping_byte_offset
    • monstratorem :: wrapping_byte_sub
  • attributum "const", quod determinat facultatem utendi in quovis contextu loco constantium, in functionibus adhibetur;
    • Ipv6Addr ::to_ipv4_mapped
    • MaybeUninit :: assume_init_read
    • MaybeUninit :: nulla
    • mem :: discriminis
    • mem :: zeroed
  • Tertius subsidii gradus ad effectum deductum est pro suggestis csky-ignotis-linux-gnuabiv2hf, ignotis-netbsd et mipsel-ignotis-netbsd. Tertius gradus fundamentalis subsidii implicat, sed sine probatione automated, officialium aedificationum evulgandarum, vel iniecta an codici aedificari possit.

Accedit, notare possumus novam versionem propositi Eremitae, quae specialem nucleum (unikernel) in lingua rubigine scriptum evolvit, instrumenta ad applicationes se continentes aedificandas praebens quae super hypervisoris vel nudis ferramentis sine stratis adiectis currere possunt. et sine operante. Cum aedificatur, applicatio bibliothecae immobiliter coniungitur, quae sine instrumento omnia functionis necessariae, sine nucleo et systemate bibliothecae OS ligato. Codex exertus sub Apache 2.0 et MIT licentias distributus est. Conventus sustinetur ad solam executionem applicationum scriptarum in Rubigo, Go, Fortran, C et C++. Propositum est etiam bootloader suum enucleare qui te permittit ut Hermit in QEMU et KVM deducas.

Source: opennet.ru