Випущено проект стандарту WebAssembly 2.0 

W3C представлений Нещодавно через пост проект нової специфікації що стандартизує код підготовки WebAssembly 2.0 і пов’язаний API щоб дозволити створювати високопродуктивні програми, які переносяться між браузерами та апаратними платформами.

Для тих, хто тільки починає працювати з WebAssembly, ви повинні це знати це забезпечує загальне проміжне програмне забезпечення, низький рівень і незалежний від браузера, щоб запускати скомпільовані програми з різних мов програмування. Використовуючи JIT для WebAssembly, ви можете досягти рівня продуктивності, близького до рідного коду.

Про WebAssembly

WebAssembly можна використовувати для виконання високопродуктивних завдань у браузері, наприклад, кодування відео, обробка звуку, маніпуляції з 3D та графікою, розробка ігор, криптографічні операції та математичні обчислення, виконуючи код, написаний компільованими мовами, такими як C/C++.

Серед основних завдань WebAssembly – забезпечення портативності, передбачуваності поведінки та ідентичності виконання коду на різних платформах. Останнім часом WebAssembly також рекламується як універсальна платформа для безпечного виконання коду на будь-якій інфраструктурі, операційній системі та пристрої, не обмежуючись браузерами.

Про проект WebAssembly 2.0

Зміни, внесені після WebAssembly, є готовими пропозиціями для WebAssembly 2.0: SIMD фіксованої ширини, операції з масовою пам’яттю, типи посилань, підтримка JavaScript BigInt для WebAssembly i64, підтримка кількох значень, що повертаються та імпорт/експорт змінних глобальні змінні.

W3C опублікував три проекти специфікацій WebAssembly 2.0:

  1. Ядро веб-збірки: описує низькорівневу віртуальну машину для виконання проміжного коду WebAssembly. Ресурси, пов'язані з WebAssembly, мають формат ".wasm", подібний до файлів ".class" Java, які містять статичні дані та сегменти коду для роботи з цими даними.
  2. Інтерфейс JavaScript WebAssembly: надає API для інтеграції з JavaScript. Дозволяє отримувати значення та передавати параметри функціям WebAssembly. Виконання WebAssembly відповідає моделі безпеки JavaScript, і вся взаємодія з хостом виконується подібно до виконання коду JavaScript.
  3. Веб-API WebAssembly: визначає API на основі механізму Promise для запиту та виконання ресурсів ".wasm". Формат ресурсу WebAssembly оптимізовано для початку виконання, не чекаючи повного завантаження файлу, що покращує швидкість реагування веб-додатків.

Відмінності між WebAssembly та WebAssembly 2.0

Також слід зазначити, що в WebAssembly 2.0 є деякі важливі зміни в порівнянні з першою версією стандарту:

  • v128 підтримка векторного типу і пов’язані векторні інструкції, які дозволяють виконувати операції з кількома числовими значеннями паралельно (SIMD, одна інструкція, кілька даних).
  • Можливість імпорту та експорту змінюваних глобальних змінних, що дозволяє глобальне прив’язування для значень як покажчиків стека в 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).

Нарешті, якщо вам цікаво дізнатися більше про це, ви можете ознайомитися з деталями У наступному посиланні.


Залиште свій коментар

Ваша електронна адреса не буде опублікований. Обов'язкові для заповнення поля позначені *

*

*

  1. Відповідальний за дані: AB Internet Networks 2008 SL
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.