Size: a a a

WebAssembly — русскоговорящее сообщество

2018 January 17

NK

ID:414983998 in WebAssembly — русскоговорящее сообщество
Ну они сделали сейчас то же, что WebKit заложил изначально: https://webkit.org/blog/7691/webassembly/

Сначала компилиться быстро но не оптимально, и начинается выболнение кода в стековой машине, парралельно подготавливается более оптимизированная версия и когда этот процесс закончится поток выполнения перекинеться на нее
источник

OS

Oleksandr Skachkov in WebAssembly — русскоговорящее сообщество
@maxgraey  Если быть честно, то не совсем. В WeKit есть асинхронная компиляция, но WebKit не использует streaming, то есть он компилит только когда полностью закачался wasm файл. FireFox & Chrome реализовали Streaming API, и компилят каждый chunk сразу же как только он пришел по сети. Вот API:
WebAssembly.compileStreaming
WebAssembly.instantiateStreaming
https://github.com/WebAssembly/design/blob/master/Web.md#additional-web-embedding-api
источник

OS

Oleksandr Skachkov in WebAssembly — русскоговорящее сообщество
По поводу "tiering compiler" да так и есть, это было сразу сделано в WebKit :
"Сначала компилиться быстро но не оптимально, и начинается выболнение кода в стековой машине, парралельно подготавливается более оптимизированная версия и когда этот процесс закончится поток выполнения перекинеться на нее"
источник

NK

ID:414983998 in WebAssembly — русскоговорящее сообщество
Не сразу же, а только если это полноценный модуль а не просто произвольный кусок байткода:
"Compile bytes, in the same fashion as specified for the WebAssembly.Module constructor."
"Return a new WebAssembly.Module instance, with its [[Module]] set to module."
источник

NK

ID:414983998 in WebAssembly — русскоговорящее сообщество
Учитывая что сейчас это чаще всего один модуль так как динамическая линковка еще не доделана, то это весьма сомнительная фича ведь мы работаем сейчас с одним модулем. По крайней мере пока что
источник

ҪҸ

Ҫѐҏӗѫӑ Ҹҋ 🤖 in WebAssembly — русскоговорящее сообщество
говорят линковка в новом lld работает
источник

ҪҸ

Ҫѐҏӗѫӑ Ҹҋ 🤖 in WebAssembly — русскоговорящее сообщество
Юрий Делендик пробовал, писал об этом в слаке вебпака в канале вебассембли
источник

ҪҸ

Ҫѐҏӗѫӑ Ҹҋ 🤖 in WebAssembly — русскоговорящее сообщество
если я его правильно понял
источник

OS

Oleksandr Skachkov in WebAssembly — русскоговорящее сообщество
ID:414983998
Не сразу же, а только если это полноценный модуль а не просто произвольный кусок байткода:
"Compile bytes, in the same fashion as specified for the WebAssembly.Module constructor."
"Return a new WebAssembly.Module instance, with its [[Module]] set to module."
Чуть выше "This compilation can be performed in the background and in a streaming manner." Важно что  компилируются байты  "Compile BYTES, in the same fashion..." То есть, браузер как только получил первый пакет по сети, наченат их скармливать "Wasm Stream Compilator".  "Wasm Stream Compilator"  отличается от обычного "Wasm Compiler", тем что может прерывать компиляцию, если не может распарсить текущую секцию, и продолжать как только пришел следующий пакет.
Выгода в том что мы не ждем пока закачаем весь  wasm файл.
Обычный Wams Compiler
https://2r4s9p1yi1fa2jd7j43zph8r-wpengine.netdna-ssl.com/files/2018/01/03.png
источник

OS

Oleksandr Skachkov in WebAssembly — русскоговорящее сообщество
источник

OS

Oleksandr Skachkov in WebAssembly — русскоговорящее сообщество
Если говорить про WebKit, то к сожалению там не реализована обработка по пакетам
источник

OS

Oleksandr Skachkov in WebAssembly — русскоговорящее сообщество
Сейчас я ей занимаюсь
источник

OS

Oleksandr Skachkov in WebAssembly — русскоговорящее сообщество
После этого буду доделывать Wasm Streaming Compiler
источник

NK

ID:414983998 in WebAssembly — русскоговорящее сообщество
А интересует кого то возможность транспиляции typescript в webassembly? Было три проекта на эту тему, остался лишь один, наверное вы о нем даже слышали. В общем, я толкаю эту идею, помогаю основному контрибутору и единственному и делаю всякое сопутствующее по, типа playground-а
источник

ҪҸ

Ҫѐҏӗѫӑ Ҹҋ 🤖 in WebAssembly — русскоговорящее сообщество
да, видели
источник

ҪҸ

Ҫѐҏӗѫӑ Ҹҋ 🤖 in WebAssembly — русскоговорящее сообщество
имхо что-то вроде walm может стать интереснее
источник

ҪҸ

Ҫѐҏӗѫӑ Ҹҋ 🤖 in WebAssembly — русскоговорящее сообщество
потому что там сразу синтаксис для wasm делается, а as - это надмножество подмножества
источник

ҪҸ

Ҫѐҏӗѫӑ Ҹҋ 🤖 in WebAssembly — русскоговорящее сообщество
но круто что есть возможность и в жс компилить
источник

NK

ID:414983998 in WebAssembly — русскоговорящее сообщество
Да, но нет оптимизации, нет рантайма и очень скудный синтаксис
источник

NK

ID:414983998 in WebAssembly — русскоговорящее сообщество
Это как макроассемблер.
источник