Профиль: Аноним (вход | регистрация) неRU opennet.me  
OpenNET

[ новости /+++ | форум | теги |    ]

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

08.11.2026 10:02 (MSK)

Опубликован выпуск инструментария Emscripten 7.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 и Unity, а также движок симуляции физических процессов Bullet).

Помимо компиляции кода на C/C++ отдельно развиваются проекты для запуска в браузерах интерпретаторов и виртуальных машин для языков Lua, C#, Python, Ruby и Perl. Кроме того, возможно применение фронтэндов к LLVM, отличных от Clang, например, фронтэндов для языков, как Swift, Rust, D и Fortran.

Присвоение номера версии 7.0 связано с внесением изменений, нарушающих совместимость. Основные изменения в Emscripten 7.0:

  • Обеспечено прямое связывание всех дополнительных модулей с runtime-библиотеками libclang_rt.builtins и libclang_rt.profile без необходимости экспортирования из основного модуля, как это делается в компиляторе clang.
  • Добавлена библиотека libemcc, в которую из libclang_rt.builtins вынесен код, специфичный для Emscripten.
  • Из runtime-библиотеки libclang_rt.builtins выделена библиотека libclang_rt.profile, которая теперь используется только при включении профилирования (например, при указании опций -fprofile-instr-generate или --coverage).
  • Размер буфера неименованных каналов увеличен до 64 КБ. Неблокирующая запись в заполненный канал теперь завершается ошибкой EAGAIN, но блокирующая запись пока остаётся неограниченной.
  • При компиляции и компоновке одной командой вспомогательные файлы, такие как ".dwo" при использовании опции "-gsplit-dwarf" или ".json" при использовании "-ftime-trace", теперь именуются как <output>-<input>.<ext> вместо <input>.<ext>, что соответствует поведению clang.
  • Включено автоматическое определение зависимостей для JavaScript-библиотек. Для прямых обращений из одной JavaScript-библиотеки в другую теперь не требуется указание макроса "__deps", который остаётся необходимым только для косвенных зависимостей и зависимостей от скомпилированных библиотек C/C++.
  • Удалена переменная окружения EMCC_ONLY_FORCED_STDLIBS, которая ранее была объявлена устаревшей. Для отключения связывания со стандартными библиотеками следует использовать флаг "-nostdlib".
  • До кодовой базы LLVM 23.1.3 обновлены библиотеки libcxx, libcxxabi, libunwind и compiler-rt. Задействован выпуск mimalloc 3.6.1.
  • Повышены требования к версиям браузеров Chrome 85 -> 93 (август 2021), Firefox 79 -> 92 (сентябрь 2021) и Safari 15.0 -> 15.4 (март 2022).


  1. Главная ссылка к новости (https://github.com/emscripten-...)
  2. OpenNews: Доступен Emscripten 6.0, компилятор из C/C++ в WebAssembly
  3. OpenNews: В рамках проекта Emscripten-Qt развивается порт Qt, работающий в web-браузере
  4. OpenNews: Компилятор Emscripten достиг возможности собственной пересборки
  5. OpenNews: Представлен порт ядра Linux для WebAssembly, запускаемый в браузере
  6. OpenNews: Опубликован стандарт WebAssembly 3.0
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/66640-emscripten
Ключевые слова: emscripten, webassembly
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (6) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 11:11, 08/11/2026 [ответить]  
  • +/–
    >Повышены требования к версиям браузеров Chrome 85 -> 93 (август 2021), Firefox 79 -> 92 (сентябрь 2021) и Safari 15.0 -> 15.4 (март 2022).

    https://browserbench.org/JetStream3.0/

     
  • 1.2, Аноним (2), 11:18, 08/11/2026 [ответить]  
  • –4 +/–
    Какое-то безумие, что пятилетние версии браузера вообще рассматриваются как целевая платформа.
     
     
  • 2.3, Аноним (3), 12:05, 08/11/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/–
    какое то безумие думать, что кто то будет держать команду эникейщиков, которые будут каждые 2 недели разьезжать по куче терминалов и браузеры там обновлять
     
     
  • 3.4, Аноним (2), 12:08, 08/11/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Так есть интернет и нужны обновления и новые версии сабжа, в чём проблема? Организуйте бизнес нормально и не будут прохожие взламывать эти ваши терминалы.
     

  • 1.5, Аноним (5), 12:19, 08/11/2026 Скрыто ботом-модератором     [к модератору]
  • +/–
     
  • 1.6, Аноним (6), 12:48, 08/11/2026 [ответить]  
  • +/–
    Вот бы программистам времён DOS рассказать, как мы в 2026 ресурсы тратим.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    XSQUARE
    Inferno Solutions
    Hosting by Hoster.ru
    Хоcтинг: