LLVM 18.1.0 ಬೆಂಬಲ ಸುಧಾರಣೆಗಳು, ಬ್ಯಾಕೆಂಡ್‌ಗಳು ಮತ್ತು ಹೆಚ್ಚಿನವುಗಳೊಂದಿಗೆ ಆಗಮಿಸುತ್ತದೆ

LLVM ಲೋಗೋ

LLVM ಎನ್ನುವುದು ಕಂಪೈಲರ್‌ಗಳನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸಲು ಮತ್ತು ಹೊಸ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಗಳನ್ನು ನಿರ್ಮಿಸಲು ಮತ್ತು ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಭಾಷೆಗಳನ್ನು ಸುಧಾರಿಸಲು ಸಹಾಯ ಮಾಡುವ ಚೌಕಟ್ಟಾಗಿದೆ.

ಯೋಜನೆಯ ಉದ್ಘಾಟನೆ LLVM 18.1.0 ಆರು ತಿಂಗಳ ಅಭಿವೃದ್ಧಿಯ ನಂತರ ಆಗಮಿಸುತ್ತದೆ ಮತ್ತು GCC q ನೊಂದಿಗೆ ಸುಧಾರಣೆಗಳನ್ನು ಹೊಂದಿದೆಅವರು ಕಂಪೈಲರ್‌ಗಳು, ಆಪ್ಟಿಮೈಜರ್‌ಗಳು ಮತ್ತು ಕೋಡ್ ಜನರೇಟರ್‌ಗಳನ್ನು ಒಳಗೊಳ್ಳುತ್ತಾರೆ. ಗಮನಾರ್ಹ ಬದಲಾವಣೆ ಈ ಆವೃತ್ತಿಯಲ್ಲಿ ಅದು 18.x ಶಾಖೆಯಿಂದ ಪ್ರಾರಂಭವಾಗುವ LLVM ಯೋಜನೆಯಲ್ಲಿ ಆವೃತ್ತಿ ಸಂಖ್ಯೆಗಳನ್ನು ರಚಿಸಲು ಹೊಸ ಯೋಜನೆ. GCC ಮತ್ತು GDB ಯಂತಹ ಯೋಜನೆಗಳ ಅಭ್ಯಾಸವನ್ನು ಅನುಸರಿಸಿ, ಅಭಿವೃದ್ಧಿಯ ಸಮಯದಲ್ಲಿ ಆವೃತ್ತಿ ಶೂನ್ಯ ("N.0") ಬಳಕೆಯನ್ನು ಅಳವಡಿಸಿಕೊಳ್ಳಲಾಗಿದೆ, ಆದರೆ ಮೊದಲ ಸ್ಥಿರ ಆವೃತ್ತಿಯನ್ನು "N.1" ಎಂದು ನಮೂದಿಸಲಾಗಿದೆ. ಈ ಬದಲಾವಣೆಯು ಅಂತಿಮ ಬಿಡುಗಡೆ ಶಾಖೆಯ ಬಿಲ್ಡ್‌ಗಳಿಂದ ಮಾಸ್ಟರ್ ಶಾಖೆಯ ಆಧಾರದ ಮೇಲೆ ಬಿಲ್ಡ್‌ಗಳನ್ನು ಪ್ರತ್ಯೇಕಿಸುವ ಮೂಲಕ ಪ್ರಯೋಜನಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ.

ಉದಾಹರಣೆಗೆ, ಪ್ರಸ್ತುತ ಬಿಡುಗಡೆಯ (18.1.0) ತಯಾರಿಯಲ್ಲಿ, LLVM 18.0 ನ ಅಸ್ಥಿರ ಶಾಖೆಯನ್ನು ಬಳಸಿಕೊಂಡು ಅಭಿವೃದ್ಧಿಯನ್ನು ಮಾಡಲಾಯಿತು. ಮೊದಲ ಸ್ಥಿರ ಆವೃತ್ತಿಯನ್ನು ನಂತರ ಸಂಖ್ಯೆ 18.1.0 ಎಂದು ಬಿಡುಗಡೆ ಮಾಡಲಾಯಿತು, ಇದು ವ್ಯಾಪಕವಾದ ಅಭಿವೃದ್ಧಿ ಮತ್ತು ಪರೀಕ್ಷಾ ಚಕ್ರದ ಪರಾಕಾಷ್ಠೆಯನ್ನು ಸೂಚಿಸುತ್ತದೆ. ಹೆಚ್ಚುವರಿಯಾಗಿ, ಈ ಹೊಸ ಯೋಜನೆಯು ಅಗತ್ಯವಿದ್ದಲ್ಲಿ, 18.1.1, 18.1.2, ಮತ್ತು ಮುಂತಾದ ಸಂಖ್ಯೆಗಳ ಅಡಿಯಲ್ಲಿ ಪ್ರತಿ ಎರಡು ವಾರಗಳಿಗೊಮ್ಮೆ ಸರಿಪಡಿಸುವ ಸಂವಹನಗಳನ್ನು ಉತ್ಪಾದಿಸಲು ಅನುಮತಿಸುತ್ತದೆ.

ABI (ಅಪ್ಲಿಕೇಶನ್ ಬೈನರಿ ಇಂಟರ್ಫೇಸ್) ಮೇಲೆ ಪರಿಣಾಮ ಬೀರುವ ಪ್ರಸ್ತುತ ಶಾಖೆಗೆ ಬದಲಾವಣೆಗಳನ್ನು ಮಾಡಿದರೆ, ಆವೃತ್ತಿಯ ಎರಡನೇ ಅಂಕಿಯ ಬದಲಾವಣೆಯೊಂದಿಗೆ ನವೀಕರಣವು ಪ್ರತಿಫಲಿಸುತ್ತದೆ, ಉದಾಹರಣೆಗೆ, 18.2.0. ಇದು ಸ್ಥಿರ ಮತ್ತು ಪಾರದರ್ಶಕ ಆವೃತ್ತಿ ನಿರ್ವಹಣೆಯನ್ನು ಖಾತ್ರಿಗೊಳಿಸುತ್ತದೆ, ಪ್ರತಿ ಬಿಡುಗಡೆಯಲ್ಲಿ ಮಾಡಿದ ಸ್ಥಿರತೆ ಮತ್ತು ಮಾರ್ಪಾಡುಗಳ ಬಗ್ಗೆ ಬಳಕೆದಾರರಿಗೆ ಅಗತ್ಯವಾದ ಸ್ಪಷ್ಟತೆಯನ್ನು ನೀಡುತ್ತದೆ.

ಎಲ್ಎಲ್ವಿಎಂ 18.1.0 ನ ಪ್ರಮುಖ ಹೊಸ ವೈಶಿಷ್ಟ್ಯಗಳು

ಈ ಹೊಸ ಆವೃತ್ತಿಯಲ್ಲಿ LLVM 18.1.0 ಅನ್ನು ಪ್ರಸ್ತುತಪಡಿಸಲಾಗಿದೆ X86 ಆರ್ಕಿಟೆಕ್ಚರ್, ISA ವಿಸ್ತರಣೆಗಳಿಗೆ ಬೆಂಬಲ ಸುಧಾರಣೆಗಳನ್ನು ಅಳವಡಿಸಲಾಗಿದೆ. ನಿರ್ದಿಷ್ಟವಾಗಿ, USER_MSR, AVX10.1-256 ಮತ್ತು AVX10.1-512 ವಿಸ್ತರಣೆಗಳಿಗೆ ಬೆಂಬಲವನ್ನು ಸೇರಿಸಲಾಗಿದೆ. ಜೊತೆಗೆ, i128 ಪ್ರಕಾರವನ್ನು __int128 ಪ್ರಕಾರದ GCC ಮತ್ತು ಕ್ಲಾಂಗ್‌ನೊಂದಿಗೆ ಏಕೀಕರಿಸಲಾಗಿದೆ, ಇದು ರಸ್ಟ್‌ನಂತಹ ಬಾಹ್ಯ ಯೋಜನೆಗಳೊಂದಿಗೆ ಹೆಚ್ಚಿನ ಬೈನರಿ ಹೊಂದಾಣಿಕೆಯನ್ನು ಸುಗಮಗೊಳಿಸುತ್ತದೆ.

LLVM 18.1.0 ನಲ್ಲಿನ ಮತ್ತೊಂದು ಪ್ರಮುಖ ಅಂಶವೆಂದರೆ RISC-V, ಹಲವಾರು ಸುಧಾರಣೆಗಳನ್ನು ಮಾಡಲಾಗಿದೆ ಮತ್ತು ಸ್ಥಿರಗೊಳಿಸುವ ಮೂಲಕ ಗಮನಾರ್ಹ ಸೇರ್ಪಡೆಗಳು ಮತ್ತುl ವಿಸ್ತರಣೆಗಳಿಗೆ ಬೆಂಬಲ, ಜೊತೆಗೆ ವಿಸ್ತರಣೆಗಳಿಗಾಗಿ ಅಂತರ್ನಿರ್ಮಿತ ಕಾರ್ಯಗಳನ್ನು ಸೇರಿಸಲಾಗಿದೆ ಮತ್ತು RV32E, RV64E, ilp32e ಮತ್ತು lp64e ಆರ್ಕಿಟೆಕ್ಚರ್‌ಗಳಲ್ಲಿ ಕೋಡ್ ಉತ್ಪಾದನೆಗೆ ಪ್ರಾಯೋಗಿಕ ಬೆಂಬಲವನ್ನು ಅಳವಡಿಸಲಾಗಿದೆ.

ವಾಸ್ತುಶಿಲ್ಪದ ಹಿನ್ನಲೆಯಲ್ಲಿ LoongArch, LSX ವಿಸ್ತರಣೆಗಳಿಗಾಗಿ ಅಂತರ್ನಿರ್ಮಿತ ಕಾರ್ಯಗಳನ್ನು ಸೇರಿಸಲಾಗಿದೆ (128-ಬಿಟ್ SIMD) ಮತ್ತು LASX (256-bit SIMD), LoongArch ರೆಫರೆನ್ಸ್ ಮ್ಯಾನ್ಯುಯಲ್ ವಿವರಣೆ 1.10 ರಲ್ಲಿ ಪರಿಚಯಿಸಲಾದ ಹೊಸ ಸೂಚನೆಗಳಿಗೆ ಬೆಂಬಲವನ್ನು ಸೇರಿಸಲಾಗಿದೆ ಮತ್ತು ಸ್ವಯಂಚಾಲಿತ ವೆಕ್ಟರೈಸೇಶನ್‌ಗೆ ಆರಂಭಿಕ ಬೆಂಬಲವನ್ನು ಅಳವಡಿಸಲಾಗಿದೆ.

AArch64 ರಲ್ಲಿ, ಕಾರ್ಟೆಕ್ಸ್-A520, ಕಾರ್ಟೆಕ್ಸ್-A720 ಮತ್ತು ಕಾರ್ಟೆಕ್ಸ್-X4 ನಂತಹ ಪ್ರೊಸೆಸರ್‌ಗಳಿಗೆ ವಿಸ್ತೃತ ಬೆಂಬಲ, ಮತ್ತು ಸ್ಟಾಕ್ ಕ್ಲಾಷ್ ಪ್ರೊಟೆಕ್ಷನ್ ಯಾಂತ್ರಿಕ ವ್ಯವಸ್ಥೆಗೆ ಬೆಂಬಲವನ್ನು ಅಳವಡಿಸಲಾಗಿದೆ, ಇದು ಸ್ಟಾಕ್ ಓವರ್‌ಫ್ಲೋಗಳನ್ನು ಪತ್ತೆ ಮಾಡುತ್ತದೆ ಮತ್ತು ಸ್ಟಾಕ್ ಮತ್ತು ಹೀಪ್‌ನ ಛೇದನದ ಆಧಾರದ ಮೇಲೆ ದಾಳಿಯ ವಿಧಾನಗಳನ್ನು ನಿರ್ಬಂಧಿಸುತ್ತದೆ.

ವಿವಿಧ ಆರ್ಕಿಟೆಕ್ಚರ್‌ಗಳ ಬ್ಯಾಕೆಂಡ್‌ಗಳಿಗೆ ಈ ನಿರ್ದಿಷ್ಟ ಸುಧಾರಣೆಗಳ ಜೊತೆಗೆ, WebAssembly, MIPS, PowerPC, ಮತ್ತು AMDGPU ನಂತಹ ಆರ್ಕಿಟೆಕ್ಚರ್‌ಗಳಿಗೆ ಬ್ಯಾಕೆಂಡ್‌ಗಳಿಗೆ ಸಾಮಾನ್ಯ ಸುಧಾರಣೆಗಳನ್ನು ಮಾಡಲಾಗಿದೆ. LLD ಲಿಂಕರ್‌ನ ಸಾಮರ್ಥ್ಯಗಳನ್ನು ಸಹ ವಿಸ್ತರಿಸಲಾಗಿದೆ, RISC-V ಮತ್ತು AArch64 ಆರ್ಕಿಟೆಕ್ಚರ್‌ಗಳಿಗೆ ಬೆಂಬಲವನ್ನು ಸುಧಾರಿಸಲಾಗಿದೆ ಮತ್ತು C++20, C++23, ಮತ್ತು C ಸಾಮರ್ಥ್ಯಗಳನ್ನು ಅನುಸರಿಸಲು Libc++ ಲೈಬ್ರರಿಗೆ ನವೀಕರಣಗಳನ್ನು ಅಳವಡಿಸಲಾಗಿದೆ. ಮಾನದಂಡಗಳು. ++26.

ಅಂತಿಮವಾಗಿ, ಬಾಹ್ಯ ಸರ್ವರ್‌ಗಳಿಂದ ಚಿಹ್ನೆಗಳು ಮತ್ತು ಬೈನರಿ ಡೇಟಾವನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಹೊರತೆಗೆಯಲು LLDB ಡೀಬಗರ್ ಬೆಂಬಲವನ್ನು ಸೇರಿಸಿದೆ ಅದು DEBUGINFOD ಪ್ರೋಟೋಕಾಲ್ ಅನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ, ಹೀಗೆ ವಿವಿಧ ಆರ್ಕಿಟೆಕ್ಚರ್‌ಗಳಲ್ಲಿ ಡೀಬಗ್ ಮಾಡುವ ಸಾಮರ್ಥ್ಯವನ್ನು ವಿಸ್ತರಿಸುತ್ತದೆ ಮತ್ತು SME ಮತ್ತು SME2 (ಸ್ಕೇಲೆಬಲ್ ಮ್ಯಾಟ್ರಿಕ್ಸ್ ಎಕ್ಸ್‌ಟೆನ್ಶನ್) ನಂತಹ ವಿಸ್ತರಣೆಗಳಿಗೆ ಬೆಂಬಲವನ್ನು ಸೇರಿಸುತ್ತದೆ ಮತ್ತು ಪೈಥಾನ್ ಭಾಷೆಗಾಗಿ ಬೈಂಡಿಂಗ್‌ಗಳನ್ನು ಕೆಲವು ಪ್ರದೇಶಗಳಲ್ಲಿ ತೆಗೆದುಹಾಕಲಾಗಿದೆ ಎಂಬುದನ್ನು ಗಮನಿಸುವುದು ಮುಖ್ಯವಾಗಿದೆ. ಈ ಲಿಂಕ್‌ಗಳ ಮೇಲೆ ಅವಲಂಬಿತವಾಗಿರುವ ಅಭಿವೃದ್ಧಿ ಪ್ರಕ್ರಿಯೆಗಳಿಗೆ ಹೊಂದಾಣಿಕೆಗಳು ಬೇಕಾಗುತ್ತವೆ.

ನ ಭಾಗಗಳಿಗೆ C ಭಾಷೆಗೆ ಸಂಬಂಧಿಸಿದ ಬದಲಾವಣೆಗಳನ್ನು ಒಳಗೊಂಡಂತೆ ಕ್ಲಾಂಗ್ 18 ರಲ್ಲಿ ಅಳವಡಿಸಲಾದ ಸುಧಾರಣೆಗಳು:

  • GCC ಯೊಂದಿಗಿನ ಸಾದೃಶ್ಯವನ್ನು ಅನುಸರಿಸಿ "const" ಗುಣಲಕ್ಷಣದೊಂದಿಗೆ ರಚನೆಗಳು, ಒಕ್ಕೂಟಗಳು ಮತ್ತು ಸರಣಿಗಳನ್ನು ಈಗ ಸ್ಥಿರ ಅಭಿವ್ಯಕ್ತಿಗಳಾಗಿ ಬಳಸಲು ಅನುಮತಿಸಲಾಗಿದೆ.
  • ಎನಮ್‌ಗಳನ್ನು ಈಗ TBAA (ಟೈಪ್-ಬೇಸ್ಡ್ ಅಲಿಯಾಸ್ ಅನಾಲಿಸಿಸ್) ಮೆಟಾಡೇಟಾದಲ್ಲಿ "ಚಾರ್" ಪ್ರಕಾರವಾಗಿ ಪರಿಗಣಿಸುವ ಬದಲು ಅವುಗಳ ಮೂಲ ಪೂರ್ಣಾಂಕ ಪ್ರಕಾರವಾಗಿ ಪ್ರತಿಫಲಿಸುತ್ತದೆ.
  • "counted_by" ಗುಣಲಕ್ಷಣಕ್ಕೆ ಬೆಂಬಲವನ್ನು ಸೇರಿಸಲಾಗಿದೆ, ಇದು ಹೊಂದಿಕೊಳ್ಳುವ ರಚನೆಯಲ್ಲಿನ ಅಂಶಗಳ ಸಂಖ್ಯೆಯನ್ನು ನಿರ್ಧರಿಸಲು ಹೊಂದಿಕೊಳ್ಳುವ ರಚನೆಯೊಂದಿಗೆ ರಚನೆಯಲ್ಲಿ ಕ್ಷೇತ್ರವನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ, ಕ್ಲಾಂಗ್‌ನಲ್ಲಿ ಬಫರ್ ಓವರ್‌ಫ್ಲೋ ಚೆಕ್‌ಗಳ ದಕ್ಷತೆಯನ್ನು ಸುಧಾರಿಸುತ್ತದೆ.
  • ಮಾಡ್ಯೂಲ್‌ಗಳನ್ನು ಲಿಂಕ್ ಮಾಡಲು ಮತ್ತು C23 ಮಾನದಂಡವನ್ನು ಬೆಂಬಲಿಸಲು “c23 ಅಗತ್ಯವಿದೆ” ಅಭಿವ್ಯಕ್ತಿಗೆ ಅಳವಡಿಸಲಾದ ಬೆಂಬಲ.
  • ಟೆಂಪ್ಲೇಟ್‌ಗಳಲ್ಲಿ ಹೆಚ್ಚುವರಿ ಪ್ರಕಾರದ ಟೈಪ್ ಮಾಡದ ಆರ್ಗ್ಯುಮೆಂಟ್‌ಗಳನ್ನು ಬಳಸಲು ಪ್ರಾಯೋಗಿಕ ವೈಶಿಷ್ಟ್ಯವನ್ನು ಅಳವಡಿಸಲಾಗಿದೆ, ಇದು ಫ್ಲೋಟಿಂಗ್ ಪಾಯಿಂಟ್ ಮೌಲ್ಯಗಳು, ಪಾಯಿಂಟರ್‌ಗಳು ಮತ್ತು ಸಬ್‌ಜೆಕ್ಟ್ ಉಲ್ಲೇಖಗಳ ನಿರ್ದಿಷ್ಟತೆಯನ್ನು ಅನುಮತಿಸುತ್ತದೆ.
  • ಟೆಂಪ್ಲೇಟ್‌ನಲ್ಲಿ "ಈ" ಗುಣಲಕ್ಷಣದೊಂದಿಗೆ ನಿಯತಾಂಕಗಳನ್ನು ಬಳಸಲು ಮತ್ತು ಈ ಕಾರ್ಯವನ್ನು ಕರೆಯುವ ಅಭಿವ್ಯಕ್ತಿಯ ವರ್ಗವನ್ನು ಕಂಡುಹಿಡಿಯಲು ನಿಮಗೆ ಅನುಮತಿಸುವ "ಇದನ್ನು ನಿರ್ಣಯಿಸುವುದು" ಕಾರ್ಯವಿಧಾನಕ್ಕೆ ಪ್ರಾಯೋಗಿಕ ಬೆಂಬಲವನ್ನು ಸೇರಿಸಲಾಗಿದೆ.

ಅಂತಿಮವಾಗಿ, ನೀವು ಇದರ ಬಗ್ಗೆ ಇನ್ನಷ್ಟು ತಿಳಿದುಕೊಳ್ಳಲು ಆಸಕ್ತಿ ಹೊಂದಿದ್ದರೆ, ನೀವು ವಿವರಗಳನ್ನು ಸಂಪರ್ಕಿಸಬಹುದು ಕೆಳಗಿನ ಲಿಂಕ್‌ನಲ್ಲಿ.


ನಿಮ್ಮ ಅಭಿಪ್ರಾಯವನ್ನು ಬಿಡಿ

ನಿಮ್ಮ ಈಮೇಲ್ ವಿಳಾಸ ಪ್ರಕಟವಾದ ಆಗುವುದಿಲ್ಲ. ಅಗತ್ಯವಿರುವ ಜಾಗ ಗುರುತಿಸಲಾಗಿದೆ *

*

*

  1. ಡೇಟಾಗೆ ಜವಾಬ್ದಾರಿ: AB ಇಂಟರ್ನೆಟ್ ನೆಟ್ವರ್ಕ್ಸ್ 2008 SL
  2. ಡೇಟಾದ ಉದ್ದೇಶ: ನಿಯಂತ್ರಣ SPAM, ಕಾಮೆಂಟ್ ನಿರ್ವಹಣೆ.
  3. ಕಾನೂನುಬದ್ಧತೆ: ನಿಮ್ಮ ಒಪ್ಪಿಗೆ
  4. ಡೇಟಾದ ಸಂವಹನ: ಕಾನೂನುಬದ್ಧ ಬಾಧ್ಯತೆಯನ್ನು ಹೊರತುಪಡಿಸಿ ಡೇಟಾವನ್ನು ಮೂರನೇ ವ್ಯಕ್ತಿಗಳಿಗೆ ಸಂವಹನ ಮಾಡಲಾಗುವುದಿಲ್ಲ.
  5. ಡೇಟಾ ಸಂಗ್ರಹಣೆ: ಆಕ್ಸೆಂಟಸ್ ನೆಟ್‌ವರ್ಕ್‌ಗಳು (ಇಯು) ಹೋಸ್ಟ್ ಮಾಡಿದ ಡೇಟಾಬೇಸ್
  6. ಹಕ್ಕುಗಳು: ಯಾವುದೇ ಸಮಯದಲ್ಲಿ ನೀವು ನಿಮ್ಮ ಮಾಹಿತಿಯನ್ನು ಮಿತಿಗೊಳಿಸಬಹುದು, ಮರುಪಡೆಯಬಹುದು ಮತ್ತು ಅಳಿಸಬಹುದು.