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