Commit graph

13953 commits

Author SHA1 Message Date
jumbatm
c899dc1401 Reword OpenOptions::{create, create_new} doc. 2020-02-19 19:57:32 +10:00
Yuki Okushi
284acafe61
Rollup merge of #68767 - kubo39:patch-macos, r=shepmaster
macOS: avoid calling pthread_self() twice
2020-02-18 20:09:04 +09:00
Hiroki Noda
67068f35dd macOS: avoid calling pthread_self() twice 2020-02-16 19:53:42 +09:00
Dylan DPC
728be34ebc
Rollup merge of #69106 - RReverser:wasi-fs-copy, r=KodrAus
Fix std::fs::copy on WASI target

Previously `std::fs::copy` on wasm32-wasi would reuse code from the `sys_common` module and would successfully copy contents of the file just to fail right before closing it.

This was happening because `sys_common::copy` tries to copy permissions of the file, but permissions are not a thing in WASI (at least yet) and `set_permissions` is implemented as an unconditional runtime error.

This change instead adds a custom working implementation of `std::fs::copy` (like Rust already has on some other targets) that doesn't try to call `set_permissions` and is essentially a thin wrapper around `std::io::copy`.

Fixes #68560.
2020-02-15 09:45:45 +01:00
Dylan DPC
d28b35812f
Rollup merge of #64069 - danielhenrymantilla:feature/cstring_from_vec_of_nonzerou8, r=KodrAus
Added From<Vec<NonZeroU8>> for CString

Added a `From<Vec<NonZeroU8>>` `impl` for `CString`

# Rationale

  - `CString::from_vec_unchecked` is a subtle function, that makes `unsafe` code harder to audit when the generated `Vec`'s creation is non-trivial. This `impl` allows to write safer `unsafe` code thanks to the very explicit semantics of the `Vec<NonZeroU8>` type.

  - One such situation is when trying to `.read()` a `CString`, see issue #59229.

      - this lead to a PR: #59314, that was closed for being too specific / narrow (it only targetted being able to `.read()` a `CString`, when this pattern could have been generalized).

     - the issue suggested another route, based on `From<Vec<NonZeroU8>>`, which is indeed a less general and more concise code pattern.

  - quoting @shnatsel:

      - >  For me the main thing about making this safe is simplifying auditing - people have spent like an hour looking at just this one unsafe block in libflate because it's not clear what exactly is unchecked, so you have to look it up when auditing anyway. This has distracted us from much more serious memory safety issues the library had.
Having this trivial impl in stdlib would turn this into safe code with compiler more or less guaranteeing that it's fine, and save anyone auditing the code a whole lot of time.
2020-02-15 09:45:38 +01:00
Matthew Jasper
d863978f89 Fix tests after rebase 2020-02-14 22:40:03 +00:00
Jethro Beekman
57a62f5335 Add comment to SGX entry code 2020-02-13 10:16:28 +01:00
Dylan DPC
2501a10670
Rollup merge of #69068 - Goirad:make-sgx-arg-cleanup-nop, r=jethrogb,nagisa
Make the SGX arg cleanup implementation a NOP

fixes #64304

cc @jethrogb
2020-02-13 02:52:56 +01:00
Dylan DPC
2a201336ed
Rollup merge of #67642 - Mark-Simulacrum:relax-bounds, r=Amanieu
Relax bounds on HashMap/HashSet

These APIs changed from the old bound listed to the new bound (possibly empty):

K: Hash + Eq -> K
* new
* with_capacity

K: Eq + Hash, S: BuildHasher -> K, S
* with_hasher
* with_capacity_and_hasher
* hasher

K: Eq + Hash + Debug -> K: Debug
S: BuildHasher -> S
HashMap as Debug

K: Eq + Hash -> K
S: BuildHasher + Default -> S: Default
HashMap as Default

Resolves #44777.
2020-02-13 02:52:46 +01:00
Ingvar Stepanyan
8fb8bb4b3f Fix std::fs::copy on WASI target
Previously `std::fs::copy` on wasm32-wasi would reuse code from the `sys_common` module and would successfully copy contents of the file just to fail right before closing it.

This was happening because `sys_common::copy` tries to copy permissions of the file, but permissions are not a thing in WASI (at least yet) and `set_permissions` is implemented as an unconditional runtime error.

This change instead adds a custom working implementation of `std::fs::copy` (like Rust already has on some other targets) that doesn't try to call `set_permissions` and is essentially a thin wrapper around `std::io::copy`.

Fixes #68560.
2020-02-12 20:08:41 +00:00
Dylan DPC
a908716ec6
Rollup merge of #69040 - jethrogb:jb/cleanup-sgx-entry, r=nagisa
Cleanup SGX entry code

cc @aandyl
2020-02-12 20:36:58 +01:00
Dylan DPC
5a800d7ee6
Rollup merge of #69038 - yaahc:backtrace-debug, r=dtolnay
Add initial debug fmt for Backtrace

Fixes the first point in https://github.com/rust-lang/rust/issues/65280

related to https://github.com/rust-lang/rust/issues/53487
2020-02-12 20:36:56 +01:00
Dylan DPC
6b40f59db1
Rollup merge of #69042 - yaahc:backtrace-header, r=dtolnay
Remove backtrace header text

Fixes point 3 from https://github.com/rust-lang/rust/issues/65280

related to https://github.com/rust-lang/rust/issues/53487

This should probably be double checked by someone who works on fuschia because theres some extra fuschia specific output in `add_context` that is also removed by this change.
2020-02-12 14:21:13 +01:00
Yuki Okushi
b6a9aa9dd7
Rollup merge of #67695 - gilescope:truth, r=centril
Added dyn and true keyword docs

r? @Centril
2020-02-12 18:55:34 +09:00
Jane Lusby
090a1571d8 Fix failing backtrace ui tests 2020-02-11 16:57:22 -08:00
Giles Cope
8e26ad0c2c Keyword docs
Co-Authored-By: Mazdak Farrokhzad <twingoow@gmail.com>
Co-Authored-By: Tim Robinson <tim.g.robinson@gmail.com>
Co-Authored-By: Peter Todd <pete@petertodd.org>
Co-Authored-By: Dylan DPC <dylan.dpc@gmail.com>
2020-02-11 20:36:36 +00:00
Dario Gonzalez
1f6fb338a5 make the sgx arg cleanup implementation a no op 2020-02-11 10:11:58 -08:00
Jane Lusby
ec8ee7fb81 remove intentionally failing test 2020-02-11 08:39:27 -08:00
Jane Lusby
c8817aa521 backwards again, god damnit 2020-02-10 21:54:27 -08:00
Jane Lusby
6797bfd203 rule over the code in libstd with an iron fist 2020-02-10 21:38:59 -08:00
Jane Lusby
7064a0ec59 maximum alternative consistency! 2020-02-10 21:07:36 -08:00
Jane Lusby
192b103917 make symbol printing consistent with backtrace_rs 2020-02-10 17:45:58 -08:00
Jane Lusby
de25048a23 add nice alt fmt for debug 2020-02-10 17:42:04 -08:00
Jane Lusby
230ed3ea75 use debug_map and skip empty frames 2020-02-10 17:28:04 -08:00
Jane Lusby
70c9133014 remove Some from fn name 2020-02-10 15:48:09 -08:00
Jane Lusby
87117783fb final format cleanups 2020-02-10 15:39:32 -08:00
Jane Lusby
583dd2c3ee make it compile 2020-02-10 15:18:29 -08:00
Jane Lusby
76e6d6fe11 remove unnecessary Debug impl for BacktraceFrame 2020-02-10 15:17:40 -08:00
Jane Lusby
0d5444ffa6 remove unnecessary derives 2020-02-10 15:16:24 -08:00
Jane Lusby
c0ba79eefd less noisy format 2020-02-10 15:15:13 -08:00
Jane Lusby
49204563e1 Get vaguely working with a test for checking output 2020-02-10 14:28:32 -08:00
Jane Lusby
b637c0e84a Add initial debug fmt for Backtrace 2020-02-10 14:28:31 -08:00
Jane Lusby
4cf0365b19 Bump version to backtrace without the header 2020-02-10 14:20:21 -08:00
Jethro Beekman
71b9ed4a36 Avoid jumping to Rust code with user %rsp (reentry_panic) 2020-02-10 21:00:22 +01:00
Raoul Strackx
236ab6e6d6 sanitize MXCSR/FPU control registers 2020-02-10 20:57:30 +01:00
Raoul Strackx
aeedc9dea9 Corrected ac_mitigation patch. That patch used the untrusted stack to clear rflags during enclave (re-)entry 2020-02-10 20:57:25 +01:00
Jethro Beekman
1b12232b8f Fix SGX RWLock representation for UnsafeCell niche fix 2020-02-10 14:44:12 -05:00
Dylan DPC
2d8f6389d0
Rollup merge of #68524 - jonas-schievink:generator-resume-arguments, r=Zoxc
Generator Resume Arguments

cc https://github.com/rust-lang/rust/issues/43122 and https://github.com/rust-lang/rust/issues/56974

Blockers:
* [x] Fix miscompilation when resume argument is live across a yield point (https://github.com/rust-lang/rust/pull/68524#issuecomment-578459069)
* [x] Fix 10% compile time regression in `await-call-tree` benchmarks (https://github.com/rust-lang/rust/pull/68524#issuecomment-578487162)
  * [x] Fix remaining 1-3% regression (https://github.com/rust-lang/rust/pull/68524#issuecomment-579566255) - resolved (https://github.com/rust-lang/rust/pull/68524#issuecomment-581144901)
* [x] Make dropck rules account for resume arguments (https://github.com/rust-lang/rust/pull/68524#issuecomment-578541137)

Follow-up work:
* Change async/await desugaring to make use of this feature
* Rewrite [`box_region.rs`](3d8778d767/src/librustc_data_structures/box_region.rs) to use resume arguments (this shows up in profiles too)
2020-02-06 22:38:33 +01:00
bors
ed853b8619 Auto merge of #68861 - Dylan-DPC:rollup-0m09hsg, r=Dylan-DPC
Rollup of 8 pull requests

Successful merges:

 - #68762 (Strip unnecessary subexpression)
 - #68790 (Improve `merge_from_succ`)
 - #68809 (Make more arithmetic functions unstably const)
 - #68832 (Clean up E0264, E0267 and E0268 explanations)
 - #68840 (On suggesting `#![recursion_limit = "X"]`, note current crate name)
 - #68846 (doc fix on doc attribute)
 - #68851 (Fix issue number of `capacity` method)
 - #68858 (Merge item id stable hashing functions)

Failed merges:

r? @ghost
2020-02-06 01:46:46 +00:00
Dylan DPC
cf32b7118d
Rollup merge of #68851 - JohnTitor:fix-issue-number, r=Centril
Fix issue number of `capacity` method

Follow-up of https://github.com/rust-lang/rust/pull/68558#issuecomment-582117131

r? @alexcrichton
2020-02-05 13:14:34 +01:00
Dylan DPC
d694f22521
Rollup merge of #68762 - ForNeVeR:patch-1, r=alexcrichton
Strip unnecessary subexpression

It became unnecessary since a06baa56b9 reformatted the file. The comment is currently a bit misleading.
2020-02-05 13:14:22 +01:00
bors
eda1a7adfc Auto merge of #68755 - Tyg13:update_stdarch, r=alexcrichton
Update `rust-lang/stdarch` submodule

Update submodule [rust-lang/stdarch](https://github.com/rust-lang/stdarch/)
2020-02-05 10:39:01 +00:00
Yuki Okushi
df7d9f3838 Fix issue number of capacity method 2020-02-05 15:34:33 +09:00
bors
c9290dceee Auto merge of #68558 - HeroicKatora:buf-writer-capacity, r=alexcrichton
Add a method to query the capacity of a BufWriter and BufReader

Besides the obvious of retrieving the parameter used to construct the writer, this method allows consumers to control the number of `flush` calls during write operations. For `BufReader` it gives an upper bound on the returned buffer in `fill_buf` which might influence the allocation behaviour of a consumer.
2020-02-04 20:30:53 +00:00
Daniel Henry-Mantilla
60274a95fe Added From<Vec<NonZeroU8>> for CString
Updated tracking issue number

Added safeguards for transmute_vec potentially being factored out elsewhere

Clarified comment about avoiding mem::forget

Removed unneeded unstable guard

Added back a stability annotation for CI

Minor documentation improvements

Thanks to @Centril's code review

Co-Authored-By: Mazdak Farrokhzad <twingoow@gmail.com>

Improved layout checks, type annotations and removed unaccurate comment

Removed unnecessary check on array layout

Adapt the stability annotation to the new 1.41 milestone

Co-Authored-By: Mazdak Farrokhzad <twingoow@gmail.com>

Simplify the implementation.

Use `Vec::into_raw_parts` instead of a manual implementation of
`Vec::transmute`.

If `Vec::into_raw_parts` uses `NonNull` instead, then the code here
will need to be adjusted to take it into account (issue #65816)

Reduce the whitespace of safety comments
2020-02-04 17:20:33 +01:00
bors
126ad2b813 Auto merge of #68708 - Mark-Simulacrum:stage0-step, r=pietroalbini
Step stage0 to bootstrap from 1.42

This also includes a commit which fixes the rustfmt downloading logic to redownload when the rustfmt channel changes, and bumps rustfmt to a more recent version.
2020-02-04 14:16:18 +00:00
Dylan DPC
1028978e8f
Rollup merge of #68797 - GuillaumeGomez:link-to-types, r=Dylan-DPC
Fix links to types instead of modules

r? @Dylan-DPC
2020-02-03 18:58:35 +01:00
Guillaume Gomez
46f6dad101 Fix links to types instead of modules 2020-02-03 16:12:35 +01:00
Jonas Schievink
044fe0f558 Add a resume type parameter to Generator 2020-02-02 13:20:57 +01:00
Friedrich von Never
b0a9e949e7
Strip unnecessary subexpression
It became unnecessary since a06baa56b9 reformatted the file.
2020-02-02 15:08:46 +07:00