summary refs log tree commit diff
path: root/src/librustc/lib.rs
AgeCommit message (Collapse)AuthorLines
2014-10-07Update html_root_url for 0.12.0 releaseBrian Anderson-1/+1
2014-10-07Put slicing syntax behind a feature gate.Nick Cameron-1/+2
[breaking-change] If you are using slicing syntax you will need to add #![feature(slicing_syntax)] to your crate.
2014-10-02Revert "Put slicing syntax behind a feature gate."Aaron Turon-2/+1
This reverts commit 95cfc35607ccf5f02f02de56a35a9ef50fa23a82.
2014-10-02auto merge of #17590 : bjadamson/rust/rustc-improvements, r=alexcrichtonbors-1/+2
Removes an unnecessary allocation when passing the command line arguments to the librustc driver.
2014-10-02Put slicing syntax behind a feature gate.Nick Cameron-1/+2
[breaking-change] If you are using slicing syntax you will need to add #![feature(slicing_syntax)] to your crate.
2014-09-30Remove unnecessary allocation, update API name for starting the rustc driver.Benjamin Adamson-1/+2
2014-09-28Register new snapshotsSteven Fackler-1/+0
2014-09-25Remove the last redundant check from kindck, and then remove the pass as well.Niko Matsakis-1/+0
2014-09-18rustc: remove Gc<Def> and depth from DefUpvar.Eduard Burtescu-1/+1
2014-09-18rustc: move freevar finding to resolve.Eduard Burtescu-1/+0
2014-09-17auto merge of #17264 : bkoropoff/rust/issue-17252, r=nick29581bors-0/+1
Recursive items are currently detected in the `check_const` pass which runs after type checking. This means a recursive static item used as an array length will cause type checking to blow the stack. This PR separates the recursion check out into a separate pass which is run before type checking. Closes issue #17252 r? @nick29581
2014-09-17move feature_gate to libsyntaxNick Cameron-4/+0
2014-09-17move std_inject to libsyntaxNick Cameron-1/+0
2014-09-17move most of front to libsyntaxNick Cameron-3/+0
2014-09-15Guts of the new trait matching algorithm, not yet in useNiko Matsakis-0/+1
2014-09-14Separate static item recursion check into its own passBrian Koropoff-0/+1
This new pass is run before type checking so that recursive items are detected beforehand. This prevents going into an infinite recursion during type checking when a recursive item is used in an array type. As a bonus, use `span_err` instead of `span_fatal` so multiple errors can be reported. Closes issue #17252
2014-09-14rustc: fix fallout from using ptr::P.Eduard Burtescu-1/+0
2014-09-09librustc: Obsolete the old external crate renaming syntax.Patrick Walton-2/+4
Instead of `extern crate foo = bar`, write `extern crate bar as foo`. Instead of `extern crate baz = "quux"`, write `extern crate "quux" as baz`. Closes #16461. [breaking-change]
2014-09-08Forbid unsized rvaluesNick Cameron-0/+1
Closes #16813
2014-09-05move back::link::write into a separate fileStuart Pernsteiner-0/+1
2014-09-01Updated to new extern crate syntax.wickerwaka-2/+2
Added warning for old deprecated syntax
2014-08-30auto merge of #16859 : alexcrichton/rust/snapshots, r=huonwbors-1/+0
2014-08-29Register new snapshotsAlex Crichton-1/+0
2014-08-28Introduce snapshot_vec abstractionNiko Matsakis-0/+1
2014-08-27Implement generalized object and type parameter bounds (Fixes #16462)Niko Matsakis-0/+1
2014-08-16librustc: Forbid external crates, imports, and/or items from beingPatrick Walton-0/+1
declared with the same name in the same scope. This breaks several common patterns. First are unused imports: use foo::bar; use baz::bar; Change this code to the following: use baz::bar; Second, this patch breaks globs that import names that are shadowed by subsequent imports. For example: use foo::*; // including `bar` use baz::bar; Change this code to remove the glob: use foo::{boo, quux}; use baz::bar; Or qualify all uses of `bar`: use foo::{boo, quux}; use baz; ... baz::bar ... Finally, this patch breaks code that, at top level, explicitly imports `std` and doesn't disable the prelude. extern crate std; Because the prelude imports `std` implicitly, there is no need to explicitly import it; just remove such directives. The old behavior can be opted into via the `import_shadowing` feature gate. Use of this feature gate is discouraged. This implements RFC #116. Closes #16464. [breaking-change]
2014-07-31Move SeekableMemWriter into librbmlErick Tryzelaar-1/+0
2014-07-31remove serialize::ebml, add librbmlErick Tryzelaar-0/+1
Our implementation of ebml has diverged from the standard in order to better serve the needs of the compiler, so it doesn't make much sense to call what we have ebml anyore. Furthermore, our implementation is pretty crufty, and should eventually be rewritten into a format that better suits the needs of the compiler. This patch factors out serialize::ebml into librbml, otherwise known as the Really Bad Markup Language. This is a stopgap library that shouldn't be used by end users, and will eventually be replaced by something better. [breaking-change]
2014-07-29remove seek from std::io::MemWriter, add SeekableMemWriter to librustcErick Tryzelaar-0/+4
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-19Add support for patterns referencing non-trivial staticsJakub Wieczorek-26/+26
This is accomplished by rewriting static expressions into equivalent patterns. This way, patterns referencing static variables can both participate in exhaustiveness analysis as well as be compiled down into the appropriate branch of the decision trees that match expressions are codegened to. Fixes #6533. Fixes #13626. Fixes #13731. Fixes #14576. Fixes #15393.
2014-07-14Fix rebase fallout. Sorry.Brian Anderson-1/+0
2014-07-14rustc: Move util::sha2 to rustc_backBrian Anderson-1/+1
2014-07-14rustc: Move util::fs to rustc_backBrian Anderson-1/+2
2014-07-14rustc: Move archive to rustc_backBrian Anderson-1/+1
2014-07-14Extract rpath to rustc_back::rpathBrian Anderson-1/+1
2014-07-14Extract librustc_back from librustcBrian Anderson-15/+19
2014-07-14Move llvm bindings to their own crateBrian Anderson-2/+2
2014-07-11Update doc URLs for version bumpBrian Anderson-1/+1
2014-07-11Add scaffolding for assigning alpha-numeric codes to rustc diagnosticsJakub Wieczorek-1/+8
2014-07-09Register new snapshotsAlex Crichton-2/+0
Closes #15544
2014-07-05Add #[crate_name] attributes as necessaryAlex Crichton-1/+3
2014-06-27Update to 0.11.0 0.11.0Alex Crichton-2/+2
2014-06-26Remove unnecessary to_string callsPiotr Jawniak-3/+1
This commit removes superfluous to_string calls from various places
2014-06-24Replace enum LintId with an extensible alternativeKeegan McAllister-0/+9
2014-06-24Move lint.rs out of middleKeegan McAllister-1/+2
We're going to have more modules under lint, and the paths get unwieldy. We also plan to have lints run at multiple points in the compilation pipeline.
2014-06-24auto merge of #14963 : w3ln4/rust/master, r=alexcrichtonbors-0/+1
The aim of these changes is not working out a generic bi-endianness architectures support but to allow people develop for little endian MIPS machines (issue #7190).
2014-06-24Added Mipsel architecture supportPawel Olzacki-0/+1
2014-06-22Register new snapshotsAlex Crichton-1/+0
2014-06-21auto merge of #15029 : aturon/rust/stability-index, r=brsonbors-0/+1
This commit makes several changes to the stability index infrastructure: * Stability levels are now inherited lexically, i.e., each item's stability level becomes the default for any nested items. * The computed stability level for an item is stored as part of the metadata. When using an item from an external crate, this data is looked up and cached. * The stability lint works from the computed stability level, rather than manual stability attribute annotations. However, the lint still checks only a limited set of item uses (e.g., it does not check every component of a path on import). This will be addressed in a later PR, as part of issue #8962. * The stability lint only applies to items originating from external crates, since the stability index is intended as a promise to downstream crates. * The "experimental" lint is now _allow_ by default. This is because almost all existing crates have been marked "experimental", pending library stabilization. With inheritance in place, this would generate a massive explosion of warnings for every Rust program. The lint should be changed back to deny-by-default after library stabilization is complete. * The "deprecated" lint still warns by default. The net result: we can begin tracking stability index for the standard libraries as we stabilize, without impacting most clients. Closes #13540.
2014-06-20librustc: Put `#[unsafe_destructor]` behind a feature gate.Patrick Walton-2/+3
Closes #8142. This is not the semantics we want long-term. You can continue to use `#[unsafe_destructor]`, but you'll need to add `#![feature(unsafe_destructor)]` to the crate attributes. [breaking-change]