rhai icon indicating copy to clipboard operation
rhai copied to clipboard

Rhai `no_std` appears to rely on `once_cell/alloc` but does not request it

Open cbiffle opened this issue 1 year ago • 3 comments

Hi! Playing with Rhai on no_std over here (on an actual platform that doesn't provide std).

Currently, 1.18.0 won't build on a platform that doesn't provide std, because it appears to be relying on the once_cell crate having the alloc feature set (to get once_cell::race::OnceBox), but isn't setting that feature itself -- at least when depended on as

rhai = { version = "1.18.0", default-features = false, features = ["no_std"] }

Adding a redundant dep to once_cell and setting the alloc feature in my build causes it to start working:

# TODO: had to add this because rhai isn't requesting a feature it relies on.
once_cell = { version = "1.19.0", default-features = false, features = ["alloc"] }

cbiffle avatar May 05 '24 19:05 cbiffle

From the commit history it looks like this might be a known bug; might be worth adding something to the README that the packaged versions require this workaround, lest it trip up more people. Feel free to close if you feel it's fixed.

cbiffle avatar May 05 '24 20:05 cbiffle

Hhhmmm... that's strange, as the example under no_std has exactly the same default-features = false, features = ["no_std"] and it builds fine...

schungx avatar May 06 '24 01:05 schungx

@cbiffle do you have more info on this?

schungx avatar Jul 06 '24 03:07 schungx