Auto merge of #29872 - steveklabnik:rollup, r=steveklabnik
- Successful merges: #29549, #29796, #29843, #29863, #29865 - Failed merges:
This commit is contained in:
commit
9f49ea0f4b
8 changed files with 129 additions and 85 deletions
|
|
@ -14,9 +14,8 @@ concepts. Upon completing the book, you'll be an intermediate Rust
|
|||
developer, and will have a good grasp of the fundamental ideas behind
|
||||
Rust.
|
||||
|
||||
[Rust By Example][rbe] was originally a community resource, but was then
|
||||
donated to the Rust project. As the name implies, it teaches you Rust through a
|
||||
series of small examples.
|
||||
[Rust By Example][rbe] teaches you Rust through a series of small
|
||||
examples.
|
||||
|
||||
[rbe]: http://rustbyexample.com/
|
||||
|
||||
|
|
@ -32,49 +31,21 @@ library](std/index.html). There's a list of crates on the left with more
|
|||
specific sections, or you can use the search bar at the top to search for
|
||||
something if you know its name.
|
||||
|
||||
# The Rustonomicon
|
||||
|
||||
[The Rustonomicon] is an entire book dedicated to explaining
|
||||
how to write `unsafe` Rust code. It is for advanced Rust programmers.
|
||||
|
||||
[The Rustonomicon]: nomicon/index.html
|
||||
|
||||
# Tools
|
||||
|
||||
[Cargo](https://crates.io) is the Rust's package manager providing access to libraries
|
||||
[Cargo](http://doc.crates.io/index.html) is the Rust package manager providing access to libraries
|
||||
beyond the standard one, and its website contains lots of good documentation.
|
||||
|
||||
[`rustdoc`](book/documentation.html) is the Rust's documentation generator, a tool converting
|
||||
annotated source code into HTML docs.
|
||||
|
||||
A bunch of non-official tools are available, such as [Racer](https://github.com/phildawes/racer)
|
||||
(code completion engine), or [rustfmt](https://github.com/nrc/rustfmt) (source code formatter),
|
||||
or text editor plugins.
|
||||
|
||||
# Community & Getting Help
|
||||
|
||||
If you need help with something, or just want to talk about Rust with others,
|
||||
there are a few places you can do that:
|
||||
|
||||
The Rust IRC channels on [irc.mozilla.org](irc://irc.mozilla.org/) are the
|
||||
fastest way to get help.
|
||||
[`#rust`](http://chat.mibbit.com/?server=irc.mozilla.org&channel=%23rust) is
|
||||
the general discussion channel, and you'll find people willing to help you with
|
||||
any questions you may have.
|
||||
|
||||
There are also three specialty channels:
|
||||
[`#rust-gamedev`](http://chat.mibbit.com/?server=irc.mozilla.org&channel=%23rust-gamedev)
|
||||
and
|
||||
[`#rust-osdev`](http://chat.mibbit.com/?server=irc.mozilla.org&channel=%23rust-osdev)
|
||||
are for game development and operating system development, respectively.
|
||||
There's also
|
||||
[`#rust-internals`](http://chat.mibbit.com/?server=irc.mozilla.org&channel=%23rust-internals), which is for discussion of the development of Rust itself.
|
||||
|
||||
You can also get help on [Stack
|
||||
Overflow](https://stackoverflow.com/questions/tagged/rust). Searching for your
|
||||
problem might reveal someone who has asked it before!
|
||||
|
||||
There is an active [subreddit](https://reddit.com/r/rust) with lots of
|
||||
discussion and news about Rust.
|
||||
|
||||
There is also a [user forum](https://users.rust-lang.org), for all
|
||||
user-oriented discussion, and a [developer
|
||||
forum](https://internals.rust-lang.org/), where the development of Rust
|
||||
itself is discussed.
|
||||
|
||||
# FAQs
|
||||
|
||||
There are questions that are asked quite often, so we've made FAQs for them:
|
||||
|
|
|
|||
|
|
@ -26,6 +26,9 @@ still consumes a byte of space.
|
|||
* DSTs, tuples, and tagged unions are not a concept in C and as such are never
|
||||
FFI safe.
|
||||
|
||||
* Tuple structs are like structs with regards to `repr(C)`, as the only
|
||||
difference from a struct is that the fields aren’t named.
|
||||
|
||||
* **If the type would have any [drop flags], they will still be added**
|
||||
|
||||
* This is equivalent to one of `repr(u*)` (see the next section) for enums. The
|
||||
|
|
|
|||
4
src/etc/add-authors.sh
Normal file → Executable file
4
src/etc/add-authors.sh
Normal file → Executable file
|
|
@ -30,8 +30,8 @@ range="$1"
|
|||
authors_file="./AUTHORS.txt"
|
||||
tmp_file="./AUTHORS.txt.tmp"
|
||||
old_authors="$(cat "$authors_file" | tail -n +2 | sed "/^$/d" | sort)"
|
||||
new_authors="$(git log "$range" --format="%aN <%aE>" | sort | uniq)"
|
||||
new_authors="$(git log "$range" --use-mailmap --format="%aN <%aE>" | sort | uniq)"
|
||||
|
||||
printf "%s\n\n" "Rust was written by these fine people:" > "$tmp_file"
|
||||
printf "%s\n%s" "$old_authors" "$new_authors" | sort | uniq >> "$tmp_file"
|
||||
printf "%s\n%s" "$old_authors" "$new_authors" | sort -fs | uniq >> "$tmp_file"
|
||||
mv -f "$tmp_file" "$authors_file"
|
||||
|
|
|
|||
|
|
@ -806,6 +806,15 @@ mod something {
|
|||
pub struct Foo;
|
||||
}
|
||||
```
|
||||
|
||||
Or, if you tried to use a module from an external crate, you may have missed
|
||||
the `extern crate` declaration:
|
||||
|
||||
```
|
||||
extern crate homura; // Required to use the `homura` crate
|
||||
|
||||
use homura::Madoka;
|
||||
```
|
||||
"##,
|
||||
|
||||
E0433: r##"
|
||||
|
|
|
|||
|
|
@ -66,7 +66,7 @@ use sys_common::poison::{self, TryLockError, TryLockResult, LockResult};
|
|||
/// for _ in 0..10 {
|
||||
/// let (data, tx) = (data.clone(), tx.clone());
|
||||
/// thread::spawn(move || {
|
||||
/// // The shared static can only be accessed once the lock is held.
|
||||
/// // The shared state can only be accessed once the lock is held.
|
||||
/// // Our non-atomic increment is safe because we're the only thread
|
||||
/// // which can access the shared state when the lock is held.
|
||||
/// //
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue