]> git.lizzy.rs Git - rust.git/commit
Auto merge of #49698 - SimonSapin:unicode-for-everyone, r=alexcrichton
authorbors <bors@rust-lang.org>
Thu, 12 Apr 2018 00:35:33 +0000 (00:35 +0000)
committerbors <bors@rust-lang.org>
Thu, 12 Apr 2018 00:35:33 +0000 (00:35 +0000)
commitd26f9e42df76603fd21b0fe5dd1e8001caf9bf81
treece66073c04b872fdc4bc51d3a7f51fe32bf8a680
parente28ef22ae5ef22a48e8582210bb8be9aba116b81
parentef41788cf37074e44f70257508c97efd539a7f29
Auto merge of #49698 - SimonSapin:unicode-for-everyone, r=alexcrichton

Merge the std_unicode crate into the core crate

[The standard library facade](https://github.com/rust-lang/rust/issues/27783) has historically contained a number of crates with different roles, but that number has decreased over time. `rand` and `libc` have moved to crates.io, and [`collections` was merged into `alloc`](https://github.com/rust-lang/rust/pull/42648). Today we have `core` that applies everywhere, `std` that expects a full operating system, and `alloc` in-between that only requires a memory allocator (which can be provided by users)… and `std_unicode`, which doesn’t really have a reason to be separate anymore. It contains functionality based on Unicode data tables that can be large, but as long as relevant functions are not called the tables should be removed from binaries by linkers.

This deprecates the unstable `std_unicode` crate and moves all of its contents into `core`, replacing them with `pub use` reexports. The crate can be removed later. This also removes the `CharExt` trait (replaced with inherent methods in libcore) and `UnicodeStr` trait (merged into `StrExt`). There traits were both unstable and not intended to be used or named directly.

A number of new items are newly-available in libcore and instantly stable there, but only if they were already stable in libstd.

Fixes #49319.
src/librustdoc/lib.rs
src/libsyntax/lib.rs