Piştî salek pêşkeftinê, pakêta berhevkerê belaş GCC 13.1 hate berdan, yekem serbestberdana girîng di şaxê nû ya GCC 13.x de. Li gorî pilana jimarekirina nû ya berdanê, guhertoya 13.0 di pêvajoya pêşkeftinê de hate bikar anîn, û demek kin berî serbestberdana GCC 13.1, şaxê GCC 14.0 berê xwe dabû şax, ku ji wê derê dê serbestberdana sereke ya din, GCC 14.1, were damezrandin.
Guhertinên sereke:
- GCC ji bo berhevkirina bernameyan bi zimanê bernamenûsê Modula-2 pêşekek vedihewîne. Kombûna koda ku bi zaravayên PIM2, PIM3 û PIM4 re têkildar e, û her weha standarda ISO ya pejirandî ya ji bo zimanek diyarkirî, piştgirî ye.
- Pêşînek bi pêkanîna berhevkarê zimanê Rust ku ji hêla projeya gccrs (GCC Rust) ve hatî amadekirin li dara çavkaniya GCC hate zêdekirin. Di forma xweya heyî de, dawiya pêş de wekî ceribandinek tête nîşankirin û ji hêla xwerû ve neçalak e. Gava ku pêşê amade ye (di berdana paşîn de tê hêvî kirin), amûrên standard ên GCC-yê dikarin werin bikar anîn da ku bernameyên bi zimanê Rust berhev bikin bêyî ku hewcedariya sazkirina berhevkarê rustc, ku bi karanîna pêşkeftinên LLVM-ê hatî çêkirin, werin berhev kirin.
- Engine Optimization Time Link (LTO) piştgirî ji bo servera kar a ku ji hêla projeya GNU make-ê ve hatî piştgirî kirin zêde kir da ku pêkanîna avahiyên paralel di nav gelek mijaran de xweşbîn bike. Di GCC de, servera kar ji bo paralelkirina xebatê di dema xweşbînkirina LTO-yê de di çarçoweya tevaya bernameyê de (WPA, Analîza Tev-bernameyê) tê bikar anîn. Ji bo danûstandina bi jobserver re, lûleyên binavkirî ji hêla xwerû ve têne bikar anîn (-jobserver-style=fifo).
- Analîzatora statîkî (-fanalyzer) 20 kontrolên nû yên tespîtkirinê pêşkêşî dike, di nav de "-Wanalyzer-ji-derve-sînor", "-Wanalyzer-veqetandin-mezin", "-Wanalyzer-deref-ber-check", "-Wanalyzer- bêsînor. -vegerandin" -Wanalyzer-jump-through-null", "-Wanalyzer-va-list-leak".
- Kapasîteya derxistina tespîtkirina di forma SARIF-ê de, li ser bingeha JSON, hate bicîh kirin. Forma nû dikare ji bo bidestxistina encamên analîza statîk (GCC -fanalyzer), û hem jî ji bo bidestxistina agahdariya hişyarî û xeletiyê were bikar anîn. Çalakkirin bi vebijarka "-fdiagnostics-format=sarif-stderr|sarif-file|json-stderr|json|json-pel" tê kirin, ku vebijarkên bi "json" di guhertoyek GCC-taybet a formata JSON de encam didin. .
- Hin taybetmendiyên ku di standarda C23 C de hatine destnîşan kirin, wekî domdariya nullptr ji bo diyarkirina nîşangirên null, hêsankirina karanîna navnîşên variadîk, berfirehkirina kapasîteyên hejmartinê, taybetmendiya noreturn, destûrdana karanîna constexpr û otoyê di dema diyarkirina tiştan de, celebê û typeof_unqual, peyvên sereke yên nû alignas, alignof, bool, false, static_assert, thread_local and true, dihêle ku di dema destpêkirinê de parantezên vala bêne diyar kirin.
- Hin taybetmendiyên ku di standarda C++23 de hatine destnîşankirin bicîh anîn, wek şiyana danîna nîşanan li dawiya biwêjên hevedudanî, lihevhatina bi tîpa char8_t, rêwerza pêşprocessor #warning, veqetandî (\u{}, \o{}, \x{}) û bi navê ('\N{TÎFA LATIN CAPITAL A}') rêzikên revê, operatora statîk(), operatora statîk[], operatora wekheviyê di hundurê îfadeyan de, rakirina hin qedexeyên li ser karanîna constexpr, piştgirî ji bo UTF -8 di nivîsên çavkanî de.
- libstdc++ ji bo standardên C++20 û C++23 piştgiriya ceribandinê çêtir kiriye, mînakî, piştgiriya pelê sernavê zêde dike û std::format, kapasîteyên pelê sernavê berfireh kirin , celebên xala hêlînê yên din lê zêde kirin, pelên sernavê hatine bicîh kirin Û .
- Taybetmendiyên fonksiyonê yên nû li belgeyê zêde kirin ku ravekerek pelê di guhêrbarek yekjimar de derbas dibe: "__attribute__((fd_arg(N)))", "__attribute__((fd_arg_read(N)))" û "__attribute__((fd_arg_write(N) )" Taybetmendiyên diyarkirî dikarin di analyzerek statîk (-fanalyzer) de werin bikar anîn da ku bi ravekerên pelan re operasyona nerast tespît bike.
- Taybetmendiyek nû "__attribute__((bihesibînin(EXPR)))" lê zêde kir, ku bi vê yekê hûn dikarin ji berhevkerê re bibêjin ku vegotin rast e û berhevkar dikare vê rastiyê bêyî nirxandina îfadeyê bikar bîne.
- Alaya "-fstrict-flex-arrays=[level]" lê zêde kir da ku tevgerê hilbijêrin dema ku hêmanên rêzika nerm di strukturan de têne xebitandin (Endamên Array Flexible, komek bi mezinahiya nediyar li dawiya avahiyek, mînakî, "int b[]" ).
- Ala "-Wenum-int-mismatch" lê zêde kir da ku hişyar bike ger di navbera celebek enum û celebek jimareyek de nehevheviyek hebe.
- Pêşengiya zimanê Fortran bi tevahî dawîbûnê piştgirî dike.
- Di pêşiyê de ji bo zimanê Go, piştgirî ji bo fonksiyon û celebên gelemperî (generîk) hatiye zêdekirin, û lihevhatina bi pakêtên ji bo zimanê Go 1.18 ve hatî peyda kirin.
- Piştgiriya ji bo mîmariya AArch64 CPU Ampere-1A (ampere1a), Arm Cortex-A715 (cortex-a715), Arm Cortex-X1C (cortex-x1c), Arm Cortex-X3 (cortex-x3) û Arm Neoverse V2 (neoverse) piştgirî dike. -v2). Piştgiriya ji bo argumanên "armv9.1-a", "armv9.2-a" û "armv9.3-a" li vebijarka "-march=" zêde kir. Ji bo pêvekên pêvajoyê FEAT_LRCPC, FEAT_CSSC û FEAT_LSE2 piştgirî zêde kir.
- Piştgiriya ji bo CPU STAR-MC1 (star-mc1), Arm Cortex-X1C (cortex-x1c) û Arm Cortex-M85 (cortex-m85) ji bo mîmariya ARM li pişta paşîn hate zêdekirin.
- Piştgiriya ji bo mîmariya x86 piştgirî ji bo Intel Raptor Lake, Gola Meteor, Sierra Forest, Grand Ridge, Emerald Rapids, Granite Rapids, û her weha pêvajoyên AMD Zen 4 (znver4) zêde dike. Berfirehkirinên mîmarî AVX-IFMA, AVX-VNNI-INT8, AVX-NE-CONVERT, CMPccXADD, AMX-FP16, PREFETCHI, RAO-INT û AMX-COMPLEX, ku di pêvajoyên Intel de hatine pêşniyar kirin, hatine bicîh kirin. Ji bo zimanên C û C++ yên li ser pergalên SSE2, celeb __bf16 tê peyda kirin.
- Piştgiriya hilberîna kodê ji bo AMD Radeon GPU (GCN) şiyana karanîna bilezkerên AMD Instinct MI200 heye ku performansa OpenMP/OpenACC baştir bike. Vektorîzasyona çêtir bi karanîna rêwerzên SIMD-ê.
- Kapasîteyên paşîn ên ji bo platforma LoongArch bi girîngî hatine berfireh kirin.
- Di paşîn de ji bo mîmariya RISC-V, piştgirî ji bo CPU-ya XuanTie C906 (thead-c906) ya T-Head hate zêdekirin. Piştgiriya ji bo pêvajoyên vektorê yên ku di taybetmendiya RISC-V Vector Extension Intrinsic 0.11 de hatine destnîşan kirin, hate bicîh kirin. Piştgiriyek ji bo 30 pêvekan li ser taybetmendiya RISC-V zêde kir.
- Hilberîna tiştên hevpar ên bi vebijarka -shared piştî lêzêdekirina hawîrdorek xala herikbar zêdekirina koda destpêkê rawestîne ger optimîzasyonên -Ofast, -fast-math, an -funsafe-math-optimîzasyon werin çalak kirin.
- Piştgiriya ji bo formata debug DWARF hema hema di hemî veavakirinan de tête bicîh kirin.
- Vebijarka "-gz=zstd" lê zêde kir da ku agahdariya çewtiyê bi karanîna algorîtmaya Zstandard berhev bike. Piştgiriya ji bo moda berhevkirina çewtiyê ya mîras "-gz=zlib-gnu" hate sekinandin.
- Piştgiriya destpêkê ji bo OpenMP 5.2 (Pir-Pêvajoya Vekirî) û pêkanîna domdar a standardên OpenMP 5.0 û 5.1 zêde kir, ku API û rêbazên ji bo sepandina rêbazên bernameya paralel li ser pergalên pir-core û hybrid (CPU+GPU/DSP) bi bîranîna hevbeş diyar dikin. û yekîneyên vectorization (SIMD).
- Piştgiriya ji bo formata hilanînê ya agahdariya çewtkirina mîrateya "STABS" (bi vebijarkên -gstabs û -gxcoff ve hatî çalak kirin), ku di salên 1980-an de hatî afirandin û di debuggera dbx de hatî bikar anîn, hate sekinandin.
- Piştgiriya ji bo Solaris 11.3 hate betal kirin (kodê ji bo piştgirîkirina vê platformê dê di berdanek pêşerojê de were rakirin).
Source: opennet.ru
