github.com
## Summary Replace `slice.tail()`, `slice.init()` with new methods `slice.split_first()`, `slice.split_last()`. ## Motivation The `slice.tail()` and `slice.init()` methods are relics from an older version of the slice APIs that included a `...
RFC 1058
RFC
2015-04-11
~2 min read
github.com
## Summary Rename or replace `str::words` to side-step the ambiguity of “a word”. ## Motivation The [`str::words`](http://doc.rust-lang.org/std/primitive.str.html#method.words) method is currently marked `#[unstable(reason = "the precise al...
RFC 1054
RFC
2015-04-10
~1 min read
github.com
## Summary Deprecate `std::fs::soft_link` in favor of platform-specific versions: `std::os::unix::fs::symlink`, `std::os::windows::fs::symlink_file`, and `std::os::windows::fs::symlink_dir`. ## Motivation Windows Vista introduced the abilit...
RFC 1048
RFC
2015-04-09
~6 min read
github.com
## Summary Add sockopt-style timeouts to `std::net` types. ## Motivation Currently, operations on various socket types in `std::net` block indefinitely (i.e., until the connection is closed or data is transferred). But there are many contex...
RFC 1047
RFC
2015-04-08
~4 min read
github.com
## Summary Expand the scope of the `std::fs` module by enhancing existing functionality, exposing lower-level representations, and adding a few new functions. ## Motivation The current `std::fs` module serves many of the basic needs of inte...
RFC 1044
RFC
2015-04-04
~16 min read
github.com
## Summary Add `Default`, `IntoIterator` and `ToOwned` trait to the prelude. ## Motivation Each trait has a distinct motivation: * For `Default`, the ergonomics have vastly improved now that you can write `MyType::default()` (thanks to UFCS...
RFC 1030
RFC
2015-04-03
~1 min read
github.com
## Summary This RFC proposes two rule changes: 1. Modify the orphan rules so that impls of remote traits require a local type that is either a struct/enum/trait defined in the current crate `LT = LocalTypeConstructor<...>` or a reference to...
RFC 1023
RFC
2015-03-27
~9 min read
github.com
## Summary When calling `println!` it currently causes a panic if `stdout` does not exist. Change this to ignore this specific error and simply void the output. ## Motivation On Linux `stdout` almost always exists, so when people write game...
RFC 1014
RFC
2015-03-25
~2 min read
github.com
## Summary Add a function to the `std::process` module to exit the process immediately with a specified exit code. ## Motivation Currently there is no stable method to exit a program in Rust with a nonzero exit code without panicking. The c...
RFC 1011
RFC
2015-03-24
~2 min read
github.com
## Summary This RFC suggests stabilizing a reduced-scope `Duration` type that is appropriate for interoperating with various system calls that require timeouts. It does not stabilize a large number of conversion methods in `Duration` that h...
RFC 1040
RFC
2015-03-24
~7 min read
github.com
## Summary Restrict closure return type syntax for future compatibility. ## Motivation Today's closure return type syntax juxtaposes a type and an expression. This is dangerous: if we choose to extend the type grammar to be more acceptable,...
RFC 968
RFC
2015-03-16
~1 min read
github.com
## Summary Custom coercions allow smart pointers to fully participate in the DST system. In particular, they allow practical use of `Rc<T>` and `Arc<T>` where `T` is unsized. This RFC subsumes part of [RFC 401 coercions](https://github.com/...
RFC 982
RFC
2015-03-16
~6 min read
github.com
## Summary Make the `count` parameter of `SliceExt::splitn`, `StrExt::splitn` and corresponding reverse variants mean the *maximum number of items returned*, instead of the *maximum number of times to match the separator*. ## Motivation The...
RFC 979
RFC
2015-03-15
~2 min read
github.com
## Summary Rust's `Write` trait has the `write_all` method, which is a convenience method that writes a whole buffer, failing with `ErrorKind::WriteZero` if the buffer cannot be written in full. This RFC proposes adding its `Read` counterpa...
RFC 980
RFC
2015-03-15
~10 min read
github.com
## Summary Add the family of `[Op]Assign` traits to allow overloading assignment operations like `a += b`. ## Motivation We already let users overload the binary operations, letting them overload the assignment version is the next logical s...
RFC 953
RFC
2015-03-08
~2 min read
github.com
## Summary Disallow hyphens in Rust crate names, but continue allowing them in Cargo packages. ## Motivation This RFC aims to reconcile two conflicting points of view. First: hyphens in crate names are awkward to use, and inconsistent with...
RFC 940
RFC
2015-03-05
~3 min read
github.com
## Summary Replace `Entry::get` with `Entry::or_insert` and `Entry::or_insert_with` for better ergonomics and clearer code. ## Motivation Entry::get was introduced to reduce a lot of the boiler-plate involved in simple Entry usage. Two incr...
RFC 921
RFC
2015-03-01
~2 min read
github.com
## Summary This RFC proposes to expand, and make more explicit, Rust's governance structure. It seeks to supplement today's core team with several *subteams* that are more narrowly focused on specific areas of interest. *Thanks to Nick Came...
RFC 1068
RFC
2015-02-27
~25 min read
github.com
## Summary Move the contents of `std::thread_local` into `std::thread`. Fully remove `std::thread_local` from the standard library. ## Motivation Thread locals are directly related to threading. Combining the modules would reduce the number...
RFC 909
RFC
2015-02-25
~1 min read
github.com
## Summary Allow marking free functions and inherent methods as `const`, enabling them to be called in constants contexts, with constant arguments. ## Motivation As it is right now, `UnsafeCell` is a stabilization and safety hazard: the fie...
RFC 911
RFC
2015-02-25
~7 min read