Commit Graph

3081 Commits

Author SHA1 Message Date
Jack Wilson
3ccc253dae Small formatting/syntax tweaks 2015-09-05 19:54:52 -07:00
Jørn Lode
c08deef982 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
2015-09-06 03:44:13 +02:00
bors
f84d53ca0a Auto merge of #28259 - christopherdumas:fix_empty_link, r=Manishearth 2015-09-06 01:01:38 +00:00
Alex Burka
a506b7c532 mention dash-to-underscore behavior 2015-09-05 16:42:46 -04:00
christopherdumas
3fa1ee4677 Added link for hygenic macro system in macros.md 2015-09-05 06:04:15 -07:00
Manish Goregaokar
3610c731f3 Rollup merge of #28225 - jackwilsonv:patch-3, r=steveklabnik
r? @steveklabnik
2015-09-05 16:16:01 +05:30
Alex Burka
2cebf3666a document advance extern crate/use syntax
I took a stab at fixing #28064. Not sure if this all-features-in-one-example approach is the right one. Also I completely made up the terms "star globbing" and "brace expansion globbing" -- they are just called "glob-like syntax" in the reference.
2015-09-05 03:08:53 +00:00
Brian Anderson
2218b594bc trpl: Rename 'academic research' to 'bibliography'. Add some new links. 2015-09-04 09:37:15 -07:00
Jack Wilson
f44fbf08f9 Capitalize circle reference 2015-09-03 20:51:08 -07:00
Jack Wilson
2548e2ee58 Fixes minor formatting inconsistencies 2015-09-03 20:48:26 -07:00
Steve Klabnik
6c9549dd20 Rollup merge of #28216 - christopherdumas:fix_28196, r=steveklabnik
This is a docs change suggested in #28196.
r? @steveklabnik
2015-09-03 20:10:10 -04:00
Steve Klabnik
79ea0eed5b Rollup merge of #28215 - matklad:grammar-extern-block-item, r=steveklabnik
extern_block should be extern_block_item.

extern_block_item is `extern { bunch of fns }`, extern_block is just `bunch of fns`

r? @steveklabnik
2015-09-03 20:10:09 -04:00
Steve Klabnik
fd10ded4ea Rollup merge of #28214 - tshepang:word-not-name, r=steveklabnik
Also, add missing comma
2015-09-03 20:10:09 -04:00
Steve Klabnik
ce20719717 Rollup merge of #28213 - tshepang:replace-comma, r=steveklabnik 2015-09-03 20:10:09 -04:00
Steve Klabnik
5b8241cea9 Rollup merge of #28212 - tshepang:rust-is-a-language, r=steveklabnik 2015-09-03 20:10:09 -04:00
Steve Klabnik
e903d9c9b9 Rollup merge of #28210 - tshepang:typo, r=steveklabnik 2015-09-03 20:10:08 -04:00
Steve Klabnik
ff7f5cd0c6 Rollup merge of #28208 - matklad:grammar-whitespace-cleanup, r=steveklabnik 2015-09-03 20:10:08 -04:00
Steve Klabnik
a10e87648f Rollup merge of #28207 - tshepang:flow, r=steveklabnik 2015-09-03 20:10:08 -04:00
Steve Klabnik
54279e0ced Rollup merge of #28205 - matklad:grammar-remove-proc, r=alexcrichton
As I understand, there are no proc closures in Rust any more. So this pr removes `procedure_type` production. It isn't used anywhere. The `proc` is still a keyword.

r? @steveklabnik
@bors: r+ rollup
2015-09-03 20:10:07 -04:00
Steve Klabnik
35019737cc Rollup merge of #28204 - matklad:grammar-duplicate-else-tail, r=steveklabnik
The rule `else_tail` was duplicated in `if` and `if_let` sections. I guess that this is a mistake.

r? @steveklabnik
2015-09-03 20:10:07 -04:00
Steve Klabnik
723ebc2471 Rollup merge of #28203 - benschulz:book-deref-coercion, r=brson
I have two issues with the section "Deref and method calls" of the book's chapter "Deref coercions".

 - (Minor) It says "In other words, these are the same two things in Rust:", followed by a code block in which no two things seem similar, much less the same. Presumably this sentence made more sense in a previous revision.

 - The next paragraph conflates two concepts which, imho, should kept separate. They are
    - deref coercion, i.e. inserting as many `*` as necessary and
    - implicitly referencing the receiver, i.e. inserting a single `&` to satisfy the method's `self` parameter type.

I appreciate that with the proposed changes the example becomes very contrived, even for a foo-bar-baz one. However, the current exmplanation is just wrong.
2015-09-03 20:10:07 -04:00
Steve Klabnik
b96618e18b Rollup merge of #28202 - matklad:grammar-loop-labels, r=steveklabnik
This adds missing `?` marks to productions for loops and break/continue.

It also adds missing option label to while let loop.


Note that '[' foo ']' means grouping in BNF, and '?' is used for possible missing items.

r? @steveklabnik
2015-09-03 20:10:07 -04:00
christopherdumas
17fde3a34d Removed incorrect reference from #28196 2015-09-03 14:39:34 -07:00
Aleksey Kladov
73a6199248 reference grammar: fix item definition
extern_block should extern_block_item
2015-09-04 00:29:47 +03:00
Aleksey Kladov
f7d5c25b3d reference grammar: whitespace cleanup 2015-09-03 23:42:33 +03:00
Tshepang Lekhonkhobe
6cdba4f766 book: it is RwLock, not RWLock 2015-09-03 22:14:28 +02:00
Manish Goregaokar
67616f7191 Rollup merge of #28186 - thomas07vt:thomas07vt-patch-trpl-rust-inside-other-languages.md, r=steveklabnik
The embed rust file that we compile prints out 'Thread finished..' messages along with a 'done!' r? @steveklabnik
2015-09-04 01:40:02 +05:30
Manish Goregaokar
0c2924386d Rollup merge of #28184 - xiaochuanyu:patch-1, r=alexcrichton
Originally in an example it reads as follows:
```rust
fn inverse<T>() -> T
        // this is using ConvertTo as if it were "ConvertFrom<i32>"
         where i32: ConvertTo<T> {
     42.convert()
 }
```
There was no mention of `ConvertFrom` elsewhere in the page other than in this comment. Is this supposed to be `ConvertTo<i64>` ?
I'm confused by this example.
2015-09-04 01:40:01 +05:30
Tshepang Lekhonkhobe
23956ae1f4 book: improve flow 2015-09-03 21:54:00 +02:00
Tshepang Lekhonkhobe
197cec6ed9 book: Rust is a language, so no need to mention that fact here 2015-09-03 21:40:19 +02:00
Aleksey Kladov
59f2343bdb reference grammar: remove procedure_type 2015-09-03 22:25:47 +03:00
Aleksey Kladov
000fe00726 reference grammar: remove duplicate else_tail rule 2015-09-03 22:19:56 +03:00
benshu
986f523b89 Take method invocation semantics out of chapter on deref coercion. 2015-09-03 21:17:59 +02:00
Tshepang Lekhonkhobe
3525a13fea book: "word" feels more suitable than "name"
Also, add missing comma
2015-09-03 21:14:03 +02:00
Aleksey Kladov
83aee74fce reference grammar: loop label should be optional
This adds missing `?` marks to productions for loops and break/continue.

It also adds missing option label to while let loop
2015-09-03 22:13:50 +03:00
Tshepang Lekhonkhobe
8b2b949830 book: replace comma with a more suitable character 2015-09-03 21:11:44 +02:00
Tshepang Lekhonkhobe
f6f31dd143 book: improve paragraph on stack de-allocation 2015-09-03 21:10:48 +02:00
John Thomas
6fcdead4ee Bash output fix to match real 'ruby embed.rb' call
The embed rust file that we compile prints out 'Thread finished..' messages along with a 'done!'
2015-09-02 23:13:56 -07:00
Xiao Chuan Yu
865d6c3b5b Fix mistake in trait.md 2015-09-03 01:36:22 -04:00
Jack Wilson
28bf68f3fe Makes formatting of struct keyword consistent 2015-09-02 18:58:18 -07:00
bors
cfd76b364c Auto merge of #28135 - jackwilsonv:patch-1, r=steveklabnik
Small formatting change

r? @steveklabnik
2015-09-02 19:08:18 +00:00
bors
cb40b8a2ab Auto merge of #28155 - vchimishuk:doc-rust-inside-other-languages-tab, r=alexcrichton
Fixed x variable identation. How it was displayed in Firefox before: http://s16.postimg.org/c9448tn0k/Screenshot_from_2015_09_01_17_35_43.jpg
2015-09-02 04:55:37 +00:00
bors
e758946f96 Auto merge of #28149 - jakerr:atomic, r=alexcrichton
Makes the code agree with the comment: 'value answers "am I locked?"'.
2015-09-02 03:13:43 +00:00
Viacheslav Chimishuk
5ae8a0d38f Source code style fixed: tab replaced with whitespaces. 2015-09-01 17:49:08 +03:00
Jake Kerr
8213f01a76 Reverse AtomicBool value in nomicon example to agree with its comment.
Makes the code agree with the comment: 'value answers "am I locked?"'.
2015-09-01 17:32:22 +09:00
Jack Wilson
7665a7f016 Makes formatting of i32 consistent 2015-08-31 15:52:02 -07:00
AlexDenisov
b03b0d4c10 Fix typo 2015-08-31 06:44:27 +02:00
bors
477561de4e Auto merge of #28078 - apasel422:patch-1, r=alexcrichton 2015-08-29 04:58:45 +00:00
bors
e9111e6a0e Auto merge of #28070 - mdchoate:patch-1, r=alexcrichton 2015-08-29 03:20:37 +00:00
Andrew Paseltiner
010b7f3621 Remove superfluous line from Nomicon 2015-08-28 22:07:02 -04:00
Michael Choate
645d7ae739 Fix typo in loops.md 2015-08-28 14:34:15 -04:00
Steve Klabnik
1c44722375 Be explicit about using crates.io's libc crate
Fixes #28053
2015-08-28 11:43:23 -04:00
Manish Goregaokar
ab3dc54bcf Rollup merge of #28022 - steveklabnik:gh27936, r=alexcrichton
Fixes #27936
2015-08-28 03:38:37 +05:30
Steve Klabnik
af58e5cfea Add Windows-specific comments to testing guide
Fixes #27936
2015-08-27 13:43:43 -04:00
Nikolay Kondratyev
424d9c2778 Fix docs typo 2015-08-26 05:06:00 +05:00
Matt Brubeck
93616af42f Document the recursion_limit crate attribute 2015-08-25 10:02:58 -07:00
Steve Klabnik
d9de182fa5 Rollup merge of #27982 - frewsxcv:patch-25, r=steveklabnik 2015-08-25 09:43:07 -04:00
Steve Klabnik
c15d0cf270 Rollup merge of #27978 - mgrabovsky:doc-fix, r=steveklabnik 2015-08-25 09:43:07 -04:00
Adam Crume
574deb73ba book: Mention that --ignored is a test binary argument 2015-08-24 21:53:02 -07:00
Adam Crume
f56a478377 book: Fix spacing in testing section 2015-08-24 21:52:33 -07:00
Corey Farwell
1629dce494 Use correct indefinite article in reference.md 2015-08-24 17:26:26 -04:00
Matěj Grabovský
82bed0a760 Clarify a sentence in the Book 2015-08-24 20:14:39 +02:00
Adam Crume
30fc4b765c book: Talk about ignore attribute in testing guide 2015-08-23 13:53:52 -07:00
bors
d530379df6 Auto merge of #27922 - tshepang:dst-definition, r=alexcrichton
I am not sure this would work... I didn't test.
2015-08-23 06:06:52 +00:00
Steve Klabnik
17c1d0ce04 Rollup merge of #27935 - mbrubeck:cfg-test, r=steveklabnik
r? @steveklabnik
2015-08-22 19:15:44 -04:00
Steve Klabnik
1b130326b0 Rollup merge of #27934 - MatejLach:spacing_fix, r=steveklabnik
r @steveklabnik ?
2015-08-22 19:15:44 -04:00
Steve Klabnik
fb58dcdbd2 Rollup merge of #27926 - durka:emphasize-no-bin-doctest, r=steveklabnik
It came up twice in quick succession on IRC that rustdoc doesn't run tests in bin crates, and doesn't give any explanation/warning either as to why. I thought it couldn't hurt to emphasize that in the Book.
2015-08-22 19:15:43 -04:00
Steve Klabnik
3677a1feca Rollup merge of #27924 - pornel:bookthreadjoin, r=steveklabnik
The chapter on concurrency has two examples that both start with:

     let something = thread::spawn(…

but the returned values have different types, because the second example has `.join()` at the end of the expression.

I haven't noticed that join at first, and was wondering how is that possible that the result can have `.is_err()` and `.join()` methods.

I've changed the second example to have the same structure as the first, so they're easy to compare.
2015-08-22 19:15:43 -04:00
Steve Klabnik
b3e9615ed4 Rollup merge of #27921 - tshepang:missing-words, r=steveklabnik 2015-08-22 19:15:43 -04:00
Matt Brubeck
59b69d4ae7 Include cfg(test) in the reference 2015-08-21 09:54:58 -07:00
Matej Ľach
bbe10c5c4f fix spacing issue in trpl/documentation doc 2015-08-21 17:10:46 +01:00
Alex Burka
8e6b9b8e93 emphasize that doctests don't run in bin crates 2015-08-20 18:41:24 -04:00
Kornel Lesiński
d112274fcb Use handle the same way in similarly structured examples 2015-08-20 22:12:41 +01:00
Tshepang Lekhonkhobe
9ea001d8e9 book: add DST to glossary 2015-08-20 22:05:39 +02:00
Tshepang Lekhonkhobe
71d654a641 nomicon: insert missing words 2015-08-20 21:37:12 +02:00
Tshepang Lekhonkhobe
a274a64669 nomicon: use current syntax 2015-08-20 21:17:20 +02:00
Steve Klabnik
945603c85b Rollup merge of #27883 - steveklabnik:gh27587, r=alexcrichton
Fixes #27587
2015-08-18 15:03:11 -04:00
Steve Klabnik
572526be27 Rollup merge of #27882 - steveklabnik:gh27428, r=alexcrichton
This is where panic!() is introduced.
2015-08-18 15:03:11 -04:00
Steve Klabnik
288edec968 add cfg(target_env) to the reference
Fixes #27587
2015-08-18 14:24:25 -04:00
Steve Klabnik
dbbcb434b1 Add note about backtraces to TRPL
This is where panic!() is introduced.

Fixes #27428
2015-08-18 14:22:18 -04:00
bors
dc9b74f38d Auto merge of #27536 - steveklabnik:doc_object_safety, r=alexcrichton
Fixes #26938
2015-08-18 16:28:13 +00:00
Steve Klabnik
ce1bdc7293 Add object safety to TRPL
Fixes #26938
2015-08-18 11:27:02 -04:00
Steve Klabnik
e4266803cb Fix broken link to Wilson
reported by @chris-code here: https://github.com/rust-lang/rust/issues/24486#issuecomment-130812460
2015-08-13 15:42:14 -04:00
bors
b2aef9d58b Auto merge of #27789 - chriskrycho:remove_pandoc_references, r=steveklabnik
Per @steveklabnik's comment [here](https://github.com/rust-lang/cargo/issues/739#issuecomment-130085860), the Pandoc components of the Makefile are no longer used, and as such the corresponding components of the documentation are out of date.

  - I've removed the Pandoc (and therefore also LaTeX) elements of the makefile and confirmed that the build proceeds correctly.
  - I updated the documentation to reference `rustdoc` and  of Pandoc.

r? @steveklabnik
2015-08-13 03:52:10 +00:00
Chris Krycho
75f7a68ffa doc/readme: replace references to Pandoc with rustdoc. 2015-08-12 22:29:05 -04:00
Alex Crichton
fe3ab21054 rollup merge of #27682: neurons/np.27681
PR for [Issue #27681] (https://github.com/rust-lang/rust/issues/27681). A simple update to the latest version of rust when typing the command rustc --version.
2015-08-11 22:42:22 -07:00
Alex Crichton
1757837228 rollup merge of #27659: goyox86/goyox86/update-spanish-book-link
This PR just updates the link of my translation of the book to the final rendered version of it.

/cc @steveklabnik
2015-08-11 22:42:20 -07:00
Alex Crichton
737397c584 rollup merge of #27622: eefriedman/https-url
Also fixes a few outdated links.
2015-08-11 22:11:25 -07:00
Niranjan Padmanabhan
d73d22b8cc Update version number response for new version of rust 2015-08-11 18:45:53 -07:00
Manish Goregaokar
a917f61569 Rollup merge of #27611 - vincentbernat:fix/doc/chars-iterator, r=steveklabnik
The previous wording was confusing. While would we need to go through
the whole list just to find the first code point? `chars()` being an
iterator, we only need to walk from the beginning of the list.

Note that I am not a native English speaker and I have still difficulties to spot if a "the" is needed somewhere. Feel free to take this PR as a mere suggestion.

r? @steveklabnik
2015-08-11 16:48:02 +05:30
Manish Goregaokar
e40516bcb4 Rollup merge of #27542 - steveklabnik:gh27303, r=alexcrichton
Fixes #27303
2015-08-11 16:48:01 +05:30
Jose Narvaez
b7a88d8702 Updated the link with rendered version of the Spanish trpl translation. 2015-08-11 11:02:38 +01:00
Alex Crichton
18607149fb syntax: Add a new unstable #[linked_from] attribute
To correctly reexport statically included libraries from a DLL on Windows, the
compiler will soon need to have knowledge about what symbols are statically
included and which are not. To solve this problem a new unstable
`#[linked_from]` attribute is being added and recognized on `extern` blocks to
indicate which native library the symbols are coming from.

The compiler then keeps track of what the set of FFI symbols are that are
included statically. This information will be used in a future commit to
configure how we invoke the linker on Windows.
2015-08-10 18:20:00 -07:00
bors
5aca49c693 Auto merge of #27338 - alexcrichton:remove-morestack, r=brson
This commit removes all morestack support from the compiler which entails:

* Segmented stacks are no longer emitted in codegen.
* We no longer build or distribute libmorestack.a
* The `stack_exhausted` lang item is no longer required

The only current use of the segmented stack support in LLVM is to detect stack
overflow. This is no longer really required, however, because we already have
guard pages for all threads and registered signal handlers watching for a
segfault on those pages (to print out a stack overflow message). Additionally,
major platforms (aka Windows) already don't use morestack.

This means that Rust is by default less likely to catch stack overflows because
if a function takes up more than one page of stack space it won't hit the guard
page. This is what the purpose of morestack was (to catch this case), but it's
better served with stack probes which have more cross platform support and no
runtime support necessary. Until LLVM supports this for all platform it looks
like morestack isn't really buying us much.

cc #16012 (still need stack probes)
Closes #26458 (a drive-by fix to help diagnostics on stack overflow)

r? @brson
2015-08-10 23:40:54 +00:00
Alex Crichton
7a3fdfbf67 Remove morestack support
This commit removes all morestack support from the compiler which entails:

* Segmented stacks are no longer emitted in codegen.
* We no longer build or distribute libmorestack.a
* The `stack_exhausted` lang item is no longer required

The only current use of the segmented stack support in LLVM is to detect stack
overflow. This is no longer really required, however, because we already have
guard pages for all threads and registered signal handlers watching for a
segfault on those pages (to print out a stack overflow message). Additionally,
major platforms (aka Windows) already don't use morestack.

This means that Rust is by default less likely to catch stack overflows because
if a function takes up more than one page of stack space it won't hit the guard
page. This is what the purpose of morestack was (to catch this case), but it's
better served with stack probes which have more cross platform support and no
runtime support necessary. Until LLVM supports this for all platform it looks
like morestack isn't really buying us much.

cc #16012 (still need stack probes)
Closes #26458 (a drive-by fix to help diagnostics on stack overflow)
2015-08-10 16:35:44 -07:00
Eli Friedman
7d3c4bd72a Tweak style guide to avoid referencing the removed ascii::Ascii. 2015-08-09 18:56:48 -07:00
Eli Friedman
bbbfed2f93 Use https URLs to refer to rust-lang.org where appropriate.
Also fixes a few outdated links.
2015-08-09 14:28:46 -07:00
Vincent Bernat
b67adbed5a TRPL: minor correction on how chars().nth() work
The previous wording was confusing. While would we need to go through
the whole list just to find the first code point? `chars()` being an
iterator, we only need to walk from the beginning of the list.
2015-08-09 00:56:38 +02:00
Mike Marcacci
bcf3921a2a Added arrows to references in tables
Keeping integer values and integer references in the "value" columns made the examples quite difficult for me to follow. I've added unicode arrows to make references more obvious, without using a character with actual meaning in the rust language (like `&` or previously `~`).
2015-08-07 23:13:08 -07:00
bors
9bba711063 Auto merge of #27576 - rust-lang:steveklabnik-patch-1, r=Gankro
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.

r? @Gankro
2015-08-07 05:57:24 +00:00
bors
b77d2f5ac7 Auto merge of #27558 - mlalic:patch-1, r=brson
r? @steveklabnik
2015-08-07 04:21:47 +00:00
bors
871fd5eb73 Auto merge of #27552 - tshepang:misc, r=brson 2015-08-07 02:46:43 +00:00
Steve Klabnik
ad9a0713fd 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.
2015-08-06 20:18:49 -04:00
bors
68f79288bf Auto merge of #27566 - rubymeow:master, r=steveklabnik
I got a bit confused reading the guide over why all of a sudden there was an asterisk in the code. I was explained what it was there for in the IRC, and I think it should added it to the docs to prevent any further confusion!
2015-08-06 20:45:39 +00:00
Ruby
d3e089f08b fixed the few nits! 2015-08-06 19:55:53 +01:00
Ruby
855f1ff321 Explained asterisk on & and &mut reference 2015-08-06 19:29:03 +01:00
Steve Klabnik
8c4dc18d2a Add opaque structs to TRPL:FFI
Fixes #27303
2015-08-06 13:51:52 -04:00
bors
fb92de75c1 Auto merge of #27556 - taliesinb:tarpl-clarity-2, r=Gankro
* Some clarifying rephrasing.
* Rename B.x back to B.a.
* Make null pointer optimization section bit more concrete.

r? @Gankro
2015-08-06 17:36:21 +00:00
bors
83f2667fa2 Auto merge of #27434 - jeehoonkang:master, r=Gankro
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.

r? @Gankro
2015-08-06 15:01:35 +00:00
Marko Lalic
607c70e50f TRPL/lifetimes.md: Fix typo lifteimes -> lifetimes 2015-08-06 11:57:55 +02:00
Jeehoon Kang
9bfb8d3add 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.
2015-08-06 15:40:41 +09:00
Manish Goregaokar
1daad87893 Rollup merge of #27546 - steveklabnik:gh26115, r=brson
Fixes #26115
2015-08-06 11:42:56 +05:30
Taliesin Beynon
2ca3dda3c4 Some rerp-rust improvements.
* Some clarifying rephrasing.
* Rename B.x back to B.a.
* Make null pointer optimization section bit more concrete.
2015-08-06 02:04:11 -04:00
Tshepang Lekhonkhobe
3653cd9555 book: some improvements to Advanced Linking 2015-08-06 02:32:27 +02:00
Steve Klabnik
de98a0b8fe Add an example to Trait section of reference
Fixes #26115
2015-08-05 15:31:19 -04:00
Steve Klabnik
428050712f Rollup merge of #27539 - steveklabnik:gh26746, r=brson
1. mention them in the function chapter
2. mention their coercion to closures in the closures chapter

Fixes #26746
2015-08-05 15:09:50 -04:00
Steve Klabnik
43451bc4ee Rollup merge of #27538 - steveklabnik:gh26917, r=Gankro
We haven't discussed this syntax yet, so provide a basic explanation
and link up to later chapters.

Fixes #26917
2015-08-05 15:09:50 -04:00
Steve Klabnik
3a2af87363 Rollup merge of #27535 - steveklabnik:for_jhun, r=alexcrichton
'work' can refer to the game itself, ie, 'this compiles but the game isn't finished,'
so 'compile' is a more clear way to describe the problem.

Thanks jhun on irc
2015-08-05 15:09:50 -04:00
Steve Klabnik
1fb78b19ce Rollup merge of #27285 - lastorset:trait-operator-impl, r=steveklabnik
I also included some smaller trait-related changes.

Fixes #26991.

r? @shepmaster 
r? @steveklabnik
2015-08-05 15:09:49 -04:00
Steve Klabnik
e4c229b9fd Add more infor about function pointers to TRPL
1. mention them in the function chapter
2. mention their coercion to closures in the closures chapter

Fixes #26746
2015-08-05 13:44:54 -04:00
Steve Klabnik
8f828a3a9d Expand further on <> syntax in TRPL.
We haven't discussed this syntax yet, so provide a basic explanation
and link up to later chapters.

Fixes #26917
2015-08-05 13:23:22 -04:00
Steve Klabnik
db1f17a64b work -> compile in Guessing Game
'work' can refer to the game itself, ie, 'this compiles but the game isn't finished,'
so 'compile' is a more clear way to describe the problem.

Thanks jhun on irc
2015-08-05 12:30:00 -04:00
bors
6210dcdddb Auto merge of #27530 - Manishearth:rollup, r=Manishearth
- Successful merges: #27519, #27521, #27525, #27527, #27528
- Failed merges:
2015-08-05 08:52:06 +00:00
Manish Goregaokar
eee286dfdd Rollup merge of #27528 - friedm:doc_meta_designator, r=huonw
For #27471
2015-08-05 13:45:39 +05:30
Manish Goregaokar
8effc61816 Rollup merge of #27527 - aij:tarpl, r=Gankro
Just some grammar fixes and an assumed missing word.

r? @Gankro
2015-08-05 13:45:38 +05:30
Manish Goregaokar
a497c6722e Rollup merge of #27525 - Gankro:nomvar, r=aturon
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

r? @aturon
2015-08-05 13:45:38 +05:30
Manish Goregaokar
b1dc2c5094 Rollup merge of #27519 - JanLikar:rearrange-patterns, r=steveklabnik
- Move "Destructuring" after "Multiple patterns", because some of
    later sections include examples which make use of destructuring.

  - Move "Ignoring bindings" after "Destructoring", because the former
    features Result<T,E> destructuring. Some of examples in later
    sections use "_" and "..", so "Ignoring bindings" must be
    positioned before them.

  - Fix #27347 by moving "Ref and mut ref" before "Ranges" and
    "Bindings", because "Bindings" section includes a somewhat
    difficult example, which also makes use of "ref" and "mut ref"
    operators.
2015-08-05 13:45:38 +05:30
Matt Friedman
eaf27799bb add meta designator to macro reference 2015-08-04 20:04:11 -05:00
Ivan Jager
2accd295c6 Fix some grammar in The Advanced Rust Programming Language 2015-08-04 18:40:13 -05:00
Alexis Beingessner
67455e29a1 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
2015-08-04 15:25:37 -07:00
Chris Nixon
d5b522e20e Tweaked concurrency.md 2015-08-04 20:36:28 +01:00
Jan Likar
c1f938d7b8 Rearrange sections in "Patterns"
- Move "Destructuring" after "Multiple patterns", because some of
    later sections include examples which make use of destructuring.

  - Move "Ignoring bindings" after "Destructoring", because the former
    features Result<T,E> destructuring. Some of examples in later
    sections use "_" and "..", so "Ignoring bindings" must be
    positioned before them.

  - Fix #27347 by moving "Ref and mut ref" before "Ranges" and
    "Bindings", because "Bindings" section includes a somewhat
    difficult example, which also makes use of "ref" and "mut ref"
    operators.
2015-08-04 20:22:42 +02:00
bors
c980aba9a8 Auto merge of #27508 - friedm:remove_integer_suffixes, r=alexcrichton
For #27501  

r? @steveklabnik
2015-08-04 16:31:16 +00:00
Manish Goregaokar
5f841eb824 Rollup merge of #27460 - JanLikar:master, r=steveklabnik
- Fix #26968 by noting the difference between ".." and "_" more explicitly

  - Change one of the examples to show the match-all behaviour of ".."

  - Merge "Ignoring variants" and "Ignoring bindings" sections into the latter

r? @steveklabnik
2015-08-04 18:00:52 +05:30
Manish Goregaokar
3e3a9b4eec Rollup merge of #27397 - Dangthrimble:master, r=steveklabnik
Clarifications for those new to Rust and Cargo:
* It's a good idea to get rid of the original `main.exe` in project root
* Slight clarification on the use of `main.rs` vs `lib.rs`
* Clarify that the TOML file needs to be in project root
2015-08-04 18:00:52 +05:30
bors
7a7789df11 Auto merge of #27444 - Gankro:nomicon, r=brson
Closes #27412 

r? @brson
2015-08-04 06:27:22 +00:00
Matt Friedman
f53ba18f43 remove unneeded integer suffixes from concurrency chapter 2015-08-03 19:48:14 -05:00
bors
ceded6adb3 Auto merge of #27210 - vadimcn:win64-eh-pers, r=alexcrichton
After this change, the only remaining symbol we are pulling from libgcc on Win64 is `__chkstk_ms` - the stack probing routine.
2015-08-03 22:12:46 +00:00
Jonathan Hansford
c54df0e454 required -> used; you -> we 2015-08-03 21:37:15 +01:00
Alexis Beingessner
ca902dd8cb rename TARPL to The Rustinomicon 2015-08-03 11:22:08 -07:00
Tshepang Lekhonkhobe
8d331ba8c3 reference: follow idiom in this tiny snippet 2015-08-03 16:07:36 +02:00
Jonathan Hansford
d9b1882248 Updated in response to review 2015-08-03 10:22:03 +01:00
Manish Goregaokar
0860b29b6a Rollup merge of #27464 - killercup:patch-16, r=Gankro
Because Markdown.
2015-08-03 02:33:52 +05:30
bors
504eaa5929 Auto merge of #27305 - KieranHunt:master, r=steveklabnik
I found that the book had little information for `loop`s and `loop` label so I've added some.
2015-08-02 19:08:21 +00:00
Pascal Hertleif
6e61783dce TRPL: Add Newline Before Headline
Because Markdown.
2015-08-02 12:32:14 +02:00
Jan Likar
91972ba5a6 Fix "Ignoring variants" in "Patterns" chapter
- Fix #26968 by noting the difference between ".." and "_" more explicitly

  - Change one of the examples to show the match-all behaviour of ".."

  - Merge "Ignoring variants" and "Ignoring bindings" sections into the latter
2015-08-01 22:04:23 +02:00
Kieran Hunt
a989ed8880 Adding an ignore annotation to an infinite loop so that it wont hang the tester. 2015-08-01 22:02:00 +02:00
Daniel Albert
3dfab40bbc Fix off-by-one error 2015-08-01 20:53:19 +02:00
Manish Goregaokar
548d552c7e Rollup merge of #27423 - oli-obk:patch-1, r=Gankro 2015-08-01 14:05:52 +05:30
Manish Goregaokar
ae9abdf705 Rollup merge of #27419 - cpjreynolds:master, r=Gankro
Corrects formatting of bullet-ed sentences and changes 'pervasive use raw pointers' to 'pervasive use of raw pointers'.
2015-08-01 14:05:52 +05:30
bors
89bc9fa8be Auto merge of #27418 - taliesinb:tarpl-typo, r=alexcrichton
this makes the second code block consistent with the first code block -- other than being in reversed order, the first code block claims b is u16 and c is u32, whereas the second code block claims the opposite. seems to be an obvious typo.
2015-07-31 17:55:22 +00:00
bors
0919f4ad86 Auto merge of #27414 - Gankro:tarpl-fixes, r=alexcrichton
This is *mostly* reducing *my* use of *italics* but there's some other misc changes interspersed as I went along.

This updates the italicizing alphabetically from `a` to `ra`.

r? @steveklabnik
2015-07-31 15:28:54 +00:00
Alexis Beingessner
554efc0134 last of the emphasis cleanup 2015-07-31 07:11:35 -07:00
Oliver Schneider
6a86a0c89c fix code and error to match the surronding text 2015-07-31 09:32:53 +02:00
Cole Reynolds
d10953e5a2 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'
2015-07-30 23:40:04 -04:00
Taliesin Beynon
b36890b069 fix switched-round 'b' and 'c' 2015-07-30 23:18:09 -04:00
Alexis Beingessner
7b33a1e2de frob emphasis 2015-07-30 18:47:02 -07:00
Alexis Beingessner
66ba6924cb make the intro less scary 2015-07-30 16:51:22 -07:00
Alexis Beingessner
b52f6187d5 fix title-casing 2015-07-30 16:39:46 -07:00
Alex Crichton
127e63c63b tarpl: Change norun to no_run
Needs the underscore for rustdoc to not actually run it.
2015-07-30 14:32:02 -07:00
Leif Arne Storset
427736931b Copyedit generics.md and traits.md
Squashed at reviewer's request:

Add heading at the end of the introductory material
Spice up introductory paragraphs a bit
Use quotes instead of <code> for phrase
Remove "other" in "other restrictions" (it's not obvious that any other
restrictions have been mentioned)
"Default methods" is a second-level heading, but is not a subsection of
"Where clause"
Reword "Default methods" introduction: it's not the "last feature" on
this page
2015-07-30 21:49:14 +02:00
Leif Arne Storset
556b0815d7 Using operator traits in generic structs 2015-07-30 21:49:13 +02:00
Leif Arne Storset
0e92165eaf Show impl<T>
This includes a new example with Rectangle, instead of reusing HasArea,
because fn area would require the Mul trait, and the added complexity of
that would be better left for the Operators and Overloading chapter.

Squashed at reviewer's request: Move teaser for trait bounds to bottom
2015-07-30 21:48:25 +02:00
Vadim Chugunov
6112b22078 Implement Win64 eh_personality natively. 2015-07-30 11:35:16 -07:00
Alexis Beingessner
d1cf449034 Maybe ignore the explicit examples of a race condition 2015-07-30 08:53:46 -07:00
Jonathan Hansford
c2b564557d By default
Guessing Game states that "Rust only imports a few things into every
program, the ‘prelude’". That isn't strictly true.  That is all it
imports by default and the change clarifies that point.
2015-07-30 11:58:13 +01:00
Jonathan Hansford
a4aae4552e Merge branch 'master' of https://github.com/Dangthrimble/rust 2015-07-30 09:20:24 +01:00
Jonathan Hansford
bc3c41be9f Clarifications for Hello, Cargo!
Just a few minor changes to clarify a few things for someone new to Rust
and Cargo.
2015-07-30 09:20:13 +01:00
Kieran Hunt
4a5194a6d5 Removing infinite loops file 2015-07-30 07:22:21 +02:00
bors
4d52d7c857 Auto merge of #27032 - Gankro:tarpl, r=aturon,acrichto,arielb,pnkfelix,nrc,nmatsakis,huonw
I've been baking this out of tree for long enough. This is currently about ~2/5ths the size of TRPL. Time to get it in tree so it can be more widely maintained and scrutinized. I've preserved the whole gruesome history including various rewrites. I can definitely squash these a fair amount if desired. Some random people submitted minor fixes though, so they're mixed in.

Edit: forgot to link to rendered http://cglab.ca/~abeinges/blah/turpl/_book/

Edit2:

To streamline the review process, I'm going to break this into sections that need official "domain expert" approval:

# Summary

* [ ] references.md -- very important, needs work

* [x] Meet Safe and Unsafe: reviewed by @aturon
* [x] Data Layout: reviewed by @arielb1 
* [x] Ownership: reviewed by @aturon ( and sorta @nikomatsakis ) -- significantly updated, may need re-r
* [x] Coversions:  reviewed by @nrc 
* [x] Uninitialized Memory: reviewed by @pnkfelix 
* [x] Ownership-Oriented Resource Management: reviewed by @aturon
* [x] Unwinding: reviewed by @alexcrichton 
* [x] Concurrency: reviewed by @aturon
* [x] Implementing Vec:  r? @huonw
2015-07-30 00:56:01 +00:00
Alexis Beingessner
ddb029034b fix example code 2015-07-29 17:19:42 -07:00
Alexis Beingessner
4c48ffa53e add warning about reference section 2015-07-29 15:55:19 -07:00
Kieran Hunt
a3872a3685 Consolidating loop information to a single page. Per PR #27305 2015-07-29 22:38:43 +02:00
Manish Goregaokar
6b564a663b Rollup merge of #27232 - Dangthrimble:master, r=steveklabnik
Added definitions for 'Expression', 'Expression-Oriented Language' and 'Statement' to glossary.
Sorted the definitions alphabetically.

r? @steveklabnik
2015-07-30 01:43:53 +05:30
Steve Klabnik
5aa76509da Rollup merge of #27355 - krumelmonster:patch-1, r=alexcrichton
Minor change in the book
2015-07-29 10:30:36 -04:00
Steve Klabnik
8b82470456 Rollup merge of #27343 - steveklabnik:fix_module, r=alexcrichton 2015-07-29 10:30:35 -04:00
Steve Klabnik
a368adf8e5 Rollup merge of #27326 - steveklabnik:doc_show_use, r=Gankro
In spirit with https://internals.rust-lang.org/t/should-we-keep-including-obvious-imports-in-code-examples/2217, show the feature flags we're using in examples.

(also one instance of 'use')
2015-07-29 10:30:34 -04:00
Steve Klabnik
6fec7b7854 Rollup merge of #27325 - midinastasurazz:patch-2, r=alexcrichton 2015-07-29 10:30:33 -04:00
Steve Klabnik
10387d6839 Rollup merge of #27286 - lastorset:pub, r=steveklabnik
The reader could probably infer this from the current text, but for C++ programmers it's not obvious that struct fields don't automatically become public.

Apparently I wasn't the only one to be confused:

http://stackoverflow.com/questions/29157300/field-of-struct-is-private-when-importing-module

I don't think an example is necessary, but can add one if desired.

r? @steveklabnik
2015-07-29 10:30:33 -04:00
Alexis Beingessner
b539906de1 clarify subtyping 2015-07-28 15:41:58 -07:00
Alexis Beingessner
9123bb02ca fix borrow-splitting 2015-07-28 15:38:39 -07:00
Alexis Beingessner
b93438f648 fix incorrect name 2015-07-28 15:16:59 -07:00
Alexis Beingessner
0d37e78977 lots more felix fixes 2015-07-28 15:13:54 -07:00
Alexis Beingessner
5789106737 many many pnkfelix fixes 2015-07-28 13:20:36 -07:00
krumelmonster
9699119c57 more precise for inclusive range 2015-07-28 19:22:20 +02:00
Oliver Schneider
00a5e66f81 remove get_ident and get_name, make as_str sound 2015-07-28 18:07:20 +02:00
Steve Klabnik
02c1351fa3 remove incorrect statement from TRPL: crates and modules 2015-07-27 23:04:42 -04:00
Alexis Beingessner
05bb1dbc43 OBRM for aturon 2015-07-27 16:01:22 -07:00
Alexis Beingessner
fd13bdf626 vec fixes for huonw 2015-07-27 15:03:38 -07:00
Alexis Beingessner
b53406f824 fixups for aturon 2015-07-27 14:42:04 -07:00
bors
8988043da7 Auto merge of #27284 - lastorset:default-methods, r=Gankro
Instead of bar/baz, use valid/invalid as default methods. This
illustrates why you might want default methods, and shows that you can
call other trait methods from a default method.

r? @steveklabnik
2015-07-27 16:34:40 +00:00
Steve Klabnik
ba5fcb726f Show appropriate feature flags in docs 2015-07-27 12:28:13 -04:00
midinastasurazz
2449823268 Fix misrendered HTML character entities 2015-07-27 16:18:50 +02:00
midinastasurazz
6e377fe5f3 Fix typo: yur -> your 2015-07-27 07:20:54 +02:00
bors
184267cac6 Auto merge of #27274 - tshepang:not-needed-word, r=steveklabnik
Also, join the 2 sentences to improve flow
2015-07-27 02:45:35 +00:00
Alexis Beingessner
8c7111da07 fixup atomics 2015-07-26 18:19:50 -07:00
Alexis Beingessner
36a8b94464 expand lifetime splitting to show IterMut is totally safe 2015-07-26 18:12:36 -07:00
Kieran Hunt
b36551b0e2 Adding docs for loops and loop labels. 2015-07-26 19:39:32 +02:00
Jared Roesch
55621b6199 Add feature gate 2015-07-25 20:05:42 -07:00
Leif Arne Storset
95c7f306c7 Mention pub for structs and fields 2015-07-25 21:20:27 +02:00