Programování

Co je nového v Rustu 1.48

Jedinečný přístup programovacího jazyka Rust vede k lepšímu kódu s menšími kompromisy než C, C ++, Go a další jazyky, které pravděpodobně používáte. Rovněž se pravidelně aktualizuje, často každý měsíc.

Kam stáhnout nejnovější verzi Rust

Pokud již máte nainstalovanou předchozí verzi Rust přes rezavění, můžete získat přístup k nejnovější verzi pomocí následujícího příkazu:

$ rustup aktualizace stabilní

Související video: Vývoj bezpečnějšího softwaru s Rustem

Rychle se rozjeďte s nováčkem Rustem, který je určen k vytváření rychlého softwaru na úrovni systému. Tento dvouminutový animovaný vysvětlovač ukazuje, jak Rust obchází otravné programovací problémy paměti a správy.

Nové funkce v Rust 1.48.0

Rust 1.48.0, který byl představen 19. listopadu 2020, nabízí snazší propojení v dokumentačním nástroji knihovny Rustdoc se syntaxí, která umožňuje Rustdoc vědět, když se vývojáři pokoušejí propojit s typem; Budou generovány adresy URL. Také ve verzi 1.48.0:

  • Vývojáři mohou specifikovat # {doc (alias = “”)] na položky pro přidání aliasů hledání při vyhledávání v uživatelském rozhraní Rustdoc.
  • The nebezpečný klíčové slovo je nyní na modulech syntakticky povoleno. I když to stále sémanticky odmítáme, lze to nyní analyzovat pomocí procedurálních maker.
  • V kompilátoru -C samostatný odkaz = příznak kompilátoru je stabilizován. To říká rustc zda propojit svůj vlastní běhový modul C a knihovny nebo se spolehnout na externí linker, který je najde. Toto je podporováno pouze na windows-gnu, linux-musl, a byl jsem platformy.
  • V knihovně [T; N]: TryFrom API je nyní stabilní. Vývojáři se pomocí něj mohou pokusit proměnit vektor v pole dané délky. V této verzi bylo také stabilizováno pět dalších API: slice :: as_ptr_range, slice :: as_mut_ptr_range, VecDeque :: make_contiguous, budoucnost :: čeká na vyřízení, a budoucnost :: připraveno.
  • Také v knihovně jsou nyní implementována všechna pole libovolné délky TryFrom.

Nové funkce v Rust 1.47.0

Rust 1.47.0, který byl oznámen 8. října 2020, nemá žádné nové jazykové funkce, ale vylepšuje standardní knihovnu. Ve verzi je uvedeno vylepšení kvality života a nástrojů, jakož i stabilizace knihoven. Byly zveřejněny poznámky k verzi pro upgrade.

Specifické funkce v Rust 1.47.0 zahrnují:

  • Funkce „const generics“, která ovlivňuje vlastnosti na větších polích. Funkci je stále třeba stabilizovat. Rust postrádal způsob, jak být obecný nad celočíselnými hodnotami, což způsobilo problémy s poli. Tato funkce je určena k řešení tohoto problému a zvýšení užitečnosti polí.
  • Upgrade na infrastrukturu kompilátoru LLVM 11, což z něj dělá výchozí.
  • Kratší zpětné stopy, což usnadňuje hledání problémů.
  • rustc nyní podporuje -C hlídač průtoku, možnost, která zapne funkci zabezpečení Control Flow Guard v systému Windows. Ostatní platformy tento příznak ignorují.
  • Rustdoc nyní podporuje téma Ayu.
  • Devět API ve standardní knihovně bylo stabilizováno: Ident :: new_raw, Range :: is_empty, RangeInclusive :: is_empty, Result :: as_deref, Result :: as_deref_mut, Vec :: leak, pointer :: offset_from, f32 :: TAU a f64 :: TAU.

Nové funkce v 1.46.0

Rust 1.46, oznámený 27. srpna 2020, obsahuje následující funkce:

  • V systému lze nyní použít několik základních jazykových funkcí const fn, počítaje v to -li, pokud nechámzápasa několik dalších.
  • A # [track_caller] atribut, určený ke zlepšení chybových zpráv, když rozbalit a související funkce panika, je nyní stabilní.
  • Při změně knihovny std :: mem :: zapomenout je nyní const fn. Také v knihovně byly stabilizovány dvě nové API: Možnost :: zip a vec :: Drain :: as_slice.
  • Pro kompilátor je citylib target lze použít na platformách Apple iOS a tvOS.
  • Rekurzivní indexování do n-tic již nevyžaduje závorky.

Nové funkce v Rust 1.45.0

Rust 1.45, který byl oznámen 16. července 2020, obsahuje následující doplňky a vylepšení:

  • Je nabízena oprava, která napraví dlouhodobou nezdravost při vrhání mezi celými čísly a plováky.
  • Stabilizace je nabízena pro funkční procedurální makra ve výrazech, vzorech a příkazech. Rozšíření používání maker pomáhá s využitím webového rámce Rocket pro Rust.
  • Několik knihovních API bylo stabilizováno, jako např Arc :: as_ptr, BTreeMap :: remove_entry, a Span :: resolved_at. Celý seznam API najdete v blogu Rust.

Nové funkce v Rust 1.43.1

Tato bodová verze byla představena 7. května 2020, aby řešila dvě regrese zavedené ve stabilní verzi 1.43.0. Aktualizuje také verzi OpenSSL používanou správcem balíků Cargo. Mezi funkce patří:

  • Rust 1.27 představil podporu pro detekci funkcí procesoru x86 ve standardní knihovně prostřednictvím is_x86_feature_detected makro. Z důvodu interního refaktoringu Rust 1.43.0 zabránil detekci funkcí, které zatím nelze použít ve stabilní verzi, přestože jejich detekce byla dříve povolena. Verze 1.43.1 tuto regresi opravuje.
  • Je opravena chyba seznam nákladních balíků příkaz. Rust 1.43 přerušil podporu pro výpis souborů obsažených v balíčcích publikovaných s Cargo, když byl spuštěn uvnitř pracovního prostoru se závislostmi na cestě nebo nepublikovanými verzemi.
  • OpenSSL, závislost na nákladu, byla aktualizována na 1.1.1g. OpenSSL vydal bezpečnostní zpravodaj, ale tým Rust nebyl schopen zahrnout opravu včas pro Rust 1.43.0. Tým nemá žádné důkazy o tom, že by tato chyba zabezpečení mohla ohrozit bezpečnost uživatelů Cargo.

Nové funkce v Rust 1.43.0

Rust 1.43.0, který byl ohlášen 23. dubna 2020, byl považován za poměrně malé vydání a nebyly představeny žádné hlavní funkce. Změny zahrnují:

  • Vývojáři mohou použít položka fragmenty k interpolaci položek do těla souboru vlastnost, impl, a externí bloky.
  • Vylepšení typu kolem primitiv, odkazů a binárních operací bylo vylepšeno.
  • Aby pomohla s integračním testováním, nastaví Cargo některé nové proměnné prostředí pro testy k vyhledání spustitelných souborů.
  • V knihovně Rust mohou vývojáři přímo použít přidružené konstanty na plovácích a celých číslech, aniž by museli modul importovat. Také je tu nový primitivní modul, který reexportuje Rust primitivní typy, což je užitečné při psaní makra a vývojáři chtějí zajistit, aby typy nebyly zastíněny.
  • Několik API v knihovně bylo stabilizováno: Once :: is_completed, f32 :: LOG10_2, f32 :: LOG2_10, f32 :: LOG10_2, f64 :: LOG10_2, f64 :: LOG2_10, a iter :: once_with.

Nové funkce v Rustu 1.41

Nové funkce v Rust 1.38

Rust 1.38, vydaný v září 2019, obsahuje následující nové funkce a vylepšení:

  • Správce balíků Cargo automaticky využije výhody zřetězené kompilace s Rustem 1.38. S pipeline kompilací kompilátor nepotřebuje závislosti plně sestavené při kompilaci přepravky. Vše, co je potřeba, jsou jejich metadata, například seznam typů závislostí. Metadata se vytvářejí na začátku procesu kompilace. Některé testy ukázaly zvýšení rychlosti kompilace o 10 až 20 procent pro optimalizované, čisté sestavení některých grafů přepravek.
  • Podříznutí některých nesprávných použití mem :: {unitialized, zeroed}. S tímto vydáním poskytne kompilátor rustc vlákna pro úzkou třídu nesprávných inicializací pomocí mem :: neinicializováno nebo mem :: vynulováno.
  • Rozšíření #[zastaralé] atribut pro makra. Tento atribut umožnil autorům přepravek upozornit uživatele na to, že položka jejich přepravky má být v budoucí verzi zastaralá a odstraněna.
  • Vývojáři mohou použít std :: any :: type_name získat název typu.
  • Stabilizace řady funkcí včetně ::obsazení a ::obsazení.

Nové funkce v Rust 1.37

Rust 1.37, vydaný v srpnu 2019, má následující nové funkce a vylepšení:

  • Schopnost odkazovat výčet varianty až typ. Vývojáři také mohou odkazovat na výčet varianty s Vlastní :: Varianta.
  • The prodejce nákladu příkaz, dříve samostatná bedna, je nyní zabudován do jazyka. Příkaz načte závislosti projektu, rozbalí je do dodavateleadresář a zobrazí fragment konfigurace potřebný k použití dodaného kódu během sestavení.
  • The rustc překladač podporuje profilovou optimalizaci, optimalizační techniku ​​pro kompilátory předem, prostřednictvím-C generování profilu a -C použití profilu.
  • Vývojáři mohou vytvářet nepojmenované konst položky.

Nové funkce v Rust 1.36

Verze 1.36 programovacího jazyka Rust systems byla vydána v červenci 2019. Rust 1.36 obsahuje následující nové funkce a vylepšení:

  • Vlastnost Future, používaná k deklarování asynchronní práce, je nyní stabilní. Asynchronní operace v Rustu se nyní v několika verzích scházejí po kouscích, s asynchronní a čekat jako poslední důležité zbývající kousky.
  • Alloc bedna, používaná pro správu paměti, je nyní stabilní. Tato přepravka shromažďuje všechny kousky standardní knihovny Rust, které závisí na globálním mechanismu přidělování paměti, například Vec. Tímto způsobem mohou bedny, které nepoužívají standardní knihovnu, stále používat alokátor importem alloc samostatně - užitečné pro prostředí, kde chcete, aby velikost kódu byla co nejtenčí.
  • Nový typ, MožnáUninit, umožňuje definovat objekty, které se mohou skládat z neinicializované paměti, například líně přidělené pole. Rustův předchozí mechanismus, jak toho dosáhnout, byla funkce, mem :: neinicializováno, což při běžném používání představovalo mnoho nebezpečí. MožnáUninit poskytuje bezpečnější způsob, jak toho dosáhnout, který využívá omezení systému Rustova typu.
  • Non-lexikální životy, funkce pro nedávná vydání Rustu, byly zpětně přidány k dřívějším vydáním. Díky nelexickým životům je Rustův mechanismus kontroly půjček méně obtížný (v podstatě vám umožňuje psát širší škálu programů, které jsou stále platné Rust) a lépe dokáže zachytit problémy, které kontrole půjček chyběly.

Další vylepšení:

  • Nová implementace pro HashMap typ, který běží rychleji a využívá méně paměti.
  • Náklad může nyní v případě potřeby běžet zcela offline.

Nové funkce v Rustu 1.35

Verze 1.35, vydaná v květnu 2019, nabízí následující:

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