github.com
## Summary Add a new flag to the compiler, `--cap-lints`, which set the maximum possible lint level for the entire crate (and cannot be overridden). Cargo will then pass `--cap-lints allow` to all upstream dependencies when compiling code....
RFC 1193
RFC
2015-07-07
~3 min read
github.com
## Summary Add a high-level intermediate representation (HIR) to the compiler. This is basically a new (and additional) AST more suited for use by the compiler. This is purely an implementation detail of the compiler. It has no effect on th...
RFC 1191
RFC
2015-07-06
~2 min read
github.com
## Summary Add support to the compiler to override the default allocator, allowing a different allocator to be used by default in Rust programs. Additionally, also switch the default allocator for dynamic libraries and static libraries to u...
RFC 1183
RFC
2015-06-27
~8 min read
github.com
## Summary Tweak the `#![no_std]` attribute, add a new `#![no_core]` attribute, and pave the way for stabilizing the libcore library. ## Motivation Currently all stable Rust programs must link to the standard library (libstd), and it is imp...
RFC 1184
RFC
2015-06-26
~5 min read
github.com
## Summary Introduce and implement `IntoRaw{Fd, Socket, Handle}` traits to complement the existing `AsRaw{Fd, Socket, Handle}` traits already in the standard library. ## Motivation The `FromRaw{Fd, Socket, Handle}` traits each take ownershi...
RFC 1174
RFC
2015-06-24
~1 min read
github.com
## Summary This RFC proposes a design for *specialization*, which permits multiple `impl` blocks to apply to the same type/trait, so long as one of the blocks is clearly "more specific" than the other. The more specific `impl` block is used...
RFC 1210
RFC
2015-06-17
~58 min read
github.com
## Summary Add some methods that already exist on slices to strings. Specifically, the following methods should be added: - `str::into_string` - `String::into_boxed_str` ## Motivation Conceptually, strings and slices are similar types. Many...
RFC 1152
RFC
2015-06-06
~1 min read
github.com
## Summary Adjust the object default bound algorithm for cases like `&'x Box<Trait>` and `&'x Arc<Trait>`. The existing algorithm would default to `&'x Box<Trait+'x>`. The proposed change is to default to `&'x Box<Trait+'static>`. Note: Thi...
RFC 1156
RFC
2015-06-04
~8 min read
github.com
## Summary Lay the ground work for building powerful SIMD functionality. ## Motivation SIMD (Single-Instruction Multiple-Data) is an important part of performant modern applications. Most CPUs used for that sort of task provide dedicated ha...
RFC 1199
RFC
2015-06-02
~12 min read
github.com
## Summary Allow equality, but not order, comparisons between fat raw pointers of the same type. ## Motivation Currently, fat raw pointers can't be compared via either PartialEq or PartialOrd (currently this causes an ICE). It seems to me t...
RFC 1135
RFC
2015-05-27
~1 min read
github.com
## Summary - Formalize project groups as groups dedicated to specific projects within the context of a Rust team. - Project groups are created via team consensus (such as an RFC) and have a "parent team(s)" - The groups then drive the proje...
RFC 2856
RFC
2015-05-21
~11 min read
github.com
## Summary Provide a pair of intrinsic functions for hinting the likelihood of branches being taken. ## Motivation Branch prediction can have significant effects on the running time of some code. Especially tight inner loops which may be ru...
RFC 1131
RFC
2015-05-20
~2 min read
github.com
## Summary Introduce the method `split_at(&self, mid: usize) -> (&str, &str)` on `str`, to divide a slice into two, just like we can with `[T]`. ## Motivation Adding `split_at` is a measure to provide a method from `[T]` in a version that m...
RFC 1123
RFC
2015-05-17
~2 min read
github.com
## Summary Add an `expect` method to the Result type, bounded to `E: Debug` ## Motivation While `Result::unwrap` exists, it does not allow annotating the panic message with the operation attempted (e.g. what file was being opened). This is...
RFC 1119
RFC
2015-05-13
~1 min read
github.com
## Summary This RFC has the goal of defining what sorts of breaking changes we will permit for the Rust language itself, and giving guidelines for how to go about making such changes. ## Motivation With the release of 1.0, we need to establ...
RFC 1122
RFC
2015-05-07
~12 min read
github.com
## Summary This RFC proposes a comprehensive set of guidelines for which changes to *stable* APIs are considered breaking from a semver perspective, and which are not. These guidelines are intended for both the standard library and for the...
RFC 1105
RFC
2015-05-04
~24 min read
github.com
## Summary Rename `.connect()` to `.join()` in `SliceConcatExt`. ## Motivation Rust has a string concatenation method named `.connect()` in `SliceConcatExt`. However, this does not align with the precedents in other languages. Most language...
RFC 1102
RFC
2015-05-02
~1 min read
github.com
## Summary Remove the `static_assert` feature. ## Motivation To recap, `static_assert` looks like this: ```rust #![feature(static_assert)] #[static_assert] static assertion: bool = true; ``` If `assertion` is `false` instead, this fails to...
RFC 1096
RFC
2015-04-28
~1 min read
github.com
## Summary Alter the signature of the `std::mem::forget` function to remove `unsafe`. Explicitly state that it is not considered unsafe behavior to not run destructors. ## Motivation It was [recently discovered][scoped-bug] by @arielb1 that...
RFC 1066
RFC
2015-04-15
~4 min read
github.com
## Summary Add the `Sync` bound to `io::Error` by requiring that any wrapped custom errors also conform to `Sync` in addition to `error::Error + Send`. ## Motivation Adding the `Sync` bound to `io::Error` has 3 primary benefits: * Values th...
RFC 1057
RFC
2015-04-11
~2 min read