Здравствуйте, novitk, Вы писали:
_>>...Что же касается интеграции с браузером и его GC, то тут конечно всё сложнее и требуется разработка с нуля (благо этим занимаются не энтузиасты, а специалисты на зарплате, причём из команд разработки ведущих браузеров).
N>Я собственно именно это и написал. Два GC в одном процессе = ад.
Так откуда два то, если в wasm сделают нативный интерфейс к DOM? ) Да и первый GC, в случае того же Питона уже давно идеально соотносится с нативным кодом. )
_>>И по некоторым данным возможно там будет использоваться новое нативное API (в котором никакого GC просто не надо).
N>Дело не в статическом нативном API, a в модели памяти и взаимодействии.
Модель памяти уже известна: линейный расширяемый кусок памяти, принадлежащий wasm. По сути никаких ограничений, всё как в нативном коде. Интеграция с JS сделана через доступ JS кода к этому куску памяти в виде обычного массива. Но нас же сейчас интересует интеграция не с JS, а с API браузера. И тут может быть много разных вариантов. В принципе при решение тупо в лоб можно всё сделать на банальных глобальных функциях в сочетание с некими дескрипторами (как устроен API в большинстве современных ОС). Такое будет удобнее программировать на C. Или же можно всё же сохранить компонентную модель и сделать некую вариацию на тему COM. С таким будет уже удобнее работать на C++. Ни в одном из этих случаев не видно никаких особых проблем с взаимодействием или же потребности в GC. Просто надо тупо сесть и создать большой объём API. Кстати, я там читал кого-то из разработчиков wasm, что они не хотят ничего такого руками делать и хотят придумать такой механизм, чтобы в него можно было засунуть IDL от w3c и автоматически получить результат. Ну посмотрим как это у них выйдет, в любом случае это у них не приоритетная задача — сейчас в приоритете многопоточность и SIMD.
N>Я знаю. Мои возражение сводятся к тому что ключевой вопрос (GC) платформы до сих пор не проработан, а ее уже интегрируют корявым способом в браузер.
А мне кажется он полностью проработан: его нет и не планируется.
_>>Ну и хочу заметить, что VM у WASM имеется только в том же смысле, что и LLVM, а не как JVM или CLR. )))
N>И это правильно. Я вообще надеюсь, что jvm и .НЕТ языки когда-нибудь можно будет нацелить прямо на wasm.
Ну это возможно разве что только через ветку развития .net native. )