Emscripten 3.0 қол жетімді, C/C++ to WebAssembly компиляторы

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

Emscripten жобасының негізгі мақсаты код қай программалау тіліне қарамастан Web-де кодты орындауға мүмкіндік беретін құралды жасау болып табылады. Құрастырылған қолданбалар стандартты C және C++ кітапханаларына (libc, libcxx), C++ кеңейтімдерін, pthreads негізіндегі көп ағынды, POSIX API және көптеген мультимедиялық кітапханаларға қоңырауларды пайдалана алады. Web API және JavaScript кодымен біріктіруге арналған API интерфейстері бөлек беріледі.

Emscripten Canvas арқылы SDL2 кітапханасының шығысын таратуды қолдайды, сонымен қатар графикалық қосымшалар мен ойындарды WebAssembly-ге түрлендіруге мүмкіндік беретін WebGL арқылы OpenGL және EGL қолдауын қамтамасыз етеді (мысалы, Qt құралдар жинағының порты бар және Unreal Engine-ді қолдайды. 4 және Unit ойын қозғалтқыштары, физикалық Bullet қозғалтқышы). C/C++ тілінде кодты құрастырудан басқа, Lua, C#, Python, Ruby және Perl тілдеріне арналған браузерлерде аудармашылар мен виртуалды машиналарды іске қосуды қамтамасыз ететін жобалар бөлек әзірленуде. Сондай-ақ, Swift, 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, isStructuralSperugety, artBits, 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

пікір қалдыру