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

libc 0.1.9 includes an incompatible change #16

Closed
danburkert opened this issue Jul 12, 2015 · 5 comments
Closed

libc 0.1.9 includes an incompatible change #16

danburkert opened this issue Jul 12, 2015 · 5 comments

Comments

@danburkert
Copy link
Contributor

libc 0.1.9 includes at least one incompatible change over 0.1.8 (a change to the function signature of libc::funcs::bsd44::ioctl). According to Rust's version of semver, the 0.1.9 release should have incremented the minor version number.

@alexcrichton
Copy link
Member

Small tweaks like this fall within the "semver compatible" vision of Rust because a small local annotation can be used to fix any compile errors. Additionally the changes provided are required for correctness, so it's possible to lead to memory unsafety if these aren't fixed.

@danburkert
Copy link
Contributor Author

Small tweaks like this fall within the "semver compatible" vision of Rust because a small local annotation can be used to fix any compile errors.

I'm not sure what annotation you are referring to here, but if it's setting the dependency "^0.1.8", that does not work because Cargo assumes 0.1.9 is compatible with 0.1.8. If you mean setting the dependency "=0.1.8", that does not work because Cargo appears to be broken.

Additionally the changes provided are required for correctness, so it's possible to lead to memory unsafety if these aren't fixed.

Absolutely, and thank you for making the fix. My only concern is that the minor version was not bumped.

@alexcrichton
Copy link
Member

I've yanked 0.1.9 and this can be discussed later.

@perlun
Copy link

perlun commented Jul 13, 2015

@danburkert - if there are really "breaking changes", it's not even enough to bump the minor version. The major version should also be adjusted, according to the link you posted.

However, it is also stated here (SemVer spec) that:

Major version zero (0.y.z) is for initial development. Anything may change at any time. The public API should not be considered stable.

So 0.1.9 being incompatible with 0.1.8 is perfectly fine in that sense. Still, all breaking changes should of course be thought through nonetheless (to avoid messing up for people), and even more and more as the usage of the library increases. My $0.02. 😄

@agrover
Copy link

agrover commented Jul 22, 2015

Is this discussion ongoing somewhere?

dlrobertson pushed a commit to dlrobertson/libc that referenced this issue Oct 31, 2017
Correct paths in gcc build (so it can find required files)
bors pushed a commit that referenced this issue Sep 24, 2019
move rtpSpawn and RTP_ID_ERROR from libstd to libc
danielverkamp pushed a commit to danielverkamp/libc that referenced this issue Apr 28, 2020
lvllvl added a commit to lvllvl/libc that referenced this issue Jan 7, 2025
# This is the 1st commit message:

chore: add labels to FIXMEs

# This is the commit message rust-lang#2:

change label for .field FIXMEs
# This is the commit message rust-lang#3:

add fixme csv

# This is the commit message rust-lang#4:

Update fixmes.csv
# This is the commit message rust-lang#5:

Update fixmes.csv
# This is the commit message rust-lang#6:

Update fixmes.csv
# This is the commit message rust-lang#7:

Update fixmes.csv
# This is the commit message rust-lang#8:

Update fixmes.csv
# This is the commit message rust-lang#9:

Update fixmes.csv
# This is the commit message rust-lang#10:

Update fixmes.csv
# This is the commit message rust-lang#11:

Update fixmes.csv
# This is the commit message rust-lang#12:

Update fixmes.csv
# This is the commit message rust-lang#13:

Update fixmes.csv
# This is the commit message rust-lang#14:

Update fixmes.csv
# This is the commit message rust-lang#15:

Update fixmes.csv
# This is the commit message rust-lang#16:

Update fixmes.csv
# This is the commit message rust-lang#17:

Update fixmes.csv
# This is the commit message rust-lang#18:

updates to csv

# This is the commit message rust-lang#19:

Update fixmes.csv
# This is the commit message rust-lang#20:

Update fixmes.csv
# This is the commit message rust-lang#21:

Update fixmes.csv
# This is the commit message rust-lang#22:

Update fixmes.csv remove hurd"
# This is the commit message rust-lang#23:

Update fixmes.csv remove "'s
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

No branches or pull requests

4 participants