## Summary [summary]: #summary A closure that does not move, borrow, or otherwise access (capture) local variables should be coercible to a function pointer (`fn`). ## Motivation [motivation]: #motivation Currently in Rust, it is impossible...
## Summary [summary]: #summary This RFC exposes LLVM's support for [module-level inline assembly](http://llvm.org/docs/LangRef.html#module-level-inline-assembly) by adding a `global_asm!` macro. The syntax is very simple: it just takes a st...
## Summary [summary]: #summary Add a `contains` method to `VecDeque` and `LinkedList` that checks if the collection contains a given item. ## Motivation [motivation]: #motivation A `contains` method exists for the slice type `[T]` and for `...
## Summary [summary]: #summary This RFC basically changes `core::sync::atomic` to look like this: ```rust #[cfg(target_has_atomic = "8")] struct AtomicBool {} #[cfg(target_has_atomic = "8")] struct AtomicI8 {} #[cfg(target_has_atomic = "8")...
## Summary [summary]: #summary The standard library provides the `From` and `Into` traits as standard ways to convert between types. However, these traits only support *infallible* conversions. This RFC proposes the addition of `TryFrom` an...
## Summary [summary]: #summary Stabilize the `-C overflow-checks` command line argument. ## Motivation [motivation]: #motivation This is an easy way to turn on overflow checks in release builds without otherwise turning on debug assertions,...
## Summary [summary]: #summary With specialization on the way, we need to talk about the semantics of `<T as Clone>::clone() where T: Copy`. It's generally been an unspoken rule of Rust that a `clone` of a `Copy` type is equivalent to a `me...
## Summary [summary]: #summary Stabilize implementing panics as aborts. * Stabilize the `-Z no-landing-pads` flag under the name `-C panic=strategy` * Implement a number of unstable features akin to custom allocators to swap out implementat...
## Summary [summary]: #summary Add a new crate type accepted by the compiler, called `cdylib`, which corresponds to exporting a C interface from a Rust dynamic library. ## Motivation [motivation]: #motivation Currently the compiler supports...
## Summary [summary]: #summary This RFC adds the `i128` and `u128` primitive types to Rust. ## Motivation [motivation]: #motivation Some algorithms need to work with very large numbers that don't fit in 64 bits, such as certain cryptographi...
## Summary [summary]: #summary This RFC proposes an evolution of Rust's procedural macro system (aka syntax extensions, aka compiler plugins). This RFC specifies syntax for the definition of procedural macros, a high-level view of their imp...
## Summary [summary]: #summary Add constructor and conversion functions for `std::net::Ipv6Addr` and `std::net::Ipv4Addr` that are oriented around arrays of octets. ## Motivation [motivation]: #motivation Currently, the interface for `std::...
## Summary [summary]: #summary Naming and modularisation for macros. This RFC proposes making macros a first-class citizen in the Rust module system. Both macros by example (`macro_rules` macros) and procedural macros (aka syntax extensions...
## Summary [summary]: #summary Some internal and language-level changes to name resolution. Internally, name resolution will be split into two parts - import resolution and name lookup. Import resolution is moved forward in time to happen i...
## Summary [summary]: #summary Provide a simple model describing three kinds of structs and variants and their relationships. Provide a way to match on structs/variants in patterns regardless of their kind (`S{..}`). Permit tuple structs an...
## Summary [summary]: #summary Permit the `..` pattern fragment in more contexts. ## Motivation [motivation]: #motivation The pattern fragment `..` can be used in some patterns to denote several elements in list contexts. However, it doesn'...
## Summary [summary]: #summary Add a conservative form of abstract return types, also known as `impl Trait`, that will be compatible with most possible future extensions by initially being restricted to: - Only free-standing or inherent fun...
## Summary [summary]: #summary [Unix domain sockets](https://en.wikipedia.org/wiki/Unix_domain_socket) provide a commonly used form of IPC on Unix-derived systems. This RFC proposes move the [unix_socket](https://crates.io/crates/unix_socke...
## Summary [summary]: #summary Stabilize the `volatile_load` and `volatile_store` intrinsics as `ptr::read_volatile` and `ptr::write_volatile`. ## Motivation [motivation]: #motivation This is necessary to allow volatile access to memory-map...
## Summary [summary]: #summary [RFC 1158](https://github.com/rust-lang/rfcs/pull/1158) proposed the addition of more functionality for the `TcpStream`, `TcpListener` and `UdpSocket` types, but was declined so that those APIs could be built...