Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Issue compiling embedded-svc on rustc 1.75.0-nightly (fee5518cd 2023-11-05) #58

Closed
Jesse-Cameron opened this issue Nov 6, 2023 · 1 comment

Comments

@Jesse-Cameron
Copy link

Hi there,

I recently updated to the most recent version of rust nightly, and was presented with this error when compiling embedded-svc:

   Compiling nb v1.1.0
   Compiling byteorder v1.5.0
   Compiling stable_deref_trait v1.2.0
   Compiling enumset v1.1.3
   Compiling const_format v0.2.32
   Compiling libc v0.2.149
   Compiling atomic-waker v1.1.2
   Compiling void v1.0.2
   Compiling nb v0.1.3
   Compiling embedded-hal v1.0.0-alpha.10
   Compiling anyhow v1.0.75
   Compiling embedded-hal v0.2.7
   Compiling embedded-hal-nb v1.0.0-alpha.2
   Compiling embedded-can v0.4.1
   Compiling hash32 v0.2.1
   Compiling esp-idf-hal v0.41.2
   Compiling serde v1.0.189
   Compiling no-std-net v0.5.0
   Compiling embedded-io v0.4.0
   Compiling esp-idf-sys v0.33.2
   Compiling esp-idf-svc v0.46.2
   Compiling uncased v0.9.9
   Compiling log v0.4.20
   Compiling heapless v0.7.16
   Compiling bytemuck v1.14.0
   Compiling embassy-futures v0.1.0
   Compiling rgb v0.8.36
   Compiling trainer v0.1.0 (/home/jesse/dev/rust/experimental-embed-esp32/trainer)
   Compiling embedded-svc v0.25.3
error[E0277]: `(dyn FnOnce() -> T + Send + 'static)` cannot be sent between threads safely
   --> /home/jesse/.cargo/registry/src/index.crates.io-6f17d22bba15001f/embedded-svc-0.25.3/src/utils/asyncify.rs:72:11
    |
72  |         = BlockingFuture<T> where T: Send;
    |           ^^^^^^^^^^^^^^^^^ `(dyn FnOnce() -> T + Send + 'static)` cannot be sent between threads safely
    |
    = help: the trait `Send` is not implemented for `(dyn FnOnce() -> T + Send + 'static)`
    = note: required for `Unique<(dyn FnOnce() -> T + Send + 'static)>` to implement `Send`
note: required because it appears within the type `Box<dyn FnOnce() -> T + Send>`
   --> /home/jesse/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/boxed.rs:195:12
    |
195 | pub struct Box<
    |            ^^^
note: required because it appears within the type `Option<Box<dyn FnOnce() -> T + Send>>`
   --> /home/jesse/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/option.rs:569:10
    |
569 | pub enum Option<T> {
    |          ^^^^^^
note: required because it appears within the type `BlockingFuture<T>`
   --> /home/jesse/.cargo/registry/src/index.crates.io-6f17d22bba15001f/embedded-svc-0.25.3/src/utils/asyncify.rs:87:16
    |
87  |     pub struct BlockingFuture<T> {
    |                ^^^^^^^^^^^^^^
note: required by a bound in `unblocker::Unblocker::UnblockFuture`
   --> /home/jesse/.cargo/registry/src/index.crates.io-6f17d22bba15001f/embedded-svc-0.25.3/src/executor.rs:95:57
    |
95  |             type UnblockFuture<T>: Future<Output = T> + Send
    |                                                         ^^^^ required by this bound in `Unblocker::UnblockFuture`

For more information about this error, try `rustc --explain E0277`.
error: could not compile `embedded-svc` (lib) due to previous error
warning: build failed, waiting for other jobs to finish...

Reverting to nightly-2023-10-15 resolves my issue, so it's not a deal breaker but wanted to report for your attention.

Let me know if you need any more information from my end!

Reporting

Just reporting this

@ivmarkov
Copy link
Collaborator

ivmarkov commented Nov 6, 2023

Fixed yesterday.

@ivmarkov ivmarkov closed this as completed Nov 6, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Archived in project
Development

No branches or pull requests

2 participants