Skip to content

Commit 352abc0

Browse files
authoredMay 14, 2018
Merge pull request #2420 from Centril/rfc/unreserve-proc
RFC: Unreserve `proc`
2 parents adecae4 + ac7bf2a commit 352abc0

File tree

1 file changed

+72
-0
lines changed

1 file changed

+72
-0
lines changed
 

‎text/2420-unreserve-proc.md

+72
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
- Feature Name: `unreserve_proc`
2+
- Start Date: 2018-04-26
3+
- RFC PR: [rust-lang/rfcs#2420](https://github.com/rust-lang/rfcs/pull/2420)
4+
- Rust Issue: N/A. Already implemented.
5+
6+
# Summary
7+
[summary]: #summary
8+
9+
The keyword `proc` gets unreserved.
10+
11+
# Motivation
12+
[motivation]: #motivation
13+
14+
We are currently not using `proc` as a keyword for anything in the language.
15+
Currently, `proc` is a reserved keyword for future use. However, we have
16+
no intention of using the keyword for anything in the future, and as such,
17+
we want to unreserve it so that rustaceans can use it as identifiers.
18+
19+
In the specific case of `proc`, it is a useful identifier for many things.
20+
In particular, it is useful when dealing with processes, OS internals and
21+
kernel development.
22+
23+
# Guide-level explanation
24+
[guide-level-explanation]: #guide-level-explanation
25+
26+
See the [reference-level-explanation].
27+
28+
# Reference-level explanation
29+
[reference-level-explanation]: #reference-level-explanation
30+
31+
[list of reserved keywords]: https://doc.rust-lang.org/book/second-edition/appendix-01-keywords.html#keywords-currently-in-use
32+
33+
The keyword `proc` is removed from the [list of reserved keywords] and is no
34+
longer reserved. This is done immediately and on edition 2015.
35+
36+
# Drawbacks
37+
[drawbacks]: #drawbacks
38+
39+
The only drawback is that we're not able to use `proc` as a keyword in the
40+
future, without a reservation in a new edition, if we realize that we made
41+
a mistake.
42+
43+
[arrow]: https://downloads.haskell.org/~ghc/7.8.1/docs/html/users_guide/arrow-notation.html
44+
45+
The keyword `proc` could be used for some [`Arrow` notation][arrow] as used in
46+
Haskell. However, `proc` notation is rarely used in Haskell since `Arrow`s are
47+
not generally understood; and if something is not well understood by one of the
48+
most academically inclined of communities of users, it is doubly a bad fit for
49+
Rust which has a community mixed with users used to FP, systemsy and dynamically
50+
checked programming languages. Moreover, `Arrow`s would most likely require HKTs
51+
which we might not get.
52+
53+
# Rationale and alternatives
54+
[alternatives]: #alternatives
55+
56+
There's only one alternative: Not doing anything.
57+
58+
Previously, this used to be the keyword used for `move |..| { .. }` closures,
59+
but `proc` is no longer used for anything.
60+
61+
Not unreserving this keyword would make the word unavailable for use as an
62+
identifier.
63+
64+
# Prior art
65+
[prior-art]: #prior-art
66+
67+
Not applicable.
68+
69+
# Unresolved questions
70+
[unresolved]: #unresolved-questions
71+
72+
There are none.

0 commit comments

Comments
 (0)
Please sign in to comment.