Skip to content
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

Bump MSRV to 1.80 #5934

Open
wants to merge 4 commits into
base: main
Choose a base branch
from
Open

Conversation

Manishearth
Copy link
Member

No description provided.

@Manishearth Manishearth requested a review from a team as a code owner December 19, 2024 22:31
@Manishearth Manishearth requested a review from sffc December 19, 2024 22:31
@Manishearth Manishearth mentioned this pull request Dec 19, 2024
@Manishearth
Copy link
Member Author

n.b. I kept the rustdoc nightly and the LLVM nightly separate to keep an indicator that they can be separate. However I could homogenize them if desired.

Copy link
Member

@sffc sffc left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's wait on #5935 first. Sorry.

@sffc
Copy link
Member

sffc commented Dec 21, 2024

There's a lot of good stuff in here. I think we can get to Rust 1.75 at least, and maybe Rust 1.76, without bumping LLVM. It sadly doesn't get us slice_at_checked, but I agree that if we're going to be upgrading MSRV, doing so at the major version boundary seems like a good call.

That said, if there isn't anything in 1.76 that we care about, then we should lean toward lower MSRV when possible.

@sffc
Copy link
Member

sffc commented Dec 21, 2024

Also, for the specific problem of split_at_checked, I previously found that the following code compiles to exactly the same assembly.

if i <= my_slice.len() {
    Some(my_slice.split_at(i))
} else {
    None
}

In other words, the bounds check inside split_at goes away once the code is inlined.

So, although I would be very happy to use split_at_checked, I'm not convinced it is a strong enough reason to break Xcode for the next 9 months.

@Manishearth
Copy link
Member Author

Also, for the specific problem of split_at_checked, I previously found that the following code compiles to exactly the same assembly.

Yeah I proposed this before, I don't recall what Henri felt about that. I'll comment on the other issue.

@Manishearth
Copy link
Member Author

I actually feel that the reason of "we should start 2.0 with a relatively upgraded rustc so that future upgrades are rarer" is a more compelling reason than this one API. I consider the ability to run a pair of niche FFI tests on a default Mac install to be negligible in value.

@sffc
Copy link
Member

sffc commented Dec 26, 2024

I actually feel that the reason of "we should start 2.0 with a relatively upgraded rustc so that future upgrades are rarer" is a more compelling reason than this one API.

I agree with this and am okay temporarily relaxing the Xcode constraint in order to reduce the number of MSRV changes in the 2.x stream.

I consider the ability to run a pair of niche FFI tests on a default Mac install to be negligible in value.

Discussed in #5945; it's about how a prototypical ICU4X iOS developer, one who is expected to care about binary size, should use ICU4X, not just "running niche FFI tests on a default Mac install."

@hsivonen
Copy link
Member

hsivonen commented Jan 2, 2025

Also, for the specific problem of split_at_checked, I previously found that the following code compiles to exactly the same assembly.

Yeah I proposed this before, I don't recall what Henri felt about that. I'll comment on the other issue.

Changed in the PR.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants