аморальное programming
к вопросу про WASM из
#3053163
сабж из "low-level fast java" скатывается в гов... в ентерпрайз.
короче, по факту есть 3 конпелятора
1) wasm -> ir -> LLVM — самый быстрый код выходит
2) wasm -> cranelift — тормознее раза в полтора-два
3) wasm -> говно и палки -> даже не запускал
проекты:
wasmer — рантайм который на лету JIT конпелирует функции чем бог пошлет.
wasmedge — рантайм который конпелит ВСË, потом выполняет. Конпелирует через файл когда попросишь, на выходе получается бинарник (wasm, в котором есть секция с оригинальным кодом, и проприетарная секция с нативным кодом) который оно умеет грузить как оригинальный, но видит что там уже AOT, и юзает его.
wasmtime — ентерпрайзное
может что-то еще есть — не знаю
Под андроедом ситуация:
Все унылые, говорят, что новые андроеды анально огораживаются на манер яббла, и генерить на лету выполняемый код (JIT) это не кошерно, даже шаред либу загрузить из не APK некошерно, и даже против Google Play Policy, но в Apple это было с самого начала, а гугл только сейчас пришел.
Все говорят, что мы типа можем андроед, по факту, видать раньше могли, а щас унылые, оказывается:
wasmedge умеет только интерпретировать, на устройстве понятное дело нативный конпелятор в AOT гонять отказывается, а если подсунуть отконпелированный AOT файл, то выполнять отказывается, интерпретирует оригинальную секцию, то есть западло даже в обход гугло-полиси запустить код. Очень сильно не копал, может в коде закомментировано.
wasmer — у него вылазит ILLEGAL INSTRUCTION на устройстве когда доходит дело до execution (cranelift). Если зафорсить генерить на левую платформу, говорит "чувак не гони, тут arm64", стало быть не совсем тупой, но и не особо прокачан.
По коммунити: у обоих есть дискорды, практически мертвые. Может быть активность есть в maillist, но не смотрел. Заходил на слак к cranelift, там ентерпрайз, мёртвое, трафика не видно.
По документации: в текстовой документации про андроед практически не упоминается кроме бахвальства, а по десктопу у меня вроде вопросов нет. Документация кода на 3-.
По отладке под большим братом: если собрать rust с отладкой, то CLion ходит по коду rust и ставит точки останова и даже смотрит переменные.
Вывод: писать плагины под андроедский софт на wasm на текущий момент запрещено уже политически, только на скриптовых езыках. На гейфоны мы и не рассчитывали, но андроед огорчил. Из-за этого соответствующий софт сырой, а разрабы похоже в унынии и не копают в этом направлении.
Протрахался несколько дней и так и эдак.