-
Notifications
You must be signed in to change notification settings - Fork 63
Remove lazy_static dependancy
#25
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
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
The vast majority of these are not needed. This also makes it easier to: - Add code - Tell which sections actually are testing-dependent
This makes it harder to forget to append "\n" to log statments. efi::console is also modified to take the lock outside of the loop. Signed-off-by: Joe Richey <[email protected]>
The pml2 tables and stack are now explictly allocated about 1 MiB. Signed-off-by: Joe Richey <[email protected]>
This allows us to define all of our long-mode assembly in a separate file, making maintaince easier. Signed-off-by: Joe Richey <[email protected]>
It turns out we don't need MMIO devices above 4 GiB. Signed-off-by: Joe Richey <[email protected]>
The asm files use symbols in layout.ld, which won't exsist when tests are run on the host (as it uses the host's linker script). This isn't an issue for Rust code, as we have LTO enabled. Signed-off-by: Joe Richey <[email protected]>
We can just get the address_space_gib symbol from the linker, which lets us avoid the need for a separate ADDRESS_SPACE_GIB constant. Signed-off-by: Joe Richey <[email protected]>
Logging to serial outputs on all panics significantly increases code size. We add two (on by default) features to disable serial logging: - Everywhere - Just in panics Signed-off-by: Joe Richey <[email protected]>
By upgrading to spin 0.5, we can just use the "const fn" Mutex::new. Signed-off-by: Joe Richey <[email protected]>
This was done by removing depenance on `Default` and just manually implementing a `const fn` `Allocator::new()`. This now allows us to remove lazy_static as dependancy entirely. Signed-off-by: Joe Richey <[email protected]>
rbradford
approved these changes
Nov 13, 2019
Member
rbradford
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm, fantastic changes! These are really improving the code quality.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Depends on #23
We only use
lazy_staticforspin::Mutex, but that has aconst fnconstructor, solazy_staticisn't needed. See the individual commits for more detailed info.The only significant change was adding a
const fnimplementation forAllocator::new, asDefault::defaultis neverconst fn.Binary sizes (release build, in bytes, log-serial = true, log-panic = false):