Commit graph

12989 commits

Author SHA1 Message Date
Josh Stone
a301655c8a Use posix_spawn_file_actions_addchdir_np when possible
This is a non-POSIX extension implemented in Solaris and in glibc 2.29.
With this we can still use `posix_spawn()` when `Command::current_dir()`
has been set, otherwise we fallback to `fork(); chdir(); exec()`.
2019-02-13 12:20:23 -08:00
Simon Sapin
c80a8f51dc Stabilize TryFrom and TryInto 2019-02-13 18:00:18 +01:00
Simon Sapin
85f13f0d42 Add a convert::Infallible empty enum, make string::ParseError an alias 2019-02-13 18:00:18 +01:00
Lzu Tao
e7f8e63ed4 Convert old doc links to current edition
Use footnote style to bypass the tidy check
2019-02-13 14:39:25 +00:00
Vitaly _Vi Shukela
91f67fd1a7
Add Instant::saturating_duration_since 2019-02-13 15:08:44 +03:00
Anthony Ramine
95840b35fc Relax Read bounds on a bunch of BufReader<R> methods 2019-02-13 12:30:53 +01:00
Anthony Ramine
d9e2259d65 Relax some Hash bounds on HashMap<K, V, S> and HashSet<T, S>
Notably, hash iterators don't require any trait bounds to be iterated.
2019-02-13 12:23:14 +01:00
Vitaly _Vi Shukela
d15c358000
Fix tests for checked_duration_since 2019-02-13 13:17:33 +03:00
bors
ccd23b95e5 Auto merge of #58235 - jethrogb:jb/sgx-usercall-internals, r=alexcrichton
SGX target: simplify usercall internals

This moves logic from assembly to Rust and removes the special case for exit/panic handling, merging it with regular usercall handling.

Also, this fixes a bug in the exit usercall introduced in a75ae00. The bug would make regular exits look like panics with high probability. It would also with some probability leak information through uncleared registers.

cc @VardhanThigle

r? @alexcrichton
2019-02-13 07:46:21 +00:00
Matthias Einwag
871338c3ae Merging master 2019-02-12 22:46:14 -08:00
Mazdak Farrokhzad
5aa260a4b5
Rollup merge of #58289 - haraldh:master, r=sfackler
impl iter() for dyn Error

Examples:

```rust
let next_error_type_a = err
    .iter()
    .filter_map(Error::downcast_ref::<ErrorTypeA>)
    .next();
```

```rust
let source_root_error = err.iter().last();
```

Credit for the ErrorIter goes to reddit user /u/tdiekmann (Tim Diekmann)
https://www.reddit.com/r/rust/comments/aj3lpg/is_an_iterator_impl_over_errorsource_possible/
2019-02-13 04:37:05 +01:00
Mazdak Farrokhzad
0ab1057a56
Rollup merge of #58034 - faern:stabilize-time-checked-add, r=alexcrichton
Stabilize the time_checked_add feature

Closes #55940

Stabilizes `checked_add` and `checked_sub` on `Instant` and `SystemTime`.
2019-02-13 04:36:58 +01:00
Mazdak Farrokhzad
734cc3e79e
Rollup merge of #57693 - king6cong:word, r=Centril
Doc rewording

None
2019-02-13 04:36:55 +01:00
Vitaly _Vi Shukela
7b2a08cf49
Add Instant::checked_duration_since, address #58402. 2019-02-13 00:49:48 +03:00
bors
b244f61b77 Auto merge of #58341 - alexreg:cosmetic-2-doc-comments, r=steveklabnik
Cosmetic improvements to doc comments

This has been factored out from https://github.com/rust-lang/rust/pull/58036 to only include changes to documentation comments (throughout the rustc codebase).

r? @steveklabnik

Once you're happy with this, maybe we could get it through with r=1, so it doesn't constantly get invalidated? (I'm not sure this will be an issue, but just in case...) Anyway, thanks for your advice so far!
2019-02-12 19:09:24 +00:00
bors
c84e797642 Auto merge of #58098 - oli-obk:maybe_allow_internal_unstable, r=petrochenkov
Require a list of features in `#[allow_internal_unstable]`

The blanket-permission slip is not great and will likely give us trouble some point down the road.
2019-02-12 12:10:10 +00:00
king6cong
b284c8d608 Doc rewording 2019-02-12 16:45:19 +08:00
Scott McMurray
5d8058477e Use less explicit shifting in std::net::ip
Now that we have {to|from}_be_bytes the code can be simpler.

(Inspired by PR #57740)
2019-02-11 23:00:01 -08:00
Andy Russell
34052a19a2
remove "experimental" wording from std::os::unix 2019-02-11 15:36:45 -05:00
Oliver Scherer
1dba7cb202 Fiddle through the module visibilities for tests 2019-02-11 15:08:17 +01:00
Oliver Scherer
a83e73dce4 Move out tests of a deprecated module to work around #[test] bugs
https://github.com/rust-lang/rust/issues/47238
2019-02-11 15:08:17 +01:00
Oliver Scherer
d3c212c552 Require a list of features to allow in allow_internal_unstable 2019-02-11 15:08:16 +01:00
Alexander Regueiro
99ed06eb88 libs: doc comments 2019-02-10 23:57:25 +00:00
Alexander Regueiro
b87363e763 tests: doc comments 2019-02-10 23:42:32 +00:00
bors
3d845e131f Auto merge of #58361 - GuillaumeGomez:rollup, r=GuillaumeGomez
Rollup of 16 pull requests

Successful merges:

 - #57259 (Update reference of rlibc crate to compiler-builtins crate)
 - #57740 (Use `to_ne_bytes` for converting IPv4Addr to octets)
 - #57926 (Tiny expansion to docs for `core::convert`.)
 - #58157 (Add Cargo.lock automatically adding message)
 - #58203 (rustdoc: display sugared return types for async functions)
 - #58243 (Add trait alias support in rustdoc)
 - #58262 (Add #[must_use] message to Fn* traits)
 - #58295 (std::sys::unix::stdio: explain why we do into_raw)
 - #58297 (Cleanup JS a bit)
 - #58317 (Some writing improvement, conciseness of intro)
 - #58324 (miri: give non-generic functions a stable address)
 - #58332 (operand-to-place copies should never be overlapping)
 - #58345 (When there are multiple filenames, print what got interpreted as filenames)
 - #58346 (rpath computation: explain why we pop())
 - #58350 (Fix failing tidy (line endings on Windows))
 - #58352 (miri value visitor: use `?` in macro)

Failed merges:

r? @ghost
2019-02-10 22:35:36 +00:00
Guillaume Gomez
d59ca59b90
Rollup merge of #58295 - RalfJung:stdio, r=alexcrichton
std::sys::unix::stdio: explain why we do into_raw

I was quite puzzled why someone would call `into_raw` and then ignore the result.
2019-02-10 21:45:16 +01:00
Guillaume Gomez
d9f9780918
Rollup merge of #57740 - JakubOnderka:ipv4addr-to_ne_bytes, r=scottmcm
Use `to_ne_bytes` for converting IPv4Addr to octets

It is easier and it should be also faster, because [`to_ne_bytes`](https://doc.rust-lang.org/std/primitive.u32.html#method.to_ne_bytes) just calls `mem::transmute`.
2019-02-10 21:45:08 +01:00
bors
0b7af2668a Auto merge of #58129 - RalfJung:maybe-uninit, r=cramertj
MaybeUninit: some docs, rename into_inner -> into_initialized, return &mut from set
2019-02-10 20:03:03 +00:00
Ralf Jung
4833074a9a fix SGX build failures 2019-02-10 19:08:49 +01:00
Harald Hoyer
f06af1ff17
impl iter_sources() and iter_chain() for dyn Error
Examples:

```rust
let next_error_type_a = err
    .iter_chain()
    .filter_map(Error::downcast_ref::<ErrorTypeA>)
    .next();
```

```rust
let source_root_error = err.iter_chain().last();
```

Credit for the ErrorIter goes to Tim Diekmann
https://www.reddit.com/r/rust/comments/aj3lpg/is_an_iterator_impl_over_errorsource_possible/
2019-02-09 16:04:25 +01:00
Ralf Jung
541503afa1 std::sys::unix::stdio: explain why we do into_raw 2019-02-08 11:41:31 +01:00
Guillaume Gomez
8b886e07f5 Remove images' url to make it work even without internet connection 2019-02-07 11:06:19 +01:00
kennytm
2be3ca4427
Rollup merge of #58136 - abonander:doc-win-stdio-unicode, r=dtolnay
Improve error message and docs for non-UTF-8 bytes in stdio on Windows

This should make debugging problems like abonander/multipart#106 significantly more straightforward in the future.

cc #23344, @retep998 @alexcrichton

Not sure who do r? so I'll let rust-highfive pick one.
2019-02-07 13:57:41 +08:00
Jethro Beekman
0d2ab0b77d SGX target: simplify usercall internals
This moves logic from assembly to Rust and removes the special
case for exit/panic handling, merging it with regular usercall
handling.

Also, this fixes a bug in the exit usercall introduced in a75ae00.
The bug would make regular exits look like panics with high
probability. It would also with some probability leak information
through uncleared registers.
2019-02-06 23:24:55 +05:30
kennytm
b3f814fd30
Rollup merge of #58182 - jethrogb:jb/sgx-bytebuffer-len-0, r=joshtriplett
SGX target: handle empty user buffers correctly

Also, expose correct items in `os::fortanix_sgx::usercalls::alloc`

* [read_alloc documentation](https://edp.fortanix.com/docs/api/fortanix_sgx_abi/struct.Usercalls.html#method.read_alloc)
* [Clarified ByteBuffer documentation](https://github.com/fortanix/rust-sgx/pull/94/files#diff-ca843ad9e25cacd63a80579c0f7efa56)

r? @joshtriplett
2019-02-06 00:29:20 +09:00
Jethro Beekman
d89ebdd475 Expose correct items in os::fortanix_sgx::usercalls::alloc 2019-02-05 16:19:20 +05:30
Jethro Beekman
4c8c0fc1e2 SGX target: handle empty user buffers correctly 2019-02-05 16:19:05 +05:30
Jethro Beekman
82df9d7434 Remove stray FIXME 2019-02-04 16:02:54 +05:30
Austin Bonander
27c8dfddac Improve error message and docs for non-UTF-8 bytes in stdio on Windows
cc #23344
2019-02-03 22:55:56 -08:00
Matthias Einwag
d9a4b22d32 Update the future/task API
This change updates the future and task API as discussed in the stabilization RFC at https://github.com/rust-lang/rfcs/pull/2592.

Changes:
- Replacing UnsafeWake with RawWaker and RawWakerVtable
- Removal of LocalWaker
- Removal of Arc-based Wake trait
2019-02-03 13:46:53 -08:00
bors
42b8c77da5 Auto merge of #57922 - davidtwco:issue-57410, r=petrochenkov
Update visibility of intermediate use items.

Fixes #57410 and fixes #53925 and fixes #47816.

Currently, the target of a use statement will be updated with
the visibility of the use statement itself (if the use statement was
visible).

This PR ensures that if the path to the target item is via another
use statement then that intermediate use statement will also have the
visibility updated like the target. This silences incorrect
`unreachable_pub` lints with inactionable suggestions.
2019-02-03 13:35:15 +00:00
Ralf Jung
e023403da2 POSIX requires async signal safety for fork in signal handlers, not in general 2019-02-03 11:17:59 +01:00
Ralf Jung
33ee99b26a more formatting 2019-02-03 11:16:37 +01:00
bors
2966fbc10d Auto merge of #58043 - jethrogb:jb/sgx-usercallnrs, r=joshtriplett
Fix `std::os::fortanix_sgx::usercalls::raw::UsercallNrs`

It was 0-indexed but should be 1-indexed. This PR just removes the duplicate code and re-exports the internal enum.

Fixes https://github.com/fortanix/rust-sgx/issues/88

r? @joshtriplett
2019-02-03 04:57:30 +00:00
David Wood
7102339477
Update visibility of intermediate use items.
Currently, the target of a use statement will be updated with
the visibility of the use statement itself (if the use statement was
visible).

This commit ensures that if the path to the target item is via another
use statement then that intermediate use statement will also have the
visibility updated like the target. This silences incorrect
`unreachable_pub` lints with inactionable suggestions.
2019-02-02 15:29:13 +01:00
Ralf Jung
6c67a7625f pre_exec: expand docs 2019-02-02 11:05:43 +01:00
Ralf Jung
cbbf8a7ff9 deprecate things a bit slower 2019-02-02 11:00:55 +01:00
Ralf Jung
d48433d920 also replace before_exec by pre_exec on redox 2019-02-01 19:57:06 +01:00
Ralf Jung
6bfb280189 deprecate before_exec in favor of unsafe pre_exec 2019-02-01 19:53:32 +01:00
Simon Sapin
cc1e05f0ca Stabilize std::error::Error::type_id
This should have been part of https://github.com/rust-lang/rust/pull/57834

FCP: https://github.com/rust-lang/rust/issues/27745#issuecomment-373906749
2019-02-01 11:29:02 +01:00