Commit Graph

18110 Commits

Author SHA1 Message Date
Matthijs Hofstra
a9f2132606 Adds atomic_load, atomic_load_acq, atomic_store, and atomic_store_rel intrinsics.
The default versions (atomic_load and atomic_store) are sequentially consistent.
The atomic_load_acq intrinsic acquires as described in [1].
The atomic_store_rel intrinsic releases as described in [1].

[1]: http://llvm.org/docs/Atomics.html
2013-05-12 23:23:40 +02:00
bors
7dc94b8768 auto merge of #6414 : samebchase/rust/experimental, r=graydon
Implemented to_str() for HashMap and HashSet
Added tests.
Minor formatting and stylistic cleanups.
2013-05-12 13:04:34 -07:00
bors
638b394a37 auto merge of #6427 : catamorphism/rust/issue-6319, r=nikomatsakis
r? @nikomatsakis In #6319, several people mentioned they ran into a "computing
fictitious type" ICE in trans. This turns out to be because some
of my recent changes to typeck::check::_match resulted in type errors
getting reported with ty_err as the expected type, which meant the errors
were suppressed, and typechecking incorrectly succeeded (since the errors
weren't recorded).

Changed the error messages in these cases not to use an expected type at all,
rather, printing out a string describing the type that was expected (which is
what the code originally did). The result is a bit repetitive and the
proliferation of error-reporting functions in typeck::infer is a bit annoying,
but I thought it was important to fix this now; more cleanup can happen later.
2013-05-12 10:34:38 -07:00
Samuel Chase
0acb6abb86 Add use declaration for container::Set
All tests pass now.
2013-05-12 21:02:12 +05:30
Corey Richardson
258abf1424 Fix failing test 2013-05-12 09:38:39 -04:00
bors
36771ef609 auto merge of #6429 : gifnksm/rust/bigint-is_even, r=catamorphism
`BigUint::is_even()` didn't return correct value.
2013-05-11 22:40:36 -07:00
bors
1f62b23411 auto merge of #6431 : catamorphism/rust/warnings, r=catamorphism
Just cleaning up warnings.
2013-05-11 21:28:37 -07:00
Corey Richardson
a279d65102 clean up the last bit of warnings 2013-05-11 20:36:47 -07:00
Tim Chevalier
ed41864464 Warning police 2013-05-11 20:36:44 -07:00
bors
35e6ce548f auto merge of #6426 : gifnksm/rust/new-iter, r=catamorphism 2013-05-11 20:34:40 -07:00
bors
f2f10bdc7a auto merge of #6420 : huonw/rust/rm-exec, r=thestinger 2013-05-11 18:49:41 -07:00
gifnksm
a2b81ccba4 libstd: Fix BigUint::is_even 2013-05-12 10:17:23 +09:00
Tim Chevalier
cdb52c0201 rustc: Don't call type_error_message() with ty_err as the expected type
In #6319, several people mentioned they ran into a "computing
fictitious type" ICE in trans. This turns out to be because some
of my recent changes to typeck::check::_match resulted in type errors
getting reported with ty_err as the expected type, which meant the errors
were suppressed, and typechecking incorrectly succeeded (since the errors
weren't recorded).

Changed the error messages in these cases not to use an expected type at all,
rather, printing out a string describing the type that was expected (which is
what the code originally did). The result is a bit repetitive and the
proliferation of error-reporting functions in typeck::infer is a bit annoying,
but I thought it was important to fix this now; more cleanup can happen later.
2013-05-11 17:51:00 -07:00
bors
82164a1e45 auto merge of #6402 : kud1ing/rust/fixes, r=pcwalton 2013-05-11 16:49:40 -07:00
gifnksm
82f963e347 libcore: Change each_val to follow new for-loop protocol 2013-05-12 08:06:31 +09:00
bors
9ee8d506d9 auto merge of #6398 : osaut/rust/master, r=bstrie
I have replaced io::println by println in the tutorial as I do not think it is needed anymore since it is already included in prelude.rs.
2013-05-11 15:10:44 -07:00
bors
8ca64a423b auto merge of #6397 : cantsin/rust/rusti-fixes, r=catamorphism
Fixes #6378

Don't pass the binary name to the LLVMRustExecuteJIT closure, otherwise it will leak memory; the binary name doesn't seem to be needed, anyhow.
2013-05-11 14:04:44 -07:00
bors
957251817b auto merge of #6389 : sonwow/rust/issue-3356, r=bstrie
Fix for #3356
2013-05-11 12:55:49 -07:00
bors
e478cedb0a auto merge of #6385 : huonw/rust/rustc-dtor-struct-match, r=nikomatsakis
**Caveat**: With the current commit, this check only works for `match`s, the checks (incorrectly) do not run for patterns in `let`s, and invalid/unsafe code compiles.

I don't know how to fix this, I experimented with some things to try to make let patterns and match patterns run on the same code (since this would presumably fix many of the other unsoundness issues of let-patterns, e.g. #6225), but I don't understand enough of the code. (I think I heard someone talking about a fix for `let` being in progress?)

Fixes #6344 and #6341.
2013-05-11 11:49:50 -07:00
bors
96de2b0273 auto merge of #6383 : huonw/rust/rustc-expand-then-strip, r=thestinger
This allows macros to create tests and benchmarks.

This is possibly unsound (I've got no idea, but it seemed to work), and being able to programmatically generate benchmarks to compare several implementations of similar algorithms is nice.
2013-05-11 10:52:52 -07:00
Samuel Chase
37bea2a7d0 Fix errors in test_hashset().
All tests now pass.
2013-05-11 20:35:44 +05:30
Samuel Chase
7d43b12c32 Use acc.push_str() instead of str::push_str(..)
Also added some whitespace to enhance readabilty.
2013-05-11 19:31:53 +05:30
Samuel Chase
9ed9e8c8d0 Add test: test_hashset() 2013-05-11 19:25:14 +05:30
Samuel Chase
e2c73ccaf2 Add str representation for HashSet. 2013-05-11 19:18:14 +05:30
Samuel Chase
b8d0ebe124 Remove extra space between key and value.
1. Extra space removed.
2. Using acc.push_str() instead of str::push_str
3. Update test to reflect representation change.
2013-05-11 19:09:11 +05:30
Samuel Chase
3c1e787884 All tests, including newly added test_hashmap() pass. The empty Hash Table doesn't need to be mutable. 2013-05-11 17:40:52 +05:30
Huon Wilson
9b30fa3116 Correct testcases that passed because fns with #[test] were stripped before expansion. 2013-05-11 18:24:02 +10:00
bors
18a47f9580 auto merge of #6384 : thomaslee/rust/issue-4202, r=catamorphism
This fixes the issue described in #4202.

From what I understood of the code, when we reexport a trait in a submodule using e.g. "pub use foo::SomeTrait", we were not previously making an effort to reexport the static methods on that trait.

I'm new to the Rust code base (and the Rust language itself) so my approach may not be kosher, but this patch works by changing the encoder to include the static methods associated with traits.

I couldn't see any tests for this area of the code, so I didn't really have any examples to go by. If tests are needed, I'm happy to work through that if I can get some assistance to do so.
2013-05-11 00:43:51 -07:00
bors
d43d3e538c auto merge of #6376 : nikomatsakis/rust/issue-6272-tests, r=graydon
r? @graydon
2013-05-10 22:58:53 -07:00
bors
842e304ab5 auto merge of #6368 : catamorphism/rust/issue-5315, r=catamorphism 2013-05-10 21:52:56 -07:00
Tom Lee
1e241ce52b Test case for issue #4202 2013-05-10 21:33:58 -07:00
Huon Wilson
4958e9b4b6 Remove core executable 2013-05-11 13:42:51 +10:00
bors
9f106a643e auto merge of #6260 : alexcrichton/rust/issue-3466-no-swap, r=pcwalton
There may be a more efficient implementation of `core::util::swap_ptr`. The issue mentioned using `move_val_init`, but I couldn't figure out what that did, so I just used `copy_memory` a few times instead.

I'm not exactly the best at reading LLVM generated by rust, but this does appear to be optimized away just as expected (when possible).
2013-05-10 20:35:00 -07:00
Alex Crichton
60803e5fc8 Fix tests with the swap operator 2013-05-10 22:51:06 -04:00
Alex Crichton
63c7e2f991 Remove the '<->' operator from the language 2013-05-10 22:51:06 -04:00
Alex Crichton
998fececd6 Stop using the '<->' operator 2013-05-10 22:51:06 -04:00
Alex Crichton
7d22437ecd Implement util::swap without the '<->' operator 2013-05-10 22:51:06 -04:00
bors
c49cf8b330 auto merge of #6205 : brson/rust/flate, r=brson
r? @graydon

I don't think this is necessary in core.
2013-05-10 19:41:00 -07:00
bors
3e0400fb86 auto merge of #6223 : alexcrichton/rust/issue-6183, r=pcwalton
Closes #6183.

The first commit changes the compiler's method of treating a `for` loop, and all the remaining commits are just dealing with the fallout.

The biggest fallout was the `IterBytes` trait, although it's really a whole lot nicer now because all of the `iter_bytes_XX` methods are just and-ed together. Sadly there was a huge amount of stuff that's `cfg(stage0)` gated, but whoever lands the next snapshot is going to have a lot of fun deleting all this code!
2013-05-10 17:56:02 -07:00
Alex Crichton
606bd75586 Fix merge "failures" 2013-05-10 19:20:21 -04:00
Alex Crichton
b05aae2d41 test: Use the new for protocol 2013-05-10 19:20:20 -04:00
Brian Anderson
7652f3ddb8 Move flate from core to std 2013-05-10 16:00:26 -07:00
Samuel Chase
fd5a3520d5 Removed test_hashmap() for the time, being. All tests pass with make check. 2013-05-11 04:00:00 +05:30
Lenny222
52610c3980 more back-ticks, less colons 2013-05-10 23:34:20 +02:00
Samuel Chase
d807f00bfd Add to_str() for HashMaps, and some basic tests as well. 2013-05-11 02:14:36 +05:30
Corey Richardson
7d4bb90e76 Remove redundant import error 2013-05-10 16:23:12 -04:00
bors
d546493096 auto merge of #6380 : pcwalton/rust/core-text-ice, r=pcwalton 2013-05-10 13:10:54 -07:00
Olivier Saut
017e7e8be1 Replace io::println by println as it is now included in prelude.rs 2013-05-10 21:12:11 +02:00
James Tranovich
3db74ddd2e Fixes rusti crashes.
Don't pass the binary name to the LLVMRustExecuteJIT closure; doesn't
seem to be needed, anyhow.
2013-05-10 10:51:00 -07:00
bors
dba9337a48 auto merge of #6366 : catamorphism/rust/issue-3920, r=catamorphism
r? @nikomatsakis as per #3920
2013-05-10 05:52:48 -07:00