Tags: bytecodealliance/componentize-py
Tags
don't combine stream/future ctors so aggressively (#249) Previously, we would only emit one such constructor function per future or stream "canonical" payload type, where canonicalization would combine structurally equal (but not necessarily nominally equal) types. Since we encode the name of the payload type in the name of the constructor function, that made it hard to predict which names would be generated. Now we deduplicate based on the mangled name instead.
refactor handling of multiple WIT paths and/or worlds (#213) This primarily addresses an issue introduced in v0.22.0 such that targeting a specific WIT path and world via the CLI failed if a Python dependency with a `componentize-py.toml` file was found in the specified search path which also had its own WIT path. In that case, we'd return an error because we couldn't find the CLI-specified world in the `componentize-py.toml`-specified WIT path, without bothering to look in the CLI-specified path. We had a test for a similar scenario, but it wasn't covering this exact case. Addressing the issue required significant refactoring of how multiple WIT paths and/or worlds are juggled. Hopefully the result is a bit easier to follow, although it's still pretty hairy.
make declaration order stable when generating bindings (#212) * make declaration order stable when generating bindings Previously, the binding generator was non-deterministic in that it would generate different output for the same input across several runs due to the use of randomly-seeded `HashMap`s and `HashSet`s. Now we ensure the iteration order over those maps and sets is deterministic by first converting them to `BTreeMap`s and `BTreeSet`s, respectively. Also, the `Raises` clause we were adding to docstrings had not been updated to point to `componentize_py_types.Err`, so I fixed that as well. * bump version to 0.22.1
update Wasmtime and WASIp3 WITs, etc. (#211) * support multiple `-w` options; update to latest Wasmtime This also updates the WASIp3 examples and WIT files to use the latest RC. * add `--full-names` option and refactor public API `clippy` finally convinced me there were too many arguments to the `componentize` function, so now we have methods on structs with named fields instead. Also, print all known worlds and WIT paths if the specified world can't be found. * fix python.rs build * add new WIT files * pin mypy version used for tests * bump Wasmtime version in test.yaml
add `tcp-p3` example and test (#204) * add `tcp-p3` example and test Signed-off-by: Roman Volosatovs <[email protected]> * keep send side open while receiving in `tcp-p3` example Netcat likes to close the connection if the receive half is closed by the remote host, regardless of whether stdin has been closed, and there's no obvious way to change that behavior. So on the client side we hold both halves open until we've received something, which matches the p2 example behavior. --------- Signed-off-by: Roman Volosatovs <[email protected]> Co-authored-by: Joel Dice <[email protected]>
fix dropping of resource borrows in async-lifted exports (#182) * fix dropping of resource borrows in async-lifted exports Previously, I had been using a global variable to track borrows which needed to be dropped when returning from an export, which works fine for sync-lifted exports but not so fine for async-lifted ones. In the latter case, we would incorrectly drop borrows from other concurrent calls. Now I've eliminated the global variable in favor of tracking the borrows on a per-call basis. This also includes few minor chores: - Switch CI to use final CPython 3.14.0 release - Update Wasmtime to v39.0.0 - Update to newer wasm-tools commit I had also intended to update to WASI-SDK 29, but it seems to have broken the TCP example. Will debug that later. Signed-off-by: Joel Dice <[email protected]> * specify wasmtime==38.0.0 when testing sandbox example Signed-off-by: Joel Dice <[email protected]> --------- Signed-off-by: Joel Dice <[email protected]>
PreviousNext