Пуснат е чернова на стандарта за 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. WebAssembly Web API: дефинира API, базиран на механизма Promise за заявка и изпълнение на ".wasm" ресурси. Ресурсният формат на WebAssembly е оптимизиран за стартиране на изпълнение, без да се чака пълното изтегляне на файла, което подобрява отзивчивостта на уеб приложенията.

Разлики между WebAssembly и WebAssembly 2.0

Също така трябва да се отбележи, че има някои важни промени в WebAssembly 2.0 в сравнение с първата версия на стандарта:

  • v128 поддръжка на векторен тип и свързани векторни инструкции, които ви позволяват да извършвате операции с множество числови стойности паралелно (SIMD, единична инструкция, множество данни).
  • Възможност за импортиране и експортиране на променливи глобални променливи, което позволява глобално обвързване за стойности като указатели на стека в C++.
  • Нови инструкции за преобразуване на float в int, който вместо да хвърля изключение при препълване на резултата, връща минималната или максималната възможна стойност (изисква се за SIMD).
  • Инструкции за разширяване на знака на цели числа (увеличете битовата дълбочина на число, като запазите знака и стойността).
  • Поддръжка за връщане на множество стойности по блокове и функции (както и предаване на множество параметри на функции).
  • Реализирайте функциите на JavaScript BigInt64Array и BigUint64Array за да конвертирате между JavaScript тип BigInt и представянето на WebAssembly на 64-битови цели числа.
  • Поддръжка за референтни типове (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. Права: По всяко време можете да ограничите, възстановите и изтриете информацията си.