Commit graph

33366 commits

Author SHA1 Message Date
gamazeps
4ee0c4f3fb DOC: improves the str type explanation
Closes #18449
2014-10-31 19:00:00 +01:00
bors
00cc6d2409 auto merge of #17896 : mahkoh/rust/intmax, r=alexcrichton
Closes #17075

I don't know if this is correct. The easiest way to find out is to run the following program on all targets but I can't do it myself.
```c
#include <stdint.h>
#include <stdio.h>

int main(void)
{
	if (sizeof(intmax_t) != 8) {
		puts("ERROR");
		return 1;
	}
}
```
2014-10-24 03:22:29 +00:00
bors
c53f8a920e auto merge of #17960 : mahkoh/rust/clone_from_slice, r=pcwalton
Old vs. New vs. Vec::push_all

```
test slice     ... bench:   3091942 ns/iter (+/- 54460)
test slice_new ... bench:   1800065 ns/iter (+/- 69513)
test vec       ... bench:   1804805 ns/iter (+/- 75609)
```
2014-10-24 01:02:21 +00:00
bors
56d544f7ad auto merge of #17683 : gereeter/rust/ident-to-name, r=pcwalton
This does a large chunk of #6993. It is based on top of #17654.
2014-10-23 20:22:18 +00:00
bors
091b9811c8 auto merge of #18253 : steveklabnik/rust/small_doc_fixes, r=huonw
All these stars aren't needed anymore.
2014-10-23 16:57:24 +00:00
Steve Klabnik
4a74af62c6 Improve code in the intro.
All these stars aren't needed anymore.
2014-10-23 09:36:34 -04:00
bors
37f2db769f auto merge of #18217 : mikedilger/rust/bug_report_instructions, r=pnkfelix
Fixed as per @pnkfelix comments in #17848
2014-10-23 11:37:12 +00:00
bors
8a40854660 auto merge of #17868 : nick29581/rust/valgrind, r=alexcrichton
r? @alexcrichton
2014-10-23 05:27:11 +00:00
Nick Cameron
80ff1d1a10 Error if we should be able to Valgrind but can't 2014-10-23 14:28:52 +13:00
Jonathan S
2343e9d354 Part of #6993. Moved a bunch of uses of Ident to Name 2014-10-22 20:23:13 -05:00
Nick Cameron
1285d4f467 Remove support for .rc files from test.mk 2014-10-23 13:52:35 +13:00
Nick Cameron
c562b5bd9d Make rpass-valgrind work with pretty 2014-10-23 13:52:34 +13:00
Nick Cameron
edc5275563 Move some tests to run-pass-valgrind 2014-10-23 13:52:34 +13:00
Nick Cameron
f466e1a59f Add run-pass-valgrind tests
Closes #16914
2014-10-23 13:52:34 +13:00
bors
96991e9335 auto merge of #18224 : nikomatsakis/rust/issue-17594, r=alexcrichton
Add test for issue #17594

Fixes #17594
2014-10-22 23:57:11 +00:00
bors
7d7e409839 auto merge of #18092 : michaelwoerister/rust/lldb-test-versioning, r=alexcrichton
Now that there are build bots with a stable enough LLDB version on OSX we can finally let the tests run on every PR!
😹
2014-10-22 21:32:16 +00:00
bors
9f0c29af02 auto merge of #17846 : tomjakubowski/rust/rustdoc-hide-private-traits, r=alexcrichton
Fix #16563
2014-10-22 16:47:14 +00:00
bors
1d647564b1 auto merge of #18230 : cakebaker/rust/adapt_range_value_to_variable_name, r=steveklabnik
The variable name <code>one_to_one_hundred</code> implies that it will contain a collection with the values from 1 to 100, but the collection contains the values from 0 to 99. This patch changes the ranges to produce a collection with the values from 1 to 100.
2014-10-22 14:32:11 +00:00
Daniel Hofstetter
88cf0b92dd Guide: Adapt range values to variable name 2014-10-22 15:32:28 +02:00
bors
d44ea720fa auto merge of #18223 : nikomatsakis/rust/coherence-orphan-18222, r=pcwalton
Adjust orphan rules to consider all input types, not just self type.

Fixes #18222.

r? @pcwalton
2014-10-22 09:22:09 +00:00
Michael Woerister
423dca7fc6 debuginfo: Print more output in lldb_batchmode.py for better error logs. 2014-10-22 11:08:21 +02:00
Michael Woerister
7fadda6e7e debuginfo: Let LLDB tests run in parallel again since our min-supported version has no problems with that. 2014-10-22 10:47:46 +02:00
Michael Woerister
93bd605c58 debuginfo: Enable LLDB test suite on Darwin. 2014-10-22 10:47:45 +02:00
Michael Woerister
dbf0167de9 debuginfo: Make some path LLDB-related paths in the test runner absolute to help the build bots. 2014-10-22 10:47:45 +02:00
Michael Woerister
47e8cf7697 debuginfo: Gate all LLDB debuginfo tests on a minimum LLDB version being available 2014-10-22 10:47:45 +02:00
bors
7088c45ef4 auto merge of #18141 : phildawes/rust/master, r=brson
Hello! I noticed spans are wrong for the PatIdents of self args. (I use spans a lot in racer)
2014-10-22 07:07:09 +00:00
bors
c29a7520e7 auto merge of #18213 : pcwalton/rust/pcg-default, r=aturon
Enable parallel codegen (2 units) by default when --opt-level is 0 or 1.  This
gives a minor speedup on large crates (~10%), with only a tiny slowdown (~2%)
for small ones (which usually build in under a second regardless).  The current
default (no parallelization) is used when the user requests optimization
(--opt-level 2 or 3), and when the user has enabled LTO (which is incompatible
with parallel codegen).

This commit also changes the rust build system to use parallel codegen
when appropriate.  This means codegen-units=4 for stage0 always, and
also for stage1 and stage2 when configured with --disable-optimize.
(Other settings use codegen-units=1 for stage1 and stage2, to get
maximum performance for release binaries.)  The build system also sets
codegen-units=1 for compiletest tests (compiletest does its own
parallelization) and uses the same setting as stage2 for crate tests.

r? @aturon
2014-10-22 04:42:11 +00:00
Niko Matsakis
7b021859a4 Add test for issue #17594 2014-10-21 23:58:09 -04:00
Niko Matsakis
aeba2ccf30 Adjust orphan rules to consider all input types, not just self type.
Fixes #18222.
2014-10-21 23:52:00 -04:00
Mike Dilger
f11f58dc97 Fix issue #17848 (Questionable advice in bug report instructions) 2014-10-22 13:58:31 +13:00
bors
3d2cf60631 auto merge of #18121 : nikomatsakis/rust/method-call-use-trait-matching-infrastructure-2, r=pcwalton
Convert trait method dispatch to use new trait matching machinery.

This fixes about 90% of #17918. What remains to be done is to make inherent dispatch work with conditional dispatch as well. I plan to do this in a future patch by generalizing the "method match" code slightly to work for inherent impls as well (the basic algorithm is precisely the same).

Fixes #17178.

This is a [breaking-change] for two reasons:

1. The old code was a bit broken. I found various minor cases, particularly around operators, where the old code incorrectly matched, but an extra `*` or other change is now required. (See commit e8cef25 ("Correct case where the old version of method lookup...") for examples.)
2. The old code didn't type check calls against the method signature from the *trait* but rather the *impl*. The two can be different in subtle ways. This makes the new method dispatch both more liberal and more conservative than the original. (See commit 8308332 ("The new method lookup mechanism typechecks...") for examples.)

r? @pcwalton since he's been reviewing most of this series of changes
f? @nick29581 for commit 39df55f ("Permit DST types to unify like other types")
cc @aturon as this relates to library stabilization
2014-10-22 00:22:04 +00:00
Stuart Pernsteiner
c245c5bbad enable parallel codegen by default
Enable parallel codegen (2 units) by default when --opt-level is 0 or 1.  This
gives a minor speedup on large crates (~10%), with only a tiny slowdown (~2%)
for small ones (which usually build in under a second regardless).  The current
default (no parallelization) is used when the user requests optimization
(--opt-level 2 or 3), and when the user has enabled LTO (which is incompatible
with parallel codegen).

This commit also changes the rust build system to use parallel codegen
when appropriate.  This means codegen-units=4 for stage0 always, and
also for stage1 and stage2 when configured with --disable-optimize.
(Other settings use codegen-units=1 for stage1 and stage2, to get
maximum performance for release binaries.)  The build system also sets
codegen-units=1 for compiletest tests (compiletest does its own
parallelization) and uses the same setting as stage2 for crate tests.
2014-10-21 14:46:16 -07:00
Niko Matsakis
b066d09be8 Patch up broken error messages 2014-10-21 17:36:15 -04:00
bors
2130f22216 auto merge of #18203 : mahkoh/rust/cstring, r=thestinger
This is about 20x faster on my machine.
2014-10-21 19:32:10 +00:00
Niko Matsakis
646ec7d9a9 Address nits by @pcwalton 2014-10-21 12:32:37 -04:00
Niko Matsakis
53ede4403b Coherence tests that seemed to be missing. 2014-10-21 12:32:37 -04:00
Niko Matsakis
450263de4a Tests for method resolution in the face of various ambiguities or non-ambiguities. These
are mostly new tests though I also revamped (and renamed) some of the existing tests.
2014-10-21 12:32:36 -04:00
Niko Matsakis
e09fc03701 Various minor cases where errors are reported in slightly different ways. 2014-10-21 12:32:36 -04:00
Niko Matsakis
7f8ca53669 Test where the old infrastructure failed to detect the (applicable) impl of FnMut for
some reason.
2014-10-21 12:32:36 -04:00
Niko Matsakis
df714cfda7 The new method lookup mechanism typechecks calls against the method type declared in the trait, not in the impl. In some cases that results in tighter rules, and in some cases looser. Correct for that. 2014-10-21 12:32:36 -04:00
Niko Matsakis
98e237a681 Correct case where the old version of method lookup was incorrectly matching,
as far as I can tell.
2014-10-21 12:32:36 -04:00
Niko Matsakis
dad2db7c83 Change method lookup infrastructure to use the trait methods. Instead
of tracking individual candidates per impl, we just track one
candidate for the extension trait itself, and let the trait resolution
handle walking the individual impls and so forth. Also change the
interface to report back a richer notion of error.
2014-10-21 12:32:36 -04:00
Tom Jakubowski
370c9c54c2 rustdoc: hide private traits in strip-private pass
Fix #16563
2014-10-21 08:49:43 -07:00
Niko Matsakis
1562d8cbd8 Generalize the replace-late-bound-regions function to operate
over anything that is foldable, not just fn signatures.
2014-10-21 11:49:38 -04:00
Niko Matsakis
5c505b75b1 Permit DST types to unify like other types.
Also:
1. stop eagerly coercing from `[T, ..n]` to `[T]` only do so if requested.
2. permit error to be interact more freely.

Fixes #17178.
2014-10-21 11:49:38 -04:00
Niko Matsakis
e6a1936d26 Implement "method matching". Similar to trait matching, but with the twist that we
have to take the transformed self type into account, and allow for coercion between
the receiver and the actual type declared on the impl.
2014-10-21 11:49:38 -04:00
Niko Matsakis
04386f4217 Prune unused parameters. 2014-10-21 11:49:37 -04:00
bors
4764c16011 auto merge of #18201 : Gankro/rust/option-what, r=alexcrichton
🐳
2014-10-21 14:52:11 +00:00
bors
b69cd73b7b auto merge of #17508 : vberger/rust/stability_lint_for_nested_macros, r=pnkfelix
Finishes the job of #17286.

Now the stability lint will successfully detect patterns such as:
```
first_macro!(second_macro!(deprecated_function()));
```
```
macro_rules! foo (
    ($e: expr) => (bar!($e))
)
foo!(deprected_function());
```
and
```
println!("{}", deprecated_function());
```
even with more levels of nesting, such as
```
println!("{}", foo!(bar!(deprecated_function())));
```
2014-10-21 11:37:14 +00:00
bors
e8cc3f26ec auto merge of #18194 : jmesmon/rust/libbacktrace-env, r=alexcrichton
This was run into while attempting to integrate rust with bitbake's build system. I expect it's caused by some other environment variables being set to gcc but didn't track down the exact cause myself.
2014-10-21 08:22:09 +00:00