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

Remove claims of dependency-free libcore #29612

Merged
merged 1 commit into from
Nov 18, 2015
Merged

Conversation

steveklabnik
Copy link
Member

libcore does have a few deps, like noted in #29390

Fixes #29502

r? @alexcrichton

@arielb1
Copy link
Contributor

arielb1 commented Nov 5, 2015

@steveklabnik

libcore is "basically" dependency-free - it only depends on the equivalent of rlibc, rather than a system.

@steveklabnik
Copy link
Member Author

Right, but "basically" isn't the same as "is".

@alexcrichton
Copy link
Member

I'm a little sad to see this go, I fear that this level of pedantry takes away from the purpose of libcore and detracts from what it's doing. Perhaps something like a footnote could be added, although it probably just needs more explanation somewhere than just a small footnote.

@Gankra
Copy link
Contributor

Gankra commented Nov 5, 2015

Should we not regard these dependencies as bugs?

@alexcrichton
Copy link
Member

The main contention, from what I understand, is fmod and fmodf, the implementation detail of Rem for {f32,f64}. I'd also love to get rid of that dep, but I'm also not a huge fan of having basically-unsolvable bugs lying around.

Other dependencies like memcpy, rust_begin_unwind, etc, are handled in standard ways and I don't think should be considered dependencies.

@arielb1
Copy link
Contributor

arielb1 commented Nov 5, 2015

@alexcrichton

How is fmod different from the other compiler-rt dependencies (e.g. __udivdi3 for 64-bit division on i686)?

@alexcrichton
Copy link
Member

If you produce a staticlib, dependencies like __udivdi3 we'll guarantee to define somewhere (e.g. by including compiler-rt). We don't do the same for symbols like fmod or memcpy, you've got to pull them in from somewhere.

@steveklabnik
Copy link
Member Author

So, what's the call here?

@alexcrichton
Copy link
Member

My preference would be to leave this and perhaps add a caveat indicating that some symbols are needed but they have canonical implementations and they aren't always all necessary.

@steveklabnik
Copy link
Member Author

@alexcrichton what do you think about this iteration?

libcore does have a few deps, like noted in rust-lang#29390

Fixes rust-lang#29502
@alexcrichton
Copy link
Member

@bors: r+ 60c84ee rollup

looks good to me!

//! Rust Standard Library](../std/index.html). It is the portable glue
//! between the language and its libraries, defining the intrinsic and
//! primitive building blocks of all Rust code. It links to no
//! upstream libraries, no system libraries, and no libc.
//!
//! [^free]: Strictly speaking, there are some symbols which are needed but
//! they aren't always neccesary.
Copy link
Member Author

Choose a reason for hiding this comment

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

fun note: without the whitespace here, this won't render, but with it, it will

steveklabnik added a commit to steveklabnik/rust that referenced this pull request Nov 17, 2015
steveklabnik added a commit to steveklabnik/rust that referenced this pull request Nov 17, 2015
bors added a commit that referenced this pull request Nov 17, 2015
@bors bors merged commit 60c84ee into rust-lang:master Nov 18, 2015
@steveklabnik steveklabnik deleted the gh29502 branch June 19, 2016 20:31
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.

5 participants