diff --git a/.cargo/config b/.cargo/config deleted file mode 100644 index 58103f6e..00000000 --- a/.cargo/config +++ /dev/null @@ -1,5 +0,0 @@ -[target.x86_64-apple-darwin] -rustflags = [ - "-C", "link-arg=-undefined", - "-C", "link-arg=dynamic_lookup", -] \ No newline at end of file diff --git a/Cargo.lock b/Cargo.lock index f2d540bd..03d4c532 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4,11 +4,11 @@ version = 3 [[package]] name = "addr2line" -version = "0.15.2" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7a2e47a1fbe209ee101dd6d61285226744c6c8d3c21c8dc878ba6cb9f467f3a" +checksum = "3e61f2b7f93d2c7d2b08263acaa4a363b3e276806c68af6134c44f523bf1aacd" dependencies = [ - "gimli", + "gimli 0.25.0", ] [[package]] @@ -28,9 +28,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.41" +version = "1.0.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15af2628f6890fe2609a3b91bef4c83450512802e59489f9c1cb1fa5df064a61" +checksum = "595d3cfa7a60d4555cb5067b99f07142a08ea778de5cf993f7b75c7d8fabc486" [[package]] name = "autocfg" @@ -40,16 +40,16 @@ checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a" [[package]] name = "backtrace" -version = "0.3.60" +version = "0.3.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7815ea54e4d821e791162e078acbebfd6d8c8939cd559c9335dceb1c8ca7282" +checksum = "e7a905d892734eea339e896738c14b9afce22b5318f64b951e70bf3844419b01" dependencies = [ "addr2line", "cc", "cfg-if 1.0.0", "libc", "miniz_oxide", - "object", + "object 0.26.0", "rustc-demangle", ] @@ -64,9 +64,9 @@ dependencies = [ [[package]] name = "bitflags" -version = "1.2.1" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" +checksum = "2da1976d75adbe5fbc88130ecd119529cf1cc6a93ae1546d8696ee66f0d21af1" [[package]] name = "byteorder" @@ -76,9 +76,9 @@ checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" [[package]] name = "cc" -version = "1.0.68" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a72c244c1ff497a746a7e1fb3d14bd08420ecda70c8f25c7112f2781652d787" +checksum = "e70cc2f62c6ce1868963827bd677764c62d07c3d9a3e1fb1177ee1a9ab199eb2" [[package]] name = "cfg-if" @@ -111,7 +111,7 @@ dependencies = [ "cranelift-codegen-meta", "cranelift-codegen-shared", "cranelift-entity", - "gimli", + "gimli 0.24.0", "log", "regalloc", "smallvec", @@ -173,9 +173,9 @@ dependencies = [ [[package]] name = "crossbeam-deque" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94af6efb46fef72616855b036a624cf27ba656ffc9be1b9a3c931cfc7749a9a9" +checksum = "6455c0ca19f0d2fbf751b908d5c55c1f5cbc65e03c4225427254b46890bdde1e" dependencies = [ "cfg-if 1.0.0", "crossbeam-epoch", @@ -217,9 +217,9 @@ dependencies = [ [[package]] name = "darling" -version = "0.12.4" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f2c43f534ea4b0b049015d00269734195e6d3f0f6635cb692251aca6f9f8b3c" +checksum = "757c0ded2af11d8e739c4daea1ac623dd1624b06c844cf3f5a39f1bdbd99bb12" dependencies = [ "darling_core", "darling_macro", @@ -227,9 +227,9 @@ dependencies = [ [[package]] name = "darling_core" -version = "0.12.4" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e91455b86830a1c21799d94524df0845183fa55bafd9aa137b01c7d1065fa36" +checksum = "2c34d8efb62d0c2d7f60ece80f75e5c63c1588ba68032740494b0b9a996466e3" dependencies = [ "fnv", "ident_case", @@ -241,9 +241,9 @@ dependencies = [ [[package]] name = "darling_macro" -version = "0.12.4" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29b5acf0dea37a7f66f7b25d2c5e93fd46f8f6968b1a5d7a3e02e97768afc95a" +checksum = "ade7bff147130fe5e6d39f089c6bd49ec0250f35d70b2eebf72afdfc919f15cc" dependencies = [ "darling_core", "quote", @@ -284,18 +284,18 @@ checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457" [[package]] name = "enumset" -version = "1.0.6" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbd795df6708a599abf1ee10eacc72efd052b7a5f70fdf0715e4d5151a6db9c3" +checksum = "7e76129da36102af021b8e5000dab2c1c30dbef85c1e482beeff8da5dde0e0b0" dependencies = [ "enumset_derive", ] [[package]] name = "enumset_derive" -version = "0.5.4" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e19c52f9ec503c8a68dc04daf71a04b07e690c32ab1a8b68e33897f255269d47" +checksum = "6451128aa6655d880755345d085494cf7561a6bee7c8dc821e5d77e6d267ecd4" dependencies = [ "darling", "proc-macro2", @@ -367,11 +367,17 @@ dependencies = [ "stable_deref_trait", ] +[[package]] +name = "gimli" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0a01e0497841a3b2db4f8afa483cce65f7e96a3498bd6c541734792aeac8fe7" + [[package]] name = "hashbrown" -version = "0.9.1" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7afe4a420e3fe79967a00898cc1f4db7c8a49a9333a29f8a4bd76a253d5cd04" +checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" [[package]] name = "hermit-abi" @@ -390,9 +396,9 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "indexmap" -version = "1.6.2" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "824845a0bf897a9042383849b02c1bc219c2383772efcd5c6f9766fa4b81aef3" +checksum = "bc633605454125dec4b66843673f01c7df2b89479b32e0ed634e43a91cff62a5" dependencies = [ "autocfg", "hashbrown", @@ -435,9 +441,9 @@ dependencies = [ [[package]] name = "instant" -version = "0.1.9" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61124eeebbd69b8190558df225adf7e4caafce0d743919e5d6b19652314ec5ec" +checksum = "bee0328b1209d157ef001c94dd85b4f8f64139adb0eac2659f4b08382b2f474d" dependencies = [ "cfg-if 1.0.0", ] @@ -487,9 +493,9 @@ checksum = "3576a87f2ba00f6f106fdfcd16db1d698d648a26ad8e0573cad8537c3c362d2a" [[package]] name = "libc" -version = "0.2.97" +version = "0.2.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12b8adadd720df158f4d70dfe7ccc6adb0472d7c55ca83445f6a5ab3e36f8fb6" +checksum = "a7f823d141fe0a24df1e23b4af4e3c7ba9e5966ec514ea068c93024aa7deb765" [[package]] name = "libloading" @@ -623,6 +629,15 @@ dependencies = [ "memchr", ] +[[package]] +name = "object" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c55827317fb4c08822499848a14237d2874d6f139828893017237e7ab93eb386" +dependencies = [ + "memchr", +] + [[package]] name = "once_cell" version = "1.8.0" @@ -726,27 +741,27 @@ checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5" [[package]] name = "proc-macro2" -version = "1.0.27" +version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0d8caf72986c1a598726adc988bb5984792ef84f5ee5aa50209145ee8077038" +checksum = "5c7ed8b8c7b886ea3ed7dde405212185f423ab44682667c8c6dd14aa1d9f6612" dependencies = [ "unicode-xid", ] [[package]] name = "ptr_meta" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7424255320182a46c403331afed6f95e0259a7c578f9da54a27e262ef3b60118" +checksum = "0738ccf7ea06b608c10564b31debd4f5bc5e197fc8bfe088f68ae5ce81e7a4f1" dependencies = [ "ptr_meta_derive", ] [[package]] name = "ptr_meta_derive" -version = "0.1.2" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53005b9863728f508d3f23ae37e03d60986a01b65f7ae8397dcebaa1d5e54e10" +checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac" dependencies = [ "proc-macro2", "quote", @@ -755,26 +770,34 @@ dependencies = [ [[package]] name = "pyo3" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4837b8e8e18a102c23f79d1e9a110b597ea3b684c95e874eb1ad88f8683109c3" +checksum = "af205762ba65eec9f27a2fa1a57a40644e8e3368784b8c8b2f2de48f6e8ddd96" dependencies = [ "cfg-if 1.0.0", - "ctor", "indoc", - "inventory", "libc", "parking_lot", "paste", + "pyo3-build-config", "pyo3-macros", "unindent", ] +[[package]] +name = "pyo3-build-config" +version = "0.14.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "755944027ce803c7238e59c5a18e59c1d0a4553db50b23e9ba209a568353028d" +dependencies = [ + "once_cell", +] + [[package]] name = "pyo3-macros" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a47f2c300ceec3e58064fd5f8f5b61230f2ffd64bde4970c81fdd0563a2db1bb" +checksum = "cd31b36bccfd902c78804bd96c28ea93eac6fa0ca311f9d21ef2230b6665b29a" dependencies = [ "pyo3-macros-backend", "quote", @@ -783,11 +806,12 @@ dependencies = [ [[package]] name = "pyo3-macros-backend" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87b097e5d84fcbe3e167f400fbedd657820a375b034c78bd852050749a575d66" +checksum = "c21c59ba36db9c823e931c662766b0dd01a030b1d96585b67d8857a96a56b972" dependencies = [ "proc-macro2", + "pyo3-build-config", "quote", "syn", ] @@ -868,9 +892,9 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.2.9" +version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ab49abadf3f9e1c4bc499e8845e152ad87d2ad2d30371841171169e9d75feee" +checksum = "8383f39639269cde97d255a32bdb68c047337295414940c68bdd30c2e13203ff" dependencies = [ "bitflags", ] @@ -1006,9 +1030,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f3aac57ee7f3272d8395c6e4f502f434f0e289fcd62876f70daa008c20dcabe" +checksum = "568a8e6258aa33c13358f81fd834adb854c6f7c9468520910a9b1e8fac068012" [[package]] name = "semver-parser" @@ -1027,9 +1051,9 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.126" +version = "1.0.127" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec7505abeacaec74ae4778d9d9328fe5a5d04253220a85c4ee022239fc996d03" +checksum = "f03b9878abf6d14e6779d3f24f07b2cfa90352cfec4acc5aab8f1ac7f146fae8" dependencies = [ "serde_derive", ] @@ -1045,9 +1069,9 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.126" +version = "1.0.127" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "963a7dbc9895aeac7ac90e74f34a5d5261828f79df35cbed41e10189d3804d43" +checksum = "a024926d3432516606328597e0f224a51355a493b49fdd67e9209187cbe55ecc" dependencies = [ "proc-macro2", "quote", @@ -1074,9 +1098,9 @@ checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" [[package]] name = "syn" -version = "1.0.73" +version = "1.0.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f71489ff30030d2ae598524f61326b902466f72a0fb1a8564c001cc63425bcc7" +checksum = "1873d832550d4588c3dbc20f01361ab00bfe741048f71e3fecf145a7cc18b29c" dependencies = [ "proc-macro2", "quote", @@ -1085,9 +1109,9 @@ dependencies = [ [[package]] name = "target-lexicon" -version = "0.12.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64ae3b39281e4b14b8123bdbaddd472b7dfe215e444181f2f9d2443c2444f834" +checksum = "b0652da4c4121005e9ed22b79f6c5f2d9e2752906b53a33e9490489ba421a6fb" [[package]] name = "tempfile" @@ -1105,18 +1129,18 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.25" +version = "1.0.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa6f76457f59514c7eeb4e59d891395fab0b2fd1d40723ae737d64153392e9c6" +checksum = "93119e4feac1cbe6c798c34d3a53ea0026b0b1de6a120deef895137c0529bfe2" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.25" +version = "1.0.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a36768c0fbf1bb15eca10defa29526bda730a2376c2ab4393ccfa16fb1a318d" +checksum = "060d69a0afe7796bf42e9e2ff91f5ee691fb15c53d38b4b62a9a53eb23164745" dependencies = [ "proc-macro2", "quote", @@ -1226,10 +1250,11 @@ version = "1.0.0" dependencies = [ "cfg-if 1.0.0", "pyo3", + "pyo3-build-config", "wasmer 2.0.0", + "wasmer-engines", "wasmer-types", "wasmer-wasi", - "wasmer_engines", "wasmprinter", "wat", ] @@ -1285,7 +1310,7 @@ dependencies = [ "cranelift-codegen", "cranelift-entity", "cranelift-frontend", - "gimli", + "gimli 0.24.0", "loupe", "more-asserts", "rayon", @@ -1308,11 +1333,11 @@ dependencies = [ "lazy_static", "libc", "loupe", - "object", + "object 0.25.3", "rayon", "regex", "rustc_version", - "semver 1.0.3", + "semver 1.0.4", "smallvec", "target-lexicon", "wasmer-compiler", @@ -1413,13 +1438,23 @@ dependencies = [ "winapi", ] +[[package]] +name = "wasmer-engines" +version = "1.0.0" +dependencies = [ + "enumset", + "pyo3", + "wasmer 2.0.0", + "wasmer-compiler", +] + [[package]] name = "wasmer-object" version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c541c985799fc1444702501c15d41becfb066c92d9673defc1c7417fd8739e15" dependencies = [ - "object", + "object 0.25.3", "thiserror", "wasmer-compiler", "wasmer-types", @@ -1497,7 +1532,7 @@ version = "1.0.0" dependencies = [ "pyo3", "wasmer-compiler-cranelift", - "wasmer_engines", + "wasmer-engines", ] [[package]] @@ -1506,7 +1541,7 @@ version = "1.0.0" dependencies = [ "pyo3", "wasmer-compiler-llvm", - "wasmer_engines", + "wasmer-engines", ] [[package]] @@ -1515,17 +1550,7 @@ version = "1.0.0" dependencies = [ "pyo3", "wasmer-compiler-singlepass", - "wasmer_engines", -] - -[[package]] -name = "wasmer_engines" -version = "1.0.0" -dependencies = [ - "enumset", - "pyo3", - "wasmer 2.0.0", - "wasmer-compiler", + "wasmer-engines", ] [[package]] @@ -1551,45 +1576,46 @@ checksum = "52144d4c78e5cf8b055ceab8e5fa22814ce4315d6002ad32cfd914f37c12fd65" [[package]] name = "wasmparser" -version = "0.79.0" +version = "0.80.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b5894be15a559c85779254700e1d35f02f843b5a69152e5c82c626d9fd66c0e" +checksum = "a5f71b80b8193e50910919e7d1bc956d2b4f42b1cb1fad84bacb59332c16f2cf" [[package]] name = "wasmprinter" -version = "0.2.27" +version = "0.2.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe6f65000c9b653a87ba9b8bebe9230371337db2b7e70db724ee4b79d2b9936f" +checksum = "b48e4f2999b9930e9b037e328357d7d2367e0d8ea6e534be90aeff60976c0452" dependencies = [ "anyhow", - "wasmparser 0.79.0", + "wasmparser 0.80.0", ] [[package]] name = "wast" -version = "36.0.0" +version = "37.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b5d7ba374a364571da1cb0a379a3dc302582a2d9937a183bfe35b68ad5bb9c4" +checksum = "9bc7b9a76845047ded00e031754ff410afee0d50fbdf62b55bdeecd245063d68" dependencies = [ "leb128", ] [[package]] name = "wat" -version = "1.0.38" +version = "1.0.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16383df7f0e3901484c2dda6294ed6895caa3627ce4f6584141dcf30a33a23e6" +checksum = "2ab2cc8d9a69d1ab28a41d9149bb06bb927aba8fc9d56625f8b597a564c83f50" dependencies = [ "wast", ] [[package]] name = "which" -version = "4.1.0" +version = "4.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b55551e42cbdf2ce2bedd2203d0cc08dba002c27510f86dab6d0ce304cba3dfe" +checksum = "ea187a8ef279bc014ec368c27a920da2024d2a711109bfbe3440585d5cf27ad9" dependencies = [ "either", + "lazy_static", "libc", ] diff --git a/docs/api/wasmer/index.html b/docs/api/wasmer/index.html index 77fec836..5fab8ea6 100644 --- a/docs/api/wasmer/index.html +++ b/docs/api/wasmer/index.html @@ -135,7 +135,7 @@

Example

from wasmer import Memory, MemoryType, Store
 
 store = Store()
-memory = Memory(store, MemoryType(128, shared=False))
+memory = Memory(store, MemoryType(minimum=128))
 
 # Let's write data with a `Int8Array` view for example.
 int8 = memory.int8_view()
@@ -579,7 +579,7 @@ 

Example

""" ) -memory = Memory(store, MemoryType(1, shared=False)) +memory = Memory(store, MemoryType(minimum=1)) view = memory.uint8_view(offset=0) import_object = ImportObject() @@ -668,7 +668,7 @@

Example

"env", { "sum": Function(store, sum), - "memory": Memory(store, MemoryType(1, shared=False)) + "memory": Memory(store, MemoryType(minimum=1)) } )
@@ -964,7 +964,7 @@

Example

from wasmer import Store, Memory, MemoryType
 
 store = Store()
-memory_type = MemoryType(3, shared=False)
+memory_type = MemoryType(minimum=3)
 memory = Memory(store, memory_type)
 
 assert memory.size == 3
@@ -989,7 +989,7 @@ 

Example

from wasmer import Store, Memory, MemoryType, Buffer
 
 store = Store()
-memory_type = MemoryType(3, shared=False)
+memory_type = MemoryType(minimum=3)
 memory = Memory(store, memory_type)
 
 assert isinstance(memory.buffer, Buffer)
@@ -1002,7 +1002,7 @@ 

Example

from wasmer import Store, Memory, MemoryType
 
 store = Store()
-memory_type = MemoryType(3, shared=False)
+memory_type = MemoryType(minimum=3)
 memory = Memory(store, memory_type)
 
 assert memory.data_size == 196608
@@ -1015,7 +1015,7 @@ 

Example

from wasmer import Store, Memory, MemoryType
 
 store = Store()
-memory_type = MemoryType(3, shared=False)
+memory_type = MemoryType(minimum=3)
 memory = Memory(store, memory_type)
 
 assert memory.size == 3
@@ -1049,7 +1049,7 @@ 

Example

from wasmer import Store, Memory, MemoryType
 
 store = Store()
-memory_type = MemoryType(3, shared=False)
+memory_type = MemoryType(minimum=3)
 memory = Memory(store, memory_type)
 
 assert memory.size == 3
@@ -1110,7 +1110,7 @@ 

Examples

from wasmer import Store, Memory, MemoryType, Uint8Array
 
 store = Store()
-memory_type = MemoryType(3, shared=False)
+memory_type = MemoryType(minimum=3)
 memory = Memory(store, memory_type)
 
 assert isinstance(memory.uint8_view(offset=42), Uint8Array)
@@ -1120,7 +1120,7 @@ 

Examples

class MemoryType -(minimum, maximum, shared) +(minimum, /, maximum, shared)

A descriptor for a WebAssembly memory type.

diff --git a/packages/README.md b/packages/README.md index 17084786..6721585f 100644 --- a/packages/README.md +++ b/packages/README.md @@ -5,9 +5,9 @@ Wasmer provides several Python packages. We recommend to read the Succinctly, here is a short description of this directory: -* `any/` contains a fallback to make `wasmer` always installable on - all platforms, but it could raise an `ImportError` if the current - platform isn't supported, +* `any*/` contain fallbacks to make `wasmer` and sibling packages + always installable on all platforms, but it could raise an + `ImportError` if the current platform isn't supported, * `api/` contains the `wasmer` package, diff --git a/packages/api/Cargo.toml b/packages/api/Cargo.toml index 6df2de8c..08bd1819 100644 --- a/packages/api/Cargo.toml +++ b/packages/api/Cargo.toml @@ -17,14 +17,17 @@ crate-type = ["cdylib"] [dependencies] wasmer = { version = "2.0", default-features = false, features = ["wat", "universal", "dylib", "compiler"] } -wasmer_engines = { path = "../engines/" } +wasmer-engines = { path = "../engines/" } wasmer-types = "2.0" wasmer-wasi = "2.0" -pyo3 = { version = "0.13", features = ["extension-module"] } +pyo3 = { version = "0.14", features = ["extension-module", "auto-initialize"] } wat = "1.0" wasmprinter = "0.2" cfg-if = "1.0" +[build-dependencies] +pyo3-build-config = "0.14" + [package.metadata.maturin] classifier = [ "Programming Language :: Python", diff --git a/packages/api/build.rs b/packages/api/build.rs index 219cea18..1a8ec5aa 100644 --- a/packages/api/build.rs +++ b/packages/api/build.rs @@ -3,4 +3,5 @@ fn main() { "cargo:rustc-env=WASMER_VERSION={}", env!("CARGO_PKG_VERSION") ); + pyo3_build_config::add_extension_module_link_args(); } diff --git a/packages/api/src/engines.rs b/packages/api/src/engines.rs index 371e53fe..2e033e10 100644 --- a/packages/api/src/engines.rs +++ b/packages/api/src/engines.rs @@ -1,3 +1,3 @@ -pub use wasmer_engines::{Dylib, Universal}; +pub use crate::wasmer_inner::wasmer_engines::{Dylib, Universal}; // Deprecated engines. -pub use wasmer_engines::{Native, JIT}; +pub use crate::wasmer_inner::wasmer_engines::{Native, JIT}; diff --git a/packages/api/src/externals/function.rs b/packages/api/src/externals/function.rs index 55e2fc51..1c6b65c6 100644 --- a/packages/api/src/externals/function.rs +++ b/packages/api/src/externals/function.rs @@ -91,7 +91,7 @@ use std::{io, sync::Arc}; /// function = Function(store, sum, FunctionType([Type.I32, Type.I32], [Type.I32])) /// ``` #[pyclass(unsendable)] -#[text_signature = "(store, function, function_type)"] +#[pyo3(text_signature = "(store, function, function_type)")] pub struct Function { inner: wasmer::Function, } diff --git a/packages/api/src/externals/global.rs b/packages/api/src/externals/global.rs index 7c6ee61c..9c4a9c4d 100644 --- a/packages/api/src/externals/global.rs +++ b/packages/api/src/externals/global.rs @@ -39,7 +39,7 @@ use pyo3::{ /// assert global_.mutable == True /// ``` #[pyclass(unsendable)] -#[text_signature = "(store, value, mutable)"] +#[pyo3(text_signature = "(store, value, mutable)")] pub struct Global { inner: wasmer::Global, } diff --git a/packages/api/src/externals/memory.rs b/packages/api/src/externals/memory.rs index 5414d637..3b353bff 100644 --- a/packages/api/src/externals/memory.rs +++ b/packages/api/src/externals/memory.rs @@ -31,7 +31,7 @@ use pyo3::{exceptions::PyRuntimeError, prelude::*}; /// from wasmer import Store, Memory, MemoryType /// /// store = Store() -/// memory_type = MemoryType(3, shared=False) +/// memory_type = MemoryType(minimum=3) /// memory = Memory(store, memory_type) /// /// assert memory.size == 3 @@ -50,7 +50,7 @@ use pyo3::{exceptions::PyRuntimeError, prelude::*}; /// assert isinstance(memory, Memory) /// ``` #[pyclass(unsendable)] -#[text_signature = "(store, memory_type)"] +#[pyo3(text_signature = "(store, memory_type)")] pub struct Memory { inner: wasmer::Memory, } @@ -83,7 +83,7 @@ impl Memory { /// from wasmer import Store, Memory, MemoryType /// /// store = Store() - /// memory_type = MemoryType(3, shared=False) + /// memory_type = MemoryType(minimum=3) /// memory = Memory(store, memory_type) /// /// assert memory.size == 3 @@ -101,7 +101,7 @@ impl Memory { /// from wasmer import Store, Memory, MemoryType /// /// store = Store() - /// memory_type = MemoryType(3, shared=False) + /// memory_type = MemoryType(minimum=3) /// memory = Memory(store, memory_type) /// /// assert memory.data_size == 196608 @@ -119,7 +119,7 @@ impl Memory { /// from wasmer import Store, Memory, MemoryType /// /// store = Store() - /// memory_type = MemoryType(3, shared=False) + /// memory_type = MemoryType(minimum=3) /// memory = Memory(store, memory_type) /// /// assert memory.size == 3 @@ -128,7 +128,7 @@ impl Memory { /// /// assert memory.size == 5 /// ``` - #[text_signature = "($self, number_of_pages)"] + #[pyo3(text_signature = "($self, number_of_pages)")] fn grow(&self, number_of_pages: u32) -> PyResult { self.inner .grow(number_of_pages) @@ -145,7 +145,7 @@ impl Memory { /// from wasmer import Store, Memory, MemoryType, Buffer /// /// store = Store() - /// memory_type = MemoryType(3, shared=False) + /// memory_type = MemoryType(minimum=3) /// memory = Memory(store, memory_type) /// /// assert isinstance(memory.buffer, Buffer) @@ -165,12 +165,12 @@ impl Memory { /// from wasmer import Store, Memory, MemoryType, Uint8Array /// /// store = Store() - /// memory_type = MemoryType(3, shared=False) + /// memory_type = MemoryType(minimum=3) /// memory = Memory(store, memory_type) /// /// assert isinstance(memory.uint8_view(offset=42), Uint8Array) /// ``` - #[text_signature = "($self, /, offset=0)"] + #[pyo3(text_signature = "($self, /, offset=0)")] #[args(offset = 0)] fn uint8_view(&self, offset: usize) -> Uint8Array { Uint8Array { @@ -182,7 +182,7 @@ impl Memory { /// Creates a read-and-write over the memory data where elements /// are of kind `int8`. See the `Int8Array` view to learn more, /// and the `Memory.uint8_view` method to see an example. - #[text_signature = "($self, /, offset=0)"] + #[pyo3(text_signature = "($self, /, offset=0)")] #[args(offset = 0)] fn int8_view(&self, offset: usize) -> Int8Array { Int8Array { @@ -194,7 +194,7 @@ impl Memory { /// Creates a read-and-write over the memory data where elements /// are of kind `uint16`. See the `Uint16Array` view to learn /// more, and the `Memory.uint8_view` method to see an example. - #[text_signature = "($self, /, offset=0)"] + #[pyo3(text_signature = "($self, /, offset=0)")] #[args(offset = 0)] fn uint16_view(&self, offset: usize) -> Uint16Array { Uint16Array { @@ -206,7 +206,7 @@ impl Memory { /// Creates a read-and-write over the memory data where elements /// are of kind `int16`. See the `Int16Array` view to learn more, /// and the `Memory.uint8_view` method to see an example. - #[text_signature = "($self, /, offset=0)"] + #[pyo3(text_signature = "($self, /, offset=0)")] #[args(offset = 0)] fn int16_view(&self, offset: usize) -> Int16Array { Int16Array { @@ -218,7 +218,7 @@ impl Memory { /// Creates a read-and-write over the memory data where elements /// are of kind `uint32`. See the `Uint32Array` view to learn /// more, and the `Memory.uint8_view` method to see an example. - #[text_signature = "($self, /, offset=0)"] + #[pyo3(text_signature = "($self, /, offset=0)")] #[args(offset = 0)] fn uint32_view(&self, offset: usize) -> Uint32Array { Uint32Array { @@ -230,7 +230,7 @@ impl Memory { /// Creates a read-and-write over the memory data where elements /// are of kind `int32`. See the `Int32Array` view to learn more, /// and the `Memory.uint8_view` method to see an example. - #[text_signature = "($self, /, offset=0)"] + #[pyo3(text_signature = "($self, /, offset=0)")] #[args(offset = 0)] fn int32_view(&self, offset: usize) -> Int32Array { Int32Array { diff --git a/packages/api/src/externals/table.rs b/packages/api/src/externals/table.rs index 5b92ae40..496bab9b 100644 --- a/packages/api/src/externals/table.rs +++ b/packages/api/src/externals/table.rs @@ -13,7 +13,7 @@ use pyo3::{exceptions::PyRuntimeError, prelude::*}; /// /// Specification: https://webassembly.github.io/spec/core/exec/runtime.html#table-instances #[pyclass(unsendable)] -#[text_signature = "(store, table_type, initial_value)"] +#[pyo3(text_signature = "(store, table_type, initial_value)")] pub struct Table { inner: wasmer::Table, } diff --git a/packages/api/src/import_object.rs b/packages/api/src/import_object.rs index f23d25b0..2f74f1b8 100644 --- a/packages/api/src/import_object.rs +++ b/packages/api/src/import_object.rs @@ -70,7 +70,7 @@ use pyo3::{ /// """ /// ) /// -/// memory = Memory(store, MemoryType(1, shared=False)) +/// memory = Memory(store, MemoryType(minimum=1)) /// view = memory.uint8_view(offset=0) /// /// import_object = ImportObject() @@ -130,7 +130,7 @@ use pyo3::{ /// /// etc. #[pyclass(unsendable)] -#[text_signature = "()"] +#[pyo3(text_signature = "()")] pub struct ImportObject { inner: wasmer::ImportObject, } @@ -163,7 +163,7 @@ impl ImportObject { /// /// assert import_object.contains_namespace("foo") == False /// ``` - #[text_signature = "($self, namespace_name)"] + #[pyo3(text_signature = "($self, namespace_name)")] fn contains_namespace(&self, namespace_name: &str) -> bool { self.inner.contains_namespace(namespace_name) } @@ -186,11 +186,11 @@ impl ImportObject { /// "env", /// { /// "sum": Function(store, sum), - /// "memory": Memory(store, MemoryType(1, shared=False)) + /// "memory": Memory(store, MemoryType(minimum=1)) /// } /// ) /// ``` - #[text_signature = "($self, namespace_name, namespace)"] + #[pyo3(text_signature = "($self, namespace_name, namespace)")] fn register(&mut self, namespace_name: &str, namespace: &PyDict) -> PyResult<()> { let mut wasmer_namespace = wasmer::Exports::new(); diff --git a/packages/api/src/instance.rs b/packages/api/src/instance.rs index 0282b469..fd363916 100644 --- a/packages/api/src/instance.rs +++ b/packages/api/src/instance.rs @@ -83,7 +83,7 @@ use pyo3::{exceptions::PyRuntimeError, prelude::*}; /// assert instance.exports.add_one(41) == 42 /// ``` #[pyclass(unsendable)] -#[text_signature = "(module, import_object)"] +#[pyo3(text_signature = "(module, import_object)")] pub struct Instance { #[allow(unused)] inner: wasmer::Instance, diff --git a/packages/api/src/lib.rs b/packages/api/src/lib.rs index 21e1e477..65db9104 100644 --- a/packages/api/src/lib.rs +++ b/packages/api/src/lib.rs @@ -99,8 +99,8 @@ fn wasmer(py: Python, module: &PyModule) -> PyResult<()> { /// /// assert wat2wasm('(module)') == b'\x00asm\x01\x00\x00\x00' /// ``` - #[pyfn(module, "wat2wasm")] - #[text_signature = "(wat)"] + #[pyfn(module)] + #[pyo3(text_signature = "(wat)")] fn wat2wasm<'py>(py: Python<'py>, wat: String) -> PyResult<&'py PyBytes> { wat::wat2wasm(py, wat) } @@ -114,8 +114,8 @@ fn wasmer(py: Python, module: &PyModule) -> PyResult<()> { /// /// assert wasm2wat(b'\x00asm\x01\x00\x00\x00') == '(module)' /// ``` - #[pyfn(module, "wasm2wat")] - #[text_signature = "(bytes)"] + #[pyfn(module)] + #[pyo3(text_signature = "(bytes)")] fn wasm2wat(bytes: &PyBytes) -> PyResult { wat::wasm2wat(bytes) } @@ -149,20 +149,17 @@ fn wasmer(py: Python, module: &PyModule) -> PyResult<()> { // Enums. module.add( "Type", - enum_module.call1( - "IntEnum", - PyTuple::new( - py, - &[ - "Type", - types::Type::iter() - .map(Into::into) - .collect::>() - .join(" ") - .as_str(), - ], - ), - )?, + enum_module.getattr("IntEnum")?.call1(PyTuple::new( + py, + &[ + "Type", + types::Type::iter() + .map(Into::into) + .collect::>() + .join(" ") + .as_str(), + ], + ))?, )?; // Modules. @@ -338,8 +335,8 @@ fn wasi(py: Python, module: &PyModule) -> PyResult<()> { /// namespace. A non-strict detection expects that at least one WASI /// namespace exits to detect the version. Note that the strict /// detection is faster than the non-strict one. - #[pyfn(module, "get_version")] - #[text_signature = "(module, strict)"] + #[pyfn(module)] + #[pyo3(text_signature = "(module, strict)")] fn get_version(module: &module::Module, strict: bool) -> Option { wasi::get_version(module, strict) } @@ -351,20 +348,17 @@ fn wasi(py: Python, module: &PyModule) -> PyResult<()> { // Enums. module.add( "Version", - enum_module.call1( - "IntEnum", - PyTuple::new( - py, - &[ - "Version", - wasi::Version::iter() - .map(Into::into) - .collect::>() - .join(" ") - .as_str(), - ], - ), - )?, + enum_module.getattr("IntEnum")?.call1(PyTuple::new( + py, + &[ + "Version", + wasi::Version::iter() + .map(Into::into) + .collect::>() + .join(" ") + .as_str(), + ], + ))?, )?; Ok(()) diff --git a/packages/api/src/memory/buffer.rs b/packages/api/src/memory/buffer.rs index 18adca90..e1e8f276 100644 --- a/packages/api/src/memory/buffer.rs +++ b/packages/api/src/memory/buffer.rs @@ -34,7 +34,7 @@ use std::{ /// from wasmer import Memory, MemoryType, Store /// /// store = Store() -/// memory = Memory(store, MemoryType(128, shared=False)) +/// memory = Memory(store, MemoryType(minimum=128)) /// /// # Let's write data with a `Int8Array` view for example. /// int8 = memory.int8_view() diff --git a/packages/api/src/module.rs b/packages/api/src/module.rs index 8536aeaa..69714dc5 100644 --- a/packages/api/src/module.rs +++ b/packages/api/src/module.rs @@ -35,7 +35,7 @@ use std::convert::TryInto; /// module = Module(store, '(module)') /// ``` #[pyclass(unsendable)] -#[text_signature = "(store, bytes)"] +#[pyo3(text_signature = "(store, bytes)")] pub struct Module { inner: wasmer::Module, } @@ -62,7 +62,7 @@ impl Module { /// /// assert Module.validate(Store(), wasm_bytes) /// ``` - #[text_signature = "(bytes)"] + #[pyo3(text_signature = "(bytes)")] #[staticmethod] fn validate(store: &Store, bytes: &PyAny) -> bool { match bytes.downcast::() { @@ -178,7 +178,7 @@ impl Module { /// assert module.custom_sections('hello') == [b'World!'] /// assert module.custom_sections('foo') == [] /// ``` - #[text_signature = "($self, name)"] + #[pyo3(text_signature = "($self, name)")] fn custom_sections<'p>(&self, py: Python<'p>, name: &str) -> &'p PyList { PyList::new( py, @@ -203,7 +203,7 @@ impl Module { /// /// assert type(serialized_module) == bytes /// ``` - #[text_signature = "($self)"] + #[pyo3(text_signature = "($self)")] fn serialize<'p>(&self, py: Python<'p>) -> PyResult<&'p PyBytes> { Ok(PyBytes::new( py, @@ -253,7 +253,7 @@ impl Module { /// /// assert isinstance(module, Module) /// ``` - #[text_signature = "($self, bytes)"] + #[pyo3(text_signature = "($self, bytes)")] #[staticmethod] fn deserialize(store: &Store, bytes: &PyBytes) -> PyResult { let module = unsafe { wasmer::Module::deserialize(store.inner(), bytes.as_bytes()) } diff --git a/packages/api/src/store.rs b/packages/api/src/store.rs index c44d63c2..614eda1f 100644 --- a/packages/api/src/store.rs +++ b/packages/api/src/store.rs @@ -44,7 +44,7 @@ use pyo3::{exceptions::PyTypeError, prelude::*}; /// `compiler_compiler_singlepass`, otherwise it will run in headless /// mode. #[pyclass] -#[text_signature = "(engine)"] +#[pyo3(text_signature = "(engine)")] pub struct Store { inner: wasmer::Store, engine_name: String, @@ -95,7 +95,7 @@ impl Store { .or_else(|_| py.import("wasmer_compiler_llvm")) .or_else(|_| py.import("wasmer_compiler_singlepass")) // If any, load the `Compiler` class. - .and_then(|compiler_module| compiler_module.get("Compiler")) + .and_then(|compiler_module| compiler_module.getattr("Compiler")) .ok(); let target = None; diff --git a/packages/api/src/target.rs b/packages/api/src/target.rs index fec51b14..7fe4c6a1 100644 --- a/packages/api/src/target.rs +++ b/packages/api/src/target.rs @@ -1 +1 @@ -pub use wasmer_engines::{CpuFeatures, Target, Triple}; +pub use crate::wasmer_inner::wasmer_engines::{CpuFeatures, Target, Triple}; diff --git a/packages/api/src/types.rs b/packages/api/src/types.rs index b91db5ae..af58a1d4 100644 --- a/packages/api/src/types.rs +++ b/packages/api/src/types.rs @@ -127,7 +127,7 @@ impl Into for Type { /// ) /// ``` #[pyclass] -#[text_signature = "(params, results)"] +#[pyo3(text_signature = "(params, results)")] pub struct FunctionType { /// Parameters, i.e. inputs, of the function. #[pyo3(get)] @@ -198,7 +198,7 @@ impl PyObjectProtocol for FunctionType { /// ) /// ``` #[pyclass] -#[text_signature = "(minimum, maximum, shared)"] +#[pyo3(text_signature = "(minimum, /, maximum, shared)")] pub struct MemoryType { /// The minimum number of pages in the memory. #[pyo3(get)] @@ -216,6 +216,7 @@ pub struct MemoryType { #[pymethods] impl MemoryType { #[new] + #[args(maximum = "None", shared = "false")] fn new(minimum: u32, maximum: Option, shared: bool) -> Self { Self { minimum, @@ -268,7 +269,7 @@ impl PyObjectProtocol for MemoryType { /// global_type = GlobalType(Type.I32, mutable=False) /// ``` #[pyclass] -#[text_signature = "(type, mutable)"] +#[pyo3(text_signature = "(type, mutable)")] pub struct GlobalType { /// The type of the value stored in the global. #[pyo3(get)] @@ -321,7 +322,7 @@ impl PyObjectProtocol for GlobalType { /// table_type = TableType(Type.I32, minimum=7, maximum=42) /// ``` #[pyclass] -#[text_signature = "(type, minium, maximum)"] +#[pyo3(text_signature = "(type, minium, maximum)")] pub struct TableType { /// The type of data stored in elements of the table. #[pyo3(get)] @@ -421,7 +422,7 @@ impl PyObjectProtocol for TableType { /// assert exports[3].type.shared == False /// ``` #[pyclass] -#[text_signature = "(name, type)"] +#[pyo3(text_signature = "(name, type)")] pub struct ExportType { /// The name of the export. #[pyo3(get)] @@ -504,7 +505,7 @@ impl TryFrom for ExportType { /// assert imports[3].type.shared == False /// ``` #[pyclass] -#[text_signature = "(module, name, type)"] +#[pyo3(text_signature = "(module, name, type)")] pub struct ImportType { /// The namespace name (also known as module name). #[pyo3(get)] diff --git a/packages/api/src/values.rs b/packages/api/src/values.rs index 918bfdbd..10d801de 100644 --- a/packages/api/src/values.rs +++ b/packages/api/src/values.rs @@ -125,7 +125,7 @@ impl Value { /// value = Value.i32(42) /// ``` #[staticmethod] - #[text_signature = "(value)"] + #[pyo3(text_signature = "(value)")] fn i32(value: i32) -> Self { Self { inner: wasmer::Value::I32(value), @@ -142,7 +142,7 @@ impl Value { /// value = Value.i64(42) /// ``` #[staticmethod] - #[text_signature = "(value)"] + #[pyo3(text_signature = "(value)")] fn i64(value: i64) -> Self { Self { inner: wasmer::Value::I64(value), @@ -159,7 +159,7 @@ impl Value { /// value = Value.f32(4.2) /// ``` #[staticmethod] - #[text_signature = "(value)"] + #[pyo3(text_signature = "(value)")] fn f32(value: f32) -> Self { Self { inner: wasmer::Value::F32(value), @@ -176,7 +176,7 @@ impl Value { /// value = Value.f64(4.2) /// ``` #[staticmethod] - #[text_signature = "(value)"] + #[pyo3(text_signature = "(value)")] fn f64(value: f64) -> Self { Self { inner: wasmer::Value::F64(value), @@ -193,7 +193,7 @@ impl Value { /// value = Value.v128(42) /// ``` #[staticmethod] - #[text_signature = "(value)"] + #[pyo3(text_signature = "(value)")] fn v128(value: u128) -> Self { Self { inner: wasmer::Value::V128(value), diff --git a/packages/api/src/wasi.rs b/packages/api/src/wasi.rs index 1ae0851f..3e36c2bf 100644 --- a/packages/api/src/wasi.rs +++ b/packages/api/src/wasi.rs @@ -98,7 +98,7 @@ impl Into for Version { /// wasi_state_builder = wasi.StateBuilder('test-program') /// ``` #[pyclass] -#[text_signature = "(arguments=[], environments={}, preopen_directories=[], map_directories={})"] +#[pyo3(text_signature = "(arguments=[], environments={}, preopen_directories=[], map_directories={})")] pub struct StateBuilder { inner: wasmer_wasi::WasiStateBuilder, } @@ -211,7 +211,7 @@ impl StateBuilder { /// wasi.StateBuilder('test-program'). \ /// arguments(['--verbose --help']) /// ``` - #[text_signature = "($self, arguments)"] + #[pyo3(text_signature = "($self, arguments)")] pub fn arguments<'py>( slf: &'py PyCell, arguments: &PyList, @@ -238,7 +238,7 @@ impl StateBuilder { /// argument('--verbose'). \ /// argument('--help') /// ``` - #[text_signature = "($self, argument)"] + #[pyo3(text_signature = "($self, argument)")] pub fn argument<'py>(slf: &'py PyCell, argument: String) -> PyResult<&'py PyCell> { let mut slf_mut = slf.try_borrow_mut()?; slf_mut.self_argument(argument); @@ -262,7 +262,7 @@ impl StateBuilder { /// wasi.StateBuilder('test-program'). \ /// environments({"ABC": "DEF", "X": "YZ"}) /// ``` - #[text_signature = "($self, environments)"] + #[pyo3(text_signature = "($self, environments)")] pub fn environments<'py>( slf: &'py PyCell, environments: &PyDict, @@ -290,7 +290,7 @@ impl StateBuilder { /// environment("ABC", "DEF"). \ /// environment("X", "YZ") /// ``` - #[text_signature = "($self, key, value)"] + #[pyo3(text_signature = "($self, key, value)")] pub fn environment<'py>( slf: &'py PyCell, key: String, @@ -319,7 +319,7 @@ impl StateBuilder { /// wasi.StateBuilder('test-program'). \ /// preopen_directories(["."]) /// ``` - #[text_signature = "($self, preopen_directories)"] + #[pyo3(text_signature = "($self, preopen_directories)")] pub fn preopen_directories<'py>( slf: &'py PyCell, preopen_directories: &PyList, @@ -347,7 +347,7 @@ impl StateBuilder { /// wasi.StateBuilder('test-program'). \ /// preopen_directory(".") /// ``` - #[text_signature = "($self, preopen_directory)"] + #[pyo3(text_signature = "($self, preopen_directory)")] pub fn preopen_directory<'py>( slf: &'py PyCell, preopen_directory: String, @@ -371,7 +371,7 @@ impl StateBuilder { /// wasi.StateBuilder('test-program'). \ /// map_directories({"foo": "."}) /// ``` - #[text_signature = "($self, map_directories)"] + #[pyo3(text_signature = "($self, map_directories)")] pub fn map_directories<'py>( slf: &'py PyCell, map_directories: &PyDict, @@ -395,7 +395,7 @@ impl StateBuilder { /// wasi.StateBuilder('test-program'). \ /// map_directory("foo", ".") /// ``` - #[text_signature = "($self, alias, directory)"] + #[pyo3(text_signature = "($self, alias, directory)")] pub fn map_directory<'py>( slf: &'py PyCell, alias: String, @@ -419,7 +419,7 @@ impl StateBuilder { /// argument('--foo'). \ /// finalize() /// ``` - #[text_signature = "($self)"] + #[pyo3(text_signature = "($self)")] pub fn finalize(&mut self) -> PyResult { Ok(Environment::raw_new( self.inner @@ -462,7 +462,7 @@ impl Environment { /// wasi_env = wasi.StateBuilder('test-program').argument('--foo').finalize() /// import_object = wasi_env.generate_import_object(store, wasi.Version.SNAPSHOT1) /// ``` - //#[text_signature = "($self, store, wasi_version)"] + //#[pyo3(text_signature = "($self, store, wasi_version)")] fn generate_import_object(&self, store: &Store, wasi_version: Version) -> ImportObject { let import_object = wasmer_wasi::generate_import_object_from_env( store.inner(), diff --git a/packages/compiler-cranelift/Cargo.toml b/packages/compiler-cranelift/Cargo.toml index 3239aebc..fe3a2759 100644 --- a/packages/compiler-cranelift/Cargo.toml +++ b/packages/compiler-cranelift/Cargo.toml @@ -15,9 +15,9 @@ name = "wasmer_compiler_cranelift" crate-type = ["cdylib"] [dependencies] -wasmer_engines = { path = "../engines/" } +wasmer-engines = { path = "../engines/" } wasmer-compiler-cranelift = "2.0" -pyo3 = { version = "0.13", features = ["extension-module"] } +pyo3 = { version = "0.14", features = ["extension-module"] } [package.metadata.maturin] classifier = [ diff --git a/packages/compiler-llvm/Cargo.toml b/packages/compiler-llvm/Cargo.toml index 93ff96a0..7b78c048 100644 --- a/packages/compiler-llvm/Cargo.toml +++ b/packages/compiler-llvm/Cargo.toml @@ -15,9 +15,9 @@ name = "wasmer_compiler_llvm" crate-type = ["cdylib"] [dependencies] -wasmer_engines = { path = "../engines/" } +wasmer-engines = { path = "../engines/" } wasmer-compiler-llvm = "2.0" -pyo3 = { version = "0.13", features = ["extension-module"] } +pyo3 = { version = "0.14", features = ["extension-module"] } [package.metadata.maturin] classifier = [ diff --git a/packages/compiler-singlepass/Cargo.toml b/packages/compiler-singlepass/Cargo.toml index 3bdbb653..1557d517 100644 --- a/packages/compiler-singlepass/Cargo.toml +++ b/packages/compiler-singlepass/Cargo.toml @@ -15,9 +15,9 @@ name = "wasmer_compiler_singlepass" crate-type = ["cdylib"] [dependencies] -wasmer_engines = { path = "../engines/" } +wasmer-engines = { path = "../engines/" } wasmer-compiler-singlepass = "2.0" -pyo3 = { version = "0.13", features = ["extension-module"] } +pyo3 = { version = "0.14", features = ["extension-module"] } [package.metadata.maturin] classifier = [ diff --git a/packages/engines/Cargo.toml b/packages/engines/Cargo.toml index 381d01de..decf15f1 100644 --- a/packages/engines/Cargo.toml +++ b/packages/engines/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "wasmer_engines" +name = "wasmer-engines" version = "1.0.0" authors = ["Wasmer Engineering Team "] edition = "2018" @@ -13,5 +13,5 @@ publish = false [dependencies] wasmer = { version = "2.0", default-features = false, features = ["wat", "universal", "dylib", "compiler"] } wasmer-compiler = "2.0" -pyo3 = { version = "0.13", features = ["extension-module"] } +pyo3 = { version = "0.14", features = ["extension-module"] } enumset = "1.0.6" \ No newline at end of file diff --git a/packages/engines/README.md b/packages/engines/README.md index db535201..4abbe5e6 100644 --- a/packages/engines/README.md +++ b/packages/engines/README.md @@ -1,4 +1,4 @@ -# `wasmer_engines` +# `wasmer-engines` This crate is not compiled to a Python package. It represents engines and sibling types that are shared between the `wasmer` and the diff --git a/packages/engines/src/engines.rs b/packages/engines/src/engines.rs index 3bcca765..138e9b2a 100644 --- a/packages/engines/src/engines.rs +++ b/packages/engines/src/engines.rs @@ -12,7 +12,7 @@ use std::mem::ManuallyDrop; /// It is possible to specify a `Target` to possibly cross-compile for /// a different target. It requires a compiler. #[pyclass(unsendable, subclass)] -#[text_signature = "(/, compiler, target)"] +#[pyo3(text_signature = "(/, compiler, target)")] pub struct Universal { inner: wasmer::UniversalEngine, compiler_name: Option, @@ -102,7 +102,7 @@ impl Universal { /// It is possible to specify a `Target` to possibly cross-compile for /// a different target. It requires a compiler. #[pyclass(unsendable, subclass)] -#[text_signature = "(/, compiler, target)"] +#[pyo3(text_signature = "(/, compiler, target)")] pub struct Dylib { inner: wasmer::DylibEngine, compiler_name: Option, diff --git a/packages/engines/src/target_lexicon.rs b/packages/engines/src/target_lexicon.rs index 334f5b67..c11c00fc 100644 --- a/packages/engines/src/target_lexicon.rs +++ b/packages/engines/src/target_lexicon.rs @@ -20,7 +20,7 @@ use std::str::FromStr; /// target = target.Target(triple, cpu_features) /// ``` #[pyclass] -#[text_signature = "(triple, cpu_features)"] +#[pyo3(text_signature = "(triple, cpu_features)")] pub struct Target { inner: wasmer_compiler::Target, } @@ -70,7 +70,7 @@ impl Target { /// assert triple.default_calling_convention == 'system_v' /// ``` #[pyclass] -#[text_signature = "(triple)"] +#[pyo3(text_signature = "(triple)")] pub struct Triple { inner: wasmer_compiler::Triple, } @@ -245,7 +245,7 @@ impl PyObjectProtocol for Triple { /// cpu_features.add('sse2') /// ``` #[pyclass] -#[text_signature = "()"] +#[pyo3(text_signature = "()")] pub struct CpuFeatures { inner: EnumSet, } @@ -266,7 +266,7 @@ impl CpuFeatures { } /// Add a new CPU feature. - #[text_signature = "($self, feature)"] + #[pyo3(text_signature = "($self, feature)")] fn add(&mut self, feature: &str) -> PyResult<()> { self.inner.insert( wasmer_compiler::CpuFeature::from_str(feature) diff --git a/tests/test_import_object.py b/tests/test_import_object.py index bf513389..2e4ecf4f 100644 --- a/tests/test_import_object.py +++ b/tests/test_import_object.py @@ -56,7 +56,7 @@ def test_import_memory(): """ ) - memory = Memory(store, MemoryType(1, shared=False)) + memory = Memory(store, MemoryType(minimum=1)) view = memory.uint8_view(offset=0) import_object = ImportObject() diff --git a/tests/test_memory.py b/tests/test_memory.py index 4e8a4ff6..b15c31bb 100644 --- a/tests/test_memory.py +++ b/tests/test_memory.py @@ -13,7 +13,7 @@ def instance(): def test_constructor(): store = Store() - memory_type = MemoryType(3, shared=False) + memory_type = MemoryType(minimum=3) memory = Memory(store, memory_type) assert memory.size == 3 diff --git a/tests/test_wasi.py b/tests/test_wasi.py index 366f5308..96f0b15a 100644 --- a/tests/test_wasi.py +++ b/tests/test_wasi.py @@ -43,23 +43,14 @@ def test_wasi_env_memory(): instance = Instance(Module(store, TEST_BYTES), import_object) def test_wasi(): - python = sys.executable - result = subprocess.check_output( - [ - python, - '-c', - 'from wasmer import wasi, Store, Module, Instance; \ - store = Store(); \ - module = Module(store, open("tests/wasi.wasm", "rb").read()); \ - wasi_version = wasi.get_version(module, strict=True); \ - wasi_env = wasi.StateBuilder("test-program").argument("--foo").environments({"ABC": "DEF", "X": "YZ"}).map_directory("the_host_current_dir", ".").finalize(); \ - import_object = wasi_env.generate_import_object(store, wasi_version); \ - instance = Instance(module, import_object); \ - instance.exports._start()' - ] - ) + store = Store() + wasi_env = \ + wasi.StateBuilder("test-program"). \ + argument("--foo"). \ + environments({"ABC": "DEF", "X": "YZ"}). \ + map_directory("the_host_current_dir", "."). \ + finalize() + import_object = wasi_env.generate_import_object(store, wasi.Version.LATEST) - assert result == b'Found program name: `test-program`\n\ -Found 1 arguments: --foo\n\ -Found 2 environment variables: ABC=DEF, X=YZ\n\ -Found 1 preopened directories: DirEntry("/the_host_current_dir")\n' + instance = Instance(Module(store, TEST_BYTES), import_object) + instance.exports._start()