Komitet zarządzający rozwojem zestawu kompilatorów GCC (GCC Steering Committee) zatwierdził włączenie do głównej wersji GCC implementacji kompilatora języka Rust, opracowanej przez projekt gccrs (GCC Rust). Po integracji frontendu standardowe narzędzia GCC będą mogły być używane do kompilacji programów w języku Rust bez potrzeby instalacji kompilatora rustc, opartego na rozwiązaniach LLVM.
Zalecane jest, aby deweloperzy gccrs rozpoczęli współpracę z zespołami odpowiedzialnymi za recenzowanie zmian i przygotowywanie wydań GCC w celu przeprowadzenia ostatecznej weryfikacji oraz zatwierdzenia poprawek pod kątem spełnienia wymagań technicznych dotyczących kodu dodawanego do GCC. W przypadku, gdy rozwój gccrs będzie kontynuowany zgodnie z wcześniej ustalonym harmonogramem i nie wystąpią nieprzewidziane problemy, frontend dla języka Rust zostanie zintegrowany w wydaniu GCC 13, planowanym na maj przyszłego roku. Implementacja Rust w GCC 13 będzie miała status wersji beta, która nie będzie włączona domyślnie.
Język Rust koncentruje się na bezpiecznej pracy z pamięcią i zapewnia środki do osiągnięcia wysokiego stopnia równoległości w wykonywaniu zadań. Bezpieczna praca z pamięcią, eliminująca błędy takie jak dostęp do obszarów pamięci po ich zwolnieniu, rozwiązywanie wskaźników zerowych oraz wykraczanie poza granice bufora, osiągana jest w Rust w czasie kompilacji poprzez sprawdzenie odniesień, śledzenie własności obiektów, kontrolę czasu życia obiektów (zakresu widoczności) oraz ocenę poprawności dostępu do pamięci podczas wykonywania kodu. Rust zapewnia również środki ochrony przed przepełnieniami liczb całkowitych, wymaga obowiązkowej inicjalizacji wartości zmiennych przed użyciem, lepiej radzi sobie z błędami w standardowej bibliotece, wprowadza koncepcję zmienności (immutable) odniesień i zmiennych domyślnie oraz oferuje silną statyczną typizację, aby zminimalizować błędy logiczne.
Źródło: opennet.ru
