Commit graph

46484 commits

Author SHA1 Message Date
bors cff0411706 Auto merge of #28476 - steveklabnik:rollup, r=steveklabnik
- Successful merges: #28276, #28314, #28422, #28435, #28451, #28466, #28470, #28471, #28473, #28474
- Failed merges:
2015-09-17 21:34:34 +00:00
Steve Klabnik 5faff5dbde Rollup merge of #28474 - tshepang:repetition, r=steveklabnik
It's clear it's the one being documented
2015-09-17 17:06:56 -04:00
Steve Klabnik 7a5cd3c274 Rollup merge of #28473 - tshepang:lowercase, r=steveklabnik 2015-09-17 17:06:56 -04:00
Steve Klabnik cd5870f3a3 Rollup merge of #28471 - tshepang:markup, r=steveklabnik 2015-09-17 17:06:56 -04:00
Steve Klabnik fcfcee1363 Rollup merge of #28470 - tshepang:idiom, r=steveklabnik 2015-09-17 17:06:56 -04:00
Steve Klabnik 36190ef91d Rollup merge of #28466 - baskerville:trpl-heap-highest-addr, r=steveklabnik
r? @steveklabnik
2015-09-17 17:06:55 -04:00
Steve Klabnik cc664f1f44 Rollup merge of #28451 - dagnir:osx-req-wording, r=steveklabnik
Using "later" in this context makes more sense than "greater" so it's been changed to match the Linux requirement above it rather than the other way around.
2015-09-17 17:06:55 -04:00
Steve Klabnik ae3c60d06f Rollup merge of #28435 - apasel422:issue-24533, r=nikomatsakis
Closes #24533.
2015-09-17 17:06:55 -04:00
Steve Klabnik 40c45ac86a Rollup merge of #28422 - christopherdumas:label_code, r=steveklabnik 2015-09-17 17:06:54 -04:00
Steve Klabnik eeca6a430b Rollup merge of #28314 - tbu-:pr_atomics_are_send, r=brson 2015-09-17 17:06:54 -04:00
Steve Klabnik 54063e330a Rollup merge of #28276 - jackwilsonv:patch-5, r=Manishearth 2015-09-17 17:06:54 -04:00
Tshepang Lekhonkhobe a3305f87c1 reference: actual keywords feel more appropriate 2015-09-17 22:55:40 +02:00
Tshepang Lekhonkhobe 22fc5f480d reference: mark that up to make it more clear it is a keyword 2015-09-17 22:52:39 +02:00
Tshepang Lekhonkhobe 553a2f1ead doc: follow idiom in code snippet 2015-09-17 22:13:05 +02:00
bors a06812f57b Auto merge of #28459 - apasel422:tests, r=alexcrichton
Closes #23543.
Closes #23544.
2015-09-17 19:50:31 +00:00
Tshepang Lekhonkhobe 25cc001c19 doc: no need to mention the method by name
It's clear it's the one being documented
2015-09-17 21:46:47 +02:00
bors 24fdaedaff Auto merge of #28457 - VHaravy:test-run-pass-x86stdcall2, r=huonw
Type `HANDLE` is defined on Windows as `PVOID`. Test `run-pass/x86stdcall2` defined it as `u32` that caused access violation in `catch_panic` routine at the line:

```
try!(unwind::try(move || *result = Some(f())))
```

The original failure is as follows:

```
---- [run-pass] run-pass/x86stdcall2.rs stdout ----

error: test run failed!
status: exit code: -1073741819
command: PATH="x86_64-pc-windows-msvc/stage2/bin/rustlib/x86_64-pc-windows-msvc/lib;D:\Sources\Rust\x86_64-pc-windows-msvc\stage2\bin;C:\MSYS2\mingw64\bin;C:\MSYS2\usr\local\bin;C:\MSYS2\usr\bin;C:\MSYS2\usr\bin;C:\Program Files\Python 3;C:\Program Files\Python 3\Scripts;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0;C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit;C:\Program Files\SlikSvn\bin;C:\Program Files\System Tools;C:\Program Files (x86)\System Tools;C:\Program Files\Vim\vim74;C:\Program Files\Rust\bin;C:\Program Files\Microsoft\Web Platform Installer;C:\Program Files\MiKTeX\miktex\bin\x64;C:\Program Files (x86)\Pandoc;C:\Program Files\LLVM\bin;C:\Program Files\KDiff3;C:\Program Files\Git\cmd;C:\Users\Vitali\AppData\Local\atom\bin;C:\MSYS2\usr\bin\site_perl;C:\MSYS2\usr\bin\vendor_perl;C:\MSYS2\usr\bin\core_perl" x86_64-pc-windows-msvc/test/run-pass\x86stdcall2.stage2-x86_64-pc-windows-msvc.exe
stdout:
------------------------------------------

------------------------------------------
stderr:
------------------------------------------

------------------------------------------

thread '[run-pass] run-pass/x86stdcall2.rs' panicked at 'explicit panic', D:/Sources/Rust/src/compiletest\runtest.rs:1501
```

P.S. I compiled rust for `x86_64-pc-windows-msvc`.
2015-09-17 18:06:33 +00:00
Bastien Dejean 6d2cb6c688 trpl: Fix off-by-one highest memory address 2015-09-17 18:53:01 +02:00
bors 8ea2198215 Auto merge of #28421 - alexcrichton:msvc-rmake, r=alexcrichton
Work carried over from #27938
2015-09-17 16:22:46 +00:00
Alex Crichton 0675dffac4 rmake: Get all tests passing on MSVC 2015-09-17 08:40:33 -07:00
bors 2be0d0ad92 Auto merge of #28428 - dotdash:same_adjust, r=nikomatsakis
Currently, we're generating adjustments, for example, to get from &[u8]
to &[u8], which is unneeded and kicks us out of trans_into()
into trans() which means an additional stack slot and copy in the
unoptimized code.
2015-09-17 14:40:59 +00:00
Andrew Paseltiner 83b5370d5d Add tests for #23543, #23544
Closes #23543.
Closes #23544.
2015-09-17 09:33:41 -04:00
Björn Steinbrink 6def06c973 Don't create adjustments from a type to itself
Currently, we're generating adjustments, for example, to get from &[u8]
to &[u8], which is unneeded and kicks us out of trans_into() into
trans() which means an additional stack slot and copy in the unoptimized
code.
2015-09-17 15:10:21 +02:00
bors c9fc4efd24 Auto merge of #28455 - nrc:span-bang, r=alexcrichton
I can't see how to test this.

Fixes https://github.com/nrc/rustfmt/issues/320
2015-09-17 12:58:22 +00:00
bors 89faafcd67 Auto merge of #28381 - ebfull:aint-fraid-a-no-ghosts-redux, r=me
#27483 redux at Gankro's request.

Fixes #26905, Closes #28239

r? @nrc
2015-09-17 10:11:23 +00:00
Vitali Haravy 7ff85cd216 Correct type definition of HANDLE. 2015-09-17 12:03:27 +03:00
bors d3fc6e1858 Auto merge of #28454 - GSam:master, r=nrc
This is so that the resolution results can be used after analysis, potentially for tool support
2015-09-17 08:28:33 +00:00
bors 6c18dd597f Auto merge of #28438 - apasel422:issue-22872, r=alexcrichton
The original issue was not fixed, but the test passed due to disabled debug assertions.
2015-09-17 05:44:29 +00:00
Nick Cameron 4fbe514985 Fix the span for ! returns 2015-09-17 15:13:51 +12:00
bors d16129bca5 Auto merge of #28349 - nrc:ast-lints, r=manishearth
r? @nikomatsakis, f? @Manishearth
2015-09-17 03:05:56 +00:00
bors 151ffa48c1 Auto merge of #28453 - dinfuehr:patch-4, r=alexcrichton 2015-09-17 01:24:02 +00:00
Garming Sam 61cb1baab1 Add compiler option to keep mtwt tables
This is so that the resolution results can be used after analysis, potentially for tool support
2015-09-17 13:09:55 +12:00
Dominik Inführ 69fdc0fa49 corrected link to Hasher 2015-09-16 18:01:46 -07:00
Nick Cameron ed61a64a95 rebasing 2015-09-17 12:16:46 +12:00
Nick Cameron a642d853aa Change to a multi-trait approach
[breaking-change] for lint authors

You must now implement LateLintPass or EarlyLintPass as well as LintPass and use either register_late_lint_pass or register_early_lint_pass, rather than register_lint_pass.
2015-09-17 12:16:46 +12:00
Nick Cameron c1084a3ada Changes to tests 2015-09-17 12:16:46 +12:00
Nick Cameron d21bfff78c Remove hir::ExprParen 2015-09-17 12:16:46 +12:00
Nick Cameron 70c6fb9193 Change the unused parens lint to operate on the AST 2015-09-17 12:16:46 +12:00
Nick Cameron 76856e19ff Add an early lint pass for lints that operate on the AST
There is a minor [breaking-change] for lint authors - some functions which were previously defined on `lint::Context` have moved to a trait - `LintContext`, you may need to import that trait to avoid name resolution errors.
2015-09-17 12:16:46 +12:00
Dongie Agnir dfe88c09b8 Change OSX version req wording to match Linux. 2015-09-16 18:56:56 -04:00
bors 47d125d0f8 Auto merge of #28436 - ranma42:faster-partialord, r=bluss
This branch improves the performance of Ord and PartialOrd methods for slices compared to the iter-based implementation.
Based on the approach used in #26884.
2015-09-16 21:45:46 +00:00
bors f18c2aaf20 Auto merge of #28432 - aochagavia:docs2, r=alexcrichton
Fixes #28431
2015-09-16 19:02:55 +00:00
Andrew Paseltiner f5b69b3d9c Remove incorrect test for #22872
The original issue was not fixed, but the test passed due to disabled
debug assertions.
2015-09-16 11:44:41 -04:00
Andrea Canciani 74dc146f42 Explain explicit slicing in slice cmp and partial_cmp methods
The explicit slicing is needed in order to enable additional range
check optimizations in the compiler.
2015-09-16 16:09:23 +02:00
Andrea Canciani 08b9edfe94 Remove inline attribute
Be more conservative with inlining.
2015-09-16 16:09:01 +02:00
Andrea Canciani 369a9dc302 Remove boundary checks in slice comparison operators
In order to get rid of all range checks, the compiler needs to
explicitly see that the slices it iterates over are as long as the
loop variable upper bound.

This further improves the performance of slice comparison:

```
test u8_cmp          ... bench:       4,761 ns/iter (+/- 1,203)
test u8_lt           ... bench:       4,579 ns/iter (+/- 649)
test u8_partial_cmp  ... bench:       4,768 ns/iter (+/- 761)
test u16_cmp         ... bench:       4,607 ns/iter (+/- 580)
test u16_lt          ... bench:       4,681 ns/iter (+/- 567)
test u16_partial_cmp ... bench:       4,607 ns/iter (+/- 967)
test u32_cmp         ... bench:       4,448 ns/iter (+/- 891)
test u32_lt          ... bench:       4,546 ns/iter (+/- 992)
test u32_partial_cmp ... bench:       4,415 ns/iter (+/- 646)
test u64_cmp         ... bench:       4,380 ns/iter (+/- 1,184)
test u64_lt          ... bench:       5,684 ns/iter (+/- 602)
test u64_partial_cmp ... bench:       4,663 ns/iter (+/- 1,158)
```
2015-09-16 15:27:14 +02:00
Andrea Canciani bf9254a75e Reuse cmp in totally ordered types
Instead of manually defining it, `partial_cmp` can simply wrap the
result of `cmp` for totally ordered types.
2015-09-16 15:25:51 +02:00
Andrew Paseltiner 9a626df476 Add test for #24533
Closes #24533.
2015-09-16 06:50:24 -04:00
Andrea Canciani d04b8b5818 Improve PartialOrd for slices
Reusing the same idea as in #26884, we can exploit the fact that the
length of slices is known, hence we can use a counted loop instead of
iterators, which means that we only need a single counter, instead of
having to increment and check one pointer for each iterator.

Using the generic implementation of the boolean comparison operators
(`lt`, `le`, `gt`, `ge`) provides further speedup for simple
types. This happens because the loop scans elements checking for
equality and dispatches to element comparison or length comparison
depending on the result of the prefix comparison.

```
test u8_cmp          ... bench:      14,043 ns/iter (+/- 1,732)
test u8_lt           ... bench:      16,156 ns/iter (+/- 1,864)
test u8_partial_cmp  ... bench:      16,250 ns/iter (+/- 2,608)
test u16_cmp         ... bench:      15,764 ns/iter (+/- 1,420)
test u16_lt          ... bench:      19,833 ns/iter (+/- 2,826)
test u16_partial_cmp ... bench:      19,811 ns/iter (+/- 2,240)
test u32_cmp         ... bench:      15,792 ns/iter (+/- 3,409)
test u32_lt          ... bench:      18,577 ns/iter (+/- 2,075)
test u32_partial_cmp ... bench:      18,603 ns/iter (+/- 5,666)
test u64_cmp         ... bench:      16,337 ns/iter (+/- 2,511)
test u64_lt          ... bench:      18,074 ns/iter (+/- 7,914)
test u64_partial_cmp ... bench:      17,909 ns/iter (+/- 1,105)
```

```
test u8_cmp          ... bench:       6,511 ns/iter (+/- 982)
test u8_lt           ... bench:       6,671 ns/iter (+/- 919)
test u8_partial_cmp  ... bench:       7,118 ns/iter (+/- 1,623)
test u16_cmp         ... bench:       6,689 ns/iter (+/- 921)
test u16_lt          ... bench:       6,712 ns/iter (+/- 947)
test u16_partial_cmp ... bench:       6,725 ns/iter (+/- 780)
test u32_cmp         ... bench:       7,704 ns/iter (+/- 1,294)
test u32_lt          ... bench:       7,611 ns/iter (+/- 3,062)
test u32_partial_cmp ... bench:       7,640 ns/iter (+/- 1,149)
test u64_cmp         ... bench:       7,517 ns/iter (+/- 2,164)
test u64_lt          ... bench:       7,579 ns/iter (+/- 1,048)
test u64_partial_cmp ... bench:       7,629 ns/iter (+/- 1,195)
```
2015-09-16 12:00:56 +02:00
Andrea Canciani 1614173b58 Specialize PartialOrd for totally ordered primitive types
Knowing the result of equality comparison can enable additional
optimizations in LLVM.

Additionally, this makes it obvious that `partial_cmp` on totally
ordered types cannot return `None`.
2015-09-16 11:26:56 +02:00