-
Notifications
You must be signed in to change notification settings - Fork 1.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
A "Design FAQ" document #891
Comments
The manual has a related (and empty) section: http://dl.rust-lang.org/doc/0.4/rust.html#appendix-rationales-and-design-tradeoffs |
Why are |
Why are early returns disallowed within closures? |
Why are separate |
Why do traits in Rust depart from the design in the original traits paper? |
Why must imports be qualified relative to the crate? |
These are great, please keep them coming |
"What does |
Why feature conditions rather than exceptions? |
Why so many pointer types? Why not rely on escape analysis instead? Answered at: |
Why is the |
Why do borrow checks on |
Why are there no exceptions? |
Why is name resolution such an intractably hard problem?
|
Here's a summary about dynamically sized types https://mail.mozilla.org/pipermail/rust-dev/2013-April/003933.html |
Summary of 'why no exceptions' https://mail.mozilla.org/pipermail/rust-dev/2013-April/003815.html |
Summary of 'why no purity-in-the-type-system, i.e., why no effect system': https://mail.mozilla.org/pipermail/rust-dev/2013-April/003926.html |
document how to make non-utf8 byte vectors with bytes!(…) e.g. |
|
Why have we mostly moved from internal iterators to external iterators? |
Why was the runtime ported from C++ to Rust? |
Why is rustc slow? https://mail.mozilla.org/pipermail/rust-dev/2013-November/006975.html |
Import rate limiting made this fail :( re-opening the original: #615 |
Tuesday Nov 27, 2012 at 20:34 GMT
For earlier discussion, see rust-lang/rust#4047
This issue was labelled with: A-docs, I-wishlist in the Rust repository
In the vein of the Project FAQ and the Language FAQ.
In addition to being really interesting, this would save a lot of time and divert a lot of potential questions in the long run. Some topics to discuss:
(see e.g. rust-dev post.)
Explanations should be technical and include code examples wherever possible.
Some of the questions of this nature overlap with the latter half of the Language FAQ, but not all, e.g. "Can Rust code call C code?" and "What is the difference between a managed pointer and an owned pointer?" do not belong. The document should focus on large-scale design decisions and tradeoffs; think "Why split stacks?" rather than "How do split stacks work?".
If you think of good questions, add them in the comments here. There are probably a lot of ripe areas for explanation, especially with regard to mutability and regions.
The text was updated successfully, but these errors were encountered: