Адрес: ул. Б. Очаковская 32 Москва Россия
Наши официальные канал и чат в telegram
Поднимем Devuan на вершину Distrowatch! Просто перейдите по ссылке один раз в день.

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

Новости собранные из разных RSS источников
Аватара пользователя
root:#
Site Admin
Сообщения: 1888
Зарегистрирован: Вт ноя 08, 2022 3:27 pm
Благодарил (а): 59 раз
Поблагодарили: 28 раз

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

Сообщение root:# »

Доступен Emscripten 6.0, компилятор из C/C++ в WebAssembly
Опубликован выпуск инструментария Emscripten 6.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 через API WebGL, что позволяет преобразовывать в WebAssembly графические приложения и игры (например, имеется порт тулкита Qt, поддерживаются игровые движки Unreal Engine и Unit, а также движок симуляции физических процессов Bullet).
Помимо компиляции кода на C/C++ отдельно развиваются проекты для запуска в браузерах интерпретаторов и виртуальных машин для языков Lua, C#, Python, Ruby и Perl. Кроме того, возможно применение фронтэндов к LLVM, отличных от Clang, например, фронтэндов для языков, как Swift, Rust, D и Fortran. Присвоение номера версии 6.0 связано с внесением изменений, нарушающих совместимость. Основные изменения в Emscripten 6.0:
  • Увеличены минимальные версии браузерных движков, в которых может исполняться генерируемый код: Chrome 74 -> 85, Firefox 68 -> 79 и Safari 12.2 -> 14.1. Изменение позволило задействовать по умолчанию расширения WebAssembly для импорта и экспорта изменяемых глобальных переменных, а также увеличения разрядности чисел с сохранением знака и значения. При выполнении потоковой загрузки с использованием операции Fetch размер загружаемого блока теперь ограничен 8 МБ для предотвращения загрузки в память сразу всего содержимого больших файлов. Обновлены версии musl libc 1.2.6, libpng 1.6.58 и google-closure-compiler 20260429.0.0. Реализован флаг компилятора "-m64", который аналогичен флагам "-sMEMORY64" и "--target=wasm64". Из объекта PThread удалено поле PThread.runningWorkers. Функция pause() теперь возвращает 0 вместо EINTR. На платформе Windows вместо bat-файла (emcc.bat) для запуска Emscripten предложен exe-файл (emcc.exe).

Источник: https://www.opennet.ru/opennews/art.shtml?num=65625