now that the cmake PR has been merged upstream, we don't need our forks
update build.rs to configure binaryen to build as a static lib
update binding to support new features
2) First foray into the Land of Memory
added binaryen module validation, thanks to the update to master.
Prepared and tested using it to: optimize the module, launch the
interpreter (both need CLI options, but work now, and are just
commented out). The latter will be useful to integrate with the testing
infrastructure
turned off the export attributes for now (even though there’s a good
chance we’ll need them eventually :)
refactored trans_rval into a more general assignment trans (similar
to miri, and brought in some of its code again) to allow for lvalue
knowledge, its type and memory layout (which will for instance be
useful to emit more than just i32 binary ops)
this has allowed a prototype implementation of a stack in wasm linear
memory (1 static 64k page only for now) by emitting our own function prologue and
epilogue to handle the stack pointer. (This at the very least will need
to be extracted into its own abstraction, and improved/tested esp.
regarding alignments, optimized, etc)
with this, a basic alloca was added to create simple structs (within
the current existing limitations around types, i.e. i32s only) emitting store/loads for assignments and access; With impl and refs — and an example using it
added the runtime start fn we talked about in the previous PR, to set
up some of our data, and call either the #[start] entry fn with (0, 0), or #[main] directly. This __wasm_start fn will be called
automatically on module start
1) Switch back to WebAssembly/binaryen
2) First foray into the Land of Memory
trans_rval
into a more general assignment trans (similar to miri, and brought in some of its code again) to allow for lvalue knowledge, its type and memory layout (which will for instance be useful to emit more than just i32 binary ops)#[start]
entry fn with(0, 0)
, or#[main]
directly. This__wasm_start
fn will be called automatically on module startr? @brson @eholk