-
Notifications
You must be signed in to change notification settings - Fork 161
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
global_allocator
and logger
could be moved to uefi-services
#563
Comments
See also my proposal from #560 (comment), in which case we would create new crates for these two features. |
TL;DR: I'd prefer to stick with Having dedicates crates for I see Additionally, if we have multiple crates for everything, we also need to make sure that all of them are compatible with the What are your thoughts? |
Well, we use crates like that all the time :) for example I strongly believe crates should be as modular and specialized as possible -- I like the Unix philosophy of "each tool does one thing well", instead of having Swiss knives with a ton of features. And it seems there are other Rust developers which think the same.
As we've seen recently in #552, not everybody wants the "all-or-nothing" package that
I agree that this could be problematic, but I think there'd be one easy solution for this: switching to a major I'll admit that I never really had any concrete plan for such a transition, since I don't know precisely when the libraries will be "ready" enough for this 😅... but considering we didn't have any major API-breaking changes in a while, we might consider the core library to be stable.
That we should get more feedback from more people ;) |
I use the I've been relying on This is just for my specific use case, though, I'd like to hear from other people on this as well. :) |
I've been pondering this issue on and off for a while now, without coming to any particularly strong opinions. Some thoughts:
Again, I don't think I have a strong opinion here, but I'm mildly in favor of dropping the |
Edit: Obsolete due to #705 Another thought: I think, we should separate the export of uefi::glboal_allocator::Allocator and setting it as #[global_allocator]. Actually, I'd prefer to remove
entirely. This limits users. This is the responsibility of the app. For example, in one of my projects, I have a allocator facade that uses a hard code copy of the uefi allocator for that reason. |
After reading your thoughts, I think, I found another way to look at things: I see the So I think, this is the main objective that differentiates those two crates and, with that in mind, the current separation of features doesn't make that much sense. For example, the Therefore, I'm in favor of manifesting the just presented point of view in our project philosophy (if all agree). |
How do we want to continue here, @nicholasbishop @GabrielMajeri I'm in favor of deprecating Instead, we should provide a
|
I'm in favor of moving forward with deprecating uefi-services. Reasoning: it's a small but noticeable improvement in ergonomics for the end user; if they previously used uefi and uefi-services, now they just have one thing to depend on (and each time they upgrade the Some bikeshedable notes on specifics:
|
Got it. I think |
Agreed with everything that @nicholasbishop said above. I'm not so sure about the last part with fixing #943 at the same time. It might be easier to first perform this refactoring/reorganization of the crate and then fix that as well. |
Thanks for pushing this along and implementing the change @phip1611 :) |
I think we could move the
global_allocator
and thelogger
entirely fromuefi
touefi-services
. This would clean up theuefi
crate. Anduefi-services
wouldn't be as thin as it is right now anymore.Thoughts?
The text was updated successfully, but these errors were encountered: