Открыл вебсайт... готового сетапа, ебстественно, нет. Есть инструкции по сборке, в лучших традициях "нужна туалетная бумага? вот тебе карта леса, пила и топор". И код, естественно, ни хрена не собирается.
Здравствуйте, CoderMonkey, Вы писали:
CM>Открыл вебсайт... готового сетапа, ебстественно, нет. Есть инструкции по сборке, в лучших традициях "нужна туалетная бумага? вот тебе карта леса, пила и топор". И код, естественно, ни хрена не собирается.
Это пока сырая технология. Если не готов варить кашу из топора, тебе там делать нечего, приходи лет через 5. А зачем тебе оно? Сейчас JS даст примерно такую же скорость.
Здравствуйте, vsb, Вы писали:
vsb>Это пока сырая технология.
Должны быть какие-то разумные пределы "сырости". Какой идиот коммитит в мастер код, который даже не компилируется?
vsb>А зачем тебе оно? Сейчас JS даст примерно такую же скорость.
Здравствуйте, CoderMonkey, Вы писали:
CM>Должны быть какие-то разумные пределы "сырости". Какой идиот коммитит в мастер код, который даже не компилируется?
Вот зачем сказки то рассказывать. Специально только что скачал их репозиторий (решил проверить, вдруг они реально что-то с весны поменяли так, что всё сломалось) и собрал с помощью ровно двух простейших команд в консоли.
Здравствуйте, alex_public, Вы писали:
_>Здравствуйте, CoderMonkey, Вы писали:
CM>>Должны быть какие-то разумные пределы "сырости". Какой идиот коммитит в мастер код, который даже не компилируется?
_>Вот зачем сказки то рассказывать. Специально только что скачал их репозиторий (решил проверить, вдруг они реально что-то с весны поменяли так, что всё сломалось) и собрал с помощью ровно двух простейших команд в консоли.
А, как в классике?
Нужно выполнить всего три команды, чтобы поставить Gentoo
cfdisk /dev/hda && mkfs.xfs /dev/hda1 && mount /dev/hda1 /mnt/gentoo/ && chroot /mnt/gentoo/ && env-update && . /etc/profile && emerge sync && cd /usr/portage && scripts/bootsrap.sh && emerge system && emerge vim && vi /etc/fstab && emerge gentoo-dev-sources && cd /usr/src/linux && make menuconfig && make install modules_install && emerge gnome mozilla-firefox openoffice && emerge grub && cp /boot/grub/grub.conf.sample /boot/grub/grub.conf && vi /boot/grub/grub.conf && grub && init 6
это первая
Здравствуйте, Pyromancer, Вы писали:
_>>Вот зачем сказки то рассказывать. Специально только что скачал их репозиторий (решил проверить, вдруг они реально что-то с весны поменяли так, что всё сломалось) и собрал с помощью ровно двух простейших команд в консоли. P>А, как в классике? P>
P>Нужно выполнить всего три команды, чтобы поставить Gentoo
P>cfdisk /dev/hda && mkfs.xfs /dev/hda1 && mount /dev/hda1 /mnt/gentoo/ && chroot /mnt/gentoo/ && env-update && . /etc/profile && emerge sync && cd /usr/portage && scripts/bootsrap.sh && emerge system && emerge vim && vi /etc/fstab && emerge gentoo-dev-sources && cd /usr/src/linux && make menuconfig && make install modules_install && emerge gnome mozilla-firefox openoffice && emerge grub && cp /boot/grub/grub.conf.sample /boot/grub/grub.conf && vi /boot/grub/grub.conf && grub && init 6
P>это первая
Ну при таком подходе и я бы сказал "одна команда". ))) А так тут просто cmake с параметрами и потом make, который и вовсе без параметров.
Здравствуйте, alex_public, Вы писали:
_>Вот зачем сказки то рассказывать. Специально только что скачал их репозиторий (решил проверить, вдруг они реально что-то с весны поменяли так, что всё сломалось) и собрал с помощью ровно двух простейших команд в консоли.
Действительно, зачем сказки рассказывать?
Traceback (most recent call last):
File "C:\Temp\WebAssembly\emsdk\\emsdk", line 2281, in <module>
sys.exit(main())
File "C:\Temp\WebAssembly\emsdk\\emsdk", line 2264, in main
success = tool.install()
File "C:\Temp\WebAssembly\emsdk\\emsdk", line 1295, in install
success = tool.install()
File "C:\Temp\WebAssembly\emsdk\\emsdk", line 1305, in install
success = build_fastcomp_tool(self)
File "C:\Temp\WebAssembly\emsdk\\emsdk", line 810, in build_fastcomp_tool
success = make_build(build_root, build_type, 'x64' if tool.bitness == 64 else 'Win32')
File "C:\Temp\WebAssembly\emsdk\\emsdk", line 701, in make_build
generator_to_use = get_generator_for_sln_file(os.path.join(build_root, solution_name))
File "C:\Users\user\Anaconda3\lib\ntpath.py", line 114, in join
genericpath._check_arg_types('join', path, *paths)
File "C:\Users\user\Anaconda3\lib\genericpath.py", line 151, in _check_arg_types
raise TypeError("Can't mix strings and bytes in path components") from None
TypeError: Can't mix strings and bytes in path components
1. Всё, что касается проекта WebAssembly (которым кстати занята весьма не плохая совместная команда спецов из нескольких корпораций) лежит здесь: https://github.com/WebAssembly. Все остальные репозитории вне этой области — это уже чья-то частная инициатива, а не официальные инструменты WebAssembly. Из всего этого для нашей конкретной задачи (создание wasm модулей) нам необходимо собрать только этот https://github.com/WebAssembly/binaryen инструмент. И кстати на его первой же странице есть очень подробное описание всех вариантов использования.
2. Emscripten — это вообще сторонний инструмент, который позволяет скомпилировать почти произвольный (например вся Qt без проблем работает) C++ код в asm.js код, эффективно работающий в браузере. Т.е. этот проект существовал задолго до рождения WebAssembly и имеет совершенно другое предназначение. Да, они сейчас пытаются (https://github.com/kripken/emscripten/wiki/New-WebAssembly-Backend) подключить внутри себя использование компиляции C++ в WASM, но с сомнительным успехом (см. цифры в моём изначальном тесте).
3. Что же касается описания процесса сборки по твоей ссылке, то он отвечает вообще другому процессу, а именно компиляции C++->asm.js->wasm, который очевидно вообще имеет мало смысла, но появился исторический очень быстро в силу наличия asm2wasm компилятора (который видимо продавили сотрудники Mozilla, входящие в команду WebAssembly) в комплекте официальных инструментов WebAssembly. Понятно почему подобное описание когда-то появилось на этом сайте (это видимо был самый первый способ собрать хоть что-то), но непонятно почему оно до сих пор там обитает (когда LLVM уже давно умеет компилировать нужный для s2wasm код).
Это уже ближе к делу
_>2. Emscripten — это вообще сторонний инструмент, который позволяет скомпилировать почти произвольный (например вся Qt без проблем работает) C++ код в asm.js код, эффективно работающий в браузере. Т.е. этот проект существовал задолго до рождения WebAssembly и имеет совершенно другое предназначение. Да, они сейчас пытаются (https://github.com/kripken/emscripten/wiki/New-WebAssembly-Backend) подключить внутри себя использование компиляции C++ в WASM, но с сомнительным успехом (см. цифры в моём изначальном тесте).
Но скомпилировать из C без него нельзя?
_>3. Что же касается описания процесса сборки по твоей ссылке, то он отвечает вообще другому процессу, а именно компиляции C++->asm.js->wasm, который очевидно вообще имеет мало смысла, но появился исторический очень быстро в силу наличия asm2wasm компилятора (который видимо продавили сотрудники Mozilla, входящие в команду WebAssembly) в комплекте официальных инструментов WebAssembly. Понятно почему подобное описание когда-то появилось на этом сайте (это видимо был самый первый способ собрать хоть что-то), но непонятно почему оно до сих пор там обитает (когда LLVM уже давно умеет компилировать нужный для s2wasm код).
Не "по моей ссылке", а официальный гайд на официальном сайте.
Здравствуйте, alex_public, Вы писали:
_>1. https://github.com/WebAssembly/binaryen инструмент. И кстати на его первой же странице есть очень подробное описание всех вариантов использования.
Впрочем, он тоже не собирается. Сначала ему подавай cmake и make (это на винде то), а потом последний выдает "make.exe": *** No targets specified and no makefile found. Stop."
Прелестно, просто прелестно.
Здравствуйте, CoderMonkey, Вы писали:
_>>2. Emscripten — это вообще сторонний инструмент, который позволяет скомпилировать почти произвольный (например вся Qt без проблем работает) C++ код в asm.js код, эффективно работающий в браузере. Т.е. этот проект существовал задолго до рождения WebAssembly и имеет совершенно другое предназначение. Да, они сейчас пытаются (https://github.com/kripken/emscripten/wiki/New-WebAssembly-Backend) подключить внутри себя использование компиляции C++ в WASM, но с сомнительным успехом (см. цифры в моём изначальном тесте). CM>Но скомпилировать из C без него нельзя?
Можно конечно. Для этого достаточно просто LLVM и тех самых инструментов от авторов WebAssembly. Вообще что-то у нас на форуме сплошные не читатели пошли в последнее время. Например в этом твоём случае тебе было бы достаточно всего лишь пролистать на вторую страничку темки, ссылку на которую я тебе дал в самом начале дискуссии, и ты увидел бы это http://rsdn.org/forum/flame.comp/6731501.1
сообщение, в котором всё очень подробно разжёвано.
Т.е. даже стандартной библиотеки язык не будет. Для моего простейшего теста это вполне приемлемо, но для реальной работы очевидно не подходит. И тут на помощь приходит проект Emscripten
сообщение, в котором всё очень подробно разжёвано. CM>
CM>Т.е. даже стандартной библиотеки язык не будет. Для моего простейшего теста это вполне приемлемо, но для реальной работы очевидно не подходит. И тут на помощь приходит проект Emscripten
CM>Который не собирается
Вообще то собирается — у меня же он стоит и работает.
Но для своих простеньких тестов wasm я его не использовал. И для серьёзных проектов под WASM тоже не стал бы — там лучше уж потратить время на создание своей (ну естественно путём копирования соответствующих свободных и подстройки их под себя) стандартной библиотеки, а не брать готовый вариант от Emscripten (который заточен на взаимодействие с соответствующими js скриптами от Emscripten, которые тогда обязательно вставлять на страницу).
Emscripten имеет смысл использовать, если надо по быстрому портировать некий не тривиальный (использующий библиотеки) код, без особых претензий на эффективность.
Здравствуйте, CoderMonkey, Вы писали:
CM>Открыл вебсайт... готового сетапа, ебстественно, нет. Есть инструкции по сборке, в лучших традициях "нужна туалетная бумага? вот тебе карта леса, пила и топор". И код, естественно, ни хрена не собирается.
Аналогично в asm.js, lljs и тд Как только дело приходит к перформансу, все ресурсы мозга тратятся только на это и ни на что больше не остаётся.
Здравствуйте, alex_public, Вы писали:
CM>>Должны быть какие-то разумные пределы "сырости". Какой идиот коммитит в мастер код, который даже не компилируется?
_>Вот зачем сказки то рассказывать. Специально только что скачал их репозиторий (решил проверить, вдруг они реально что-то с весны поменяли так, что всё сломалось) и собрал с помощью ровно двух простейших команд в консоли.
Ну вот, снова "у а меня всё работает". Похоже, ты всегда лучше знаешь, что же вторая сторона видит