Standardowa wersja robocza WebAssembly 2.0 została wydana 

W3C zaprezentowane Ostatnio przez post projekt nowej specyfikacji który standaryzuje kod przygotowania WebAssembly 2.0 i powiązany interfejs API aby umożliwić tworzenie wysokowydajnych aplikacji, które można przenosić na różne przeglądarki i platformy sprzętowe.

Dla tych, którzy są nowicjuszami w WebAssembly, powinniście to wiedzieć zapewnia to ogólne oprogramowanie pośredniczące, niski poziom i niezależne od przeglądarki, do uruchamiania skompilowanych aplikacji z różnych języków programowania. Używając JIT dla WebAssembly, możesz osiągnąć poziom wydajności zbliżony do kodu natywnego.

O WebAssembly

WebAssembly może być używany do wykonywania zadań o wysokiej wydajności w przeglądarce, takich jak kodowanie wideo, przetwarzanie dźwięku, manipulacja 3D i grafiką, tworzenie gier, operacje kryptograficzne i obliczenia matematyczne, poprzez wykonywanie kodu napisanego w skompilowanych językach, takich jak C/C++.

Do głównych zadań WebAssembly należy zapewnienie przenośności, przewidywalności zachowania i tożsamości wykonywania kodu na różnych platformach. Ostatnio WebAssembly jest również promowany jako uniwersalna platforma do bezpiecznego wykonywania kodu na dowolnej infrastrukturze, systemie operacyjnym i urządzeniu, nie tylko w przeglądarkach.

O wersji roboczej WebAssembly 2.0

Z części zmian, które zostały wprowadzone od czasu WebAssembly, są gotowe propozycje dla WebAssembly 2.0 to SIMD o stałej szerokości, operacje na pamięci masowej, typy referencyjne, obsługa JavaScript BigInt dla WebAssembly i64, obsługa wielu zwracanych wartości oraz import/eksport zmiennych zmienne globalne.

W3C opublikowało trzy szkice specyfikacji WebAssembly 2.0:

  1. Rdzeń zespołu internetowego: opisuje maszynę wirtualną niskiego poziomu do uruchamiania kodu pośredniego WebAssembly. Zasoby związane z WebAssembly są w formacie ".wasm", podobnym do plików ".class" Javy, które zawierają statyczne dane i segmenty kodu do pracy z tymi danymi.
  2. Interfejs JavaScript WebAssembly: udostępnia API do integracji z JavaScript. Pozwala uzyskać wartości i przekazać parametry do funkcji WebAssembly. Wykonanie WebAssembly jest zgodne z modelem bezpieczeństwa JavaScript, a wszystkie interakcje z hostem są wykonywane w sposób podobny do uruchamiania kodu JavaScript.
  3. Web API WebAssembly: definiuje interfejs API oparty na mechanizmie Promise do żądania i wykonywania zasobów „.wasm”. Format zasobów WebAssembly jest zoptymalizowany do rozpoczęcia wykonywania bez oczekiwania na pełne pobranie pliku, co poprawia czas reakcji aplikacji internetowych.

Różnice między WebAssembly a WebAssembly 2.0

Należy również zauważyć, że w WebAssembly 2.0 wprowadzono kilka ważnych zmian w porównaniu z pierwszą wersją standardu:

  • Obsługa typu wektorowego v128 i powiązane instrukcje wektorowe, które umożliwiają równoległe wykonywanie operacji na wielu wartościach liczbowych (SIMD, pojedyncza instrukcja, wiele danych).
  • Możliwość importowania i eksportowania mutowalnych zmiennych globalnych, co umożliwia globalne wiązanie wartości jako wskaźników stosu w C++.
  • Nowe instrukcje konwersji float na int, który zamiast zgłaszać wyjątek przy przepełnieniu wyniku, zwraca minimalną lub maksymalną możliwą wartość (wymagana dla SIMD).
  • Instrukcje rozwijania znaku liczb całkowitych (zwiększenie głębi bitowej liczby zachowując znak i wartość).
  • Obsługa zwracania wielu wartości przez bloki i funkcje (jak również przekazywanie wielu parametrów do funkcji).
  • Implementuj funkcje JavaScript BigInt64Array i BigUint64Array do konwersji między typem JavaScript BigInt i reprezentacją WebAssembly 64-bitowych liczb całkowitych.
  • Wsparcie dla typów referencyjnych (funcref i externref) oraz skojarzone z nimi instrukcje (select, ref.null, ref.func i ref.is_null).
  • instrukcje memory.copy, memory.fill, memory.init i data.drop kopiowanie danych między obszarami pamięci i usuwanie obszarów pamięci.
  • Instrukcje dotyczące bezpośredniego dostępu i modyfikacji tabel (zestaw.tabeli, table.get, table.size, table.grow).
  • Możliwość tworzenia, importowania i eksportowania wielu tabel w jednym module. Funkcje kopiowania/wypełniania tabel w trybie wsadowym (table.copy, table.init i elem.drop).

Na koniec, jeśli chcesz dowiedzieć się więcej na ten temat, możesz zapoznać się ze szczegółami W poniższym linku.


Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: AB Internet Networks 2008 SL
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.