-
Notifications
You must be signed in to change notification settings - Fork 12.8k
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
Split core::slice
to smaller mods
#76311
Conversation
e6f14b0
to
c09dc3f
Compare
cc #60302 |
c09dc3f
to
5466e83
Compare
☔ The latest upstream changes (presumably #75207) made this pull request unmergeable. Please resolve the merge conflicts. |
5466e83
to
4e00eed
Compare
Interesting, I didn't know about |
2d15cfe
to
a485264
Compare
☔ The latest upstream changes (presumably #76540) made this pull request unmergeable. Please resolve the merge conflicts. Note that reviewers usually do not review pull requests until merge conflicts are resolved! Once you resolve the conflicts, you should change the labels applied by bors to indicate that your PR is ready for review. Post this as a comment to change the labels:
|
a485264
to
b4a46b9
Compare
Rebased. |
r? @lcnr |
☔ The latest upstream changes (presumably #75021) made this pull request unmergeable. Please resolve the merge conflicts. Note that reviewers usually do not review pull requests until merge conflicts are resolved! Once you resolve the conflicts, you should change the labels applied by bors to indicate that your PR is ready for review. Post this as a comment to change the labels:
|
b4a46b9
to
80727a1
Compare
Rebased. |
☔ The latest upstream changes (presumably #76678) made this pull request unmergeable. Please resolve the merge conflicts. Note that reviewers usually do not review pull requests until merge conflicts are resolved! Once you resolve the conflicts, you should change the labels applied by bors to indicate that your PR is ready for review. Post this as a comment to change the labels:
|
80727a1
to
7a3c20e
Compare
Rebased. |
Rebasing merge conflicts in these pull requests is kinda painful without being reviewed. |
will try to review this today, sorry for being silent this weekend |
📌 Commit 6655ad7 has been approved by |
⌛ Testing commit 6655ad7 with merge 4aa7dc2038d4fe5064c83fe5737e3b7c0d086829... |
💔 Test failed - checks-actions |
I think you have to update
|
Oh, my fool. Thought that a spurious failure in the previous error. |
@bors r+ rollup=never |
📌 Commit c65050d has been approved by |
☀️ Test successful - checks-actions, checks-azure |
Using <Iter>::new instead of exposing internal fields As requested in rust-lang#76311 (comment)
Hi! This PR showed up in the weekly perf triage report. It resulted in a moderate improvement in instruction counts (up to -1.9% on I've observed some other module splitting PRs that have unexpected effects on performance. I wonder why that is? In any case, I don't think there's anything to be done here. Thanks @lzutao. |
Every module contributes one codegen unit (before cgu merging). By splitting a module you get more codegen units. This can have an effect on performance. |
Unfortunately the
#[lang = "slice"]
is too big (3003 lines), I cannot split it further.Note for reviewer:
I split core/slice/mod.rs to these modules:
ascii
: For operations on[u8]
.cmp
: For comparison operations on[T]
, like PartialEq and SliceContains impl.index
: For indexing operations like Index/IndexMut and SliceIndex.iter
: For Iterator definitions and implementation on[T]
.macros
: For iterator! and forward_iterator! macros.raw
: For free function to create&[T]
or&mut [T]
from pointer + length or a reference.The heapsort wrapper in mod.rs is removed in favor of reexport from
sort::heapsort
.