Emscripten 3.0, C / C ++ to WebAssembly compiler beskikber

De frijlitting fan 'e Emscripten 3.0-kompiler is publisearre, wêrtroch jo koade kinne kompilearje yn C/C ++ en oare talen wêrfoar LLVM-basearre frontends beskikber binne yn universele leech-nivo tuskenlizzende koade WebAssembly, foar folgjende yntegraasje mei JavaScript-projekten, útfiering yn in webblêder, en brûk yn Node. js of meitsje standalone multi-platfoarm applikaasjes dy't rinne mei wasm runtime. De projektkoade wurdt ferspraat ûnder de MIT-lisinsje. De gearstaller brûkt ûntwikkelingen fan it LLVM-projekt, en de Binaryen-bibleteek wurdt brûkt foar WebAssembly-generaasje en optimisaasje.

It haaddoel fan it Emscripten-projekt is om in ark te meitsjen wêrmei jo koade op it web kinne útfiere, nettsjinsteande de programmeartaal wêryn de koade is skreaun. Kompilearre applikaasjes kinne oproppen brûke nei standert C- en C++-biblioteken (libc, libcxx), C++-útwreidingen, pthreads-basearre multithreading, POSIX API's, en in protte multimediabiblioteken. API's foar yntegraasje mei Web API en JavaScript-koade wurde apart levere.

Emscripten stipet it útstjoeren fan 'e útfier fan' e SDL2-bibleteek fia Canvas, en leveret ek stipe foar OpenGL en EGL fia WebGL, wêrtroch jo grafyske applikaasjes en spultsjes kinne konvertearje nei WebAssembly (d'r is bygelyks in haven fan 'e Qt toolkit en stipet Unreal Engine 4 en Unit-spielmotoren, fysike Bullet-motor). Neist it kompilearjen fan koade yn C/C++, wurde projekten apart ûntwikkele om de lansearring fan tolken en firtuele masines yn browsers te garandearjen foar de talen Lua, C#, Python, Ruby en Perl. It is ek mooglik om net-Clang frontends oan te passen op LLVM, beskikber foar talen lykas Swift, Rust, D en Fortran.

Grutte feroaringen yn Emscripten 3.0:

  • De musl C bibleteek brûkt yn emscripten is bywurke nei ferzje 1.2.2 (ferzje 2 waard brûkt yn de Emscripten 1.1.15.x branch).
  • In part fan de funksjes dy't benammen yn it projekt brûkt waarden, binne fuortsmiten út de parseTools.js-bibleteek: removePointing, pointingLevels, removeAllPointing, isVoidType, isStructPointerType, isArrayType, isStructType, isVectorType, isStructuralType getStructuralPypeType,TypeType,TypeBart isPossiblyFunctionType, isFunctionType, getReturnType, splitTokenList, _IntToHex, IEEEUnHex , Compiletime.isPointerType, Compiletime.isStructType, Compiletime.INT_TYPES, isType.
  • Yn de shell.html en shell_minimal.html sjabloanen, de útfier fan flater berjochten dy't foarkomme tidens de wurking fan emscripten en wurde útfierd troch de applikaasje fia stderr wurdt standert oerskeakele te brûken console.warn ynstee fan console.error.
  • De mooglikheid tafoege om in spesifike tekstkodearring oan te jaan brûkt yn bestânsnammen. De kodearring kin opjûn wurde yn 'e foarm fan in efterheaksel by it trochjaan fan de triemnamme, bygelyks "a.rsp.utf-8" of "a.rsp.cp1251").

Boarne: opennet.ru

Add a comment