Commit graph

13421 commits

Author SHA1 Message Date
Vadim Petrochenkov
434152157f Remove lint annotations in specific crates that are already enforced by rustbuild
Remove some random unnecessary lint `allow`s
2019-07-28 18:46:24 +03:00
Kornel
55c07b39ae SystemTime docs: recommend Instant for elapsed time 2019-07-28 11:08:39 +01:00
Mazdak Farrokhzad
b405aa2d03
Rollup merge of #62806 - mati865:clippy, r=TimNN
Fix few Clippy warnings
2019-07-28 11:11:08 +02:00
bors
c798dffac9 Auto merge of #63029 - petrochenkov:rpass, r=Centril
Move run-pass tests to ui

This is the second attempt at doing https://github.com/rust-lang/rust/pull/53994 (which was previously reverted in https://github.com/rust-lang/rust/pull/54530).

The issue with inability to run the test suite in a faster way (https://github.com/rust-lang/rust/issues/54047) that motivated the revert was recently addressed by https://github.com/rust-lang/rust/pull/61755.

r? @Centril
2019-07-27 19:27:36 +00:00
Vadim Petrochenkov
42a317a1cd Remove run-pass test suites 2019-07-27 18:56:17 +03:00
Mazdak Farrokhzad
4ad743c022
Rollup merge of #63013 - nivkner:ffi-safe-slice, r=sfackler
add `repr(transparent)` to `IoSliceMut` where missing

tried using `IoSliceMut` in FFI, got `improper_ctypes` warning.

according to the docs: `IoSliceMut` is  "guaranteed to be ABI compatible with the `iovec` type" so it should be usable in FFI.
`IoSlice` is also `repr(transparent)` for every platform where these types contain `iovec`-like types.
vxworks also has `IoSliceMut` as transparent so its not even consistently one or the other.

no comment about this next to the types or in the PR that introduced the types, so assuming this was just missed.

r? @sfackler
2019-07-27 17:40:49 +02:00
bors
09e3989758 Auto merge of #62086 - petrochenkov:builtout, r=eddyb
Define built-in macros through libcore

This PR defines built-in macros through libcore using a scheme similar to lang items (attribute `#[rustc_builtin_macro]`).
All the macro properties (stability, visibility, etc.) are taken from the source code in libcore, with exception of the expander function transforming input tokens/AST into output tokens/AST, which is still provided by the compiler.

The macros are made available to user code through the standard library prelude (`{core,std}::prelude::v1`), so they are still always in scope.
As a result **built-in macros now have stable absolute addresses in the library**, like `core::prelude::v1::line!()`, this is an insta-stable change.

Right now `prelude::v1` is the only publicly available absolute address for these macros, but eventually they can be moved into more appropriate locations with library team approval (e.g. `Clone` derive -> `core::clone::Clone`).

Now when built-in macros have canonical definitions they can be imported or reexported without issues (https://github.com/rust-lang/rust/issues/61687).

Other changes:
- You can now define a derive macro with a name matching one of the built-in derives (https://github.com/rust-lang/rust/issues/52269). This was an artificial restriction that could be worked around with import renaming anyway.

Known regressions:
- Empty library crate with a crate-level `#![test]` attribute no longer compiles without `--test`. Previously it didn't compile *with* `--test` or with the bin crate type.

Fixes https://github.com/rust-lang/rust/issues/61687
Fixes https://github.com/rust-lang/rust/issues/61804
r? @eddyb
2019-07-26 23:29:02 +00:00
Mazdak Farrokhzad
15398b6b35
Rollup merge of #62980 - alexcrichton:windows-metadata, r=sfackler
std: Add more accessors for `Metadata` on Windows

This commit adds accessors for more fields in `fs::Metadata` on Windows
which weren't previously exposed. There's two sources of `fs::Metadata`
on Windows currently, one from `DirEntry` and one from a file itself.
These two sources of information don't actually have the same set of
fields exposed in their stat information, however. To handle this the
platform-specific accessors of Windows-specific information all return
`Option` to return `None` in the case a metadata comes from a
`DirEntry`, but they're guaranteed to return `Some` if it comes from a
file itself.

This is motivated by some changes in CraneStation/wasi-common#42, and
I'm curious how others feel about this platform-specific functionality!
2019-07-26 18:56:58 +02:00
Mazdak Farrokhzad
ceea0be207
Rollup merge of #62862 - BaoshanPang:cleanup, r=alexcrichton
code cleanup

remove all codes that are not used by vxWorks
2019-07-26 18:56:47 +02:00
Niv Kaminer
d7b211025e add repr(transparent) to IoSliceMut where missing 2019-07-26 18:56:47 +03:00
Alex Crichton
c69f367baf std: Add more accessors for Metadata on Windows
This commit adds accessors for more fields in `fs::Metadata` on Windows
which weren't previously exposed. There's two sources of `fs::Metadata`
on Windows currently, one from `DirEntry` and one from a file itself.
These two sources of information don't actually have the same set of
fields exposed in their stat information, however. To handle this the
platform-specific accessors of Windows-specific information all return
`Option` to return `None` in the case a metadata comes from a
`DirEntry`, but they're guaranteed to return `Some` if it comes from a
file itself.

This is motivated by some changes in CraneStation/wasi-common#42, and
I'm curious how others feel about this platform-specific functionality!
2019-07-26 07:35:59 -07:00
Vadim Petrochenkov
8eaf17bca2 Introduce built-in macros through libcore 2019-07-26 13:09:54 +03:00
bors
4268e7ee22 Auto merge of #60260 - videolabs:rust_uwp2, r=alexcrichton
Add support for UWP targets

Hi,

This pull request aims at adding support for UWP (Universal Windows Apps) platform.
A few notes:
- This requires a very recent mingw-w64 version (containing this commit and the previous related ones: e8c433c871 (diff-eefdfbfe9cec5f4ebab88c9a64d423a9))
- This was tested using LLVM/clang rather than gcc, and so far it assumes that LLVM/clang will be the native compiler. This is mostly due to the fact that the support for exceptions/stack unwinding for UWP got much more attention in libunwind
- The "uwp" part of the target needs support for it in the `cc-rs` & `backtrace-rs` crates. I'll create the MR there right after I submit this one and will link everything together, but I'm not sure what's the correct way of dealing with external dependencies in the context of rust
- Enabling import libraries and copying them across stages requires a change in cargo, for which I'll open a MR right after I submit this one as well
- The i686 stack unwinding is unsupported for now, because LLVM assumes SjLj, while rust seems to assume SEH will be used. I'm unsure how to fix this

Also, this is my first encounter with rust, so please bear with my code, it might not feel so idiomatic or even correct :)

I'm pretty sure there's a way of doing things in a cleaner way when it comes to win/c.rs, maybe having a UWP & desktop specific modules, and import those conditionally? It doesn't feel right to sprinkle `#[cfg(...)]` all over the place

Off course, I'll gladly update anything you see fit (to the extent of my abilities/knowledge :) )!

Thanks,
2019-07-26 02:18:12 +00:00
bors
18630677cf Auto merge of #62990 - Centril:rollup-k9n0hvs, r=Centril
Rollup of 15 pull requests

Successful merges:

 - #60066 (Stabilize the type_name intrinsic in core::any)
 - #60938 (rustdoc: make #[doc(include)] relative to the containing file)
 - #61884 (Stablize Euclidean Modulo (feature euclidean_division))
 - #61890 (Fix some sanity checks)
 - #62528 (Add joining slices of slices with a slice separator, not just a single item)
 - #62707 (Add tests for overlapping explicitly dropped locals in generators)
 - #62735 (Turn `#[global_allocator]` into a regular attribute macro)
 - #62822 (Improve some pointer-related documentation)
 - #62887 (Make the parser TokenStream more resilient after mismatched delimiter recovery)
 - #62921 (Add method disambiguation help for trait implementation)
 - #62930 (Add test for #51559)
 - #62942 (Use match ergonomics in Condvar documentation)
 - #62977 (Fix inconsistent highlight blocks.)
 - #62978 (Remove `cfg(bootstrap)` code for array implementations)
 - #62981 (Add note suggesting to borrow a String argument to find)

Failed merges:

 - #62964 (clarify and unify some type test names)

r? @ghost
2019-07-25 22:34:23 +00:00
Mazdak Farrokhzad
42d924dd3e
Rollup merge of #62942 - KevinWMatthews:condvar_docs_match_ergo, r=sfackler
Use match ergonomics in Condvar documentation

Documentation was written before match ergonomics was merged. See #62857.

In short, replaces

```rust
let &(ref lock, ref cvar) = &*pair;
```

with

```rust
let (lock, cvar) = &*pair
```

in the docs of `std::sync::Condvar`.
2019-07-25 23:21:07 +02:00
Mazdak Farrokhzad
a534c37b37
Rollup merge of #62822 - RalfJung:pointers, r=Centril
Improve some pointer-related documentation
2019-07-25 23:21:01 +02:00
Mazdak Farrokhzad
a57c4f6297
Rollup merge of #61884 - crlf0710:stablize_euc, r=dtolnay,Centril
Stablize Euclidean Modulo (feature euclidean_division)

Closes #49048
2019-07-25 23:20:53 +02:00
Mazdak Farrokhzad
845e146d04
Rollup merge of #60938 - jonas-schievink:doc-include-paths, r=petrochenkov
rustdoc: make #[doc(include)] relative to the containing file

This matches the behavior of other in-source paths like `#[path]` and the `include_X!` macros.

Fixes https://github.com/rust-lang/rust/pull/58373#issuecomment-462349380
Also addresses https://github.com/rust-lang/rust/issues/44732#issuecomment-467660239

cc #44732

This is still missing a stdsimd change (42ed30e0b5), so CI will currently fail. I'll land that change once I get initial feedback for this PR.
2019-07-25 23:20:51 +02:00
Hugo Beauzée-Luyssen
e88a4cee52 std: win: Disable stack overflow handling on UWP
The required functions are not available, so hope for the best
2019-07-25 21:30:08 +02:00
Hugo Beauzée-Luyssen
668f0d3495 std: win: Don't use console APIs on UWP 2019-07-25 21:30:08 +02:00
Hugo Beauzée-Luyssen
4c05073d1d std: win: Don't use GetFileInformationByHandle on UWP 2019-07-25 21:30:08 +02:00
Hugo Beauzée-Luyssen
a24be59b46 std: win: Don't use GetUserProfileDirectoryW on UWP 2019-07-25 21:30:08 +02:00
Hugo Beauzée-Luyssen
ef267284e8 std: win: Don't expose link() on UWP
Or rather expose it, but always return an error
2019-07-25 21:30:08 +02:00
Hugo Beauzée-Luyssen
a713a0399a std: win: Don't use SetHandleInformation on UWP
Attempt to create sockets with the WSA_FLAG_NO_HANDLE_INHERIT flag, and
handle the potential error gracefully (as the flag isn't support on
Windows 7 before SP1)
2019-07-25 21:30:08 +02:00
Hugo Beauzée-Luyssen
9407ed759f std: rand: Use BCrypt on UWP
As Rtl* functions are not allowed there
2019-07-25 21:30:08 +02:00
Hugo Beauzée-Luyssen
3becaf4b9b std: Link UWP with allowed libraries only 2019-07-25 21:30:08 +02:00
Hugo Beauzée-Luyssen
e34bcdbc57 libstd: windows: compat: Allow use of attributes 2019-07-25 21:30:08 +02:00
bors
890881f8f4 Auto merge of #60340 - mgeier:cap-vs-capacity, r=alexcrichton
Rename .cap() methods to .capacity()

As mentioned in #60316, there are a few `.cap()` methods, which seem out-of-place because such methods are called `.capacity()` in the rest of the code.

This PR renames them to `.capacity()` but leaves `RawVec::cap()` in there for backwards compatibility.

I didn't try to mark the old version as "deprecated", because I guess this would cause too much noise.
2019-07-25 18:45:42 +00:00
Alex Crichton
dc50a633f3 std: Use native #[thread_local] TLS on wasm
This commit moves `thread_local!` on WebAssembly targets to using the
`#[thread_local]` attribute in LLVM. This was recently implemented
upstream and is [in the process of being documented][dox]. This change
only takes affect if modules are compiled with `+atomics` which is
currently unstable and a pretty esoteric method of compiling wasm
artifacts.

This "new power" of the wasm toolchain means that the old
`wasm-bindgen-threads` feature of the standard library can be removed
since it should now be possible to create a fully functioning threaded
wasm module without intrusively dealing with libstd symbols or
intrinsics. Yay!

[dox]: https://github.com/WebAssembly/tool-conventions/pull/116
2019-07-25 11:17:07 -07:00
Mazdak Farrokhzad
b1a866012d
Rollup merge of #62814 - androm3da:hexagon_19jul_2019, r=alexcrichton
add support for hexagon-unknown-linux-musl
2019-07-25 01:05:00 +02:00
Kevin W Matthews
c0918183a7 Use match ergonomics in Condvar documentation 2019-07-24 09:36:49 -07:00
Nathan
b70f217262 Use raw pointers in std::sys::cloudabi when passing MaybeUninit values 2019-07-23 13:51:28 -04:00
Nathan
0ac6afafa6 Cleanup std::sys::cloudabi 2019-07-23 13:49:37 -04:00
Ralf Jung
65cf10d902 word things more like we usually do 2019-07-23 17:51:52 +02:00
Ralf Jung
dd5045ed63
Apply suggestions from code review
Co-Authored-By: gnzlbg <gnzlbg@users.noreply.github.com>
2019-07-23 17:48:01 +02:00
Jonas Schievink
8ccf52c1c6 stage0 -> bootstrap 2019-07-23 17:17:31 +02:00
Jonas Schievink
138e08ccf6 Make #[doc(include)] paths behave like other paths
This makes them relative to the containing file instead of the crate
root
2019-07-23 17:17:31 +02:00
Nathan
82dd54baf3 Modify CloudABI ReentrantMutex to use MaybeUninit
Remove uses of mem::uninitialized, which is now deprecated
2019-07-23 10:14:46 -04:00
Nathan
e1e0df8a49 Remove uses of mem::uninitialized in std::sys::cloudabi
Usages still appear in cloudabi tests and in the reentrant mutex implementation
2019-07-22 20:42:08 -04:00
Brian Cain
4b339688b5 add support for hexagon-unknown-linux-musl 2019-07-22 09:44:58 -05:00
Ralf Jung
91967816c3 account for non-drop-glue types 2019-07-22 15:32:58 +02:00
Mazdak Farrokhzad
b94e59cc41
Rollup merge of #62845 - RalfJung:read, r=rkruppe
read: fix doc comment

No idea how that happened...
2019-07-22 15:32:23 +02:00
Mazdak Farrokhzad
002f604bc9
Rollup merge of #62787 - Indy2222:master, r=Mark-Simulacrum
Fix typo in src/libstd/net/udp.rs doc comment

Affect is usually used as a verb, effect as a verb.
2019-07-22 15:32:14 +02:00
Mazdak Farrokhzad
1d7faafe47
Rollup merge of #62746 - RalfJung:deprecated, r=KodrAus
do not use assume_init in std::io

Cc https://github.com/rust-lang/rust/issues/62397
2019-07-22 15:32:12 +02:00
Mazdak Farrokhzad
0de90c67dc
Rollup merge of #62709 - nhynes:test-maplike-fromiter, r=cuviper
Test that maplike FromIter satisfies uniqueness

This PR adds a simple assertion to the `HashMap` and `HashSet` tests to ensure that uniqueness is satisfied when `FromIter`ing. This is useful for people who want to test their custom type against the Map/Set interfaces since they'll copy the tests wholesale but possibly miss this bug (where _they_ = _me_).
2019-07-22 15:32:09 +02:00
Ralf Jung
a7b9246540 weasle, weasle 2019-07-22 10:33:11 +02:00
Baoshan Pang
279c399599 code cleanup 2019-07-21 18:29:24 -07:00
Ralf Jung
8dc5635e13 read: fix doc comment 2019-07-21 12:47:34 +02:00
Ralf Jung
40812224ca apply feedback 2019-07-21 12:13:57 +02:00
Ralf Jung
f502bf78cb sync with nomicon: raw ptr must be non-dangling and aligned every time it is dereferenced 2019-07-21 12:08:19 +02:00