News for hackers. Stuff that matters.
Re:WebAssembly Micro Runtime by kbumsik on Friday May 10, 2019 @10:22AM (#19877951)
I'm always interested in running WASM in microcontrollers, but AFAIK there is a severe limitation of WASM spec: the minimum size of heap (WASM memory page) is 64KiB, which is too big for many of microcontrollers. Otherwise a WASM module must run in stack-only mode.

Unless this problem is resolved I don't think WASM can be adopt widely in the world of microcontrollers.

Re:WebAssembly Micro Runtime by sound_and_form on Friday May 10, 2019 @06:20PM (#19882813)
I'm working on a Wasm interpreter. Yes, Wasm ideally needs a smaller page size for embedded applications. But, the 64kB page size is more of an interoperability specification. If you own the environment and you're already doing bounds checking on memory accesses, you can treat the memory size as virtual and dynamically allocate only what is used.
Re:WebAssembly Micro Runtime by kbumsik on Friday May 10, 2019 @10:21PM (#19884113)
> But, the 64kB page size is more of an interoperability specification.

Could you tell me a bit more on it? Does the particular number 64kB have something to do with?

Re:WebAssembly Micro Runtime by BubRoss on Friday May 10, 2019 @10:38AM (#19878145)
Why is it a problem to not have the wasm heap with less than 64KB of memory? At that level you could deal with all your memory explicitly, by creating fixed size arrays.
Re:WebAssembly Micro Runtime by kbumsik on Friday May 10, 2019 @12:26PM (#19879320)
We could and it is always better to have fixed sized arrays, but having no choices is totally different situation than doing something preferable. It will make your life much harder in some operations such as string manipulation.

Having minimum 64KB of WASM memory is still a huge cost for mainstream microcontrollers. Most of dynamic memory stuff in embedded system requires at most ~10KB (and often less than 1KB) of memory. We are just throwing away the rest of the precious memory.

Re:WebAssembly Micro Runtime by jononor on Friday May 10, 2019 @01:10PM (#19879874)
On a microcontroller one probably controls both the runtime and the application. Is there something that prevents configuring the run-time to have only 1kB memory (stack and heap)?