The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Wasmer 1.0, инструментарий для платформонезависимых приложений на базе WebAssembly, opennews (?), 06-Янв-21, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


107. "Wasmer 1.0, инструментарий для платформонезависимых приложен..."  –1 +/
Сообщение от Неважно (?), 07-Янв-21, 04:59 
Туфта это все пардон за грубость, но уже был NaCL(тип машинный код) и PNaCL(тип байткод)... оба тормозили еще 8 лет назад
Ответить | Правка | К родителю #34 | Наверх | Cообщить модератору

136. "Wasmer 1.0, инструментарий для платформонезависимых приложен..."  –1 +/
Сообщение от Аноним (136), 08-Янв-21, 03:17 
Вы видать что-то не так поняли или прочитали по диагонали-через-слово. То, что Вы перечислили, было песочницами в браузере. Здесь браузеров нет. Этот рантайм "без внешних зависимостей". Тут больше подошло бы сравнение с JDK. Пускалка прямо в операционках, в песочнице-контейнере, программок на вебассембли. Но еще позволяется не только вебассемблерный биткод запускать, но и используя дополнительный инструментарий компилировать в машинный код, который также каким-то макаром будет выполняться в урезанном sandbox-окружении. Пример Вы привели вообще из какой-то другой оперы.
Ответить | Правка | Наверх | Cообщить модератору

148. "Wasmer 1.0, инструментарий для платформонезависимых приложен..."  +/
Сообщение от Lex (??), 09-Янв-21, 15:03 
> Вы видать что-то не так поняли или прочитали по диагонали-через-слово. То, что
> Вы перечислили, было песочницами в браузере. Здесь браузеров нет. Этот рантайм
> "без внешних зависимостей". Тут больше подошло бы сравнение с JDK. Пускалка
> прямо в операционках, в песочнице-контейнере, программок на вебассембли. Но еще позволяется
> не только вебассемблерный биткод запускать, но и используя дополнительный инструментарий
> компилировать в машинный код, который также каким-то макаром будет выполняться в
> урезанном sandbox-окружении. Пример Вы привели вообще из какой-то другой оперы.

Проблема там была не в песочницах и тормозах, а в крайне серьезной( фундаментальной ) дырявости.
Васм-код не компилится в машинный иначе как посредством JITа, сам васм-код является конечным этапом компиляции под веб( любой ЯП -(компилер с llvm)-> LLVM IR -(emscripten, преобразует IR в WASM)-> WASM )

Другое дело, что LLVM IR-код очень даже полноценно компилится, поскольку является продуктом промежуточного этапа компиляции и код этот получается от практически чего угодно, к чему прикручен компилятор на базе LLVM.

Так что мешает непосредственно исполнять LLVM-байткод вместо преобразования его к васм-коду, если речь о запуске вне браузера ?) ( васма, который именно конечный этап компиляции не_жс_кода именно под браузеры )

И кстати, на допиливание песочниц для жс у контор ушло очень много времени и сил, настолько много, что даже поддержку васма решили реализовывать на базе жс-движков чтобы по новой не городить все те велосипеды и не ходить по тем же граблям многие годы.

Неужто господа в этот раз и конкретно для этого проекта сами запилили полноценный васм-движок с песочницами и проч, не основанный на опенсорсных жс-движках( вроде сафариевого или хромого ) которые в т.ч поддерживали васм ?

Говоря об "отсутствии браузера".. так вам ничто не мешает взять какой-нибудь JSCore и запилить с ним свою прогу на жс, работающую безо всяких браузеров( собсно, тот же Reeact-Native примерно так и организован - код, исполняемый на "безголовом" движке, управляет нативной частью в т.ч поведением интерфейса ).

Ответить | Правка | Наверх | Cообщить модератору

150. "Wasmer 1.0, инструментарий для платформонезависимых приложен..."  +/
Сообщение от Аноним (136), 10-Янв-21, 01:33 
> Васм-код не компилится в машинный иначе как посредством JITа, сам васм-код является конечным этапом компиляции под веб( любой ЯП -(компилер с llvm)-> LLVM IR -(emscripten, преобразует IR в WASM)-> WASM )

Да прочти ты уже новость полностью! Вот тебе кусок, какое слово непонятно?
"
Из особенностей Wasmer 1.0 называется:
...
    Native Object Engine, позволяющий генерировать для WebAssembly-модуля машинный код для заданных систем ("wasmer compile --native" для генерации предкомпилированных объектных файлов .so, .dylib и .dll). Для запуска предкомпилированного кода требуется минимальный runtime, но сохраняются все возможности sandbox-изоляции.
"

Ответить | Правка | Наверх | Cообщить модератору

154. "Wasmer 1.0, инструментарий для платформонезависимых приложен..."  –1 +/
Сообщение от Lex (??), 10-Янв-21, 14:29 
> Да прочти ты уже новость полностью! Вот тебе кусок, какое слово непонятно?
> "
> Из особенностей Wasmer 1.0 называется:
> ...
>     Native Object Engine, позволяющий генерировать для WebAssembly-модуля машинный
> код для заданных систем ("wasmer compile --native" для генерации предкомпилированных объектных
> файлов .so, .dylib и .dll). Для запуска предкомпилированного кода требуется минимальный
> runtime, но сохраняются все возможности sandbox-изоляции.
> "

А теперь - сам еще раз прочти( в т.ч в оригинале на медиуме ) и ответь на, вроде бы, простые вопросы:

"Нативный" код генерируется из васм-кода или при изначальной сборке проекта из нормальных исходников ?

Сами "нативные" модули - это именно полностью скомпиленный под конкретную архитектуру проект или однофайловый модуль/бандл, состоящий из скомпиленного под архитектуру урезанного рантайма для запуска васм-кода и васм-байткода проекта, который посредством того рантайма и запускается ?

Самое забавное, что, ни в статьях васмера, ни в доках, ответов на эти вроде бы простейшие вопросы НЕТ.
Даже сам факт генерации т.н "нативных объектов" в доках упоминается лишь мельком - одна строка описания аргументов к команде "wasmer compile":
"--native - Use Native Engine"

Ответить | Правка | Наверх | Cообщить модератору

155. "Wasmer 1.0, инструментарий для платформонезависимых приложен..."  +/
Сообщение от Аноним (136), 10-Янв-21, 19:17 
> А теперь - сам еще раз прочти( в т.ч в оригинале на медиуме )

Прочел сразу, все там понятно написано.

> "Нативный" код генерируется из васм-кода или при изначальной сборке проекта из нормальных исходников ?

Не приписывай мне твоих рассуждений за меня, никто не утверждал, что нативные файлы из исходников получаются. В новости ясно сказано (и в оригинальной и в переведенной), что они генерируются из васм-файлов. А вот васм-файлы из исходников. Я опровергал другое твое утверждение, что васм-код - это "финальная" стадия работы васмера. Нет, не финальная. Они там писали, что берут васм-файл и из него делают нативный предкомпилированный объектник (so,dll...), загнанный в ограничения песочницы.

>Сами "нативные" модули - это именно полностью скомпиленный под конкретную архитектуру проект или однофайловый модуль/бандл, состоящий из скомпиленного под архитектуру урезанного рантайма для запуска васм-кода и васм-байткода проекта, который посредством того рантайма и запускается ?

Не под не просто "под конкретную архитектуру", а еще и с поддержкой урезанного рантайма/песочницы. И пишут тебе ясно что это "precompiled native objects". И дальше черным по белому "Eliminated compilation time allows direct execution of the artifact at blazing-fast startup times.". Там больше ничего не компилируется, никаким JIT-ом.

Тебе вообще в новости однозначно написано:
"
Wasmer 1.0 supports the following compiler engines:

* JIT engine: it pushes generated code directly into memory.
* Native engine: it generates native code that can be loaded as a shared object. As a bonus, native engine shared objects and modules are incredibly performant and startup in just a few microseconds!
"
Прямо и конкретно написано. Иначе бы во втором случае это был бы тоже "JIT engine", не отличающийся от первого пункта.

Ответить | Правка | Наверх | Cообщить модератору

156. "Wasmer 1.0, инструментарий для платформонезависимых приложен..."  +/
Сообщение от Lex (??), 11-Янв-21, 18:26 
Так я и спрашиваю - нативный код генерируется из исходников как продукт LLVM-компилятора или из "пережеванного" для интерпретатора васм-кода( поскольку второй вариант - на грани абсурда ) ?

Где КОНКРЕТНО сказано, что компиляется в нативный код ИМЕННО васм-код, а не LLVM IR ?
Покажи то место хоть в новости хоть в доках сабжа, где это конкретно говорится, а не просто мельком "ну эээ и еще мы можем генерировать 'нативные' модули[неведомо из чего]"

Просто это( компиляция из васм-кода ) реально на грани идиотизма, поскольку предыдущий шаг генерации того васм-кода из исходников - это LLVM IR, который уже многие годы отлично оптимизируется под конкретную архитектуру и на его основе существующими инструментами того же LLVM генерируется код нативный, тогда как васмОвый - в принципе не предназначен для дальнейшей "компиляции" в классическом понимании этого слова.

Да, там можно подключить джит, можно - генерацию 'нативных объектов', а можно - на все это положить и исполнять код в интерпретаторе без джита, что сабж изначально и предлагает

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру