Size: a a a

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

2020 June 29

SR

Sergey Rubanov in WebAssembly — русскоговорящее сообщество
я не про это, а про то, что “ололо эпол ниасилили”
источник

SR

Sergey Rubanov in WebAssembly — русскоговорящее сообщество
при том, что вебкит разрабатывается много кем, а апи эти и правда открывают огромные перспективы поиметь этот ваш децентрализованный веб, например, за который вы там топите
источник

lp

lil pep in WebAssembly — русскоговорящее сообщество
да не, я просто наблюдатель
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Apple делала distrubution networks еще когда это небыло мейнстримом) Вспромним протокол Bonjure и MultipeerConnectivity начиная с iOS 7.0
источник

SR

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

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Sergey Rubanov
bonjure на маках вроде еще раньше был
Да, это вообще древняя вешь, кстати через него можно настроить тот же Adium или Miranda и чатиться по локальной сети)
источник

AT

Alexander Tchitchigi... in WebAssembly — русскоговорящее сообщество
Чё-то да, Bonjure был почти с незапамятных времён, а теперь он совместим с MulticastDNS и .local доменами — у меня MacBook с Linux друг друга в локалке с ходу пингуют.
источник

P🍣

Pavel 🍣 in WebAssembly — русскоговорящее сообщество
lil pep
не отстаем а отказываемся
<- ставлю классы :D
Кстати, эту тему обсуждают на hackernews, можно почить https://news.ycombinator.com/item?id=23676109
источник
2020 June 30

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Довольно немплохой и свежий разбор потенциальных проблем с безовасностью в WebAssembly:
https://www.software-lab.org/publications/usenixSec2020-WebAssembly.pdf
источник

PG

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

でゲソ in WebAssembly — русскоговорящее сообщество
MaxGraey
Довольно немплохой и свежий разбор потенциальных проблем с безовасностью в WebAssembly:
https://www.software-lab.org/publications/usenixSec2020-WebAssembly.pdf
tldr они таки осилили убеганте из песочницы?
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
でゲソ
tldr они таки осилили убеганте из песочницы?
Нет. Если подитожить то это в основном проблемы конкретного хоста и возможности коррупции данных (которые к слову будут уже не актуальны с приходом multi memory предложения), остальное фиксится общением только через безопасное API c capability policy для хоста (вроде WASI):

«Our findings are based on a set of attack primitives that enable an attacker to gain a write primitive, overwrite sensitive data, and trigger compromising behavior. Several end-to-end examples of attacks, which cover WebAssembly running in the browser, on Node.js, and in stand-alone VMs, demonstrate that these primitives can be combined into effective exploits. Moreover,an empirical evaluation of real-world binaries quantifies the exploitation risk, showing a large attack surface. Overall, our findings are a call to arms for further hardening the WebAssembly language, its compilers, and ecosystem, making the promise of a secure platform a reality.»
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
@pepyakin Кстати а равве в wasmtime не используется ASLR ? В браузерах точно должен
источник

PP

Petr Penzin in WebAssembly — русскоговорящее сообщество
Dmitry Bezhetskov
В Firefox для оптимизации wasm используется много чего. Смотрите https://searchfox.org/mozilla-central/source/js/src/wasm/WasmIonCompile.cpp#5344. Сама OptimizeMir определена тут: https://searchfox.org/mozilla-central/source/js/src/jit/Ion.cpp#878, там прям по комментам написано что применяется и в какой последовательности. Для Lir тоже самое.
Я не совсем понимаю что там происходит. Вот например v8: https://github.com/v8/v8/blob/master/src/compiler/backend/x64/code-generator-x64.cc, вазм операции просто транслируются в набор ассемблерных операций, посмотрите например на OutOfLineF64x2Max. Может быть удаляется очевидно мёртвый код, но никакой "интересный" анализ не делается :)
источник

PP

Petr Penzin in WebAssembly — русскоговорящее сообщество
MaxGraey
Это все очень сильно зависит от рантайма. Например тот же cranelift бэкенд части из которого уже в FF используются, а в wasmtime и вовсе полностью, использует не только свертку констант и peephole оптимизации (которые сопоставляются по шаблону и отвечает за это теперь peepmatic) но так же делает и CFG/DFG оптимизации как разворачивание циклов, CSE, DCE, LICM, branch relaxation и т д, и вообще у него свой ir для этого всего есть:
https://github.com/bytecodealliance/wasmtime/tree/main/cranelift/codegen/src/ir

Но конечно до того, что делает тот же LLVM JIT ему очень далеко
Да, wasmtime и wasmer оптимизируют, wasmer даже пытается LLVM для этого использовать, но для браузеров это "дорого", по крайней мере такое мнение бытует в CG
источник

PP

Petr Penzin in WebAssembly — русскоговорящее сообщество
Polina Gurtovaya
Интересно. Но мне казалось что при компиляции модуля в браузере ещё много архитектурно-специфических штук происходит. Команды для префетчинга там какие-нибудь.  Или нет?
Префеч возможно используется, но скорей всего только на определённых командах вазма, например на доступе к памяти
источник

PP

Petr Penzin in WebAssembly — русскоговорящее сообщество
@polina_gurtovaya @maxgraey @dbezheckov долго думал, извиняюсь :)
источник

PG

Polina Gurtovaya in WebAssembly — русскоговорящее сообщество
:)
источник

PP

Petr Penzin in WebAssembly — русскоговорящее сообщество
Кстати у вазмера были проблемки с реоптимизацией вазма:
https://github.com/wasmerio/c-wasm-simd128-example/issues/1#issuecomment-519588267
https://github.com/wasmerio/wasmer/pull/651
источник

DB

Dmitry Bezhetskov in WebAssembly — русскоговорящее сообщество
Petr Penzin
Я не совсем понимаю что там происходит. Вот например v8: https://github.com/v8/v8/blob/master/src/compiler/backend/x64/code-generator-x64.cc, вазм операции просто транслируются в набор ассемблерных операций, посмотрите например на OutOfLineF64x2Max. Может быть удаляется очевидно мёртвый код, но никакой "интересный" анализ не делается :)
Ну вы показываете бекенд, а что происходит во фронтенде v8? я не знаю
источник