Emscripten 3.0 рдЙрдкрд▓рдмреНрдз рдЫ, WebAssembly рдХрдореНрдкрд╛рдЗрд▓рд░рдорд╛ C/C++

Emscripten 3.0 рдХрдореНрдкрд╛рдЗрд▓рд░рдХреЛ рд░рд┐рд▓реАрдЬ рдкреНрд░рдХрд╛рд╢рд┐рдд рдЧрд░рд┐рдПрдХреЛ рдЫ, рддрдкрд╛рдЗрдБрд▓рд╛рдИ C/C++ рд░ рдЕрдиреНрдп рднрд╛рд╖рд╛рд╣рд░реВрдорд╛ рдХреЛрдб рдХрдореНрдкрд╛рдЗрд▓ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдБрджреИ рдЬрд╕рдХреЛ рд▓рд╛рдЧрд┐ LLVM- рдЖрдзрд╛рд░рд┐рдд рдлреНрд░рдиреНрдЯрдПрдиреНрдбрд╣рд░реВ рд╡рд┐рд╢реНрд╡рд╡реНрдпрд╛рдкреА рдирд┐рдореНрди-рд╕реНрддрд░рдХреЛ рдордзреНрдпрд╡рд░реНрддреА рдХреЛрдб WebAssembly рдорд╛ рдЙрдкрд▓рдмреНрдз рдЫрдиреН, рдЬрд╛рднрд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░рд┐рдпреЛрдЬрдирд╛рд╣рд░реВрд╕рдБрдЧ рдкрдЫрд┐рдХреЛ рдПрдХреАрдХрд░рдгрдХреЛ рд▓рд╛рдЧрд┐, рдЪрд▓рд┐рд░рд╣реЗрдХреЛ рдЫред рд╡реЗрдм рдмреНрд░рд╛рдЙрдЬрд░рдорд╛, рд░ Node.js рдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН рд╡рд╛ wasm рд░рдирдЯрд╛рдЗрдо рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдЪрд▓реНрдиреЗ рд╕реНрдЯреНрдпрд╛рдиреНрдб-рдЕрд▓реЛрди рдмрд╣реБ-рдкреНрд▓реЗрдЯрдлрд░реНрдо рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реНред рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛрдб MIT рд▓рд╛рдЗрд╕реЗрдиреНрд╕ рдЕрдиреНрддрд░реНрдЧрдд рд╡рд┐рддрд░рдг рдЧрд░рд┐рдПрдХреЛ рдЫред рдХрдореНрдкрд╛рдЗрд▓рд░рд▓реЗ LLVM рдкрд░рд┐рдпреЛрдЬрдирд╛рдмрд╛рдЯ рд╡рд┐рдХрд╛рд╕рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫ, рд░ Binaryen рдкреБрд╕реНрддрдХрд╛рд▓рдп WebAssembly рдЙрддреНрдкрд╛рджрди рд░ рдЕрдиреБрдХреВрд▓рдирдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред

Emscripten рдкрд░рд┐рдпреЛрдЬрдирд╛рдХреЛ рдореБрдЦреНрдп рд▓рдХреНрд╖реНрдп рднрдиреЗрдХреЛ рдПрдЙрдЯрд╛ рдЙрдкрдХрд░рдг рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБ рд╣реЛ рдЬрд╕рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рд╡реЗрдмрдорд╛ рдХреЛрдб рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рднрд╛рд╖рд╛рдорд╛ рдХреЛрдб рд▓реЗрдЦрд┐рдПрдХреЛ рднрдПрддрд╛ рдкрдирд┐ред рдХрдореНрдкрд╛рдЗрд▓ рдЧрд░рд┐рдПрдХрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВрд▓реЗ рдорд╛рдирдХ C рд░ C++ рдкреБрд╕реНрддрдХрд╛рд▓рдпрд╣рд░реВ (libc, libcxx), C++ рд╡рд┐рд╕реНрддрд╛рд░рд╣рд░реВ, pthreads-рдЖрдзрд╛рд░рд┐рдд рдорд▓реНрдЯрд┐рдереНрд░реЗрдбрд┐рдЩ, POSIX API, рд░ рдзреЗрд░реИ рдорд▓реНрдЯрд┐рдорд┐рдбрд┐рдпрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдпрд╣рд░реВрдорд╛ рдХрд▓рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдЫрдиреНред Web API рд░ JavaScript рдХреЛрдбрд╕рдБрдЧ рдПрдХреАрдХрд░рдгрдХрд╛ рд▓рд╛рдЧрд┐ API рд╣рд░реВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░рджрд╛рди рдЧрд░рд┐рдПрдХрд╛ рдЫрдиреНред

Emscripten рд▓реЗ рдХреНрдпрд╛рдирднрд╛рд╕ рдорд╛рд░реНрдлрдд SDL2 рдкреБрд╕реНрддрдХрд╛рд▓рдпрдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдкреНрд░рд╕рд╛рд░рдг рдЧрд░реНрди рд╕рдорд░реНрдерди рдЧрд░реНрджрдЫ, рд░ WebGL рдорд╛рд░реНрдлрдд OpenGL рд░ EGL рд▓рд╛рдИ рд╕рдорд░реНрдерди рдкрдирд┐ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫ, рдЬрд╕рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдЧреНрд░рд╛рдлрд┐рдХрд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд░ рдЦреЗрд▓рд╣рд░реВрд▓рд╛рдИ WebAssembly рдорд╛ рд░реВрдкрд╛рдиреНрддрд░рдг рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ (рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рддреНрдпрд╣рд╛рдБ Qt рдЯреВрд▓рдХрд┐рдЯрдХреЛ рдкреЛрд░реНрдЯ рдЫ рд░ рдЕрд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЗрдиреНрдЬрд┐рдирд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрджрдЫред рек рд░ рдпреБрдирд┐рдЯ рдЧреЗрдо рдЗрдиреНрдЬрд┐рди, рднреМрддрд┐рдХ рдмреБрд▓реЗрдЯ рдЗрдиреНрдЬрд┐рди)ред C/C++ рдорд╛ рдХреЛрдб рдХрдореНрдкрд╛рдЗрд▓ рдЧрд░реНрдиреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, Lua, C#, Python, Ruby рд░ Perl рднрд╛рд╖рд╛рд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐ рдмреНрд░рд╛рдЙрдЬрд░рд╣рд░реВрдорд╛ рджреЛрднрд╛рд╖реЗ рд░ рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╕рд┐рдирд╣рд░реВрдХреЛ рд╕реБрд░реБрд╡рд╛рдд рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрдирдХрд╛ рд▓рд╛рдЧрд┐ рдЫреБрдЯреНрдЯрд╛рдЫреБрдЯреНрдЯреИ рдкрд░рд┐рдпреЛрдЬрдирд╛рд╣рд░реВ рд╡рд┐рдХрд╛рд╕ рднрдЗрд░рд╣реЗрдХрд╛ рдЫрдиреНред рд╕реНрд╡рд┐рдлреНрдЯ, рд░рд╕реНрдЯ, рдбреА рд░ рдлреЛрд░рдЯреНрд░рд╛рди рдЬрд╕реНрддрд╛ рднрд╛рд╖рд╛рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдЙрдкрд▓рдмреНрдз 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, getTructuralPtructural рдмрд┐рдЯреНрд╕, isFunctionDef, isPossiblyFunctionType, isFunctionType, getReturnType, splitTokenList, _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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди