Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.
Sign upBreaking change: c_char sign #40903
Comments
This comment has been minimized.
This comment has been minimized.
|
@rust-lang/libs nominating |
steveklabnik
added
I-nominated
T-libs
labels
Mar 29, 2017
This comment has been minimized.
This comment has been minimized.
|
This comment has been minimized.
This comment has been minimized.
|
Just to be clear, the rust-mozjs issue that was just quoted doesn't show an example of a rust breaking change biting us. #40317 makes that error disappear. |
This comment has been minimized.
This comment has been minimized.
|
@SimonSapin I think it's very likely that this was just missed; I know we're all very wary about making any breaking changes around libc. @alexcrichton is traveling right now, but I will try to dig into this ASAP. |
This comment has been minimized.
This comment has been minimized.
|
See also the C Types RFC rust-lang/rfcs#1783 Since one problem encountered here (@jdm) is about libc and libstd disagreeing about the types. |
This comment has been minimized.
This comment has been minimized.
|
I made both the PR in rust and libc. I'm sorry for not being explicit of the breaking change... The break change only affect i686-linux-android, which is listed as tier-3 platform. What should we do? |
This comment has been minimized.
This comment has been minimized.
|
@aturon I do believe that any std breakage here was an honest mistake, sorry if my earlier message implied otherwise. |
This comment has been minimized.
This comment has been minimized.
|
Note that there is still a silent change in behaviour that is easy to miss. That is the right shift. Previously (with |
This comment has been minimized.
This comment has been minimized.
|
I spoke a bit with @alexcrichton to get more context for this change. Echoing @malbarbo, he was aware of the breakage here but was under the impression that this platform was essentially unused (and at tier 3 status), and not considered fully stable. I'll leave the nomination here so that the libs team can discuss the policy around such cases. For the moment, the question is what steps we should take to deal with the problem at hand. From what I can tell, updating to the latest nightly addresses the problem in rust-mozjs, at least. But I'm guessing that, for Servo proper, this would require a rustup, which may be problematic? Can you provide more detail about the status of Servo with respect to this change? We could consider reverting the change, but I worry that that will make matters even worse. |
This comment has been minimized.
This comment has been minimized.
|
I do not believe updating Rust for Servo will be an issue. |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
|
Thanks @nox, and sorry for the trouble. |
This comment has been minimized.
This comment has been minimized.
|
I think the population of Rust users is well past the point where we can assume that anything is completely unused. Even if Tier 3 means we reserve the right to break things, it would be nice to announce known breakage. |
This comment has been minimized.
This comment has been minimized.
I absolutely agree. |
malbarbo
referenced this issue
Mar 30, 2017
Closed
i686-linux-android libc and libstd disagree on c_char #561
This comment has been minimized.
This comment has been minimized.
|
Just to confirm, but it looks like the servo rustup went through to this is a non-issue for Servo at the moment? Just want to see if there's any remaining fires to put out before we discuss the broader policy issue here. |
This comment has been minimized.
This comment has been minimized.
|
Yes, there is no Servo fire to put out. |
This comment has been minimized.
This comment has been minimized.
|
Ok we discussed this at the recent libs triage and our conclusions were:
Some ideas of where to announce this were "This Week in Rust", release notes for the libc crate, or maybe some dedicated thread on internals. Unfortunately though we weren't sure what the best option here was, so we haven't decided anything yet. In the meantime though I'm going to close this as we've decided not to revert. |
alexcrichton
closed this
Apr 12, 2017
This comment has been minimized.
This comment has been minimized.
https://internals.rust-lang.org/c/announcements seems designed for this purpose? It is possible to "watch" this single category in order to be notified of new threads there without being notified of every new thread on i.r-l.o. |
This comment has been minimized.
This comment has been minimized.
|
I personally feel that internals is a bit too broad, you can probably count the number of people one one hand who work with each particular tier 3 platform... |
This comment has been minimized.
This comment has been minimized.
|
@alexcrichton I'm a bit confused about the worry here -- how often do we expect this to be happening? I was concerned that internals wasn't broad enough to reach people who might care :-) |
This comment has been minimized.
This comment has been minimized.
|
Likely around once a month would be what my gut says, so yes it may not be that bad in practice. |
This comment has been minimized.
This comment has been minimized.
|
OK, let's go with internals for now, and change it up if that becomes a problem. |
SimonSapin commentedMar 29, 2017
•
edited
#40317 landed without ceremony, including a7add43 "Fix c_char (u8 -> i8) definition for i686-linux-android" which is a breaking change. Even if the previous definition was wrong, changing it is still backward incompatible in the sense that code that used to build correctly now fails to build when updating the compiler. Maybe we’ll want to make the change anyway eventually, but such breakage should be handled with more care, at least with an announcement in advance.
CC @nox, @jdm