Commit Graph

31829 Commits

Author SHA1 Message Date
bors
17f79af31c auto merge of #16728 : bluss/rust/zip-next-back, r=alexcrichton
Use ExactSize::len() and defer to its decisions about overly defensive
assertions. Remove the length double-check and simply put a failure
case if the Zip finds an uneven end in .next_back().

Fixing this up since I think I wrote this, and it's been known to
confuse rusties (PR #15886).
2014-08-24 18:46:01 +00:00
bors
8d3390e12f auto merge of #16730 : tshepang/rust/typos, r=pcwalton 2014-08-24 17:01:06 +00:00
Tshepang Lekhonkhobe
0a3073657f doc: fix some typos in the Guide 2014-08-24 17:22:10 +02:00
bors
084325f2d9 auto merge of #16722 : tshepang/rust/trailing-spaces, r=pcwalton 2014-08-24 13:51:03 +00:00
root
d363770851 libcore: Simplify Enumerate, Zip::next_back
Use ExactSize::len() and defer to its decisions about overly defensive
assertions. Remove the length double-check and simply put a failure
case if the Zip finds an uneven end in .next_back().

Fixing this up since I think I wrote this, and it's been known to
confuse rusties (PR#15886).
2014-08-24 15:11:23 +02:00
bors
5ad7afc2d7 auto merge of #16717 : tshepang/rust/misplaced-comma, r=pcwalton
Also:

* Remove unseeming repetition.
* By now, the reader has already heard that Rust is safe by default, so
reduce the overlong sentence, making it easier to read.
2014-08-24 11:16:02 +00:00
Tshepang Lekhonkhobe
4aff964463 doc: remove misleading/confusing info
We have to specify the module and the function name in the example where
the module shares a crate with the executable as well, so remove the
redundant (and potentially confusing) mention.
2014-08-24 13:10:59 +02:00
Tshepang Lekhonkhobe
3aa0a14af0 doc: remove trailing spaces from Guide 2014-08-24 12:26:45 +02:00
Tshepang Lekhonkhobe
f4fb3ad9aa doc: remove trailing shell prompts
because eyesore
2014-08-24 12:16:14 +02:00
bors
471862f40c auto merge of #16710 : dotdash/rust/mergefunc, r=thestinger
Fixes #9536 

---

From https://github.com/rust-lang/rust/issues/9536#issuecomment-45495670:

I've built rustc with the aforementioned fix, once with MergeFunc being run early (that's what the patch for clang that comes  with LLVM does), and once with MergeFunc being run late (using `-C passes=mergefunc`). Here are some time/code size measurements I made with them:

Build command: `rustc -O -o /dev/null --emit asm .../lib.rs`

CPU (user) times, best of three runs:

 Crate       | No MergeFunc | Early MergeFunc | Late MergeFunc
-------------|--------------|-----------------|---------------
 core        |    5.380s    |    5.476s       |    5.364s
 collections |    1.884s    |    1.856s       |    1.892s
 native      |    7.200s    |    7.356s       |    7.108s
 rustc       | 3m23.584s    | 3m28.120s       | 3m21.820s
 std         |   13.888s    |   13.976s       |   13.848s
 syntax      |   48.992s    |   47.752s       |   48.372s

Sizes:

Crate                                    | No MergeFunc |   Early MergeFunc   |    Late MergeFunc
-----------------------------------------|-------------:|--------------------:|-------------------:
lib                                      |  237037581   |  236005998 (-0.44%) |  234708744 (-0.98%)
libarena-063bff73-0.11.0-pre.so          |      60398   |      60393 (-0.01%) |      60394 (-0.01%)
libcollections-d412c0c4-0.11.0-pre.so    |     971566   |     971772 (+0.02%) |     971691 (+0.01%)
libdebug-1e940314-0.11.0-pre.so          |     181352   |     181514 (+0.09%) |     181363 (+0.01%)
libflate-92afea7e-0.11.0-pre.so          |     137837   |     137869 (+0.02%) |     137837 (+0.00%)
libfmt_macros-5125f3bd-0.11.0-pre.so     |     132733   |     134598 (+1.41%) |     132465 (-0.20%)
libgetopts-c94737d1-0.11.0-pre.so        |     158851   |     157427 (-0.90%) |     158272 (-0.36%)
libgraphviz-7b3cf89d-0.11.0-pre.so       |      53337   |      53178 (-0.30%) |      53337 (+0.00%)
liblog-cd053230-0.11.0-pre.so            |      85993   |      86017 (+0.03%) |      85780 (-0.25%)
libnative-1fb5e2c0-0.11.0-pre.so         |     635785   |     639352 (+0.56%) |     621184 (-2.30%)
libregex-77385931-0.11.0-pre.so          |     450538   |     450741 (+0.05%) |     449504 (-0.23%)
librustc-d252d482-0.11.0-pre.so          |   51583741   |   51227703 (-0.69%) |   50930784 (-1.27%)
librustdoc-6ecbf63e-0.11.0-pre.so        |    4557104   |    4501896 (-1.21%) |    4394409 (-3.57%)
libserialize-0352aab7-0.11.0-pre.so      |    1126096   |    1115503 (-0.94%) |    1101734 (-2.16%)
libstd-59beb4f7-0.11.0-pre.so            |    4499529   |    4488879 (-0.24%) |    4477710 (-0.48%)
libsync-305341d2-0.11.0-pre.so           |     306767   |     312211 (+1.77%) |     304086 (-0.87%)
libsyntax-555559ea-0.11.0-pre.so         |    6699751   |    6632291 (-1.01%) |    6596232 (-1.55%)
libterm-4e4945a5-0.11.0-pre.so           |     389390   |     392689 (+0.85%) |     385525 (-0.99%)
libtest-a79f950d-0.11.0-pre.so           |     740161   |     730673 (-1.28%) |     734534 (-0.76%)
libtime-4bb3739b-0.11.0-pre.so           |     131518   |     132830 (+1.00%) |     131514 (-0.00%)
rustlib                                  |  164131038   |  163594366 (-0.33%) |  162796293 (-0.81%)
x86_64-unknown-linux-gnu                 |  164119867   |  163583195 (-0.33%) |  162785122 (-0.81%)
lib                                      |  164115771   |  163579099 (-0.33%) |  162781026 (-0.81%)
liballoc-1085c790-0.11.0-pre.rlib        |    1094410   |    1094444 (+0.00%) |    1094438 (+0.00%)
libarena-063bff73-0.11.0-pre.rlib        |     312324   |     312152 (-0.06%) |     312210 (-0.04%)
libarena-063bff73-0.11.0-pre.so          |      60394   |      60394 (+0.00%) |      60394 (+0.00%)
libcollections-d412c0c4-0.11.0-pre.rlib  |    7048646   |    7049094 (+0.01%) |    7048856 (+0.00%)
libcollections-d412c0c4-0.11.0-pre.so    |     971575   |     971771 (+0.02%) |     971681 (+0.01%)
libcompiler-rt.a                         |     573802   |     573802 (+0.00%) |     573802 (+0.00%)
libcore-c5ed6fb4-0.11.0-pre.rlib         |   24204746   |   24209820 (+0.02%) |   24187602 (-0.07%)
libdebug-1e940314-0.11.0-pre.rlib        |     876616   |     878488 (+0.21%) |     876746 (+0.01%)
libdebug-1e940314-0.11.0-pre.so          |     181352   |     181509 (+0.09%) |     181353 (+0.00%)
libflate-92afea7e-0.11.0-pre.rlib        |     175062   |     175074 (+0.01%) |     175082 (+0.01%)
libflate-92afea7e-0.11.0-pre.so          |     137837   |     137869 (+0.02%) |     137837 (+0.00%)
libfmt_macros-5125f3bd-0.11.0-pre.so     |     132724   |     134599 (+1.41%) |     132469 (-0.19%)
libfourcc-cc0e8bf1-0.11.0-pre.so         |     125828   |     126084 (+0.20%) |     125827 (-0.00%)
libgetopts-c94737d1-0.11.0-pre.rlib      |     864664   |     853040 (-1.34%) |     862548 (-0.24%)
libgetopts-c94737d1-0.11.0-pre.so        |     158855   |     157425 (-0.90%) |     158275 (-0.37%)
libglob-eafe1d22-0.11.0-pre.rlib         |     951370   |     944674 (-0.70%) |     946734 (-0.49%)
libglob-eafe1d22-0.11.0-pre.so           |     159130   |     157385 (-1.10%) |     156791 (-1.47%)
libgraphviz-7b3cf89d-0.11.0-pre.rlib     |     269600   |     269062 (-0.20%) |     269560 (-0.01%)
libgraphviz-7b3cf89d-0.11.0-pre.so       |      53334   |      53176 (-0.30%) |      53337 (+0.01%)
libgreen-ca0d0b80-0.11.0-pre.rlib        |    1374120   |    1389510 (+1.12%) |    1361696 (-0.90%)
libgreen-ca0d0b80-0.11.0-pre.so          |     372435   |     377929 (+1.48%) |     370991 (-0.39%)
libhexfloat-3b978f48-0.11.0-pre.so       |     131926   |     132166 (+0.18%) |     131935 (+0.01%)
liblibc-4f9a876d-0.11.0-pre.rlib         |     617472   |     617472 (+0.00%) |     617472 (+0.00%)
liblog-cd053230-0.11.0-pre.rlib          |     371190   |     371048 (-0.04%) |     370836 (-0.10%)
liblog-cd053230-0.11.0-pre.so            |      85996   |      86020 (+0.03%) |      85781 (-0.25%)
libmorestack.a                           |       1388   |       1388 (+0.00%) |       1388 (+0.00%)
libnative-1fb5e2c0-0.11.0-pre.rlib       |    2233070   |    2264296 (+1.40%) |    2194920 (-1.71%)
libnative-1fb5e2c0-0.11.0-pre.so         |     635787   |     639341 (+0.56%) |     621184 (-2.30%)
libnum-ebe12db7-0.11.0-pre.rlib          |    2672318   |    2675292 (+0.11%) |    2669370 (-0.11%)
libnum-ebe12db7-0.11.0-pre.so            |     398924   |     399357 (+0.11%) |     395821 (-0.78%)
librand-2ea8f361-0.11.0-pre.rlib         |    1691108   |    1691696 (+0.03%) |    1690264 (-0.05%)
libregex-77385931-0.11.0-pre.rlib        |    2007348   |    2006050 (-0.06%) |    2003804 (-0.18%)
libregex-77385931-0.11.0-pre.so          |     450520   |     450790 (+0.06%) |     449535 (-0.22%)
libregex_macros-a2216dec-0.11.0-pre.so   |     597208   |     569004 (-4.72%) |     568800 (-4.76%)
librlibc-d1ece24e-0.11.0-pre.rlib        |      12394   |      12394 (+0.00%) |      12394 (+0.00%)
librustc-d252d482-0.11.0-pre.so          |   51582383   |   51230320 (-0.68%) |   50930784 (-1.26%)
librustdoc-6ecbf63e-0.11.0-pre.so        |    4557074   |    4501877 (-1.21%) |    4394506 (-3.57%)
librustuv-ede8cb89-0.11.0-pre.rlib       |    4774956   |    4791366 (+0.34%) |    4732386 (-0.89%)
librustuv-ede8cb89-0.11.0-pre.so         |    1401710   |    1400237 (-0.11%) |    1386869 (-1.06%)
libsemver-e49a2dee-0.11.0-pre.rlib       |     392704   |     392434 (-0.07%) |     392940 (+0.06%)
libsemver-e49a2dee-0.11.0-pre.so         |      71863   |      71847 (-0.02%) |      71860 (-0.00%)
libserialize-0352aab7-0.11.0-pre.rlib    |    8059698   |    8033972 (-0.32%) |    7989802 (-0.87%)
libserialize-0352aab7-0.11.0-pre.so      |    1126099   |    1115520 (-0.94%) |    1101721 (-2.16%)
libstd-59beb4f7-0.11.0-pre.rlib          |   18802728   |   18780212 (-0.12%) |   18743438 (-0.32%)
libstd-59beb4f7-0.11.0-pre.so            |    4499534   |    4488835 (-0.24%) |    4477677 (-0.49%)
libsync-305341d2-0.11.0-pre.rlib         |    1377062   |    1400190 (+1.68%) |    1369498 (-0.55%)
libsync-305341d2-0.11.0-pre.so           |     306762   |     312212 (+1.78%) |     304095 (-0.87%)
libsyntax-555559ea-0.11.0-pre.so         |    6703330   |    6632254 (-1.06%) |    6596295 (-1.60%)
libterm-4e4945a5-0.11.0-pre.rlib         |    1503928   |    1512648 (+0.58%) |    1495932 (-0.53%)
libterm-4e4945a5-0.11.0-pre.so           |     389380   |     392678 (+0.85%) |     385517 (-0.99%)
libtest-a79f950d-0.11.0-pre.rlib         |    3606962   |    3555410 (-1.43%) |    3589258 (-0.49%)
libtest-a79f950d-0.11.0-pre.so           |     740255   |     728398 (-1.60%) |     734521 (-0.77%)
libtime-4bb3739b-0.11.0-pre.rlib         |     847036   |     847178 (+0.02%) |     847194 (+0.02%)
libtime-4bb3739b-0.11.0-pre.so           |     131516   |     132829 (+1.00%) |     131518 (+0.00%)
liburl-b8b5640c-0.11.0-pre.rlib          |     647764   |     647558 (-0.03%) |     646896 (-0.13%)
liburl-b8b5640c-0.11.0-pre.so            |     146616   |     146621 (+0.00%) |     146531 (-0.06%)
libuuid-238d8f44-0.11.0-pre.rlib         |     359732   |     359682 (-0.01%) |     358936 (-0.22%)
libuuid-238d8f44-0.11.0-pre.so           |      77110   |      77110 (+0.00%) |      77023 (-0.11%)
total                                    |  237081476   |  236049893 (-0.44%) |  234752639 (-0.98%)


So running MergeFunc early like in the clang patch isn't nearly as good as running it late. I also tried to enable usage of global aliases instead of just thunks when merging functions, but that crashes.
2014-08-24 09:30:56 +00:00
Jonas Hietala
9968ae2554 Adjust the error messages to match the pattern "expected foo, found bar"
Closes #8492
2014-08-24 09:53:01 +02:00
bors
16d538cba0 auto merge of #16706 : pnkfelix/rust/fsk-fix-nojem-realloc, r=thestinger
Copy only up to `min(new_size, old_size)` when doing reallocate.

This was a bug when running with jemalloc disabled.

Fix #16687
2014-08-24 07:45:59 +00:00
Piotr Jawniak
46cf384ba9 Fix const evaluation of cast expression from bool 2014-08-24 09:14:41 +02:00
Jimmie Elvenmark
9eb9fcd719 lint: Improve camel case suggestion when empty. 2014-08-24 09:07:19 +02:00
bors
c556ca9853 auto merge of #16703 : bluss/rust/assert-bloat, r=huonw
With no custom message, we should just use concat! + stringify! for
`assert!(expr)` to avoid the string formatting code path.

Inspired by issue #16625
2014-08-24 06:00:58 +00:00
bors
d0c314205c auto merge of #16698 : bluss/rust/slice-bloat, r=huonw
These are somewhat stop-gap solutions to address #16625 

core: Separate failure formatting in str methods slice, slice_to, slice_from

Use a separate inline-never function to format failure message for
str::slice() errors.

Using strcat's idea, this makes sure no formatting code from failure is
inlined when str::slice() is inlined. The number of `unreachable` being
inlined when usingi `.slice()` drops from 5 to just 1.



The testcase:

```
#![crate_type = "lib"]
pub fn slice(x: &str, a: uint, b: uint) -> &str {
    x.slice(a, b)
}
```

shrinks from 16.9 kB to 3.3 kB llvm IR, and the number of `unreachable` drops from 5 to 1.
2014-08-24 03:10:59 +00:00
Tshepang Lekhonkhobe
3e94401a64 doc: move misplaced comma
Also:

* Remove unseeming repetition.
* By now, the reader has already heard that Rust is safe by default, so
reduce the overlong sentence, making it easier to read.
2014-08-24 04:24:25 +02:00
bors
904d88c2be auto merge of #16697 : Sawyer47/rust/new-test, r=huonw
Closes #10618
Closes #16382
2014-08-24 01:25:57 +00:00
Björn Steinbrink
bbc66332fe Enable the MergeFunc pass
Fixes #9536
2014-08-24 01:08:58 +02:00
bors
36131f5be4 auto merge of #16691 : klutzy/rust/issue-15297, r=alexcrichton
First commit fixes issue regarding recognizing MSYS2 build.
Second commit fixes issue regarding MSYS/Windows paths.
2014-08-23 22:35:56 +00:00
Vadim Chugunov
77e39b0560 Log linker stderr and stdout. 2014-08-23 14:38:41 -07:00
bors
1153ad3239 auto merge of #16670 : Swatinem/rust/charascii, r=alexcrichton
I was doing a lot of parsing ascii strings, and the generic bsearch functions in `tables.rs` came up very high in the profile.
This should avoid calling those functions for simple ASCII range chars.
2014-08-23 20:50:57 +00:00
wickerwaka
c0e003d5ad extern crate foobar as foo;
Implements remaining part of RFC #47.
Addresses issue #16461.

Removed link_attrs from rust.md, they don't appear to be supported by
the parser.

Changed all the tests to use the new extern crate syntax

Change pretty printer to use 'as' syntax
2014-08-23 12:16:04 -07:00
bors
03fd90be45 auto merge of #16612 : nham/rust/twoway_searcher_fix, r=alexcrichton
There is a check in TwoWaySearcher::new to determine whether the needle is periodic. This is needed because during searching when a match fails, we cannot advance the position by the entire length of the needle when it is periodic, but can only advance by the length of the period.

The reason "bananas".contains("nana") (and similar searches) were returning false was because the periodicity check was wrong.

Closes #16589

Also, thanks to @Gankro, who came up with many buggy examples.
2014-08-23 18:00:59 +00:00
Felix S. Klock II
b1f7d3aaa0 Copy only up to min(new_size, old_size) when doing reallocate.
Fix #16687
2014-08-23 19:23:02 +02:00
Felix S. Klock II
b0b48511da Test case to illustate/reproduce bug. 2014-08-23 19:23:02 +02:00
bors
3e3209ab4a auto merge of #16268 : cakebaker/rust/make_fn_add_three_times_four_public, r=steveklabnik
To avoid a compilation error when running the tests the function has to be public.
2014-08-23 16:15:58 +00:00
bors
6843d8ccd5 auto merge of #16693 : vadimcn/rust/rename--win32, r=pcwalton 2014-08-23 14:30:57 +00:00
root
262d5a4686 std: Use concat! and stringify! to simplify the most common assert! case.
With no custom message, we should just use concat! + stringify! for
`assert!(expr)`.

Inspired by issue #16625
2014-08-23 16:30:44 +02:00
Jimmie Elvenmark
673c555443 librustc: Don't ICE with type when name only contain underscores. 2014-08-23 16:03:28 +02:00
Daniel Hofstetter
1777047a54 Guide: Make add_three_times_four() public 2014-08-23 15:06:29 +02:00
root
b3b7c2e97b core: Separate failure formatting in str methods slice, slice_to, slice_from
Use a separate inline-never function to format failure message for
str::slice() errors.

Using strcat's idea, this makes sure no formatting code from failure is
inlined when str::slice() is inlined. The number of `unreachable` being
inlined when usingi `.slice()` drops from 5 to just 1.
2014-08-23 13:49:19 +02:00
Arpad Borsos
cb29492e77 libunicode: optimize char functions for ascii characters 2014-08-23 13:22:26 +02:00
Piotr Jawniak
ed18baeb49 Add test for #10618 and #16382
Closes #10618
Closes #16382
2014-08-23 12:31:48 +02:00
bors
f66fd2eed1 auto merge of #16692 : vadimcn/rust/fix-win64, r=luqmana
This fixes fallout from 2dc2ac1e6b, which did not take into account win64.
2014-08-23 09:55:52 +00:00
Vadim Chugunov
68811817f7 Complete renaming of win32 to windows 2014-08-23 02:11:28 -07:00
Vadim Chugunov
8c994a1237 Remove stage0 attributes. 2014-08-23 02:11:07 -07:00
Vadim Chugunov
119f8b4694 Fix intptr_t on win64 2014-08-23 02:09:02 -07:00
bors
a284240783 auto merge of #16675 : luqmana/rust/pmu, r=alexcrichton
Fixes #16671.
2014-08-23 08:10:47 +00:00
Luqman Aden
f6dfff29ac Add tests. 2014-08-23 01:03:34 -07:00
klutzy
7eb35bc2a9 test: Convert Window path to MSYS path
When MSYS shell executes program, if its arguments look like MSYS paths,
MSYS automatically converts them into Windows paths.
For example, `/c/path:/d/path` becomes `C:\path;D:\path`.
However, if there is only one path e.g. `/c/path`, it becomes `C:/path`.

maketest.py reverts the behavior to reduce confusion between MSYS and
Windows, but it didn't handle the `/c/path` case. This patch fixes the
issue.

Fixes #15297
Fixes #15250
2014-08-23 16:19:07 +09:00
nham
9a43492f59 Improve TwoWaySearcher comments. 2014-08-22 22:34:14 -04:00
bors
2e5aea65cd auto merge of #16667 : retep998/rust/master, r=pcwalton 2014-08-23 01:40:48 +00:00
bors
75396b2a06 auto merge of #16663 : Gankro/rust/heapify, r=alexcrichton
Heapify is O(n), extend as currently implemented is O(nlogn). No brainer.

Currently investigating whether extend can just be implemented as a local heapify.
2014-08-22 23:55:50 +00:00
bors
594371bb67 auto merge of #16658 : jauhien/rust/fix-llvm, r=thestinger
Upstream LLVM from VCS already has version 3.6,
configure fixed appropriately to allow building with it
2014-08-22 22:10:47 +00:00
bors
d0104d04fd auto merge of #16659 : brson/rust/slowparse, r=alexcrichton
Note that this contains a 9.5MB test file, but it should compress thoroughly.
2014-08-22 20:25:49 +00:00
P1start
fde41a3f70 Add support for trailing commas in more places
This lets the parser understand trailing commas in method calls, method
definitions, enum variants, and type parameters.

Closes #14240.
Closes #15887.
2014-08-23 07:23:51 +12:00
Luqman Aden
30ab05aeb5 librustc: Properly tag upvars in proc's to stop misleading unused_mut warnings. 2014-08-22 10:18:22 -07:00
bors
58bb603ea7 auto merge of #16651 : vks/rust/fix-bitv-bench, r=alexcrichton
Fixes #12118.

(I sneaked in an unrelated one-character whitespace fix I spotted while reviewing some benchmarks, if that is not okay, I can create a separate pull request for that.)
2014-08-22 17:05:48 +00:00
klutzy
a3d77e616b configure: Recognize i686 build on msys2 2014-08-23 01:47:37 +09:00