rust/src
bors 86730e43c0 auto merge of #16904 : inrustwetrust/rust/link-path-order, r=alexcrichton
Issue can be reproduced by the following:
```
$ cat main.rs
fn main() {}
$ rustc -Z print-link-args -Lfoo -Lbar main.rs
```
Run the rustc command a few times and observe that the order of the '-L' 'foo' '-L' 'bar' options randomly changes.

Actually hit this issue in practice on Windows when specifying two -L directories to rustc, one with rust-sdl2 in it and one with the C SDL2.dll. Since Windows file systems aren't case-sensitive, gcc randomly attempted to link against the rust sdl2.dll instead of SDL2.dll if that -L directory happened to come first.

The randomness was due to addl_lib_search_paths being a HashSet. Changed it to a Vec instead which maintains the ordering.
Unsure how to test this though since it is random by nature; suggestions very welcome.
2014-09-07 19:06:28 +00:00
..
compiler-rt@62a4ca6055 Update compiler-rt to work for non-v7 arm. 2014-06-18 17:02:08 -07:00
compiletest run optimization and codegen on worker threads 2014-09-05 09:18:55 -07:00
doc auto merge of #17019 : steveklabnik/rust/remove_compromise, r=thestinger 2014-09-07 07:16:27 +00:00
driver Updated to new extern crate syntax. 2014-09-01 09:02:00 -07:00
etc Optimize Slice::reverse 2014-09-05 14:12:20 -07:00
grammar adding proof of context-sensitivy of raw string literals 2014-07-27 02:13:19 -04:00
gyp@1e46da1000
jemalloc@024c67ad65 Updated deps 2014-06-12 20:20:12 +03:00
liballoc fix sized deallocation for proc 2014-09-06 13:50:58 -04:00
libarena fix sized deallocation for TypedArena<T> 2014-09-06 13:58:34 -04:00
libbacktrace Bundle libbacktrace with the compiler 2014-03-11 21:02:34 -07:00
libcollections collections/slice: Reexport mut_ref_slice in addition to ref_slice. 2014-09-04 17:22:58 -06:00
libcore auto merge of #17005 : bjz/rust/bit-count, r=thestinger 2014-09-07 12:41:25 +00:00
libcoretest Make integer bit count methods return uints 2014-09-05 14:01:41 +10:00
libdebug Register new snapshots 2014-08-29 14:33:08 -07:00
libflate Update doc URLs for version bump 2014-07-11 11:21:57 -07:00
libfmt_macros Center alignment for fmt 2014-09-04 07:38:53 -07:00
libfourcc Implement generalized object and type parameter bounds (Fixes #16462) 2014-08-27 21:46:52 -04:00
libgetopts Register new snapshots 2014-08-29 14:33:08 -07:00
libglob Disable test_lots_of_files on Windows 2014-09-05 19:55:25 -07:00
libgraphviz Register new snapshots 2014-08-29 14:33:08 -07:00
libgreen auto merge of #16664 : aturon/rust/stabilize-option-result, r=alexcrichton 2014-08-28 23:56:20 +00:00
libhexfloat Implement generalized object and type parameter bounds (Fixes #16462) 2014-08-27 21:46:52 -04:00
liblibc readdir: return error instead of failing on invalid UTF-16 2014-09-06 12:51:42 -04:00
liblog Rename RawPtr::to_option() to RawPtr::as_ref() 2014-08-31 13:33:55 -05:00
libnative readdir: return error instead of failing on invalid UTF-16 2014-09-06 12:51:42 -04:00
libnum auto merge of #17005 : bjz/rust/bit-count, r=thestinger 2014-09-07 12:41:25 +00:00
librand Register new snapshots 2014-08-29 14:33:08 -07:00
librbml auto merge of #16859 : alexcrichton/rust/snapshots, r=huonw 2014-08-30 19:51:25 +00:00
libregex auto merge of #16982 : jbcrail/rust/comment-and-string-corrections, r=alexcrichton 2014-09-04 18:30:59 +00:00
libregex_macros Implement generalized object and type parameter bounds (Fixes #16462) 2014-08-27 21:46:52 -04:00
librlibc Register new snapshots 2014-08-29 14:33:08 -07:00
librustc Changed addl_lib_search_paths from HashSet to Vec 2014-09-07 11:42:02 +02:00
librustc_back Fix spelling errors and capitalization. 2014-09-03 23:10:38 -04:00
librustc_llvm run optimization and codegen on worker threads 2014-09-05 09:18:55 -07:00
librustdoc Changed addl_lib_search_paths from HashSet to Vec 2014-09-07 11:42:02 +02:00
librustrt auto merge of #16982 : jbcrail/rust/comment-and-string-corrections, r=alexcrichton 2014-09-04 18:30:59 +00:00
librustuv Updated to new extern crate syntax. 2014-09-01 09:02:00 -07:00
libsemver Allow deprecation in deprecated libraries 2014-08-12 13:35:56 -07:00
libserialize Fix spelling errors and capitalization. 2014-09-03 23:10:38 -04:00
libstd auto merge of #16907 : SimonSapin/rust/tempdir-result, r=huonw 2014-09-06 08:01:33 +00:00
libsync Register new snapshots 2014-08-29 14:33:08 -07:00
libsyntax Fix deprecate warning "extern crate ... as ..." 2014-09-07 17:58:33 +02:00
libterm Unify non-snake-case lints and non-uppercase statics lints 2014-08-30 09:10:05 +12:00
libtest Have std::io::TempDir::new and new_in return IoResult 2014-08-31 22:06:11 +02:00
libtime auto merge of #16981 : kmcallister/rust/ctypes-warning, r=alexcrichton 2014-09-04 13:01:00 +00:00
libunicode Fix spelling errors and capitalization. 2014-09-03 23:10:38 -04:00
liburl Rebasing changes 2014-08-26 16:07:32 +12:00
libuuid librustc: Forbid external crates, imports, and/or items from being 2014-08-16 19:32:25 -07:00
libuv@dec0561d19 native, rustuv: Fix spawning with empty args 2014-08-05 19:54:54 -07:00
llvm@90a3141620 Update LLVM 2014-08-04 17:43:56 -07:00
rt readdir: return error instead of failing on invalid UTF-16 2014-09-06 12:51:42 -04:00
rustllvm Fix builds with LLVM < 3.6 2014-08-15 16:36:05 +02:00
test Added test for link path ordering 2014-09-07 11:42:02 +02:00
README.md Update README file for src/ directory 2014-06-03 14:06:54 +02:00
snapshots.txt Register new snapshots 2014-08-29 14:33:08 -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.