ááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯ áá áºááŸá áºá¡ááŒá¬ááœááºá á¡ááá²á· GCC 13.1 compiler suite ááᯠáá¯ááºáá±áá²á·ááŒá®ážá GCC 13.x áá¬áááœá²á¡áá áºááœáẠááááá¯á¶áž áááá¬áááºááŸá¬ážáá±á¬ ááŒáá·áºáá»áááŸá¯ááŒá áºáááºá á¡áá áºááœááºááŸááá¬ážáá±á¬ áá¶áá«ááºáááºááŒááºážá¡á á®á¡á ááºá¡á±á¬ááºááœááºá áá¬ážááŸááºáž 13.0 ááᯠááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯áá¬áá¡ááœááºáž á¡áá¯á¶ážááŒá¯áá²á·ááŒá®áž GCC 13.1 áááœááºááŸááá® áááŒá¬áá®ááœááºá GCC 14.0 áá¬áááœá²ááᯠááœá²áá¯ááºáá¬ážááŒá®ážááŒá áºááŒá®ážá áá¬ááá·áº GCC 14.1 á áá±á¬ááºáá°ážááŒá¬ážáá»ááºááŒá áºáá±á¬ ááŒáá·áºáá»áááŸá¯ááᯠááœá²á·á ááºážáááºááŒá áºáááºá
á¡áááááŒá±á¬ááºážáá²ááŸá¯áá»á¬áž-
- GCC ááẠModula-2 áááá¯ááááºážáááºážáá¬áá¬á áá¬ážááŒáá·áº áááá¯ááááºáááºáá±á¬ááºááŒááºážá¡ááœáẠááŸá±á·áááºážááᯠáááºáá¶áá²á·áááºá áááºážááẠPIM2á PIM3 ááŸáá·áº PIM4 áá±áááá áá¬ážáá»á¬ážá¡ááŒáẠááá¯áá¬áá¬á áá¬ážá¡ááœáẠáááºáá¶áá¬ážáá±á¬ ISO á á¶ááŸá¯ááºážáá»á¬ážááŸáá·áº ááá¯ááºáá®ááá·áº áááºáá±á¬ááºáá¯ááºáá»á¬ážááᯠáá¶á·ááá¯ážáá±ážáá«áááºá
- gccrs ááá±á¬áá»áẠ(GCC Rust) á០ááŒááºáááºáá¬ážáá±á¬ Rust áá¬áá¬á áá¬áž compiler ááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºááŒááºážááŒáá·áº ááŸá±á·áááºážááᯠGCC á¡áááºážá¡ááŒá áºáá áºáááºááá¯á· áá±á«ááºážááá·áºáá¬ážáááºá áááºááŸáááŒááºááœááºážááœááºá forntend ááᯠá ááºážáááºáá°á¡ááŒá ẠáááºááŸááºááŒá®áž áá¯á¶ááŸááºá¡á¬ážááŒáá·áº ááááºáá¬ážáááºá frontend á¡áááºááá·áºááŒá áºááŒá® (áá±á¬ááºááœááºááŸáááá·áºááœááºááŸáááá·áºáá»áŸá±á¬áºááá·áºáá»ááºáá»á¬áž)á LLVM ááá¯ážáááºááŸá¯áá»á¬ážááᯠá¡áá¯á¶ážááŒá¯á áááºáá±á¬ááºáá¬ážáá±á¬ rustc compiler ááᯠááá·áºááœááºážáááºáááá¯á¡ááºáá² Rust áááá¯ááááºáá»á¬ážááᯠá á¯á ááºážáááºá¡ááœáẠá ᶠGCC áááááá¬á¡á á¯á¶ááᯠá¡áá¯á¶ážááŒá¯ááá¯ááºáá«áááºá
- Link-in-Step Optimization (LTO) ááẠGNU á០ááááºážááááºážáá¬ážáá±á¬ á¡áá¯ááºáá¬áᬠ(jobserver) á¡ááœáẠáá¶á·ááá¯ážááŸá¯ áááºáá±á¬ááºážáá±ážááẠá GCC ááœááºá áááá¯ááááºáá áºáá¯áá¯á¶áž (WPAá Whole-program ááœá²ááŒááºážá áááºááŒá¬ááŒááºáž) áá¡ááŒá±á¡áá±ááœáẠLTO ááá¯ááá¯áá±á¬ááºážááœááºá¡á±á¬ááºááŒá¯áá¯ááºáá±á ááºá¡ááœááºáž á¡áá¯ááºá¡ááŒáá¯ááºáá¯ááºáá±á¬ááºáááºá¡ááœáẠjobserver ááá¯á¡áá¯á¶ážááŒá¯áááºá á¡áááºáá±ážáá¬ážáá±á¬ááá¯ááºáá»á¬áž (--jobserver-style=fifo) ááᯠjobserver ááŸáá·áº á¡ááŒááºá¡ááŸááºáá¯á¶á·ááŒááºáááºá¡ááœáẠáá°áááºážá¡á¬ážááŒáá·áº á¡áá¯á¶ážááŒá¯áá«áááºá
- static analyzer (-fanalyzer) ááẠ"-Wanalyzer-out-of-bounds", "-Wanalyzer-allocation-size", "-Wanalyzer-deref-before-check", "-Wanalyzer- á¡áá¯á¶ážáááŸáá¡áá«á¡ááẠáá±á¬áá«ááŸá¬ááœá±á á áºáá±ážááŸá¯á¡áá Ạ20 áá¯ááᯠáá¶á·ááá¯ážáá±ážááẠ-recursion" -Wanalyzer-jump-through-null", "-Wanalyzer-va-list-leak"á
- JSON ááá¯á¡ááŒá±áá¶á SARIF áá±á¬áºáááºááœáẠá¡ááŒá±ááŸá¬ááŒááºážá¡á¬áž áá¯ááºááá¯ááºá áœááºážááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºáá²á·áááºá áá±á¬áºáááºá¡áá áºááᯠáááºááŒáááºáá±á¬ááœá²ááŒááºážá áááºááŒá¬ááŸá¯ááááºáá»á¬áž (GCC -fanalyzer) áááŸááááºá¡ááŒáẠááááá±ážáá»ááºáá»á¬ážááŸáá·áº á¡ááŸá¬ážá¡ááœááºážáá»á¬ážááá¯ááºáᬠá¡áá»ááºá¡áááºáá»á¬ážááᯠááá°áááºáááºáž á¡áá¯á¶ážááŒá¯ááá¯ááºáá«áááºá "-fdiagnostics-format=sarif-stderr|sarif-file|json-stderr|json|json-file"á ááœá±ážáá»ááºá áá¬áá»á¬áž "json" ááŸáá·áº "json" áá«áá±á¬ ááœá±ážáá»ááºááŸá¯áá»á¬ážááẠJSON áá±á¬áºáááºá GCC áá®ážááá·áºáá»áá¯ážááœá²áá áºáá¯ááœáẠá¡ááœááºáááẠááœááºáá±á«áºáá¬ááá·áº ááœá±ážáá»ááºááŸá¯ááŒáá·áº ááœáá·áºáá¬ážááŒááºážááŒá áºáááºá .
- C23 C á á¶ááŸá¯ááºážááœáẠáááºááŸááºáá¬ážáá±á¬ á¡áá»áá¯á·áá±á¬á¡ááºá¹áá«áááºáá»á¬ážááŒá áºááá·áº null pointers áá»á¬ážááᯠáááºááŸááºáááºá¡ááœáẠnullptr constant ááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºááŒááºážááŒáá·áºá ááŒá±á¬ááºážáá²ááá¯ááºáá±á¬ á¡ááŒááºážá¡áá¯á¶á¡áá±á¡ááœáẠ(variadic)á enums áá»á¬ážá áá¯ááºáá±á¬ááºááá¯ááºá áœááºážáá»á¬ážááᯠááá¯ážáá»á²á·ááŒááºážá noreturn attribute ááŒáá·áº á á¬áááºážáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯áááœááºáá°á á±ááŒááºážá á¡áá¬ááá¹áá¯áá»á¬ážá á¡áá»áá¯ážá¡á á¬ážááŸáá·áº typeof_unqualá áá±á¬á·áá»ááºá á¬áá¯á¶ážá¡áá Ạalignasá alignofá boolá falseá static_assertá thread_local ááŸáá·áº true ááᯠáááºááŸááºáá±á¬á¡áá«ááœáẠá¡ááá¯á¡áá»á±á¬ááºááŸáá·áº á¡ááá¯á¡áá»á±á¬ááºá á¡á ááŒá¯ááŒááºážááœáẠááœááºážá ááœááºáá»á¬ážááᯠááœáá·áºááŒá¯áá«á
- C++23 á á¶ááŸá¯ááºážááœáẠáááºááŸááºáá¬ážáá±á¬ á¡ááºá¹áá«áááºá¡áá»áá¯á·ááᯠáá±á«ááºážá ááºáá±á¬áºááŒáá»ááºáá»á¬ážáá¡áá¯á¶ážááœáẠá¡ááŸááºá¡áá¬ážáá»á¬ážáá¬ážááŸáááá¯ááºááŸá¯á char8_t á¡áá»áá¯ážá¡á á¬ážááŸáá·áº ááá¯ááºáááºáá®ááŸá¯á (\u{}, \o{} ááŒáá·áº ááá¯ááºážááŒá¬ážáá¬ážáá±á¬ #ááááá±ážáá»áẠááŒáá¯áááºáááá¯áááºáá¬ááœáŸááºááŒá¬ážáá»ááºá , \x{}), ááŸáá·áº ('\N{LATIN CAPITAL LETTER A}') áᯠá¡áááºáá±ážáá¬ážááá·áº á¡á á®á¡á á¥áºáá»á¬ážá static operator()á static operator[]á expressions á¡ááœááºáž áááºážáá°áá®áá»áŸáá±áž á¡á±á¬áºááá±áá¬á constexpr á¡áá¯á¶ážááŒá¯ááŸá¯á¡áá±á«áº ááá·áºáááºáá»ááºá¡áá»áá¯á·á០ááŒáœááºážáá»ááºá áá¶á·ááá¯ážááŸá¯ á¡áááºážá¡ááŒá áºá á¬áá¬ážáá»á¬ážááœáẠUTF-8 á¡ááœááºá
- libstdc++ ááẠáá±á«ááºážá á®ážááá¯ááºáá¶á·ááá¯ážááŸá¯áá±á«ááºážááá·áºááŒááºážáá²á·ááá¯á·áá±á¬ C++20 ááŸáá·áº C++23 á á¶ááŸá¯ááºážáá»á¬ážá¡ááœáẠá ááºážáááºááŸá¯ááá¯ááºáᬠáá¶á·ááá¯ážááŸá¯ááᯠááŒáŸáá·áºáááºáá¬ážááẠááŸáá·áº std::formatá ááá¯ážáá»á²á· header file á áœááºážááẠá áá±á¬ááºááẠfloating point á¡áá»áá¯ážá¡á á¬ážáá»á¬ážááᯠááá·áºááœááºážáá¬ážááŒá®ážá áá±á«ááºážá á®ážááá¯ááºáá»á¬ážááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºáá¬ážáááºá ááŸáá·áº .
- ááá¯ááºáá±á¬áºááŒáá»ááºáá±ážáá°ááẠááááºážááŒáá·áºááŒá±á¬ááºážááá·áºáá¯á¶á á¶ááŒáá·áº áá±ážááá¯á·áá¬ážáááº- "__attribute__((fd_arg(N)))), "__attribute__((fd_arg_read(N)))" ááŸáá·áº "__attribute__((fd_arg_write(N))" ) ) â á áááºááŸááºáá¬ážáá±á¬ attribute áá»á¬ážááᯠááá¯ááºáá±á¬áºááŒáá»ááºáá±ážáá°áá»á¬ážááŸáá·áº ááŸá¬ážááœááºážáá±áá±á¬ á¡áá¯ááºáá»á¬ážááᯠááŸá¬ááœá±ááẠstatic analyzer (-fanalyzer) ááœáẠá¡áá¯á¶ážááŒá¯ááá¯ááºáá«áááºá
- áááºááœáŸááºážáá»ááºá¡áá Ạ"__attribute__((áá°á(EXPR)))" ááᯠáá±á«ááºážááá·áºáá¬ážááŒá®ážá áááºážááẠááœááºááŒá°áá¬á¡á¬áž á áá¬ážáááºááŸááºááŒá±á¬ááºážááŸáá·áº á á¯á ááºážáá°ááẠá áá¬ážáááºááᯠá¡áá²ááŒááºááŒááºážáááŒá¯áá² á€á¡áá»ááºááᯠá¡áá¯á¶ážááŒá¯ááá¯ááºáááºá
- ááœá²á·á ááºážáááºáá±á¬ááºáá¯á¶áá»á¬ážááœáẠááŒá±á¬ááºážááœááºááŒááºááœááºááŸááá±á¬ á¡áááºážá¡áá»ááºážááŒááºá ááºááᯠáá¯ááºáá±á¬ááºááá·áºá¡áá« á¡ááŒá¯á¡áá°ááá¯ááœá±ážáá»ááºááẠ"-fstrict-flex-arrays=[level]" á¡áá¶ááᯠáá±á«ááºážááá·áºáá²á·ááẠ(Flexible Array Membersá ááœá²á·á ááºážáá¯á¶áá¡áá¯á¶ážááœáẠá¡ááá·áºá¡áááºáááŸáá¡ááœááºá¡á á¬ážáá áºáá¯á á¥ááá¬á "int b[] â ) á
- á á¬áááºážáá±ážááœááºážáá¬ážáá±á¬ á¡áá»áá¯ážá¡á á¬ážááŸáá·áº ááááºážááŒáá·áºá¡áá»áá¯ážá¡á á¬ážááŒá¬áž áááá¯ááºáá®áá«á ááááá±ážáá»ááºáá»á¬ážááᯠáá¯ááºááŒááºááẠ"-Wenum-int-mismatch" á¡áá¶ááᯠááá·áºááœááºážáá¬ážáááºá
- Fortran á ááŸá±á·áá¯á¶ážááœáẠá¡ááŒá®ážááẠá¡ááŒá®ážáááºááẠá¡ááŒáá·áºá¡á áá¶á·ááá¯ážááŸá¯ ááŸááááºá
- áá±áá°áá»áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááŸáá·áº á¡áá»áá¯ážá¡á á¬ážáá»á¬áž (generics) ááᯠGo áá¬áá¬á áá¬ážá¡ááœáẠááŸá±á·áááºážááá¯á· áá±á«ááºážááá·áºáá¬ážááŒá®áž Go 1.18 áá¬áá¬á áá¬ážá¡ááœáẠáááºáá±á·áá»áºáá»á¬ážááŸáá·áº ááá¯ááºáááºááŸá¯ááŸááááºááᯠá¡á¬ááá¶áá«áááºá
- AArch64 backend ááẠCPU Ampere-1A (ampere1a), Arm Cortex-A715 (cortex-a715), Arm Cortex-X1C (cortex-x1c), Arm Cortex-X3 (cortex-x3), ááŸáá·áº Arm Neoverse V2 (neoverse -v2) . "armv9.1-a", "armv9.2-a" ááŸáá·áº "armv9.3-a" á¡ááŒá±á¬ááºážááŒáá»ááºáá»á¬ážá¡ááœáẠáá¶á·ááá¯ážááŸá¯á¡á¬áž "-march=" ááœá±ážáá»ááºááŸá¯ááœáẠááá·áºááœááºážáá¬ážáááºá FEAT_LRCPCá FEAT_CSSC ááŸáá·áº FEAT_LSE2 áááá¯áááºáᬠááá¯ážáá»á²á·ááŸá¯áá»á¬áž á¡ááœáẠáá¶á·ááá¯ážááŸá¯ áá±á«ááºážááá·áºáá¬ážáááºá
- STAR-MC1 (star-mc1)á Arm Cortex-X1C (cortex-x1c) ááŸáá·áº Arm Cortex-M85 (cortex-m85) CPU áá»á¬ážááᯠARM áááá¯áá¬áá±á¬ááºááœááºááœáẠááá·áºááœááºážáá¬ážáááºá
- Intel Raptor Lakeá Meteor Lakeá Sierra Forestá Grand Ridgeá Emerald Rapidsá Granite Rapids ááŸáá·áº AMD Zen 86 (znver4) áááá¯áááºáá¬áá»á¬ážá¡ááœáẠáá¶á·ááá¯ážááŸá¯á¡á¬áž x4 áá±á¬ááºáá¶ááœáẠááá·áºááœááºážáá¬ážáá«áááºá AVX-IFMAá AVX-VNNI-INT8á AVX-NE-CONVERTá CMPccXADDá AMX-FP16á PREFETCHIá RAO-INT ááŸáá·áº AMX-COMPLEX ááœáŸááºááŒá¬ážáá»ááºá¡á á¯á¶ááẠIntel áááá¯áááºáá¬áá»á¬ážááœáẠá¡ááá¯ááŒá¯áá¬ážáá±á¬ áááá¯áá¬á¡áááºáááºáá»á¬ážááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºááŒá®ážááŒá áºáááºá SSE2 áá«áá±á¬ á áá áºáá»á¬ážááœáẠC ááŸáá·áº C++ á¡ááœáẠ__bf16 á¡áá»áá¯ážá¡á á¬ážááᯠáá±ážáá¬ážáááºá
- AMD Radeon GPUs (GCN) á¡ááœáẠáá¯ááºáá»áá¯ážááẠáá±á¬ááºááœááºááŸááẠOpenMP/OpenACC á áœááºážáá±á¬ááºáááºááᯠááŒáŸáá·áºáááºááẠAMD Instinct MI200 á¡ááŸáááºááŒáŸáá·áºá ááºáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯ááá¯ááºááá·áº á áœááºážáááºááᯠáá±á¬áºáá±á¬ááºáá±ážáá«áááºá SIMD ááœáŸááºááŒá¬ážáá»ááºáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯á ááá¯ááá¯áá±á¬ááºážááœááºáá±á¬ vectorization ááŒá¯áá¯ááºááŒááºážá
- LoongArch ááááºáá±á¬ááºážá¡ááœáẠáá±á¬ááºáá¶á áœááºážáá±á¬ááºáááºáá»á¬ážááᯠáááá¬á áœá¬ ááá¯ážáá»á²á·áá¬ážáááºá
- RISC-V áá±á¬ááºáá¶ááœáẠCPU T-Head á XuanTie C906 (thead-c906) á¡ááœáẠáá¶á·ááá¯ážááŸá¯ áá±á«ááºážááá·áºáá¬ážáááºá RISC-V Vector Extension Intrinsic 0.11 áááºááŸááºáá»ááºááœáẠáááºááŸááºáá¬ážáá±á¬ vector handlers áá»á¬ážá¡ááœáẠáá¶á·ááá¯ážááŸá¯ááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºáá²á·áááºá 30 RISC-V áááºááŸááºáá»áẠááá¯ážáá»á²á·ááŸá¯áá»á¬áž á¡ááœáẠáá¶á·ááá¯ážááŸá¯ áááºááá·áºáá¬ážáááºá
- "-shared" ááœá±ážáá»ááºááŸá¯ááŒáá·áº áá»áŸáá±áá¬ážáá±á¬ á¡áá¬ááá¹áá¯áá»á¬ážááᯠáá¯ááºáá¯ááºááá·áºá¡áá« "-Ofast"á "-ffast-math" ááá¯á·ááá¯áẠ"-funsafe-math-optimizations" ááá¯ááá¯áá±á¬ááºážááœááºá¡á±á¬ááºáá¯ááºáá±á¬ááºááŸá¯áá»á¬ážááᯠááœáá·áºáá¬ážáá«á floating point áááºáááºážáá»ááºááᯠááá·áºááœááºážááŒá®ážáá±á¬áẠstartup code ááᯠáááºááá·áºáááºááá¯ááºáá±á¬á·áá«á .
- DWARF á¡ááŸá¬ážááŸá¬ááŒááºááŒááºážáá±á¬áºáááºá¡ááœáẠáá¶á·ááá¯ážááŸá¯á¡á¬áž ááœá²á·á ááºážááŸá¯á¡á¬ážáá¯á¶ážáá®ážáá«ážááœáẠá¡áá±á¬ááºá¡áááºáá±á¬áºáá¬ážáááºá
- Zstandard á¡ááºáááá¯áá®áááºááᯠá¡áá¯á¶ážááŒá¯á á¡ááŸá¬ážááŸá¬ááŒááºááŒááºážááá¯ááºáᬠá¡áá»ááºá¡áááºááᯠáá»á¯á¶á·ááẠ"-gz=zstd" ááœá±ážáá»ááºááœáá·áºááᯠááá·áºááœááºážáá²á·áááºá ááá·áºááœááºáá¬ážáá±á¬ á¡ááŸá¬ážá¡ááœááºážá¡áá»ááºá¡áááºáá»á¯á¶á·áá¯áẠ"-gz=zlib-gnu" á¡ááœáẠáá¶á·ááá¯ážááŸá¯ááᯠáááºááŸá¬ážáá²á·áááºá
- OpenMP 5.2 (Open Multi-Processing) á¡ááœáẠáááŠážáá¶á·ááá¯ážááŸá¯ááᯠááá·áºááœááºážáá¬ážááŒá®áž OpenMP 5.0 ááŸáá·áº 5.1 á á¶ááŸá¯ááºážáá»á¬ážááᯠáááºáááºá¡áá±á¬ááºá¡áááºáá±á¬áºáá²á·ááŒá®áž Multi-core ááŸáá·áº hybrid (CPU + GPU / DSP) á áá áºáá»á¬ážááœáẠá¡ááŒáá¯ááºáááá¯ááááºážáááºážáááºážáááºážáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯áááºá¡ááœáẠAPIs ááŸáá·áº áááºážáááºážáá»á¬ážááᯠáááºááŸááºááŒááºáž áá»áŸáá±áá¬ážáá±á¬ memory ááŸáá·áº vectorization áá°áá Ạ(SIMD)á
- á¡ááœá±á¡ááŸá Ạá¡ááŸá¬ážá¡ááœááºáž á¡áá»ááºá¡áááºáá»á¬áž ááá¯ááŸá±á¬ááºááŸá¯ áá±á¬áºááẠ"STABS" á¡ááœáẠáá¶á·ááá¯ážááŸá¯ (-gstabs ááŸáá·áº -gxcoff ááœá±ážáá»ááºááŸá¯áá»á¬ážááŒáá·áº ááœáá·áºáá¬ážáááº)á 1980 áá¯ááŸá áºáá»á¬ážááœáẠáááºáá®ážááŒá®áž dbx á¡ááŸá¬ážááŸá¬ááœáẠá¡áá¯á¶ážááŒá¯ááá·áº áá¶á·ááá¯ážááŸá¯á¡á¬áž áááºááá¯ááºážááá¯ááºáá«áááºá
- Solaris 11.3 á¡ááœáẠááá·áºááœááºáá¬ážáá±á¬ áá¶á·ááá¯ážááŸá¯ (á€ááááºáá±á¬ááºážááᯠáá¶á·ááá¯ážááẠáá¯ááºááᯠáá±á¬ááºááœááºááŸáááŸá¯ááœáẠáááºááŸá¬ážáá«áááº)á
source: opennet.ru