Rust 1.37 Programming Language Release

publisearre systeem programmeartaal release Roest 1.37, oprjochte troch it Mozilla-projekt. De taal rjochtet him op ûnthâld feiligens, soarget foar automatyske ûnthâld behear, en jout in middel om te kommen ta hege taak parallelism sûnder gebrûk fan in garbage collector of runtime.

Rust's automatyske ûnthâldbehear befrijt de ûntwikkelder fan oanwizermanipulaasje en beskermet tsjin problemen dy't ûntsteane út leechnivo-ûnthâldmanipulaasje, lykas nei-frije ûnthâldtagongen, nul-oanwizer-ferwizings, buffer-oerrin, en sa. In pakketbehearder wurdt ûntwikkele om bibleteken te fersprieden, assemblage te garandearjen en ôfhinklikens te behearjen troch it projekt. Lading, wêrtroch jo de biblioteken dy't nedich binne foar it programma yn ien klik krije. In repository wurdt stipe om bibleteken te hostjen crates.io.

haad ynnovaasjes:

  • Yn 'e rustc-kompiler befeilige stipe foar optimalisaasje basearre op koadeprofilearringsresultaten (PGO, Profile-Guided Optimization),
    wêrtroch jo mear optimale koade kinne generearje op basis fan 'e analyze fan statistiken sammele tidens programma-útfiering. Om in profyl te generearjen, wurdt de flagge "-C profile-generate" levere, en om it profyl te brûken tidens gearstalling - "-C profile-use" (yn earsten wurdt it programma gearstald mei de earste flagge, rint om, en nei it meitsjen it profyl, it wurdt wer gearstald mei de twadde flagge);

  • By it útfieren fan it kommando "cargo run", dat handich is om te brûken foar fluch testen fan konsole-applikaasjes, is de mooglikheid om automatysk in útfierber bestân te selektearjen om te rinnen tafoege as d'r ferskate útfierbere bestannen yn it pakket binne. De standert triem dy't wurde útfierd wurdt bepaald troch de standert-run rjochtline yn de [pakket] seksje mei pakket parameters, dat kinne jo foarkomme dat eksplisyt spesifisearje de triemnamme troch de "-bin" flagge eltse kear as jo rinne "cargo run";
  • It kommando "frachtferkeaper", earder levere as apart pakket. It kommando lit jo wurk organisearje mei in lokale kopy fan ôfhinklikens - nei it útfieren fan "frachtferkeaper", wurde alle boarnekoades fan 'e ôfhinklikens fan it projekt ynladen fan crates.io nei in lokale map, dy't dan kin wurde brûkt foar wurk sûnder tagong ta kisten. io (nei it útfieren fan it kommando, wurdt in hint foar it feroarjen fan de konfiguraasje toand om de map te brûken foar builds). Dizze funksje wurdt al brûkt om de levering fan 'e rustc-kompiler te organisearjen mei ferpakking fan alle ôfhinklikens yn ien argyf mei de frijlitting;
  • It is no mooglik om keppelings te meitsjen nei enum-opsjes mei help fan type-aliassen (bygelyks yn it lichem fan 'e funksje "fn increment_or_zero(x: ByteOption) kinne jo "ByteOption::Gjin => 0") opjaan, type berekkeningskonstruksjes (‹ MyType‹.. ››::option => N) of Self-tagongen (yn blokken c &self kinne jo "Self::Quarter => 25" oantsjutte);
  • De mooglikheid tafoege om net neamde konstanten te meitsjen yn makro's. Yn stee fan it elemint namme yn "const" te definiearjen, kinne jo no it karakter "_" brûke om in net-werheljende identifier dynamysk te selektearjen, om nammekonflikten te foarkommen as de makro wer oproppen wurdt;
  • De mooglikheid tafoege om it "#[repr(align(N))"-attribút te brûken mei enums mei in syntaksis dy't fergelykber is mei it definiearjen fan in AlignN‹T›-struktuer mei ôfstimming en dan AlignN‹MyEnum› te brûken;
  • In nij diel fan 'e API is ferpleatst nei de stabile kategory, ynklusyf de BufReader :: buffer, BufWriter :: buffer, en
    Sel::from_mut,
    Sel::as_slice_of_cells,
    DoubleEndedIterator ::nth_back,
    Opsje :: xor
    {i,u}{8,16,64,128,grutte}::reverse_bits, Wrapping::reverse_bits en
    slice::copy_within.

Derneist kin it opmurken wurde begjin fan testen it projekt Async-std, dy't biedt in asynchronous fariant fan de Rust standert bibleteek (in haven fan de std bibleteek, dêr't alle ynterfaces wurde oanbean yn in asyngroane ferzje en binne klear foar gebrûk mei de async / wachtsje syntaksis).

Boarne: opennet.ru

Add a comment