ಎಮ್‌ಸ್ಕ್ರಿಪ್ಟನ್ 3.0 ಲಭ್ಯವಿದೆ, C/C++ to WebAssembly ಕಂಪೈಲರ್

ಎಂಸ್ಕ್ರಿಪ್ಟನ್ 3.0 ಕಂಪೈಲರ್‌ನ ಬಿಡುಗಡೆಯನ್ನು ಪ್ರಕಟಿಸಲಾಗಿದೆ, ಇದು C/C++ ಮತ್ತು ಇತರ ಭಾಷೆಗಳಲ್ಲಿ ಕೋಡ್ ಅನ್ನು ಕಂಪೈಲ್ ಮಾಡಲು ನಿಮಗೆ ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ, ಇದಕ್ಕಾಗಿ LLVM-ಆಧಾರಿತ ಮುಂಭಾಗಗಳು ಸಾರ್ವತ್ರಿಕ ಕೆಳಮಟ್ಟದ ಮಧ್ಯಂತರ ಕೋಡ್ WebAssembly ಗೆ ಲಭ್ಯವಿದೆ, ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಯೋಜನೆಗಳೊಂದಿಗೆ ನಂತರದ ಏಕೀಕರಣಕ್ಕಾಗಿ, ಚಾಲನೆಯಲ್ಲಿದೆ ವೆಬ್ ಬ್ರೌಸರ್‌ನಲ್ಲಿ, ಮತ್ತು ನೋಡ್ js ನಲ್ಲಿ ಬಳಸಿ ಅಥವಾ ವಾಸ್ಮ್ ರನ್‌ಟೈಮ್ ಬಳಸಿ ರನ್ ಮಾಡುವ ಅದ್ವಿತೀಯ ಬಹು-ಪ್ಲಾಟ್‌ಫಾರ್ಮ್ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ರಚಿಸುವುದು. ಯೋಜನೆಯ ಕೋಡ್ ಅನ್ನು MIT ಪರವಾನಗಿ ಅಡಿಯಲ್ಲಿ ವಿತರಿಸಲಾಗಿದೆ. ಕಂಪೈಲರ್ LLVM ಯೋಜನೆಯಿಂದ ಬೆಳವಣಿಗೆಗಳನ್ನು ಬಳಸುತ್ತದೆ, ಮತ್ತು Binaryen ಲೈಬ್ರರಿಯನ್ನು WebAssembly ಉತ್ಪಾದನೆ ಮತ್ತು ಆಪ್ಟಿಮೈಸೇಶನ್‌ಗಾಗಿ ಬಳಸಲಾಗುತ್ತದೆ.

ಕೋಡ್ ಬರೆಯಲಾದ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯ ಹೊರತಾಗಿಯೂ ವೆಬ್‌ನಲ್ಲಿ ಕೋಡ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುವ ಸಾಧನವನ್ನು ರಚಿಸುವುದು ಎಂಸ್ಕ್ರಿಪ್ಟನ್ ಯೋಜನೆಯ ಮುಖ್ಯ ಗುರಿಯಾಗಿದೆ. ಕಂಪೈಲ್ ಮಾಡಲಾದ ಅಪ್ಲಿಕೇಶನ್‌ಗಳು ಪ್ರಮಾಣಿತ C ಮತ್ತು C++ ಲೈಬ್ರರಿಗಳಿಗೆ (libc, libcxx), C++ ವಿಸ್ತರಣೆಗಳು, pthreads-ಆಧಾರಿತ ಮಲ್ಟಿಥ್ರೆಡಿಂಗ್, POSIX API ಗಳು ಮತ್ತು ಅನೇಕ ಮಲ್ಟಿಮೀಡಿಯಾ ಲೈಬ್ರರಿಗಳಿಗೆ ಕರೆಗಳನ್ನು ಬಳಸಬಹುದು. ವೆಬ್ API ಮತ್ತು JavaScript ಕೋಡ್‌ನೊಂದಿಗೆ ಏಕೀಕರಣಕ್ಕಾಗಿ API ಗಳನ್ನು ಪ್ರತ್ಯೇಕವಾಗಿ ಒದಗಿಸಲಾಗಿದೆ.

ಕ್ಯಾನ್ವಾಸ್ ಮೂಲಕ SDL2 ಲೈಬ್ರರಿಯ ಔಟ್‌ಪುಟ್ ಅನ್ನು ಪ್ರಸಾರ ಮಾಡುವುದನ್ನು Emscripten ಬೆಂಬಲಿಸುತ್ತದೆ ಮತ್ತು WebGL ಮೂಲಕ OpenGL ಮತ್ತು EGL ಗೆ ಬೆಂಬಲವನ್ನು ಒದಗಿಸುತ್ತದೆ, ಇದು ನಿಮಗೆ ಗ್ರಾಫಿಕಲ್ ಅಪ್ಲಿಕೇಶನ್‌ಗಳು ಮತ್ತು ಆಟಗಳನ್ನು WebAssembly ಗೆ ಪರಿವರ್ತಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ (ಉದಾಹರಣೆಗೆ, Qt ಟೂಲ್‌ಕಿಟ್‌ನ ಪೋರ್ಟ್ ಇದೆ ಮತ್ತು ಅನ್ರಿಯಲ್ ಎಂಜಿನ್ ಅನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ 4 ಮತ್ತು ಯುನಿಟ್ ಗೇಮ್ ಎಂಜಿನ್‌ಗಳು, ಭೌತಿಕ ಬುಲೆಟ್ ಎಂಜಿನ್). C/C++ ನಲ್ಲಿ ಕೋಡ್ ಅನ್ನು ಕಂಪೈಲ್ ಮಾಡುವುದರ ಜೊತೆಗೆ, ಲುವಾ, C#, ಪೈಥಾನ್, ರೂಬಿ ಮತ್ತು ಪರ್ಲ್ ಭಾಷೆಗಳ ಬ್ರೌಸರ್‌ಗಳಲ್ಲಿ ಇಂಟರ್ಪ್ರಿಟರ್‌ಗಳು ಮತ್ತು ವರ್ಚುವಲ್ ಯಂತ್ರಗಳ ಉಡಾವಣೆಯನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು ಯೋಜನೆಗಳನ್ನು ಪ್ರತ್ಯೇಕವಾಗಿ ಅಭಿವೃದ್ಧಿಪಡಿಸಲಾಗುತ್ತಿದೆ. LLVM ಗೆ ಕ್ಲಾಂಗ್ ಅಲ್ಲದ ಮುಂಭಾಗಗಳನ್ನು ಅನ್ವಯಿಸಲು ಸಹ ಸಾಧ್ಯವಿದೆ, ಸ್ವಿಫ್ಟ್, ರಸ್ಟ್, D ಮತ್ತು ಫೋರ್ಟ್ರಾನ್‌ನಂತಹ ಭಾಷೆಗಳಿಗೆ ಲಭ್ಯವಿದೆ.

ಎಂಸ್ಕ್ರಿಪ್ಟನ್ 3.0 ನಲ್ಲಿನ ಪ್ರಮುಖ ಬದಲಾವಣೆಗಳು:

  • ಎಂಸ್ಕ್ರಿಪ್ಟನ್‌ನಲ್ಲಿ ಬಳಸಲಾದ musl C ಲೈಬ್ರರಿಯನ್ನು ಆವೃತ್ತಿ 1.2.2 ಗೆ ನವೀಕರಿಸಲಾಗಿದೆ (ಆವೃತ್ತಿ 2 ಅನ್ನು Emscripten 1.1.15.x ಶಾಖೆಯಲ್ಲಿ ಬಳಸಲಾಗಿದೆ).
  • ಪ್ರಾಜೆಕ್ಟ್‌ನಲ್ಲಿ ಮುಖ್ಯವಾಗಿ ಬಳಸಲಾದ ಕಾರ್ಯಗಳ ಒಂದು ಭಾಗವನ್ನು parseTools.js ಲೈಬ್ರರಿಯಿಂದ ತೆಗೆದುಹಾಕಲಾಗಿದೆ: removePointing, pointingLevels, removeAllPointing, isVoidType, isStructPointerType, isArrayType, isStructType, isVectorType, getturType, getturType, getturType artBits, isFunctionDef, isPassiblyFunctionType, isFunctionType, getReturnType, ಸ್ಪ್ಲಿಟ್‌ಟು ಕೆನ್‌ಲಿಸ್ಟ್, _IntToHex, IEEEUnHex , Compiletime.isPointerType, Compiletime.isStructType, Compiletime.INT_TYPES, isType.
  • shell.html ಮತ್ತು shell_minimal.html ಟೆಂಪ್ಲೇಟ್‌ಗಳಲ್ಲಿ, emscripten ಕಾರ್ಯಾಚರಣೆಯ ಸಮಯದಲ್ಲಿ ಸಂಭವಿಸುವ ಮತ್ತು stderr ಮೂಲಕ ಅಪ್ಲಿಕೇಶನ್‌ನಿಂದ ಔಟ್‌ಪುಟ್ ಆಗುವ ದೋಷ ಸಂದೇಶಗಳ ಔಟ್‌ಪುಟ್ ಅನ್ನು console.error ಬದಲಿಗೆ console.warn ಅನ್ನು ಬಳಸಲು ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ ಬದಲಾಯಿಸಲಾಗುತ್ತದೆ.
  • ಫೈಲ್ ಹೆಸರುಗಳಲ್ಲಿ ಬಳಸಲಾಗುವ ನಿರ್ದಿಷ್ಟ ಪಠ್ಯ ಎನ್ಕೋಡಿಂಗ್ ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಸೇರಿಸಲಾಗಿದೆ. ಫೈಲ್ ಹೆಸರನ್ನು ರವಾನಿಸುವಾಗ ಎನ್ಕೋಡಿಂಗ್ ಅನ್ನು ಪ್ರತ್ಯಯದ ರೂಪದಲ್ಲಿ ನಿರ್ದಿಷ್ಟಪಡಿಸಬಹುದು, ಉದಾಹರಣೆಗೆ, "a.rsp.utf-8" ಅಥವಾ "a.rsp.cp1251").

ಮೂಲ: opennet.ru

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