3-р сарын 9.1-нд GCC-ийн ес дэх хувилбарын анхны олон нийтэд гарсан хувилбар: GCC XNUMX.
Энэ нь найм дахьтай харьцуулахад олон чухал сайжруулалт, нэмэлтүүдийг агуулдаг
хувилбар.
Ерөнхий өөрчлөлтүүд
Сонголтууд
- Хэмжээг хүлээн авах командууд одоо 64 битийн утгууд болон хэмжээг зааж өгөх дагаваруудыг дэмждэг;
- Нэмэлт сонголт -flive-patching,динамик,код солиход хор хөнөөл учруулж болзошгүй оновчлолыг хянах;
- Командын бүрхүүлд автоматаар гүйцээхийг дэмжихийн тулд --дуусгах сонголтыг нэмсэн;
- Хөрвүүлэгчийн оношилгоонд мөрийн дугаар (-fno-оношлогоо-шугааны-тоог харуулах) болон
төрлийн мэдээлэл (fno-диагностик-шошго); - Нэмэлт сонголт -fdiagnostics-format=json JSON форматаар оношийг гаргах;
- Зэрэгцүүлэх сонголтууд (-falign-функцууд, жишээ нь) одоо хэд хэдэн тохируулгын сонголтыг хүлээн авах боломжтой;
- Файлуудын жагсаалтыг шүүх сонголтуудыг нэмсэн (-fprofile-filter-файлууд, -fprofile-exclude-файлууд) нь профайл үүсгэгчээр хийгдсэн;
- AddressSanitizer одоо стек дээрх хувьсагчдад буруу хандалтыг барихын тулд илүү нягт уялдаа холбоог ашигладаг;
- Олон тооны гаралтын сайжруулалт -fopt-info;
- Нэмэлт сонголт -fsave-optimization-record оновчлолын тайланг файлд хадгалах;
- Нэмэлт сонголт -fipa-стекийн тэгшитгэх и -fipa-лавлагаа-хаягтай.
Шинэ суулгасан функцууд
Шинэ шинж чанар
Бусад
Дараахтай холбоотой олон тооны код үүсгэх сайжруулалт:
- шилжүүлэгчийн бүтцийг бий болгох;
- процедур хоорондын оновчлол;
- профайлын мэдээлэлд үндэслэн оновчтой болгох;
- угсралтын үе шатанд оновчтой болгох (LTO);
Мөн gcov-ийн дотоод формат нь одоо JSON бөгөөд шинэ сонголт юм --халуун-өнгө-хэрэглэх Энэ нь кодын мөрүүдийг хэр олон удаа ашиглаж байгаагаас нь хамааруулан будах явдал юм.
Хэлнүүд
Хэрэгжилтийн чанар, бүрэн гүйцэд байдал OpenACC C, C++, Fortran хэлүүд сайжирсаар байна.
C-тэй төстэй хэлүүд
- OpenMP 5.0-ийн хэсэгчилсэн дэмжлэгийг хэрэгжүүлсэн;
- Нэмэлт функц __барьсан_хувиргагч;
- Анхааруулга нэмсэн -Багцлагдсан гишүүний хаяг;
- Одоо байгаа хэд хэдэн анхааруулгыг сайжруулах;
- Макро руу буруу тооны аргумент дамжуулахад гарсан алдааны текст нь одоо макроны мэдэгдлийг багтаасан болно;
- Үг үсгийн алдаа засах зөвлөмжийг сайжруулсан.
C
- -std=c2x (ирээдүйн С стандарт)-ын хувьд нэг аргументтай _Static_assert-ийг дэмжих;
- Шинэ сэрэмжлүүлэг - Үнэмлэхүй үнэ цэнэ, энэ нь abs() гэх мэт функцүүдийн буруу аргументын төрлийг барьж авдаг.
C ++
- Шинэ сэрэмжлүүлэг: -Хуулаагүй-хуулбар,
-Winit-list-насан туршдаа,
-Зайлшгүй нүүдэл,
-Wpessimizing-Move,
-Wclass-хувиргах; - Ирээдүйн стандартаас шинэ боломжуудыг нэвтрүүлэх ажил хийгдэж байна C++ 2a;
- Frontend нь одоо хэд хэдэн эх кодын элементүүдийн талаар илүү үнэн зөв мэдээллийг хадгалдаг бөгөөд энэ нь оношлогоонд илүү нарийвчилсан мэдээллийг харуулах боломжийг олгодог;
- Хэт ачаалалтай функцууд, хоёртын операторууд, функцүүдийн дуудлага, форматын мөрүүдийг оношлох сайжруулсан;
- Хэд хэдэн түгээмэл алдаануудад (дутуу хашилт, нэрийн талбар, үсгийн алдаа гэх мэт) зарим хөгжүүлэлтийн орчинд дэмжигдсэн автомат засваруудыг нэмсэн.
libstdc++
- C++ 17 хэрэгжилт нь туршилт байхаа больсон;
- Зэрэгцээ алгоритм нэмсэн, , , А -lstdc++fs шаардлагагүй болсон;
- C++ 2a-д зориулсан сайжруулсан туршилтын дэмжлэг ( , , std::bind_front гэх мэт);
- Замууд нь тэмдэгтгүй тэмдэгт агуулсан Windows дээр файлын урсгалыг нээхэд дэмжлэг үзүүлэх;
- Анхны дэмжлэг Windows дээр;
- Networking TS-ийн анхны дэмжлэг.
D
D хэлний 2.076 хувилбарыг GCC-д оруулсан болно.
Фортран
- Асинхрон оролт / гаралтын бүрэн дэмжлэг;
- MINLOC болон MAXLOC-ийн BACK аргументыг хэрэгжүүлсэн;
- FINDLOC болон IS_CONTIGOUS функцуудыг хэрэгжүүлсэн;
- Комплекс тоонуудын бүрэлдэхүүн хэсгүүдэд хандах синтаксийг хэрэгжүүлсэн: c%re ба c%im;
- str%len болон a% төрлийн синтаксийг хэрэгжүүлсэн;
- С тодорхойлогч болон ISO_Fortran_binding.h толгой хэсгийг хэрэгжүүлсэн;
- Аргументуудын аль нэг нь NaN байх үед MAX ба MIN функцуудын үр дүнд тавигдах зөөлрүүлсэн шаардлага;
- Нэмэлт сонголт -fdec-үүнд орно;
- Удирдамж нэмсэн БАРЬСАН.
libgccjit
- Нэмэлт функц gcc_jit_context_add_driver_Option.
Бусад
Архитектур болон үйлдлийн системд хамаарах олон өөрчлөлтүүд.
Эх сурвалж: linux.org.ru