Programmēšana

Kas jauns Rust 1.48

Programmatūras valodas Rust unikālā pieeja nodrošina labāku kodu ar mazāk kompromisiem nekā C, C ++, Go un citas valodas, kuras jūs, iespējams, lietojat. Tas tiek regulāri atjaunināts, bieži katru mēnesi.

Kur lejupielādēt jaunāko Rust versiju

Ja jums jau ir instalēta iepriekšējā Rust versija, izmantojot sarūsējis, varat piekļūt jaunākajai versijai, izmantojot šādu komandu:

$ rustup atjauninājums ir stabils

Saistītais video: drošākas programmatūras izstrāde ar Rust

Ātri apgūstiet jaunpienācēju Rust, kas paredzēts ātras, sistēmas līmeņa programmatūras izveidei. Šis divu minūšu animētais skaidrotājs parāda, kā Rust apiet nepatīkamos atmiņas un pārvaldības programmēšanas jautājumus.

Rust 1.48.0 jaunās funkcijas

Rust 1.48.0, kas tika atklāts 2020. gada 19. novembrī, piedāvā vieglāku sasaisti Rustdoc bibliotēkas dokumentācijas rīkā ar sintaksi, lai Rustdoc uzzinātu, kad izstrādātāji mēģina izveidot saiti ar tipu; Tiks ģenerēti vietrāži URL. Arī versijā 1.48.0:

  • Izstrādātāji var norādīt # {dok (alias = “”)] uz vienumiem, lai pievienotu meklēšanas aizstājvārdus, veicot meklēšanu, izmantojot Rustdoc lietotāja saskarni.
  • The nedrošs atslēgvārds tagad sintaktiski ir atļauts moduļos. Lai gan tas joprojām tiek semantiski noraidīts, to tagad var parsēt ar procesuālajiem makro.
  • Kompilatorā -C saite-pašpietiekama = kompilatora karogs ir stabilizēts. Tas stāsta rustc vai saistīt savu C izpildlaiku un bibliotēkas, vai paļauties uz ārēju saiti, lai tos atrastu. Tas tiek atbalstīts tikai vietnē windows-gnu, linux-musl, un biju es platformām.
  • Bibliotēkā [T; N]: Izmēģiniet no API tagad ir stabila. Izstrādātāji to var izmantot, lai mēģinātu pārvērst vektoru par noteikta garuma masīvu. Šajā laidienā stabilizējās arī piecas citas API: šķēle :: as_ptr_range, šķēle :: as_mut_ptr_range, VecDeque :: make_contiguous, nākotne :: gaida, un nākotne :: gatavs.
  • Arī bibliotēkā tagad tiek ieviesti visi jebkura garuma masīvi Izmēģiniet no.

Rust 1.47.0 jaunās funkcijas

Paziņots par 2020. gada 8. oktobri, Rust 1.47.0 nav jaunu valodas funkciju, taču tas uzlabo standarta bibliotēku. Dzīves kvalitāte un rīku ķēdes uzlabojumi, kā arī bibliotēkas stabilizācija ir atspoguļota laidienā. Jaunināšanai ir publicētas piezīmes par izlaidumu.

Rust 1.47.0 īpašās iespējas ietver:

  • Funkcija “const generics”, kas ietekmē lielāko masīvu iezīmes. Funkcija joprojām ir jāstabilizē. Rūsai trūkst iespēju būt vispārīgam attiecībā pret vesela skaitļa vērtībām, kas ir radījis problēmas ar masīviem. Šīs iespējas mērķis ir novērst šo problēmu un padarīt masīvus noderīgākus.
  • Jauninājums uz LLVM 11 kompilatora infrastruktūru, padarot to par noklusējumu.
  • Īsākas pēdas, kas atvieglo problēmu atrašanu.
  • rustc tagad atbalsta -C vadības plūsmas aizsargs, opcija, kas Windows ieslēgs Control Flow Guard drošības iespēju. Citas platformas ignorē šo karodziņu.
  • Rustdoc tagad atbalsta Ayu tēmu.
  • Deviņi API standarta bibliotēkā tika stabilizēti: Ident :: new_raw, Range :: is_empty, RangeInclusive :: is_empty, Result :: as_deref, Result :: as_deref_mut, Vec :: noplūde, pointer :: offset_from, f32 :: TAU un f64 :: TAU.

Jaunās funkcijas 1.46.0

Rust 1.46, kas paziņots 2020. gada 27. augustā, ietver šādas iespējas:

  • Tagad var izmantot vairākas pamata valodas funkcijas const fn, ieskaitot ja, ja ļausspēlesun vairāki citi.
  • A # [track_caller] atribūts, kas paredzēts, lai uzlabotu kļūdu ziņojumus, kad atritināt un ar to saistītās funkcijas panikā, tagad ir stabils.
  • Mainot bibliotēku, std :: mem :: aizmirst tagad ir a const fn. Arī bibliotēkā tika stabilizētas divas jaunas API: Opcija :: zip un vec :: Drain :: as_slice.
  • Sastādītājam: citylib mērķi var izmantot Apple iOS un tvOS platformās.
  • Rekursīvai indeksēšanai grupās vairs nav nepieciešamas iekavas.

Rust 1.45.0 jaunās funkcijas

Paziņots 2020. gada 16. jūlijā, Rust 1.45 ietver šādus papildinājumus un uzlabojumus:

  • Tiek piedāvāts labojums, lai novērstu ilgstošu nepietiekamību, kad tiek izmantoti veseli skaitļi un pludiņi.
  • Stabilizācija tiek piedāvāta funkcijām līdzīgiem procesuālajiem makro izteiksmēs, modeļos un paziņojumos. Makro izmantošanas paplašināšana palīdz izmantot Rocket tīmekļa sistēmu Rust.
  • Vairākas bibliotēkas API ir stabilizētas, piemēram, Loka :: as_ptr, BTreeMap :: remove_entry, un Span :: atrisināts_at. Pilns API saraksts ir atrodams Rust Blog.

Rust 1.43.1 jaunās iespējas

Šis izlaidums tika ieviests 2020. gada 7. maijā, lai risinātu divas regresijas, kas ieviestas 1.43.0 stabilajā laidienā. Tas arī atjaunina OpenSSL versiju, ko izmanto Cargo pakotņu pārvaldnieks. Funkcijas ietver:

  • Rust 1.27 ieviesa atbalstu x86 procesora funkciju noteikšanai standarta bibliotēkā, izmantojot is_x86_feature_detected makro. Iekšējās pārstrukturēšanas dēļ Rust 1.43.0 neļāva atklāt funkcijas, kuras vēl nevar izmantot stabilā stāvoklī, lai gan to noteikšana iepriekš bija atļauta. Versija 1.43.1 nosaka šo regresiju.
  • Par salauztiem tiek piedāvāts labojums kravas pakete - saraksts komandu. Rust 1.43 pārtrauca atbalstu ar Cargo publicētajos paketēs iekļauto failu uzskaitījumam, ja to izpilda darbvietā ar ceļa atkarībām vai nepublicētām versijām.
  • Atkarība no kravas OpenSSL ir atjaunināta līdz 1.1.1g. OpenSSL bija izlaidusi drošības padomu, taču Rust komanda nespēja savlaicīgi iekļaut labojumu Rust 1.43.0. Komandai nav pierādījumu, ka ievainojamība varētu apdraudēt Cargo lietotāju drošību.

Rust 1.43.0 jaunās funkcijas

Paziņots par 2020. gada 23. aprīli, Rust 1.43.0 tika uzskatīts par diezgan nelielu izlaidumu, un netika ieviestas galvenās funkcijas. Izmaiņas ietver:

  • Izstrādātāji var izmantot lieta fragmenti, lai interpolētu priekšmetus iezīme, impl, un ārpuse bloki.
  • Tika uzlabota tipa secināšana ap primitīviem, atsaucēm un binārām operācijām.
  • Lai palīdzētu integrācijas testēšanai, Cargo testiem iestatīs dažus jaunus vides mainīgos, lai atrastu izpildāmos failus.
  • Rust bibliotēkā izstrādātāji var tieši izmantot saistītās konstantes uz pludiņiem un veseliem skaitļiem, neimportējot moduli. Turklāt ir jauns primitīvs modulis, kas reeksportē Rust primitīvos veidus, kas ir noderīgi, rakstot makro, un izstrādātāji vēlas pārliecināties, ka veidi nav ēnoti.
  • Stabilizējās vairākas bibliotēkas API: Vienreiz :: is_completed, f32 :: LOG10_2, f32 :: LOG2_10, f32 :: LOG10_2, f64 :: LOG10_2, f64 :: LOG2_10, un iter :: vienreiz_ ar.

Rust 1.41 jaunās funkcijas

Rust 1.38 jaunās iespējas

Rust 1.38, kas izlaists 2019. gada septembrī, satur šādas jaunas funkcijas un uzlabojumus:

  • Kravas paku pārvaldnieks izmantos automātiskas kompilācijas priekšrocības ar Rust 1.38. Izmantojot cauruļvadu kompilāciju, kompilatoram nav nepieciešamas pilnībā izveidotas atkarības, sastādot kastīti. Nepieciešami tikai viņu metadati, piemēram, atkarību veidu saraksts. Metadati tiek veidoti apkopošanas procesa sākumā. Daži testi ir parādījuši kompilācijas ātruma palielināšanos par 10 līdz 20 procentiem, lai optimizētu, tīru dažu kasti diagrammu veidojumus.
  • Dažu nepareizu lietojumu mem :: {unitialized, zeroed}. Ar šo laidienu rustc kompilators nodrošinās pavedienu šaurai nepareizu inicializāciju klasei, izmantojot mem :: neinicializēts vai mem :: nulle.
  • Programmas pagarināšana # [novecojis] atribūts makro. Šis atribūts ir ļāvis kastes autoriem paziņot lietotājiem, ka viņu redeļkastes vienums tiks novecojis un noņemts nākamajā laidienā.
  • Izstrādātāji var izmantot std :: any :: type_name lai iegūtu tipa nosaukumu.
  • Vairāku funkciju, tostarp :: dalībnieki un :: dalībnieki.

Rust 1.37 jaunās iespējas

Rust 1.37, kas izlaists 2019. gada augustā, ir šādas jaunas funkcijas un uzlabojumi:

  • Spēja atsaukties enum varianti cauri tips. Izstrādātāji var arī atsaukties enum varianti ar Self :: Variant.
  • The kravu pārdevējs komanda, kas iepriekš bija atsevišķa kastīte, tagad ir iebūvēta valodā. Komanda ienes projekta atkarības, izpako tās pārdevējādirektoriju un parāda konfigurācijas fragmentu, kas nepieciešams, lai būvēšanas laikā izmantotu piegādāto kodu.
  • The rustc kompilators atbalsta ar profilu vadītu optimizāciju, optimizācijas paņēmienu, kas paredzēts kompilatoriem pirms laika-C profila ģenerēšana un -C profila lietošana.
  • Izstrādātāji var izveidot bez nosaukuma konst preces.

Rust 1.36 jaunās iespējas

Rust Systems programmēšanas valodas versija 1.36 tika izlaista 2019. gada jūlijā. Rust 1.36 ietver šādas jaunas funkcijas un uzlabojumus:

  • Nākotnes iezīme, ko izmanto asinhronā darba deklarēšanai, tagad ir stabila. Asinhronās operācijas Rustā jau vairākas versijas ir apvienojušās pa daļām ar asinhronais un gaidi ir pēdējie svarīgi atlikušie gabali.
  • Piešķiršanas kaste, ko izmanto atmiņas pārvaldībai, tagad ir stabila. Šajā kastē tiek apkopoti visi Rust standarta bibliotēkas fragmenti, kas ir atkarīgi no globālā atmiņas piešķiršanas mehānisma, piemēram, Vec. Tādējādi kastes, kas neizmanto standarta bibliotēku, joprojām var izmantot sadalītāju, atsevišķi importējot piešķīrumu - tas ir noderīgi vidēs, kur vēlaties, lai kodu izmēri būtu pēc iespējas mazāki.
  • Jauns veids, Varbūt Uninit, ļauj definēt objektus, kas var sastāvēt no neinicializētas atmiņas, piemēram, slinki piešķirtu masīvu. Rusta iepriekšējais mehānisms, kā to izdarīt, bija funkcija, mem :: neinicializēts, kas ikdienas lietošanai radīja daudz bīstamības. Varbūt Uninit nodrošina drošāku veidu, kā to izdarīt, izmantojot Rust tipa sistēmas ierobežojumus.
  • Leksiskās dzīves ilgums, kas ir Rust jaunāko izdevumu iezīme, ir atbalstīts iepriekšējos izdevumos. Ar ne-leksisku dzīves laiku Rust aizņemšanās pārbaudes mehānismu ir mazāk grūti strādāt (būtībā ļaujot jums uzrakstīt plašāku programmu klāstu, kas joprojām ir derīgas Rust), un tas labāk spēj noķert problēmas, kuras aizņēmuma pārbaudītājs palaida garām.

Citi uzlabojumi:

  • Jauna programmas HashMap tips, kas darbojas ātrāk un patērē mazāk atmiņas.
  • Ja nepieciešams, kravas tagad var darboties pilnīgi bezsaistē.

Rust 1.35 jaunās iespējas

Versija 1.35, kas izlaista 2019. gada maijā, piedāvā:

$config[zx-auto] not found$config[zx-overlay] not found