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

#26351 (Use TLS to store a type context for pretty-printing types) + #26147. #26412

Closed
wants to merge 51 commits into from

Conversation

eddyb
Copy link
Member

@eddyb eddyb commented Jun 18, 2015

Rebased on top of the current @bors merge of #26147 to prevent #26351 from going stale.
Closes #26351.

This commit shards the broad `core` feature of the libcore library into finer
grained features. This split groups together similar APIs and enables tracking
each API separately, giving a better sense of where each feature is within the
stabilization process.

A few minor APIs were deprecated along the way:

* Iterator::reverse_in_place
* marker::NoCopy
This commit also deprecates the `as_string` and `as_slice` free functions in the
`string` and `vec` modules.
This trait has not proven itself over time as being core and fundamentally
useful to iterators, so it's being deprecated to allow time to iterate on it out
of tree.
Neither of these iterators has seen enough usage to justify their position in
the standard library, so these unstable iterators are being slated for deletion.
Unsafe patterns such as `slice::from_raw_parts` and `CStr::from_ptr` have shown
that dealing with lifetimes, while useful, is often a hindrance. Consequently
these functions are rarely called today and are being deprecated.
This function has seen very little use and it seems better to explore this
functionality through iterator adaptors instead of specialized functions.
This trait has seen very little usage and while safe, may not belong in the
standard library.
These were just exposed to be used elsewhere at some point, but neither is
currently being used so just make them private again.
These constants have been unstable for some time now already
This commit stabilizes the remaining `wrapping_*` functions on the primitive
integer types as they follow the same conventions as other wrapping methods are
were likely just initially unstable to be conservative.
These methods have been unstable for quite some time, and it's not clear that
these should remain in the standard library.
This function is more naturally expressed as slice::from_raw_buf plus a call to
to_vec.
These accessor/constructor methods for a `PoisonError` are quite standard for a
wrapper type and enable manipulation of the underlying type.
This function follows the well-established "constructor" pattern and the
initialization constant will likely be deprecated in favor of it once `const_fn`
is stabilized.
This commit stabilizes these two iterator primitives as they have gone through
the RFC process and had some time to bake now.
This commit stabilizes the `str::{matches, rmatches}` functions and iterators,
but renames the unstable feature for the `str::{matches,rmatches}_indices`
function to `str_match_indices` due to the comment present on the functions
about the iterator's return value.
Questions about the utility of this type has caused it to move to crates.io in
the `bufstream` crate, so this type can be deprecated.
These two functions should be replaceable with the `process::exit` function.
This commit deprecates the `sync::Future` type to be developed outside in
crates.io instead.
The `thread::scoped` function will never be stabilized as-is and the API will
likely change significantly if it does, so this function is deprecated for
removal.
This has been replaced with `FnBox`
This commit moves the free functions in the `rc`, `arc`, and `boxed` modules to
associated functions on their respective types, following the recent trend
towards this pattern. The previous free functions are all left in-place with
`#[deprecated]` pointers towards the new locations.

This commit also deprecates `arc::get_mut` and `Arc::make_unique` with no
replacement as they are racy in the face of weak pointers.
Also add `#[doc(hidden)]` to a few internal functions.
* Add `#[doc(hidden)]`
* Rename away from `Error::description`
These functions mirror the other Entry APIs of other maps, and were mistakenly
just not stabilized the first time around.
This naming needs to consider the raw vs ptr naming of
Box/CStr/CString/slice/etc.
Nick Hamann and others added 21 commits June 17, 2015 19:41
Currently in the E0252 message, traits and modules are all called types
(as in "a type named `Foo` has already been imported", even when `Foo` was
a trait or module). This commit changes that to additionally detect when
the import in question is a trait or module and report it accordingly.

Fixes rust-lang#25396.
Currently in the E0252 message, traits and modules are all called types (as in "a type named `Foo` has already been imported", even when `Foo` was a trait or module). This commit changes that to additionally detect when the import in question is a trait or module and report it accordingly.

Fixes rust-lang#25396.
This commit shards the all-encompassing `core`, `std_misc`, `collections`, and `alloc` features into finer-grained components that are much more easily opted into and tracked. This reflects the effort to push forward current unstable APIs to either stabilization or removal. Keeping track of unstable features on a much more fine-grained basis will enable the library subteam to quickly analyze a feature and help prioritize internally about what APIs should be stabilized.

A few assorted APIs were deprecated along the way, but otherwise this change is just changing the feature name associated with each API. Soon we will have a dashboard for keeping track of all the unstable APIs in the standard library, and I'll also start making issues for each unstable API after performing a first-pass for stabilization.
@eddyb eddyb self-assigned this Jun 18, 2015
@rust-highfive rust-highfive assigned Aatch and unassigned eddyb Jun 18, 2015
@rust-highfive
Copy link
Collaborator

r? @Aatch

(rust_highfive has picked a reviewer for you, use r? to override)

@eddyb
Copy link
Member Author

eddyb commented Jun 18, 2015

@bors r=nikomatsakis p=1

@bors
Copy link
Contributor

bors commented Jun 18, 2015

📌 Commit 6eed166 has been approved by nikomatsakis

@eddyb eddyb closed this Jun 18, 2015
@eddyb eddyb deleted the tls-tcx-plus-26147 branch June 18, 2015 23:40
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