Emscripten 3.0, C/C++ āĻĨā§‡āĻ•ā§‡ WebAssembly āĻ•āĻŽā§āĻĒāĻžāĻ‡āĻ˛āĻžāĻ° āĻ‰āĻĒāĻ˛āĻŦā§āĻ§

Emscripten 3.0 āĻ•āĻŽā§āĻĒāĻžāĻ‡āĻ˛āĻžāĻ°ā§‡āĻ° āĻ°āĻŋāĻ˛āĻŋāĻœ āĻĒā§āĻ°āĻ•āĻžāĻļāĻŋāĻ¤ āĻšāĻ¯āĻŧā§‡āĻ›ā§‡, āĻ¯āĻž āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ C/C++ āĻāĻŦāĻ‚ āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ­āĻžāĻˇāĻžāĻ¯āĻŧ āĻ•ā§‹āĻĄ āĻ•āĻŽā§āĻĒāĻžāĻ‡āĻ˛ āĻ•āĻ°āĻžāĻ° āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§‡āĻ¯āĻŧ āĻ¯āĻžāĻ° āĻœāĻ¨ā§āĻ¯ LLVM-āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋāĻ• āĻĢā§āĻ°āĻ¨ā§āĻŸāĻāĻ¨ā§āĻĄ āĻ‡āĻ‰āĻ¨āĻŋāĻ­āĻžāĻ°ā§āĻ¸āĻžāĻ˛ āĻ˛ā§‹-āĻ˛ā§‡āĻ­ā§‡āĻ˛ āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻŽāĻŋāĻĄāĻŋāĻ¯āĻŧā§‡āĻŸ āĻ•ā§‹āĻĄ WebAssembly-āĻ āĻ‰āĻĒāĻ˛āĻŦā§āĻ§, āĻœāĻžāĻ­āĻžāĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸ āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒāĻ—ā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§‡ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§€ āĻāĻ•ā§€āĻ•āĻ°āĻŖā§‡āĻ° āĻœāĻ¨ā§āĻ¯, āĻšāĻ˛āĻŽāĻžāĻ¨āĨ¤ āĻāĻ•āĻŸāĻŋ āĻ“āĻ¯āĻŧā§‡āĻŦ āĻŦā§āĻ°āĻžāĻ‰āĻœāĻžāĻ°ā§‡, āĻāĻŦāĻ‚ Node.js-āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§āĻ¨ āĻŦāĻž āĻ“āĻ¯āĻŧāĻžāĻļāĻŽ āĻ°āĻžāĻ¨āĻŸāĻžāĻ‡āĻŽ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻšāĻžāĻ˛āĻžāĻ¨ā§‹ āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ¨ā§āĻĄ-āĻ…āĻ˛ā§‹āĻ¨ āĻŽāĻžāĻ˛ā§āĻŸāĻŋ-āĻĒā§āĻ˛ā§āĻ¯āĻžāĻŸāĻĢāĻ°ā§āĻŽ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§āĻ¨āĨ¤ āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒ āĻ•ā§‹āĻĄ MIT āĻ˛āĻžāĻ‡āĻ¸ā§‡āĻ¨ā§āĻ¸ā§‡āĻ° āĻ…āĻ§ā§€āĻ¨ā§‡ āĻŦāĻŋāĻ¤āĻ°āĻŖ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻ•āĻŽā§āĻĒāĻžāĻ‡āĻ˛āĻžāĻ° LLVM āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒā§‡āĻ° āĻ‰āĻ¨ā§āĻ¨āĻ¯āĻŧāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡, āĻāĻŦāĻ‚ Binaryen āĻ˛āĻžāĻ‡āĻŦā§āĻ°ā§‡āĻ°āĻŋ WebAssembly āĻœā§‡āĻ¨āĻžāĻ°ā§‡āĻļāĻ¨ āĻāĻŦāĻ‚ āĻ…āĻĒā§āĻŸāĻŋāĻŽāĻžāĻ‡āĻœā§‡āĻļāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤

āĻāĻŽāĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸā§‡āĻ¨ āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒā§‡āĻ° āĻŽā§‚āĻ˛ āĻ˛āĻ•ā§āĻˇā§āĻ¯ āĻšāĻ˛ āĻāĻŽāĻ¨ āĻāĻ•āĻŸāĻŋ āĻŸā§āĻ˛ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻ¯āĻž āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ•ā§‹āĻĄāĻŸāĻŋ āĻ¯ā§‡ āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽāĻŋāĻ‚ āĻ­āĻžāĻˇāĻžāĻ¤ā§‡ āĻ˛ā§‡āĻ–āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ āĻ¤āĻž āĻ¨āĻŋāĻ°ā§āĻŦāĻŋāĻļā§‡āĻˇā§‡ āĻ“āĻ¯āĻŧā§‡āĻŦā§‡ āĻ•ā§‹āĻĄ āĻšāĻžāĻ˛āĻžāĻ¨ā§‹āĻ° āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§‡āĻ¯āĻŧāĨ¤ āĻ•āĻŽā§āĻĒāĻžāĻ‡āĻ˛ āĻ•āĻ°āĻž āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻ—ā§āĻ˛āĻŋ āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ C āĻāĻŦāĻ‚ C++ āĻ˛āĻžāĻ‡āĻŦā§āĻ°ā§‡āĻ°āĻŋāĻ¤ā§‡ (libc, libcxx), C++ āĻāĻ•ā§āĻ¸āĻŸā§‡āĻ¨āĻļāĻ¨, pthreads-āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋāĻ• āĻŽāĻžāĻ˛ā§āĻŸāĻŋāĻĨā§āĻ°ā§‡āĻĄāĻŋāĻ‚, POSIX API āĻāĻŦāĻ‚ āĻ…āĻ¨ā§‡āĻ• āĻŽāĻžāĻ˛ā§āĻŸāĻŋāĻŽāĻŋāĻĄāĻŋāĻ¯āĻŧāĻž āĻ˛āĻžāĻ‡āĻŦā§āĻ°ā§‡āĻ°āĻŋāĻ¤ā§‡ āĻ•āĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ āĻ“āĻ¯āĻŧā§‡āĻŦ API āĻāĻŦāĻ‚ āĻœāĻžāĻ­āĻžāĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸ āĻ•ā§‹āĻĄā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻāĻ•ā§€āĻ•āĻ°āĻŖā§‡āĻ° āĻœāĻ¨ā§āĻ¯ APIāĻ—ā§āĻ˛āĻŋ āĻ†āĻ˛āĻžāĻĻāĻžāĻ­āĻžāĻŦā§‡ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤

Emscripten āĻ•ā§āĻ¯āĻžāĻ¨āĻ­āĻžāĻ¸ā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ SDL2 āĻ˛āĻžāĻ‡āĻŦā§āĻ°ā§‡āĻ°āĻŋāĻ° āĻ†āĻ‰āĻŸāĻĒā§āĻŸ āĻ¸āĻŽā§āĻĒā§āĻ°āĻšāĻžāĻ° āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ•āĻ°ā§‡, āĻāĻŦāĻ‚ WebGL-āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ OpenGL āĻāĻŦāĻ‚ EGL-āĻāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°ā§‡, āĻ¯āĻž āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ—ā§āĻ°āĻžāĻĢāĻŋāĻ•āĻžāĻ˛ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻāĻŦāĻ‚ āĻ—ā§‡āĻŽāĻ—ā§āĻ˛āĻŋāĻ•ā§‡ WebAssembly-āĻ āĻ°ā§‚āĻĒāĻžāĻ¨ā§āĻ¤āĻ° āĻ•āĻ°āĻ¤ā§‡ āĻĻā§‡āĻ¯āĻŧ (āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, Qt āĻŸā§āĻ˛āĻ•āĻŋāĻŸā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻĒā§‹āĻ°ā§āĻŸ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ āĻāĻŦāĻ‚ āĻ…āĻŦāĻžāĻ¸ā§āĻ¤āĻŦ āĻ‡āĻžā§āĻœāĻŋāĻ¨ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ•āĻ°ā§‡āĨ¤ 4 āĻāĻŦāĻ‚ āĻ‡āĻ‰āĻ¨āĻŋāĻŸ āĻ—ā§‡āĻŽ āĻ‡āĻžā§āĻœāĻŋāĻ¨, āĻļāĻžāĻ°ā§€āĻ°āĻŋāĻ• āĻŦā§āĻ˛ā§‡āĻŸ āĻ‡āĻžā§āĻœāĻŋāĻ¨)āĨ¤ C/C++ āĻ āĻ•ā§‹āĻĄ āĻ•āĻŽā§āĻĒāĻžāĻ‡āĻ˛ āĻ•āĻ°āĻžāĻ° āĻĒāĻžāĻļāĻžāĻĒāĻžāĻļāĻŋ, āĻ˛ā§āĻ¯āĻŧāĻž, āĻ¸āĻŋ#, āĻĒāĻžāĻ‡āĻĨāĻ¨, āĻ°ā§āĻŦāĻŋ āĻāĻŦāĻ‚ āĻĒāĻžāĻ°ā§āĻ˛ āĻ­āĻžāĻˇāĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻŦā§āĻ°āĻžāĻ‰āĻœāĻžāĻ°ā§‡ āĻĻā§‹āĻ­āĻžāĻˇā§€ āĻāĻŦāĻ‚ āĻ­āĻžāĻ°ā§āĻšā§āĻ¯āĻŧāĻžāĻ˛ āĻŽā§‡āĻļāĻŋāĻ¨ āĻšāĻžāĻ˛ā§ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ†āĻ˛āĻžāĻĻāĻžāĻ­āĻžāĻŦā§‡ āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡āĨ¤ LLVM-āĻ āĻ¨āĻ¨-āĻ•ā§āĻ˛ā§āĻ¯āĻžāĻ‚ āĻĢā§āĻ°āĻ¨ā§āĻŸāĻāĻ¨ā§āĻĄ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻ— āĻ•āĻ°āĻžāĻ“ āĻ¸āĻŽā§āĻ­āĻŦ, āĻ¯āĻž āĻ¸ā§āĻ‡āĻĢāĻŸ, āĻ°āĻžāĻ¸ā§āĻŸ, āĻĄāĻŋ āĻāĻŦāĻ‚ āĻĢā§‹āĻ°ā§āĻŸāĻ°āĻžāĻ¨ā§‡āĻ° āĻŽāĻ¤ā§‹ āĻ­āĻžāĻˇāĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ‰āĻĒāĻ˛āĻŦā§āĻ§āĨ¤

Emscripten 3.0-āĻ¤ā§‡ āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨:

  • emscripten-āĻ āĻŦā§āĻ¯āĻŦāĻšā§ƒāĻ¤ musl C āĻ˛āĻžāĻ‡āĻŦā§āĻ°ā§‡āĻ°āĻŋ āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖ 1.2.2-āĻ āĻ†āĻĒāĻĄā§‡āĻŸ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ (āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖ 2 Emscripten 1.1.15.x āĻļāĻžāĻ–āĻžāĻ¯āĻŧ āĻŦā§āĻ¯āĻŦāĻšā§ƒāĻ¤ āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛)āĨ¤
  • āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻĒā§āĻ°āĻ§āĻžāĻ¨āĻ¤ āĻŦā§āĻ¯āĻŦāĻšā§ƒāĻ¤ āĻĢāĻžāĻ‚āĻļāĻ¨āĻ—ā§āĻ˛āĻŋāĻ° āĻāĻ•āĻŸāĻŋ āĻ…āĻ‚āĻļ parseTools.js āĻ˛āĻžāĻ‡āĻŦā§āĻ°ā§‡āĻ°āĻŋ āĻĨā§‡āĻ•ā§‡ āĻ¸āĻ°āĻžāĻ¨ā§‹ āĻšāĻ¯āĻŧā§‡āĻ›ā§‡: removePointing, pointingLevels, removeAllPointing, isVoidType, isStructPointerType, isArrayType, isStructType, isVectorType, getTructural, getTructuralType, getTructural āĻŦāĻŋāĻŸāĻ¸, isFunctionDef, isPossiblyFunctionType, isFunctionType, getReturnType, splitTokenList, _IntToHex, IEEEUnHex , Compiletime.isPointerType, Compiletime.isStructType, Compiletime.INT_TYPES, isType.
  • shell.html āĻāĻŦāĻ‚ shell_minimal.html āĻŸā§‡āĻŽāĻĒā§āĻ˛ā§‡āĻŸāĻ—ā§āĻ˛āĻŋāĻ¤ā§‡, āĻāĻŽāĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸā§‡āĻ¨ āĻšāĻžāĻ˛āĻžāĻ¨ā§‹āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ˜āĻŸā§‡ āĻ¯āĻžāĻ“āĻ¯āĻŧāĻž āĻ¤ā§āĻ°ā§āĻŸāĻŋāĻ° āĻŦāĻžāĻ°ā§āĻ¤āĻžāĻ—ā§āĻ˛āĻŋāĻ° āĻ†āĻ‰āĻŸāĻĒā§āĻŸ āĻāĻŦāĻ‚ stderr āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ†āĻ‰āĻŸāĻĒā§āĻŸ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ console.error āĻāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§‡ console.warn āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻĄāĻŋāĻĢāĻ˛ā§āĻŸāĻ°ā§‚āĻĒā§‡ āĻ¸ā§āĻ‡āĻš āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
  • āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° āĻ¨āĻžāĻŽāĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻŦā§āĻ¯āĻŦāĻšā§ƒāĻ¤ āĻāĻ•āĻŸāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻĒāĻžāĻ ā§āĻ¯ āĻāĻ¨āĻ•ā§‹āĻĄāĻŋāĻ‚ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ•āĻ°āĻžāĻ° āĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻ¯ā§āĻ•ā§āĻ¤ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° āĻ¨āĻžāĻŽ āĻĒāĻžāĻ¸ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻ¨āĻ•ā§‹āĻĄāĻŋāĻ‚ āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻ¯āĻŧ āĻ†āĻ•āĻžāĻ°ā§‡ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡, āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, "a.rsp.utf-8" āĻŦāĻž "a.rsp.cp1251")āĨ¤

āĻ‰āĻ¤ā§āĻ¸: opennet.ru

āĻāĻ•āĻŸāĻŋ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻœā§āĻĄāĻŧā§āĻ¨