rust/src
Erick Tryzelaar e27b88d5bd remove seek from std::io::MemWriter, add SeekableMemWriter to librustc
Not all users of MemWriter need to seek, but having MemWriter
seekable adds between 3-29% in overhead in certain circumstances.
This fixes that performance gap by making a non-seekable MemWriter,
and creating a new SeekableMemWriter for those circumstances when
that functionality is actually needed.

```
test io::mem::test::bench_buf_reader                        ... bench:       682 ns/iter (+/- 85)
test io::mem::test::bench_buf_writer                        ... bench:       580 ns/iter (+/- 57)
test io::mem::test::bench_mem_reader                        ... bench:       793 ns/iter (+/- 99)
test io::mem::test::bench_mem_writer_001_0000               ... bench:        48 ns/iter (+/- 27)
test io::mem::test::bench_mem_writer_001_0010               ... bench:        65 ns/iter (+/- 27) = 153 MB/s
test io::mem::test::bench_mem_writer_001_0100               ... bench:       132 ns/iter (+/- 12) = 757 MB/s
test io::mem::test::bench_mem_writer_001_1000               ... bench:       802 ns/iter (+/- 151) = 1246 MB/s
test io::mem::test::bench_mem_writer_100_0000               ... bench:       481 ns/iter (+/- 28)
test io::mem::test::bench_mem_writer_100_0010               ... bench:      1957 ns/iter (+/- 126) = 510 MB/s
test io::mem::test::bench_mem_writer_100_0100               ... bench:      8222 ns/iter (+/- 434) = 1216 MB/s
test io::mem::test::bench_mem_writer_100_1000               ... bench:     82496 ns/iter (+/- 11191) = 1212 MB/s
test io::mem::test::bench_seekable_mem_writer_001_0000      ... bench:        48 ns/iter (+/- 2)
test io::mem::test::bench_seekable_mem_writer_001_0010      ... bench:        64 ns/iter (+/- 2) = 156 MB/s
test io::mem::test::bench_seekable_mem_writer_001_0100      ... bench:       129 ns/iter (+/- 7) = 775 MB/s
test io::mem::test::bench_seekable_mem_writer_001_1000      ... bench:       801 ns/iter (+/- 159) = 1248 MB/s
test io::mem::test::bench_seekable_mem_writer_100_0000      ... bench:       711 ns/iter (+/- 51)
test io::mem::test::bench_seekable_mem_writer_100_0010      ... bench:      2532 ns/iter (+/- 227) = 394 MB/s
test io::mem::test::bench_seekable_mem_writer_100_0100      ... bench:      8962 ns/iter (+/- 947) = 1115 MB/s
test io::mem::test::bench_seekable_mem_writer_100_1000      ... bench:     85086 ns/iter (+/- 11555) = 1175 MB/s
```

[breaking-change]
2014-07-29 16:31:39 -07:00
..
compiler-rt@62a4ca6055
compiletest collections: Deprecate shift/unshift 2014-07-23 13:20:16 -07:00
doc docs: Fix typo in container guide. 2014-07-27 10:14:44 +02:00
driver
etc Relicense shootout-k-nucleotide.rs 2014-07-26 15:06:40 +02:00
grammar adding proof of context-sensitivy of raw string literals 2014-07-27 02:13:19 -04:00
gyp@1e46da1000
jemalloc@024c67ad65
liballoc std: Stabilize unit, bool, ty, tuple, arc, any 2014-07-26 13:12:20 -07:00
libarena Update doc URLs for version bump 2014-07-11 11:21:57 -07:00
libbacktrace
libcollections Fix a whitespace typo 2014-07-29 15:50:44 -07:00
libcore auto merge of #15983 : brson/rust/fail, r=alexcrichton 2014-07-28 20:51:33 +00:00
libcoretest librustc: Stop desugaring for expressions and translate them directly. 2014-07-24 18:58:12 -07:00
libdebug deprecate Vec::get 2014-07-17 12:08:31 +12:00
libflate Update doc URLs for version bump 2014-07-11 11:21:57 -07:00
libfmt_macros librustc: Disallow mutation and assignment in pattern guards, and modify 2014-07-25 15:26:21 -07:00
libfourcc Update doc URLs for version bump 2014-07-11 11:21:57 -07:00
libgetopts Fix typo in getopts::getopts documentation, return Matches instead of Opt 2014-07-28 17:35:31 +01:00
libglob deprecate Vec::get 2014-07-17 12:08:31 +12:00
libgraphviz Get rid of few warnings in tests 2014-07-21 09:55:04 -07:00
libgreen libsyntax: Remove ~self and mut ~self from the language. 2014-07-24 07:26:03 -07:00
libhexfloat Update doc URLs for version bump 2014-07-11 11:21:57 -07:00
liblibc auto merge of #15584 : alexcrichton/rust/warn-annoyances, r=cmr 2014-07-13 04:46:31 +00:00
liblog Update doc URLs for version bump 2014-07-11 11:21:57 -07:00
libnative std: Stabilize unit, bool, ty, tuple, arc, any 2014-07-26 13:12:20 -07:00
libnum auto merge of #15718 : treeman/rust/integer-doc, r=alexcrichton 2014-07-17 20:36:19 +00:00
librand Add a ton of ignore-lexer-test 2014-07-21 18:38:40 -07:00
libregex collections: Deprecate shift/unshift 2014-07-23 13:20:16 -07:00
libregex_macros Refactoring: Only use MacroExpander for expanding outside of 2014-07-22 01:00:03 +02:00
librlibc rlibc: add unit tests 2014-07-21 09:54:23 -07:00
librustc remove seek from std::io::MemWriter, add SeekableMemWriter to librustc 2014-07-29 16:31:39 -07:00
librustc_back librustc: Stop desugaring for expressions and translate them directly. 2014-07-24 18:58:12 -07:00
librustc_llvm librustc: Use builder for llvm attributes. 2014-07-25 16:06:44 -07:00
librustdoc auto merge of #15989 : pcwalton/rust/borrowck-pattern-guards, r=pnkfelix 2014-07-29 17:41:41 +00:00
librustrt auto merge of #15983 : brson/rust/fail, r=alexcrichton 2014-07-28 20:51:33 +00:00
librustuv std: Stabilize unit, bool, ty, tuple, arc, any 2014-07-26 13:12:20 -07:00
libsemver Update doc URLs for version bump 2014-07-11 11:21:57 -07:00
libserialize remove seek from std::io::MemWriter, add SeekableMemWriter to librustc 2014-07-29 16:31:39 -07:00
libstd remove seek from std::io::MemWriter, add SeekableMemWriter to librustc 2014-07-29 16:31:39 -07:00
libsync std: Stabilize unit, bool, ty, tuple, arc, any 2014-07-26 13:12:20 -07:00
libsyntax remove seek from std::io::MemWriter, add SeekableMemWriter to librustc 2014-07-29 16:31:39 -07:00
libterm collections: Deprecate shift/unshift 2014-07-23 13:20:16 -07:00
libtest Get rid of few warnings in tests 2014-07-21 09:55:04 -07:00
libtime auto merge of #15867 : cmr/rust/rewrite-lexer4, r=alexcrichton 2014-07-22 07:16:17 +00:00
libunicode librustc: Stop desugaring for expressions and translate them directly. 2014-07-24 18:58:12 -07:00
liburl Update doc URLs for version bump 2014-07-11 11:21:57 -07:00
libuuid remove seek from std::io::MemWriter, add SeekableMemWriter to librustc 2014-07-29 16:31:39 -07:00
libuv@43495892de
llvm@cd24b5c663 Updated LLVM for iOS 2014-07-24 07:25:55 -07:00
rt
rustllvm rustllvm: Stub out some functions for llvm < 3.5 2014-07-25 19:47:29 -07:00
test remove seek from std::io::MemWriter, add SeekableMemWriter to librustc 2014-07-29 16:31:39 -07:00
README.md
snapshots.txt Register new snapshots 2014-07-19 20:38:00 -07: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.