From f21cd0d236f5d5ae866ae62c294fb067bc4b279a Mon Sep 17 00:00:00 2001 From: Mazdak Farrokhzad Date: Thu, 26 Apr 2018 18:41:02 +0200 Subject: [PATCH 1/3] rfc, unreserve-proc: initial version. --- text/unreserve-proc.md | 72 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 text/unreserve-proc.md diff --git a/text/unreserve-proc.md b/text/unreserve-proc.md new file mode 100644 index 00000000000..c4031c54a3f --- /dev/null +++ b/text/unreserve-proc.md @@ -0,0 +1,72 @@ +- Feature Name: `unreserve_proc` +- Start Date: 2018-04-26 +- RFC PR: +- Rust Issue: + +# Summary +[summary]: #summary + +The keyword `proc` gets unreserved. + +# Motivation +[motivation]: #motivation + +We are currently not using `proc` as a keyword for anything in the language. +Currently, `proc` is a reserved keyword for future use. However, we have +no intention of using the keyword for anything in the future, and as such, +we want to unreserve it so that rustaceans can use it as identifiers. + +In the specific case of `proc`, it is a useful identifier for many things. +In particular, it is useful when dealing with processes, OS internals and +kernel development. + +# Guide-level explanation +[guide-level-explanation]: #guide-level-explanation + +See the [reference-level-explanation]. + +# Reference-level explanation +[reference-level-explanation]: #reference-level-explanation + +[list of reserved keywords]: https://doc.rust-lang.org/book/second-edition/appendix-01-keywords.html#keywords-currently-in-use + +The keyword `proc` is removed from the [list of reserved keywords] and is no +longer reserved. This is done immediately and on edition 2015. + +# Drawbacks +[drawbacks]: #drawbacks + +The only drawback is that we're not able to use `proc` as a keyword in the +future, without a reservation in a new edition, if we realize that we made +a mistake. + +[arrow]: https://downloads.haskell.org/~ghc/7.8.1/docs/html/users_guide/arrow-notation.html + +The keyword `proc` could be used for some [`Arrow` notation][arrow] as used in +Haskell. However, `proc` notation is rarely used in Haskell since `Arrow`s are +not generally understood; and if something is not well understood by one of the +most academically inclined of communities of users, it is doubly a bad fit for +Rust which has a community mixed with users used to FP, systemsy and dynamically +checked programming languages. Moreover, `Arrow`s would most likely require HKTs +which we might not get. + +# Rationale and alternatives +[alternatives]: #alternatives + +There's only one alternative: Not doing anything. + +Previously, this used to be the keyword used for `move |..| { .. }` closures, +but `proc` is no longer used for anything. + +Not unreserving this keyword would make the word unavailable for use as an +identifier. + +# Prior art +[prior-art]: #prior-art + +Not applicable. + +# Unresolved questions +[unresolved]: #unresolved-questions + +There are none. From 6a558915632b91f4600db263aa286b835b2627c9 Mon Sep 17 00:00:00 2001 From: Mazdak Farrokhzad Date: Thu, 26 Apr 2018 18:43:37 +0200 Subject: [PATCH 2/3] rfc, unreserve-proc: unreserve-proc.md -> 0000-unreserve-proc.md --- text/{unreserve-proc.md => 0000-unreserve-proc.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename text/{unreserve-proc.md => 0000-unreserve-proc.md} (100%) diff --git a/text/unreserve-proc.md b/text/0000-unreserve-proc.md similarity index 100% rename from text/unreserve-proc.md rename to text/0000-unreserve-proc.md From ac7bf2a343e53a3bf1b0402f192468af99733667 Mon Sep 17 00:00:00 2001 From: Mazdak Farrokhzad Date: Mon, 14 May 2018 18:12:23 +0200 Subject: [PATCH 3/3] RFC 2420 --- text/{0000-unreserve-proc.md => 2420-unreserve-proc.md} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename text/{0000-unreserve-proc.md => 2420-unreserve-proc.md} (95%) diff --git a/text/0000-unreserve-proc.md b/text/2420-unreserve-proc.md similarity index 95% rename from text/0000-unreserve-proc.md rename to text/2420-unreserve-proc.md index c4031c54a3f..8210b8ce06f 100644 --- a/text/0000-unreserve-proc.md +++ b/text/2420-unreserve-proc.md @@ -1,7 +1,7 @@ - Feature Name: `unreserve_proc` - Start Date: 2018-04-26 -- RFC PR: -- Rust Issue: +- RFC PR: [rust-lang/rfcs#2420](https://github.com/rust-lang/rfcs/pull/2420) +- Rust Issue: N/A. Already implemented. # Summary [summary]: #summary