Skip to content

Commit 8fa299f

Browse files
authored
Simplify no_std implementation (#4347)
1 parent f1e2d6e commit 8fa299f

File tree

23 files changed

+136
-290
lines changed

23 files changed

+136
-290
lines changed

.github/workflows/main.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -582,7 +582,6 @@ jobs:
582582
run: |
583583
cargo update -p bumpalo --precise 3.12.0
584584
cargo update -p log --precise 0.4.18
585-
cargo update -p scoped-tls --precise 1.0.0
586585
- run: cargo build --target ${{ matrix.target }} ${{ matrix.features }}
587586

588587
msrv-lib:

Cargo.toml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ default = ["std", "msrv"]
2626
enable-interning = ["std"]
2727
serde-serialize = ["serde", "serde_json", "std"]
2828
spans = []
29-
std = ["wasm-bindgen-macro/std", "once_cell/std"]
29+
std = []
3030

3131
# Opt-in for Rust language features that require a higher MSRV.
3232
#
@@ -53,9 +53,10 @@ once_cell = { version = "1.12", default-features = false }
5353
rustversion = { version = "1.0", optional = true }
5454
serde = { version = "1.0", optional = true }
5555
serde_json = { version = "1.0", optional = true }
56-
wasm-bindgen-macro = { path = "crates/macro", version = "=0.2.99", default-features = false }
56+
wasm-bindgen-macro = { path = "crates/macro", version = "=0.2.99" }
5757

5858
[dev-dependencies]
59+
once_cell = "1"
5960
wasm-bindgen-test = { path = 'crates/test' }
6061

6162
[target.'cfg(target_arch = "wasm32")'.dev-dependencies]

crates/backend/Cargo.toml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,7 @@ rust-version = "1.57"
1414
version = "0.2.99"
1515

1616
[features]
17-
default = ["std"]
1817
extra-traits = ["syn/extra-traits"]
19-
std = []
2018

2119
[dependencies]
2220
bumpalo = "3.0.0"

crates/backend/src/codegen.rs

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1803,24 +1803,12 @@ fn thread_local_import(
18031803
}
18041804
},
18051805
ast::ThreadLocal::V2 => {
1806-
#[cfg(feature = "std")]
1807-
let inner = quote! {
1808-
#wasm_bindgen::__rt::std::thread_local!(static _VAL: #actual_ty = init(););
1809-
#wasm_bindgen::JsThreadLocal {
1810-
__inner: &_VAL,
1811-
}
1812-
};
1813-
#[cfg(not(feature = "std"))]
1814-
let inner = quote! {
1815-
#wasm_bindgen::__wbindgen_thread_local!(#wasm_bindgen, #actual_ty)
1816-
};
1817-
18181806
quote! {
18191807
#vis static #name: #wasm_bindgen::JsThreadLocal<#actual_ty> = {
18201808
fn init() -> #actual_ty {
18211809
#init
18221810
}
1823-
#inner
1811+
#wasm_bindgen::__wbindgen_thread_local!(#wasm_bindgen, #actual_ty)
18241812
};
18251813
}
18261814
}

crates/cli/tests/reference/anyref-import-catch.wat

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
(import "./reference_test_bg.js" "__wbindgen_init_externref_table" (func (;0;) (type 0)))
77
(func $__wbindgen_exn_store (;1;) (type 3) (param i32))
88
(func $__externref_table_dealloc (;2;) (type 3) (param i32))
9-
(func $__externref_table_alloc (;3;) (type 1) (result i32))
10-
(func $"exported multivalue shim" (;4;) (type 2) (result i32 i32))
9+
(func $"exported multivalue shim" (;3;) (type 2) (result i32 i32))
10+
(func $__externref_table_alloc (;4;) (type 1) (result i32))
1111
(table (;0;) 128 externref)
1212
(memory (;0;) 17)
1313
(export "memory" (memory 0))

crates/cli/tests/reference/echo.wat

Lines changed: 47 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -46,53 +46,53 @@
4646
(func $echo_i64 (;29;) (type 11) (param i64) (result i64))
4747
(func $echo_f64 (;30;) (type 14) (param f64) (result f64))
4848
(func $__wbindgen_free (;31;) (type 6) (param i32 i32 i32))
49-
(func $__externref_table_alloc (;32;) (type 1) (result i32))
50-
(func $__wbg_foo_free (;33;) (type 3) (param i32 i32))
51-
(func $"echo_option_u128 multivalue shim" (;34;) (type 9) (param i32 i64 i64) (result i32 i64 i64))
52-
(func $"echo_option_i128 multivalue shim" (;35;) (type 9) (param i32 i64 i64) (result i32 i64 i64))
53-
(func $"echo_u128 multivalue shim" (;36;) (type 12) (param i64 i64) (result i64 i64))
54-
(func $"echo_i128 multivalue shim" (;37;) (type 12) (param i64 i64) (result i64 i64))
55-
(func $"echo_string multivalue shim" (;38;) (type 5) (param i32 i32) (result i32 i32))
56-
(func $"echo_vec_u8 multivalue shim" (;39;) (type 5) (param i32 i32) (result i32 i32))
57-
(func $"echo_vec_i8 multivalue shim" (;40;) (type 5) (param i32 i32) (result i32 i32))
58-
(func $"echo_vec_u16 multivalue shim" (;41;) (type 5) (param i32 i32) (result i32 i32))
59-
(func $"echo_vec_i16 multivalue shim" (;42;) (type 5) (param i32 i32) (result i32 i32))
60-
(func $"echo_vec_u32 multivalue shim" (;43;) (type 5) (param i32 i32) (result i32 i32))
61-
(func $"echo_vec_i32 multivalue shim" (;44;) (type 5) (param i32 i32) (result i32 i32))
62-
(func $"echo_vec_u64 multivalue shim" (;45;) (type 5) (param i32 i32) (result i32 i32))
63-
(func $"echo_vec_i64 multivalue shim" (;46;) (type 5) (param i32 i32) (result i32 i32))
64-
(func $"echo_vec_uninit_u8 multivalue shim" (;47;) (type 5) (param i32 i32) (result i32 i32))
65-
(func $"echo_vec_uninit_i8 multivalue shim" (;48;) (type 5) (param i32 i32) (result i32 i32))
66-
(func $"echo_vec_uninit_u16 multivalue shim" (;49;) (type 5) (param i32 i32) (result i32 i32))
67-
(func $"echo_vec_uninit_i16 multivalue shim" (;50;) (type 5) (param i32 i32) (result i32 i32))
68-
(func $"echo_vec_uninit_u32 multivalue shim" (;51;) (type 5) (param i32 i32) (result i32 i32))
69-
(func $"echo_vec_uninit_i32 multivalue shim" (;52;) (type 5) (param i32 i32) (result i32 i32))
70-
(func $"echo_vec_uninit_u64 multivalue shim" (;53;) (type 5) (param i32 i32) (result i32 i32))
71-
(func $"echo_vec_uninit_i64 multivalue shim" (;54;) (type 5) (param i32 i32) (result i32 i32))
72-
(func $"echo_vec_string multivalue shim" (;55;) (type 5) (param i32 i32) (result i32 i32))
73-
(func $"echo_vec_struct multivalue shim" (;56;) (type 5) (param i32 i32) (result i32 i32))
74-
(func $"echo_option_u64 multivalue shim" (;57;) (type 8) (param i32 i64) (result i32 i64))
75-
(func $"echo_option_i64 multivalue shim" (;58;) (type 8) (param i32 i64) (result i32 i64))
76-
(func $"echo_option_f64 multivalue shim" (;59;) (type 10) (param i32 f64) (result i32 f64))
77-
(func $"echo_option_string multivalue shim" (;60;) (type 5) (param i32 i32) (result i32 i32))
78-
(func $"echo_option_vec_u8 multivalue shim" (;61;) (type 5) (param i32 i32) (result i32 i32))
79-
(func $"echo_option_vec_i8 multivalue shim" (;62;) (type 5) (param i32 i32) (result i32 i32))
80-
(func $"echo_option_vec_u16 multivalue shim" (;63;) (type 5) (param i32 i32) (result i32 i32))
81-
(func $"echo_option_vec_i16 multivalue shim" (;64;) (type 5) (param i32 i32) (result i32 i32))
82-
(func $"echo_option_vec_u32 multivalue shim" (;65;) (type 5) (param i32 i32) (result i32 i32))
83-
(func $"echo_option_vec_i32 multivalue shim" (;66;) (type 5) (param i32 i32) (result i32 i32))
84-
(func $"echo_option_vec_u64 multivalue shim" (;67;) (type 5) (param i32 i32) (result i32 i32))
85-
(func $"echo_option_vec_i64 multivalue shim" (;68;) (type 5) (param i32 i32) (result i32 i32))
86-
(func $"echo_option_vec_uninit_u8 multivalue shim" (;69;) (type 5) (param i32 i32) (result i32 i32))
87-
(func $"echo_option_vec_uninit_i8 multivalue shim" (;70;) (type 5) (param i32 i32) (result i32 i32))
88-
(func $"echo_option_vec_uninit_u16 multivalue shim" (;71;) (type 5) (param i32 i32) (result i32 i32))
89-
(func $"echo_option_vec_uninit_i16 multivalue shim" (;72;) (type 5) (param i32 i32) (result i32 i32))
90-
(func $"echo_option_vec_uninit_u32 multivalue shim" (;73;) (type 5) (param i32 i32) (result i32 i32))
91-
(func $"echo_option_vec_uninit_i32 multivalue shim" (;74;) (type 5) (param i32 i32) (result i32 i32))
92-
(func $"echo_option_vec_uninit_u64 multivalue shim" (;75;) (type 5) (param i32 i32) (result i32 i32))
93-
(func $"echo_option_vec_uninit_i64 multivalue shim" (;76;) (type 5) (param i32 i32) (result i32 i32))
94-
(func $"echo_option_vec_string multivalue shim" (;77;) (type 5) (param i32 i32) (result i32 i32))
95-
(func $"echo_option_vec_struct multivalue shim" (;78;) (type 5) (param i32 i32) (result i32 i32))
49+
(func $__wbg_foo_free (;32;) (type 3) (param i32 i32))
50+
(func $"echo_option_u128 multivalue shim" (;33;) (type 9) (param i32 i64 i64) (result i32 i64 i64))
51+
(func $"echo_option_i128 multivalue shim" (;34;) (type 9) (param i32 i64 i64) (result i32 i64 i64))
52+
(func $"echo_u128 multivalue shim" (;35;) (type 12) (param i64 i64) (result i64 i64))
53+
(func $"echo_i128 multivalue shim" (;36;) (type 12) (param i64 i64) (result i64 i64))
54+
(func $"echo_string multivalue shim" (;37;) (type 5) (param i32 i32) (result i32 i32))
55+
(func $"echo_vec_u8 multivalue shim" (;38;) (type 5) (param i32 i32) (result i32 i32))
56+
(func $"echo_vec_i8 multivalue shim" (;39;) (type 5) (param i32 i32) (result i32 i32))
57+
(func $"echo_vec_u16 multivalue shim" (;40;) (type 5) (param i32 i32) (result i32 i32))
58+
(func $"echo_vec_i16 multivalue shim" (;41;) (type 5) (param i32 i32) (result i32 i32))
59+
(func $"echo_vec_u32 multivalue shim" (;42;) (type 5) (param i32 i32) (result i32 i32))
60+
(func $"echo_vec_i32 multivalue shim" (;43;) (type 5) (param i32 i32) (result i32 i32))
61+
(func $"echo_vec_u64 multivalue shim" (;44;) (type 5) (param i32 i32) (result i32 i32))
62+
(func $"echo_vec_i64 multivalue shim" (;45;) (type 5) (param i32 i32) (result i32 i32))
63+
(func $"echo_vec_uninit_u8 multivalue shim" (;46;) (type 5) (param i32 i32) (result i32 i32))
64+
(func $"echo_vec_uninit_i8 multivalue shim" (;47;) (type 5) (param i32 i32) (result i32 i32))
65+
(func $"echo_vec_uninit_u16 multivalue shim" (;48;) (type 5) (param i32 i32) (result i32 i32))
66+
(func $"echo_vec_uninit_i16 multivalue shim" (;49;) (type 5) (param i32 i32) (result i32 i32))
67+
(func $"echo_vec_uninit_u32 multivalue shim" (;50;) (type 5) (param i32 i32) (result i32 i32))
68+
(func $"echo_vec_uninit_i32 multivalue shim" (;51;) (type 5) (param i32 i32) (result i32 i32))
69+
(func $"echo_vec_uninit_u64 multivalue shim" (;52;) (type 5) (param i32 i32) (result i32 i32))
70+
(func $"echo_vec_uninit_i64 multivalue shim" (;53;) (type 5) (param i32 i32) (result i32 i32))
71+
(func $"echo_vec_string multivalue shim" (;54;) (type 5) (param i32 i32) (result i32 i32))
72+
(func $"echo_vec_struct multivalue shim" (;55;) (type 5) (param i32 i32) (result i32 i32))
73+
(func $"echo_option_u64 multivalue shim" (;56;) (type 8) (param i32 i64) (result i32 i64))
74+
(func $"echo_option_i64 multivalue shim" (;57;) (type 8) (param i32 i64) (result i32 i64))
75+
(func $"echo_option_f64 multivalue shim" (;58;) (type 10) (param i32 f64) (result i32 f64))
76+
(func $"echo_option_string multivalue shim" (;59;) (type 5) (param i32 i32) (result i32 i32))
77+
(func $"echo_option_vec_u8 multivalue shim" (;60;) (type 5) (param i32 i32) (result i32 i32))
78+
(func $"echo_option_vec_i8 multivalue shim" (;61;) (type 5) (param i32 i32) (result i32 i32))
79+
(func $"echo_option_vec_u16 multivalue shim" (;62;) (type 5) (param i32 i32) (result i32 i32))
80+
(func $"echo_option_vec_i16 multivalue shim" (;63;) (type 5) (param i32 i32) (result i32 i32))
81+
(func $"echo_option_vec_u32 multivalue shim" (;64;) (type 5) (param i32 i32) (result i32 i32))
82+
(func $"echo_option_vec_i32 multivalue shim" (;65;) (type 5) (param i32 i32) (result i32 i32))
83+
(func $"echo_option_vec_u64 multivalue shim" (;66;) (type 5) (param i32 i32) (result i32 i32))
84+
(func $"echo_option_vec_i64 multivalue shim" (;67;) (type 5) (param i32 i32) (result i32 i32))
85+
(func $"echo_option_vec_uninit_u8 multivalue shim" (;68;) (type 5) (param i32 i32) (result i32 i32))
86+
(func $"echo_option_vec_uninit_i8 multivalue shim" (;69;) (type 5) (param i32 i32) (result i32 i32))
87+
(func $"echo_option_vec_uninit_u16 multivalue shim" (;70;) (type 5) (param i32 i32) (result i32 i32))
88+
(func $"echo_option_vec_uninit_i16 multivalue shim" (;71;) (type 5) (param i32 i32) (result i32 i32))
89+
(func $"echo_option_vec_uninit_u32 multivalue shim" (;72;) (type 5) (param i32 i32) (result i32 i32))
90+
(func $"echo_option_vec_uninit_i32 multivalue shim" (;73;) (type 5) (param i32 i32) (result i32 i32))
91+
(func $"echo_option_vec_uninit_u64 multivalue shim" (;74;) (type 5) (param i32 i32) (result i32 i32))
92+
(func $"echo_option_vec_uninit_i64 multivalue shim" (;75;) (type 5) (param i32 i32) (result i32 i32))
93+
(func $"echo_option_vec_string multivalue shim" (;76;) (type 5) (param i32 i32) (result i32 i32))
94+
(func $"echo_option_vec_struct multivalue shim" (;77;) (type 5) (param i32 i32) (result i32 i32))
95+
(func $__externref_table_alloc (;78;) (type 1) (result i32))
9696
(table (;0;) 128 externref)
9797
(memory (;0;) 17)
9898
(export "memory" (memory 0))

crates/cli/tests/reference/import.wat

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
(import "./reference_test_bg.js" "__wbindgen_init_externref_table" (func (;0;) (type 0)))
77
(func $__wbindgen_exn_store (;1;) (type 3) (param i32))
88
(func $__externref_table_dealloc (;2;) (type 3) (param i32))
9-
(func $__externref_table_alloc (;3;) (type 1) (result i32))
10-
(func $"exported multivalue shim" (;4;) (type 2) (result i32 i32))
9+
(func $"exported multivalue shim" (;3;) (type 2) (result i32 i32))
10+
(func $__externref_table_alloc (;4;) (type 1) (result i32))
1111
(table (;0;) 128 externref)
1212
(memory (;0;) 17)
1313
(export "memory" (memory 0))

crates/cli/tests/reference/static.wat

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
(type (;0;) (func))
33
(type (;1;) (func (result i32)))
44
(import "./reference_test_bg.js" "__wbindgen_init_externref_table" (func (;0;) (type 0)))
5-
(func $__externref_table_alloc (;1;) (type 1) (result i32))
6-
(func $exported (;2;) (type 0))
5+
(func $exported (;1;) (type 0))
6+
(func $__externref_table_alloc (;2;) (type 1) (result i32))
77
(table (;0;) 128 externref)
88
(memory (;0;) 17)
99
(export "memory" (memory 0))

crates/futures/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ wasm-bindgen = { path = "../..", version = '=0.2.99', default-features = false }
2626
[features]
2727
default = ["std"]
2828
futures-core-03-stream = ['futures-core']
29-
std = ["wasm-bindgen/std", "js-sys/std", "web-sys/std", "once_cell/std"]
29+
std = ["wasm-bindgen/std", "js-sys/std", "web-sys/std"]
3030

3131
[target.'cfg(target_feature = "atomics")'.dependencies]
3232
web-sys = { path = "../web-sys", version = "=0.3.76", default-features = false, features = [

crates/futures/src/lib.rs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,9 @@
3131
//! asynchronous and I/O work.
3232
3333
#![cfg_attr(not(feature = "std"), no_std)]
34-
#![cfg_attr(target_feature = "atomics", feature(stdarch_wasm_atomic_wait))]
3534
#![cfg_attr(
36-
all(not(feature = "std"), target_feature = "atomics"),
37-
feature(thread_local)
35+
target_feature = "atomics",
36+
feature(thread_local, stdarch_wasm_atomic_wait)
3837
)]
3938
#![deny(missing_docs)]
4039
#![cfg_attr(docsrs, feature(doc_cfg))]

0 commit comments

Comments
 (0)