Commit Graph

78721 Commits

Author SHA1 Message Date
bors
ec99b220fe Auto merge of #50772 - nicokoch:fastcopy, r=alexcrichton
fs: copy: use copy_file_range on Linux

Linux 4.5 introduced a new system call [copy_file_range](http://man7.org/linux/man-pages/man2/copy_file_range.2.html) to copy data from one file to another.

This PR uses the new system call (if available). This has several advantages:

1. No need to constantly copy data from userspace to kernel space, if the buffer is small or the file is large
2. On some filesystems, like BTRFS, the kernel can leverage internal fs mechanisms for huge performance gains
3. Filesystems on the network dont need to copy data between the host and the client machine (they have to in the current read/write implementation)

I have created a small library that also implements the new system call for some huge performance gains here: https://github.com/nicokoch/fastcopy
Benchmark results are in the README
2018-05-29 23:49:11 +00:00
Nicolas Koch
c7d6a0130b Fix additional nits:
- compute bytes_to_copy more elegantly
  - add assert that written is 0 in fallback case
2018-05-29 23:42:42 +02:00
bors
524ad9b9e0 Auto merge of #51165 - SimonSapin:opt2, r=alexcrichton
Revert "Set opt-level to 3"

This reverts commit aad9840ad4.

Level 3 (possibly indirectly, the underlying bug might be in XCode’s linker) causes unit tests to sefault when compiled with some versions of XCode: https://github.com/rust-lang/rust/issues/50867

It also appears to cause some segfaults on Windows: https://github.com/rust-lang/rust/pull/50329#issuecomment-386853473, and regressions in some rustc performance benchmarks: https://github.com/rust-lang/rust/pull/50329#issuecomment-388084894
2018-05-29 17:17:53 +00:00
Simon Sapin
5067d2f133 Change the comment on opt-level = 2 to point to https://github.com/rust-lang/rust/issues/50867 2018-05-29 17:38:23 +02:00
bors
59c0f5913d Auto merge of #51133 - spastorino:make_borrowck_use_output, r=nikomatsakis
Make borrowck use polonius output
2018-05-29 15:02:39 +00:00
Niko Matsakis
c3d688962d WIP fix rustc-hash cargo.lock entry for polonius-engine 2018-05-29 09:39:32 -04:00
Santiago Pastorino
4c10a65b14
Whitelist datafrog on tidy 2018-05-29 10:19:47 -03:00
Santiago Pastorino
a8b36c9e9a
Run rustfmt 2018-05-29 10:19:47 -03:00
Santiago Pastorino
9de4e342df
Use polonius_output 2018-05-29 10:19:46 -03:00
Douglas Campos
db39ec8f9a
store output in FlowState 2018-05-29 10:19:46 -03:00
Douglas Campos
2cd09f27b8
store polonius output in MirBorrowCtx 2018-05-29 10:19:46 -03:00
Douglas Campos
b45aebfdf6
it compiles, but we do not use the output yet 2018-05-29 10:19:46 -03:00
Douglas Campos
4f88283869
expose -Zpolonius flag 2018-05-29 10:19:46 -03:00
Douglas Campos
422fe7c8e8
bump polonius engine 2018-05-29 10:19:45 -03:00
bors
889d8dcaa7 Auto merge of #51134 - RalfJung:from_raw_parts, r=SimonSapin
extend from_raw_parts docs for slices and strs to mention alignment requirement

The documentation for `str::from_raw_parts_mut` seems to not be visible because that method is private, bit I figured it could still be fixed. I also removed the reference to the no-longer-existing `str::from_raw_parts` while I was at it.

Alternatively, should I remove `str::from_raw_parts_mut` completely? it is only used in `str::split_at_mut`, where it might as well be inlined.
2018-05-29 12:50:06 +00:00
Simon Sapin
01e8616be9 Revert "Set opt-level to 3"
This reverts commit aad9840ad4.

Level 3 (possibly indirectly, the underlying bug might be in XCode’s linker)
causes unit tests to sefault when compiled with some versions of XCode:
https://github.com/rust-lang/rust/issues/50867

It also appears to cause some segfaults on Windows:
https://github.com/rust-lang/rust/pull/50329#issuecomment-386853473

… and regressions in some rustc performance benchmarks:
https://github.com/rust-lang/rust/pull/50329#issuecomment-388084894
2018-05-29 14:44:42 +02:00
bors
61f35e507a Auto merge of #51019 - Zoxc:hash-bytes, r=michaelwoerister
Hash up to 8 bytes at once with FxHasher

r? @michaelwoerister
2018-05-29 10:18:35 +00:00
bors
4f6d9bf209 Auto merge of #51142 - nickbabcock:doc-inspect, r=frewsxcv
Document additional use case for iter::inspect

Adds docs for `iter::inspect` showing the non-debug use case

Closes #49564
2018-05-29 06:50:12 +00:00
bors
fe5c45bb53 Auto merge of #51144 - tmccombs:unix-epoch-stable, r=Mark-Simulacrum
Stabilize SystemTime::UNIX_EPOCH

Fixes #49502
2018-05-29 03:22:20 +00:00
bors
5ae5361cdd Auto merge of #50475 - csmoe:debr, r=nikomatsakis
Refactor DebruijnIndex to be 0-based

Fixes #49813
2018-05-29 01:11:24 +00:00
Thayne McCombs
855ec8b6d5 Stabilize SystemTime::UNIX_EPOCH 2018-05-28 18:24:01 -06:00
Nick Babcock
18cf47bc7d Document additional use case for iter::inspect 2018-05-28 18:50:16 -05:00
Niko Matsakis
783fe4f880 change to 0-based indices
Co-authored-by: csmoe <35686186+csmoe@users.noreply.github.com>
2018-05-28 19:47:05 -04:00
Niko Matsakis
22a25d9b49 make depth private
Co-authored-by: csmoe <35686186+csmoe@users.noreply.github.com>
2018-05-28 19:47:05 -04:00
Niko Matsakis
7e15e0baff remove use of depth from TyS and replace with a debruijn index
Co-authored-by: csmoe <35686186+csmoe@users.noreply.github.com>
2018-05-28 19:47:05 -04:00
Niko Matsakis
8f15d1ea25 replace binder_depth in LateBoundRegionsDetector
Co-authored-by: csmoe <35686186+csmoe@users.noreply.github.com>
2018-05-28 19:47:04 -04:00
Niko Matsakis
06b2a3fbdb convert LateBoundRegionsCollector to track a debruijn index
Co-authored-by: csmoe <35686186+csmoe@users.noreply.github.com>
2018-05-28 19:47:04 -04:00
Niko Matsakis
4aeb6efb6d replace use of DebruijnIndex in for_each_free_region
Co-authored-by: csmoe <35686186+csmoe@users.noreply.github.com>
2018-05-28 19:47:04 -04:00
Niko Matsakis
34c9ae77f7 refactor resolve_lifetime to track outer-index, not depth
Co-authored-by: csmoe <35686186+csmoe@users.noreply.github.com>
2018-05-28 19:47:04 -04:00
Niko Matsakis
f965b79ccf rewrite the hasher to not access depth field
Co-authored-by: csmoe <35686186+csmoe@users.noreply.github.com>
2018-05-28 19:47:04 -04:00
Niko Matsakis
e2f7f4a7b7 port nice_region_error code to not track depth but rather index
Co-authored-by: csmoe <35686186+csmoe@users.noreply.github.com>
2018-05-28 19:47:04 -04:00
Niko Matsakis
8bd4bffe50 stop invoking DebruijnIndex::new directly
Co-authored-by: csmoe <35686186+csmoe@users.noreply.github.com>
2018-05-28 19:47:04 -04:00
Niko Matsakis
b5018de0ed make shifted_in and shifted_out const fns
Co-authored-by: csmoe <35686186+csmoe@users.noreply.github.com>
2018-05-28 19:47:03 -04:00
Niko Matsakis
9c5a45044a port fold_regions and friends to use debruijn indices directly
They no longer talk about plain integers.

Co-authored-by: csmoe <35686186+csmoe@users.noreply.github.com>
2018-05-28 19:47:03 -04:00
bors
e9a489be94 Auto merge of #50465 - clarcharr:wrapping, r=KodrAus
Add missing Wrapping methods, use doc_comment!

Re-opened version of #49393 . Finishing touches for #32463.

Note that this adds `Shl` and `Shr` implementations for `Wrapping<i128>` and `Wrapping<u128>`, which were previously missed. This is technically insta-stable, but I don't know why this would be a problem.
2018-05-28 22:28:43 +00:00
Ralf Jung
b30aaf244e get rid of str::from_raw_parts_mut
str::from_raw_parts has been removed long ago because it can be obtained via
str::from_utf8_unchecked and slice::from_raw_parts.  The same goes for
str::from_raw_parts_mut.
2018-05-28 22:04:52 +02:00
bors
5bf68db6ec Auto merge of #50929 - zackmdavis:hiridification_initiative, r=michaelwoerister
operate on `HirId` instead of `NodeId` in `hir::Pat::each_binding`, and consequences of that

See #50928 for motivation.

Questions—

 * Is #50928 actually a good idea as a plan of record, or is there some reason to keep `NodeId`s?
 * Are the uses of `find_node_for_hir_id` in this initial submission OK (see the FIXME comments)?
 * Can we bikeshed a better method names `struct_span_lint_hir` _&c._? (Coined in analogy to the `struct_span_lint_node` and `NodeId`, but it feels kind of semantically clunky.)

r? @michaelwoerister
2018-05-28 19:16:27 +00:00
John Kåre Alsaker
7ebd4d637d Update rustc-hash to hash up to 8 bytes at once with FxHasher 2018-05-28 20:40:31 +02:00
Niko Matsakis
69ab6f2995 introduce shifted_in, shifted_out and friends
Co-authored-by: csmoe <35686186+csmoe@users.noreply.github.com>
2018-05-28 14:25:55 -04:00
bors
2612bbcba0 Auto merge of #50521 - gnzlbg:simd_float, r=alexcrichton
Add simd math intrinsics and gather/scatter

This PR adds simd math intrinsics for floating-point vectors (sqrt, sin, cos, pow, exp, log, fma, abs, etc.) and the generic simd gather/scatter intrinsics.
2018-05-28 16:54:44 +00:00
Ralf Jung
3ee9d89969 extend from_raw_parts docs for slices and strs to mention alignment requirement 2018-05-28 18:34:15 +02:00
Zack M. Davis
1b7488d40b scrap find_node_for_hir_id in favor of hir_to_node_id
Michael Woerister pointed out that `hir_to_node_id` (introduced in
August 2017's 28ddd7a4e) supersedes the functionality of
`find_node_for_hir_id` (just a hash lookup compared to that linear
search).
2018-05-28 09:20:14 -07:00
Zack M. Davis
078486b9f6 in which NodeMap and friends are macrotized! 2018-05-28 09:20:14 -07:00
Zack M. Davis
1329605a3d operate on HirId in hir::Pat::each_binding, and consequences of that
Changing the `each_binding` utility method to take the `HirId` of a
binding pattern rather than its `NodeId` seems like a modest first step
in support of the `HirId`ification initiative #50928. (The inspiration
for choosing this in particular came from the present author's previous
work on diagnostics issued during liveness analysis, which is the most
greatly affected module in this change.)
2018-05-28 09:20:14 -07:00
Nicolas Koch
3b271eb039 Use FIXME instead of TODO; Move bytes_to_copy calculation inside if
branch
2018-05-28 17:19:42 +02:00
bors
a2c4d4e2f0 Auto merge of #51121 - Manishearth:rust-syntax, r=killercup
Mark .fixed files as Rust syntax for GitHub

r? @killercup
2018-05-28 14:45:46 +00:00
bors
2b1d69d6b5 Auto merge of #51118 - nrc:update, r=oli-obk
Update RLS, Rustfmt, and Cargo

r? @Mark-Simulacrum

Should fix broken rustfmt and RLS builds - Cargo update is needed for compatibility with RLS
2018-05-28 12:39:03 +00:00
bors
16cd84ee22 Auto merge of #50724 - zackmdavis:applicability_rush, r=Manishearth
add suggestion applicabilities to librustc and libsyntax

A down payment on #50723. Interested in feedback on whether my `MaybeIncorrect` vs. `MachineApplicable` judgement calls are well-calibrated (and that we have a consensus on what this means).

r? @Manishearth
cc @killercup @estebank
2018-05-28 10:11:26 +00:00
Manish Goregaokar
287ad5407a Mark .fixed files as Rust syntax for GitHub 2018-05-28 11:36:13 +02:00
bors
68e0e58df7 Auto merge of #50612 - Zoxc:thin-slice, r=michaelwoerister
Make &Slice a thin pointer

Split out from https://github.com/rust-lang/rust/pull/50395

r? @michaelwoerister
2018-05-28 07:59:21 +00:00