Доступен Emscripten 3.0, компилятор из C/C++ в WebAssembly

Автор Сообщение
news_bot ®

Стаж: 6 лет 9 месяцев
Сообщений: 27286

Создавать темы news_bot ® написал(а)
23-Ноя-2021 16:30

Опубликован выпуск компилятора Emscripten 3.0, позволяющего компилировать код на C/C++ и других языках, для которых имеются фронтэнды на базе LLVM, в универсальный низкоуровневый промежуточный код WebAssembly, для последующей интеграции с JavaScript-проектами, запуска в web-браузере, использования в Node.js или создания обособленных многоплатформенных приложений, запускаемых при помощи wasm runtime. Код проекта распространяется под лицензией MIT. В компиляторе используются наработки проекта LLVM, а для генерации WebAssembly и оптимизации задействована библиотека Binaryen.
Основной целью развития проекта Emscripten является создание инструмента, позволяющего выполнять в Web код независимо от языка программирования, на котором данный код написан. В компилируемых приложениях могут использоваться вызовы стандартных библиотек C и С++ (libc, libcxx), расширения C++, многопоточность на базе pthreads, API POSIX и многие мультимедийные библиотеки. Отдельно предоставляются API для интеграции с Web API и кодом на JavaScript.
Emscripten поддерживает трансляцию вывода библиотеки SDL2 через Canvas, а также предоставляет поддержку OpenGL и EGL через WebGL, что позволяет преобразовывать в WebAssembly в том числе и графические приложения и игры (например, имеется порт тулкита Qt и поддерживаются игровые движки Unreal Engine 4 и Unit, физический движок Bullet). Помимо компиляции кода на C/C++ отдельно развиваются проекты для обеспечения запуска в браузерах интерпретаторов и виртуальных машин для языков Lua, C#, Python, Ruby и Perl. Также возможно применение отличных от Clang фронтэндов к LLVM, доступных для таких языков, как Swift, Rust, D и Fortran.
Основные изменения в Emscripten 3.0:
  • Задействованная в emscripten Си-библиотека musl обновлена до версии 1.2.2 (в ветке Emscripten 2.x использовалась версия 1.1.15).
  • Из библиотеки parseTools.js удалена порция функций, которые в основном использовались внутри проекта:
    removePointing, pointingLevels, removeAllPointing, isVoidType,
    isStructPointerType, isArrayType, isStructType, isVectorType,
    isStructuralType getStructuralTypeParts, getStructuralTypePartBits,
    isFunctionDef, isPossiblyFunctionType, isFunctionType, getReturnType,
    splitTokenList, _IntToHex, IEEEUnHex, Compiletime.isPointerType,
    Compiletime.isStructType, Compiletime.INT_TYPES, isType.
  • В шаблонах shell.html и shell_minimal.html вывод сообщений об ошибках, возникающих в процессе работы emscripten и выдаваемых приложением через stderr, по умолчанию переключён на использование console.warn вместо console.error.
  • Добавлена возможность указания определённой текстовой кодировки, используемой в именах файлов. Кодировка может задаваться в форме суффикса при передаче имени файла, например, "a.rsp.utf-8" или "a.rsp.cp1251").

===========
Источник:
OpenNet.RU
===========

Похожие новости: Теги для поиска: #_emscripten, #_javascript, #_compile
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 22-Ноя 08:48
Часовой пояс: UTC + 5