rust/src
bors 55cbef611a auto merge of #11064 : huonw/rust/vec-sort, r=alexcrichton
This uses quite a bit of unsafe code for speed and failure safety, and allocates `2*n` temporary storage.

[Performance](https://gist.github.com/huonw/5547f2478380288a28c2):

|      n |      new | priority_queue |   quick3 |
|-------:|---------:|---------------:|---------:|
|      5 |      200 |            155 |      106 |
|    100 |     6490 |           8750 |     5810 |
|  10000 |  1300000 |        1790000 |  1060000 |
| 100000 | 16700000 |       23600000 | 12700000 |
| sorted |   520000 |        1380000 | 53900000 |
|  trend |  1310000 |        1690000 |  1100000 |

(The times are in nanoseconds, having subtracted the set-up time (i.e. the `just_generate` bench target).)

I imagine that there is still significant room for improvement, particularly because both priority_queue and quick3 are doing a static call via `Ord` or `TotalOrd` for the comparisons, while this is using a (boxed) closure.

Also, this code does not `clone`, unlike `quick_sort3`; and is stable, unlike both of the others.
2013-12-22 00:41:39 -08:00
..
compiletest Make Android tests fail if no device is available 2013-12-18 18:12:46 -08:00
driver Make crate hash stable and externally computable. 2013-12-10 17:04:24 -07:00
etc auto merge of #11079 : chris-morgan/rust/fix-11072-regressions, r=brson 2013-12-20 18:46:31 -08:00
gyp@f407f09c94 Upgrade libuv to the current master (again) 2013-09-06 11:12:49 -07:00
libextra auto merge of #11064 : huonw/rust/vec-sort, r=alexcrichton 2013-12-22 00:41:39 -08:00
librustc auto merge of #11064 : huonw/rust/vec-sort, r=alexcrichton 2013-12-22 00:41:39 -08:00
librustdoc auto merge of #11064 : huonw/rust/vec-sort, r=alexcrichton 2013-12-22 00:41:39 -08:00
librustpkg Rename pkgid to crate_id 2013-12-19 10:10:23 -05:00
librustuv rustuv: Stop link to pthread on Windows 2013-12-21 15:44:18 +09:00
libstd auto merge of #11064 : huonw/rust/vec-sort, r=alexcrichton 2013-12-22 00:41:39 -08:00
libsyntax auto merge of #11064 : huonw/rust/vec-sort, r=alexcrichton 2013-12-22 00:41:39 -08:00
libuv@fd5308383c Attempt to fix the segfaulting osx bots 2013-12-21 20:17:23 -08:00
llvm@eac6ff795c Remove unused upcalls 2013-12-05 16:29:16 -08:00
rt Register new snapshots 2013-12-07 23:02:39 -08:00
rustllvm rustc: Optimize reading metadata by 4x 2013-12-19 23:34:32 -08:00
test auto merge of #11064 : huonw/rust/vec-sort, r=alexcrichton 2013-12-22 00:41:39 -08:00
README.txt drop the linenoise library 2013-10-16 22:57:51 -04:00
snapshots.txt Register new snapshots 2013-12-18 09:32:03 -08:00

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

Source layout:

librustc/          The self-hosted compiler

libstd/            The standard library (imported and linked by default)
libextra/          The "extras" library (slightly more peripheral code)
libsyntax/         The Rust parser and pretty-printer

rt/                The runtime system
rt/rust_*.cpp      - The majority of the runtime services
rt/isaac           - The PRNG used for pseudo-random choices in the runtime
rt/bigint          - The bigint library used for the 'big' type
rt/uthash          - Small hashtable-and-list library for C, used in runtime
rt/sync            - Concurrency utils
rt/util            - Small utility classes for the runtime.
rt/vg              - Valgrind headers
rt/msvc            - MSVC support

test/              Testsuite
test/compile-fail  - Tests that should fail to compile
test/run-fail      - Tests that should compile, run and fail
test/run-pass      - Tests that should compile, run and succeed
test/bench         - Benchmarks and miscellanea
test/pretty        - Pretty-printer tests
test/auxiliary     - Dependencies of tests

compiletest/       The test runner

librustpkg/        The package manager and build system

librustdoc/        The Rust API documentation tool

llvm/              The LLVM submodule

libuv/             The libuv submodule

rustllvm/          LLVM support code

libfuzzer/         A collection of fuzz testers

etc/               Scripts, editor support, misc