ืžืขืœื“ื•ื ื’ ืคื•ืŸ ื“ื™ LLVM 12.0 ืงืึทืžืคึผื™ื™ืœืขืจ ืฉื˜ืขืœืŸ

ื ืึธืš ื–ืขืงืก ื—ื“ืฉื™ื ืคื•ืŸ ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’, ื“ื™ ืžืขืœื“ื•ื ื’ ืคื•ืŸ ื“ื™ LLVM 12.0 ืคึผืจื•ื™ืขืงื˜ ืื™ื– ื’ืขื•ื•ืขืŸ ื“ืขืจืœืื ื’ื˜ - ืึท GCC-ืงืึทืžืคึผืึทื˜ืึทื‘ืึทืœ ื˜ืึธืึธืœืงื™ื˜ (ืงืึทืžืคึผื™ื™ืœืขืจื–, ืึธืคึผื˜ื™ืžื™ื–ืขืจืก ืื•ืŸ ืงืึธื“ ื’ืขื ืขืจืึทื˜ืึธืจืก) ื•ื•ืึธืก ืงืึทืžืคึผื™ื™ืœื– ืžื’ื™ืœื” ืื™ืŸ ื™ื ื˜ืขืจืžื™ื“ื™ื™ื˜ ื‘ื™ื˜ืงืึธื“ืข ืคื•ืŸ โ€‹โ€‹RISC-ื•ื•ื™ ื•ื•ื™ืจื˜ื•ืึทืœ ื™ื ืกื˜ืจืึทืงืฉืึทื ื– (ืึท ื ื™ื“ืขืจื™ืง-ืžื“ืจื’ื” ื•ื•ื™ืจื˜ื•ืึทืœ ืžืึทืฉื™ืŸ ืžื™ื˜ ืึท ืžืึทืœื˜ื™-ืžื“ืจื’ื” ืึทืคึผื˜ืึทืžืึทื–ื™ื™ืฉืึทืŸ ืกื™ืกื˜ืขื). ื“ื™ ื“ื–ืฉืขื ืขืจื™ื™ื˜ืึทื“ ืคึผืกืขื•ื•ื“ืึธืงืึธื“ืข ืงืขื ืขืŸ ื–ื™ื™ืŸ ืงืึธื ื•ื•ืขืจื˜ืขื“ ืžื™ื˜ ืึท JIT ืงืึทืžืคึผื™ื™ืœืขืจ ืื™ืŸ ืžืึทืฉื™ืŸ ืื™ื ืกื˜ืจื•ืงืฆื™ืขืก ื’ืœื™ื™ึทืš ืื™ืŸ ื“ืขืจ ืฆื™ื™ื˜ ืคื•ืŸ ื“ื•ืจื›ืคื™ืจื•ื ื’ ืคื•ืŸ ื“ื™ ืคึผืจืึธื’ืจืึทื.

ื™ืžืคึผืจื•ื•ื•ืžืึทื ืฅ ืื™ืŸ Clang 12.0:

  • ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื“ื™ "ืœื™ื™ืงืœื™" ืื•ืŸ "ืึทื ืœื™ื™ืงืœื™" ืึทื˜ืจื™ื‘ื™ื•ืฅ ืคืืจื’ืขืœื™ื™ื’ื˜ ืื™ืŸ ื“ื™ C ++ 20 ื ืึธืจืžืึทืœ ืื™ื– ื™ืžืคึผืœืึทืžืขื ืึทื“ ืื•ืŸ ืขื ื™ื™ื‘ืึทืœื“ ื“ื•ืจืš ืคืขืœื™ืงื™ื™ึทื˜, ืึทืœืึทื•ื™ื ื’ ื“ื™ ืึธืคึผื˜ื™ืžื™ื–ืขืจ ืฆื• ื–ื™ื™ืŸ ื™ื ืคืึธืจืžื“ ื•ื•ืขื’ืŸ ื“ื™ ืžืึทืฉืžืึธืขืก ืคื•ืŸ ื“ื™ ืงืึทื ื“ื™ืฉืึทื ืึทืœ ืงืึทื ืกื˜ืจืึทืงื˜ (ืœืžืฉืœ, "[[ ืžืกืชึผืžื) ]] ืื•ื™ื‘ (ืจืึทื ื“ืึธื > 0) {โ€œ).
  • ืฆื•ื’ืขืœื™ื™ื’ื˜ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ AMD Zen 3 (-ืžืึทืจืฅ = ื–ื ื•ื•ืขืจ 3), Intel Alder Lake (-ืžืึทืจืฅ = ืึทืœื“ืขืจืœืึทืงืข) ืื•ืŸ Intel Sapphire Rapids (-ืžืึทืจืฅ = ืกืึทืคื™ืจืขืจืึทืคึผื™ื“ืก) ืคึผืจืึทืกืขืกืขืจื–.
  • ืฆื•ื’ืขืœื™ื™ื’ื˜ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ "-ืžืึทืจืฅ = ืงืก 86-64-ื•ื• [234]" ืคืœืึทื’ืก ืฆื• ืื•ื™ืกืงืœื™ื™ึทื‘ืŸ ืงืก 86-64 ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ ืœืขื•ื•ืขืœืก (ื•ื• 2 - ืงืึธื•ื•ืขืจืก SSE4.2, SSSE3, POPCNT ืื•ืŸ CMPXCHG16B ื™ืงืกื˜ืขื ืฉืึทื ื–; v3 - AVX2 ืื•ืŸ MOVBE; v4 - AVX-512 ) .
  • ืฆื•ื’ืขืœื™ื™ื’ื˜ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ Arm Cortex-A78C (cortex-a78c), Arm Cortex-R82 (cortex-r82), Arm Neoverse V1 (neoverse-v1), Arm Neoverse N2 (neoverse-n2) ืื•ืŸ Fujitsu A64FX (a64fx) ืคึผืจืึทืกืขืกืขืจื–. ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ืฆื• ื’ืขื‘ืŸ ืึธืคึผื˜ื™ืžื™ื–ืึทื˜ื™ืึธื ืก ืคึฟืึทืจ Neoverse-V1 ืงืคึผื•ืก, ืื™ืจ ืงืขื ืขืŸ ืกืคึผืขืฆื™ืคื™ืฆื™ืจืŸ "-mcpu=neoverse-v1".
  • ืคึฟืึทืจ ื“ื™ AArch64 ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ, ื ื™ื™ึท ืงืึทืžืคึผื™ื™ืœืขืจ ืคืœืึทื’ืก "-ืžืึธื•ื˜ืœื™ื™ืŸ-ืึทื˜ืึธืžื™ืงืก" ืื•ืŸ "-ืžื ืึธ-ืึทื•ื˜ืœื™ื™ืŸ-ืึทื˜ืึธืžื™ืงืก" ื–ืขื ืขืŸ ืฆื•ื’ืขื’ืขื‘ืŸ ืฆื• ื’ืขื‘ืŸ ืึธื“ืขืจ ื“ื™ืกื™ื™ื‘ืึทืœ ืึทื˜ืึธืžื™ืฉืข ืึธืคึผืขืจืึทืฆื™ืข ื”ืขืœืคึผืขืจ ืคืึทื ื’ืงืฉืึทื ื–, ืึทื–ืึท ื•ื•ื™ "__aarch64_cas8_relax". ืึทื–ืึท ืคืึทื ื’ืงืฉืึทื ื– ื“ืขื˜ืขืงื˜ ื‘ื™ื™ ืจื•ื ื˜ื™ืžืข ืฆื™ LSE (ื’ืจื•ื™ืก ืกื™ืกื˜ืขื ืขืงืกื˜ืขื ืกื™ืึธื ืก) ืฉื˜ื™ืฆืŸ ืื™ื– ื‘ืืจืขื›ื˜ื™ื’ื˜ ืื•ืŸ ื ื•ืฆืŸ ื“ื™ ืฆื•ื’ืขืฉื˜ืขืœื˜ ืึทื˜ืึธืžื™ืฉืข ืคึผืจืึทืกืขืกืขืจ ืื™ื ืกื˜ืจื•ืงืฆื™ืขืก ืึธื“ืขืจ ืคืึทืœืŸ ืฆื•ืจื™ืง ืฆื• ื ื™ืฆืŸ LL/SC (ืœืึธืึทื“-ืœื™ื ืง / ืงืจืึธื-ืงืึทื ื“ื™ืฉืึทื ืึทืœ) ืื™ื ืกื˜ืจื•ืงืฆื™ืขืก ืคึฟืึทืจ ืกื™ื ื’ืงืจืึทื ืึทื–ื™ื™ืฉืึทืŸ.
  • ืฆื•ื’ืขื’ืขื‘ืŸ "-fbinutils-version" ืึธืคึผืฆื™ืข ืฆื• ืื•ื™ืกืงืœื™ื™ึทื‘ืŸ ื“ื™ ืฆื™ืœ ื•ื•ืขืจืกื™ืข ืคื•ืŸ โ€‹โ€‹ื“ื™ ื‘ื™ื ื•ื˜ื™ืœืก ืกื•ื•ื™ื˜ ืคึฟืึทืจ ืงืึทืžืคึผืึทื˜ืึทื‘ื™ืœืึทื˜ื™ ืžื™ื˜ ืขืœื˜ืขืจืข ืึธืคึผืคื™ืจื•ื ื’ ืคื•ืŸ ืœื™ื ืงืขืจ ืื•ืŸ ืึทืกืขืžื‘ืึทืœืœืขืจ.
  • ืคึฟืึทืจ ELF ืขืงืกืขืงื•ื˜ืึทื‘ืœืข ื˜ืขืงืขืก, ื•ื•ืขืŸ ื“ื™ "-ื’ื–" ืคืึธืŸ ืื™ื– ืกืคึผืขืกื™ืคื™ืขื“, ืงืึทืžืคึผืจืขืฉืึทืŸ ืคื•ืŸ ื“ื™ื‘ืึทื’ื™ื ื’ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ื ื™ืฆืŸ ื“ื™ ื–ืœื™ื‘ ื‘ื™ื‘ืœื™ืึธื˜ืขืง ืื™ื– ืขื ื™ื™ื‘ืึทืœื“ ื“ื•ืจืš ืคืขืœื™ืงื™ื™ึทื˜ (ื’ื– = ื–ืœื™ื‘). ืคึฟืึทืจื‘ื™ื ื“ื•ื ื’ ื“ื™ ืจื™ื–ืึทืœื˜ื™ื ื’ ืึทื‘ื“ื–ืฉืขืงื˜ ื˜ืขืงืขืก ืจื™ืงื•ื•ื™ื™ืขืจื– ld ืึธื“ืขืจ GNU ื‘ื™ื ื•ื˜ื™ืœืก 2.26+. ืฆื• ื•ืžืงืขืจืŸ ืงืึทืžืคึผืึทื˜ืึทื‘ื™ืœืึทื˜ื™ ืžื™ื˜ ืขืœื˜ืขืจืข ื•ื•ืขืจืกื™ืขืก ืคื•ืŸ ื‘ื™ื ื•ื˜ื™ืœืก, ืื™ืจ ืงืขื ืขืŸ ืกืคึผืขืฆื™ืคื™ืฆื™ืจืŸ "-gz=zlib-gnu".
  • ื“ืขืจ 'ื“ืขื' ื˜ื™ื™ึทื˜ืœ ืื™ื– ืื™ืฆื˜ ืคึผืจืึทืกืขืกื˜ ืžื™ื˜ ื ืึธื ื ืึทืœ ืื•ืŸ ื“ืขืจืขืคืขืจืึทื ืกืึทื‘ืึทืœ (N) ื˜ืฉืขืงืก. ืฆื• ื‘ืึทื–ื™ื™ึทื˜ื™ืงืŸ ื“ื™ ื ืึธื ื ื•ืœืœ ืึทื˜ืจื™ื‘ื™ื•ื˜ ื•ื•ืขืŸ ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ื ื•ืฆืŸ NULL ื•ื•ืึทืœื•ืขืก, ืื™ืจ ืงืขื ืขืŸ ื ื•ืฆืŸ ื“ื™ "-fdelete-null-pointer-checks" ืึธืคึผืฆื™ืข.
  • ืื•ื™ืฃ ื“ื™ ืœื™ื ื•ืงืก ืคึผืœืึทื˜ืคืึธืจืžืข, ื“ื™ "-ืคืึทืกื™ื ื˜ืฉืจืึธื ืึธื•ืก-ืึทื ื•ื•ื™ื™ื ื“-ื˜ืึทื‘ืœืขืก" ืžืึธื“ืข ืื™ื– ืขื ื™ื™ื‘ืึทืœื“ ืคึฟืึทืจ ื“ื™ AArch64 ืื•ืŸ PowerPC ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจื– ืฆื• ื“ื–ืฉืขื ืขืจื™ื™ื˜ ืึทื ื•ื•ื™ื™ื ื“ ืจื•ืคืŸ ื˜ื™ืฉืŸ, ื•ื•ื™ ืื™ืŸ GCC.
  • ืื™ืŸ "#ืคึผืจืึทื’ืžืึท ืงืœืึทื ื’ ืฉืœื™ื™ืฃ ื•ื•ืขืงื˜ืึธืจื™ื–ืข_ื•ื•ื™ื“ื˜ื”" ืฆื•ื’ืขื’ืขื‘ืŸ ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ืกืคึผืขืฆื™ืคื™ืฆื™ืจืŸ ื“ื™ "ืคืึทืจืคืขืกื˜ื™ืงื˜" (ืคืขืœื™ืงื™ื™ึทื˜) ืื•ืŸ "ืกืงืึทืœืึทื‘ืœืข" ืึธืคึผืฆื™ืขืก ืฆื• ืกืขืœืขืงื˜ื™ืจืŸ ื“ืขื ื•ื•ืขืงื˜ืึธืจื™ื–ืึทื˜ื™ืึธืŸ ืื•ืคึฟืŸ. ื“ื™ "ืกืงืึทืœืึทื‘ืœืข" ืžืึธื“ืข, ืคืจื™ื™ึท ืคื•ืŸ ื•ื•ืขืงื˜ืึธืจ ืœืขื ื’, ืื™ื– ื™ืงืกืคึผืขืจืžืขื ืึทืœ ืื•ืŸ ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขื•ื•ื™ื™ื ื˜ ืื•ื™ืฃ ื™ื™ึทื–ื ื•ื•ืึทืจื’ ื•ื•ืึธืก ืฉื˜ื™ืฆื˜ ืกืงืึทืœืึทื‘ืœืข ื•ื•ืขืงื˜ืึธืจื™ื–ืึทื˜ื™ืึธืŸ.
  • ื™ืžืคึผืจื•ื•ื•ื“ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื“ื™ Windows ืคึผืœืึทื˜ืคืึธืจืžืข: ื‘ืึทืึทืžื˜ืขืจ ื‘ื™ื™ื ืขืจื™ ืึทืกืขืžื‘ืœื™ื– ืคึฟืึทืจ Windows ืื•ื™ืฃ Arm64 ืกื™ืกื˜ืขืžืขืŸ ื–ืขื ืขืŸ ืฆื•ื’ืขื’ืจื™ื™ื˜, ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜ ื“ื™ ืงืœืึทื ื’ ืงืึทืžืคึผื™ื™ืœืขืจ, LLD ืœื™ื ืงืขืจ ืื•ืŸ ืงืึทืžืคึผื™ื™ืœืขืจ-ืจื˜ ืจื•ื ื˜ื™ืžืข ืœื™ื™ื‘ืจืขืจื™ื–. ื•ื•ืขืŸ ืื™ืจ ื‘ื•ื™ืขืŸ ืคึฟืึทืจ MinGW ืฆื™ืœ ืคึผืœืึทื˜ืคืึธืจืžืก, ื“ื™ .ืขืงืกืข ืกืึทืคื™ืงืก ืื™ื– ืฆื•ื’ืขื’ืขื‘ืŸ, ืืคื™ืœื• ื•ื•ืขืŸ ืงืจื™ื™ึทื–-ืงืึธืžืคึผื™ื™ืœื™ื ื’.
  • ื“ื™ ืงื™ื™ืคึผืึทื‘ื™ืœืึทื˜ื™ื– ืคึฟืึทืจื‘ื•ื ื“ืŸ ืžื™ื˜ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ OpenCL, OpenMP ืื•ืŸ CUDA ื–ืขื ืขืŸ ื™ืงืกืคึผืึทื ื“ื™ื“. ืฆื•ื’ืขืœื™ื™ื’ื˜ ืึธืคึผืฆื™ืขืก "-cl-std=CL3.0" ืื•ืŸ "-cl-std=CL1.0" ืฆื• ืกืขืœืขืงื˜ื™ืจืŸ ืžืึทืงืจืึธื• ืึธืคึผืฆื™ืขืก ืคึฟืึทืจ OpenCL 3.0 ืื•ืŸ OpenCL 1.0. ื“ื™ืึทื’ื ืึธืกื˜ื™ืง ืžื›ืฉื™ืจื™ื ื–ืขื ืขืŸ ื™ืงืกืคึผืึทื ื“ื™ื“.
  • ืฆื•ื’ืขื’ืขื‘ืŸ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื“ื™ HRESET, UINTR ืื•ืŸ AVXVNNI ื™ื ืกื˜ืจืึทืงืฉืึทื ื– ื™ืžืคึผืœืึทืžืขื ืึทื“ ืื™ืŸ ืขื˜ืœืขื›ืข ืงืก86-ื‘ืื–ื™ืจื˜ ืคึผืจืึทืกืขืกืขืจื–.
  • ืื•ื™ืฃ ืงืก86 ืกื™ืกื˜ืขืžืขืŸ, ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื“ื™ "-mtune=" ืึธืคึผืฆื™ืข ืื™ื– ืขื ื™ื™ื‘ืึทืœื“, ื•ื•ืึธืก ืึทืœืึทื•ื– ืื•ื™ืกื’ืขืงืœื™ื‘ืŸ ืžื™ืงืจืึธืึทืจื˜ืฉื™ื˜ืขืงื˜ื•ืจืึทืœ ืึธืคึผื˜ื™ืžื™ื–ืึทื˜ื™ืึธื ืก ืจืึทื’ืึทืจื“ืœืึทืก ืคื•ืŸ ื“ื™ "-ืžืึทืจืฉ=" ื•ื•ืขืจื˜.
  • ื“ื™ ืกื˜ืึทื˜ื™ืง ืึทื ืึทืœื™ื–ืขืจ ื”ืื˜ ื™ืžืคึผืจื•ื•ื•ื“ ืคึผืจืึทืกืขืกื™ื ื’ ืคื•ืŸ ืขื˜ืœืขื›ืข POSIX ืคืึทื ื’ืงืฉืึทื ื– ืื•ืŸ ื‘ืื˜ื™ื™ื˜ื™ืง ื™ืžืคึผืจื•ื•ื•ื“ ื“ื™ ื‘ืึทืฉื˜ื™ืžื•ื ื’ ืคื•ืŸ ื“ืขืจ ืจืขื–ื•ืœื˜ืึทื˜ ืคื•ืŸ ืงืึทื ื“ื™ืฉืึทื ืึทืœ ืึทืคึผืขืจื™ื™ืฉืึทื ื– ื•ื•ืขืŸ ืขืก ื–ืขื ืขืŸ ืขื˜ืœืขื›ืข ืกื™ืžื‘ืึธืœื™ืฉ ื•ื•ืึทืœื•ืขืก ืื™ืŸ ื“ืขืจ ืคืึทืจื’ืœื™ื™ึทืš. ื ื™ื• ื˜ืฉืขืงืก ื”ืึธื‘ืŸ ืฉื•ื™ืŸ ืฆื•ื’ืขื’ืขื‘ืŸ: fuchia.HandleChecker (ื“ื™ืคื™ื™ื ื– ื›ืึทื ื“ืึทืœื– ืื™ืŸ ืกื˜ืจืึทืงื˜ืฉืขืจื–), ื•ื•ืขื‘ืงื™ื˜.ื•ื ืงืึธื•ื ื˜ืขื“ ืœืึทืžื‘ื“ืึทืงืึทืคึผื˜ื•ืจืขืกื˜ืฉืขืงืขืจ ื•ื•ืขื‘ืงื™ื˜ ืื•ืŸ ืึทืœืคืึท.ื•ื•ืขื‘ืงื™ื˜.ื•ื ืงืึธื•ื ื˜ืขื“ ืœืึธืงืึทืœื•ื•ืึทืจืกื˜ืฉืขืงืขืจ (ื ืขืžื˜ ืื™ืŸ ื—ืฉื‘ื•ืŸ ื“ื™ ืคึผื™ืงื™ื•ืœื™ืขืจืึทื˜ื™ื– ืคื•ืŸ ืืจื‘ืขื˜ืŸ ืžื™ื˜ ืคึผื•ื™ื ื˜ืขืจื– ืื™ืŸ ื“ื™ ื•ื•ืขื‘ืงื™ื˜ ืžืึธื˜ืึธืจ ืงืึธื“).
  • ืื™ืŸ ืื•ื™ืกื“ืจื•ืงืŸ ื’ืขื ื™ืฆื˜ ืื™ืŸ ื“ืขื ืงืึธื ื˜ืขืงืกื˜ ืคื•ืŸ ืงืึทื ืกื˜ืึทื ืฅ, ื“ื™ ื ื•ืฆืŸ ืคื•ืŸ ื’ืขื‘ื•ื™ื˜-ืื™ืŸ ืคืึทื ื’ืงืฉืึทื ื– __builtin_bitreverse*, __builtin_rotateleft*, __builtin_rotateright*, _mm_popcnt*, _bit_scan_forward, __bsfd, __bsfq, __bit_scan_reverse,__bsd, __bsd, __bsd, __bsd, __bsd, __bsd, __bsd, __bsd __ ืื™ื– ืขืจืœื•ื™ื‘ื˜ bswapq , _ืงืึทืกื˜ืฃ*, __ืจืึธืœ* ืื•ืŸ __ืจืึธืจ*.
  • ืฆื•ื’ืขืœื™ื™ื’ื˜ ืึท BitFieldColonSpacing ืึธืคึผืฆื™ืข ืฆื• ื“ื™ ืงืœืึทื ื’ ืคึฟืึธืจืžืึทื˜ ื ื•ืฆืŸ ืฆื• ืื•ื™ืกืงืœื™ื™ึทื‘ืŸ ื“ื™ ืกืคึผื™ื™ืกื™ื ื’ ืึทืจื•ื ื™ื“ืขื ื˜ื™ืคื™ืขืจืก, ืฉืคืืœื˜ืŸ ืื•ืŸ ืคืขืœื“ ื–ื•ืš.
  • ื“ื™ ืงืœืึทื ื’ ืงืึทื˜ืฉื™ื ื’ ืกืขืจื•ื•ืขืจ (ืงืœืึทื ื’ ืกืขืจื•ื•ื™ืจืขืจ) ืื•ื™ืฃ ื“ื™ ืœื™ื ื•ืงืก ืคึผืœืึทื˜ืคืึธืจืžืข ื”ืื˜ ื‘ืื˜ื™ื™ื˜ื™ืง ืจื™ื“ื•ืกื˜ ื–ื›ึผืจื•ืŸ ืงืึทื ืกืึทืžืฉืึทืŸ ื‘ืขืฉืึทืก ืœืึทื ื’-ื˜ืขืจืžื™ืŸ ืึธืคึผืขืจืึทืฆื™ืข (ืคึผืขืจื™ืึธื“ื™ืฉ ืจื•ืคื˜ ืฆื• malloc_trim ื–ืขื ืขืŸ ืฆื•ื’ืขืฉื˜ืขืœื˜ ืฆื• ืฆื•ืจื™ืงืงื•ืžืขืŸ ืคืจื™ื™ ื–ื›ึผืจื•ืŸ ื‘ืœืขื˜ืขืจ ืฆื• ื“ื™ ืึธืคึผืขืจื™ื™ื˜ื™ื ื’ ืกื™ืกื˜ืขื).

ืฉืœื™ืกืœ ื™ื ืึธื•ื•ื•ื™ื™ืฉืึทื ื– ืื™ืŸ LLVM 12.0:

  • ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื“ื™ llvm-build build ื’ืขืฆื™ื™ึทื’ ื’ืขืฉืจื™ื‘ืŸ ืื™ืŸ Python ืื™ื– ืึธืคึผื’ืขืฉื˜ืขืœื˜, ืื•ืŸ ืึทื ืฉื˜ืึธื˜ ื“ื™ ืคึผืจื•ื™ืขืงื˜ ืื™ื– ื’ืึธืจ ืกื•ื•ื™ื˜ืฉื˜ ืฆื• ื ื™ืฆืŸ ื“ื™ CMake ื‘ื•ื™ืขืŸ ืกื™ืกื˜ืขื.
  • ืื™ืŸ ื“ื™ ื‘ืึทืงืขื ื“ ืคึฟืึทืจ ื“ื™ AArch64 ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ, ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื“ื™ Windows ืคึผืœืึทื˜ืคืึธืจืžืข ืื™ื– ื™ืžืคึผืจื•ื•ื•ื“: ื“ื™ ืจื™ื›ื˜ื™ืง ืคึผืจืึธื“ื•ืงืฆื™ืข ืคื•ืŸ โ€‹โ€‹โ€‹โ€‹ืึทืกืขืžืœืขืจ ืจืขื–ื•ืœื˜ืึทื˜ ืคึฟืึทืจ ืฆื™ืœ Windows ืกื™ืกื˜ืขืžืขืŸ ืื™ื– ื™ื ืฉื•ืจื“, ื“ื™ ื“ื•ืจ ืคื•ืŸ ื“ืึทื˜ืŸ ืื•ื™ืฃ ืึทื ื•ื•ื™ื™ื ื“ ืงืึทืœืœืก ืื™ื– ืึธืคึผื˜ื™ืžื™ื–ืขื“ (ื“ื™ ื’ืจื™ื™ืก ืคื•ืŸ ืึทื–ืึท ื“ืึทื˜ืŸ ืื™ื– ืจื™ื“ื•ืกื˜ ืžื™ื˜ 60 %).
  • ื“ื™ ื‘ืึทืงืขื ื“ ืคึฟืึทืจ ื“ื™ PowerPC ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ ืคึฟืขื™ึดืงื™ื™ื˜ืŸ ื ื™ื™ึทืข ืึธืคึผื˜ื™ืžื™ื–ืึทื˜ื™ืึธื ืก ืคึฟืึทืจ ืœื•ืคึผืก ืื•ืŸ ื™ื ืœื™ื ืข ื“ื™ืคึผืœื•ื™ืžืึทื ื˜, ื™ืงืกืคึผืึทื ื“ื™ื“ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ Power10 ืคึผืจืึทืกืขืกืขืจื–, ืฆื•ื’ืขื’ืขื‘ืŸ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ MMA ื™ื ืกื˜ืจืึทืงืฉืึทื ื– ืคึฟืึทืจ ืžืึทื˜ืจื™ืฅ ืžืึทื ื™ืคึผื™ืึทืœื™ื™ืฉืึทืŸ ืื•ืŸ ื™ืžืคึผืจื•ื•ื•ื“ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื“ื™ AIX ืึธืคึผืขืจื™ื™ื˜ื™ื ื’ ืกื™ืกื˜ืขื.
  • ื“ื™ ืงืก86 ื‘ืึทืงืขื ื“ ืžื•ืกื™ืฃ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ืึทืžื“ Zen 3, Intel Alder Lake ืื•ืŸ Intel Sapphire Rapids ืคึผืจืึทืกืขืกืขืจื–, ื•ื•ื™ ื’ืขื–ื•ื ื˜ ื•ื•ื™ HRESET, UINTR ืื•ืŸ AVXVNNI ืคึผืจืึทืกืขืกืขืจ ื™ื ืกื˜ืจืึทืงืฉืึทื ื–. ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ MPX (ืžืขืžืึธืจื™ ืคึผืจืึทื˜ืขืงืฉืึทืŸ ืขืงืกื˜ืขื ืกื™ืึธื ืก) ืคึฟืึทืจ ืงืึธื ื˜ืจืึธืœื™ืจื•ื ื’ ืคึผื•ื™ื ื˜ืขืจื– ืฆื• ืขื ืฉื•ืจ ื–ื™ืงืึธืจืŸ ื‘ืึทื•ื ื“ืจื™ื– ื–ืขื ืขืŸ ื ื™ื˜ ืžืขืจ ื’ืขืฉื˜ื™ืฆื˜ (ื“ื™ ื˜ืขื›ื ืึธืœืึธื’ื™ืข ืื™ื– ื ื™ืฉื˜ ื•ื•ื™ื™ื“ืกืคึผืจืขื“ ืื•ืŸ ืื™ื– ืฉื•ื™ืŸ ืึทื•ื•ืขืงื’ืขื ื•ืžืขืŸ ืคื•ืŸ GCC ืื•ืŸ ืงืœืึทื ื’). ืฆื•ื’ืขืœื™ื™ื’ื˜ ืฉื˜ื™ืฆืŸ ืฆื• ื“ื™ ืึทืกืขืžื‘ืึทืœืœืขืจ ืคึฟืึทืจ ื“ื™ {ื“ื™ืกืคึผ32} ืื•ืŸ {ื“ื™ืกืคึผ8} ืคึผืจืขืคื™ืงืก ืื•ืŸ ื“ื™ .ื“32 ืื•ืŸ .ื“8 ืกืึทืคื™ืงืก ืฆื• ืงืึธื ื˜ืจืึธืœื™ืจืŸ ื“ื™ ื’ืจื™ื™ืก ืคื•ืŸ ืึธืคึผืขืจืึทื ื“ ืึธืคืกืขืฅ ืื•ืŸ ื“ื–ืฉืึทืžืคึผืก. ืฆื•ื’ืขื’ืขื‘ืŸ ืึท ื ื™ื™ึทืข ืึทื˜ืจื™ื‘ื™ื•ื˜ "ื˜ื•ืŸ-ืงืคึผื•" ืฆื• ืงืึธื ื˜ืจืึธืœื™ืจืŸ ื“ื™ ื™ื ืงืœื•ื–ืฉืึทืŸ ืคื•ืŸ ืžื™ืงืจืึธืึทืจื˜ืฉื™ื˜ืขืงื˜ื•ืจืึทืœ ืึธืคึผื˜ื™ืžื™ื–ืึทื˜ื™ืึธื ืก.
  • ื ื ื™ื™ึทืข ืžืึธื“ืข "-fsanitize = ืึทื ืกื™ื™ื ื“-ืฉื™ืคื˜-ื‘ืึทื–ืข" ืื™ื– ืฆื•ื’ืขืœื™ื™ื’ื˜ ืฆื• ื“ื™ ื™ื ื˜ืึทื“ื–ืฉืขืจ ืคึผืจืึธื‘ืœืขื ื“ืขื˜ืขืงื˜ืึธืจ (ื™ื ื˜ืขืจ ืกืึทื ื™ื˜ื™ื–ืขืจ, "-fsanitize = ื™ื ื˜ืึทื“ื–ืฉืขืจ") ืฆื• ื“ืขื˜ืขืงื˜ ืึธื•ื•ื•ืขืจืคืœืึธื•ื– ืคื•ืŸ ืึทื ืกื™ื™ื ื“ ื™ื ื˜ืึทื“ื–ืฉืขืจื– ื ืึธืš ืึท ื‘ื™ืกืœ ื™ื‘ืขืจืจื•ืง ืฆื• ื“ื™ ืœื™ื ืงืก.
  • ืื™ืŸ ืคืึทืจืฉื™ื“ืŸ ื“ืขื˜ืขืงื˜ืึธืจืก (ืึทืกืึทืŸ, cfi, lsan, msan, tsan, ubsan ืกืึทื ื™ื˜ื™ื–ืขืจ) ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ืœื™ื ื•ืงืก ื“ื™ืกื˜ืจื™ื‘ื™ื•ืฉืึทื ื– ืžื™ื˜ ื“ื™ ื ืึธืจืžืึทืœ ืžื•ืกืœ ื‘ื™ื‘ืœื™ืึธื˜ืขืง ืื™ื– ืฆื•ื’ืขื’ืขื‘ืŸ.
  • ื“ื™ ืงื™ื™ืคึผืึทื‘ื™ืœืึทื˜ื™ื– ืคื•ืŸ ื“ื™ LLD ืœื™ื ืงืขืจ ื–ืขื ืขืŸ ื™ืงืกืคึผืึทื ื“ื™ื“. ื™ืžืคึผืจื•ื•ื•ื“ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื“ื™ ELF ืคึฟืึธืจืžืึทื˜, ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜ ื“ื™ ืฆื•ื’ืขืœื™ื™ื’ื˜ ืึธืคึผืฆื™ืขืก "--ื“ืขืคึผืขื ื“ืขื ืกื™-ื˜ืขืงืข", "-ื˜ืขื•ืช-ื”ืึทื ื“ืœื™ื ื’-ืฉืจื™ืคื˜", "-ืœื˜ืึธ-ืคึผืกืขื•ื•ื“ืึธ-ื–ืึธื ื“-ืคึฟืึทืจ-ืคึผืจืึธืคื™ืœื™ื ื’", "-ื ื™ื˜-ืœื˜ืึธ-ื’ืึทื ืฅ-ืคึผืจืึธื’ืจืึทื -ื–ืขืขื•ื•ื“ื™ืงื™ื™ื˜" " ื™ืžืคึผืจื•ื•ื•ื“ ืžื™ื ื’ื•ื• ืฉื˜ื™ืฆืŸ. ืคึฟืึทืจ ื“ื™ Mach-O ืคึฟืึธืจืžืึทื˜ (macOS), ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ Arm64, Arm, ืื•ืŸ i386 ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจื–, ืœื™ื ืง-ืฆื™ื™ื˜ ืึธืคึผื˜ื™ืžื™ื–ืึทื˜ื™ืึธื ืก (LTO), ืื•ืŸ ืึธื ืœื™ื™ื’ืŸ ืึทื ื•ื•ื™ื™ื ื“ื™ื ื’ ืคึฟืึทืจ ื•ื™ืกื ืขื ื”ืึทื ื“ืœื™ื ื’ ืื™ื– ื™ืžืคึผืœืึทืžืขื ืึทื“.
  • Libc ++ ื™ืžืคึผืœืึทืžืึทื ืฅ ื ื™ื™ึท ืคึฟืขื™ึดืงื™ื™ื˜ืŸ ืคื•ืŸ ื“ื™ C ++ 20 ื ืึธืจืžืึทืœ ืื•ืŸ ื”ืื˜ ืื ื’ืขื”ื•ื™ื‘ืŸ ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืคื•ืŸ ืคึฟืขื™ึดืงื™ื™ื˜ืŸ ืคื•ืŸ ื“ื™ C ++ 2b ื‘ืึทืฉืจื™ื™ึทื‘ื•ื ื’. ืฆื•ื’ืขืœื™ื™ื’ื˜ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื‘ื ื™ืŸ ืžื™ื˜ ื“ื™ืกื™ื™ื‘ืึทืœ ืœืึธื•ืงืึทืœืึทื–ื™ื™ืฉืึทืŸ ืฉื˜ื™ืฆืŸ ("-DLIBCXX_ENABLE_LOCALIZATION = OFF") ืื•ืŸ ื“ืขื•ื•ื™ืกืขืก ืคึฟืึทืจ ื“ื–ืฉืขื ืขืจื™ื™ื˜ื™ื ื’ ืคึผืกืขื•ื•ื“ืึธ-ืจืึทื ื“ืึธื ื ื•ืžืขืจืŸ ("-DLIBCXX_ENABLE_RANDOM_DEVICE = OFF").

ืžืงื•ืจ: opennet.ru

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’