Commit Graph

10952 Commits

Author SHA1 Message Date
Guillaume Gomez bfed2dcb2f Rollup merge of #44703 - GuillaumeGomez:missing-io-links, r=QuietMisdreavus
Add some missing links in io docs

r? @rust-lang/docs
2017-09-19 21:50:25 +02:00
Guillaume Gomez 6e6a474357 Rollup merge of #44513 - redox-os:master, r=alexcrichton
[Redox] Sync with upstream syscall library

This syncs the vendored syscalls with their upstream versions.
2017-09-19 21:50:21 +02:00
Guillaume Gomez ff457f012a Add some missing links in io docs 2017-09-19 18:10:38 +02:00
bors 9a00f3cc30 Auto merge of #44026 - QuietMisdreavus:trimmed-std, r=steveklabnik
hide internal types/traits from std docs via new #[doc(masked)] attribute

Fixes #43701 (hopefully for good this time)

This PR introduces a new parameter to the `#[doc]` attribute that rustdoc looks for on `extern crate` statements. When it sees `#[doc(masked)]` on such a statement, it hides traits and types from that crate from appearing in either the "Trait Implementations" section of many type pages, or the "Implementors" section of trait pages. This is then applied to the `libc`/`rand`/`compiler_builtins` imports in libstd to prevent those crates from creating broken links in the std docs.

Like in #43348, this also introduces a feature gate, `doc_masked`, that controls the use of this parameter.

To view the std docs generated with this change, head to https://tonberry.quietmisdreavus.net/std-43701/std/index.html.
2017-09-19 04:20:56 +00:00
Alex Crichton d5b0cbbeea Rollup merge of #44651 - bluss:document-thread-name-no-nuls, r=steveklabnik
Document thread builder panics for nul bytes in thread names

This seems to have been undocumented. Mention this where the name is set
(Builder::name) and where the panic could happen (Builder::spawn).

Thread::new is private and I think the builder is the only user where
this matters. A short comment was added to "document" Thread::new too.
2017-09-18 11:04:24 -05:00
Alex Crichton 8dae2b0aef Rollup merge of #44537 - oli-obk:memchr, r=alexcrichton
More `align_offset` things

cc #44488
2017-09-18 11:04:21 -05:00
Alex Crichton fbf3b8ab8e Rollup merge of #44466 - clarcharr:cow_error, r=alexcrichton
Add Cow<str> -> Box<Error> impls.

Considering how impls exist for `String` and `&str`, it makes sense to also add an impl for `Cow<str>` as well.

This would allow converting `String::from_utf8_lossy` directly into a `Box<Error>` or `io::Error` without having to add an extra `into_ownd()`.
2017-09-18 11:04:20 -05:00
Oliver Schneider ab018c76e1 Add a file to trivially disable tool building or testing 2017-09-17 21:41:45 +02:00
Oliver Schneider 2787a285bd Add <*const T>::align_offset and use it in memchr 2017-09-17 21:30:58 +02:00
Tim Neumann 7aefb6c3ef Rollup merge of #44647 - tmerr:fix-44645, r=dtolnay
Ensure tcp test case passes when disconnected from network

net::tcp::tests::connect_timeout_unroutable fails when the network
is unreachable, like on a laptop disconnected from wifi. Check for
this error and allow the test to pass.

Closes #44645
2017-09-17 13:19:15 +02:00
Tim Neumann d046421743 Rollup merge of #44639 - budziq:stabilize_needs_drop, r=dtolnay
stabilized needs_drop (fixes #41890)

fixes #41890
2017-09-17 13:19:14 +02:00
Tim Neumann bbb89863a9 Rollup merge of #44622 - frewsxcv:frewsxcv-invalid-link, r=QuietMisdreavus
Fix incorrect `into_inner` link in docs.

Fixes https://github.com/rust-lang/rust/issues/42373.
2017-09-17 13:19:12 +02:00
Ulrik Sverdrup 7859c9ef44 std: Document thread builder panics for nul bytes in thread names
This seems to have been undocumented. Mention this where the name is set
(Builder::name) and where the panic could happen (Builder::spawn).

Thread::new is private and I think the builder is the only user where
this matters. A short comment was added to "document" Thread::new too.
2017-09-17 10:21:15 +02:00
Trevor Merrifield fcdd46e534 Ensure tcp test case passes when disconnected from network
net::tcp::tests::connect_timeout_unroutable fails when the network
is unreachable, like on a laptop disconnected from wifi. Check for
this error and allow the test to pass.

Closes #44645
2017-09-17 00:16:30 -04:00
Jeremy Soller 00c7ea5f53 Fix network families 2017-09-16 20:54:11 -06:00
Alex Crichton 0df4e92662 Rollup merge of #44609 - jonhoo:hash-alloc, r=steveklabnik
Mention that HashMap::new and HashSet::new do not allocate

The docs for `HashMap::with_capacity` and `HashSet::with_capacity` already say that
> If `capacity` is 0, the hash map/set will not allocate.
However, the docs for `::new` do not say that the initial capacity is 0, and thus promise that a call to `::new` alone does not allocate. This PR fixes that.
2017-09-16 17:09:41 -07:00
Alex Crichton 256b8879cc Rollup merge of #44395 - jcdyer:ip-constructors, r=alexcrichton
Ipv4Addr and Ipv6Addr convenience constructors.

Introduce convenience constructors for common types.

This introduces the following constructors:

* Ipv6Addr::localhost()
* Ipv6Addr::unspecified()
* Ipv4Addr::localhost()
* Ipv4Addr::unspecified()

The recently added `From` implementations were nice for avoiding the fallibility of conversions from strings like `"127.0.0.1".parse().unwrap()`, and `"::1".parse().unwrap()`, but while the Ipv4 version is roughly comparable in verbosity, the Ipv6 version lacks zero-segment elision, which makes it significantly more awkward: `[0, 0, 0, 0, 0, 0, 0, 0].into()`.  While there isn't a clear way to introduce zero elision to type that can infallibly be converted into Ipv6 addresses, this PR resolves the problem for the two most commonly used addresses, which, incidentally, are the ones that suffer the most from the lack of zero-segment elision.

This change is dead simple, and introduces no backwards incompatibility.

See also, [this topic on the inernals board](https://internals.rust-lang.org/t/pre-rfc-convenience-ip-address-constructors/5878)
2017-09-16 17:09:37 -07:00
Michal Budzynski 04855950b9 stabilized needs_drop (fixes #41890) 2017-09-16 23:41:04 +02:00
bors ae8efdc87d Auto merge of #43017 - durka:stabilize-const-invocation, r=eddyb
Individualize feature gates for const fn invocation

This PR changes the meaning of `#![feature(const_fn)]` so it is only required to declare a const fn but not to call one. Based on discussion at #24111. I was hoping we could have an FCP here in order to move that conversation forward.

This sets the stage for future stabilization of the constness of several functions in the standard library (listed below), so could someone please tag the lang team for review.

- `std::cell`
    - `Cell::new`
    - `RefCell::new`
    - `UnsafeCell::new`
- `std::mem`
    - `size_of`
    - `align_of`
- `std::ptr`
    - `null`
    - `null_mut`
- `std::sync`
    - `atomic`
        - `Atomic{Bool,Ptr,Isize,Usize}::new`
    - `once`
        - `Once::new`
- primitives
    - `{integer}::min_value`
    - `{integer}::max_value`

Some other functions are const but they are also unstable or hidden, e.g. `Unique::new` so they don't have to be considered at this time.

After this stabilization, the following `*_INIT` constants in the standard library can be deprecated. I wasn't sure whether to include those deprecations in the current PR.

- `std::sync`
    - `atomic`
        - `ATOMIC_{BOOL,ISIZE,USIZE}_INIT`
    - `once`
        - `ONCE_INIT`
2017-09-16 17:02:17 +00:00
Alex Burka 681e5da61e change #![feature(const_fn)] to specific gates 2017-09-16 15:53:02 +00:00
Corey Farwell 5ff7064330 Fix incorrect into_inner link in docs.
Fixes https://github.com/rust-lang/rust/issues/42373.
2017-09-15 21:52:40 -04:00
Jon Gjengset f7e974e432 HashMap::new and HashSet::new do not allocate 2017-09-15 13:32:56 -04:00
Corey Farwell 4af8acd6c1 Rollup merge of #44563 - budziq:stablilize_tcpstream_connect_timeout, r=alexcrichton
stabilize tcpstream_connect_timeout (closes #43079)
2017-09-14 22:32:50 -04:00
Corey Farwell b87e4f6421 Rollup merge of #44541 - GuillaumeGomez:openoptions-docs, r=QuietMisdreavus
Openoptions docs

r? @QuietMisdreavus
2017-09-14 22:32:48 -04:00
Corey Farwell eb45c0ac7f Rollup merge of #44388 - tbu-:pr_doc_udp_connect_multiple, r=frewsxcv
Clarify the behavior of UDP sockets wrt. multiple addresses in `connect`

CC @frewsxcv #22569 #44209
2017-09-14 22:32:36 -04:00
Corey Farwell 64690fe92e Rollup merge of #44378 - frehberg:rustdoc, r=dtolnay
rustdoc: extend UdpSocket API doc (#657)

see  https://github.com/carllerche/mio/issues/657
2017-09-14 22:32:35 -04:00
J. Cliff Dyer 9d5b0e1ff5 Add unstable attributes for Ipv?Addr constructors. 2017-09-14 21:30:36 -04:00
Michal Budzynski 199cb82597 stabilize tcpstream_connect_timeout (closes #43079) 2017-09-14 16:18:49 +02:00
Joshua Sheard 597ac36547 Merge branch 'master' into threadname 2017-09-14 14:19:53 +01:00
bors 84bbd14e3f Auto merge of #43972 - TobiasSchaffner:std_clean, r=alexcrichton
Add the libstd-modifications needed for the L4Re target

This commit adds the needed modifications to compile the std crate for the L4 Runtime environment (L4Re).

A target for the L4Re was introduced in commit: c151220a84

In many aspects implementations for linux also apply for the L4Re microkernel.

Some uncommon characteristics had to be resolved:
 * L4Re has no network funktionality
 * L4Re has a maximum stacksize of 1Mb for threads
 * L4Re has no uid or gid

Co-authored-by: Sebastian Humenda <sebastian.humenda@tu-dresden.de>
2017-09-14 03:02:58 +00:00
Guillaume Gomez c4044ee39a Add note for append method in OpenOptions docs 2017-09-13 14:47:50 +02:00
Guillaume Gomez ccd4689ca3 Add missing urls for OpenOptions docs 2017-09-13 14:46:15 +02:00
Tobias Schaffner b2b5063517 Move default stack min size to thread implementations
The default min stack size value is smaller on l4re and therefore
this value has to be different depending on the platform.
2017-09-13 10:56:41 +02:00
bors 817e1b81e2 Auto merge of #44344 - jonhoo:entry_or_default, r=BurntSushi
Add or_default to Entry APIs

As argued for in #44324, this PR adds a new `or_default` method to the various `Entry` APIs (currently just for `BTreeMap` and `HashMap`) when `V: Default`. This method is effectively a shorthand for `or_insert_with(Default::default)`.
2017-09-12 09:54:59 +00:00
Jeremy Soller 914853bbfa Fix tidy checks 2017-09-11 19:46:18 -06:00
Jeremy Soller e2820ea06c Sync with upstream syscall library 2017-09-11 18:46:01 -06:00
Frank Rehberger 85a9d97884 rustdoc: extend UdpSocket API doc (#657)
rustdoc: type-fixes
2017-09-12 01:50:32 +02:00
bors ca94c75c52 Auto merge of #44220 - kennytm:fix-44216-instance-plus-max-duration-should-panic, r=alexcrichton
Properly detect overflow in Instance ± Duration.

Fix #44216.
Fix #42622

The computation `Instant::now() + Duration::from_secs(u64::max_value())` now panics. The call `receiver.recv_timeout(Duration::from_secs(u64::max_value()))`, which involves such time addition, will also panic.

The reason #44216 arises is because of an unchecked cast from `u64` to `i64`, making the duration equivalent to -1 second.

Note that the current implementation is over-conservative, since e.g. (-2⁶²) + (2⁶³) is perfectly fine for an `i64`, yet this is rejected because (2⁶³) overflows the `i64`.
2017-09-10 18:37:27 +00:00
Clar Charr 778d5f2074 Add Cow<str> -> Box<Error> impls. 2017-09-10 13:21:34 -04:00
bors d290dec97f Auto merge of #44474 - GuillaumeGomez:rollup, r=GuillaumeGomez
Rollup of 13 pull requests

- Successful merges: #44262, #44329, #44332, #44347, #44372, #44384, #44387, #44396, #44449, #44451, #44457, #44464, #44467
- Failed merges:
2017-09-10 12:48:55 +00:00
Guillaume Gomez f76f2c76dc Rollup merge of #44396 - joshlf:tls-comment, r=alexcrichton
std::thread::LocalKey: Document limitation with initializers

Document that if a `LocalKey`'s initializer recursively depends on itself, initialization will result in infinite recursion.
2017-09-10 14:03:27 +02:00
Guillaume Gomez 0e2dac7eba Rollup merge of #44384 - alexcrichton:osx-segfault, r=estebank
std: Fix a segfault on OSX with backtraces

Apparently `dladdr` can succeed but still give you NULL pointers!

Closes #44379
2017-09-10 14:03:25 +02:00
Eduard-Mihai Burtescu 10f66bd6e4 Use rvalue promotion to 'static instead of static items. 2017-09-10 11:20:27 +03:00
bors ddd123ed9a Auto merge of #44251 - kennytm:osx-backtrace, r=alexcrichton
Add libbacktrace support for Apple platforms (resubmitted)

Resubmitting #43422 rebased on the current master (cc @JohnColanduoni).

I have added an additional commit to fallback to `dladdr`-based `resolve_symbol` if `libbacktrace` returns `None`, otherwise the stack trace will be full of `<unknown>` when you forget to pass the `-g` flag (actually it seems — at least on macOS — the `dladdr` symbol is more accurate than the `libbacktrace` one).
2017-09-09 17:32:13 +00:00
bors 929b878262 Auto merge of #44438 - Xaeroxe:clamp, r=Mark-Simulacrum
Revert clamp

Revert clamp per https://github.com/rust-lang/rust/issues/44095#issuecomment-328218316 while we take time to assess the potential backwards compatibility damage done by it.
2017-09-09 09:13:03 +00:00
J. Cliff Dyer 8b6122f8b8 Add feature gate to doctests. 2017-09-08 20:41:09 -04:00
Jacob Kiesel db5b5f9706 Revert "Add clamp functions"
This reverts commit c589f867f8.
2017-09-08 16:07:21 -06:00
Jacob Kiesel 63f4dab0f5 Revert "Add NAN examples"
This reverts commit f74c5d2e18.
2017-09-08 16:07:19 -06:00
Jacob Kiesel eafdad511f Revert "Fix f32 examples."
This reverts commit 61f20f8df0.
2017-09-08 16:07:17 -06:00
Jacob Kiesel 15d3eeaf65 Revert "Fix f64 examples"
This reverts commit 576426a05a.
2017-09-08 16:07:15 -06:00