rust/src
g3xzh 05395cba88 Fix sum() accuracy
`[1e20, 1.0, -1e20].sum()` returns `0.0`. This happens because during
the summation, `1.0` is too small relative to `1e20`, making it
negligible.

I have tried Kahan summation but it hasn't fixed the problem.
Therefore, I've used Python's `fsum()` implementation with some
help from Jason Fager and Huon Wilson.
For more details, read:
www.cs.cmu.edu/~quake-papers/robust-arithmetic.ps

Moreover, benchmark and unit tests were added.

Note: `Status.sum` is still not fully fixed. It doesn't handle
NaNs, infinities and overflow correctly. See issue 11059:
https://github.com/mozilla/rust/issues/11059
2013-12-19 02:13:51 +02:00
..
compiletest Remove dead codes 2013-12-08 02:55:28 -05:00
driver remove rust and rusti from driver.rs 2013-10-19 13:31:39 +04:00
etc Add dead-code warning pass 2013-12-08 02:55:27 -05:00
gyp@f407f09c94 Upgrade libuv to the current master (again) 2013-09-06 11:12:49 -07:00
libextra Fix sum() accuracy 2013-12-19 02:13:51 +02:00
librustc auto merge of #10874 : vadimcn/rust/integrated-as, r=alexcrichton 2013-12-09 01:01:43 -08:00
librustdoc Remove dead codes 2013-12-08 02:55:28 -05:00
librustpkg Remove dead codes 2013-12-08 02:55:28 -05:00
librustuv Remove dead codes 2013-12-08 02:55:28 -05:00
libstd auto merge of #10840 : cmr/rust/any_docs2, r=huonw 2013-12-09 05:51:29 -08:00
libsyntax Fix comment on ast::DefStruct 2013-12-08 21:21:15 -05:00
libuv@7ac7e0248b Fix usage of libuv for windows 2013-11-10 12:23:57 -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 Remove unused upcalls 2013-12-05 16:29:16 -08:00
test auto merge of #10874 : vadimcn/rust/integrated-as, r=alexcrichton 2013-12-09 01:01:43 -08:00
README.txt drop the linenoise library 2013-10-16 22:57:51 -04:00
snapshots.txt Register new snapshots 2013-12-07 23:02:39 -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