LinuxForum.Fans
Тема

WebAssembly с чего начать и как обойтись без git

Автор: ValentinK 5 сообщений 1146 просмотров
09.09.2019 19:21 #432867

Хочу сделать цветные часы на свою страницу на WebAssembly.
Сейчас часы работают на flash.
Искал примеры графики на C для WebAssembly.
Не могу найти опубликованный код, кроме как в ГитХабе.
Хочется иметь код локально у себя, а не где нибуть в ГитХабе.
Ещё не совсем уверен, буду ли за это дело браться.
Кто-нибудь на форуме уже писал под WebAssembly?
Да, пошёл гуглить под это дело книги.

09.09.2019 20:33 #432870

Для редактирования кода дома GIT не нужен. :)
Вы всегда можете клонировать код на локальный диск.

WebAssembly это как я понял компилятор из C в JS. Спасибо за расширение кругозора.
Тут кратенько описан основное предназначение: https://tproger.ru/translations/introduction-to-webassembly/

А тут документация:
https://developer.mozilla.org/ru/docs/WebAssembly
https://webassembly.org/docs/high-level-goals/

Emscripten — это набор инструментов, который уже используется для компиляции C/C++ в asm.js.
С Emscripten вам будет легче использовать ранее упомянутый Binaryen и интегрировать его со своим собственным набором инструментов.
https://emscripten.org/index.html

Видеоредактор:
https://d2jta7o2zej4pf.cloudfront.net/
Тут несколько ссылок на примеры работ на данном языке:
https://hackernoon.com/games-build-on-webassembly-3679b3962a19

10.09.2019 09:31 #432872

"mozgfx" написал:
WebAssembly это как я понял компилятор из C в JS. Спасибо за расширение кругозора.
не совсем так, оно компилируется не в js, а в байткод, т.е некая "предкомпиляция", которую по этой задумке проходит и js.
Добавлено: Sep 10 2019 9:31:25 am

"ValentinK" написал:
Хочу сделать цветные часы на свою страницу на WebAssembly.
Сейчас часы работают на flash.
в чём соль? Сделать именно на wasm или уйти от флеша и сделать по человечески?

"ValentinK" написал:
Хочется иметь код локально у себя, а не где нибуть в ГитХабе.
в чём проблема?
[console]mkdir my_project && cd my_project
git clone [GITHUB_LINK][/console]
Итого оно будет лежать локально в каталоге my_project
11.09.2019 14:28 #432879
DiabloPC написал:

[console]mkdir my_project && cd my_project
git clone [GITHUB_LINK][/console]
Итого оно будет лежать локально в каталоге my_project

Благодарен за информацию!
Добавлено: 10.09.2019 21:54:20

Нашёл такой ресурс https://proglib.io/p/learn-webasm/
Компилирую Emscripten. Компилируется медленно, но прогресс идёт.

Добавлено: 11.09.2019 08:10:00

Всё установилось, но пример не компилируется. Пляшу с бубном. Вручную прописываю PATH.

Добавлено: 11.09.2019 09:58:21

Компилятор запускается, но выдаёт ошибку

[console][valentin@localhost wasm_test]$ emcc hello.c -s WASM=1 -o hello.html
shared:CRITICAL: fastcomp in use, but LLVM has not been built with the JavaScript backend as a target, llc reports:
===========================================================================
(no targets could be identified: [Errno 13] Permission denied)
===========================================================================
shared:ERROR: failing sanity checks due to previous llvm failure
[/console]

Добавлено: 11.09.2019 10:12:11

Операционку менять не хочу, но проблема такая

[console][valentin@localhost wasm_test]$ emcc -v
emcc (Emscripten gcc/clang-like replacement + linker emulating GNU ld) 1.38.43
Traceback (most recent call last):
File "/home/valentin/emsdk/emscripten/incoming/emcc.py", line 3560, in <module>
sys.exit(run(sys.argv))
File "/home/valentin/emsdk/emscripten/incoming/emcc.py", line 518, in run
code = run_process([shared.CLANG_CC, '-v'], check=False).returncode
File "/home/valentin/emsdk/emscripten/incoming/tools/shared.py", line 177, in run_process
proc = Popen(cmd, *args, **kw)
File "/usr/lib64/python2.7/subprocess.py", line 394, in __init__
errread, errwrite)
File "/usr/lib64/python2.7/subprocess.py", line 1047, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory
[/console]

Добавлено: 11.09.2019 10:44:03

Для Fedora 30 нашёл пакеты
https://fedora.pkgs.org/30/fedora-updates-x86_64/wabt-1.0.10-2.fc30.x86_64.rpm.html
А у меня Fedora 28

Добавлено: 11.09.2019 14:28:46

Делаю апгрейд системы до 30

11.09.2019 16:57 #432885

LLVM 3.5 не поддерживается вроде. потому как Emscripten использует собственное ответвление LLVM.
Документация по установке тут:
https://emscripten.org/docs/building_from_source/building_fastcomp_manually_from_source.html

Так же основные системные требования описаны тут:
https://emscripten.org/docs/building_from_source/toolchain_what_is_needed.html#what-you-ll-need

Войдите или зарегистрируйтесь, чтобы ответить.