Commit graph

12588 commits

Author SHA1 Message Date
kennytm
68f370ce05
Rollup merge of #57177 - varkor:fix-duration_as_u128-warning, r=estebank
Fix warning when compiling rustc
2018-12-29 18:50:32 +08:00
kennytm
97e591ae0c
Rollup merge of #57153 - estebank:doc, r=cramertj
Small: Fix span in char documentation
2018-12-29 18:50:26 +08:00
varkor
04c1a92fa0 Fix warning when compiling rustc 2018-12-28 19:28:57 +00:00
bors
48742c68d9 Auto merge of #57137 - cramertj:unpin-prelude, r=SimonSapin
Add Unpin to std prelude, not just core

r? @alexcrichton
2018-12-28 10:54:16 +00:00
bors
ee49bf8964 Auto merge of #55519 - fhartwig:hashmap-index-example, r=Centril
Add example of using the indexing operator to HashMap docs

Fixes #52575
2018-12-28 06:52:15 +00:00
Esteban Küber
93d8343b83 Fix span in char documentation 2018-12-27 11:36:05 -08:00
bors
d2986970ad Auto merge of #57119 - jethrogb:jb/sgx-os-mod2, r=joshtriplett
Add `io` and `arch` modules to `std::os::fortanix_sgx`

This PR adds two more (unstable) modules to `std::os::fortanix_sgx` for the `x86_64-fortanix-unknown-sgx` target.

### io
`io` allows conversion between raw file descriptors and Rust types, similar to `std::os::unix::io`.

### arch
`arch` exposes the `ENCLU[EREPORT]` and `ENCLU[EGETKEY]` instructions. The current functions are very likely not going to be the final form of these functions (see also https://github.com/fortanix/rust-sgx/issues/15), but this should be sufficient to enable experimentation in libraries. I tried using the actual types (from the [`sgx-isa` crate](https://crates.io/crates/sgx-isa)) instead of byte arrays, but that would make `std` dependent on the `bitflags` crate which I didn't want to do at this time.
2018-12-27 09:21:06 +00:00
Taylor Cramer
11f4d3e40e Add Unpin to std prelude, not just core 2018-12-26 12:20:38 -08:00
Sunjay Varma
1e82618613 Stabilize duration_as_u128 2018-12-26 12:12:06 -07:00
Mark Rousskov
2a663555dd Remove licenses 2018-12-25 21:08:33 -07:00
Jethro Beekman
be565615db Add io and arch modules to std::os::fortanix_sgx 2018-12-25 13:11:04 +05:30
Jethro Beekman
505167d7c5 Fix build on latest git master 2018-12-25 13:10:16 +05:30
bors
e57ab2699d Auto merge of #56926 - alexcrichton:update-stdsimd, r=TimNN
Update the stdsimd submodule

This brings in a few updates:

* Update wasm intrinsic naming for atomics
* Update and reimplement most simd128 wasm intrinsics
* Other misc improvements here and there, including a small start to
  AVX-512 intrinsics
2018-12-25 03:04:14 +00:00
Alex Crichton
8d500572fa std: Use backtrace-sys from crates.io
This commit switches the standard library to using the `backtrace-sys`
crate from crates.io instead of duplicating the logic here in the Rust
repositor with the `backtrace-sys`'s crate's logic.

Eventually this will hopefully be a good step towards using the
`backtrace` crate directly from crates.io itself, but we're not quite
there yet! Hopefully this is a small incremental first step we can take.
2018-12-24 08:32:57 -08:00
Mazdak Farrokhzad
05f3b3cbce
Rollup merge of #56978 - jethrogb:jb/sgx-os-mod, r=joshtriplett
Add `std::os::fortanix_sgx` module

This PR adds the `std::os::sgx` module to expose platform-specific APIs behind the `sgx_platform` feature gate.

Depends on https://github.com/rust-lang/rust/pull/56972 to be able to meaningfully build `std::os` documentation for non-standard targets.

Tracking issue: https://github.com/rust-lang/rust/issues/56975
2018-12-24 13:29:30 +01:00
Mazdak Farrokhzad
975a7f01f0
Rollup merge of #57067 - Centril:stabilize-min_const_unsafe_fn, r=oli-obk
Stabilize min_const_unsafe_fn in 1.33

Fixes #55607

r? @oli-obk
2018-12-23 23:09:14 +01:00
Mazdak Farrokhzad
93af1e7369
Rollup merge of #56939 - cramertj:pin-stabilization, r=alexcrichton
Pin stabilization

This implements the changes suggested in https://github.com/rust-lang/rust/issues/55766#issue-378417538 and stabilizes the `pin` feature. @alexcrichton also listed several "blockers" in that issue, but then in [this comment](https://github.com/rust-lang/rust/issues/55766#issuecomment-445074980) mentioned that they're more "TODO items":
>  In that vein I think it's fine for a stabilization PR to be posted at any time now with FCP lapsed for a week or so now. The final points about self/pin/pinned can be briefly discussed there (if even necessary, they could be left as the proposal above).

Let's settle these last bits here and get this thing stabilized! :)

r? @alexcrichton
cc @withoutboats
2018-12-23 23:09:04 +01:00
Mazdak Farrokhzad
b42a3acaec stabilize min_const_unsafe_fn in 1.33. 2018-12-23 10:29:38 +01:00
kennytm
bba398ee2c
Rollup merge of #57050 - RyanMarcus:master, r=zackmdavis
Fixed typo in HashMap documentation

Previously "with a custom type as key", now "with a custom key type"
2018-12-23 02:12:25 +08:00
kennytm
e4430e0340
Rollup merge of #57040 - otavio:topic/adjust-path_from_str-feature-gate, r=Centril
Fix feature gate to point to 1.32.0 for `path_from_str`

When the feature has been added back (#55148) the feature gate has not
been adjusted accordingly. We have it enabled for 1.32.0, currently in
Beta, so adjust it.

Refs: #44431.

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
2018-12-23 02:12:22 +08:00
kennytm
5e727a43cb
Rollup merge of #57034 - Zoxc:query-perf8, r=michaelwoerister
Inline tweaks

r? @michaelwoerister
2018-12-23 02:12:20 +08:00
kennytm
10d949aa3e
Rollup merge of #56979 - VardhanThigle:Vardhan/rust-sgx-unwind-support, r=alexcrichton
Adding unwinding support for x86_64_fortanix_unknown_sgx target.

Unwinding support is provided by our port of LLVM's libunwind which is available from https://github.com/fortanix/libunwind/tree/release_50.

libunwind requires support for rwlock and printing to stderr, which is only provided by `std` for this target. This poses two problems: 1) how to expose the `std` functionality to C and 2) dependency inversion.

### Exposing `std`

For exposing the functionality we chose to expose the following symbols:

* __rust_rwlock_rdlock
* __rust_rwlock_wrlock
* __rust_rwlock_unlock
* __rust_print_err
* __rust_abort

Also, the following are needed from `alloc`:

* __rust_alloc
* __rust_dealloc

#### Rust RWLock in C

In `libunwind`, RWLock is initialized as a templated static variable:

```c
pthread_rwlock_t DwarfFDECache<A>::_lock = PTHREAD_RWLOCK_INITIALIZER;
```

I don't know of a good way to use the Rust sys::rwlock::RWLock type and initializer there. We could have a static global variable in Rust, but that doesn't work with the templating. The variable needs to be initialized statically, since this target doesn't support the .init section. Currently, I just used a byte array and standard C array initialization. The mapping between this C type and the Rust type needs to be manually maintained. There is a compile-time check and a unit test to make sure the Rust versions of these C definitions match the actual Rust type. If any reviewer knows of a better solution, please do tell.

### Dependency inversion issue

`std` depends on `panic_unwind` which depends on `libunwind`, and `libunwind` depends on `std`. This is not normally supported by Rust's linking system. Therefore we use raw C exports from `std` *and* `libunwind.a` is linked last in the target `post_link_objects` instead of being built as part of the Rust `libunwind`. Currently, all C exports are defined in `src/libstd/sys/sgx/rwlock.rs` to overcome LTO issues. Only the `__rust_rwlock_*` definitions *need* to live there for privacy reasons. Once again, if any reviewer knows of a better solution, please do tell.

r? @alexcrichton
2018-12-23 02:12:07 +08:00
kennytm
14ebca5c19
Rollup merge of #56941 - euclio:deny-libstd-resolution-failures, r=QuietMisdreavus
deny intra-doc link resolution failures in libstd

Fixes #56693.

Until we land a fix for the underlying issue (#56922), we can at least fix the failures in libstd so they don't propagate to downstream crates.
2018-12-23 02:11:59 +08:00
kennytm
314e61f37e
Rollup merge of #56936 - ubsan:euclidean_div_rem, r=dtolnay
rename div_euc -> div_euclid, and mod_euc -> rem_euclid

logic is written up in #49048

Also, update the documentation slightly.

cc @alexcrichton @clarcharr @varkor
2018-12-23 02:11:56 +08:00
Taylor Cramer
610bcaf6f3 Stabilize Pin 2018-12-21 20:42:50 -08:00
Taylor Cramer
20d694a95f Update Pin API to match the one proposed for stabilization
Remove pin::Unpin reexport and add Unpin to the prelude.
Change Pin associated functions to methods.
Rename get_mut_unchecked_ to get_unchecked_mut
Remove impl Unpin for Pin
Mark Pin repr(transparent)
2018-12-21 20:41:24 -08:00
bors
e40548bc43 Auto merge of #56779 - adrian-budau:master, r=alexcrichton
On musl targets assume certain symbols exist (like pipe2 and accept4).

This fixes #56675.

I don't know if this is the best solution, or if I should also add some tests so I'm waiting for some feedback.

Thanks!
2018-12-21 20:08:11 +00:00
Ryan Marcus
51e4c1f320
Fixed typo in HashMap documentation
Previously "with a custom type as key", now "with a custom key type"
2018-12-21 14:50:25 -05:00
Adrian Budau
bf172c532a Properly report ENOSYS by modifying errno 2018-12-21 15:53:37 +02:00
Otavio Salvador
8c40aedb8f Fix feature gate to point to 1.32.0 for path_from_str
When the feature has been added back (#55148) the feature gate has not
been adjusted accordingly. We have it enabled for 1.32.0, currently in
Beta, so adjust it.

Refs: #44431.

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
2018-12-21 11:33:59 -02:00
John Kåre Alsaker
4f30a24e42 Inline tweaks 2018-12-21 12:09:43 +01:00
bors
01c6ea2f37 Auto merge of #56813 - oli-obk:main_🧶, r=pnkfelix
Always run rustc in a thread

cc @ishitatsuyuki @eddyb

r? @pnkfelix

[Previously](https://github.com/rust-lang/rust/pull/48575) we moved to only producing threads when absolutely necessary. Even before we opted to only create threads in some cases, which [is unsound](https://github.com/rust-lang/rust/pull/48575#issuecomment-380635967) due to the way we use thread local storage.
2018-12-21 10:46:11 +00:00
bors
3f7c718926 Auto merge of #54125 - varkor:less-conservative-uninhabitedness-check, r=nikomatsakis
Less conservative uninhabitedness check

Extends the uninhabitedness check to structs, non-empty enums, tuples and arrays.

Pulled out of #47291 and #50262.

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

r? @nikomatsakis
2018-12-20 22:04:21 +00:00
Adrian Budau
da47bd3ae0 Fix typo in comment 2018-12-20 13:29:04 +02:00
Adrian Budau
cc53f4e9f4 Fix pipe2 and accept4 on static linked executables on linux (like musl). 2018-12-20 13:22:31 +02:00
Jethro Beekman
dcb5db80b2 Add std::os::fortanix_sgx module 2018-12-20 10:09:52 +05:30
Vardhan Thigle
885cf2a2af Adding unwinding support for x86_64_fortanix_unknown_sgx target. 2018-12-19 18:31:58 +05:30
Pietro Albini
cf9fd6074d
Rollup merge of #56363 - Lucretiel:patch-3, r=shepmaster
Defactored Bytes::read

Removed unneeded refactoring of read_one_byte, which removed the unneeded dynamic dispatch (`dyn Read`) used by that function.

This function is only used in one place in the entire Rust codebase; there doesn't seem to be a reason for it to exist (and there especially doesn't seem to be a reason for it to use dynamic dispatch)
2018-12-19 11:47:04 +01:00
Jethro Beekman
38f5c97c33 Revert "Remove some dead code from sgx"
This reverts commit 134661917b.
2018-12-19 12:16:04 +05:30
Jethro Beekman
4358be46c7 SGX target: fix docs build 2018-12-19 12:02:40 +05:30
Jethro Beekman
f72f28fae2 Show platform-specific modules in std::os when building those platforms 2018-12-19 11:53:40 +05:30
Andy Russell
82e55c1bdc
deny intra-doc link resolution failures in libstd 2018-12-17 21:10:24 -05:00
Nathan West
a1790e8c20
Reordered match arms 2018-12-17 17:43:52 -08:00
Nicole Mazzuca
e36b62873f rename div_euc -> div_euclid, and mod_euc -> rem_euclid
logic is written up in https://github.com/rust-lang/rust/issues/49048

Also, update the documentation slightly
2018-12-17 16:41:48 -08:00
Alex Crichton
5e5823c67b Update the stdsimd submodule
This brings in a few updates:

* Update wasm intrinsic naming for atomics
* Update and reimplement most simd128 wasm intrinsics
* Other misc improvements here and there, including a small start to
  AVX-512 intrinsics
2018-12-17 13:40:21 -08:00
Mazdak Farrokhzad
6574d83dcf
Rollup merge of #56858 - tbu-:pr_doc_canonicalize, r=shepmaster
Fix doc of `std::fs::canonicalize`

Point out that the final component of the path name might be a filename
(and not a directory name). Previously, the doc said that all components
of the path must be directory names, when it actually only ment all but
the final one.

Fixes #54056.
2018-12-16 14:08:40 +01:00
Mazdak Farrokhzad
cee0bddd0a
Rollup merge of #56857 - tbu-:pr_doc_abssub, r=zackmdavis
Fix a small mistake regarding NaNs in a deprecation message

`max` on floats returns the other argument if one of them is NaN, which
would be `0.0` in this case. This is unlike the C functions `fdim` and
`fdimf` which return NaN if either of their arguments is NaN.

https://doc.rust-lang.org/1.31.0/std/primitive.f32.html#method.max
https://en.cppreference.com/w/c/numeric/math/fdim
2018-12-16 14:08:39 +01:00
Mazdak Farrokhzad
cbb5f13288
Rollup merge of #56832 - alexcrichton:external-demangle, r=Mark-Simulacrum
std: Use `rustc_demangle` from crates.io

No more need to duplicate the demangling routine between crates.io and
the standard library, we can use the exact same one!
2018-12-16 14:08:33 +01:00
Mazdak Farrokhzad
32f922e526
Rollup merge of #56640 - myfreeweb:patch-1, r=alexcrichton
Add FreeBSD unsigned char platforms to std::os::raw

Reference: https://www.freebsd.org/cgi/man.cgi?query=arch&apropos=0&sektion=7
2018-12-16 14:08:17 +01:00
Tobias Bucher
f61686ae70 Fix doc of std::fs::canonicalize
Point out that the final component of the path name might be a filename
(and not a directory name). Previously, the doc said that all components
of the path must be directory names, when it actually only ment all but
the final one.

Fixes #54056.
2018-12-15 18:51:08 +01:00