Skip to content

Commit 844f862

Browse files
authored
Update to wasm-tools 239 (#1383)
1 parent 867955d commit 844f862

File tree

6 files changed

+101
-47
lines changed

6 files changed

+101
-47
lines changed

Cargo.lock

Lines changed: 36 additions & 36 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -33,13 +33,13 @@ prettyplease = "0.2.20"
3333
syn = { version = "2.0.89", features = ["printing"] }
3434
futures = "0.3.31"
3535

36-
wat = "1.238.0"
37-
wasmparser = "0.238.0"
38-
wasm-encoder = "0.238.0"
39-
wasm-metadata = { version = "0.238.0", default-features = false }
40-
wit-parser = "0.238.0"
41-
wit-component = "0.238.0"
42-
wasm-compose = "0.238.0"
36+
wat = "1.239.0"
37+
wasmparser = "0.239.0"
38+
wasm-encoder = "0.239.0"
39+
wasm-metadata = { version = "0.239.0", default-features = false }
40+
wit-parser = "0.239.0"
41+
wit-component = "0.239.0"
42+
wasm-compose = "0.239.0"
4343

4444
wit-bindgen-core = { path = 'crates/core', version = '0.45.1' }
4545
wit-bindgen-c = { path = 'crates/c', version = '0.45.1' }
@@ -89,3 +89,4 @@ csharp = ['dep:wit-bindgen-csharp']
8989
csharp-mono = ['csharp']
9090
moonbit = ['dep:wit-bindgen-moonbit']
9191
async = []
92+

crates/c/src/lib.rs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -757,6 +757,8 @@ typedef enum {snake}_waitable_state {{
757757
}} {snake}_waitable_state_t;
758758
759759
void {snake}_backpressure_set(bool enable);
760+
void {snake}_backpressure_inc(void);
761+
void {snake}_backpressure_dec(void);
760762
void* {snake}_context_get(void);
761763
void {snake}_context_set(void*);
762764
"
@@ -826,6 +828,20 @@ void {snake}_backpressure_set(bool enable) {{
826828
__backpressure_set(enable);
827829
}}
828830
831+
__attribute__((__import_module__("$root"), __import_name__("[backpressure-inc]")))
832+
extern void __backpressure_inc(void);
833+
834+
void {snake}_backpressure_inc(void) {{
835+
__backpressure_inc();
836+
}}
837+
838+
__attribute__((__import_module__("$root"), __import_name__("[backpressure-dec]")))
839+
extern void __backpressure_dec(void);
840+
841+
void {snake}_backpressure_dec(void) {{
842+
__backpressure_dec();
843+
}}
844+
829845
__attribute__((__import_module__("$root"), __import_name__("[context-get-0]")))
830846
extern void* __context_get(void);
831847

crates/guest-rust/src/lib.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -874,7 +874,8 @@ pub mod rt;
874874

875875
#[cfg(feature = "async")]
876876
pub use rt::async_support::{
877-
backpressure_set, block_on, spawn, yield_async, yield_blocking, AbiBuffer, FutureRead,
878-
FutureReader, FutureWrite, FutureWriteCancel, FutureWriteError, FutureWriter, StreamRead,
879-
StreamReader, StreamResult, StreamWrite, StreamWriter,
877+
backpressure_dec, backpressure_inc, backpressure_set, block_on, spawn, yield_async,
878+
yield_blocking, AbiBuffer, FutureRead, FutureReader, FutureWrite, FutureWriteCancel,
879+
FutureWriteError, FutureWriter, StreamRead, StreamReader, StreamResult, StreamWrite,
880+
StreamWriter,
880881
};

crates/guest-rust/src/rt/async_support.rs

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -515,6 +515,7 @@ pub async fn yield_async() {
515515
/// When `enabled` is `true`, this tells the host to defer any new calls to this
516516
/// component instance until further notice (i.e. until `backpressure.set` is
517517
/// called again with `enabled` set to `false`).
518+
#[deprecated = "use backpressure_{inc,dec} instead"]
518519
pub fn backpressure_set(enabled: bool) {
519520
#[cfg(not(target_arch = "wasm32"))]
520521
unsafe fn backpressure_set(_: i32) {
@@ -531,6 +532,40 @@ pub fn backpressure_set(enabled: bool) {
531532
unsafe { backpressure_set(if enabled { 1 } else { 0 }) }
532533
}
533534

535+
/// Call the `backpressure.inc` canonical built-in function.
536+
pub fn backpressure_inc() {
537+
#[cfg(not(target_arch = "wasm32"))]
538+
unsafe fn backpressure_inc() {
539+
unreachable!();
540+
}
541+
542+
#[cfg(target_arch = "wasm32")]
543+
#[link(wasm_import_module = "$root")]
544+
extern "C" {
545+
#[link_name = "[backpressure-inc]"]
546+
fn backpressure_inc();
547+
}
548+
549+
unsafe { backpressure_inc() }
550+
}
551+
552+
/// Call the `backpressure.dec` canonical built-in function.
553+
pub fn backpressure_dec() {
554+
#[cfg(not(target_arch = "wasm32"))]
555+
unsafe fn backpressure_dec() {
556+
unreachable!();
557+
}
558+
559+
#[cfg(target_arch = "wasm32")]
560+
#[link(wasm_import_module = "$root")]
561+
extern "C" {
562+
#[link_name = "[backpressure-dec]"]
563+
fn backpressure_dec();
564+
}
565+
566+
unsafe { backpressure_dec() }
567+
}
568+
534569
fn context_get() -> *mut u8 {
535570
#[cfg(not(target_arch = "wasm32"))]
536571
unsafe fn get() -> *mut u8 {

tests/runtime-async/async/cancel-import/test.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ impl crate::exports::my::test::i::Guest for Component {
1212
}
1313

1414
fn backpressure_set(x: bool) {
15-
wit_bindgen::backpressure_set(x)
15+
#[expect(deprecated)]
16+
return wit_bindgen::backpressure_set(x);
1617
}
1718
}

0 commit comments

Comments
 (0)