Size: a a a

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

2019 December 13

M

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

M

MaxGraey in WebAssembly — русскоговорящее сообщество
ну и виртуальный вызов можно по разному реализовывать. Я знаю как миним 3 варианта)
источник

ZB

Zalim Bashorov in WebAssembly — русскоговорящее сообщество
Ну т.е. виртуальные вызовы все же есть, но нет отдельной инструкции для этого. И их оптимизация нужна. А с приходом gc-proposal необходимость оптимизаций возрастет.
источник

M

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

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Ну и не всем языкам это нужно. Тому же Cи, Хаскелю или любому другому функциональному ЯП это не нужно, Rust, C++, Swift, Crystal тоже имею выртуальные вызовы но обходятся без VM и JIT=)
источник

AT

Alexander Tchitchigin in WebAssembly — русскоговорящее сообщество
MaxGraey
Ну и не всем языкам это нужно. Тому же Cи, Хаскелю или любому другому функциональному ЯП это не нужно, Rust, C++, Swift, Crystal тоже имею выртуальные вызовы но обходятся без VM и JIT=)
Haskell тоже полезно - вызовы методов классов типов - виртуальные в общем случае.
источник

AT

Alexander Tchitchigin in WebAssembly — русскоговорящее сообщество
В Rust вызовы impl Trait - тоже виртуальные. То, что рантайм их не оптимизирует, не то чтобы большое достоинство рантайма. 😊
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Alexander Tchitchigin
В Rust вызовы impl Trait - тоже виртуальные. То, что рантайм их не оптимизирует, не то чтобы большое достоинство рантайма. 😊
Это я знаю, поэтому и не причислил его в первую категорию, но вот про Haskell не знал что там тоже оказывается есть виртуальные вызовы
источник

AT

Alexander Tchitchigin in WebAssembly — русскоговорящее сообщество
MaxGraey
виртуальные вызовы ассоциируются с таблицей локализщированной для конкретного class id, indirect calls же в случае с wasm с общей глобальной таблицей
Это ж только в MVP таблица одна? Подразумевается, что в будущем будет можно использовать несколько таблиц, как я понял.
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Alexander Tchitchigin
Это ж только в MVP таблица одна? Подразумевается, что в будущем будет можно использовать несколько таблиц, как я понял.
Да, так же как и несколько линейных буферов памяти
источник

AT

Alexander Tchitchigin in WebAssembly — русскоговорящее сообщество
MaxGraey
Это я знаю, поэтому и не причислил его в первую категорию, но вот про Haskell не знал что там тоже оказывается есть виртуальные вызовы
Так классы типов работают в точности как трейты. Точнее, наоборот, конечно. 😊
источник

AT

Alexander Tchitchigin in WebAssembly — русскоговорящее сообщество
MaxGraey
Да, так же как и несколько линейных буферов памяти
Это значит, будет что оптимизировать.
источник

AT

Alexander Tchitchigin in WebAssembly — русскоговорящее сообщество
На всякий случай укажу на то, что даже процессоры оптимизируют виртуальные (косвенные) вызовы - на этом весь Spectre держится. 😉
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Как объяснить детям что такое WebAssembly? Просто показать этот кадр и ниндзя черепашек)
источник

AT

Alexander Tchitchigin in WebAssembly — русскоговорящее сообщество
MaxGraey
Как объяснить детям что такое WebAssembly? Просто показать этот кадр и ниндзя черепашек)
Все дети, которые смотрели черепашек-ниндзя, уже давно выросли. 😉
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Alexander Tchitchigin
Все дети, которые смотрели черепашек-ниндзя, уже давно выросли. 😉
Да там 2016го даже фильм выходил, так не так уж персонажи от туда и позабыты
источник

P🛸

Pavel 🛸 in WebAssembly — русскоговорящее сообщество
MaxGraey
Как объяснить детям что такое WebAssembly? Просто показать этот кадр и ниндзя черепашек)
А тело в котором он живет это патрик из спанч-боба.
источник

ZB

Zalim Bashorov in WebAssembly — русскоговорящее сообщество
> виртуальных вызовов нету и пока не планируется
> Надеюсь что нет. Потому что тогда это будет ни чем не лучше Java VM
возвращаясь к изначальному — мой пойнт в том что это временное явление, сейчас скорее всего это не сильно болит в силу специфики языков которые в основном компилируются в wasm. Но со временем “давление” увеличится.
источник

SK

Slava Kuzmich in WebAssembly — русскоговорящее сообщество
Альтернативный GC proposal от SOIL с примерами применения для ОО и функциональных языков https://github.com/soil-initiative/gc/pull/1
источник

ҪҸ

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