Initial reorg.

This is largely the same as #305, but updated for the current tree.
This commit is contained in:
Dan Gohman
2019-11-07 17:11:06 -08:00
parent 2c69546a24
commit 22641de629
351 changed files with 52 additions and 52 deletions

View File

@@ -0,0 +1,3 @@
one.wasm
two.wasm
__pycache__

View File

@@ -0,0 +1,20 @@
# Build example's file
To build `one.wasm` use rustc (nightly) for wasm32 target with debug information:
```
rustc +nightly --target=wasm32-unknown-unknown one.rs --crate-type=cdylib
```
To build `two.wasm` use wabt.
```
wat2wasm two.wat -o two.wasm
```
# Run example
Point path to the built wasmtime_py library location when running python, e.g.
```
PYTHONPATH=../../target/debug python3 run.py
```

View File

@@ -0,0 +1,2 @@
def answer() -> 'i32':
return 42

View File

@@ -0,0 +1,17 @@
extern "C" {
fn answer() -> u32;
}
// For the purpose of this wasm example, we don't worry about multi-threading,
// and will be using the PLACE in unsafe manner below.
static mut PLACE: u32 = 23;
#[no_mangle]
pub extern fn bar() -> *const u32 {
unsafe {
PLACE = answer();
// Return a pointer to the exported memory.
(&PLACE) as *const u32
}
}

View File

@@ -0,0 +1,4 @@
import wasmtime
import two
print("answer() returned", two.ask())

View File

@@ -0,0 +1,11 @@
(module
(import "one" "memory" (memory $memory 0))
(import "one" "bar" (func $bar (result i32)))
(export "ask" (func $foo))
(func $foo (result i32)
call $bar
;; Deference returned pointer to the value from imported memory
i32.load
)
)