Felix S. Klock II
c2c76b3366
Document the new more conservative dropck rule and the escape hatch.
8 years ago
Carlos Liam
30ae4bc89b
Replace multiple trailing newlines with a single trailing newline
...
Sorry I didn’t get this in the last PR (#28864 ), I hadn’t thought of it.
8 years ago
Ms2ger
0e784eb884
Fix some typos.
8 years ago
Simon Mazur
3e25f93084
docs: anchors fixes
8 years ago
Pascal Hertleif
83ce66888e
Nomicon: Fix Links
...
The style `[name][]` does not work with Pandoc, whereas `[name]` does.
I hope hoedown accepts this as well.
8 years ago
Alex Crichton
4c56ec91c3
std: Internalize almost all of `std::rt`
...
This commit does some refactoring to make almost all of the `std::rt` private.
Specifically, the following items are no longer part of its API:
* DEFAULT_ERROR_CODE
* backtrace
* unwind
* args
* at_exit
* cleanup
* heap (this is just alloc::heap)
* min_stack
* util
The module is now tagged as `#[doc(hidden)]` as the only purpose it's serve is
an entry point for the `panic!` macro via the `begin_unwind` and
`begin_unwind_fmt` reexports.
8 years ago
Jørn Lode
a0b4fdad02
Rustonomicon: Reword potentially confusing comment in Vec::drain.
8 years ago
Jørn Lode
2574990a3f
Rustonomicon: Fix bug in implementation of Vec::drain()
...
In the last code snippet on the following page there is a bug in the
implementation of Vec::drain().
https://doc.rust-lang.org/nightly/nomicon/vec-drain.html
```rust
pub fn drain(&mut self) -> Drain<T> {
// Oops, setting it to 0 while we still need the old value!
self.len = 0;
unsafe {
Drain {
// len is used to create a &[T] from &self here,
// so we end up always creating an empty slice.
iter: RawValIter::new(&self),
vec: PhantomData,
}
}
}
```
A simple test to verify that Drain is broken can be found here:
https://play.rust-lang.org/?gist=30f579565e4bbf4836ce&version=nightly
And here's one with a fixed implementation:
https://play.rust-lang.org/?gist=2ec0c1a6dcf5defd7a53&version=nightly
8 years ago
Jake Kerr
00fdb72cc8
Reverse AtomicBool value in nomicon example to agree with its comment.
...
Makes the code agree with the comment: 'value answers "am I locked?"'.
8 years ago
Andrew Paseltiner
649ba39bc4
Remove superfluous line from Nomicon
8 years ago
Tshepang Lekhonkhobe
4b1781c350
nomicon: insert missing words
8 years ago
Tshepang Lekhonkhobe
80604b471d
nomicon: use current syntax
8 years ago
Steve Klabnik
5dfcb738b1
Remove reference to diabetes
...
1. this isn't actually true about diabetes
2. people with diabetes will get *real sad* when reading this
3. it isn't actually necessary.
8 years ago
Taliesin Beynon
2bea608ff4
Some rerp-rust improvements.
...
* Some clarifying rephrasing.
* Rename B.x back to B.a.
* Make null pointer optimization section bit more concrete.
8 years ago
Jeehoon Kang
d787bec7d5
Revise TARPL's description for allocating 0 bytes
...
In Section 3.2, TARPL says that "standard allocators (including jemalloc, the one used by default in Rust) generally consider passing in 0 for the size of an allocation as Undefined Behaviour."
However, the C standard and jemalloc manual says allocating zero bytes
should succeed:
- C11 7.22.3 paragraph 1: "If the size of the space requested is zero, the behavior is implementation-defined: either a null pointer is returned, or the behavior is as if the size were some nonzero value, except that the returned pointer shall not be used to access an object."
- [jemalloc manual](http://www.freebsd.org/cgi/man.cgi?query=jemalloc&sektion=3 ): "The malloc and calloc functions return a pointer to the allocated memory if successful; otherwise a NULL pointer is returned and errno is set to ENOMEM."
+ Note that the description for `allocm` says "Behavior is undefined if size is 0," but it is an experimental API.
8 years ago
Ivan Jager
399efd4cdc
Fix some grammar in The Advanced Rust Programming Language
8 years ago
Alexis Beingessner
f6e739a54c
Fix variance ordering
...
I thought this was actually a huge error and I'd have to rewrite a bunch but
it looks like everything else was correct.
Closes #27457
8 years ago
Alexis Beingessner
5dea771dbb
rename TARPL to The Rustinomicon
8 years ago
Oliver Schneider
99e464326c
fix code and error to match the surronding text
8 years ago
Cole Reynolds
a15e56cb52
Minor grammatical changes to send-and-sync.
...
Corrects formatting of bullet-ed sentences and changes 'pervasive use raw pointers' to 'pervasive use of raw pointers'
8 years ago
Taliesin Beynon
8a932e55b9
fix switched-round 'b' and 'c'
8 years ago
Alexis Beingessner
37d42cdcef
last of the emphasis cleanup
8 years ago
Alexis Beingessner
42582a28ed
frob emphasis
8 years ago
Alexis Beingessner
85a6d02a45
make the intro less scary
8 years ago
Alexis Beingessner
a9c2c6ee32
fix title-casing
8 years ago
Alex Crichton
ec806b24f4
tarpl: Change norun to no_run
...
Needs the underscore for rustdoc to not actually run it.
8 years ago
Alexis Beingessner
baab22d05e
Maybe ignore the explicit examples of a race condition
8 years ago
Alexis Beingessner
6e480e28e6
fix example code
8 years ago
Alexis Beingessner
594aa865d2
add warning about reference section
8 years ago
Alexis Beingessner
efe5b1b79e
clarify subtyping
8 years ago
Alexis Beingessner
56fd7834f6
fix borrow-splitting
8 years ago
Alexis Beingessner
e00022c2ef
fix incorrect name
8 years ago
Alexis Beingessner
36d7b94c89
lots more felix fixes
8 years ago
Alexis Beingessner
fadf50dc7d
many many pnkfelix fixes
8 years ago
Alexis Beingessner
35f68b4107
OBRM for aturon
8 years ago
Alexis Beingessner
fe09c847aa
vec fixes for huonw
8 years ago
Alexis Beingessner
b1529f107e
fixups for aturon
8 years ago
Alexis Beingessner
8685cdba24
fixup atomics
8 years ago
Alexis Beingessner
f8fdc70bc3
expand lifetime splitting to show IterMut is totally safe
8 years ago
Alexis Beingessner
1e43aaa054
fix accident
8 years ago
Alexis Beingessner
750d0bccde
remove subtyping from coercions, it's something else
8 years ago
Alexis Beingessner
a8f62683fb
clarify casts are checked at compile time
8 years ago
Alexis Beingessner
986d7980c9
remove redundant explanation
8 years ago
Alexis Beingessner
b08d4dde35
explain phantom
8 years ago
Alexis Beingessner
2479c91cf7
get into the weeds over GEP and allocations
8 years ago
Alexis Beingessner
9d578c5d11
UB is src bzns
8 years ago
Alexis Beingessner
42629127a0
mention void pointers
8 years ago
Alexis Beingessner
3ddcf0929c
clean up vec chapter of tarpl
8 years ago
Alexis Beingessner
7415230ad1
flesh out void types
8 years ago
Alexis Beingessner
42ed931268
some conversions cleanup
8 years ago