Size: a a a

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

2021 July 04

M

MaxGraey in WebAssembly — русскоговорящее сообщество
@chicoxyzzy Кстати а ты не в курсе почему wasm threads до сих пор на 2й фазе?
https://github.com/WebAssembly/proposals#phase-2---proposed-spec-text-available-cg--wg

Хотя уже как минимум два браузера уже его выкатили даже не под флагами
источник

SR

Sergey Rubanov in WebAssembly — русскоговорящее сообщество
чемпион не двигал
источник

M

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

PP

Petr Penzin in WebAssembly — русскоговорящее сообщество
Вот обсуждение следующей фазы, главная проблема с тестами: https://github.com/WebAssembly/threads/issues/163
источник
2021 July 07

M

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

a

artalar in WebAssembly — русскоговорящее сообщество
А в АСме функции по ссылке передавать можно?
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
да
источник

a

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

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Можно даже делать так:

class Class {
 internalFunction(): void {}
 doSomethingInternal(): void {
   let fn = this.internalFunction;
   fn.call(this);
 }
}
источник
2021 July 08

MP

Michael Pavlovsky in WebAssembly — русскоговорящее сообщество
@maxgraey привет, ты не знаешь где найти пример AS + reference types
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Я вроде здесь не раз уже выкладывал
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Но у AS есть одно ограничение с externref (ref types). Их нельзя хранить в массивах и слассах пока что (только в локальных и глобальных переменных)
источник

MP

Michael Pavlovsky in WebAssembly — русскоговорящее сообщество
Ох, это серьезное ограничение
источник

К

Константин in WebAssembly — русскоговорящее сообщество
Ну почему, можно же врапнуть все в top level function, glue code на уровне WASM получается
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Есть вероятность, что Даниель займеться этим в ближайшее время. Трудность в том, что externref-ссылки хранятся не в линейной памяти, а таблице ссылок, то есть во первых нужно модифичировать GC что бы он не собирал такие ссылки а во вторых перенаправить в другое хранилище
источник

К

Константин in WebAssembly — русскоговорящее сообщество
А если хранит ссылку на ссылку в таблице ? (или хрень сказал?)
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
во первых пока нету возможности работать с таблицей напрямую из языка, во вторых это небезопасно. Но с таблицей можно работать со стороны хоста, только не знаю зачем это нужно, выйдет не нужный оверхед
источник

A

Alexandr Borisovich in WebAssembly — русскоговорящее сообщество
А какие будут плюсы когда доработают потоки в васм? Можно будет порождать процесс без обращения к js? Можно будет один бинарь использовать и для мульти и для обычного режима?
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
> А какие будут плюсы когда доработают потоки в васм?
Уже поддерживается в Chrome и FF. Плюсы по моему очевидны - эффективная рфбота с разделяемыми данными (через SharedArrayBuffer) и примитывы синхронизации

> Можно будет порождать процесс без обращения к js?
Нет

> Можно будет один бинарь использовать и для мульти и для обычного режима?
Вроде бы да, но с условием что изначально все компилировалось для многопотока. Атомики в однопоточном режиме просто будут приводиться к стандартным не блокирующимся операциям
источник

a

artalar in WebAssembly — русскоговорящее сообщество
Было бы круто, если рекорды и туплы войдут в стандарт и их можно будет передавать по ссылке между тредами / васмом туда и обратно
источник