Conversation
Dependency cleanup, Wasmer 6.1.0
Rust edition 2024
There was a problem hiding this comment.
Pull request overview
This PR prepares release v0.5.1 with upgrades to Rust edition 2024, Wasmer v6.1.0, and various dependency updates.
Changes:
- Upgraded to Rust edition 2024 with required unsafe block additions
- Updated to Wasmer v6.1.0 and bumped other dependencies
- Refactored logger module from vm-executor-wasmer to c-api crate
- Updated CI toolchain to Rust 1.92 and macOS runners
Reviewed changes
Copilot reviewed 45 out of 46 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| vm-executor/Cargo.toml | Version bump to 0.5.1, edition 2024, removed unused toml dependency |
| vm-executor-wasmer/Cargo.toml | Version bump, edition 2024, Wasmer 6.1 upgrade, dependency updates |
| vm-executor-experimental/Cargo.toml | Version bump, edition 2024, Wasmer 6.1 upgrade, dependency updates |
| c-api/Cargo.toml | Edition 2024, added chrono dependency, updated cbindgen and env_logger |
| meta/Cargo.toml | Edition 2024, relaxed version constraints for syn and quote |
| vm-executor/src/lib.rs | Reordered exports (check_missing_wasm moved after MissingWasmError) |
| vm-executor-wasmer/src/*.rs | Import reordering, let-else pattern adoption, removed logger initialization |
| vm-executor-experimental/src/*.rs | Import reordering, let-else pattern adoption |
| c-api/src/*.rs | Added unsafe blocks for edition 2024, moved to #[unsafe(no_mangle)] syntax |
| c-api/src/wasmer_logger.rs | New file with logger implementation (moved from vm-executor-wasmer) |
| c-api/libvmexeccapi.h | Reformatted with improved typedef naming and function parameter formatting |
| .cargo/config.toml | Added config to disable debug assertions globally |
| .github/workflows/*.yml | Updated to Rust 1.92 and updated macOS runners |
| CHANGELOG.md | Added release notes for v0.5.1 |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| # Disable debug assertions to prevent unsafe precondition check failures | ||
| # from older wasmer versions that don't meet newer Rust safety requirements. | ||
| # These checks are optional and the code works correctly despite triggering them. | ||
| [build] | ||
| rustflags = ["-C", "debug-assertions=no"] |
There was a problem hiding this comment.
Disabling debug assertions globally via rustflags affects all builds, including debug builds. This is a significant change that removes important runtime safety checks. Consider:
- If this is only needed to work around issues with the Wasmer dependency, it might be better to wait for a fixed Wasmer version or apply targeted workarounds
- Document specifically which precondition checks are failing and why they're safe to ignore
- Consider using conditional compilation or feature flags to only disable assertions when necessary
- Evaluate if there's a more targeted solution (e.g., suppressing specific warnings or using allow attributes on specific code blocks)
| # Disable debug assertions to prevent unsafe precondition check failures | |
| # from older wasmer versions that don't meet newer Rust safety requirements. | |
| # These checks are optional and the code works correctly despite triggering them. | |
| [build] | |
| rustflags = ["-C", "debug-assertions=no"] | |
| # NOTE: We intentionally do not disable debug assertions globally here. | |
| # Older wasmer versions may trigger precondition check failures under newer | |
| # Rust safety requirements, but turning off debug assertions for all builds | |
| # removes important runtime safety checks. | |
| # | |
| # If you *must* work around such issues locally, prefer setting RUSTFLAGS | |
| # explicitly for that build (e.g. `RUSTFLAGS="-C debug-assertions=no" cargo build`) | |
| # or using a more targeted approach (features / conditional compilation) in code. | |
| [build] |
There was a problem hiding this comment.
Otherwise we cannot run cargo check properly from root level.
A possible solution would be to separate the crate in its own workspace. But it's easier to maintain like this for now.
We will eventually migrate away from Wasmer 2.2 and the problem will go away.
No description provided.