W pogoni za LLVM? Kompilator GCC 5.2 z lepszym wsparciem dla C++11 i większą modularyzacją

Społeczność skupiona wokół GCC ogłosiła wczoraj wydanie kolejnej stabilnej wersji kompilatora z serii GCC 5. Mowa oczywiście o GCC 5.2, które wprowadza wiele nowości oraz poprawia sporą liczbę błędów względem poprzedniego wydania. Zespół odpowiedzialny za rozwój GCC zapowiedział również wydanie GCC 6, która odbędzie się prawdopodobnie w przyszłym roku. Podczas tworzenia następnej serii kompilatora, programiści postanowili skupić się jeszcze bardziej na modularyzacji jego struktury. Krok ten umożliwi w dłuższej perspektywie konkurowanie z rozwiązaniami oferowanymi przez LLVM, które są coraz częściej wybierane przez profesjonalistów.

Obraz

GCC 5.2 to drugie stabilne wydanie kompilatora z serii GCC 5, które poprawia 81 błędów względem poprzedniej wersji. Na tym jednak nowości się nie kończą – bardzo istotne zmiany zaszły w obszarze ABI. Biblioteka uruchomieniowa C++ (libstdc++) będzie domyślnie wykorzystywać kompletnie przebudowany zestaw zasad dotyczących współpracy pomiędzy aplikacją w formie binarnej i systemem operacyjnym, który otrzymał nazwę Dual ABI i został dostarczony wraz z wydaniem GCC 5.1. Zmiana była konieczna z uwagi na rozszerzenie wsparcia dla standardu C11, który zakazuje stosowania mechanizmu zwanego copy-on-write w przypadku łańcuchów znaków i wymaga list do śledzenia ich długości. Twórcy GCC zdecydowali się również zmienić domyślny parametr z jakim kompilowany jest kod – zamiast -std=gnu89 używany jest -std=gnu11. Decyzja motywowana była bardzo dobrym wsparciem dla standardu C11 oferowanym przez kompilator.

Obraz

Zestaw narzędzi do optymalizacji pętli – Graphite – nie będzie już dłużej wymagał biblioteki ClooG, aczkolwiek na liście zależności wciąż pozostaje ISL, które musi być dostarczone co najmniej w wersji 0.12.2 (zalecana 0.14). Zespół rozwijający GCC postanowił również zrobić porządek w obszarze niestandardowych mechanizmów C0x – porzucone zostały trzy instrukcje has_trivial_default_constructor, has_trivial_copy_constructor i has_trivial_copy_assign. Zgodnie ze standardem C11 należy używać ich zamienników w postaci is_trivially_default_constructible, is_trivially_copy_constructible oraz is_trivially_copy_assignable.

GCC 5.2 oferuje także wsparcie dla nowych urządzeń w postaci ATtiny 4/5/9/10/20/40. Do ich obsługi wymagane są narzędzia zawarte w pakiecie binutils w wersji 2.25 lub wyższej. W przypadku portu AVR zmianom uległ system opisu wspieranych urządzeń. Od tej pory dla każdego z nich dostarczany będzie oddzielny plik SPEC. Do zapewnienia kompatybilności pomiędzy GCC i AVR-LibC niezbędnym jest wykorzystanie zarówno najnowszej wersji kompilatora, jak i biblioteki.

Zmiany poczynione w nowym wydaniu GCC wydają się być pogonią za rozwiązaniami oferowanymi przez LLVM, które są coraz chętniej wykorzystywane przez duże firmy. W ostatnim czasie LLVM stało się integralnym komponentem programistycznych narzędzi dostarczanych przez Apple dla systemów OS X i iOS. Na zmianę zdecydowało się również Sony, które w ramach swojego SDK dla konsoli Play Station 4 dostarcza kompilator Clang. Czyżby rozwiązania oferowane przez GCC przestawały być dla profesjonalistów atrakcyjne?

Źródło artykułu: www.dobreprogramy.pl
Wybrane dla Ciebie
Możesz stracić fanpage. Wyjątkowo autentyczny atak
Możesz stracić fanpage. Wyjątkowo autentyczny atak
Fałszywy SMS. Oszuści podszywają się pod ZUS
Fałszywy SMS. Oszuści podszywają się pod ZUS
Żabka stworzy kartę płatniczą. Wybrała dużego partnera
Żabka stworzy kartę płatniczą. Wybrała dużego partnera
PKO Bank Polski wydał komunikat. Uważaj, kto dzwoni
PKO Bank Polski wydał komunikat. Uważaj, kto dzwoni
Nowości w mObywatelu. Dodano trzy funkcje
Nowości w mObywatelu. Dodano trzy funkcje
Ważny komunikat Alior Banku. Dotyczy wszystkich klientów
Ważny komunikat Alior Banku. Dotyczy wszystkich klientów
Uznański-Wiśniewski: To AI wybiera, co warto przesłać z orbity
Uznański-Wiśniewski: To AI wybiera, co warto przesłać z orbity
Czarna lista w telefonie. Jak zablokować niechciane połączenia?
Czarna lista w telefonie. Jak zablokować niechciane połączenia?
Nowość w Zdjęciach Google. Wygodniejsza edycja fotografii
Nowość w Zdjęciach Google. Wygodniejsza edycja fotografii
Atak hakerski na Booking. Zdobyli dane klientów
Atak hakerski na Booking. Zdobyli dane klientów
Luka 0-day w Adobe Reader. Wystarczy spreparowany PDF
Luka 0-day w Adobe Reader. Wystarczy spreparowany PDF
Zaktualizuj Windowsa: wydano kwietniowe poprawki
Zaktualizuj Windowsa: wydano kwietniowe poprawki
ZATRZYMAJ SIĘ NA CHWILĘ… TE ARTYKUŁY WARTO PRZECZYTAĆ 👀