Commit graph

10404 commits

Author SHA1 Message Date
Marco A L Barbosa
24be89980e Avoid using libc::sigemptyset on Android 2017-03-25 17:15:26 -03:00
Corey Farwell
f43c336e74 Rollup merge of #40642 - frewsxcv:io-bufread-doc-examples, r=GuillaumeGomez
Rewrite `io::BufRead` doc examples to better demonstrate behaviors.

Prior to this commit, most of the `BufRead` examples used `StdinLock` to
demonstrate how certain `BufRead` methods worked. Using `StdinLock` is
not ideal since:

* Relying on run-time data means we can't show concrete examples of how
  these methods work up-front. The user is required to run them in order
  to see how they behave.
* If the user tries to run an example in the playpen, it won't work
  because the playpen doesn't support user input to stdin.
2017-03-25 09:30:28 -07:00
Marco A L Barbosa
b45c631382 Fix libc::bind call on aarch64-linux-android 2017-03-25 11:03:06 -03:00
Marco A L Barbosa
a7add43389 Fix c_char (u8 -> i8) definition for i686-linux-android 2017-03-25 11:03:06 -03:00
Michael Gattozzi
bde6336976
Update Child docs to not have a note section
In #29370 it's noted that for "the Note shouldn't be one, and should come before
the examples." This commit changes the positioning of the section and removes
wording that said take note in order for it to flow better with the surrounding
text and it's new position.
2017-03-24 23:29:23 -04:00
Corey Farwell
0566e13ed4 Rollup merge of #40794 - s3rvac:fix-formatting-in-command-envs-docs, r=steveklabnik
Fix formatting in the docs for std::process::Command::envs()

An empty line between the *Basic usage:* text and the example is required to properly format the code. Without the empty line, the example is not formatted as code.

[Here](https://doc.rust-lang.org/std/process/struct.Command.html#method.envs) you can see the current (improper) formatting.
2017-03-24 18:13:15 -05:00
Petr Zemek
432673a8dd Add a missing feature attribute to the example for std::process::Command::envs().
The person who originally wrote the example forgot to include this attribute.
This caused Travis CI to fail on commit 9b0a4a4e97 (#40794), which just fixed
formatting in the description of std::process::Command::envs().
2017-03-24 15:47:45 +01:00
Petr Zemek
9b0a4a4e97 Fix formatting in the docs for std::process::Command::envs().
An empty line between the "Basic usage:" text and the example is required to
properly format the code. Without the empty line, the example is not formatted
as code.
2017-03-24 09:42:21 +01:00
Corey Farwell
8fba638b08 Rewrite io::BufRead doc examples to better demonstrate behaviors.
Prior to this commit, most of the `BufRead` examples used `StdinLock` to
demonstrate how certain `BufRead` methods worked. Using `StdinLock` is
not ideal since:

* Relying on run-time data means we can't show concrete examples of how
  these methods work up-front. The user is required to run them in order
  to see how they behave.
* If the user tries to run an example in the playpen, it won't work
  because the playpen doesn't support user input to stdin.
2017-03-23 23:04:36 -04:00
Stepan Koltsov
8a91e4d123 Document Cursor::new position is 0
... even if contained `Vec` is not empty. E. g. for

```
let v = vec![10u8, 20];
let mut c = io::Cursor::new(v);
c.write_all(b"aaaa").unwrap();
println!("{:?}", c.into_inner());
```

result is

```
[97, 97, 97, 97]
```

and not

```
[10, 20, 97, 97, 97, 97]
```
2017-03-24 05:05:34 +03:00
Nick Sweeting
7665991e3e add link to contribution guidelines and IRC room 2017-03-23 13:48:32 -04:00
Nick Sweeting
04fbec1a0c newline for breathing room 2017-03-23 13:43:09 -04:00
Nick Sweeting
53d5082a2d requested changes 2017-03-23 13:42:39 -04:00
Nick Sweeting
425c1a3a05 Add contribution instructions to stdlib docs 2017-03-23 13:29:04 -04:00
Nick Sweeting
4dc1225807 Add helpful hint on io function for beginners 2017-03-23 13:17:21 -04:00
Alex Crichton
5ca8a735ca std: Don't cache stdio handles on Windows
This alters the stdio code on Windows to always call `GetStdHandle` whenever the
stdio read/write functions are called as this allows us to track changes to the
value over time (such as if a process calls `SetStdHandle` while it's running).

Closes #40490
2017-03-23 07:22:48 -07:00
Josh Stone
a033f1a8ee Simplify hash table drops
This replaces the `std::collections:#️⃣:table::RevMoveBuckets`
iterator with a simpler `while` loop.  This iterator was only used for
dropping the remaining elements of a `RawTable`, so instead we can just
loop through directly and drop them in place.

This should be functionally equivalent to the former code, but a little
easier to read.  I was hoping it might have some performance benefit
too, but it seems the optimizer was already good enough to see through
the iterator -- the generated code is nearly the same.  Maybe it will
still help if an element type has more complicated drop code.
2017-03-22 10:32:38 -07:00
Guillaume Gomez
27151017e9 Add missing urls in ptr docs 2017-03-21 16:23:27 +01:00
Corey Farwell
17656ab328 Rollup merge of #40556 - cramertj:stabilize-pub-restricted, r=petrochenkov
Stabilize pub(restricted)

Fix https://github.com/rust-lang/rust/issues/32409
2017-03-20 23:44:59 -04:00
Corey Farwell
14b5d56587 Rollup merge of #40332 - steveklabnik:extract-book, r=alexcrichton
Extract book into a submodule

Part of https://github.com/rust-lang/rust/issues/39588

We probably don't want to land this till after the beta branches on friday, but would still ❤️ a review from @alexcrichton , since I am a rustbuild noob.

This pr:

1. removes the book
2. adds it back in as a submodule
3. the submodule includes both the old book and the new book
4. it also includes an index page explaining the difference in editions
5. it also includes redirect pages for the old book URLs.
6. so we build all that stuff too.

r? @alexcrichton
2017-03-20 23:44:57 -04:00
Corey Farwell
42cfdc1955 Rollup merge of #40312 - jdhorwitz:papercut, r=steveklabnik
Papercut

r? @steveklabnik
2017-03-20 23:44:56 -04:00
steveklabnik
d1d9626e75 Fix up various links
The unstable book, libstd, libcore, and liballoc all needed some
adjustment.
2017-03-20 10:10:16 -04:00
Corey Farwell
4e9033124b Rollup merge of #40566 - clarcharr:never_error, r=sfackler
Implement std::error::Error for !.
2017-03-19 20:51:11 -04:00
bors
6eb9960d36 Auto merge of #39799 - dpc:create_dir_all, r=alexcrichton
Fix race condition in fs::create_dir_all

The code would crash if the directory was created after create_dir_all
checked whether the directory already existed.  This was contrary to
the documentation which claimed to create the directory if it doesn't
exist, implying (but not stating) that there would not be a failure
due to the directory existing.
2017-03-19 21:02:53 +00:00
Corey Farwell
94e346b7b7 Rollup merge of #40648 - s3rvac:fix-path-docs-typo, r=frewsxcv
Fix a typo in path.rs docs

The name of the variable used in the example is `path`, not `os_str`.
2017-03-19 10:18:23 -04:00
Corey Farwell
9e11ecb750 Rollup merge of #40621 - jswalden:dependant-spelling-fix, r=sfackler
Fix a spelling error in HashMap documentation, and slightly reword surrounding text for precision

Noticed while reading docs just now.

It's possible that the prior wording *meant* to state that the seed's randomness depends on the exact instant that the system RNG was created, I guess.  But unless there's an API guarantee that this is the case, the wording seems over-precise.  Is there a formal API guarantee that would forbid, say, the system RNG from generating all output using the Intel RDRAND instruction?  I don't think the quality of output in that case would depend on when the RNG was created.  Yet it seems to me like it could well be a valid source of randomness when computing the initial seed.

For that reason, tying the randomness of the seed, to the quality of the RNG's output *at the precise instant the seed is computed*, seems less confining.  That instantaneous quality level could be determined by the quality at the instant the RNG was created -- but instantaneous quality need not be low for that precise reason.
2017-03-19 10:18:21 -04:00
Corey Farwell
d8c8e01038 Rollup merge of #40611 - ScottAbbey:patch-1, r=GuillaumeGomez
Fix typo in mutex.rs docs

This seems to match other uses of "be accessed" in the document.
2017-03-19 10:18:20 -04:00
Corey Farwell
d74c528f3a Rollup merge of #40590 - z1mvader:master, r=steveklabnik
documented order of conversion between u32 an ipv4addr

This fixes https://github.com/rust-lang/rust/issues/40118
2017-03-19 10:18:19 -04:00
Petr Zemek
7add53e47e Fix a typo in path.rs docs
The name of the variable used in the example is `path`, not `os_str`.
2017-03-19 07:02:20 +01:00
Dawid Ciężarkiewicz
088696b98f Fix problems left in concurrent_recursive_mkdir
Increase lifetime of `tmpdir`, and really change the length of test
path.
2017-03-18 21:03:51 -07:00
Dawid Ciężarkiewicz
b5d590b3f0 Fix create_dir_all("")
Add a test for `""` and `"."`.
2017-03-17 20:15:05 -07:00
Dawid Ciężarkiewicz
bcae6a3734 Reorder match checks in create_dir_all
Avoid doing `is_dir` in the fast path.
2017-03-17 20:15:05 -07:00
Dawid Ciężarkiewicz
c3e2eaf4cb Fix problems found on Windows in dir_create_all
Ignore the type of error altogether. The rationale is: it doesn't matter
what was the problem if the directory is there. In the previous versions
if the directory was there already we wouldn't even attempt to create
it, so we wouldn't know about the problem neither.

Make test path length smaller in `concurrent_recursive_mkdir` test.
2017-03-17 20:15:05 -07:00
Dawid Ciężarkiewicz
a51c6aaf84 Break line longer than 100 characters 2017-03-17 20:15:05 -07:00
Dawid Ciężarkiewicz
f2adee74a3 Add concurrent_recursive_mkdir test 2017-03-17 20:15:05 -07:00
Dawid Ciężarkiewicz
0ec28b796d Fix new version of create_dir_all
It will now correctly fail on existing non-directories.
2017-03-17 20:15:05 -07:00
David Roundy
db00ba9eb2 Fix race condition in fs::create_dir_all
It is more robust to not fail if any directory in a path was created
concurrently. This change lifts rustc internal `create_dir_racy` that
was created to handle such conditions to be new `create_dir_all`
implementation.
2017-03-17 20:15:05 -07:00
Jeff Walden
2976ddbb15 Fix a spelling error in HashMap documentation, and slightly reword it to be more precise. 2017-03-17 17:15:01 -07:00
Aaron Turon
a8f4a1bd98 Stabilize rc_raw feature, closes #37197 2017-03-17 13:28:53 -07:00
Aaron Turon
9511fe60ce Stabilize process_abort feature, closes #37838 2017-03-17 13:28:37 -07:00
ScottAbbey
ec8ecf4f9d Fix typo in mutex.rs docs
This seems to match other uses of "be accessed" in the document.
2017-03-17 13:27:13 -05:00
bors
a559452b05 Auto merge of #40598 - frewsxcv:rollup, r=frewsxcv
Rollup of 23 pull requests

- Successful merges: #40387, #40433, #40452, #40456, #40457, #40458, #40463, #40466, #40467, #40495, #40496, #40497, #40499, #40500, #40503, #40505, #40512, #40514, #40517, #40520, #40536, #40545, #40586
- Failed merges:
2017-03-17 17:26:52 +00:00
Corey Farwell
d7a09d4e65 Rollup merge of #40503 - swgillespie:thread-hack-removal, r=sfackler
std: remove a workaround for privacy limitations

`std:🧵:Thread` implements a non-exported `NewThread` trait to allow for internal-only use of `Thread::new`. Nowadays we have `pub(crate)`, which accomplishes the same thing but much more idiomatically.

Rustdoc handles this correctly (I checked and I didn't see `Thread::new` on the rustdoc entry for `Thread` with this change), and the stage1 `rustc` emits the correct error still (I'm assuming that the stage1 compiler uses my `libstd`?):

```
$ ./build/x86_64-apple-darwin/stage1/bin/rustc test.rs
error: method `new` is private
 --> test.rs:4:18
  |
4 |     let thread = thread::Thread::new(None);
  |                  ^^^^^^^^^^^^^^^^^^^

error: aborting due to previous error
```
2017-03-17 08:49:02 -04:00
Corey Farwell
695d7ecd05 Rollup merge of #40458 - frewsxcv:frewsxcv-osstr, r=GuillaumeGomez
Add doc examples for `OsStr`, `OsString`.

None
2017-03-17 08:48:53 -04:00
Corey Farwell
dee6989b43 Rollup merge of #40457 - frewsxcv:frewsxcv-macos, r=steveklabnik
Update usages of 'OSX' (and other old names) to 'macOS'.

As of last year with version 'Sierra', the Mac operating system is now
called 'macOS'.
2017-03-17 08:48:52 -04:00
Corey Farwell
69717170a4 Rollup merge of #40456 - frewsxcv:frewsxcv-docs-function-parens, r=GuillaumeGomez
Remove function invokation parens from documentation links.

This was never established as a convention we should follow in the 'More
API Documentation Conventions' RFC:

https://github.com/rust-lang/rfcs/blob/master/text/1574-more-api-documentation-conventions.md
2017-03-17 08:48:51 -04:00
Corey Farwell
bc6eecd0c2 Merge branch 'master' into frewsxcv-osstr 2017-03-16 21:56:52 -04:00
z1mvader
50cede0d31 documented order of conversion between u32 an ipv4addr 2017-03-16 19:59:36 -05:00
Taylor Cramer
28626ca5b1 Stabilize pub(restricted) 2017-03-15 22:39:04 -07:00
Clar Charr
a5cf55125c Implement Error for !. 2017-03-15 23:09:29 -04:00