Commit graph

13781 commits

Author SHA1 Message Date
Mazdak Farrokhzad
6d60606a17
Rollup merge of #67389 - reitermarkus:dummy-variable, r=shepmaster
Remove `SO_NOSIGPIPE` dummy variable on platforms that don't use it.
2019-12-19 10:29:59 +01:00
Mazdak Farrokhzad
910bb6530c
Rollup merge of #67321 - lzutao:htons, r=dtolnay
make htons const fn

This may partially help #67315.
2019-12-19 10:29:56 +01:00
Mazdak Farrokhzad
bd8862340d
Rollup merge of #67270 - alexcrichton:write-more-line-writer, r=sfackler
std: Implement `LineWriter::write_vectored`

This commit implements the `write_vectored` method of the `LineWriter`
type. First discovered in bytecodealliance/wasmtime#629 the
`write_vectored` method of `Stdout` bottoms out here but only ends up
writing the first buffer due to the default implementation of
`write_vectored`.

Like `BufWriter`, however, `LineWriter` can have a non-default
implementation of `write_vectored` which tries to preserve the
vectored-ness as much as possible. Namely we can have a vectored write
for everything before the newline and everything after the newline if
all the stars align well.

Also like `BufWriter`, though, special care is taken to ensure that
whenever bytes are written we're sure to signal success since that
represents a "commit" of writing bytes.
2019-12-19 10:29:53 +01:00
Mark Rousskov
82184440ec Propagate cfg bootstrap 2019-12-18 12:16:19 -05:00
Markus Reiter
58910255aa Remove SO_NOSIGPIPE dummy variable on platforms that don't use it. 2019-12-18 08:46:00 +01:00
Mazdak Farrokhzad
a1580e72da
Rollup merge of #67308 - dtolnay:fast_rebind, r=alexcrichton
Delete flaky test net::tcp::tests::fast_rebind

This test is unreliable for at least 3 users on two platforms: see #57509 and #51006. It was added 5 years ago in #22015. Do we know whether this is testing something important that would indicate a bug in our implementation, or if it's fine to remove?

r? @sfackler @alexcrichton because this somewhat resembles #59018

Closes #57509. Closes #51006.
2019-12-16 17:33:07 +01:00
Lzu Tao
3594d8b8a1 make htons const fn 2019-12-15 13:41:32 +00:00
Mazdak Farrokhzad
541dc62d64
Rollup merge of #67282 - pjw91:patch-1, r=Dylan-DPC
Fix example code of OpenOptions::open

The example didn't set the access mode flag, which resulted in an `Err(InvalidInput)`.

r? @steveklabnik
2019-12-15 05:57:24 +01:00
Mazdak Farrokhzad
39c5d8199a
Rollup merge of #67267 - alexcrichton:update-wasi-libc, r=Dylan-DPC
Fix signature of `__wasilibc_find_relpath`

Looks like this function changed upstream, so it needs to be adjusted
for when used by libstd.
2019-12-15 05:57:22 +01:00
David Tolnay
2514cd555b
Delete flaky test net::tcp::tests::fast_rebind 2019-12-14 18:44:09 -08:00
bors
6f829840f7 Auto merge of #67224 - nikomatsakis:revert-stabilization-of-never-type, r=centril
Revert stabilization of never type

Fixes https://github.com/rust-lang/rust/issues/66757

I decided to keep the separate `never-type-fallback` feature gate, but tried to otherwise revert https://github.com/rust-lang/rust/pull/65355. Seemed pretty clean.

( cc @Centril, author of #65355, you may want to check this over briefly )
2019-12-14 22:02:59 +00:00
Niko Matsakis
d286113024 Revert "Stabilize the never_type, written !."
This reverts commit 15c30ddd69.
2019-12-14 09:01:09 -05:00
Niko Matsakis
ca8154861e Revert "Redefine core::convert::Infallible as !."
This reverts commit 089229a193.
2019-12-14 09:00:49 -05:00
bors
c8ea4ace92 Auto merge of #67136 - oli-obk:const_stability, r=Centril
Require stable/unstable annotations for the constness of all stable fns with a const modifier

r? @RalfJung @Centril

Every `#[stable]` const fn now needs either a `#[rustc_const_unstable]` attribute or a `#[rustc_const_stable]` attribute. You can't silently stabilize the constness of a function anymore.
2019-12-14 10:21:32 +00:00
bors
12307b3b08 Auto merge of #67084 - Pagten:feature/print-msg-from-elf-entrypoint, r=Amanieu
SGX: Change ELF entrypoint

This fixes [rust-sgx issue #148](https://github.com/fortanix/rust-sgx/issues/148).

A new entry point is created for the ELF file generated by `rustc`, separate from the enclave entry point. When the ELF file is executed as a Linux binary, the error message below is written to stderr.

> Error: This file is an SGX enclave which cannot be executed as a standard Linux binary.
> See the installation guide at https://edp.fortanix.com/docs/installation/guide/ on how to use 'cargo run' or follow the steps at https://edp.fortanix.com/docs/tasks/deployment/ for manual deployment.

When the ELF file is converted to an SGXS using `elf2sgxs`, the old entry point is still set as the enclave entry point. In a future pull request in the rust-sgx repository, `elf2sgxs` will be modified to remove the code in the ELF entry point, since this code is not needed in the enclave.
2019-12-14 04:08:50 +00:00
Patrick Wang
b65c6ec10f
Fix incorrect example code of OpenOptions::open 2019-12-14 03:12:50 +08:00
Oliver Scherer
5e17e39881 Require stable/unstable annotations for the constness of all stable functions with a const modifier 2019-12-13 11:27:02 +01:00
Oliver Scherer
d75c7530f3 Reuse the staged_api feature for rustc_const_unstable 2019-12-13 11:27:01 +01:00
Alex Crichton
2fee28e713 std: Implement LineWriter::write_vectored
This commit implements the `write_vectored` method of the `LineWriter`
type. First discovered in bytecodealliance/wasmtime#629 the
`write_vectored` method of `Stdout` bottoms out here but only ends up
writing the first buffer due to the default implementation of
`write_vectored`.

Like `BufWriter`, however, `LineWriter` can have a non-default
implementation of `write_vectored` which tries to preserve the
vectored-ness as much as possible. Namely we can have a vectored write
for everything before the newline and everything after the newline if
all the stars align well.

Also like `BufWriter`, though, special care is taken to ensure that
whenever bytes are written we're sure to signal success since that
represents a "commit" of writing bytes.
2019-12-12 16:51:25 -08:00
Alex Crichton
641ccd58c1 Fix signature of __wasilibc_find_relpath
Looks like this function changed upstream, so it needs to be adjusted
for when used by libstd.
2019-12-12 14:48:47 -08:00
Yuki Okushi
3cf799640f
Rollup merge of #67230 - chansuke:remove-irrelevant-passage, r=Dylan-DPC
Remove irelevant comment on `register_dtor`

Fixes #66572.
2019-12-12 10:09:23 +09:00
bors
27d6f55f47 Auto merge of #65345 - davidtwco:issue-64130-async-send-sync-error-improvements, r=nikomatsakis
async/await: improve not-send errors, part 2

Part of #64130. Fixes #65667.

This PR improves the errors introduced in #64895 so that they have specialized messages for `Send` and `Sync`.

r? @nikomatsakis
2019-12-11 19:39:06 +00:00
chansuke
e4852da576 Remove irelevant comment on register_dtor 2019-12-12 01:00:37 +09:00
Yuki Okushi
b8f8638a77
Rollup merge of #67181 - TheSamsa:update-hashmap-doc, r=Dylan-DPC
Update hashmap doc

Update hint to the used algorithms. Skimmed over the longer description but could not find another mentioning of the old algorithms.

Closes #67093
2019-12-11 04:33:06 +09:00
Christoph Schmidler
a678628e58 Update HashMap documentation hint of the used 'quadratic probing' and 'SIMD lookup' algorithms 2019-12-09 20:13:42 +01:00
Lzu Tao
bf1f1c242c inline some common methods on OsStr 2019-12-09 10:39:57 +00:00
bors
db7ca254ea Auto merge of #66730 - hermitcore:master, r=alexcrichton
remove dependency from libhermit

The build process of the unikernel HermitCore is redesigned and doesn't longer depend on libhermit.
2019-12-08 16:34:38 +00:00
David Wood
438455d18b
async/await: more improvements to non-send errors
Signed-off-by: David Wood <david@davidtw.co>
2019-12-08 16:29:08 +00:00
Mazdak Farrokhzad
56f830e292
Rollup merge of #66325 - BartMassey:master, r=joshtriplett
Change unused_labels from allow to warn

Fixes #66324, making the unused_labels lint warn instead of allow by default. I'm told @rust-lang/lang will need to review this, and perhaps will want to do a crater run.
2019-12-08 03:39:43 +01:00
Mazdak Farrokhzad
29847a4d44
Rollup merge of #67094 - RalfJung:fields, r=Mark-Simulacrum
get rid of __ in field names

This old work-around should not be needed any more.
2019-12-06 23:27:06 +01:00
Ralf Jung
49697ae38b get rid of __ in field names 2019-12-06 17:28:04 +01:00
Yuki Okushi
931be6c3bc
Rollup merge of #67085 - reitermarkus:addr-parser, r=Mark-Simulacrum
Remove boxed closures in address parser.

Simplify address parser by removing unnecessary boxed closures.

Also relevant for https://github.com/rust-lang/rfcs/pull/2832.
2019-12-07 00:10:08 +09:00
Yuki Okushi
d1397db3f3
Rollup merge of #67049 - tmiasko:io-slice-advance, r=rkruppe
Simplify {IoSlice, IoSliceMut}::advance examples and tests

Remove unnecessary calls to `std::mem::replace` and make variables immutable.
2019-12-07 00:10:04 +09:00
Yuki Okushi
cdbdb686f9
Rollup merge of #66998 - Wind-River:master_up, r=alexcrichton
Modified the testcases for VxWorks
2019-12-07 00:09:57 +09:00
Markus Reiter
79f876495b Remove boxed closures in address parser. 2019-12-06 13:28:02 +01:00
Pieter Agten
f02ffb8b4c Rewrite %rax register before syscall because it is overwritten by the syscall itself 2019-12-06 10:54:53 +01:00
bors
d0126e8ed3 Auto merge of #67080 - JohnTitor:rollup-2t6fm3u, r=JohnTitor
Rollup of 10 pull requests

Successful merges:

 - #66649 (VxWorks: fix issues in accessing environment variables)
 - #66764 (Tweak wording of `collect()` on bad target type)
 - #66900 (Clean up error codes)
 - #66974 ([CI] fix the `! isCI` check in src/ci/run.sh)
 - #66979 (Add long error for E0631 and update ui tests.)
 - #67017 (cleanup long error explanations)
 - #67021 (Fix docs for formatting delegations)
 - #67041 (add ExitStatusExt into prelude)
 - #67065 (Fix fetching arguments on the wasm32-wasi target)
 - #67066 (Update the revision of wasi-libc used in wasm32-wasi)

Failed merges:

r? @ghost
2019-12-06 07:43:56 +00:00
Yuki Okushi
f77b8d355b
Rollup merge of #67065 - alexcrichton:update-wasi, r=sfackler
Fix fetching arguments on the wasm32-wasi target

Fixes an error introduced in #66750 where wasi executables always think
they have zero arguments because one of the vectors returned here
accidentally thought it was length 0.
2019-12-06 15:37:13 +09:00
Yuki Okushi
1bb868c5d6
Rollup merge of #67041 - Wind-River:master_base, r=alexcrichton
add ExitStatusExt into prelude

r? @alexcrichton
2019-12-06 15:37:11 +09:00
Yuki Okushi
617b07e730
Rollup merge of #66649 - Wind-River:master_xyz, r=alexcrichton
VxWorks: fix issues in accessing environment variables
2019-12-06 15:36:56 +09:00
bors
7b482cdf7c Auto merge of #66835 - AviKozokin:master, r=alexcrichton
std:win: avoid WSA_FLAG_NO_INHERIT flag and don't use SetHandleInformation on UWP

This flag is not supported on Windows 7 before SP1, and on windows server 2008 SP2. This breaks Socket creation & duplication.
This was fixed in a previous PR. cc #26658

This PR: cc #60260 reuses this flag to support UWP, and makes an attempt to handle the potential error.
This version still fails to create a socket, as the error returned by WSA on this case is WSAEINVAL (invalid argument). and not WSAEPROTOTYPE.

MSDN page for WSASocketW (that states the platform support for WSA_FLAG_NO_HANDLE_INHERIT): https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-wsasocketw

CC #26543
CC #26518
2019-12-06 04:30:51 +00:00
Alex Crichton
f7789ad5b2 Fix fetching arguments on the wasm32-wasi target
Fixes an error introduced in #66750 where wasi executables always think
they have zero arguments because one of the vectors returned here
accidentally thought it was length 0.
2019-12-05 11:01:26 -08:00
Pieter Agten
6354d48dc5 Processed review comments 2019-12-05 12:24:38 +01:00
Tomasz Miąsko
92bc35f7b6 Simplify {IoSlice, IoSliceMut}::advance examples and tests
Remove unnecessary calls to `std::mem::replace` and make variables immutable.
2019-12-05 00:00:00 +00:00
Pieter Agten
3ee0f48429 Create a separate entry point for the ELF file, instead of using the SGX entry point 2019-12-04 14:20:09 +01:00
Umesh Kalappa
dc1a428d87 Modified the testcases for VxWorks 2019-12-03 11:58:03 -08:00
Mazdak Farrokhzad
1b83dcf2ee
Rollup merge of #66750 - alexcrichton:update-wasi, r=sfackler
Update the `wasi` crate for `wasm32-wasi`

This commit updates the `wasi` crate used by the standard library which
is used to implement most of the functionality of libstd on the
`wasm32-wasi` target. This update comes with a brand new crate structure
in the `wasi` crate which caused quite a few changes for the wasi target
here, but it also comes with a significant change to where the
functionality is coming from.

The WASI specification is organized into "snapshots" and a new snapshot
happened recently, so the WASI APIs themselves have changed since the
previous revision. This had only minor impact on the public facing
surface area of libstd, only changing on `u32` to a `u64` in an unstable
API. The actual source for all of these types and such, however, is now
coming from the `wasi_preview_snapshot1` module instead of the
`wasi_unstable` module like before. This means that any implementors
generating binaries will need to ensure that their embedding environment
handles the `wasi_preview_snapshot1` module.
2019-12-03 19:41:46 +01:00
BaoshanPang
79849eed5d add ExitStatusExt into prelude 2019-12-03 10:16:45 -08:00
Alex Crichton
f3fb1c5e95 Update the wasi crate for wasm32-wasi
This commit updates the `wasi` crate used by the standard library which
is used to implement most of the functionality of libstd on the
`wasm32-wasi` target. This update comes with a brand new crate structure
in the `wasi` crate which caused quite a few changes for the wasi target
here, but it also comes with a significant change to where the
functionality is coming from.

The WASI specification is organized into "snapshots" and a new snapshot
happened recently, so the WASI APIs themselves have changed since the
previous revision. This had only minor impact on the public facing
surface area of libstd, only changing on `u32` to a `u64` in an unstable
API. The actual source for all of these types and such, however, is now
coming from the `wasi_preview_snapshot1` module instead of the
`wasi_unstable` module like before. This means that any implementors
generating binaries will need to ensure that their embedding environment
handles the `wasi_preview_snapshot1` module.
2019-12-03 07:03:06 -08:00
Mazdak Farrokhzad
01345d65c1
Rollup merge of #66904 - DevinR528:keyword-doc, r=Dylan-DPC
Adding docs for keyword match, move

Partial fix of issue #34601.
2019-12-03 11:07:04 +01:00