GCC 14.1 został już wydany i to są jego nowości

gcc

Kolekcja kompilatorów GNU to zestaw kompilatorów stworzonych przez projekt GNU. GCC jest wolnym oprogramowaniem i jest dystrybuowane przez Free Software Foundation na licencji GPL.

La ukazała się już nowa wersja GCC 14.1 a wśród ulepszeń i zmian, które najbardziej wyróżniają się, nowa wersja oferuje ulepszenia w analizie statycznejlub, oprócz ulepszeń bezpieczeństwa, ulepszenia optymalizacji wydajności, między innymi ulepszenia biblioteki wykonawczej libstdc++.

GCC 14.1 jest oznaczone jako pierwsze główne wydanie nowej gałęzi GCC 14.x i zgodnie ze schematem numeracji wersji, podczas programowania użyto wersji 14.0, a na krótko przed wydaniem GCC 14.1, gałąź GCC 15.0 została już podzielona, ​​z której miała zostać utworzona kolejna główna wersja, GCC 15.1.

Co nowego w GCC 14.1?

W tej nowej wersji GCC 14.1 Poprawiono analizę statyczną dla języka C poprzez opcję „-fanalyzer”, polega na tym, że przy analizie operacji na łańcuchach została dodana wykrywanie nieskończonej pętli z "-Wanalyzer-nieskończona pętla» i dodano specjalne ostrzeżenia dotyczące problemów z walidacją danych wejściowych za pomocą «-Skażony Wanalyzerem-*«. Ostrzeżenie Poprawiono także opcję „-Wanalyzer-out-of-bounds” pozwalającą na wykrywanie przepełnień bufora, Dodatkowo poprzez opcję rozszerzono obsługę formatu SARIF -fdiagnostics-format=, co ułatwia generowanie szczegółowych raportów do bardziej zaawansowanych analiz statycznych.

Kolejną nową funkcją, którą wprowadza GCC 14.1 jest ulepszenia biblioteki wykonawczej libstdc++, ponieważ dodano obsługę takich funkcji jak std::stacktrace i std::format, a także dla zoptymalizowanych operacji wejścia/wyjścia poprzez std::print i std::println.

Ponadto zostały wprowadzone nowe możliwości obsługi inteligentnych wskaźników za pomocą std::out_ptr i std::inout_ptr, a także ulepszenia narzędzi konwersji, takich jak std::to_string i std::to_wstring, zapewniając programistom pełniejszy zestaw narzędzi do zarządzania danymi i operacji formatowania.

Dodano funkcje związane z C++23, w podobny sposób zaimplementowano także obsługę mechanizmu „Deducing this”, który pozwala na wykorzystanie w szablonach parametrów z atrybutem „this” oraz rozpoznaje kategorię wyrażenia, dla którego wywoływana jest funkcja klasy sposób, który konwertuje wszystkie funkcje wywołujące funkcje z atrybutem consteval na funkcje consteval

również Dodano funkcje związane z C++26, na przykład możliwe jest użycie literałów łańcuchowych w kontekście, w którym nie są one używane do inicjowania tablicy znaków i nie kończą się w wynikowym kodzie, dodano także możliwość używania wielu zmiennych zastępczych o nazwie „_” i niejawnych konwersji wyliczane wartości w obliczeniach arytmetycznych stały się przestarzałe.

z Inne zmiany i ulepszenia, które zostały wprowadzone w GCC 14.1:

  • Nowe opcje, takie jak «–włącz ciasto hosta» skompilować pliki wykonywalne w trybie PIE i «–włącz-host-bind-teraz» aby uzyskać dodatkowe opcje linków.
  • Dodano opcję «-finline-stringops» aby umożliwić rozbudowę online takich funkcji jak memcmp, memcpy, memmove i memset, nawet jeśli nie są one niezbędne do optymalizacji.
  • Wprowadzono znaczące ulepszenia w obsłudze OpenMP, włączając takie opcje jak -fopenmp-alokatory i dyrektywy takie jak mapa domyślna i pośrednia.
  • Dodano początkową obsługę podglądu specyfikacji OpenMP 6.0 i kontynuowano wdrażanie standardów OpenMP 5.0, 5.1 i 5.2.
  • Ulepszona implementacja specyfikacji programowania równoległego OpenACC 2.7 i 3.2 w celu przeniesienia operacji na procesory graficzne i wyspecjalizowane procesory, takie jak NVIDIA PTX.
  • Ulepszona obsługa libstdc++ dla standardów C++20, C++23 i C++26.
  • Obsługa rozszerzeń GCC, która umożliwiała określenie elastycznego elementu tablicy nie na końcu struktury, jest przestarzała
  • Rozszerzona obsługa backendu architektury AArch64 dla różnych procesorów i rozszerzeń, takich jak Arm SME i SME2.
  • Dodano obsługę procesorów Cortex-M52 na zapleczu architektury ARM.
  • Dodano obsługę procesorów AMD opartych na rdzeniu Zen 5 i innych architekturach Intel
  • Ulepszenia obsługi LoongArch, AVR i RISC-V.
  • Ulepszenia wyników diagnostycznych w formacie SARIF opartym na JSON dla wyników analizy statycznej i ostrzeżeń.
  • W przypadku kodu C skompilowanego do standardów nowszych niż C89, niektóre konstrukcje wywodzące się z C99 generują teraz błędy zamiast ostrzeżeń, aby poprawić wykrywanie potencjalnych problemów.

Wreszcie, jeśli chcesz dowiedzieć się więcej na ten temat, możesz zapoznać się ze szczegółami w poniższy link.


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.