gccrs zostanie zintegrowany z GCC 13

gccrs

gccrs to kompletna alternatywna implementacja języka Rust na GCC

Niedawno ujawniono, że projekt gccrs, którego celem jest dostarczenie interfejsu dla języka Rust do GCC (GNU Compiler Collection), jest w drodze do integracji z GCC 13.  Na konferencji programistów FOSDEM na początku tego miesiąca inżynier Arthur Cohen przedstawił prezentację na temat gccrs, w której przedstawił aktualny stan prac.

Ci, którzy nie znają projektu gccrs, powinni wiedzieć, że tak jest kompletna alternatywna implementacja języka Rust na bazie GCC z celem stania się w pełni łańcuchem narzędzi GNU.

Źródłem tego projektu jest wysiłek społeczności kilka lat temu, kiedy Rust był jeszcze w wersji 0.9; język stworzony przez Mozillę podlegał tak wielu zmianom, że trudno było nadrobić wysiłki społeczności.

Teraz, gdy język jest stabilny, nadszedł czas na stworzenie alternatywnych kompilatorów:

„Rozpoczęty w 2014 r. (i wznowiony w 2019 r.), wysiłek trwa od 2020 r., włożyliśmy wiele wysiłku i zrobiliśmy duży postęp. Przesłaliśmy pierwszą wersję gccrs wewnątrz GCC. Więc następnym razem, gdy zainstalujesz GCC 13, będzie on zawierał gccrs.

Możesz go używać i możesz zacząć hakować, możesz zgłaszać problemy, gdy nieuchronnie się zawiesza i strasznie umiera. Jedną wielką rzeczą, którą robimy, jest praca nad uruchomieniem zestawu testów rustc” — powiedział Arthur Cohen podczas swojej prezentacji na konferencji FOSDEM na początku tego miesiąca.

Zdolność do pomyślnego uruchomienia zestawu testów kompilatora rustc również pozostaje celem. Według Cohena, Interfejs GCC Rusta również wskazuje na starszą wersję Rust libcore 1.49.

FAQ projektu gccrs zauważa, że ​​wszystkie technologie kompilacji LLVM, które są używane przez Rust, „nie mają niektórych backendów kompatybilnych z GCC, więc Implementacja gccrs może wypełnić luki do wykorzystania w programowaniu osadzonym".

Należy jednak pamiętać, że kompilator Rust-GCC (gccrs) jest wciąż na bardzo wczesnym etapie i nie można go jeszcze używać do kompilowania rzeczywistych programów Rusta.

Zespół GCC głosował w lipcu ubiegłego roku za zatwierdzeniem integracji gccrs jako pakiet kompilacji. Znaczenie tego projektu polega na jego znaczeniu dla jądra Linuksa. W rzeczywistości jądro Linuksa jest zwykle budowane z GCC, ale plany umożliwienia używania języka Rust wraz z C dla kodu jądra, ze względu na bezpieczeństwo pamięci, są stale rozwijane.

Projekt „Rust for Linux” został oficjalnie włączony do głównego drzewa Linux 6.1 Git w październiku ubiegłego roku, dzięki czemu Rust stał się drugim językiem poświęconym programowaniu w Linuksie, po 31 latach rozwoju wyłącznie w oparciu o C.

„Chcemy, aby gccrs był prawdziwym kompilatorem Rusta, a nie zabawkowym projektem lub czymś, co kompiluje język, który wygląda jak Rust, ale nim nie jest; naprawdę staramy się, aby ten zestaw testów działał” – dodał. Podczas prezentacji Cohen powiedział również, że chociaż interfejs Rust GCC 13 ma się dobrze na starcie, wciąż jest wiele do zrobienia. Wypożyczony kod weryfikacyjny jest obecnie wyraźnie nieobecny, wsparcie dla wbudowanych i wewnętrznych modułów wciąż trwa, a ważny kamień milowy, jakim jest kompilacja kodu Rust dla Linuksa, nie został jeszcze osiągnięty.

Przypominamy, że projekt „Rust for Linux” ma na celu wprowadzenie nowego języka programowania systemu do jądra Linuksa. Zdaniem ekspertów język Rust ma kluczową właściwość, która sprawia, że ​​jest bardzo interesujący jako drugi język jądra Linuksa: gwarantuje, że nie wystąpią żadne niezdefiniowane zachowania (o ile niepewny kod jest rozsądny).

Obejmuje to brak błędów, takich jak użycie po zwolnieniu, podwójne uwolnienie, wyścigi danych itp. Powiązane debaty toczą się wokół możliwości porzucenia C na rzecz języka Rust. Ale Linus Torvalds, twórca Linuksa, powiedział, że nie jest to deklarowanym celem projektu Rust for Linux.

Wreszcie, Warto wspomnieć, że chociaż interfejs gccrs został scalony dla następnej wersji GCC 13, nie jest jeszcze w stanie, w którym większość programistów Rust może go używać jako alternatywa dla oficjalnego kompilatora LLVM firmy Rust.

Powinno to nastąpić dopiero w przyszłym roku, przynajmniej z GCC 14.

źródło: https://fosdem.org/


Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.