Emscripten 3.0 แž˜แžถแž“แž แžพแž™ C/C++ แž‘แŸ…แž€แžถแž“แŸ‹ WebAssembly compiler

แž€แžถแžšแž…แŸแž‰แž•แŸ’แžŸแžถแž™แž€แž˜แŸ’แž˜แžœแžทแž’แžธแž…แž„แž€แŸ’แžšแž„ Emscripten 3.0 แžแŸ’แžšแžผแžœแž”แžถแž“แž”แŸ„แŸ‡แž–แžปแž˜แŸ’แž– แžŠแŸ‚แž›แžขแž“แžปแž‰แŸ’แž‰แžถแžแžฑแŸ’แž™แžขแŸ’แž“แž€แž…แž„แž€แŸ’แžšแž„แž€แžผแžŠแž‡แžถ C/C ++ แž“แžทแž„แž—แžถแžŸแžถแž•แŸ’แžŸแŸแž„แž‘แŸ€แžแžŠแŸ‚แž› LLVM-based frontends แž˜แžถแž“แž‡แžถแž€แžผแžŠแž€แž˜แŸ’แžšแžทแžแž˜แž’แŸ’แž™แž˜แž€แž˜แŸ’แžšแžทแžแž‘แžถแž”แž‡แžถแžŸแž€แž› WebAssembly แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžถแžšแžšแžฝแž˜แž”แž‰แŸ’แž…แžผแž›แž‡แžถแž”แž“แŸ’แžแž”แž“แŸ’แž‘แžถแž”แŸ‹แž‡แžถแž˜แžฝแž™แž‚แž˜แŸ’แžšแŸ„แž„ JavaScript แž€แŸ†แž–แžปแž„แžŠแŸ†แžŽแžพแžšแž€แžถแžšแŸ” แž“แŸ…แž€แŸ’แž“แžปแž„แž€แž˜แŸ’แž˜แžœแžทแž’แžธแžšแžปแž€แžšแž€แžแžถแž˜แžขแŸŠแžธแž“แž’แžบแžŽแžทแž แž แžพแž™แž”แŸ’แžšแžพแž€แŸ’แž“แžปแž„ Node. js แžฌแž”แž„แŸ’แž€แžพแžแž€แž˜แŸ’แž˜แžœแžทแž’แžธแž–แž แžปแžœแŸแž‘แžทแž€แžถแžŠแžถแž…แŸ‹แžŠแŸ„แž™แžกแŸ‚แž€แžŠแŸ‚แž›แžŠแŸ†แžŽแžพแžšแž€แžถแžšแžŠแŸ„แž™แž”แŸ’แžšแžพ wasm runtimeแŸ” แž›แŸแžแž€แžผแžŠแž‚แž˜แŸ’แžšแŸ„แž„แžแŸ’แžšแžผแžœแž”แžถแž“แž…แŸ‚แž€แž…แžถแž™แž€แŸ’แžšแŸ„แž˜แžขแžถแž‡แŸ’แž‰แžถแž”แŸแžŽแŸ’แžŽ MIT แŸ” แž€แž˜แŸ’แž˜แžœแžทแž’แžธแž…แž„แž€แŸ’แžšแž„แž”แŸ’แžšแžพแž€แžถแžšแžขแž—แžทแžœแžŒแŸ’แžแž“แŸแž–แžธแž‚แž˜แŸ’แžšแŸ„แž„ LLVM แž แžพแž™แž”แžŽแŸ’แžŽแžถแž›แŸแž™ Binaryen แžแŸ’แžšแžผแžœแž”แžถแž“แž”แŸ’แžšแžพแžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžถแžšแž”แž„แŸ’แž€แžพแž WebAssembly แž“แžทแž„แž€แžถแžšแž”แž„แŸ’แž€แžพแž“แž”แŸ’แžšแžŸแžทแž‘แŸ’แž’แž—แžถแž–แŸ”

แž‚แŸ„แž›แžŠแŸ…แž…แž˜แŸ’แž”แž„แž“แŸƒแž‚แž˜แŸ’แžšแŸ„แž„ Emscripten แž‚แžบแžŠแžพแž˜แŸ’แž”แžธแž”แž„แŸ’แž€แžพแžแžงแž”แž€แžšแžŽแŸแžŠแŸ‚แž›แžขแž“แžปแž‰แŸ’แž‰แžถแžแžฑแŸ’แž™แžขแŸ’แž“แž€แž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแž€แžผแžŠแž“แŸ…แž›แžพแž‚แŸแž แž‘แŸ†แž–แŸแžšแžŠแŸ„แž™แž˜แžทแž“แž‚แžทแžแž–แžธแž—แžถแžŸแžถแžŸแžšแžŸแŸแžšแž€แž˜แŸ’แž˜แžœแžทแž’แžธแžŠแŸ‚แž›แž€แžผแžŠแžแŸ’แžšแžผแžœแž”แžถแž“แžŸแžšแžŸแŸแžšแŸ” แž€แž˜แŸ’แž˜แžœแžทแž’แžธแžŠแŸ‚แž›แž”แžถแž“แž…แž„แž€แŸ’แžšแž„แžขแžถแž…แž”แŸ’แžšแžพแž€แžถแžšแž แŸ…แž‘แŸ…แž€แžถแž“แŸ‹แž”แžŽแŸ’แžŽแžถแž›แŸแž™แžŸแŸ’แžแž„แŸ‹แžŠแžถแžš C แž“แžทแž„ C++ (libc, libcxx), แž•แŸ’แž“แŸ‚แž€แž”แž“แŸ’แžแŸ‚แž˜ C++, แž–แž แžปแžแŸ’แžŸแŸ‚แžขแž€แŸ’แžŸแžšแžŠแŸ‚แž›แž˜แžถแž“แž˜แžผแž›แžŠแŸ’แž‹แžถแž“แž›แžพ pthreads, POSIX APIs แž“แžทแž„แž”แžŽแŸ’แžŽแžถแž›แŸแž™แž–แž แžปแž–แŸแžแŸŒแž˜แžถแž“แž‡แžถแž…แŸ’แžšแžพแž“แŸ” APIs แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžถแžšแžšแžฝแž˜แž”แž‰แŸ’แž…แžผแž›แž‡แžถแž˜แžฝแž™ Web API แž“แžทแž„แž€แžผแžŠ JavaScript แžแŸ’แžšแžผแžœแž”แžถแž“แž•แŸ’แžแž›แŸ‹แž‡แžผแž“แžŠแŸ„แž™แžกแŸ‚แž€แž–แžธแž‚แŸ’แž“แžถแŸ”

Emscripten แž‚แžถแŸ†แž‘แŸ’แžšแž€แžถแžšแž•แŸ’แžŸแžถแž™แž›แž‘แŸ’แž’แž•แž›แž“แŸƒแž”แžŽแŸ’แžŽแžถแž›แŸแž™ SDL2 แžแžถแž˜แžšแž™แŸˆ Canvas แž แžพแž™แž€แŸแž•แŸ’แžแž›แŸ‹แž€แžถแžšแž‚แžถแŸ†แž‘แŸ’แžšแžŸแž˜แŸ’แžšแžถแž”แŸ‹ OpenGL แž“แžทแž„ EGL แžแžถแž˜แžšแž™แŸˆ WebGL แžŠแŸ‚แž›แžขแž“แžปแž‰แŸ’แž‰แžถแžแžฑแŸ’แž™แžขแŸ’แž“แž€แž”แŸ†แž”แŸ’แž›แŸ‚แž„แž€แž˜แŸ’แž˜แžœแžทแž’แžธแž€แŸ’แžšแžถแž แŸ’แžœแžทแž€ แž“แžทแž„แž แŸ’แž‚แŸแž˜แž‘แŸ… WebAssembly (แžงแž‘แžถแž แžšแžŽแŸ แž˜แžถแž“แž…แŸ’แžšแž€แž“แŸƒแž”แŸ’แžšแžขแž”แŸ‹แžงแž”แž€แžšแžŽแŸ Qt แž“แžทแž„แž‚แžถแŸ†แž‘แŸ’แžš Unreal Engine 4 แž“แžทแž„แž˜แŸ‰แžถแžŸแŸŠแžธแž“แž แŸ’แž‚แŸแž˜แžฏแž€แžแžถ แž˜แŸ‰แžถแžŸแŸŠแžธแž“ Bullet แžšแžถแž„แž€แžถแž™) แŸ” แž”แž“แŸ’แžแŸ‚แž˜แž–แžธแž›แžพแž€แžถแžšแž…แž„แž€แŸ’แžšแž„แž€แžผแžŠแž“แŸ…แž€แŸ’แž“แžปแž„ C/C++ แž‚แž˜แŸ’แžšแŸ„แž„แž€แŸ†แž–แžปแž„แžแŸ’แžšแžผแžœแž”แžถแž“แž”แž„แŸ’แž€แžพแžแžกแžพแž„แžŠแžถแž…แŸ‹แžŠแŸ„แž™แžกแŸ‚แž€แž–แžธแž‚แŸ’แž“แžถ แžŠแžพแž˜แŸ’แž”แžธแž’แžถแž“แžถแž”แžถแž“แž“แžผแžœแž€แžถแžšแž”แžพแž€แžŠแŸ†แžŽแžพแžšแž€แžถแžšแžขแŸ’แž“แž€แž”แž€แž”แŸ’แžšแŸ‚ แž“แžทแž„แž˜แŸ‰แžถแžŸแŸŠแžธแž“แž“แžทแž˜แŸ’แž˜แžทแžแž“แŸ…แž€แŸ’แž“แžปแž„แž€แž˜แŸ’แž˜แžœแžทแž’แžธแžšแžปแž€แžšแž€แžแžถแž˜แžขแŸŠแžธแž“แž’แžบแžŽแžทแžแžŸแž˜แŸ’แžšแžถแž”แŸ‹แž—แžถแžŸแžถ Lua, C#, Python, Ruby แž“แžทแž„ PerlแŸ” แžœแžถแž€แŸแžขแžถแž…แž’แŸ’แžœแžพแž‘แŸ…แž”แžถแž“แžŠแžพแž˜แŸ’แž”แžธแžขแž“แžปแžœแžแŸ’แžแž•แŸ’แž“แŸ‚แž€แžแžถแž„แž˜แžปแžแžŠแŸ‚แž›แž˜แžทแž“แž˜แŸ‚แž“แž‡แžถ Clang แž‘แŸ… LLVM แžŠแŸ‚แž›แž˜แžถแž“แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž—แžถแžŸแžถแžŠแžผแž…แž‡แžถ Swift, Rust, D แž“แžทแž„ Fortran แŸ”

แž€แžถแžšแž•แŸ’แž›แžถแžŸแŸ‹แž”แŸ’แžแžผแžšแžŸแŸ†แžแžถแž“แŸ‹แŸ—แž“แŸ…แž€แŸ’แž“แžปแž„ Emscripten 3.0แŸ–

  • แž”แžŽแŸ’แžŽแžถแž›แŸแž™ musl C แžŠแŸ‚แž›แž”แŸ’แžšแžพแž€แŸ’แž“แžปแž„ emscripten แžแŸ’แžšแžผแžœแž”แžถแž“แž’แŸ’แžœแžพแž”แž…แŸ’แž…แžปแž”แŸ’แž”แž“แŸ’แž“แž—แžถแž–แž‘แŸ…แž€แŸ†แžŽแŸ‚ 1.2.2 (แž€แŸ†แžŽแŸ‚ 2 แžแŸ’แžšแžผแžœแž”แžถแž“แž”แŸ’แžšแžพแž“แŸ…แž€แŸ’แž“แžปแž„แžŸแžถแžแžถ Emscripten 1.1.15.x) แŸ”
  • แž•แŸ’แž“แŸ‚แž€แž˜แžฝแž™แž“แŸƒแž˜แžปแžแž„แžถแžšแžŠแŸ‚แž›แžแŸ’แžšแžผแžœแž”แžถแž“แž”แŸ’แžšแžพแž‡แžถแž…แž˜แŸ’แž”แž„แž“แŸ…แž€แŸ’แž“แžปแž„แž‚แž˜แŸ’แžšแŸ„แž„แžแŸ’แžšแžผแžœแž”แžถแž“แžŠแž€แž…แŸแž‰แž–แžธแž”แžŽแŸ’แžŽแžถแž›แŸแž™ parseTools.jsแŸ– removePointing, pointingLevels, removeAllPointing, isVoidType, isStructPointerType, isArrayType, isStructType, isVectorType, isStructuralTypearts, get FunctionDef, isPossiblyFunctionType, isFunctionType, getReturnType, splitTo kenList, _IntToHex, IEEEUnHex, Compiletime.isPointerType, Compiletime.isStructType, Compiletime.INT_TYPES, isTypeแŸ”
  • แž€แŸ’แž“แžปแž„โ€‹แž‚แŸ†แžšแžผ shell.html แž“แžทแž„ shell_minimal.html แž›แž‘แŸ’แž’แž•แž›โ€‹แž“แŸƒโ€‹แžŸแžถแžšโ€‹แž€แŸ†แž แžปแžŸโ€‹แžŠแŸ‚แž›โ€‹แž€แžพแžโ€‹แžกแžพแž„โ€‹แž€แŸ’แž“แžปแž„โ€‹แžขแŸ†แžกแžปแž„โ€‹แž–แŸแž›โ€‹แž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแž€แžถแžšโ€‹แž“แŸƒ emscripten แž“แžทแž„โ€‹แžแŸ’แžšแžผแžœโ€‹แž”แžถแž“โ€‹แž”แž‰แŸ’แž…แŸแž‰โ€‹แžŠแŸ„แž™โ€‹แž€แž˜แŸ’แž˜แžœแžทแž’แžธโ€‹แžแžถแž˜ stderr แžแŸ’แžšแžผแžœโ€‹แž”แžถแž“โ€‹แž”แŸ’แžŠแžผแžšโ€‹แžแžถแž˜โ€‹แž›แŸ†แž“แžถแŸ†แžŠแžพแž˜โ€‹แžŠแžพแž˜แŸ’แž”แžธโ€‹แž”แŸ’แžšแžพ console.warn แž‡แŸ†แž“แžฝแžŸโ€‹แžฑแŸ’แž™ console.error แŸ”
  • แž”แžถแž“แž”แž“แŸ’แžแŸ‚แž˜แžŸแž˜แžแŸ’แžแž—แžถแž–แž€แŸ’แž“แžปแž„แž€แžถแžšแž”แž‰แŸ’แž‡แžถแž€แŸ‹แž€แžถแžšแžขแŸŠแžทแž“แž€แžผแžŠแžขแžแŸ’แžแž”แž‘แž‡แžถแž€แŸ‹แž›แžถแž€แŸ‹แžŠแŸ‚แž›แž”แŸ’แžšแžพแž€แŸ’แž“แžปแž„แžˆแŸ’แž˜แŸ„แŸ‡แžฏแž€แžŸแžถแžšแŸ” แž€แžถแžšแžขแŸŠแžทแž“แž€แžผแžŠแžขแžถแž…แžแŸ’แžšแžผแžœแž”แžถแž“แž”แž‰แŸ’แž‡แžถแž€แŸ‹แž‡แžถแž‘แž˜แŸ’แžšแž„แŸ‹แž”แž…แŸ’แž…แŸแž™แž“แŸ…แž–แŸแž›แž†แŸ’แž›แž„แž€แžถแžแŸ‹แžˆแŸ’แž˜แŸ„แŸ‡แžฏแž€แžŸแžถแžš แžงแž‘แžถแž แžšแžŽแŸ "a.rsp.utf-8" แžฌ "a.rsp.cp1251") แŸ”

แž”แŸ’แžšแž—แž–: opennet.ru

แž”แž“แŸ’แžแŸ‚แž˜แž˜แžแžทแž™แŸ„แž”แž›แŸ‹