Dimittis de GCC 13 compilator suite

Post annum evolutionis, emissio gratuiti GCC 13.1 compilator comitiorum dimissa est, prima significativa emissio in novo GCC 13.x ramo. Sub nova emissione numerandi schema, versio 13.0 in evolutione adhibita est, et paulo ante GCC 13.1 emissio, GCC 14.0 ramus iam trisulcus erat, ex quo altera significativa emissio GCC 14.1 formabitur.

Major changes:

  • GCC frontem adoptavit ad programmata facienda in lingua programmandi Modula-2. Codicem construendum sustinet qui dialectis PIM2, PIM3 et PIM4 conformis, necnon ISO norma linguae illius receptae.
  • A fronte exsequenda cum compilator Rust linguae a gccrs projectae (GCC Rust) ad GCC fontem lignum additum est. In praesenti intuitu, forntend notatur experimentum et debilem per defaltam. Olim frontend parata est (expectata in altera emissione), vexillum toolkit GCC adhiberi potest ad programmata rubiginis componenda sine necessitate ad instituendum rustc compilator utendo LLVM explicationibus aedificatis.
  • Link-in-Step Optimization (LTO) subsidium addit pro servo officium (jobserver) conservatum a GNU project ad optimize parallelam aedificandi executionem per plures fila. In GCC, ministrator ad opus parallelizandum in LTO optimizationis in contextu totius programmatis (WPA, Integrum-programma Analysis). Fistulae nominati (fifo--jobserver-style) adhibitae sunt defalta ut correspondeat cum cursore.
  • Statica analyser (-fanalyzer) 20 novas diagnostica compescit, inter quas "-Wanalyzer-ex-ex-fines", "-Wanalyzer-prouinciis-size", "-Wanalyzer-deref-ante-reprehendo", "-Wanalyzer- infinitum". -recursion".
  • Facultas diagnostica in SARIF formato ex JSON ad output adducta est. Nova forma adhiberi potest ad eventus analysis statice (GCC -fanalyzer), necnon ad informationem de admonitionibus et erroribus. Ut fit cum optione "-fdiagnostics-format=sarif-stderr|sarif-file|json-stderr|json|json-file", ubi optiones cum "json" resultant in output in GCC specialium variantium formarum JSON .
  • Notae nonnullae notae in C23 C definitae deductae sunt, ut nullptr constantes ad nullis indicibus definiendis, facilius utendi indices cum argumentis variabilibus (variadicis), facultatibus enums, noreturn attributi, adhibitis permittendis. constexpr et auto- cum obiectis definiendis, speciebus et speciebus_unqualibus, novis keywords alignas, alignof, bool, falsa, static_assert, thread_loca et vera, parenthesi vacuas praebens in initialization.
  • Notae nonnullae notae in C++23 vexillo definitae, ut facultas notas collocandi in fine expressionum compositorum, congruentia cum char8_t typo, praeprocessus directivus praemonitus, ab (\u{}, \o{} definitus. , \x{}), et nominavit ('\N{LATIN EPISTOLA CAPITIS A}') sequentia effugia, operator static (), operator static[], aequalitas operans in expressionibus, exceptiones aliquarum restrictionum in usu constexpr, sustentatio pro UTF-8 in textuum fonte.
  • Melior experimentalis subsidium pro C++20 et C++23 signis in libstdc++ et std :: forma, extensa header lima capabilities , punctum imaginum additae fluctuationis additae, fasciculi header implemented Et .
  • Munus novum attributum documento addidit quod fasciculus descriptor in integer variabilis transigitur: "__attribute__((fd_arg(N))))", "__attribute__((fd_arg_read(N))))", et "__attribute_((fd_arg_write(N)) )) Β«. Determinata attributa in analysi stabili (-fanalyzer) adhiberi possunt ad opus falsum descriptoribus fasciculi deprehendere.
  • Novum attributum "__attribute" ((EXPR)))" adiectum est, quo indicare potes compilator locutionem esse veram et compilator hoc facto sine aestimatione locutionis uti.
  • Addidit "-fstrict-flex-arrays=[level]" vexillum ad mores selectos cum elementum flexibile in structuram ordinandum dispensando (Membra flexibilia Array, ordinatio indefinitae magnitudinis in fine structurae, exempli gratia "int b[] ").
  • Addidit vexillum "-Wenum-int-mismatch" monuisse si casus sit inter genus recensitum et integrum genus.
  • Fortran ante-finis plenam finalizationis subsidium habet.
  • Firmamentum pro functionibus genericis et speciebus (genericis) ad finem anteriorem pro lingua Go additum est, et convenientia cum fasciculis pro lingua Go 1.18 conservata est.
  • AArch64 backend supports CPU Ampere-1A (ampere1a), Arm Cortex-A715 (cortex-a715), Brachium Cortex-X1C (cortex-x1c), Brachium Cortex-X3 (cortex-x3), et Brachium Neoverse V2 (neoverse -v2). . Support for "armv9.1-a", "armv9.2-a", and "armv9.3-a" argumenta has been added to the "-march=" option. Auxilia additae pro extensionibus processus FEAT_LRCPC, FEAT_CSSC et FEAT_LSE2.
  • Firmamentum pro STELLA MC1 (stellarum-mc1), Brachium Cortex-X1C (cortex-x1c), et Brachium Cortex-M85 (cortex-m85) CPUs ARM architecturae backend additum est.
  • Support for Intel Raptor Lake, Meteor Lake, Sierra Forest, Grand Ridge, Emerald Rapids, Granite Rapids, AMD Zen 86 (znver4) processors ad x4 backend additum est. AVX-IFMA, AVX-VNNI-INT8, AVX-NE-CONVERT, CMPccXADD, AMX-FP16, PREFETCHI, RAO-INT, et AMX-COMPLEX institutio propositae extensiones architecturae in processibus Intel propositae. Pro C et C ++ in systematis cum SSE2, genus __bf16 providetur.
  • Codicis generationis tergum pro AMD Radeon GPUs (GCN) perficit facultatem utendi AMD Instincti MI200 acceleratores ad emendandum OpenMP/OpenACC perficiendi. Improved vectorization using SIMD instructions.
  • Insigniter ampliavit facultatem remittendi pro suggestu LoongArch.
  • Auxilia additae pro CPU T-Capitis XuanTie C906 (thead-c906) in RISC-V backend. Firmamentum de vectoris tractoriis definitis in RISC-V Vector Extensio Intrinsicae specificationis 0.11. Auxilia adiectae extensiones specificationis 30 RISC-V.
  • Cum res communes cum optione "-shared" generandi, signum startup additur, addito puncto fluctuationis ambitu si "-Ofast", "-ffast-math", vel "-funsafe-math-optimizationes" optimizations valeant. .
  • Firmamentum pro Pumilionum debugging forma in omnibus fere conformationibus ad effectum deducitur.
  • Adiecit "-gz=zstd" optio ad comprimendam debug informationes utens Zstandard algorithmus. Sublatum subsidium pro deprecatione debug informationes compressionis modus "-gz=zlib-gnu".
  • Subsidium initiale pro OpenMP 5.2 (Open Multi-Processing) adiectum est et exsequendum in signis OpenMP 5.0 et 5.1 continuavit, definiens APIs et modos applicandi rationes programmandi paralleli in systemata multi-core et hybridorum (CPU + GPU/DSP) cum communi memoria et vectorization unitates (SIMD).
  • Deprecatus auxilium pro legato STABS debug informationes repositionis forma (para cum optionibus -gstabs et -gxcoff), in 1980s creatum et adhibitum in dbx debugger.
  • Auxilium Solaris deprecatur 11.3 (codex ad hoc suggestum sustinendum in futura emissione tolletur).

Source: opennet.ru