rust/src
bors ab22d99e73 auto merge of #13751 : alexcrichton/rust/io-close-read, r=brson
Two new methods were added to TcpStream and UnixStream:

    fn close_read(&mut self) -> IoResult<()>;
    fn close_write(&mut self) -> IoResult<()>;

These two methods map to shutdown()'s behavior (the system call on unix),
closing the reading or writing half of a duplex stream. These methods are
primarily added to allow waking up a pending read in another task. By closing
the reading half of a connection, all pending readers will be woken up and will
return with EndOfFile. The close_write() method was added for symmetry with
close_read(), and I imagine that it will be quite useful at some point.

Implementation-wise, librustuv got the short end of the stick this time. The
native versions just delegate to the shutdown() syscall (easy). The uv versions
can leverage uv_shutdown() for tcp/unix streams, but only for closing the
writing half. Closing the reading half is done through some careful dancing to
wake up a pending reader.

As usual, windows likes to be different from unix. The windows implementation
uses shutdown() for sockets, but shutdown() is not available for named pipes.
Instead, CancelIoEx was used with same fancy synchronization to make sure
everyone knows what's up.

cc #11165
2014-05-07 17:21:37 -07:00
..
compiler-rt@ed112ca1e4 Upgrade compiler-rt 2014-04-22 15:50:51 -07:00
compiletest debuginfo: Split debuginfo autotests into debuginfo-gdb and debuginfo-lldb 2014-05-07 19:58:07 +02:00
doc Test fixes and rebase conflicts 2014-05-07 11:03:12 -07:00
driver Snapshot cleanup 2014-03-23 09:45:13 -07:00
etc debuginfo: Split debuginfo autotests into debuginfo-gdb and debuginfo-lldb 2014-05-07 19:58:07 +02:00
gyp@1e46da1000 Update bundled gyp 2013-12-28 10:42:25 -08:00
libarena librustc: Remove ~EXPR, ~TYPE, and ~PAT from the language, except 2014-05-06 23:12:54 -07:00
libbacktrace Bundle libbacktrace with the compiler 2014-03-11 21:02:34 -07:00
libcollections auto merge of #13958 : pcwalton/rust/detilde, r=pcwalton 2014-05-07 05:16:48 -07:00
libcore Test fixes and rebase conflicts 2014-05-07 11:03:12 -07:00
libflate Remove some internal ~[] from several libraries. 2014-04-10 15:21:58 -07:00
libfourcc auto merge of #13958 : pcwalton/rust/detilde, r=pcwalton 2014-05-07 05:16:48 -07:00
libgetopts remove leftover obsolete string literals 2014-05-01 17:42:57 -04:00
libglob Replace all ~"" with "".to_owned() 2014-04-18 17:25:34 -07:00
libgraphviz librustc: Remove ~EXPR, ~TYPE, and ~PAT from the language, except 2014-05-06 23:12:54 -07:00
libgreen librustc: Remove ~EXPR, ~TYPE, and ~PAT from the language, except 2014-05-06 23:12:54 -07:00
libhexfloat auto merge of #13958 : pcwalton/rust/detilde, r=pcwalton 2014-05-07 05:16:48 -07:00
liblibc std: Add close_{read,write}() methods to I/O 2014-05-07 17:18:07 -07:00
liblog librustc: Remove ~EXPR, ~TYPE, and ~PAT from the language, except 2014-05-06 23:12:54 -07:00
libnative std: Add close_{read,write}() methods to I/O 2014-05-07 17:18:07 -07:00
libnum BigUint always use u64 as the internal machine unsigned integer 2014-05-01 20:10:16 +02:00
librand librustc: Remove ~EXPR, ~TYPE, and ~PAT from the language, except 2014-05-06 23:12:54 -07:00
libregex librustc: Remove ~EXPR, ~TYPE, and ~PAT from the language, except 2014-05-06 23:12:54 -07:00
libregex_macros librustc: Remove ~EXPR, ~TYPE, and ~PAT from the language, except 2014-05-06 23:12:54 -07:00
librustc auto merge of #14005 : alexcrichton/rust/extern-unsafe, r=pcwalton 2014-05-07 14:56:39 -07:00
librustdoc auto merge of #14005 : alexcrichton/rust/extern-unsafe, r=pcwalton 2014-05-07 14:56:39 -07:00
librustuv std: Add close_{read,write}() methods to I/O 2014-05-07 17:18:07 -07:00
libsemver Replace all ~"" with "".to_owned() 2014-04-18 17:25:34 -07:00
libserialize core: Inherit non-allocating slice functionality 2014-05-07 08:15:58 -07:00
libstd auto merge of #13751 : alexcrichton/rust/io-close-read, r=brson 2014-05-07 17:21:37 -07:00
libsync librustc: Remove ~EXPR, ~TYPE, and ~PAT from the language, except 2014-05-06 23:12:54 -07:00
libsyntax auto merge of #14005 : alexcrichton/rust/extern-unsafe, r=pcwalton 2014-05-07 14:56:39 -07:00
libterm librustc: Remove ~EXPR, ~TYPE, and ~PAT from the language, except 2014-05-06 23:12:54 -07:00
libtest librustc: Remove ~EXPR, ~TYPE, and ~PAT from the language, except 2014-05-06 23:12:54 -07:00
libtime Replace all ~"" with "".to_owned() 2014-04-18 17:25:34 -07:00
liburl remove leftover obsolete string literals 2014-05-01 17:42:57 -04:00
libuuid auto merge of #13958 : pcwalton/rust/detilde, r=pcwalton 2014-05-07 05:16:48 -07:00
libuv@43495892de Update libuv 2014-04-24 09:08:07 -07:00
libworkcache Update libworkcache with libserialize's json changes 2014-04-27 23:09:57 +02:00
llvm@4b4d0533b4 Upgrade LLVM 2014-04-17 11:11:39 -07:00
rt rustdoc: Migrate from sundown to hoedown 2014-05-03 17:36:20 -07:00
rustllvm rustc: Enable -f{function,data}-sections 2014-04-29 10:29:00 -07:00
test auto merge of #14005 : alexcrichton/rust/extern-unsafe, r=pcwalton 2014-05-07 14:56:39 -07:00
README.md Add a regex crate to the Rust distribution. 2014-04-25 00:27:24 -04:00
snapshots.txt Register new snapshots 2014-05-07 08:17:32 -07:00

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

Source layout:

Path Description
librustc/ The self-hosted compiler
libstd/ The standard library (imported and linked by default)
libextra/ The "extras" library (slightly more peripheral code)
libgreen/ The M:N runtime library
libnative/ The 1:1 runtime library
libsyntax/ The Rust parser and pretty-printer
libcollections/ A collection of useful data structures and containers
libnum/ Extended number support library (complex, rational, etc)
libtest/ Rust's test-runner code
------------------- ---------------------------------------------------------
libarena/ The arena (a fast but limited) memory allocator
libflate/ Simple compression library
libfourcc/ Data format identifier library
libgetopts/ Get command-line-options library
libglob/ Unix glob patterns library
libregex/ Regular expressions
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
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.