Commit Graph

2721 Commits

Author SHA1 Message Date
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
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
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
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
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
Youngsoo Son
24ef88cee9 renamed str::from_slice to str::to_owned 2013-05-10 20:08:56 +09:00
bors
fdf601eaf3 auto merge of #6358 : crabtw/rust/mips-segstk, r=brson
I changed ```RED_ZONE_SIZE``` to ```RZ_MAC_32``` because of stack canary failure.
Here is a LLVM patch for MIPS segmented stacks.
http://people.cs.nctu.edu.tw/~jyyou/rust/mips-segstk.patch

Current test results
```
failures:
    rand::tests::test_rng_seeded_custom_seed2
    run::tests::test_forced_destroy_actually_kills
    run::tests::test_unforced_destroy_actually_kills
    time::tests::run_tests
    uv_ll::test::test_uv_ll_struct_size_addrinfo
    uv_ll::test::test_uv_ll_struct_size_uv_timer_t

segfaults:
    rt::io::option::test::test_option_writer_error
    rt::local_services::test::unwind
    rt::sched::test_swap_tasks_then
    stackwalk::test_simple
    stackwalk::test_simple_deep
```
2013-05-10 04:07:50 -07:00
Youngsoo Son
b7da975049 renamed vec::from_slice to vec::to_owned 2013-05-10 18:38:54 +09:00
Alex Crichton
28256052a4 core: Use the new for protocol 2013-05-10 02:46:18 -04:00
Youngsoo Son
c8e93edf55 Move core::task::local_data to core::local_data 2013-05-10 11:42:45 +09:00
Tim Chevalier
cd235d4230 core: Make intrinsics::forget unsafe, too 2013-05-09 15:28:28 -07:00
Tim Chevalier
646f16d7e4 core: Make intrinsics::init unsafe
as per #3920
2013-05-09 15:27:38 -07:00
bors
7675856253 auto merge of #6354 : Aatch/rust/uninit-intrinsic, r=graydon
Adds an `uninit` intrinsic.

It's just an empty function, so llvm optimizes it down to nothing.

I changed all of the `init` intrinsic usages to `uninit` where it seemed appropriate to.
2013-05-09 12:37:00 -07:00