rust/src
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
..
compiler-rt@62a4ca6055
compiletest std: Rename the ToStr trait to ToString, and to_str to to_string. 2014-07-08 13:01:43 -07:00
doc auto merge of #15530 : adrientetar/rust/proper-fonts, r=alexcrichton 2014-07-09 10:36:31 +00:00
driver
etc auto merge of #15283 : kwantam/rust/master, r=alexcrichton 2014-07-09 18:36:30 +00:00
gyp@1e46da1000
jemalloc@024c67ad65
liballoc Add #[crate_name] attributes as necessary 2014-07-05 12:45:42 -07:00
libarena Add #[crate_name] attributes as necessary 2014-07-05 12:45:42 -07:00
libbacktrace
libcollections auto merge of #15283 : kwantam/rust/master, r=alexcrichton 2014-07-09 18:36:30 +00:00
libcore auto merge of #15283 : kwantam/rust/master, r=alexcrichton 2014-07-09 18:36:30 +00:00
libcoretest auto merge of #15283 : kwantam/rust/master, r=alexcrichton 2014-07-09 18:36:30 +00:00
libdebug std: Rename the ToStr trait to ToString, and to_str to to_string. 2014-07-08 13:01:43 -07:00
libflate Add #[crate_name] attributes as necessary 2014-07-05 12:45:42 -07:00
libfmt_macros Add #[crate_name] attributes as necessary 2014-07-05 12:45:42 -07:00
libfourcc Add #[crate_name] attributes as necessary 2014-07-05 12:45:42 -07:00
libgetopts std: Rename the ToStr trait to ToString, and to_str to to_string. 2014-07-08 13:01:43 -07:00
libglob std: Rename the ToStr trait to ToString, and to_str to to_string. 2014-07-08 13:01:43 -07:00
libgraphviz std: Rename the ToStr trait to ToString, and to_str to to_string. 2014-07-08 13:01:43 -07:00
libgreen Add #[crate_name] attributes as necessary 2014-07-05 12:45:42 -07:00
libhexfloat Add #[crate_name] attributes as necessary 2014-07-05 12:45:42 -07:00
liblibc Add #[crate_name] attributes as necessary 2014-07-05 12:45:42 -07:00
liblog Add #[crate_name] attributes as necessary 2014-07-05 12:45:42 -07:00
libnative std: Rename the ToStr trait to ToString, and to_str to to_string. 2014-07-08 13:01:43 -07:00
libnum std: Rename the ToStr trait to ToString, and to_str to to_string. 2014-07-08 13:01:43 -07:00
librand Add #[crate_name] attributes as necessary 2014-07-05 12:45:42 -07:00
libregex fix test failures 2014-07-09 10:14:46 -04:00
libregex_macros std: Rename the ToStr trait to ToString, and to_str to to_string. 2014-07-08 13:01:43 -07:00
librlibc Add #[crate_name] attributes as necessary 2014-07-05 12:45:42 -07:00
librustc Fix all the test fallout 2014-07-09 00:49:54 -07:00
librustdoc auto merge of #15530 : adrientetar/rust/proper-fonts, r=alexcrichton 2014-07-09 10:36:31 +00:00
librustrt std: Rename the ToStr trait to ToString, and to_str to to_string. 2014-07-08 13:01:43 -07:00
librustuv std: Rename the ToStr trait to ToString, and to_str to to_string. 2014-07-08 13:01:43 -07:00
libsemver std: Rename the ToStr trait to ToString, and to_str to to_string. 2014-07-08 13:01:43 -07:00
libserialize std: Rename the ToStr trait to ToString, and to_str to to_string. 2014-07-08 13:01:43 -07:00
libstd auto merge of #15283 : kwantam/rust/master, r=alexcrichton 2014-07-09 18:36:30 +00:00
libsync Add #[crate_name] attributes as necessary 2014-07-05 12:45:42 -07:00
libsyntax Fix all the test fallout 2014-07-09 00:49:54 -07:00
libterm Add #[crate_name] attributes as necessary 2014-07-05 12:45:42 -07:00
libtest std: Rename the ToStr trait to ToString, and to_str to to_string. 2014-07-08 13:01:43 -07:00
libtime std: Rename the ToStr trait to ToString, and to_str to to_string. 2014-07-08 13:01:43 -07:00
libunicode Add libunicode; move unicode functions from core 2014-07-07 14:52:24 -04:00
liburl std: Rename the ToStr trait to ToString, and to_str to to_string. 2014-07-08 13:01:43 -07:00
libuuid std: Rename the ToStr trait to ToString, and to_str to to_string. 2014-07-08 13:01:43 -07:00
libuv@43495892de
llvm@1bba09755d
rt
rustllvm
test syntax: don't process string/char/byte/binary lits 2014-07-09 00:06:29 -07:00
README.md
snapshots.txt Register snapshot. 2014-07-06 02:13:35 -04:00

This is a preliminary version of the Rust compiler, libraries and tools.

Source layout:

Path Description
librustc/ The self-hosted compiler
liballoc/ Rust's core allocation library
libcore/ The Rust core library
libdebug/ Debugging utilities
libstd/ The standard library (imported and linked by default)
libgreen/ The M:N runtime library
libnative/ The 1:1 runtime library
libsyntax/ The Rust parser and pretty-printer
libtest/ Rust's test-runner code
------------------- ---------------------------------------------------------
libarena/ The arena (a fast but limited) memory allocator
libbacktrace/ The libbacktrace library
libcollections/ A collection of useful data structures and containers
libflate/ Simple compression library
libfmt_macros/ Macro support for format strings
libfourcc/ Data format identifier library
libgetopts/ Get command-line-options library
libglob/ Unix glob patterns library
libgraphviz/ Generating files for Graphviz
libhexfloat/ Hexadecimal floating-point literals
liblibc/ Bindings for the C standard library
liblog/ Utilities for program-wide and customizable logging
libnum/ Extended number support library (complex, rational, etc)
librand/ Random numbers and distributions
libregex/ Regular expressions
libregex_macros/ The regex! syntax extension
libsemver/ Rust's semantic versioning library
libserialize/ Encode-Decode types library
libsync/ Concurrency mechanisms and primitives
libterm/ ANSI color library for terminals
libtime/ Time operations library
liburl/ URL handling lirary
libuuid/ UUID's handling code
------------------- ---------------------------------------------------------
rt/ The runtime system
rt/rust_*.c - Some of the runtime services
rt/vg - Valgrind headers
rt/msvc - MSVC support
rt/sundown - The Markdown library used by rustdoc
------------------- ---------------------------------------------------------
compiletest/ The test runner
test/ Testsuite
test/codegen - Tests for the LLVM IR infrastructure
test/compile-fail - Tests that should fail to compile
test/debug-info - Tests for the debuginfo tool
test/run-fail - Tests that should compile, run and fail
test/run-make - Tests that depend on a Makefile infrastructure
test/run-pass - Tests that should compile, run and succeed
test/bench - Benchmarks and miscellaneous
test/pretty - Pretty-printer tests
test/auxiliary - Dependencies of tests
------------------- ---------------------------------------------------------
librustdoc/ The Rust API documentation tool
libuv/ The libuv submodule
librustuv/ Rust libuv support code
------------------- ---------------------------------------------------------
llvm/ The LLVM submodule
rustllvm/ LLVM support code
------------------- ---------------------------------------------------------
etc/ Scripts, editors support, misc

NOTE: This list (especially the second part of the table which contains modules and libraries) is highly volatile and subject to change.