Emscripten 3.0 жеткиликтүү, C/C++ үчүн WebAssembly компилятору

Emscripten 3.0 компиляторунун релизи жарыкка чыкты, бул сизге кодду C/C++ жана башка тилдерде компиляциялоого мүмкүндүк берет, алар үчүн LLVM негизиндеги фронтондор WebAssembly универсалдуу төмөнкү деңгээлдеги аралык кодуна, андан кийин иштеп жаткан JavaScript долбоорлору менен интеграциялоо үчүн веб-браузерде жана Node.jsде колдонуңуз же wasm иштөө убактысын колдонуп иштеген өз алдынча көп платформалуу тиркемелерди түзүңүз. Долбоордун коду MIT лицензиясы боюнча таратылат. Компилятор LLVM долбоорунун иштеп чыгууларын колдонот, ал эми Binaryen китепканасы WebAssembly жана оптималдаштырууну түзүү үчүн колдонулат.

Emscripten долбоорунун негизги максаты – код жазылган программалоо тилине карабастан Интернетте кодду аткарууга мүмкүндүк берүүчү куралды түзүү. Компиляцияланган тиркемелер стандарттуу C жана C++ китепканаларына (libc, libcxx), C++ кеңейтүүлөрүнө, pthreads негизиндеги көп агымдарга, POSIX API'лерине жана көптөгөн мультимедиялык китепканаларга чалууларды колдоно алат. Web API жана JavaScript коду менен интеграциялоо үчүн API'лер өзүнчө берилет.

Emscripten SDL2 китепканасынын чыгарылышын Canvas аркылуу трансляциялоону колдойт, ошондой эле WebGL аркылуу OpenGL жана EGL үчүн колдоо көрсөтөт, бул графикалык тиркемелерди жана оюндарды WebAssemblyге айландырууга мүмкүндүк берет (мисалы, Qt инструменттеринин порту бар жана Unreal Engine колдойт 4 жана Unit оюн кыймылдаткычтары, физикалык Bullet кыймылдаткычы). C/C++ тилдеринде кодду түзүүдөн тышкары, Lua, C#, Python, Ruby жана Perl тилдериндеги браузерлерде котормочуларды жана виртуалдык машиналарды ишке киргизүүнү камсыз кылуу үчүн долбоорлор өзүнчө иштелип чыгууда. Свифт, Rust, D жана Fortran сыяктуу тилдер үчүн жеткиликтүү болгон LLVMге Clang эмес фронтондорду да колдонсо болот.

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, isStructuralType, isStructuralSperuTperugety, анын, isFunctionDef, isPossiblyFunctionType, isFunctionType, getReturnType, splitTo kenList, _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").

Source: opennet.ru

Комментарий кошуу