2780 Commits

Author SHA1 Message Date
bors
7d81c80c65 auto merge of #6388 : recrack/rust/each2_mut, r=pcwalton
- vec.rs :add 'each2_mut function'
- testsuit : run-pass/vec-each2_mut.rs
2013-05-13 17:40:46 -07:00
Alex Crichton
66e1e51701 Remove re-exports from libcore/core.rc
Also fix up all the fallout elsewhere throughout core. It's really nice being
able to have the prelude.
2013-05-13 18:51:40 -04:00
bors
ad5bfd600d auto merge of #6387 : brson/rust/unstable, r=brson
r? @pcwalton

* Move `SharedMutableState`, `LittleLock`, and `Exclusive` from `core::unstable` to `core::unstable::sync`
* Modernize the `SharedMutableState` interface with methods
* Rename `SharedMutableState` to `UnsafeAtomicRcBox` to match `RcBox`.
2013-05-13 14:49:48 -07:00
Brian Anderson
ab284d44d8 core::rt Restructure some modules
Put all uv code under rt::uv, as if it were in its own crate.
Pull local_sched out of rt::sched.
2013-05-13 14:24:10 -07:00
Brian Anderson
23bf892ae5 core::rt: Improve docs 2013-05-13 14:24:10 -07:00
Brian Anderson
93ca5ebccb core::rt: Clean up the interface to rtio
Make names that better match rt::io. Return error types.
2013-05-13 14:24:10 -07:00
Brian Anderson
b2fbd34603 core::rt: Begin implementing TcpStream
This ended up touching a lot of code related to error handling.
2013-05-13 14:24:10 -07:00
Brian Anderson
0b4d4edf8b core::rt: Fix a warning about unnecessary mutable variable 2013-05-13 14:24:10 -07:00
Brian Anderson
34be071353 core::rt: Remove Close trait
We will just use RAII for now.
2013-05-13 14:24:10 -07:00
bors
3abc5b3ffb auto merge of #6417 : pcwalton/rust/exprs-in-patterns, r=pcwalton
r? @graydon
2013-05-13 13:25:42 -07:00
Brian Anderson
369231beb4 core: Rename SharedMutableState to UnsafeAtomicRcBox 2013-05-13 12:13:56 -07:00
Brian Anderson
fa1d0477ed core: Move locks, atomic rc to unstable::sync 2013-05-13 12:13:56 -07:00
Brian Anderson
4f44624415 core: Move unstable to unstable/mod.rs 2013-05-13 12:13:33 -07:00
Brendan Zabarauskas
8d4d2b00c5 Add inverse hyperbolic functions 2013-05-14 00:11:35 +10:00
bors
1bf2f68bb2 auto merge of #6437 : Thiez/rust/atomic, r=Aatch
This pull request adds 4 atomic intrinsics to the compiler, in preparation for #5042.

* `atomic_load(src: &int) -> int` performs an atomic sequentially consistent load.
* `atomic_load_acq(src: &int) -> int` performs an atomic acquiring load.
* `atomic_store(dst: &mut int, val: int)` performs an atomic sequentially consistent store.
* `atomic_store_rel(dst: &mut int, val: int)` performs an atomic releasing store.

For more information about the whole acquire/release thing: http://llvm.org/docs/Atomics.html

r?
2013-05-13 05:04:41 -07:00
Matthijs Hofstra
852af346d3 Tidy 2013-05-13 13:33:34 +02:00
Youngmin Yoo
943b9d5dd9 Add vec.rs each2_mut function 2013-05-13 13:55:09 +09:00
Patrick Walton
58a37a1f48 libstd: Fix merge fallout. 2013-05-12 17:36:53 -07:00
Patrick Walton
db0693ac8d libsyntax: Tighten up expressions in patterns to only allow identifiers or literals (possibly with a minus).
This had very minimal fallout.
2013-05-12 16:35:19 -07:00
Patrick Walton
5d3559e645 librustc: Make self and static into keywords 2013-05-12 16:35:18 -07:00
Patrick Walton
06ef889cdc libsyntax: Remove extern mod foo { ... } from the language. 2013-05-12 16:33:15 -07:00
bors
8d1a09c810 auto merge of #6348 : sstewartgallus/rust/incoming, r=brson
In this commit I added a useful utility type, named Void, that encapsulates the
doable but annoying job of creating an uninhabited type. As well, a function on
that type, named absurd, was created which is useful for ignoring the result of
matching on that type. No unit tests were created because it is not possible to
create an instance of this type to test the usage of.

This type is useful because it is like NonCopyable in that it can be used to
create a type with special characteristics without special bloat. For instance,
instead of typing pub struct PhantomType { priv contents : () } for each void
type one may want to use one can simply type pub struct PhantomType (Void);.
This type make such special cases much easier to write.
2013-05-12 16:07:40 -07:00
bors
830b945a9d auto merge of #6439 : bjz/rust/float-classify, r=brson 2013-05-12 15:07:42 -07:00
Brendan Zabarauskas
4f8084a363 Make Float::classify matching more clear for f64 and f32 2013-05-13 07:57:27 +10:00
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
Samuel Chase
0acb6abb86 Add use declaration for container::Set
All tests pass now.
2013-05-12 21:02:12 +05:30
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
82f963e347 libcore: Change each_val to follow new for-loop protocol 2013-05-12 08:06:31 +09:00
bors
957251817b auto merge of #6389 : sonwow/rust/issue-3356, r=bstrie
Fix for #3356
2013-05-11 12:55:49 -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
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
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
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
Samuel Chase
d807f00bfd Add to_str() for HashMaps, and some basic tests as well. 2013-05-11 02:14:36 +05:30