13.1λ κ°μ κ°λ° λμ λ¬΄λ£ GCC μ»΄νμΌλ¬ λͺ¨μμΈ GCC 13μ΄ μΆμλμμ΅λλ€. μ΄λ μλ‘μ΄ GCC 13.0.x λΈλμΉμ 첫 λ²μ§Έ μ£Όμ 릴리μ€μ λλ€. μλ‘μ΄ λ¦΄λ¦¬μ€ λ²νΈ 체κ³μ λ°λΌ κ°λ° μ€μλ λ²μ 13.1μ΄ μ¬μ©λμμΌλ©°, GCC 14.0μ΄ μΆμλκΈ° μ§μ μ GCC 14.1μ λΆκΈ°κ° μ΄λ―Έ λ§λ€μ΄μ‘λλ°, μ΄λ λ€μ μ£Όμ 릴리μ€μΈ GCC XNUMXμ κΈ°λ°μ΄ λ κ²μ λλ€.
μ£Όμ λ³κ²½ μ¬ν :
- GCCμλ μ΄μ Modula-2 νλ‘κ·Έλλ° μΈμ΄λ‘ νλ‘κ·Έλ¨μ λΉλνκΈ° μν νλ°νΈμλκ° ν¬ν¨λμ΄ μμ΅λλ€. PIM2, PIM3, PIM4 λ°©μΈκ³Ό ν΄λΉ μΈμ΄μ λν μΉμΈλ ISO νμ€μ μ€μνλ 건μΆλ²μ΄ μ§μλ©λλ€.
- gccrs(GCC Rust) νλ‘μ νΈμμ μ€λΉν Rust μΈμ΄ μ»΄νμΌλ¬ ꡬνμ κ°μΆ νλ°νΈμλκ° GCC μμ€ νΈλ¦¬μ μΆκ°λμμ΅λλ€. νμ¬ ννμ ν¬νΈμλλ μ€νμ©μΌλ‘ νμλμ΄ μμΌλ©° κΈ°λ³Έμ μΌλ‘ λΉνμ±νλμ΄ μμ΅λλ€. νλ°νΈμλκ° μ€λΉλλ©΄(λ€μ λ¦΄λ¦¬μ€ μμ ) LLVM μμ μ μ¬μ©νμ¬ λΉλλ rustc μ»΄νμΌλ¬λ₯Ό μ€μΉνμ§ μκ³ λ νμ€ GCC ν΄μ²΄μΈμ μ¬μ©νμ¬ Rust νλ‘κ·Έλ¨μ μ»΄νμΌν μ μμ΅λλ€.
- LTO(Link Time Optimization) λ©μ»€λμ¦μ μ¬λ¬ μ€λ λμμ λ³λ ¬ λΉλ μ€νμ μ΅μ ννκΈ° μν΄ GNU make νλ‘μ νΈμμ κ΄λ¦¬νλ jobserverλ₯Ό μ§μνλλ‘ νμ₯λμμ΅λλ€. GCCμμ jobserverλ μ 체 νλ‘κ·Έλ¨(WPA, μ 체 νλ‘κ·Έλ¨ λΆμ)μ λ§₯λ½μμ LTO μ΅μ ν μ€μ μμ μ λ³λ ¬ννλ λ° μ¬μ©λ©λλ€. κΈ°λ³Έμ μΌλ‘ λͺ λͺ λ νμ΄ν(--jobserver-style=fifo)λ jobserverμ ν΅μ νλ λ° μ¬μ©λ©λλ€.
- μ μ λΆμκΈ°(-fanalyzer)λ "-Wanalyzer-out-of-bounds", "-Wanalyzer-allocation-size", "-Wanalyzer-deref-before-check", "-Wanalyzer-infinite-recursion", "-Wanalyzer-jump-through-null", "-Wanalyzer-va-list-leak"λ₯Ό ν¬ν¨νμ¬ 20κ°μ μλ‘μ΄ μ§λ¨ κ²μ¬λ₯Ό μ 곡ν©λλ€.
- JSONμ κΈ°λ°μΌλ‘ SARIF νμμΌλ‘ μ§λ¨ κ²°κ³Όλ₯Ό μΆλ ₯νλ κΈ°λ₯μ ꡬννμ΅λλ€. μλ‘μ΄ νμμ μ μ λΆμ κ²°κ³Ό(GCC-fanalyzer)λ₯Ό μ»λ λ° μ¬μ©ν μ μμΌλ©°, κ²½κ³ λ° μ€λ₯μ λν μ 보λ₯Ό μ»λ λ°λ μ¬μ©ν μ μμ΅λλ€. "-fdiagnostics-format=sarif-stderr|sarif-file|json-stderr|json|json-file" μ΅μ μ ν΅ν΄ νμ±νλλ©°, "json" μ΅μ μ΄ ν¬ν¨λ κ²½μ° JSON νμμ GCC νΉμ λ³νμΌλ‘ μΆλ ₯λ©λλ€.
- C23 C νμ€μ μ μλ μ¬λ¬ κΈ°λ₯μ΄ κ΅¬νλμμ΅λλ€. μ¬κΈ°μλ λ ν¬μΈν°λ₯Ό μ μνκΈ° μν nullptr μμ, κ°λ³ 리μ€νΈμ μ¬μ© κ°μν, μ΄κ±°νμ κΈ°λ₯ νμ₯, noreturn μμ±, κ°μ²΄ μ μ μ constexpr λ° auto μ¬μ© νμ©, typeof λ° typeof_unqual μ°μ°μ, μλ‘μ΄ alignas, alignof, bool, false, static_assert, thread_local λ° true ν€μλ, μ΄κΈ°ν μ€μ λΉ κ΄νΈ μ§μ νμ© λ±μ΄ μμ΅λλ€.
- C++23 νμ€μ μ μλ μΌλΆ κΈ°λ₯μ΄ κ΅¬νλμμ΅λλ€. μ¬κΈ°μλ λ³΅ν© ννμμ λμ λ μ΄λΈμ λΆμ΄λ κΈ°λ₯, char8_t μ νκ³Όμ νΈνμ±, #warning μ μ²λ¦¬κΈ° μ§μμ΄, ꡬλΆλ (\u{}, \o{}, \x{}) μ΄μ€μΌμ΄ν μνμ€μ μ΄λ¦μ΄ μ§μ λ ('\N{LATIN CAPITAL LETTER A}') μ΄μ€μΌμ΄ν μνμ€, μ μ μ°μ°μ(), μ μ μ°μ°μ[], ννμ λ΄μ λ±μ μ°μ°μ, constexpr μ¬μ©μ λν μΌλΆ μ ν μ κ±°, μμ€ ν μ€νΈμμ UTF-8 μ§μ λ±μ΄ μμ΅λλ€.
- libstdc++λ ν€λ νμΌ μ§μμ μΆκ°νλ λ± C++20 λ° C++23 νμ€μ λν μ€νμ μ§μμ κ°μ νμ΅λλ€. λ° std::format, ν€λ νμΌ κΈ°λ₯μ΄ νμ₯λμμ΅λλ€. , μΆκ° λΆλ μμμ μ ν μΆκ°, ν€λ νμΌ κ΅¬ν κ·Έλ¦¬κ³ .
- νμΌ μ€λͺ μκ° μ μ λ³μλ‘ μ λ¬λλ€λ κ²μ λ¬ΈμννκΈ° μν΄ μλ‘μ΄ ν¨μ μμ±μ΄ μΆκ°λμμ΅λλ€: "__attribute__((fd_arg(N)))", "__attribute__((fd_arg_read(N)))", λ° "__attribute__((fd_arg_write(N)))". μ§μ λ μμ±μ μ μ λΆμκΈ°(-fanalyzer)μμ νμΌ μ€λͺ μμ κ΄λ ¨λ μλͺ»λ μμ μ κ°μ§νλ λ° μ¬μ©ν μ μμ΅λλ€.
- μ»΄νμΌλ¬μκ² ννμμ΄ μ°Έμ΄λ©° μ»΄νμΌλ¬κ° ννμμ νκ°νμ§ μκ³ λ μ΄ μ¬μ€μ μ¬μ©ν μ μλ€λ κ²μ μλ €μ£Όλ λ° μ¬μ©ν μ μλ μλ‘μ΄ μμ± "__attribute__((assume(EXPR)))"κ° μΆκ°λμμ΅λλ€.
- ꡬ쑰체μμ μ μ°ν λ°°μ΄ μμλ₯Ό μ²λ¦¬ν λ λμμ μ ννκΈ° μν΄ "-fstrict-flex-arrays=[level]" νλκ·Έλ₯Ό μΆκ°νμ΅λλ€(μ μ°ν λ°°μ΄ λ©€λ², ꡬ쑰체 λμ μλ μ μλμ§ μμ ν¬κΈ°μ λ°°μ΄, μ: "int b[]").
- μ΄κ±°νκ³Ό μ μνμ΄ μΌμΉνμ§ μλ κ²½μ° κ²½κ³ λ₯Ό μΆλ ₯νκΈ° μν΄ "-Wenum-int-mismatch" νλκ·Έλ₯Ό μΆκ°νμ΅λλ€.
- Fortran νλ°νΈμλλ λ§λ¬΄λ¦¬ μ§μμ μλ²½νκ² κ΅¬νν©λλ€.
- Go μΈμ΄μ νλ°νΈμλλ μΌλ° ν¨μμ μ νμ μ§μνλλ‘ μ λ°μ΄νΈλμμΌλ©°, μ΄μ Go 1.18 μΈμ΄μ ν¨ν€μ§μ νΈνλ©λλ€.
- AArch64 μν€ν μ²μ λ°±μλλ Ampere-1A(ampere1a), Arm Cortex-A715(cortex-a715), Arm Cortex-X1C(cortex-x1c), Arm Cortex-X3(cortex-x3), Arm Neoverse V2(neoverse-v2) CPUμ λν μ§μμ ꡬνν©λλ€. "-march=" μ΅μ μ "-march=" μΈμ "armv9.1-a", "armv9.2-a" λ° "armv9.3-a"μ λν μ§μμ΄ μΆκ°λμμ΅λλ€. FEAT_LRCPC, FEAT_CSSC λ° FEAT_LSE2 νλ‘μΈμ νμ₯μ λν μ§μμ΄ μΆκ°λμμ΅λλ€.
- ARM μν€ν μ² λ°±μλλ μ΄μ STAR-MC1(star-mc1), Arm Cortex-X1C(cortex-x1c), Arm Cortex-M85(cortex-m85) CPUλ₯Ό μ§μν©λλ€.
- x86 λ°±μλλ μ΄μ Intel Raptor Lake, Meteor Lake, Sierra Forest, Grand Ridge, Emerald Rapids, Granite Rapids λ° AMD Zen 4(znver4) νλ‘μΈμλ₯Ό μ§μν©λλ€. μ μλ Intel νλ‘μΈμ λͺ λ Ήμ΄ μΈνΈ μν€ν μ² νμ₯ AVX-IFMA, AVX-VNNI-INT8, AVX-NE-CONVERT, CMPccXADD, AMX-FP16, PREFETCHI, RAO-INT λ° AMX-COMPLEXλ₯Ό ꡬνν©λλ€. SSE2κ° μλ μμ€ν μ C λ° C++μ κ²½μ° __bf16 μ νμ΄ μ 곡λ©λλ€.
- AMD Radeon GPU μ½λ μμ±(GCN) λ°±μλλ μ΄μ OpenMP/OpenACC μ±λ₯μ κ°μ νκΈ° μν΄ AMD Instinct MI200 κ°μκΈ°λ₯Ό μ¬μ©ν μ μλλ‘ μ§μν©λλ€. SIMD λͺ λ Ήμ΄λ₯Ό μ¬μ©νμ¬ λ²‘ν°νλ₯Ό κ°μ νμ΅λλ€.
- LoongArch νλ«νΌμ λ°±μλ κΈ°λ₯μ΄ ν¬κ² νμ₯λμμ΅λλ€.
- RISC-V λ°±μλλ μ΄μ T-Headμ XuanTie C906(thead-c906) CPUμ λν μ§μμ μΆκ°ν©λλ€. RISC-V Vector Extension Intrinsic 0.11 μ¬μμ μ μλ λ²‘ν° νλ‘μΈμμ λν μ§μμ΄ κ΅¬νλμμ΅λλ€. 30κ°μ RISC-V μ¬μ νμ₯μ λν μ§μμ΄ μΆκ°λμμ΅λλ€.
- -shared μ΅μ μΌλ‘ 곡μ κ°μ²΄λ₯Ό λΉλν λ -Ofast, -ffast-math λλ -funsafe-math-optimizationsκ° νμ±νλ κ²½μ° λΆλ μμμ νκ²½μ μΆκ°ν ν μμ μ½λ μΆκ°κ° μ€λ¨λμμ΅λλ€.
- DWARF λλ²κ·Έ νμμ λν μ§μμ κ±°μ λͺ¨λ ꡬμ±μμ ꡬνλ©λλ€.
- Zstandard μκ³ λ¦¬μ¦μ μ¬μ©νμ¬ λλ²κ·Έ μ 보λ₯Ό μμΆνκΈ° μν΄ "-gz=zstd" μ΅μ μ΄ μΆκ°λμμ΅λλ€. λ κ±°μ λλ²κ·Έ μ 보 μμΆ λͺ¨λ "-gz=zlib-gnu"μ λν μ§μμ΄ μ€λ¨λμμ΅λλ€.
- OpenMP 5.2(Open Multi-Processing)μ λν μ΄κΈ° μ§μμ μΆκ°νκ³ , 곡μ λ©λͺ¨λ¦¬μ 벑ν°ν μ₯μΉ(SIMD)λ₯Ό κ°μΆ λ©ν° μ½μ΄ λ° νμ΄λΈλ¦¬λ(CPU+GPU/DSP) μμ€ν μ λ³λ ¬ νλ‘κ·Έλλ° λ°©λ²μ μ μ©νκΈ° μν APIμ λ°©λ²μ μ μνλ OpenMP 5.0 λ° 5.1 νμ€μ ꡬνμ κ³μνμ΅λλ€.
- 1980λ λμ λ§λ€μ΄μ Έ dbx λλ²κ±°μμ μ¬μ©λλ λ κ±°μ λλ²κ·Έ μ 보 μ μ₯ νμμΈ "STABS"( -gstabs λ° -gxcoff μ΅μ μΌλ‘ νμ±ν)μ λν μ§μμ΄ μ€λ¨λμμ΅λλ€.
- Solaris 11.3μ λν μ§μμ΄ μ€λ¨λμμ΅λλ€(μ΄ νλ«νΌμ μ§μνλ μ½λλ ν₯ν 릴리μ€μμ μ κ±°λ μμ μ λλ€).
μΆμ² : opennet.ru
