Commit Graph

14251 Commits

Author SHA1 Message Date
Yuki Okushi a08a03ced7 Rollup merge of #71633 - a1phyr:infallible_error, r=dtolnay
Impl Error for Infallible

This PR only changes the place where `impl Error for Infallible` is documented, as one could think that it is not the case when reading https://doc.rust-lang.org/nightly/std/convert/enum.Infallible.html.

Fixes #70842
2020-05-29 15:06:48 +09:00
Dylan DPC b18c55b179 Rollup merge of #72239 - hch12907:master, r=dtolnay
Implement PartialOrd and Ord for SocketAddr*

The implementation is mostly the same as the one found in `IpAddr` (other than adding comparison for ports, of course).
Continues #53788 and #53863
Fixes #53710
2020-05-29 02:33:07 +02:00
bors 2679c38fc3 Auto merge of #72472 - LeSeulArtichaut:sync-command, r=dtolnay
Implement `Sync` for `process::Command on unix and vxworks

Closes #72387.
r? @cuviper
2020-05-25 02:48:55 +00:00
Hoe Hao Cheng d1bc8ada45 Fix tests 2020-05-24 23:04:46 +08:00
Hoe Hao Cheng 716acff7b1 Remove heterogeneous ordering for SocketAddr 2020-05-24 22:14:06 +08:00
Eitan Mosenkis 806f5815d4 Fix typo in doc comment.
call_one_force -> call_once_force
2020-05-24 11:59:07 +03:00
Jake Goulding 749d9e7a26 Correct small typo: 'not' -> 'note' 2020-05-23 07:29:22 -04:00
Dylan DPC 141ce5f2ad Rollup merge of #72459 - yoshuawuyts:into-future, r=nikomatsakis
Add core::future::IntoFuture

This patch reintroduces the `core::future::IntoFuture` trait. However unlike earlier PRs this patch does not integrate it into the `async/.await` lowering since that lead to performance regressions. By introducing the trait separately from the integration, the integration PR can be more narrowly scoped, and people can start trying out the `IntoFuture` trait today. Thanks heaps!

cc/ @rust-lang/wg-async-foundations

## References
- Original PR adding `IntoFuture` https://github.com/rust-lang/rust/pull/65244
- Open issue to re-land `IntoFuture` (assigned to me) https://github.com/rust-lang/rust/issues/67982
- Tracking issue for `IntoFuture` https://github.com/rust-lang/rust/issues/67644
2020-05-22 21:45:01 +02:00
LeSeulArtichaut 01630b26dd Implement Sync for `process::Command on unix and vxworks 2020-05-22 18:33:12 +02:00
Ralf Jung 37587af8d5 Rollup merge of #72399 - Lucretiel:ipv4-display-fast, r=kennytm
Add fast-path optimization for Ipv4Addr::fmt

Don't use an intermediary buffer when writing an IPv4 address without any specific alignment options
2020-05-22 16:58:36 +02:00
Ralf Jung 53d0046983 Rollup merge of #72123 - jsgf:stabilize-arg0, r=sfackler
Stabilize process_set_argv0 feature for Unix

This stabilizes process_set_argv0 targeting 1.45.0. It has been
useful in practice and seems useful as-is.

The equivalent feature could be implemented for Windows, but as far as I
know nobody has. That can be done separately.

Tracking issue: #66510
2020-05-22 16:58:24 +02:00
Yoshua Wuyts 9ff502029d Add core::future::IntoFuture
This patch adds `core::future::IntoFuture`. However unlike earlier PRs this patch does not integrate it into the `async/.await` lowering. That integration should be done in a follow-up PR.
2020-05-22 10:55:01 +02:00
Mahmut Bulut 4a10f6cd08 Enable ARM TME (Transactional Memory Extensions) 2020-05-21 23:20:57 +02:00
Nathan West dc3de7cb2a Add fast-path optimization for Ipv4Addr::fmt 2020-05-20 16:49:31 -04:00
bors 914adf04af Auto merge of #71447 - cuviper:unsized_cow, r=dtolnay
impl From<Cow> for Box, Rc, and Arc

These forward `Borrowed`/`Owned` values to existing `From` impls.

- `Box<T>` is a fundamental type, so it would be a breaking change to add a blanket impl. Therefore, `From<Cow>` is only implemented for `[T]`, `str`, `CStr`, `OsStr`, and `Path`.
- For `Rc<T>` and `Arc<T>`, `From<Cow>` is implemented for everything that implements `From` the borrowed and owned types separately.
2020-05-19 08:08:48 +00:00
bors 9e2a6a29ce Auto merge of #72289 - RalfJung:abort_internal, r=Mark-Simulacrum
abort_internal is safe

`sys::abort_internal` is stably exposed as a safe function. Forward that assumption "inwards" to the `sys` module by making the function itself safe, too.

This corresponds to what https://github.com/rust-lang/rust/pull/72204 did for the intrinsic. We should probably wait until that lands because some of the intrinsic calls in this PR might then need adjustments.
2020-05-18 11:11:19 +00:00
Ralf Jung 2cff5d961a Rollup merge of #72307 - hermitcore:condvar, r=Mark-Simulacrum
use the new interface to initialize conditional variables

HermitCore introduce a new interface to intialize conditional variables.
Consequently, minor changes are required to support this interface.
2020-05-18 08:48:45 +02:00
Stefan Lankes 3f47d9d2e6 minor changes to pass the format check 2020-05-18 00:06:32 +02:00
Stefan Lankes 06d692febd use new interface to initialize Condvar
HermitCore introduce a new interface to intialize conditional variables.
Consequently, minor changes are required to support this interface.
2020-05-17 23:49:18 +02:00
Ralf Jung 2764673dca abort_internal is safe 2020-05-17 23:38:31 +02:00
bors 34cce58d81 Auto merge of #72204 - RalfJung:abort, r=Mark-Simulacrum
make abort intrinsic safe, and correct its documentation

Turns out `std::process::abort` is not the same as the intrinsic, the comment was just wrong. Quoting from the unix implementation:
```
// On Unix-like platforms, libc::abort will unregister signal handlers
// including the SIGABRT handler, preventing the abort from being blocked, and
// fclose streams, with the side effect of flushing them so libc buffered
// output will be printed.  Additionally the shell will generally print a more
// understandable error message like "Abort trap" rather than "Illegal
// instruction" that intrinsics::abort would cause, as intrinsics::abort is
// implemented as an illegal instruction.
```
2020-05-17 12:49:01 +00:00
Ralf Jung 5980d972d1 make abort intrinsic safe, and correct its documentation 2020-05-17 11:23:42 +02:00
Hoe Hao Cheng 27fc7e5e7a Implement PartialOrd and Ord for SocketAddr* 2020-05-16 18:58:20 +08:00
Dylan DPC 8b1cc10c60 Rollup merge of #72230 - SOF3:patch-1, r=kennytm
Updated documentation of Prefix::VerbatimDisk

PrefixComponent with Prefix::VerbatimDisk does not contain the trailing slash. The documentation here is also inconsistent with the documentation on other variants that reflect the `PrefixComponent::as_os_str()` return value.
2020-05-16 12:43:05 +02:00
Dylan DPC 21d58a1d31 Rollup merge of #71677 - Mark-Simulacrum:hasher-docs, r=Amanieu
Add explicit references to the BuildHasher trait

Fixes #71652
2020-05-16 02:37:14 +02:00
Dylan DPC 86f48c5311 Rollup merge of #71662 - glandium:osstring_from_str, r=sfackler
Implement FromStr for OsString
2020-05-16 02:37:07 +02:00
SOFe 084cdde976 Updated documentation of Prefix::VerbatimDisk
PrefixComponent with Prefix::VerbatimDisk does not contain the trailing slash. The documentation here is also inconsistent with the documentation on other variants that reflect the `PrefixComponent::as_os_str()` return value.
2020-05-15 22:41:36 +08:00
Jeremy Fitzhardinge ff9646c0ad Stabilize process_set_argv0 feature for Unix
This stabilizes process_set_argv0 targeting 1.45.0. It has been
useful in practice and seems useful as-is.

The equivalent feature could be implemented for Windows, but as far as I
know nobody has. That can be done separately.

Tracking issue: #66510
2020-05-12 09:34:23 -07:00
Kornel 2d39f5abcd Warn against thread::sleep in async fn 2020-05-12 16:38:02 +01:00
Matthias Krüger 8bfd84539e Fix clippy warnings
Fixes clippy::{cone_on_copy, filter_next, redundant_closure, single_char_pattern, len_zero,redundant_field_names, useless_format, identity_conversion, map_clone, into_iter_on_ref, needless_return, option_as_ref_deref, unused_unit, unnecessary_mut_passed}
2020-05-11 17:13:32 +02:00
Elinvynia 05fc7faacb Better documentation for io::Read::read() return value 2020-05-09 01:17:20 +02:00
Dylan DPC c818e84821 Rollup merge of #71980 - steveklabnik:warnings-fixes, r=Mark-Simulacrum
Allow a few warnings.

On Windows, these types were causing warnings to be emitted during the
build. These types are allowed to not have idiomatic names, so the
warning should be supressed.
2020-05-07 17:59:00 +02:00
Steve Klabnik d14f000ccc Allow a few warnings.
On Windows, these types were causing warnings to be emitted during the
build. These types are allowed to not have idiomatic names, so the
warning should be supressed.
2020-05-07 07:23:06 -05:00
Dylan DPC a6a7c755fa Rollup merge of #71591 - hermitcore:thread_create, r=hanna-kruppe
use new interface to create threads on HermitCore

- the new interface allows to define the stack size
- increase the default stack size to 1 MByte
2020-05-06 16:58:53 +02:00
Dylan DPC b86620a558 Rollup merge of #71921 - RalfJung:open-mode, r=hanna-kruppe
explain the types used in the open64 call

Fixes https://github.com/rust-lang/rust/issues/71915, where I learned about this quirk. I don't actually know what I am talking about here. ;)
2020-05-06 13:22:22 +02:00
Ralf Jung fbf791bd52 explain the types used in the open64 call 2020-05-05 17:08:22 +02:00
Ralf Jung f9866f95af rely on rdlock/wrlock not returning anything but the specified error codes 2020-05-05 09:08:00 +02:00
Ralf Jung 3f50292edc edit Mutex comment 2020-05-04 20:47:46 +02:00
Ralf Jung 40a6b8c339 explain our rwlock implementation (and fix a potential data race) 2020-05-04 19:37:55 +02:00
Ralf Jung 61fdd3e2be expand comment on default mutex behavior 2020-05-04 19:17:58 +02:00
Dylan DPC 6f5de87d3f Rollup merge of #71398 - ThinkChaos:feat_refcell_take, r=LukasKalbertodt
Add `RefCell::take`

Add `RefCell::take` to match `Cell` and `Option`.
I also changed a couple of calls to `.replace` to `.take`.

Tracking issue is #71395.

This is my first contribution, please tell me if there's anything I could improve, thanks!
2020-05-03 18:34:34 +02:00
Dylan DPC 5a7b21faba Rollup merge of #71785 - reitermarkus:cfg-attribute, r=Mark-Simulacrum
Update comment regarding SO_REUSEADDR on Windows
2020-05-02 18:27:48 +02:00
Markus Reiter 39a97900be Replace cfg macro with attribute. 2020-05-02 17:06:16 +02:00
Jacob Kiesel b5c1f45273 Remove recommendation for unmaintained crate 2020-05-01 20:51:20 -06:00
Mark Rousskov cf5e4a749c Add explicit references to the BuildHasher trait 2020-04-29 11:04:57 -04:00
Dylan DPC fb1aa5624d Rollup merge of #71296 - ChiefMilesEdgeworth:fix_doc_wording, r=Dylan-DPC
Change wording on read_vectored docs

Closes #70154

I'm happy to work with others to make the wording on this more clear. I think what I have is an improvement but may not be the final wording.
2020-04-29 12:23:22 +02:00
Mike Hommey bdfdc71d0f Implement FromStr for OsString 2020-04-29 18:13:52 +09:00
Benoît du Garreau ef485c6fa9 Impl Error for Infallible 2020-04-28 11:22:42 +02:00
Dylan DPC c4d9f42f6d Rollup merge of #67841 - sfackler:can-vector, r=Amaneiu
Add Read/Write::can_read/write_vectored

When working with an arbitrary reader or writer, code that uses vectored
operations may end up being slower than code that copies into a single
buffer when the underlying reader or writer doesn't actually support
vectored operations. These new methods allow you to ask the reader or
witer up front if vectored operations are efficiently supported.

Currently, you have to use some heuristics to guess by e.g. checking if
the read or write only accessed the first buffer. Hyper is one concrete
example of a library that has to do this dynamically:
https://github.com/hyperium/hyper/blob/0eaf304644a396895a4ce1f0146e596640bb666a/src/proto/h1/io.rs#L582-L594
2020-04-27 22:14:55 +02:00
Steven Fackler c68f23ff6d fix wasi 2020-04-27 04:50:03 -07:00