rust/src
bors 29a67d1dc2 auto merge of #8272 : DaGenix/rust/digest-md5-impl-not-unrolled, r=cmr
An MD5 implementation was originally included in #8097, but, since there are a couple different implementations of that digest algorithm (@alco mentioned his implementation on the mailing list just before I opened that PR), it was suggested that I remove it from that PR and open up a new PR to discuss the different implementations and the best way forward. If anyone wants to discuss a different implementation, feel free to present it here and discuss and compare it to this one. I'll just discuss my implementation and I'll leave it to others to present details of theirs.

This implementation relies on the FixedBuffer struct from cryptoutil.rs for managing the input buffer, just like the Sha1 and Sha2 digest implementations do. I tried manually unrolling the loops in the compression function, but I got slightly worse performance when I did that.

Outside of the #[test]s, I also tested the implementation by generating 1,000 inputs of up to 10MB in size and checking the MD5 digest calculated by this code against the MD5 digest calculated by Java's implementation.

On my computer, I'm getting the following performance:

```
test md5::bench::md5_10 ... bench: 52 ns/iter (+/- 1) = 192 MB/s
test md5::bench::md5_1k ... bench: 2819 ns/iter (+/- 44) = 363 MB/s
test md5::bench::md5_64k ... bench: 178566 ns/iter (+/- 4927) = 367 MB/s
```
2013-08-17 07:42:01 -07:00
..
compiletest auto merge of #8531 : brson/rust/test-waitpid-workaround, r=graydon 2013-08-17 00:22:05 -07:00
driver
etc
libextra auto merge of #8272 : DaGenix/rust/digest-md5-impl-not-unrolled, r=cmr 2013-08-17 07:42:01 -07:00
librust
librustc auto merge of #8532 : kballard/rust/cstr-cleanup, r=erickt 2013-08-16 06:02:14 -07:00
librustdoc
librusti
librustpkg auto merge of #8532 : kballard/rust/cstr-cleanup, r=erickt 2013-08-16 06:02:14 -07:00
libstd auto merge of #8534 : huonw/rust/tls-key-macro, r=alexcrichton 2013-08-16 08:05:10 -07:00
libsyntax auto merge of #8534 : huonw/rust/tls-key-macro, r=alexcrichton 2013-08-16 08:05:10 -07:00
libuv@dfae9c3e95
llvm@f67442eee2
rt
rustllvm
test auto merge of #8534 : huonw/rust/tls-key-macro, r=alexcrichton 2013-08-16 08:05:10 -07:00
README.txt
snapshots.txt register new snapshots 2013-08-14 18:45:51 -07: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
rt/linenoise       - a readline-like line editing library

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

librusti/          The JIT REPL

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