Commit Graph

13753 Commits

Author SHA1 Message Date
Jeremy Fitzhardinge 232022ff17 Fix up Command Debug output when arg0 is specified.
PR https://github.com/rust-lang/rust/pull/66512 added the ability to set argv[0] on
Command. As a side effect, it changed the Debug output to print both the program and
argv[0], which in practice results in stuttery output ("echo echo foo").

This PR reverts the behaviour to the the old one, so that the command is only printed
once - unless arg0 has been set. In that case it emits "[command] arg0 arg1 ...".
2019-12-16 14:44:16 -08: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
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
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
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
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
avikozokin fa8b54901f added correct error code for WSASocketW failure fallback 2019-12-02 20:12:51 +02:00
Mazdak Farrokhzad a279ebbc91 Rollup merge of #66346 - linkmauve:try-in-docstring, r=Dylan-DPC
Replace .unwrap() with ? in std::os::unix::net

As people like to copy examples, this gives them good habits.
2019-12-02 04:08:55 +01:00
Devin R e638f7c1ab add grammer fixes 2019-12-01 19:47:54 -05:00
Devin R 7c3befc7f9 add ";" for let = match 2019-11-30 18:02:19 -05:00
Devin R c69be483d6 fix doc compile fail 2019-11-30 17:32:49 -05:00
Mazdak Farrokhzad 123406cac7 Rollup merge of #66705 - pitdicker:atomic_mut_ptr, r=KodrAus
Atomic as_mut_ptr

I encountered the following pattern a few times: In Rust we use some atomic type like `AtomicI32`, and an FFI interface exposes this as `*mut i32` (or some similar `libc` type).

It was not obvious to me if a just transmuting a pointer to the atomic was acceptable, or if this should use a cast that goes through an `UnsafeCell`. See https://github.com/rust-lang/rust/issues/66136#issuecomment-557802477

Transmuting the pointer directly:
```rust
let atomic = AtomicI32::new(1);
let ptr = &atomic as *const AtomicI32 as *mut i32;
unsafe {
    ffi(ptr);
}
```

A dance with `UnsafeCell`:
```rust
let atomic = AtomicI32::new(1);
unsafe {
    let ptr = (&*(&atomic as *const AtomicI32 as *const UnsafeCell<i32>)).get();
    ffi(ptr);
}
```

Maybe in the end both ways could be valid. But why not expose a direct method to get a pointer from the standard library?

An `as_mut_ptr` method on atomics can be safe, because only the use of the resulting pointer is where things can get unsafe. I documented its use for FFI, and "Doing non-atomic reads and writes on the resulting integer can be a data race."

The standard library could make use this method in a few places in the WASM module.

cc @RalfJung as you answered my original question.
2019-11-30 16:56:47 +01:00
Devin R d5a4c6253d remove trailing whitespace 2019-11-30 10:24:04 -05:00
Devin R 44f3bee17f add docs for move and match keywords 2019-11-30 09:05:46 -05:00
Devin R b67d6c7e12 add example to move 2019-11-30 08:57:33 -05:00
Devin R 71abce1e5d document match and move keywords 2019-11-30 08:54:39 -05:00
bors d8bdb3fdcb Auto merge of #66887 - dtolnay:rollup-uxowp8d, r=Centril
Rollup of 4 pull requests

Successful merges:

 - #66818 (Format libstd/os with rustfmt)
 - #66819 (Format libstd/sys with rustfmt)
 - #66820 (Format libstd with rustfmt)
 - #66847 (Allow any identifier as format arg name)

Failed merges:

r? @ghost
2019-11-30 12:42:44 +00:00
David Tolnay 27710d28b7 Rollup merge of #66820 - dtolnay:fmt3, r=Dylan-DPC
Format libstd with rustfmt

(Same strategy as #66691.)

This commit applies rustfmt with rust-lang/rust's default settings to files in src/libstd *that are not involved in any currently open PR* to minimize merge conflicts, and are not part of libstd/os (#66818) or libstd/sys (#66819). The list of files involved in open PRs was determined by querying GitHub's GraphQL API [with this script](https://gist.github.com/dtolnay/aa9c34993dc051a4f344d1b10e4487e8).

With the list of files from the script in outstanding_files, the relevant commands were:

    $ find src/libstd -name '*.rs' \
        | xargs rustfmt --edition=2018 --unstable-features --skip-children
    $ rg libstd outstanding_files | xargs git checkout --

Repeating this process several months apart should get us coverage of most of the rest of libstd.

To confirm no funny business:

    $ git checkout $THIS_COMMIT^
    $ git show --pretty= --name-only $THIS_COMMIT \
        | xargs rustfmt --edition=2018 --unstable-features --skip-children
    $ git diff $THIS_COMMIT  # there should be no difference
2019-11-29 18:46:08 -08:00
David Tolnay 77b5a05026 Rollup merge of #66819 - dtolnay:fmt2, r=kennytm
Format libstd/sys with rustfmt

(Same strategy as #66691.)

This commit applies rustfmt with rust-lang/rust's default settings to files in src/libstd/sys *that are not involved in any currently open PR* to minimize merge conflicts. The list of files involved in open PRs was determined by querying GitHub's GraphQL API [with this script](https://gist.github.com/dtolnay/aa9c34993dc051a4f344d1b10e4487e8).

With the list of files from the script in outstanding_files, the relevant commands were:

    $ find src/libstd/sys -name '*.rs' \
        | xargs rustfmt --edition=2018 --unstable-features --skip-children
    $ rg libstd/sys outstanding_files | xargs git checkout --

Repeating this process several months apart should get us coverage of most of the rest of the files.

To confirm no funny business:

    $ git checkout $THIS_COMMIT^
    $ git show --pretty= --name-only $THIS_COMMIT \
        | xargs rustfmt --edition=2018 --unstable-features --skip-children
    $ git diff $THIS_COMMIT  # there should be no difference
2019-11-29 18:46:06 -08:00
David Tolnay 4436c9d354 Format libstd with rustfmt
This commit applies rustfmt with rust-lang/rust's default settings to
files in src/libstd *that are not involved in any currently open PR* to
minimize merge conflicts. THe list of files involved in open PRs was
determined by querying GitHub's GraphQL API with this script:
https://gist.github.com/dtolnay/aa9c34993dc051a4f344d1b10e4487e8

With the list of files from the script in outstanding_files, the
relevant commands were:

    $ find src/libstd -name '*.rs' \
        | xargs rustfmt --edition=2018 --unstable-features --skip-children
    $ rg libstd outstanding_files | xargs git checkout --

Repeating this process several months apart should get us coverage of
most of the rest of libstd.

To confirm no funny business:

    $ git checkout $THIS_COMMIT^
    $ git show --pretty= --name-only $THIS_COMMIT \
        | xargs rustfmt --edition=2018 --unstable-features --skip-children
    $ git diff $THIS_COMMIT  # there should be no difference
2019-11-29 18:43:27 -08:00
David Tolnay c34fbfaad3 Format libstd/sys with rustfmt
This commit applies rustfmt with rust-lang/rust's default settings to
files in src/libstd/sys *that are not involved in any currently open PR*
to minimize merge conflicts. THe list of files involved in open PRs was
determined by querying GitHub's GraphQL API with this script:
https://gist.github.com/dtolnay/aa9c34993dc051a4f344d1b10e4487e8

With the list of files from the script in outstanding_files, the
relevant commands were:

    $ find src/libstd/sys -name '*.rs' \
        | xargs rustfmt --edition=2018 --unstable-features --skip-children
    $ rg libstd/sys outstanding_files | xargs git checkout --

Repeating this process several months apart should get us coverage of
most of the rest of the files.

To confirm no funny business:

    $ git checkout $THIS_COMMIT^
    $ git show --pretty= --name-only $THIS_COMMIT \
        | xargs rustfmt --edition=2018 --unstable-features --skip-children
    $ git diff $THIS_COMMIT  # there should be no difference
2019-11-29 18:37:58 -08:00
David Tolnay 60091ee826 Format libstd/os with rustfmt
This commit applies rustfmt with rust-lang/rust's default settings to
files in src/libstd/os *that are not involved in any currently open PR*
to minimize merge conflicts. THe list of files involved in open PRs was
determined by querying GitHub's GraphQL API with this script:
https://gist.github.com/dtolnay/aa9c34993dc051a4f344d1b10e4487e8

With the list of files from the script in outstanding_files, the
relevant commands were:

    $ find src/libstd/os -name '*.rs' \
        | xargs rustfmt --edition=2018 --unstable-features --skip-children
    $ rg libstd/os outstanding_files | xargs git checkout --

Repeating this process several months apart should get us coverage of
most of the rest of the files.

To confirm no funny business:

    $ git checkout $THIS_COMMIT^
    $ git show --pretty= --name-only $THIS_COMMIT \
        | xargs rustfmt --edition=2018 --unstable-features --skip-children
    $ git diff $THIS_COMMIT  # there should be no difference
2019-11-29 18:32:46 -08:00
bors 8f1bbd69e1 Auto merge of #66873 - RalfJung:miri-args, r=dtolnay
really_init cmdline args on Miri

r? @joshtriplett

Closes #66862.
2019-11-30 02:12:19 +00:00
Ralf Jung 56203be06f Rollup merge of #66766 - RalfJung:panic-comments, r=SimonSapin
Panic machinery comments and tweaks

This is mostly more comments, but I also renamed some things:
* `BoxMeUp::box_me_up` is not terribly descriptive, and since this is a "take"-style method (the argument is `&mut self` but the return type is fully owned, even though you can't tell from the type) I chose a name involving "take".
* `continue_panic_fmt` was very confusing as it was entirely unclear what was being continued -- for some time I thought "continue" might be the same as "resume" for a panic, but that's something entirely different. So I renamed this to `begin_panic_handler`, matching the `begin_panic*` theme of the other entry points.

r? @Dylan-DPC @SimonSapin
2019-11-29 22:57:33 +01:00
Ralf Jung f621c252ec really_init cmdline args on Miri 2019-11-29 20:07:55 +01:00
bors 3907d59bcf Auto merge of #66547 - leo60228:procfs-fallback, r=dtolnay
Fallback to .init_array when no arguments are available on glibc Linux

Linux is one of the only platforms where `std::env::args` doesn't work in a cdylib.
2019-11-29 05:04:51 +00:00
Brian Wignall 16fabd8efd Fix spelling typos 2019-11-26 22:19:54 -05:00
Ralf Jung babe9fcbc1 rename update_count_then_panic -> rust_panic_without_hook 2019-11-26 10:23:15 +01:00
Ralf Jung 4a19ef938c explain why __rust_start_panic does not take a Box 2019-11-26 09:29:39 +01:00
Ralf Jung 61486f4de3 expand comment 2019-11-26 09:27:11 +01:00
Ralf Jung 3e96ca2bf7 abort on BoxMeUp misuse 2019-11-26 09:24:39 +01:00
Ralf Jung 3a8e1b63cf panic_handler -> begin_panic_handler (and more comments) 2019-11-26 08:21:51 +01:00
Ralf Jung 3c48579551 more panicking comments 2019-11-25 23:55:54 +01:00
Pietro Albini 30599d765b Rollup merge of #66694 - RalfJung:panic-comments, r=Dylan-DPC
Add some comments to panic runtime
2019-11-25 15:05:26 +01:00