Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

Building for wasm32-unknown-emscripten fails unless wasm-bindgen version is pinned

オープン 初心者向け
#5 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
2/5
見積もり時間
1〜3時間
初心者へのやさしさ
74/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
活発
技術スタック
rust, wasm
領域
build-system

調査の方向性

Cargo.toml から始め、cargo +nightly build --target wasm32-unknown-emscripten を使って失敗を再現します。src/queue.rs の 24 行目と 79 行目付近にある closure の使用箇所を読み、その後、報告された wasm-bindgen のバージョンに対して依存関係の解決結果を確認します。target のビルドが正常に完了すれば完了です。

索引モデルが issue の本文から書いたものです。

説明

cargo +nightly build --target wasm32-unknown-emscripten fails with

error[E0277]: the type `UnsafeCell<isize>` may contain interior mutability and a reference may not be safely transferable across a catch_unwind boundary
   --> src\queue.rs:79:30
    |
 79 |                 Closure::new(move |_| state.run_all())
    |                 ------------ ^^^^^^^^^^^^^^^^^^^^^^^^ `UnsafeCell<isize>` may contain interior mutability and a reference may not be safely transferable across a catch_unwind boundary
    |                 |
    |                 required by a bound introduced by this call
    |
    = help: within `QueueState`, the trait `RefUnwindSafe` is not implemented for `UnsafeCell<isize>`
note: required because it appears within the type `Cell<isize>`
   --> C:\Users\HeartofPhos\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\cell.rs:315:12
    |
315 | pub struct Cell<T: ?Sized> {
    |            ^^^^
note: required because it appears within the type `RefCell<VecDeque<singlethread::Job>>`
   --> C:\Users\HeartofPhos\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\cell.rs:852:12
    |
852 | pub struct RefCell<T: ?Sized> {
    |            ^^^^^^^
note: required because it appears within the type `QueueState`
   --> src\queue.rs:24:8
    |
 24 | struct QueueState {
    |        ^^^^^^^^^^
    = note: required for `Rc<QueueState>` to implement `UnwindSafe`
note: required because `state` is used within this closure
   --> src\queue.rs:79:39
    |
 79 |                 Closure::new(move |_| state.run_all())
    |                                       ^^^^^
    = note: required for `{closure@src\queue.rs:79:30: 79:38}` to implement `wasm_bindgen::__rt::marker::MaybeUnwindSafe`
note: required by a bound in `ScopedClosure::<'static, T>::new`
   --> C:\Users\HeartofPhos\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\wasm-bindgen-0.2.114\src\closure.rs:244:33
    |
242 |     pub fn new<F>(t: F) -> Self
    |            --- required by a bound in this associated function
243 |     where
244 |         F: IntoWasmClosure<T> + MaybeUnwindSafe + 'static,
    |                                 ^^^^^^^^^^^^^^^ required by this bound in `ScopedClosure::<'static, T>::new`

For more information about this error, try `rustc --explain E0277`.
error: could not compile `web-task` (lib) due to 1 previous error

updating Cargo.toml with wasm-bindgen = { version = "=0.2.108", default-features = false } successfully compiles

主要言語
Rust
スター
11
フォーク
2
PR マージ指標
30日以内にマージされた PR はありません

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

bevyengine/web-task のほかの issue

bevyengine/web-task の issue をすべて見る

似ている issue

Rust の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。