Emscripten 3.0, набор от инструменти за WebAssembly, използващ LLVM

наскоро беше обявено излизането на новата версия на компилатора Emscripten 3.0, който се характеризира с това, че позволява компилирането на код на C / C ++ и други езици, за които са достъпни базирани на LLVM интерфейси, в универсален мидълуер на ниско ниво WebAssembly.

Основната функция на тази компилация е за последващата й интеграция с JavaScript проекти, стартиране в уеб браузър и използване в Node. Js или създайте самостоятелни приложения за различни платформи, които работят с времето за изпълнение на wasm.

Относно Emscripten

Основната цел разработване на проекта Emscripten е да създадете инструмент, който ви позволява да изпълнявате код в мрежата, независимо от езика за програмиране, на който е написана.

Компилираните приложения могат да използват стандартни C и C++ извиквания на библиотека (libc, libcxx), разширения на C ++, базирано на pthreads многонишково работа, POSIX API и много мултимедийни библиотеки. API за интеграция с уеб API и JavaScript кода се предоставят отделно.

Регистрирай се поддържа стрийминг на изход на библиотека SDL2 чрез Canvas, а също така предоставя поддръжка на OpenGL и EGL чрез WebGL, което ви позволява да конвертирате графични приложения и игри в WebAssembly.

На практика всяка преносима C или C ++ кодова база може да бъде компилирана в WebAssembly с помощта на EmscriptenОт високопроизводителни игри, които трябва да изобразяват графики, да възпроизвеждат звуци и да зареждат и обработват файлове, до рамки на приложения като Qt. Emscripten вече е бил използван за конвертиране на много дълъг списък от кодови бази от реалния свят в WebAssembly, включително търговски кодови бази като Unreal Engine 4 и Unity Engine.

В допълнение към компилирането на C / C ++ код, проектите се разработват отделно, за да се гарантира, че интерпретаторите и виртуалните машини за Lua, C #, Python, Ruby и Perl стартират в браузърите. Също така е възможно да се прилагат не-Clang интерфейси към LLVM, достъпни за езици като Swift, Rust, D и Fortran.

Трябва да се отбележи това има разлики между естественото време за изпълнение и Emscripten, което означава, че по принцип напрНеобходимо е да се направят някои промени в родния код. Като се има предвид това, много приложения ще трябва само да променят начина, по който дефинират своя основен цикъл, както и да променят обработката на файлове, за да се съобразят с ограниченията на браузъра/ JavaScript.

Има и ограничения, които могат да улеснят мигрирането на някои кодове - прочетете Указанията за преносимост, за да определите къде може да се наложи да похарчите повече усилия.

Основни нови функции на Emscripten 3.0

В тази нова версия, която е представена, библиотеката musl C, използвана в emscripten, е актуализирана до версия 1.2.2 (версия 1.1.15 е използвана в клона на Emscripten 2.x).

От библиотеката parseTools.js бяха премахнати част от функциите, които се използват основно в проекта: removePointing, pointingLevels, removeAllPointing, isVoidType, isStructPointerType, isArrayType, isStructType, isVectorType, isStructuralType getStructuralTypeParts, getStructuralType _IntToHex, IEEETileytime,Comp.

докато В шаблоните shell.html и shell_minimal.html изходът на съобщенията за грешка които възникват по време на операцията emscripten и се издават от приложението чрез stderr по подразбиране е променено да използва console.warn вместо console.error.

Също така се подчертава, че добавена възможност за определяне на специфично текстово кодиране, използвано в имената на файлове. Кодирането може да бъде посочено като суфикс при предаване на името на файла, например "a.rsp.utf-8" или "a.rsp.cp1251").

И накрая, ако се интересувате да научите повече за Emscripten, можете да се консултирате с подробностите за проекта в неговия официален уебсайт.

И по същия начин можете да се консултирате с документация в мрежата за това как да използвате Emscripten, референтен сайт, който можем да препоръчаме, е уебсайтът за разработчици на Mozilla: https://developer.mozilla.org.

Също така е важно да се спомене, че кодът на проекта се разпространява под лиценза на MIT. Компилаторът използва разработки от проекта LLVM, а библиотеката Binaryen се използва за генериране на WebAssembly и оптимизация. Можете да проверите кода си източник на GitHub.


Оставете вашия коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

*

*

  1. Отговорник за данните: AB Internet Networks 2008 SL
  2. Предназначение на данните: Контрол на СПАМ, управление на коментари.
  3. Легитимация: Вашето съгласие
  4. Съобщаване на данните: Данните няма да бъдат съобщени на трети страни, освен по законово задължение.
  5. Съхранение на данни: База данни, хоствана от Occentus Networks (ЕС)
  6. Права: По всяко време можете да ограничите, възстановите и изтриете информацията си.