rust/mk
bors fa7cbb5a46 auto merge of #15283 : kwantam/rust/master, r=alexcrichton
Add libunicode; move unicode functions from core

- created new crate, libunicode, below libstd
- split `Char` trait into `Char` (libcore) and `UnicodeChar` (libunicode)
  - Unicode-aware functions now live in libunicode
    - `is_alphabetic`, `is_XID_start`, `is_XID_continue`, `is_lowercase`,
      `is_uppercase`, `is_whitespace`, `is_alphanumeric`, `is_control`, `is_digit`,
      `to_uppercase`, `to_lowercase`
  - added `width` method in UnicodeChar trait
    - determines printed width of character in columns, or None if it is a non-NULL control character
    - takes a boolean argument indicating whether the present context is CJK or not (characters with 'A'mbiguous widths are double-wide in CJK contexts, single-wide otherwise)
- split `StrSlice` into `StrSlice` (libcore) and `UnicodeStrSlice` (libunicode)
  - functionality formerly in `StrSlice` that relied upon Unicode functionality from `Char` is now in `UnicodeStrSlice`
    - `words`, `is_whitespace`, `is_alphanumeric`, `trim`, `trim_left`, `trim_right`
  - also moved `Words` type alias into libunicode because `words` method is in `UnicodeStrSlice`
- unified Unicode tables from libcollections, libcore, and libregex into libunicode
- updated `unicode.py` in `src/etc` to generate aforementioned tables
- generated new tables based on latest Unicode data
- added `UnicodeChar` and `UnicodeStrSlice` traits to prelude
- libunicode is now the collection point for the `std::char` module, combining the libunicode functionality with the `Char` functionality from libcore
  - thus, moved doc comment for `char` from `core::char` to `unicode::char`
- libcollections remains the collection point for `std::str`

The Unicode-aware functions that previously lived in the `Char` and `StrSlice` traits are no longer available to programs that only use libcore. To regain use of these methods, include the libunicode crate and `use` the `UnicodeChar` and/or `UnicodeStrSlice` traits:

    extern crate unicode;
    use unicode::UnicodeChar;
    use unicode::UnicodeStrSlice;
    use unicode::Words; // if you want to use the words() method

NOTE: this does *not* impact programs that use libstd, since UnicodeChar and UnicodeStrSlice have been added to the prelude.

closes #15224
[breaking-change]
2014-07-09 18:36:30 +00:00
..
clean.mk mk: Don't rm 'dist' during clean, just its contents 2014-03-24 14:29:19 -07:00
crates.mk fix test failures 2014-07-09 10:14:46 -04:00
ctags.mk Don't make tags for our dependencies and tests. 2013-11-16 13:44:52 +11:00
dist.mk Fix distcheck 2014-06-30 09:13:09 -07:00
docs.mk Allow external html in rustdoc for crates. 2014-06-30 00:03:34 -07:00
host.mk mk: Add libcore 2014-05-07 08:12:48 -07:00
install.mk Made 'make install' include libs for additional targets 2014-04-08 00:03:12 -07:00
llvm.mk llvm: Add an option to statically link libstdc++ 2014-04-17 11:39:51 -07:00
main.mk auto merge of #14832 : alexcrichton/rust/no-rpath, r=brson 2014-07-08 22:51:39 +00:00
perf.mk support for GNU configure syntax 2013-10-29 16:22:08 -07:00
platform.mk Build rustc with /LARGEADDRESSAWARE on windows. 2014-07-02 20:22:35 -07:00
prepare.mk mk: Fix make install 2014-05-07 23:23:17 -07:00
reconfig.mk mk: Move most of Makefile.in to .mk files 2014-02-14 17:45:54 -08:00
rt.mk alloc: Allow disabling jemalloc 2014-06-16 18:15:48 -07:00
rustllvm.mk Remove VPATH usage in Makefiles 2014-02-02 10:59:14 -08:00
snap.mk support for GNU configure syntax 2013-10-29 16:22:08 -07:00
stage0.mk remove unnecessary PaX detection 2014-06-13 13:53:35 -07:00
target.mk mk: Fix bootstrapping the nightly builds 2014-07-06 08:28:06 -07:00
tests.mk auto merge of #15283 : kwantam/rust/master, r=alexcrichton 2014-07-09 18:36:30 +00:00
util.mk mk: Address review feedback 2014-02-14 19:17:50 -08:00