Commit graph

4008 commits

Author SHA1 Message Date
Brian Anderson
52f015aceb core: Cleanup warnings 2013-05-14 14:52:07 -07:00
Brian Anderson
4472a50ceb rtdebug off 2013-05-14 14:52:07 -07:00
Brian Anderson
101aaa3861 core::rt: 0 is a valid TLS key 2013-05-14 14:52:06 -07:00
Brian Anderson
d234cf7e44 core::rt: Make TCP servers work 2013-05-14 14:52:06 -07:00
Brian Anderson
414f3c7d25 core::rt: Add a simple channel type for passing buffered messages between Scheduler and Task
Called 'Tube' for lack of anything better.
2013-05-14 14:52:06 -07:00
Brian Anderson
40a9de5ebc core::rt: Add a very simple ref counted pointer 2013-05-14 14:52:06 -07:00
Brian Anderson
936fce5515 Warnings 2013-05-14 14:52:06 -07:00
Brian Anderson
272c3c2cfb Tidy 2013-05-14 14:52:06 -07:00
Brian Anderson
10355d7a7d core::rt Wire up logging to newsched tasks 2013-05-14 14:52:06 -07:00
Brian Anderson
ad6719ee0b core::rt: Just a small fix to TcpStream 2013-05-14 14:52:06 -07:00
Brian Anderson
a134503d74 core::rt: Move all the uv callback definitions to one place 2013-05-14 14:52:06 -07:00
Brian Anderson
dbf89664aa core::rt: Move the implementation of IdleWatcher to its own file 2013-05-14 14:52:06 -07:00
Brian Anderson
9138feab15 core::rt: Only use one mechanism for attaching custom data to uv handles 2013-05-14 14:52:06 -07:00
Brian Anderson
91ca3a9b29 core::rt: Reording code 2013-05-14 14:52:05 -07:00
Brian Anderson
6ab02c03da core::rt: Convert some uv functions to extension methods 2013-05-14 14:52:05 -07:00
Brian Anderson
cfd183db15 core::rt: Fix some copies in uv 2013-05-14 14:52:05 -07:00
Brian Anderson
b771c99304 core::rt: Fix the finalizer on UvTcpStream and UvTcpListener
Eliminates a lot of calls to `close`
2013-05-14 14:52:05 -07:00
Brian Anderson
01b7b7d5a0 core::rt: Use unsafe pointers instead of transmuted regions 2013-05-14 14:52:02 -07:00
bors
043d02213e auto merge of #6468 : gifnksm/rust/rposition-immutable, r=brson
`position` and `rposition` belonged to `ImmutableCopyableVector`, but they don't need the value is copyable.
2013-05-14 14:05:07 -07:00
Björn Steinbrink
7ba685c7ab Add inlining for iter_bytes for types used as hashmap keys
Not inlining these affects the hash table performance quite badly.
2013-05-14 20:32:49 +02:00
Marvin Löbel
04de8f852c Fix cosmetics for fail!() calls 2013-05-14 16:36:24 +02:00
Björn Steinbrink
bdc182cc41 Use static string with fail!() and remove fail!(fmt!())
fail!() used to require owned strings but can handle static strings
now. Also, it can pass its arguments to fmt!() on its own, no need for
the caller to call fmt!() itself.
2013-05-14 16:36:23 +02:00
gifnksm
4e1fac89bb Move position and rposition methods to ImmutableVector trait 2013-05-14 18:10:50 +09:00
bors
84745b483f auto merge of #6463 : bjz/rust/numeric-traits, r=thestinger
This is part of the numeric trait reform tracked on issue #4819
2013-05-14 01:55:42 -07:00
bors
5a2f65fb50 auto merge of #6441 : alexcrichton/rust/issue-5531, r=luqmana
Also fix up all the fallout elsewhere throughout core. It's really nice being
able to have the prelude.

I'm not quite sure how resolution works with traits, but it seems to me like the public imports at the top-level of the core crate were leaking into the sub-crates, but that could also be working as intended. Regardless, things compile without the re-exports now.
2013-05-14 00:46:48 -07:00
Brendan Zabarauskas
3515b4996a Remove unnecessary infinity check 2013-05-14 11:47:44 +10:00
Brendan Zabarauskas
44cb46f7bf Add ldexp and frexp functions 2013-05-14 11:24:55 +10:00
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
Steven Stewart-Gallus
8c5de02289 Fixed type signature of uninhabited method.
Added unit test to prevent similar mistakes from happening again. The
previous method was wrong because it dereferenced a pointer to a void type to
match on the result. No self pointer was needed, and the correct method
signature took the self value by value.
2013-05-13 10:51:14 -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