[NEW] Search for a job anonymously — check the details
Close
Wydanie języka programowania Rust 2024 (1.85)

Wydanie języka programowania Rust 2024 (1.85)

Opublikowano wersję języka programowania ogólnego przeznaczenia Rust 1.85, który początkowo rozwijany był przez Mozilla, a obecnie jest wspierany przez niezależną organizację non-profit Rust Foundation. Oprócz standardowego numeru wersji 1.85, wydanie oznaczone zostało jako Rust 2024, co oznacza stabilizację zmian wprowadzonych przez ostatnie trzy lata. Edycja "Rust 2024" będzie podstawą dla dalszego rozwoju funkcjonalności w ciągu najbliższych trzech lat, podobnie jak wersja Rust 2021 stanowiła fundament dla rozwoju języka przez ostatnie lata.

Aby zachować zgodność, deweloperzy mogą używać w swoich programach etykiet "2015", "2018", "2021" i "2024", które przypisują programy do określonych stanów języka, odpowiadających wybranym edycjom Rust. Edycje zostały wprowadzone w celu oddzielenia niekompatybilnych zmian, a konfiguracja tych edycji odbywa się w metadanych paczek cargo za pomocą pola "edition" w sekcji "[package]".

Na przykład, edycja "2021" obejmuje funkcjonalność stabilizowaną na koniec 2021 roku, a edycja "2024" dodatkowo wprowadza zmiany, które mogą łamać zgodność, ale zostały zatwierdzone do wdrożenia w przyszłości. Oprócz samego języka, edycje uwzględniają również stan narzędzi i dokumentacji. Do automatycznej adaptacji kodu do nowej edycji języka można użyć komendy "cargo fix".

Główne niekompatybilności w Rust 2024

  • Zmieniono zachowanie przy przechwytywaniu parametrów w "impl Trait", jeśli nie używa się nowej składni "use<..>", która definiuje informacje o ukrytych typach. W Rust 2024, jeśli "use<..>" nie jest użyte, wszystkie parametry w zasięgu są niejawnie przechwytywane. Aby ograniczyć przechwytywanie parametrów, należy używać "use<..>", np. "impl Trait + use<'x, T>" wskazuje, że w ukrytym typie dozwolone jest używanie tylko parametrów "x" i "T".
  • Zmieniono zakres widoczności zmiennych tymczasowych w wyrażeniu "if let". Zmienna tymczasowa w blokach $expr będzie teraz usuwana przed przejściem do bloku "else", a nie po jego wykonaniu.
  • Zmieniono zakres widoczności zmiennych w ostatnich wyrażeniach, które kończą działanie funkcji, bloku lub zamknięcia. Takie zmienne są teraz resetowane do zmiennych lokalnych.
  • Niektóre niejednoznaczne zastosowania mut, ref, ref mut, & i &mut w wzorcach zostały zabronione, np. "let [x, mut y] = &[(), ()];" należy zamienić na "let &[ref x, mut y] = &[(), ()];".
  • Bloki "extern" muszą być oznaczone słowem kluczowym "unsafe".
  • Atrybuty "export_name", "link_section" i "no_mangle" muszą być oznaczone jako "unsafe".
  • Dodano ostrzeżenie "unsafe_op_in_unsafe_fn", które sprawdza użycie bloków "unsafe {}" w funkcjach typu unsafe.
  • Zostało zabronione użycie odniesień do elementów zdefiniowanych jako "static mut".

Nowości w Rust 1.85

  • Dodano obsługę asynchronicznych zamknięć, definiowanych w postaci "async || {}", które działają na podobnej zasadzie jak asynchroniczne wywołania funkcji (async fn).
  • Dodano atrybut "#[diagnostic::do_not_recommend]", który sprawia, że kompilator nie wyświetla zaimplementowanych typów w komunikatach diagnostycznych.
  • Umożliwiono użycie typów FromIterator i Extend dla krotek zawierających do 12 elementów.

Ważne zmiany i stabilizacje w API

  • Zostały stabilizowane metody i implementacje typów, takie jak BuildHasherDefault::new, ptr::fn_addr_eq, io::ErrorKind::QuotaExceeded oraz std::task::Waker::noop.

Rust: Język skupiony na bezpieczeństwie pamięci

Rust jest językiem programowania, który kładzie duży nacisk na bezpieczeństwo pracy z pamięcią. Został zaprojektowany tak, aby zapewnić wysoki poziom paralelizmu bez konieczności korzystania ze zbieracza śmieci czy runtime. Dzięki mechanizmom sprawdzania poprawności podczas kompilacji, takim jak ścisłe zarządzanie referencjami, śledzenie własności obiektów oraz ocena poprawności dostępu do pamięci, Rust eliminuje wiele problemów związanych z manipulowaniem wskaźnikami i operacjami na niskim poziomie, takich jak dostęp do pamięci po jej zwolnieniu czy dereferencja wskaźników null.

Podsumowanie

Wydanie Rust 2024 (1.85) to ważny krok w rozwoju języka, wprowadzający zmiany w zakresie kompatybilności oraz nowe funkcjonalności, które mają na celu uproszczenie i poprawę wydajności pracy z pamięcią, przy jednoczesnym zachowaniu bezpieczeństwa i efektywności. Programiści mogą teraz korzystać z nowych narzędzi, takich jak asynchroniczne zamknięcia oraz usprawnienia w dokumentacji i narzędziach do zarządzania zależnościami.

Avatar
Aug 10, 2023

Kevuru Games otworzyło biuro w Warszawie

Warszawskie biuro Kevuru Games ma na celu rozszerzenie obecności na globalnym rynku tworzenia gier, stworzenie centrum sprzedaży dla europejskich klientów oraz miejsca pracy dla pracowników za granicą.
Aug 30, 2023

Zrezygnowali z menedżerów, zatrudnili coachów: case firmy Time Etc

Firma Time Etc postanowiła zastąpić wszystkich swoich menedżerów coachami.
Jan 15

AT&T dołącza do firm powracających do pracy w biurach przez 5 dni w tygodniu

Gigant telekomunikacyjny AT&T ogłosił zmiany w harmonogramie pracy pracowników. Od stycznia wszyscy pracownicy biurowi firmy będą zobowiązani do pracy w biurze przez pięć dni w tygodniu. Tym samym AT&T rezygnuje z hybrydowego modelu pracy, który dotychczas przewidywał trzy dni w biurze.

This site uses cookies to offer you a better browsing experience.

Find out more on how we use cookies and how to change cookie preferences in our Cookies Policy.

Customize
Save Accept all cookies