-
Notifications
You must be signed in to change notification settings - Fork 146
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
#![no_std] support #88
Comments
It's a good idea and I'd support it if someone wants to take on the task, but I don't think it's something I'd take on for a long while. There would also be some off-shoot work required to make Symphonia more viable for things like embedded targets. Things like optimizing bit IO for 32-bit machines, lowering memory usage, implementing more optimizations, etc. |
I think I have time to put together some PRs to start the equivalent There will need to be some major work reworking io::Error and std:error. Do you have any opinions on that before I take a crack at it? |
Hi @mooman219, I probably should've read this before looking at your first PR. I don't have any experience writing a no_std library so unfortunately I can't offer any solid advice or direction. I'd need to survey what other crates are doing first before I can form an opinion. Or, if you have some ideas or know what the best practice is, we can discuss them. I do have a couple general thoughts based on the research I've done since reading your message.
Going forward, perhaps we should merge any PRs into a new branch since these changes may take some time to land and settle. Alternatively, could also just push all the commits to the PR branch and merge when it's time. |
Seems sensible, the io/error related changes are the biggest pain. There's the The history here is that most of IO could be in core, but the error type couldn't be represented without an allocation, which at the time was more complicated to represent in core, so everything was left in std. |
Hi @mooman219, Apologies for being inactive on this. Unfortunately, I don't think I'll be able to help much on this until after I release v0.5. There are a number of time consuming issues to resolve for that release that I still need to address. I did poke around a little bit though, and the |
I personally don't think the io:Error's boxed custom error type is useful in general. It's incredibly specific (and usually per platform) to respond to, and the associated ErrorKind is usually more than sufficient. |
There's good news! rust-lang/rust#99917 |
Are there plans to push for
#![no_std]
support in the future, specificallycore + alloc + libm
?By the looks of it, there are a couple of std calls that for the most part have a 1:1 conversion, but path, file, and IO operations usually don't. Only including those via a flag would fill that gap.
The text was updated successfully, but these errors were encountered: