- 08 1月, 2015 3 次提交
-
-
由 Alex Crichton 提交于
-
由 Brian Anderson 提交于
This partially implements the feature staging described in the [release channel RFC][rc]. It does not yet fully conform to the RFC as written, but does accomplish its goals sufficiently for the 1.0 alpha release. It has three primary user-visible effects: * On the nightly channel, use of unstable APIs generates a warning. * On the beta channel, use of unstable APIs generates a warning. * On the beta channel, use of feature gates generates a warning. Code that does not trigger these warnings is considered 'stable', modulo pre-1.0 bugs. Disabling the warnings for unstable APIs continues to be done in the existing (i.e. old) style, via `#[allow(...)]`, not that specified in the RFC. I deem this marginally acceptable since any code that must do this is not using the stable dialect of Rust. Use of feature gates is itself gated with the new 'unstable_features' lint, on nightly set to 'allow', and on beta 'warn'. The attribute scheme used here corresponds to an older version of the RFC, with the `#[staged_api]` crate attribute toggling the staging behavior of the stability attributes, but the user impact is only in-tree so I'm not concerned about having to make design changes later (and I may ultimately prefer the scheme here after all, with the `#[staged_api]` crate attribute). Since the Rust codebase itself makes use of unstable features the compiler and build system to a midly elaborate dance to allow it to bootstrap while disobeying these lints (which would otherwise be errors because Rust builds with `-D warnings`). This patch includes one significant hack that causes a regression. Because the `format_args!` macro emits calls to unstable APIs it would trigger the lint. I added a hack to the lint to make it not trigger, but this in turn causes arguments to `println!` not to be checked for feature gates. I don't presently understand macro expansion well enough to fix. This is bug #20661. Closes #16678 [rc]: https://github.com/rust-lang/rfcs/blob/master/text/0507-release-channels.md
-
由 Jorge Aparicio 提交于
-
- 07 1月, 2015 1 次提交
-
-
由 Nick Cameron 提交于
-
- 06 1月, 2015 1 次提交
-
-
由 Keegan McAllister 提交于
-
- 03 1月, 2015 1 次提交
-
-
由 Alex Crichton 提交于
This commit is an implementation of [RFC 503][rfc] which is a stabilization story for the prelude. Most of the RFC was directly applied, removing reexports. Some reexports are kept around, however: * `range` remains until range syntax has landed to reduce churn. * `Path` and `GenericPath` remain until path reform lands. This is done to prevent many imports of `GenericPath` which will soon be removed. * All `io` traits remain until I/O reform lands so imports can be rewritten all at once to `std::io::prelude::*`. This is a breaking change because many prelude reexports have been removed, and the RFC can be consulted for the exact list of removed reexports, as well as to find the locations of where to import them. [rfc]: https://github.com/rust-lang/rfcs/blob/master/text/0503-prelude-stabilization.md [breaking-change] Closes #20068
-
- 31 12月, 2014 1 次提交
-
-
由 Aaron Turon 提交于
-
- 30 12月, 2014 1 次提交
-
-
由 Alex Crichton 提交于
This commit is an implementation of [RFC 503][rfc] which is a stabilization story for the prelude. Most of the RFC was directly applied, removing reexports. Some reexports are kept around, however: * `range` remains until range syntax has landed to reduce churn. * `Path` and `GenericPath` remain until path reform lands. This is done to prevent many imports of `GenericPath` which will soon be removed. * All `io` traits remain until I/O reform lands so imports can be rewritten all at once to `std::io::prelude::*`. This is a breaking change because many prelude reexports have been removed, and the RFC can be consulted for the exact list of removed reexports, as well as to find the locations of where to import them. [rfc]: https://github.com/rust-lang/rfcs/blob/master/text/0503-prelude-stabilization.md [breaking-change] Closes #20068
-
- 22 12月, 2014 1 次提交
-
-
由 Alex Crichton 提交于
-
- 21 11月, 2014 1 次提交
-
-
由 Aaron Turon 提交于
With runtime removal complete, there's nothing left of libnative. This commit removes it. Fixes #18687 [breaking-change]
-
- 06 11月, 2014 1 次提交
-
-
由 Niko Matsakis 提交于
Support parenthesized paths `Foo(A,B) -> C` that expand to `Foo<(A,B),C>`. These paths also bind anonymous regions (or will, once HRTB is fully working). Fixes #18423.
-
- 20 10月, 2014 1 次提交
-
-
由 Alex Crichton 提交于
Spring cleaning is here! In the Fall! This commit removes quite a large amount of deprecated functionality from the standard libraries. I tried to ensure that only old deprecated functionality was removed. This is removing lots and lots of deprecated features, so this is a breaking change. Please consult the deprecation messages of the deleted code to see how to migrate code forward if it still needs migration. [breaking-change]
-
- 17 9月, 2014 1 次提交
-
-
由 Nick Cameron 提交于
-
- 14 9月, 2014 1 次提交
-
-
由 Eduard Burtescu 提交于
-
- 02 9月, 2014 1 次提交
-
-
由 wickerwaka 提交于
Added warning for old deprecated syntax
-
- 17 8月, 2014 1 次提交
-
-
由 Patrick Walton 提交于
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]
-
- 26 7月, 2014 1 次提交
-
-
由 Brian Anderson 提交于
Rename and gensym the runtime on import, so that users can't refer to the `native` crate. This is unlikely to break code, but users should import the "native" crate directly. [breaking-change]
-
- 22 7月, 2014 1 次提交
-
-
由 Brian Anderson 提交于
This adds the alt_std_name field to the Session's Options type. I'm using this in an external tool to control which libraries a crate links to.
-
- 06 7月, 2014 1 次提交
-
-
由 Alex Crichton 提交于
This commit removes all support in the compiler for the #[crate_id] attribute and all of its derivative infrastructure. A list of the functionality removed is: * The #[crate_id] attribute no longer exists * There is no longer the concept of a version of a crate * Version numbers are no longer appended to symbol names * The --crate-id command line option has been removed To migrate forward, rename #[crate_id] to #[crate_name] and only the name of the crate itself should be mentioned. The version/path of the old crate id should be removed. For a transitionary state, the #[crate_id] attribute is still accepted if the #[crate_name] is not present, but it is warned about if it is the only identifier present. RFC: 0035-remove-crate-id [breaking-change]
-
- 28 6月, 2014 1 次提交
-
-
由 Alex Crichton 提交于
-
- 16 6月, 2014 1 次提交
-
-
由 Alex Crichton 提交于
-
- 15 6月, 2014 1 次提交
-
-
由 Alex Crichton 提交于
This removes all remnants of `@` pointers from rustc. Additionally, this removes the `GC` structure from the prelude as it seems odd exporting an experimental type in the prelude by default. Closes #14193 [breaking-change]
-
- 12 6月, 2014 2 次提交
-
-
由 Alex Crichton 提交于
* The select/plural methods from format strings are removed * The # character no longer needs to be escaped * The \-based escapes have been removed * '{{' is now an escape for '{' * '}}' is now an escape for '}' Closes #14810 [breaking-change]
-
由 Alex Crichton 提交于
-
- 10 6月, 2014 1 次提交
-
-
由 Keegan McAllister 提交于
See RFC 22. [breaking-change]
-
- 08 6月, 2014 1 次提交
-
-
由 Jakub Wieczorek 提交于
-
- 25 5月, 2014 2 次提交
-
-
由 Steven Fackler 提交于
Enough attributes are marked to cleanly compile an empty library.
-
由 Steven Fackler 提交于
-
- 23 5月, 2014 1 次提交
-
-
由 Patrick Walton 提交于
-
- 21 5月, 2014 1 次提交
-
-
由 Kevin Ballard 提交于
The #[phase(syntax,link)] attribute on `extern crate std` needs to be an outer attribute so it can pretty-print properly. Also add `#![no_std]` and `#[feature(phase)]` so compiling the pretty-printed source will work.
-
- 14 5月, 2014 1 次提交
-
-
由 klutzy 提交于
Inject `extern crate {std, native}` before `use` statements. Add `#![feature(glob)]` since `use std::prelude::*` is used. (Unfortunately `rustc --pretty expanded` does not converge, since `extern crate` and `use std::prelude::*` is injected at every iteration.)
-
- 13 5月, 2014 1 次提交
-
-
由 Brian Anderson 提交于
-
- 11 5月, 2014 1 次提交
-
-
由 Nick Cameron 提交于
The goal of this refactoring is to make the rustc driver code easier to understand and use. Since this is as close to an API as we have, I think it is important that it is nice. On getting stuck in, I found that there wasn't as much to change as I'd hoped to make the stage... fns easier to use by tools. This patch only moves code around - mostly just moving code to different files, but a few extracted method refactorings too. To summarise the changes: I added driver::config which handles everything about configuring the compiler. driver::session now just defines and builds session objects. I moved driver code from librustc/lib.rs to librustc/driver/mod.rs so all the code is one place. I extracted methods to make emulating the compiler without being the compiler a little easier. Within the driver directory, I moved code around to more logically fit in the modules.
-
- 03 5月, 2014 1 次提交
-
-
由 Alex Crichton 提交于
This has long since not been too relevant since the introduction of many crate type outputs. This commit removes the flag entirely, adjusting all logic to do the most reasonable thing when building both a library and an executable. Closes #13337
-
- 26 4月, 2014 1 次提交
-
-
由 Kang Seonghoon 提交于
it reflected the obsolete syntax `use a, b, c;` and did not make past the parser (though it was a non-fatal error so we can continue). this legacy affected many portions of rustc and rustdoc as well, so this commit cleans them up altogether.
-
- 14 4月, 2014 1 次提交
-
-
由 Manish Goregaokar 提交于
-
- 04 4月, 2014 1 次提交
-
-
由 Brian Anderson 提交于
This also changes some of the download links in the documentation to 'nightly'.
-
- 01 4月, 2014 1 次提交
-
-
由 Alex Crichton 提交于
-
- 31 3月, 2014 1 次提交
-
-
由 Daniel Micay 提交于
These were only free functions on `~[T]` because taking self by-value used to be broken.
-
- 22 3月, 2014 1 次提交
-
-
由 Huon Wilson 提交于
syntax::opt_vec is now entirely unused, and so can go.
-