Difference between revisions of "WebAssembly/Roadmap"
From Lazarus wiki
Jump to navigationJump to searchm |
m (→Short Term) |
||
Line 1: | Line 1: | ||
− | ==Short Term== | + | ==Short-Term== |
+ | These steps are critical for completion in order to have wasm a full scope CPU target for FPC compiler | ||
{|class="wikitable" style="width:100%" | {|class="wikitable" style="width:100%" | ||
!Feature | !Feature | ||
Line 45: | Line 46: | ||
| | | | ||
|} | |} | ||
+ | |||
==Long-Term== | ==Long-Term== | ||
{|class="wikitable" style="width:100%" | {|class="wikitable" style="width:100%" |
Revision as of 15:18, 17 October 2019
Short-Term
These steps are critical for completion in order to have wasm a full scope CPU target for FPC compiler
Feature | Status | Description |
---|---|---|
Assembly (textual wasm) | working | Pick an assembler utility that's sequence instruction (FPC) friendly
FPC should produce a textual assembly file |
Basic function calls and local variables | working | Implement direct function calls, with passing basic parameters (that don't require any memory. I.e. int and floats) |
Verify float-point values | As the float points are being converted from the textual format. it's necessary to make sure that the proper values are generated | |
Global variables | working | Implement symbol reference to global variables (basic or complex)
Consider linking - as the index of symbols can change. (Wasm binaries are index based ) |
Stack/Call frame support | working | WebAssembly doesn't have any native stack and/or frame support.
It has to be emulated using global and local variables. |
Indirect function calls | in progress | WebAssembly has a specific way of indirect calls
Needed for vmt and procedure variables (callback) calls |
VMT | Support for calls via virtual method table | |
RTL | not in scope |
Long-Term
Feature | Status | Description |
---|---|---|
Internal Writer | The binary wasm format is well defined and could be implemented within FPC | |
Internal Linker |