Emscripten 3.0, C/C++ i WebAssembly compiler loaʻa

Ua paʻi ʻia ka hoʻokuʻu ʻana o ka Emscripten 3.0 compiler, e ʻae iā ʻoe e hōʻuluʻulu i nā code ma C/C ++ a me nā ʻōlelo ʻē aʻe e loaʻa ai nā frontends LLVM i loko o ke code intermediate haʻahaʻa haʻahaʻa honua WebAssembly, no ka hoʻohui ʻana me nā papahana JavaScript, e holo ana. i loko o kahi polokalamu kele pūnaewele, a hoʻohana i ka Node. js a i ʻole ka hana ʻana i nā noi hoʻokahi multi-platform e holo me ka hoʻohana ʻana i ka wasm runtime. Hāʻawi ʻia ke code papahana ma lalo o ka laikini MIT. Hoʻohana ka mea hōʻuluʻulu i nā hoʻomohala mai ka papahana LLVM, a hoʻohana ʻia ka waihona Binaryen no ka hanauna WebAssembly a me ka optimization.

ʻO ka pahuhopu nui o ka papahana Emscripten ka hana ʻana i kahi mea hana e hiki ai iā ʻoe ke hoʻokō i nā code ma ka Pūnaewele me ka nānā ʻole i ka ʻōlelo hoʻonohonoho i kākau ʻia ai ke code. Hiki i nā noi i hui ʻia ke hoʻohana i nā kelepona i nā hale waihona puke maʻamau C a me C++ (libc, libcxx), C++ extensions, pthreads-based multithreading, POSIX APIs, a me nā hale waihona puke multimedia he nui. Hāʻawi kaʻawale ʻia nā API no ka hoʻohui ʻana me Web API a me JavaScript code.

Kākoʻo ʻo Emscripten i ka hoʻolaha ʻana i ka puka o ka waihona SDL2 ma o Canvas, a hāʻawi pū i ke kākoʻo no OpenGL a me EGL ma o WebGL, kahi e hiki ai iā ʻoe ke hoʻololi i nā noi kiʻi a me nā pāʻani i WebAssembly (no ka laʻana, aia kahi awa o ka Qt toolkit a kākoʻo iā Unreal Engine. 4 a me Unite game engines, physical Bullet engine). Ma waho aʻe o ka hōʻuluʻulu ʻana i nā code ma C/C ++, ke kūkulu ʻia nei nā papahana e hōʻoia i ka hoʻomaka ʻana o nā unuhi ʻōlelo a me nā mīkini virtual i nā polokalamu kele no nā ʻōlelo Lua, C#, Python, Ruby a me Perl. Hiki nō hoʻi ke hoʻopili i nā frontends non-Clang i LLVM, i loaʻa no nā ʻōlelo e like me Swift, Rust, D a me Fortran.

Nā hoʻololi nui ma Emscripten 3.0:

  • Ua hōʻano hou ʻia ka waihona musl C i hoʻohana ʻia ma emscripten i ka mana 1.2.2 (ua hoʻohana ʻia ka mana 2 ma ka lālā Emscripten 1.1.15.x).
  • Ua wehe ʻia kekahi hapa o nā hana i hoʻohana nui ʻia i loko o ka papahana mai ka hale waihona parseTools.js: removePointing, pointingLevels, removeAllPointing, isVoidType, isStructPointerType, isArrayType, isStructType, isVectorType, isStructuralType getStructuralType, isStructuralType unctionDef, isPossiblyFunctionType, isFunctionType, getReturnType, splitTokenList, _IntToHex, IEEEUnHex , Compiletime.isPointerType, Compiletime.isStructType, Compiletime.INT_TYPES, isType.
  • Ma ka shell.html a me shell_minimal.html template, ua hoʻololi ʻia ka hoʻopuka o nā memo hewa i ka wā o ka hana ʻana o emscripten a i hoʻopuka ʻia e ka noi ma o stderr e hoʻohana i ka console.warn ma kahi o console.error.
  • Hoʻohui i ka hiki ke kuhikuhi i kahi hoʻopili kikokikona kikoʻī i hoʻohana ʻia i nā inoa faila. Hiki ke kuhikuhi ʻia ka hoʻopili ʻana ma ke ʻano o kahi suffix i ka wā e hāʻawi ai i ka inoa faila, no ka laʻana, "a.rsp.utf-8" a i ʻole "a.rsp.cp1251").

Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka