Pull to refresh

Comments 35

В результате, при отладке wasm-кода, полученного, например, из C++, можно будет видеть исходный код, устанавливать в нём точки останова. По крайней мере, такова цель внедрения карт кода в wasm.

У нас отладочный бинарник занимает в районе 1Gb, боюсь да же представить, как это будет в браузере.

Ручное управление памятью в загружаемом по сети байткоде? По моему это сильно пахнет дырами в безопасности. Как они собираются обеспечивать защиту от обращений в освобожденную память или двойного освобождения?

Точно так же как и ОС. Помечать блоки освобожденными/незанятыми и кидать ошибку.

Большинство ОС реализует страничную виртуальную память. То есть у каждого процесса свое адресное пространство. Для браузера это будет означать, что выделенное ОЗУ для памяти освобождаемой программой из одной вкладки не стенет доступна программам в других вкладках, пока не наберется целая страница. Боюсь это выльится в заметно большие расходы памяти, чем с сегодняшним js.

Да. А тут у нас linear memory. Выделили вектор на mem_size и в нем живем.


Кроме того, функции используют не указатели, а целочисленные смещения.
Значит надежды скоуойно жить с большим числом открытых вкладок нет. А жаль.
По моему этот подход был бы достаточно хорош для мобильных приложений. А для веба, думаю, лучше было бы сделать сборку мусора, а операции явного освобождения игнорировать или использовать для оптимизации GC.
Одна из целей то
Specify and implement incrementally:

a Minimum Viable Product (MVP) for the standard with roughly the same functionality as asm.js, primarily aimed at C/C++;
additional features :unicorn:, initially focused on key features like threads, zero cost exceptions, and SIMD, follow by additional features prioritized by feedback and experience, including support for languages other than C/C++.


Зачем для этого сборщик мусора, непонятно.
WA имеет доступ к API браузера (web gl например) или манипуляции DOM? что то я не встречал примеров
Например, если речь идёт о работе с DOM или об использовании API платформы, на которой выполняется код, у JavaScript пока нет альтернативы, так как эти API доступны из JS-программ напрямую, без добавления дополнительных уровней абстракции.

Это был риторический вопрос, потому что нет ни абстракций ни готовых собранных модулей — ничего кроме "калькулятора"

Думаю, что за WebAssembly будущее. При всём уважении, JS слишком толстая 'прокладка'. Я вообще 'за' максимально нативный код.
Вот хочется осудить интересную мысль со всеми, кто считает что за WebAssembly будущее: для меня, вот, всегда было очевидным, что Apple, фактически, убила Flash не из-за того что он «дырявый» или «жрущий» ресурсы и батарейку (не вижу проблем это исправить, если технология востребована), а из-за того, что на Flash, в то время, можно было реализовывать в Web различные сервисы, за которые можно было бы брать деньги, да еще и мимо AppStore. Это могли быть различные игры, музыкальные сервисы, видео-стриминговые сервисы и т.д. На волне хайпа вокруг самого популярного, на тот момент, устройства они смогли навязать Web индустрии свое мнение и убедили отказаться от использования Flash, так на IOS он, тупо, не поддерживался. Подчеркиваю, это все лично мое мнение, я не настраиваю, но глядя на то, как развивается и сегментируется мультимедия на HTML5, невольно приходишь именно к такому выводу.
В связи с чем, у меня, лично, есть опасения, что по мере того как данная технология будет все больше и больше развиваться и становится более зрелой и самостоятельной, ее может постигнуть таже незавидная учесть, что и мультимедиа в HTML5 — фрагментация, урезание API и т.д.
Кто что думает на сей счет, очень интересно мнение сочувствующих?
Так говорите, как будто flash нормально на Android поддерживался.
Точно не помню, но Android, именно тогда, был в зачаточном состоянии и не мог задавать тренды. Вообще, смартфоны тогда только начинали активно входить в Web. Сейчас уже мало кто об этом помнит.
Да и позже с ним было не просто, т.к. Adobe забил на Flash, и на поддержку Flash под Android. WASM уже поддерживается на iOS и какое может быть урезание непонятно.
UFO just landed and posted this here
Спасибо за ваше мнение. Я вполне допускаю что у меня паранойя, но, что тогда мешает, избавившись от ненавистной и мешающей всем технологии, наконец-то, договориться и реализовать в HTML5, все как нужно?
UFO just landed and posted this here
Конечно, рассуждать в общем — тяжело, но вот про то, чем я занимаюсь непосредственно:
Люди договариваются о стандартах, браузеры постепенно внедряют.
И «лепят» несколько протоколов для показа видео через Web, похожие друг на друга как близнецы братья и ничем, принципиально, не отличающихся друг от друга.
Но это долгий и сложный процесс, и тут много подводных камней, от вопросов лицензий на кодеки (дорого)
По кодекам они никогда не договорятся, так как V 8-9 бесплатны, а H264 поддерживается аппаратно на мобилках. Вся проблема в деньгах. А сейчас пытаются пропихнуть H265, который нужен, чисто, для смены поколений оборудования и программного обеспечения — опять же большие деньги.
(браузеры не хотят внедрять заведомо тормозные или энергоёмкие вещи)
И поэтому используют javascript, DOM, css и т.д. Очень не убедительно получается. Если бы они реально хотели бы скорости и экономии, то использовали бы WA и API браузера — напрямую. Ну ведь честно, все эти вещи жрут память, такты, ресурсы — по сравнению с нативным кодом скомпилированным в WA, результат будет прямо противоположным.
UFO just landed and posted this here
А причем тут Flash ?! На всякий случай, мне не очень нравился Flash и я не большой фанат JavaScript. Пользуемся тем, что есть. Но, я болею за WA.
Касательно ваших вопросов: так в том-то и дело, что в HTML5 все тоже самое, но вот только во Flash, хотя бы, все было унифицировано и одинаково на всех платформах где он поддерживался.
UFO just landed and posted this here
Это не нытье. Наоборот, насчет WA я оптимист, правда очень сдержанный)

WA всего лишь дополнение к JS а не его замена, посмотрите пример использования, внимание его загружают с помощью JS. WA не имеет доступа к API браузера, да в принципе доступа к чему либо извне, этакий сферический конь в абстрактном вакуме

Хоть и сферический, но игры на Unity идут на нем.

Не хочу вас расстраивать, но Unity помещает в WA только математику, все остальное управление игрой происходит в JS от отрисовки до управления игровыми событиями. Так что это только доказывает, что это конь в вакуме

Разве? Что то на демке не вижу

Для такого нужно уметь нажать F12 в хроме


Скрытый текст

А это код рендера?)
Неа) Это проброс «не хватающих» функций, таких как работа с webgl. Рендер и поддержка C# там на C++.
WA всего лишь дополнение к JS а не его замена, посмотрите пример использования, внимание его загружают с помощью JS. WA не имеет доступа к API браузера, да в принципе доступа к чему либо извне, этакий сферический конь в абстрактном вакуме

т.е. вы считаете что пробросив JS функцию в контекст WA вы изменили суть моего утверждения? =) GL.createContext это обертка создания контекста web gl на JS. т.е. вызывая функцию внутри другого контекста вы все равно вызываете JS функцию и тем самым инициализируете редерер. Методы отрисовки опять же реализованы на JS, события тоже на JS. Сборка по прежнему вызывает JS функции, которые работают так же как если бы их вызывали из JS, но не забывайте что при смене контекста теряется производительность. Так что это конь в вакуме да еще и без своих ног =)

Господи, я сначала думал, что за карты кода, а оказывается речь идёт о source map. Не надо всё переводить подряд, иногда термины нужно оставлять в их исходном варианте, ну или в крайнем случае писать исходный вариант в скобках.
Спасибо за комментарий, исправили.
Sign up to leave a comment.