Size: a a a

WebAssembly — русскоговорящее сообщество

2020 May 10

lp

lil pep in WebAssembly — русскоговорящее сообщество
нужно что-то будет пилить
источник

lp

lil pep in WebAssembly — русскоговорящее сообщество
как вариант, можно попробовать потыкать флаги LLD. Насколько я помню, там есть варианты для создания PIC/relocatable бинариков
источник

lp

lil pep in WebAssembly — русскоговорящее сообщество
(т.е. таких которым пофиг по какому адресу они будут загружены)
источник

lp

lil pep in WebAssembly — русскоговорящее сообщество
вместе с этим LLD скорее всего создаст секции которые укажут на размер data секции (не помню название). Это пригодится когда ты будешь выбирать начальный адрес для второго (или N-ного) модуля
источник

lp

lil pep in WebAssembly — русскоговорящее сообщество
потом стек. Честно говоря не знаю что с ним делать. Поскольку mutable-globals призмелился, мб, LLD научился stack-pointer внешним делать? Мб что-то вроде --import-stack-pointer или что-то такое. Export тоже может сгодиться
источник

lp

lil pep in WebAssembly — русскоговорящее сообщество
(мб можно --export __stack_pointer (или как он там называется?))
источник

lp

lil pep in WebAssembly — русскоговорящее сообщество
ну вообщем не так все просто. А напомни зачем тебе нужна такая конструкция?
источник

E🤙

Evgεny 🤙 in WebAssembly — русскоговорящее сообщество
Симс леджит, спасибо
источник

E🤙

Evgεny 🤙 in WebAssembly — русскоговорящее сообщество
lil pep
ну вообщем не так все просто. А напомни зачем тебе нужна такая конструкция?
Хотел писать штуку расширяемую модулями, модули бы общались по чему-то типо общей шины и шареная память нужна для того, чтобы на жирноту обмениваться поинтерами, а не копировать, в общем-то и все
источник

E🤙

Evgεny 🤙 in WebAssembly — русскоговорящее сообщество
lil pep
то что ты хочешь сделать - похоже на динамическую линковку, и такое, увы не поддерживается из коробки
так и есть, да
источник

lp

lil pep in WebAssembly — русскоговорящее сообщество
Evgεny 🤙
Хотел писать штуку расширяемую модулями, модули бы общались по чему-то типо общей шины и шареная память нужна для того, чтобы на жирноту обмениваться поинтерами, а не копировать, в общем-то и все
мда, ясно
источник

lp

lil pep in WebAssembly — русскоговорящее сообщество
может им и действительно нужно быть в одной памяти
источник

lp

lil pep in WebAssembly — русскоговорящее сообщество
с другой стороны, нужно будет понимать что модули могут напартачить друг другу
источник

MV

Mikhail Voronov in WebAssembly — русскоговорящее сообщество
помимо стека ещё проблема и в куче будет, если менеджер кучи вкомпилирован в каждый модуль. Можно сделать malloc/free/... импортируемыми и загрузить третий модуль, который будет отвечать за управление кучей и экспортировать malloc/free/...
источник

Г

Георгий in WebAssembly — русскоговорящее сообщество
можно всегда разделить, общая и внутренняя память
источник

Г

Георгий in WebAssembly — русскоговорящее сообщество
для модуля
источник

lp

lil pep in WebAssembly — русскоговорящее сообщество
Mikhail Voronov
помимо стека ещё проблема и в куче будет, если менеджер кучи вкомпилирован в каждый модуль. Можно сделать malloc/free/... импортируемыми и загрузить третий модуль, который будет отвечать за управление кучей и экспортировать malloc/free/...
да кстати хороший поинт
источник

MV

Mikhail Voronov in WebAssembly — русскоговорящее сообщество
Георгий
можно всегда разделить, общая и внутренняя память
это можно сделать в wasmtime?
источник

lp

lil pep in WebAssembly — русскоговорящее сообщество
Георгий
можно всегда разделить, общая и внутренняя память
а вот и нет) покрайней мере без поддержки
источник

lp

lil pep in WebAssembly — русскоговорящее сообщество
ну вот да
источник