LLVM 16.0 ಕಂಪೈಲರ್ ಸೂಟ್‌ನ ಬಿಡುಗಡೆ

ಆರು ತಿಂಗಳ ಅಭಿವೃದ್ಧಿಯ ನಂತರ, LLVM 16.0 ಪ್ರಾಜೆಕ್ಟ್‌ನ ಬಿಡುಗಡೆಯನ್ನು ಪ್ರಸ್ತುತಪಡಿಸಲಾಯಿತು - GCC-ಹೊಂದಾಣಿಕೆಯ ಟೂಲ್‌ಕಿಟ್ (ಕಂಪೈಲರ್‌ಗಳು, ಆಪ್ಟಿಮೈಜರ್‌ಗಳು ಮತ್ತು ಕೋಡ್ ಜನರೇಟರ್‌ಗಳು) ಇದು ಪ್ರೋಗ್ರಾಂಗಳನ್ನು RISC-ತರಹದ ವರ್ಚುವಲ್ ಸೂಚನೆಗಳ ಮಧ್ಯಂತರ ಬಿಟ್‌ಕೋಡ್‌ಗೆ ಕಂಪೈಲ್ ಮಾಡುತ್ತದೆ (ಒಂದು ಕಡಿಮೆ-ಮಟ್ಟದ ವರ್ಚುವಲ್ ಯಂತ್ರದೊಂದಿಗೆ ಬಹು ಹಂತದ ಆಪ್ಟಿಮೈಸೇಶನ್ ಸಿಸ್ಟಮ್). ರಚಿತವಾದ ಸೂಡೊಕೋಡ್ ಅನ್ನು JIT ಕಂಪೈಲರ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು ಪ್ರೋಗ್ರಾಂ ಎಕ್ಸಿಕ್ಯೂಶನ್ ಸಮಯದಲ್ಲಿ ನೇರವಾಗಿ ಯಂತ್ರ ಸೂಚನೆಗಳಾಗಿ ಪರಿವರ್ತಿಸಬಹುದು.

ಕ್ಲಾಂಗ್ 16.0 ನಲ್ಲಿ ಪ್ರಮುಖ ಸುಧಾರಣೆಗಳು:

  • ಡೀಫಾಲ್ಟ್ C++/ObjC++ ಸ್ಟ್ಯಾಂಡರ್ಡ್ gnu++17 ಆಗಿದೆ (ಹಿಂದೆ gnu++14), ಅಂದರೆ GNU ವಿಸ್ತರಣೆಗಳೊಂದಿಗೆ C++17 ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ ಬೆಂಬಲಿಸಲಾಗುತ್ತದೆ. ಹಿಂದಿನ ನಡವಳಿಕೆಯನ್ನು ಹಿಂತಿರುಗಿಸಲು, ನೀವು "-std=gnu++14" ಆಯ್ಕೆಯನ್ನು ಬಳಸಬಹುದು.
  • C++20 ಮಾನದಂಡಕ್ಕೆ ಸಂಬಂಧಿಸಿದ ಸುಧಾರಿತ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಅಳವಡಿಸಲಾಗಿದೆ:
    • ಷರತ್ತುಬದ್ಧವಾಗಿ ಕ್ಷುಲ್ಲಕ ವಿಶೇಷ ಸದಸ್ಯರ ಕಾರ್ಯಗಳು,
    • ಲ್ಯಾಂಬ್ಡಾ ಕಾರ್ಯಗಳಲ್ಲಿ ರಚನಾತ್ಮಕ ಬೈಂಡಿಂಗ್‌ಗಳನ್ನು ಸೆರೆಹಿಡಿಯುವುದು,
    • ಅಭಿವ್ಯಕ್ತಿಗಳ ಒಳಗೆ ಸಮಾನತೆಯ ಆಪರೇಟರ್,
    • ಕೆಲವು ಸಂದರ್ಭಗಳಲ್ಲಿ ಟೈಪ್ ನೇಮ್ ಕೀವರ್ಡ್ ಅನ್ನು ಬಿಟ್ಟುಬಿಡುವ ಆಯ್ಕೆ,
    • ಆವರಣದಲ್ಲಿ ಮಾನ್ಯವಾದ ಒಟ್ಟು ಆರಂಭ ("Aggr(val1, val2)").
  • ಭವಿಷ್ಯದ C++2b ಮಾನದಂಡದಲ್ಲಿ ವ್ಯಾಖ್ಯಾನಿಸಲಾದ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಅಳವಡಿಸಲಾಗಿದೆ:
    • ಸಂಯುಕ್ತ ಅಭಿವ್ಯಕ್ತಿಗಳ ಕೊನೆಯಲ್ಲಿ ಲೇಬಲ್ಗಳನ್ನು ಇರಿಸಲು ಇದನ್ನು ಅನುಮತಿಸಲಾಗಿದೆ,
    • ಸ್ಥಿರ ಆಪರೇಟರ್ (),
    • ಸ್ಥಿರ ಆಪರೇಟರ್[],
    • char8_t ಪ್ರಕಾರದೊಂದಿಗೆ ಹೊಂದಾಣಿಕೆಯನ್ನು ಖಾತ್ರಿಪಡಿಸಲಾಗಿದೆ,
    • "\N{...}" ನಲ್ಲಿ ಬಳಸಲು ಅನುಮತಿಸಲಾದ ಅಕ್ಷರಗಳ ವ್ಯಾಪ್ತಿಯನ್ನು ವಿಸ್ತರಿಸಲಾಗಿದೆ
    • constexpr ಎಂದು ಘೋಷಿಸಲಾದ ಕಾರ್ಯಗಳಲ್ಲಿ "ಸ್ಥಾಯೀ constexpr" ಎಂದು ಘೋಷಿಸಲಾದ ವೇರಿಯೇಬಲ್‌ಗಳನ್ನು ಬಳಸುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಸೇರಿಸಲಾಗಿದೆ.
  • ಭವಿಷ್ಯದ C-ಸ್ಟ್ಯಾಂಡರ್ಡ್ C2x ನಲ್ಲಿ ವ್ಯಾಖ್ಯಾನಿಸಲಾದ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಅಳವಡಿಸಲಾಗಿದೆ:
    • "-Wunused-label" ಎಚ್ಚರಿಕೆಯನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲು, "[[maybe_unused]]" ಗುಣಲಕ್ಷಣವನ್ನು ಲೇಬಲ್‌ಗಳಿಗೆ ಅನ್ವಯಿಸಲು ಅನುಮತಿಸಲಾಗಿದೆ
    • ಸಂಯುಕ್ತ ಅಭಿವ್ಯಕ್ತಿಗಳಲ್ಲಿ ಎಲ್ಲಿಯಾದರೂ ಲೇಬಲ್‌ಗಳನ್ನು ಇರಿಸಲು ಇದನ್ನು ಅನುಮತಿಸಲಾಗಿದೆ,
    • ಟೈಪ್ ಆಫ್ ಮತ್ತು ಟೈಪ್ ಆಫ್_ಅನ್ಕ್ವಲ್ ಆಪರೇಟರ್‌ಗಳನ್ನು ಸೇರಿಸಲಾಗಿದೆ,
    • ಯಾವುದೇ ಪಾಯಿಂಟರ್ ಪ್ರಕಾರಕ್ಕೆ ಪರಿವರ್ತಿಸಬಹುದಾದ ಶೂನ್ಯ ಪಾಯಿಂಟರ್‌ಗಳನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಲು ಹೊಸ ಪ್ರಕಾರದ nullptr_t ಮತ್ತು nullptr ಸ್ಥಿರಾಂಕವು ಪೂರ್ಣಾಂಕ ಮತ್ತು ಶೂನ್ಯ* ಪ್ರಕಾರಗಳಿಗೆ ಬದ್ಧವಾಗಿರದ NULL ನ ರೂಪಾಂತರವನ್ನು ಪ್ರತಿನಿಧಿಸುತ್ತದೆ.
    • C2x ಮೋಡ್‌ನಲ್ಲಿ, ವೇರಿಯಬಲ್ ಸಂಖ್ಯೆಯ ಆರ್ಗ್ಯುಮೆಂಟ್‌ಗಳೊಂದಿಗೆ (ವೇರಿಯಾಡಿಕ್) va_start ಮ್ಯಾಕ್ರೋಗೆ ಕರೆ ಮಾಡಲು ಅನುಮತಿಸಲಾಗಿದೆ.
  • C99, C11, ಮತ್ತು C17 ಅನುಸರಣೆ ವಿಧಾನಗಳಲ್ಲಿ, ಡೀಫಾಲ್ಟ್ ಆಯ್ಕೆಗಳು "-ವಿಂಪ್ಲಿಸಿಟ್-ಫಂಕ್ಷನ್-ಡಿಕ್ಲರೇಶನ್" ಮತ್ತು "-ವಿಂಪ್ಲಿಸಿಟ್-ಇಂಟ್" ಈಗ ಎಚ್ಚರಿಕೆಯ ಬದಲಿಗೆ ದೋಷವನ್ನು ಉಂಟುಮಾಡುತ್ತವೆ.
  • C++ ಮೋಡ್‌ನಲ್ಲಿ "ಶೂನ್ಯ *" (ಉದಾ. "ಶೂನ್ಯ ಫಂಕ್ (ಶೂನ್ಯ *p) { *p; }") ನ ಪರೋಕ್ಷ ಬಳಕೆಯು ಈಗ ISO C++, GCC, ICC ಮತ್ತು MSVC ಯಂತೆಯೇ ದೋಷವನ್ನು ಉಂಟುಮಾಡುತ್ತದೆ.
  • ಮೈಕ್ರೋಸಾಫ್ಟ್-ಶೈಲಿಯ ಇನ್‌ಲೈನ್ ಅಸೆಂಬ್ಲಿ ಬ್ಲಾಕ್‌ಗಳಲ್ಲಿ ಬಿಟ್‌ಫೀಲ್ಡ್‌ಗಳನ್ನು ಸೂಚನಾ ಆಪರೇಂಡ್‌ಗಳಾಗಿ (ಉದಾ. "__asm ​​{ mov eax, s.bf }") ಸೂಚಿಸುವುದು ಈಗ ದೋಷವನ್ನು ಉಂಟುಮಾಡುತ್ತದೆ.
  • ವಿಭಿನ್ನ ಮಾಡ್ಯೂಲ್‌ಗಳಲ್ಲಿ ಒಂದೇ ಹೆಸರಿನೊಂದಿಗೆ ವಿಭಿನ್ನ ರಚನೆಗಳು ಮತ್ತು ಒಕ್ಕೂಟಗಳ ಉಪಸ್ಥಿತಿಗಾಗಿ ರೋಗನಿರ್ಣಯವನ್ನು ಸೇರಿಸಲಾಗಿದೆ.
  • OpenCL ಮತ್ತು OpenMP ಬೆಂಬಲದೊಂದಿಗೆ ಸಂಬಂಧಿಸಿದ ಸಾಮರ್ಥ್ಯಗಳನ್ನು ವಿಸ್ತರಿಸಲಾಗಿದೆ. OpenCL ಕರ್ನಲ್ ಆರ್ಗ್ಯುಮೆಂಟ್‌ಗಳಲ್ಲಿ ಬಳಸಲಾದ C++ ಟೆಂಪ್ಲೆಟ್‌ಗಳಿಗಾಗಿ ಸುಧಾರಿತ ಡಯಾಗ್ನೋಸ್ಟಿಕ್ಸ್. AMDGPU ಗಾಗಿ ಸುಧಾರಿತ ಕ್ಯೂಯಿಂಗ್ ಬ್ಲಾಕ್ ಬೆಂಬಲ. ನಾಮವಿಂಡ್ ಗುಣಲಕ್ಷಣವನ್ನು ಎಲ್ಲಾ ಕಾರ್ಯಗಳಿಗೆ ಸೂಚ್ಯವಾಗಿ ಸೇರಿಸಲಾಗುತ್ತದೆ. ಅಂತರ್ನಿರ್ಮಿತ ಕಾರ್ಯಗಳಿಗೆ ಸುಧಾರಿತ ಬೆಂಬಲ.
  • ಕ್ರ್ಯಾಶ್ ಡಯಾಗ್ನೋಸ್ಟಿಕ್ ಡೇಟಾವನ್ನು ಉಳಿಸಲಾಗಿರುವ ಡೈರೆಕ್ಟರಿಯನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಲು CLANG_CRASH_DIAGNOSTICS_DIR ಪರಿಸರ ವೇರಿಯೇಬಲ್ ಅನ್ನು ಬಳಸುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಸೇರಿಸಲಾಗಿದೆ.
  • ಯುನಿಕೋಡ್ ಬೆಂಬಲವನ್ನು ಯುನಿಕೋಡ್ 15.0 ವಿವರಣೆಗೆ ನವೀಕರಿಸಲಾಗಿದೆ. "₊" (ಉದಾ. "ಡಬಲ್ xₖ₊₁") ನಂತಹ ಕೆಲವು ಗಣಿತದ ಚಿಹ್ನೆಗಳನ್ನು ಗುರುತಿಸುವಿಕೆಗಳಲ್ಲಿ ಅನುಮತಿಸಲಾಗಿದೆ.
  • ಬಹು ಕಾನ್ಫಿಗರೇಶನ್ ಫೈಲ್‌ಗಳನ್ನು ಲೋಡ್ ಮಾಡಲು ಬೆಂಬಲವನ್ನು ಸೇರಿಸಲಾಗಿದೆ (ಡೀಫಾಲ್ಟ್ ಕಾನ್ಫಿಗರೇಶನ್ ಫೈಲ್‌ಗಳನ್ನು ಮೊದಲು ಲೋಡ್ ಮಾಡಲಾಗುತ್ತದೆ ಮತ್ತು ನಂತರ “--config=” ಫ್ಲ್ಯಾಗ್ ಮೂಲಕ ನಿರ್ದಿಷ್ಟಪಡಿಸಲಾಗುತ್ತದೆ, ಅದನ್ನು ಈಗ ಅನೇಕ ಬಾರಿ ನಿರ್ದಿಷ್ಟಪಡಿಸಬಹುದು). ಕಾನ್ಫಿಗರೇಶನ್ ಫೈಲ್‌ಗಳ ಡೀಫಾಲ್ಟ್ ಲೋಡಿಂಗ್ ಕ್ರಮವನ್ನು ಬದಲಾಯಿಸಲಾಗಿದೆ: ಕ್ಲಾಂಗ್ ಮೊದಲು ಫೈಲ್ ಅನ್ನು ಲೋಡ್ ಮಾಡಲು ಪ್ರಯತ್ನಿಸುತ್ತದೆ - .cfg, ಮತ್ತು ಅದು ಕಂಡುಬರದಿದ್ದರೆ ಅದು ಎರಡು ಫೈಲ್‌ಗಳನ್ನು ಲೋಡ್ ಮಾಡಲು ಪ್ರಯತ್ನಿಸುತ್ತದೆ .cfg ಮತ್ತು .cfg. ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ ಕಾನ್ಫಿಗರೇಶನ್ ಫೈಲ್‌ಗಳನ್ನು ಲೋಡ್ ಮಾಡುವುದನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲು, "--no-default-config" ಫ್ಲ್ಯಾಗ್ ಅನ್ನು ಸೇರಿಸಲಾಗಿದೆ.
  • ಪುನರಾವರ್ತನೀಯ ಬಿಲ್ಡ್‌ಗಳನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು, ಪ್ರಸ್ತುತ ದಿನಾಂಕ ಮತ್ತು ಸಮಯದ ಮೌಲ್ಯಗಳನ್ನು __DATE__, __TIME__ ಮತ್ತು __TIMESTAMP__ ಮ್ಯಾಕ್ರೋಗಳಲ್ಲಿ SOURCE_DATE_EPOCH ಪರಿಸರ ವೇರಿಯೇಬಲ್‌ನಲ್ಲಿ ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಸಮಯದೊಂದಿಗೆ ಬದಲಾಯಿಸಲು ಸಾಧ್ಯವಿದೆ.
  • ಸ್ಥಿರಾಂಕಗಳ ಸಂದರ್ಭದಲ್ಲಿ ಬಳಸಬಹುದಾದ ಅಂತರ್ನಿರ್ಮಿತ ಕಾರ್ಯಗಳ (ಬಿಲ್ಟಿನ್) ಉಪಸ್ಥಿತಿಯನ್ನು ಪರಿಶೀಲಿಸಲು, ಮ್ಯಾಕ್ರೋ “__has_constexpr_builtin” ಅನ್ನು ಸೇರಿಸಲಾಗಿದೆ.
  • ಜೋಡಿಸಲಾದ ಕೊರೊಟಿನ್ ಫ್ರೇಮ್ ಹಂಚಿಕೆಗಾಗಿ ಹೊಸ ಸಂಕಲನ ಫ್ಲ್ಯಾಗ್ "-fcoro-aligned-allocation" ಅನ್ನು ಸೇರಿಸಲಾಗಿದೆ.
  • "-fstrict-flex-arrays=" ಫ್ಲ್ಯಾಗ್ ರಚನೆಗಳಲ್ಲಿ ಹೊಂದಿಕೊಳ್ಳುವ ರಚನೆಯ ಅಂಶಗಳ ಮೂರನೇ ಹಂತದ ಪರಿಶೀಲನೆಗೆ ಬೆಂಬಲವನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತದೆ (ಫ್ಲೆಕ್ಸಿಬಲ್ ಅರೇ ಸದಸ್ಯರು, ರಚನೆಯ ಕೊನೆಯಲ್ಲಿ ಅನಿರ್ದಿಷ್ಟ ಗಾತ್ರದ ಒಂದು ಶ್ರೇಣಿ). ಮೂರನೇ ಹಂತದಲ್ಲಿ, ಕೇವಲ ಗಾತ್ರ "[]" (ಉದಾಹರಣೆಗೆ, "int b[]") ಅನ್ನು ಹೊಂದಿಕೊಳ್ಳುವ ಅರೇ ಎಂದು ಪರಿಗಣಿಸಲಾಗುತ್ತದೆ, ಆದರೆ ಗಾತ್ರ "[0]" (ಉದಾಹರಣೆಗೆ, "int b[0]") ಅಲ್ಲ.
  • ಪ್ರಮಾಣಿತ C++ ಮಾಡ್ಯೂಲ್‌ಗಳಿಗಾಗಿ ಏಕ-ಹಂತದ ಸಂಕಲನ ಮಾದರಿಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲು "-fmodule-output" ಫ್ಲ್ಯಾಗ್ ಅನ್ನು ಸೇರಿಸಲಾಗಿದೆ.
  • ಸ್ಟಾಕ್ ಫ್ರೇಮ್ ಲೇಔಟ್‌ನೊಂದಿಗೆ ಸಮಸ್ಯೆಗಳನ್ನು ನಿವಾರಿಸಲು ಸಹಾಯ ಮಾಡಲು "-Rpass-analysis=stack-frame-layout" ಮೋಡ್ ಅನ್ನು ಸೇರಿಸಲಾಗಿದೆ.
  • ಹೊಸ ಗುಣಲಕ್ಷಣವನ್ನು __attribute__((target_version("cpu_features"))) ಸೇರಿಸಲಾಗಿದೆ ಮತ್ತು AArch1 ಒದಗಿಸಿದ ವೈಶಿಷ್ಟ್ಯಗಳ ನಿರ್ದಿಷ್ಟ ಆವೃತ್ತಿಗಳನ್ನು ಆಯ್ಕೆ ಮಾಡಲು __attribute__((target_clones("cpu_features2","cpu_features64",...)) ಗುಣಲಕ್ಷಣದ ಕಾರ್ಯವನ್ನು ವಿಸ್ತರಿಸಲಾಗಿದೆ CPUಗಳು.
  • ರೋಗನಿರ್ಣಯದ ಸಾಧನಗಳನ್ನು ವಿಸ್ತರಿಸಲಾಗಿದೆ:
    • ಏಕ-ಬಿಟ್ ಸಹಿ ಮಾಡಿದ ಬಿಟ್‌ಫೀಲ್ಡ್‌ಗೆ ಒಂದನ್ನು ನಿಯೋಜಿಸುವಾಗ ಸೂಚ್ಯ ಮೊಟಕುಗೊಳಿಸುವಿಕೆಯನ್ನು ಪತ್ತೆಹಚ್ಚಲು "-Wsingle-bit-bitfield-constant-conversion" ಎಚ್ಚರಿಕೆಯನ್ನು ಸೇರಿಸಲಾಗಿದೆ.
    • ಅನ್ಇನಿಶಿಯಲೈಸ್ಡ್ constexpr ವೇರಿಯೇಬಲ್‌ಗಳ ರೋಗನಿರ್ಣಯವನ್ನು ವಿಸ್ತರಿಸಲಾಗಿದೆ.
    • ಕಾರ್ಯ ಪ್ರಕಾರದ ಎರಕಹೊಯ್ದ ಸಂಭಾವ್ಯ ಸಮಸ್ಯೆಗಳನ್ನು ಗುರುತಿಸಲು "-Wcast-function-type-strict" ಮತ್ತು "-Wincompatible-function-pointer-types-strict" ಎಚ್ಚರಿಕೆಗಳನ್ನು ಸೇರಿಸಲಾಗಿದೆ.
    • ರಫ್ತು ಬ್ಲಾಕ್‌ಗಳಲ್ಲಿ ತಪ್ಪಾದ ಅಥವಾ ಕಾಯ್ದಿರಿಸಿದ ಮಾಡ್ಯೂಲ್ ಹೆಸರುಗಳನ್ನು ಬಳಸುವುದಕ್ಕಾಗಿ ಡಯಾಗ್ನೋಸ್ಟಿಕ್ಸ್ ಸೇರಿಸಲಾಗಿದೆ.
    • ವ್ಯಾಖ್ಯಾನಗಳಲ್ಲಿ ಕಾಣೆಯಾದ "ಸ್ವಯಂ" ಕೀವರ್ಡ್‌ಗಳ ಸುಧಾರಿತ ಪತ್ತೆ.
    • "-ವಿಂಟೆಜರ್-ಓವರ್‌ಫ್ಲೋ" ಎಚ್ಚರಿಕೆಯ ಅನುಷ್ಠಾನವು ಓವರ್‌ಫ್ಲೋಗಳಿಗೆ ಕಾರಣವಾಗುವ ಹೆಚ್ಚುವರಿ ಸಂದರ್ಭಗಳಿಗಾಗಿ ಚೆಕ್‌ಗಳನ್ನು ಸೇರಿಸಿದೆ.
  • LoongArch ಸೂಚನಾ ಸೆಟ್ ಆರ್ಕಿಟೆಕ್ಚರ್‌ಗೆ ಅಳವಡಿಸಲಾದ ಬೆಂಬಲ (-march=loongarch64 ಅಥವಾ -march=la464), ಇದನ್ನು Loongson 3 5000 ಪ್ರೊಸೆಸರ್‌ಗಳಲ್ಲಿ ಬಳಸಲಾಗಿದೆ ಮತ್ತು MIPS ಮತ್ತು RISC-V ಯಂತೆಯೇ ಹೊಸ RISC ISA ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತದೆ.

LLVM 16.0 ನಲ್ಲಿನ ಪ್ರಮುಖ ಆವಿಷ್ಕಾರಗಳು:

  • LLVM ಕೋಡ್ ಅನ್ನು C++17 ಮಾನದಂಡದಲ್ಲಿ ವ್ಯಾಖ್ಯಾನಿಸಲಾದ ಅಂಶಗಳನ್ನು ಬಳಸಲು ಅನುಮತಿಸಲಾಗಿದೆ.
  • LLVM ಅನ್ನು ನಿರ್ಮಿಸಲು ಪರಿಸರ ಅಗತ್ಯತೆಗಳನ್ನು ಹೆಚ್ಚಿಸಲಾಗಿದೆ. ನಿರ್ಮಾಣ ಪರಿಕರಗಳು ಈಗ C++17 ಮಾನದಂಡವನ್ನು ಬೆಂಬಲಿಸಬೇಕು, ಅಂದರೆ. ನಿರ್ಮಿಸಲು, ನಿಮಗೆ ಕನಿಷ್ಠ GCC 7.1, ಕ್ಲಾಂಗ್ 5.0, Apple ಕ್ಲಾಂಗ್ 10.0 ಅಥವಾ ವಿಷುಯಲ್ ಸ್ಟುಡಿಯೋ 2019 16.7 ಅಗತ್ಯವಿದೆ.
  • AArch64 ಆರ್ಕಿಟೆಕ್ಚರ್‌ನ ಬ್ಯಾಕೆಂಡ್ ಕಾರ್ಟೆಕ್ಸ್-A715, ಕಾರ್ಟೆಕ್ಸ್-X3 ಮತ್ತು ನಿಯೋವರ್ಸ್ V2 CPUಗಳಿಗೆ ಬೆಂಬಲವನ್ನು ಸೇರಿಸುತ್ತದೆ, RME MEC ಗಾಗಿ ಅಸೆಂಬ್ಲರ್ (ಮೆಮೊರಿ ಎನ್‌ಕ್ರಿಪ್ಶನ್ ಸಂದರ್ಭಗಳು), Armv8.3 ವಿಸ್ತರಣೆಗಳು (ಸಂಕೀರ್ಣ ಸಂಖ್ಯೆ) ಮತ್ತು ಫಂಕ್ಷನ್ ಮಲ್ಟಿ ಆವೃತ್ತಿ.
  • ARM ಆರ್ಕಿಟೆಕ್ಚರ್‌ಗೆ ಬ್ಯಾಕೆಂಡ್‌ನಲ್ಲಿ, Armv2, Armv2A, Armv3 ಮತ್ತು Armv3M ಟಾರ್ಗೆಟ್ ಪ್ಲಾಟ್‌ಫಾರ್ಮ್‌ಗಳಿಗೆ ಬೆಂಬಲವನ್ನು ಸ್ಥಗಿತಗೊಳಿಸಲಾಗಿದೆ, ಇದಕ್ಕಾಗಿ ಸರಿಯಾದ ಕೋಡ್‌ನ ಉತ್ಪಾದನೆಯನ್ನು ಖಾತರಿಪಡಿಸಲಾಗಿಲ್ಲ. ಸಂಕೀರ್ಣ ಸಂಖ್ಯೆಗಳೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಲು ಸೂಚನೆಗಳಿಗಾಗಿ ಕೋಡ್ ಅನ್ನು ರಚಿಸುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಸೇರಿಸಲಾಗಿದೆ.
  • X86 ಆರ್ಕಿಟೆಕ್ಚರ್‌ನ ಬ್ಯಾಕೆಂಡ್ ಸೂಚನಾ ಸೆಟ್ ಆರ್ಕಿಟೆಕ್ಚರ್‌ಗಳಿಗೆ (ISAs) AMX-FP16, CMPCCXADD, AVX-IFMA, AVX-VNNI-INT8, AVX-NE-CONVERT ಬೆಂಬಲವನ್ನು ಸೇರಿಸಿದೆ. RDMSRLIST, RMSRLIST ಮತ್ತು WRMSRNS ಸೂಚನೆಗಳಿಗೆ ಬೆಂಬಲವನ್ನು ಸೇರಿಸಲಾಗಿದೆ. "-mcpu=raptorlake", "-mcpu=meteorlake", "-mcpu=emeraldrapids", "-mcpu=sierraforest", "-mcpu=graniterapids" ಮತ್ತು "-mcpu=grandridge" ಆಯ್ಕೆಗಳನ್ನು ಅಳವಡಿಸಲಾಗಿದೆ.
  • ಲೂಂಗ್‌ಆರ್ಚ್ ಪ್ಲಾಟ್‌ಫಾರ್ಮ್‌ಗೆ ಅಧಿಕೃತ ಬೆಂಬಲವನ್ನು ಸೇರಿಸಲಾಗಿದೆ.
  • MIPS, PowerPC ಮತ್ತು RISC-V ಆರ್ಕಿಟೆಕ್ಚರ್‌ಗಳಿಗಾಗಿ ಸುಧಾರಿತ ಬ್ಯಾಕೆಂಡ್‌ಗಳು
  • LLDB ಡೀಬಗ್ಗರ್‌ಗೆ LoongArch ಆರ್ಕಿಟೆಕ್ಚರ್‌ಗಾಗಿ 64-ಬಿಟ್ ಎಕ್ಸಿಕ್ಯೂಟಬಲ್‌ಗಳನ್ನು ಡೀಬಗ್ ಮಾಡಲು ಬೆಂಬಲವನ್ನು ಸೇರಿಸಲಾಗಿದೆ. COFF ಡೀಬಗ್ ಚಿಹ್ನೆಗಳ ಸುಧಾರಿತ ನಿರ್ವಹಣೆ. ಲೋಡ್ ಮಾಡಲಾದ ವಿಂಡೋಸ್ ಮಾಡ್ಯೂಲ್‌ಗಳ ಪಟ್ಟಿಯಲ್ಲಿ ನಕಲಿ DLL ಗಳ ಫಿಲ್ಟರಿಂಗ್ ಅನ್ನು ಒದಗಿಸಲಾಗಿದೆ.
  • Libc++ ಲೈಬ್ರರಿಯಲ್ಲಿ, C++20 ಮತ್ತು C++23 ಮಾನದಂಡಗಳ ಹೊಸ ವೈಶಿಷ್ಟ್ಯಗಳಿಗೆ ಬೆಂಬಲವನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವುದರ ಮೇಲೆ ಮುಖ್ಯ ಕಾರ್ಯವನ್ನು ಕೇಂದ್ರೀಕರಿಸಲಾಗಿದೆ.
  • LDD ಲಿಂಕರ್ ವಿಳಾಸ ಸ್ಥಳಾಂತರ ಸ್ಕ್ಯಾನಿಂಗ್ ಮತ್ತು ವಿಭಾಗವನ್ನು ಪ್ರಾರಂಭಿಸುವ ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ಸಮಾನಾಂತರಗೊಳಿಸುವ ಮೂಲಕ ಲಿಂಕ್ ಮಾಡುವ ಸಮಯವನ್ನು ಗಮನಾರ್ಹವಾಗಿ ಕಡಿಮೆ ಮಾಡುತ್ತದೆ. ZSTD ಅಲ್ಗಾರಿದಮ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು ವಿಭಾಗ ಸಂಕೋಚನಕ್ಕೆ ಬೆಂಬಲವನ್ನು ಸೇರಿಸಲಾಗಿದೆ.

ಮೂಲ: opennet.ru

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ