Alex Crichton
e99eff172a
Forbid priv
where it has no effect
...
This is everywhere except struct fields and enum variants.
2013-08-07 22:41:12 -04:00
Kevin Ballard
8964fcc5ac
Implement DoubleEndedIterator on Range
...
Range is now invertable as long as its element type conforms to Integer.
Remove int::range_rev() et al in favor of range().invert().
2013-08-07 22:41:09 -04:00
blake2-ppc
8523f6d643
rustc: Fix for-range loops that can use iterators
...
Transform range loops that can be regular iterator loops.
2013-08-07 22:39:57 -04:00
blake2-ppc
e7d4a9c7f2
Bugfix .each_edge in middle/graph.rs
...
Edge iterator used the length of the nodes vector, must be a mistake.
2013-08-07 22:39:57 -04:00
blake2-ppc
40bdbf0f5d
std: Fix for-range loops that can use iterators
...
Fix inappropriate for-range loops to use for-iterator constructs (or
other appropriate solution) instead.
2013-08-07 22:39:57 -04:00
blake2-ppc
026c1ae311
extra: Remove all .each methods in smallintmap
2013-08-07 22:39:57 -04:00
Alex Crichton
ffb670ffcd
Add initial support for a new formatting syntax
...
The new macro is available under the name ifmt! (only an intermediate name)
2013-08-07 19:21:43 -07:00
bors
9db698a81b
auto merge of #8358 : brson/rust/newrt, r=brson
2013-08-07 16:47:15 -07:00
Brian Anderson
85aaa44bec
Turn on the new runtime
2013-08-07 16:32:20 -07:00
Brian Anderson
52a37b63f4
rusti: Disable tests
...
Segfaulted on one of the bots. Maybe out of stack?
2013-08-07 16:32:20 -07:00
Brian Anderson
ce95b01014
Disable linked failure tests
...
The implementation currently contains a race that leads to segfaults.
2013-08-07 16:32:20 -07:00
Brian Anderson
b735e6b104
doc: Fix deadlocks in tutorial due to yield bustage
2013-08-07 16:32:20 -07:00
Brian Anderson
ad8010fdf2
xfail debug-info/option-like-enum
...
Don't understand why this broke.
2013-08-07 15:40:27 -07:00
Brian Anderson
b240524e5a
test: Fix deadlock in task-perf-linked-failure
2013-08-07 15:40:27 -07:00
Brian Anderson
44403f77d1
test: xfail a bunch of tests that are incorrectly reading os::args()[1]
2013-08-07 15:40:27 -07:00
Brian Anderson
84d17445f8
rustpkg: Disable test_uninstall
...
Seems to not work
2013-08-07 15:40:27 -07:00
Brian Anderson
0929eb4ac8
rustc: Use 4MB stacks. Needed for unoptimized builds apparently.
2013-08-07 15:40:27 -07:00
Brian Anderson
ae1ed4fd78
std: Allow spawners to specify stack size
2013-08-07 15:40:27 -07:00
Brian Anderson
f82da818a7
std::rt: Pull RUST_MIN_STACK from the environment
2013-08-07 15:40:27 -07:00
Brian Anderson
eb6143257d
std::rt: 2MB stacks again
2013-08-07 15:40:26 -07:00
bors
a85f9acbfc
auto merge of #8320 : mihneadb/rust/freq_count, r=cmr
2013-08-07 15:02:19 -07:00
Erick Tryzelaar
a54476b0aa
Merge remote-tracking branch 'remotes/origin/master' into remove-str-trailing-nulls
2013-08-07 14:10:39 -07:00
Erick Tryzelaar
aababbba8e
std: fix a bad type cast for in str.to_c_str()
2013-08-07 14:06:50 -07:00
Erick Tryzelaar
72688eaa13
std: Make CString::new unsafe b/c it can mutate a *T ptr
2013-08-07 14:06:50 -07:00
Erick Tryzelaar
d6257b315b
std: remove unnecessary test from c_str.drop and use safer transmute
2013-08-07 14:06:50 -07:00
Erick Tryzelaar
e053bff5d0
std: Fix c_str.iter() and add test
2013-08-07 14:06:45 -07:00
bors
98ec79c957
auto merge of #8294 : erickt/rust/map-move, r=bblum
...
According to #7887 , we've decided to use the syntax of `fn map<U>(f: &fn(&T) -> U) -> U`, which passes a reference to the closure, and to `fn map_move<U>(f: &fn(T) -> U) -> U` which moves the value into the closure. This PR adds these `.map_move()` functions to `Option` and `Result`.
In addition, it has these other minor features:
* Replaces a couple uses of `option.get()`, `result.get()`, and `result.get_err()` with `option.unwrap()`, `result.unwrap()`, and `result.unwrap_err()`. (See #8268 and #8288 for a more thorough adaptation of this functionality.
* Removes `option.take_map()` and `option.take_map_default()`. These two functions can be easily written as `.take().map_move(...)`.
* Adds a better error message to `result.unwrap()` and `result.unwrap_err()`.
2013-08-07 13:23:07 -07:00
Stepan Koltsov
828bfb2c61
Fix incorrect non-exhaustive matching for fixed length vecs
...
Code like this is fixed now:
```
fn foo(p: [u8, ..4]) {
match p {
[a, b, c, d] => {}
};
}
```
Invalid constructors are not reported as errors yet:
```
fn foo(p: [u8, ..4]) {
match p {
[_, _, _] => {} // this should be error
[_, _, _, _, _, .._] => {} // and this
_ => {}
}
}
```
Issue #8311 is partially fixed by this commit. Fixed-length arrays in
let statement are not yet allowed:
```
let [a, b, c] = [1, 2, 3]; // still fails
```
2013-08-07 22:07:24 +04:00
bors
cdba212e72
auto merge of #8326 : thestinger/rust/iterator, r=alexcrichton
...
The `extra::iter` module wasn't actually included in `extra.rs` when it was moved from `std`... I assume no one is going to miss it.
2013-08-07 10:32:20 -07:00
Mihnea Dobrescu-Balaur
17c12bbd1b
Add frequency count to extra::stat. #8281
2013-08-07 09:46:09 -07:00
bors
29ffbbaaa8
auto merge of #8373 : alexcrichton/rust/disable-rusti, r=cmr
...
These are causing problems on the linux bots, I'll investigate soon.
2013-08-07 08:53:20 -07:00
Erick Tryzelaar
19e17f54a0
std: removed option.take_map{,_default}
2013-08-07 08:52:09 -07:00
Erick Tryzelaar
1e490813b0
core: option.map_consume -> option.map_move
2013-08-07 08:52:09 -07:00
Alex Crichton
0927d62275
Revert "Re-enable rusti tests"
...
This reverts commit d5de801cc1
.
2013-08-07 08:29:49 -07:00
Erick Tryzelaar
9218aaa00e
std: add result.map_move, result.map_err_move
2013-08-07 08:23:55 -07:00
Erick Tryzelaar
5c08237456
option.get -> option.unwrap
2013-08-07 08:16:37 -07:00
bors
597b3fd03f
auto merge of #8305 : huonw/rust/triage-fixes, r=cmr
...
The two deletions are because the test cases are very old (still using `class` and modes!), and, as far as I can tell (since they are so old), the areas they test are well tested by other rpass tests.
2013-08-07 06:56:19 -07:00
Huon Wilson
1ce5effac2
testsuite: add explanation to a Note, and remove duplicated code.
...
Fixes #7302 .
2013-08-07 23:17:52 +10:00
Huon Wilson
e5fb4c4359
testsuite: remove incorrect section of 2 test cases. (Also, &const is disappearing.)
...
Fixes #7304 .
2013-08-07 23:17:52 +10:00
Huon Wilson
1016e8b8f7
testsuite: remove 2 very outdated testcases; functionality is tested by other class-*.rs tests.
...
Fixes #7305 , #7307 .
2013-08-07 23:17:52 +10:00
Huon Wilson
c57fde2b5f
std: adjust str::test_add so that the macro expands to all 3 items ( #8012 ).
...
Closes #3682 .
2013-08-07 23:17:52 +10:00
Michael Woerister
2c9922aa49
Enable privacy check for enum methods.
2013-08-07 14:30:00 +02:00
Young-il Choi
d463f4cb10
mk: test.mk fix to specify ADB variables not adb
2013-08-07 20:43:46 +09:00
Young-il Choi
492cbcee6d
mk: install.mk fix to specify ADB variables not adb
2013-08-07 20:42:44 +09:00
bors
54c8c23d05
auto merge of #8323 : kballard/rust/saturating, r=thestinger
...
Implement saturating math in `std::num::Saturating` and use it for `Iterator` impls
2013-08-07 04:02:16 -07:00
Young-il Choi
b32617666a
std: run test fix for ARM android
2013-08-07 19:01:43 +09:00
bors
4da1cfe923
auto merge of #8285 : huonw/rust/deriving+++, r=alexcrichton
...
Some general clean-up relating to deriving:
- `TotalOrd` was too eager, and evaluated the `.cmp` call for every field, even if it could short-circuit earlier.
- the pointer types didn't have impls for `TotalOrd` or `TotalEq`.
- the Makefiles didn't reach deep enough into libsyntax for dependencies.
(Split out from https://github.com/mozilla/rust/pull/8258 .)
2013-08-07 00:56:18 -07:00
Huon Wilson
4f3944a34f
Add test for short-circuiting #[deriving(Eq,Ord,TotalEq,TotalOrd)].
2013-08-07 16:56:50 +10:00
bors
62dbdc4ea2
auto merge of #8287 : sfackler/rust/hex, r=alexcrichton
...
FromHex ignores whitespace and parses either upper or lower case hex
digits. ToHex outputs lower case hex digits with no whitespace. Unlike
ToBase64, ToHex doesn't allow you to configure the output format. I
don't feel that it's super useful in this case.
2013-08-06 21:05:11 -07:00
Daniel Micay
55f3d04101
vec: use offset_inbounds
for iterators
...
This allows LLVM to optimize vector iterators to an `getelementptr` and
`icmp` pair, instead of `getelementptr` and *two* comparisons.
Code snippet:
~~~
fn foo(xs: &mut [f64]) {
for x in xs.mut_iter() {
*x += 10.0;
}
}
~~~
LLVM IR at stage0:
~~~
; Function Attrs: noinline uwtable
define void @"_ZN3foo17_68e1b25bca131dba7_0$x2e0E"({ i64, %tydesc*, i8*, i8*, i8 }* nocapture, { double*, i64 }* nocapture) #1 {
"function top level":
%2 = getelementptr inbounds { double*, i64 }* %1, i64 0, i32 0
%3 = load double** %2, align 8
%4 = getelementptr inbounds { double*, i64 }* %1, i64 0, i32 1
%5 = load i64* %4, align 8
%6 = ptrtoint double* %3 to i64
%7 = and i64 %5, -8
%8 = add i64 %7, %6
%9 = inttoptr i64 %8 to double*
%10 = icmp eq double* %3, %9
%11 = icmp eq double* %3, null
%or.cond6 = or i1 %10, %11
br i1 %or.cond6, label %match_case, label %match_else
match_else: ; preds = %"function top level", %match_else
%12 = phi double* [ %13, %match_else ], [ %3, %"function top level" ]
%13 = getelementptr double* %12, i64 1
%14 = load double* %12, align 8
%15 = fadd double %14, 1.000000e+01
store double %15, double* %12, align 8
%16 = icmp eq double* %13, %9
%17 = icmp eq double* %13, null
%or.cond = or i1 %16, %17
br i1 %or.cond, label %match_case, label %match_else
match_case: ; preds = %match_else, %"function top level"
ret void
}
~~~
Optimized LLVM IR at stage1/stage2:
~~~
; Function Attrs: noinline uwtable
define void @"_ZN3foo17_68e1b25bca131dba7_0$x2e0E"({ i64, %tydesc*, i8*, i8*, i8 }* nocapture, { double*, i64 }* nocapture) #1 {
"function top level":
%2 = getelementptr inbounds { double*, i64 }* %1, i64 0, i32 0
%3 = load double** %2, align 8
%4 = getelementptr inbounds { double*, i64 }* %1, i64 0, i32 1
%5 = load i64* %4, align 8
%6 = lshr i64 %5, 3
%7 = getelementptr inbounds double* %3, i64 %6
%8 = icmp eq i64 %6, 0
%9 = icmp eq double* %3, null
%or.cond6 = or i1 %8, %9
br i1 %or.cond6, label %match_case, label %match_else
match_else: ; preds = %"function top level", %match_else
%.sroa.0.0.in7 = phi double* [ %10, %match_else ], [ %3, %"function top level" ]
%10 = getelementptr inbounds double* %.sroa.0.0.in7, i64 1
%11 = load double* %.sroa.0.0.in7, align 8
%12 = fadd double %11, 1.000000e+01
store double %12, double* %.sroa.0.0.in7, align 8
%13 = icmp eq double* %10, %7
br i1 %13, label %match_case, label %match_else
match_case: ; preds = %match_else, %"function top level"
ret void
}
~~~
2013-08-06 23:54:24 -04:00