Comments 7
Спасибо, для меня это одна из лучших статей за месяц. Я сначала подумал что перевод.
Решается в wasm64, который почти готов на момент написания статьи.
лол, он уже лет десять в состоянии "почти готов"
Однако же WASI libc для него нет. А у нас wasm64 libc уже есть. В playground для неё можно собирать приложения, как и для остального.
P.S. Почти готов он был у нас, а не вообще.
WASI это вообще интерфейс для привнесения "эффектов" в конкретном wasm рантайме - работа с файловой системой, сетью, каким-нибудь окружением и т.п. Но именно к wasm64 это отношения непосредственно не имеет.
Ну и наверное стоит уточнить что вы называете wasm64. Я говорил о 64 битном расширении wasm, где адресация памяти тоже длинная.
Почти готов он был у нас, а не вообще.
С этим можно поздравить, наверное.
Да, я понимаю, что вы о самом стандарте. Проблема в том, что для человека, который пишет код, сам стандарт мало что даёт, его должен кто-то реализовать в системной библиотеке. У нас изначально была мысль просто взять wasi libc, но рыжая часть мозга победила. Как показала практика - не зря, ибо зрелая альтернатива для wasm64 это только emscripten, который к нам не встроить.
Ключевой момент, что в нашем случае, для полноценных полновесных приложений, рантайм=libc, и никак иначе, не соберутся, не запустятся.
А можно поподробнее про самосборный apple sdk без лицензии? Если я у себя такой захочу применить где-то отдельно, как это можно сделать?
Все скрипты сборки и заместители у нас вот здесь. А можно просто взять наш target aarch64-apple-macosx+open, это уже собранный вариант sysroot. Лицензия MIT, то есть, можете использовать как угодно.
Если интересно, как его такой прям с нуля собирать, это тема для отдельной статьи. Если коротко, вот здесь список открытых репозиториев Apple, нужно сопоставить теги с теми, которые опубликованы у них на сайте для SDK, и из них выдернуть нужное. Плюс вам понадобится mig компилятор для Linux, я брал из AUR, можно собрать руками.
Как собирать кроссплатформенные приложения. На C++. В браузере