Ta nowa wersja kompilatora GCC został udostępniony kilka dni temu z nowymi funkcjami i poprawkami błędów.
Według zespołu projektowego GNU GCC ta nowa wersja wersja 9.1 jest główną wersją kompilatora Zawiera ważne nowe funkcje niedostępne w GCC 8.x lub wcześniejszych wersjach. GCC 9.1 powinno przynieść nowe funkcje językowe, nowe optymalizacje i pewne ulepszenia wydajności oprogramowania.
O GCC
GCC jest zbiorem kompilatora stworzony przez projekt GNU. Dokładniej mówiąc, jest to wolne oprogramowanie zdolny do kompilowania różnych języków programowania, w tym C, C ++, Objective-C, Java, Ada i Fortran.
Należy również zauważyć, że używane do tworzenia większości wolnego oprogramowania. Najnowsze główne wydanie kompilatora pochodzi z maja 2018 r. W wersji 8.1.
Jakub Jelinek, programista Red Hat, wyjaśnił, że GCC 8.1 to główne wydanie, które zawiera ważne nowe funkcje, które nie są dostępne w GCC 7.xi wcześniejszych wersjach GCC.
W tym momencie front-end C ++ zapewnia eksperymentalne wsparcie dla niektórych funkcji C ++ 2a z opcjami -std = c ++ 2a i -std = gnu ++ 2a.
W wersji 8.2 na ogólnym poziomie ulepszeń naprawiono problemy z wydajnością LTO (Link Time Optimization) spowodowane przepełnieniem algorytmu partycjonowania podczas tworzenia dużych plików binarnych.
Poprawki były kontynuowane w gałęzi 8.x wraz z wydaniem kompilatora 8.3 w lutym ubiegłego roku. To wydanie było wydaniem poprawiającym błędy, które zawierało łatki dla regresji w GCC 8.2 w porównaniu z wcześniejszymi wydaniami GCC. Zespół GCC uruchomił nową gałąź 3 maja, udostępniając wersję 9.
Co nowego w GCC 9.1?
W tej wersji Obsługa języka C ++ 17 wprowadzona, ponieważ kompilator w wersji 8.1 nie jest już używanyl. Dlatego obsługa C ++ 17 jest teraz stabilna.
Interfejs C ++ implementuje cały język C ++ 17 i obsługa standardowej biblioteki C ++ jest na ukończeniu.
El Biblioteka front-end i C ++ mają również wiele innych funkcji zakodowanych z C ++ 2a. Ponadto GCC ma nowy interfejs dla języka D i teraz częściowo obsługuje OpenMP 5.0 i prawie w pełni integruje obsługę OpenACC 2.5.
Dla wielu GCC 9 jest mocną wersją kompilatora, która zapewnia wspaniałe funkcje i ulepszenia poprawiające wydajność programistów.
Wśród wielu nowych funkcji w GCC 9.1 są:
- Wsparcie dla kompilacji kodu napisanego w języku programowania D;
- Do GCC dodano nowe zaplecze procesora graficznego AMD GCN. Implementacja jest obecnie ograniczona do kompilowania programów jednowątkowych.
- LRA jest teraz domyślnie włączona dla celu ARC. Można to kontrolować za pomocą -mlra.
- Dodano obsługę kodu obrazu oraz instrukcji gęstości gałęzi i indeksu.
- Do GCC dodano nowy back-end ukierunkowany na procesory C-SKY V2.
- Usunięto obsługę Intel MPX.
- Dodano nowy backend do obsługi procesorów OpenRISC.
- Obsługa specyfikacji OpenACC 2.5 jest prawie ukończona.
- Wewnętrzny pakiet „selftest” GCC działa teraz dla C ++ i C (w wersjach kompilatora do debugowania).
- Poprawiono także obsługę Fortran w GCC. Teraz obsługuje asynchroniczne operacje we / wy i inne funkcje.
- Optymalizacje międzyprocesowe (OPI), optymalizacje oparte na profilach, optymalizacje czasu łącza (LTO), a także wiele innych optymalizacji zapewniających lepszą jakość kodu.
- Całkowity czas kompilacji Firefoksa 66 i LibreOffice 6.2.3 na komputerze z 8 rdzeniami został skrócony o około 5% w porównaniu z GCC 8.3. Rozmiar plików obiektowych LTO został zmniejszony o 7%.
- Czas łącza LTO poprawia się o 11% na maszynach z 8 rdzeniami i zmienia się dramatycznie w bardziej równoległych środowiskach konstrukcyjnych. Szeregowy etap optymalizacji czasu łącza jest o 28% szybszy i zużywa o 20% mniej pamięci. Etap równoległy dzieli teraz 128 partycji zamiast 32 i zmniejsza zużycie pamięci dla każdego użytkownika o 30%.
- Nowa opcja „-fdiagnostics-format = json” została wprowadzona do diagnostyki w formacie do odczytu maszynowego.
źródło: https://gcc.gnu.org