Рабочая группа по стандартизации технологии WebAssembly (http://webassembly.org), сформированная при организации W3C из представителей проектов Chrome, Edge, Firefox и WebKit сделала заключение (https://lists.w3.org/Archives/Public/public-webassembly/2017...), что бинарный формат (http://webassembly.org/docs/binary-encoding/) и начальный WebAssembly API (http://webassembly.org/docs/js/) достигли уровня MVP (http://webassembly.org/docs/mvp/)
(минимально жизнеспособный продукт), что даёт разработчикам браузеров зелёный свет на включение WebAssembly по умолчанию. WebAssembly (http://webassembly.org/) предоставляет (https://www.opennet.ru/opennews/art.shtml?num=42451) не зависящий от браузера универсальный низкоуровневый промежуточный код для выполнения в браузере приложений, скомпилированных из различных языков программирования. Участники рабочей группы согласились, что архитектура WebAssembly достигла уровня, при котором её дальнейшее развитие невозможно без реального внедрения и начала широкого использования в приложениях. С WebAssembly теперь может быть снята метка "Browser Preview", а все дальнейшие изменения JavaScript API и бинарного формата будут добавляться с учётом сохранения обратной совместимости. Следующим шагом станет разработка спецификаций, которые послужат основой для будущего утверждения WebAssembly в качестве web-стандарта. Mozilla планирует включить WebAssembly по умолчанию в выпуске Firefox 52, намеченном на 7 марта. В Chrome включение WebAssembly без привязки к флагу "chrome://flags#enable-webassembly" ожидается в выпуске 57.
Напомним, что по своим задачам WebAssembly во многом напоминает PNaCl (Portable Native Client) и Asm.js. Основное отличие от Asm.js состоит в том, что WebAssembly является бинарным форматом, не завязанным на исходных текстах JavaScript и позволяющим выполнять в браузере низкоуровневый промежуточный код. В отличие от PNaCl, промежуточный код WASM не является машинным кодом и не изолирован в отдельной виртуальной машине, а выполняется с похожим на JavaScript уровнем изоляции. Среди основных задач WebAssembly выделяется обеспечение переносимости между браузерами, предсказуемость поведения и идентичности выполнения кода на разных платформах. Использование WebAssembly также позволит существенно сократить размер приложений, благодаря компактному промежуточному коду, и увеличить скорость декодирования.
Для разработчиков подготовлен работающий инструментарий (http://webassembly.org/getting-started/developers-guide/) для компиляции модулей WebAssembly из кода на языках C/C++. Например, для компиляции С/C++/asm.js в WebAssembly можно использовать Emscripten (https://github.com/kripken/emscripten) или созданный на его основе специальный компилятор Binaryen (https://github.com/WebAssembly/binaryen). Для преобразования тестового формата в бинарный поставляется транслятор WABT (https://github.com/WebAssembly/wabt).
Для компиляции приложений в WebAssembly может быть использован (http://webassembly.org/getting-started/developers-guide/) инструментарий Emscripten.
URL: https://lists.w3.org/Archives/Public/public-webassembly/2017...
Новость: http://www.opennet.ru/opennews/art.shtml?num=46117