Доступен предварительный вариант стандарта WebAssembly 2.0

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

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

Создавать темы news_bot ® написал(а)
20-Апр-2022 14:30

Консорциум W3C опубликовал черновой вариант новой спецификации, стандартизирующей промежуточного код WebAssembly 2.0 и связанный с ним API, позволяющий создавать высокопроизводительные приложения, переносимые между браузерами и аппаратными платформами. WebAssembly предоставляет не зависящий от браузера универсальный низкоуровневый промежуточный код для выполнения приложений, скомпилированных из различных языков программирования. Благодаря задействованию JIT для WebAssembly можно добиться уровня производительности близкого к нативному коду.
Технология WebAssembly может применяться для выполнения в браузере задач, требующих высокой производительности, например, кодирования видео, обработки звука, манипуляции с графикой и 3D, разработки игр, криптографических операций и математических вычислений через организацию выполнения в браузере кода, написанного на компилируемых языках, таких как C/C++.
Среди основных задач WebAssembly выделяется обеспечение переносимости, предсказуемость поведения и идентичности выполнения кода на разных платформах. Последнее время WebAssembly также продвигается в качестве универсальной платформы для безопасного выполнения кода в любых инфраструктурах, операционных системах и устройствах, не ограничиваясь браузерами.
W3C опубликовал три предварительные спецификации WebAssembly 2.0:
  • WebAssembly Core - описывает низкоуровневую виртуальную машину для выполнения промежуточного кода WebAssembly. Связанные с WebAssembly ресурсы поставляются в формате ".wasm", схожем с файлами ".class" в Java и содержащем статические данные и сегменты кода для работы с этими данными.
  • WebAssembly JavaScript Interface - предоставляет API для интеграции с JavaScript. Позволяет получать значения и передавать параметры в функции WebAssembly. Выполнение WebAssembly соответствует модели безопасности JavaScript и всё взаимодействие с основной системой производится по аналогии с выполнением JavaScript-кода.
  • WebAssembly Web API - определяет программный интерфейс на основе механизма Promise для запроса и выполнения ресурсов ".wasm". Формат ресурсов WebAssembly оптимизирован для начала выполнения, не дожидаясь полной загрузки файла, что позволяет повысить отзывчивость web-приложений.
Основные изменения в WebAssembly 2.0, по сравнению с первой версией стандарта:
  • Поддержка векторного типа v128 и связанных с ним векторных инструкций, позволяющих параллельно выполнять действия над несколькими числовыми значениями (SIMD, single instruction multiple data).
  • Возможность импорта и экспорта изменяемых (mutable) глобальных переменных, позволяющих применять глобальное связывание для таких значений, как указатели стека в C++.
  • Новые инструкции для преобразования типа float в int, которые вместо генерации исключения при переполнении результата возвращают минимально или максимально возможное значение (необходимо для SIMD).
  • Инструкции для расширения знака целых чисел (увеличение разрядности числа с сохранением знака и значения).
  • Поддержка возвращения нескольких значений блоками и функциями (в дополнение к передаче в функции нескольких параметров).
  • Реализация JavaScript-функций BigInt64Array и BigUint64Array для преобразования между JavaScript-типом BigInt и представлением 64-разрядных целых чисел в WebAssembly.
  • Поддержка ссылочных типов (funcref и externref) и связанных с ними инструкций (select, ref.null, ref.func и ref.is_null).
  • Инструкции memory.copy, memory.fill, memory.init и data.drop для копирования данных между областями памяти и очистки регионов памяти.
  • Инструкции для прямого доступа и изменения таблиц (table.set, table.get, table.size, table.grow). Возможность создания, импорта и экспорта нескольких таблиц в одном модуле. Функции копирования/заполнения таблиц в пакетном режиме (table.copy, table.init и elem.drop).

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

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

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

Текущее время: 03-Май 23:47
Часовой пояс: UTC + 5