Niko Matsakis
1be24f0758
replace explicit calls to vec::each with vec::each_ref, partially demode str
2012-09-18 21:31:00 -07:00
Brian Anderson
2906f2de31
core: Rename 'unsafe' mod to 'cast'
2012-09-18 19:36:25 -07:00
Brian Anderson
d53cfd225a
core: Move Exclusive and SharedMutableState to the private mod
2012-09-18 15:23:57 -07:00
Brian Anderson
2cdb23bbc0
Replace uses of 'unchecked' with 'unsafe'
2012-09-18 11:31:57 -07:00
Brian Anderson
287114a3b9
Remove some transitional code
2012-09-12 15:09:21 -07:00
Niko Matsakis
8a8f200d10
Introduce auto adjustment table to subsume autoderef/autoref/borrowings.
...
Fixes #3261
Fixes #3443
2012-09-11 21:25:01 -07:00
Tim Chevalier
c087886e93
Make moves explicit in arguments
2012-09-11 20:02:34 -07:00
Brian Anderson
93d3b8aa6b
Convert class methods to impl methods. Stop parsing class methods
2012-09-10 16:13:08 -07:00
Tim Chevalier
1a33c25d6f
Make moves explicit in pipes and pipe compiler
2012-09-10 15:15:10 -07:00
Brian Anderson
3bd1f32cd9
Convert all kind bounds to camel case. Remove send, owned keywords.
2012-09-07 18:10:11 -07:00
Brian Anderson
f0eae8f1c1
Convert field terminators to commas. Stop parsing semis.
2012-09-07 16:12:15 -07:00
Brian Anderson
2572e80355
Remove 'let' syntax for struct fields
2012-09-07 14:02:33 -07:00
Patrick Walton
feb014eb3c
rustc: Add an "ne" method to the Eq trait, and implement it everywhere
2012-09-07 12:24:48 -07:00
Brian Anderson
02b1c32e4d
core: Remove struct ctors
2012-09-04 15:46:33 -07:00
Patrick Walton
437073868e
libcore: "import" -> "use"
2012-09-04 11:12:17 -07:00
Brian Anderson
d777e51333
Demode reinterpret_cast
2012-09-01 18:18:29 -07:00
Patrick Walton
96534365c2
rustc: Make <
and =
into traits
2012-08-29 18:25:22 -07:00
Brian Anderson
cfbc7cbdc7
Convert core::pipes to camel case
2012-08-28 14:33:18 -07:00
Patrick Walton
ff513b1bcd
libcore: Replace a bunch of "== None" with ".is_none()".
...
Generally, "== None" calls into the shape glue, and it's also more useful.
2012-08-27 17:49:35 -07:00
Patrick Walton
f2dcd7663a
libcore: Use is_none() in pipes
2012-08-27 17:43:15 -07:00
Brian Anderson
8337fa1a54
Camel case the option type
2012-08-26 15:56:16 -07:00
Ben Blum
8d00603d78
Use less move_it in pipes and future (all but one use)
2012-08-25 03:07:30 -04:00
Ben Blum
c47342e7c2
Convert pipes to new atomic intrinsics
2012-08-23 16:54:25 -04:00
Paul Stansifer
77e83d83a9
Change calls of proto!
to use parens.
2012-08-23 11:14:15 -07:00
Paul Stansifer
29f32b4a72
m1!{...}
-> m1!(...)
2012-08-23 11:14:14 -07:00
Ben Blum
fe2566777d
Use swap_remove in pipes::select(). Close #3219 .
2012-08-22 22:20:42 -04:00
Eric Holk
5f57588887
Update the rock-paper-scissors example in the tutorial, and rename some types in core::pipes
2012-08-16 17:50:36 -07:00
Eric Holk
b2452896d1
Don't use move, because it is less safe than the unsafe move_it macro.
2012-08-16 16:46:20 -07:00
Eric Holk
942649a260
Make wait_many work on selectable types instead.
...
This should avoid allocation in many select paths.
2012-08-16 16:46:20 -07:00
Brian Anderson
913f7bdae7
Modify pipec to not emit calls to some and none
2012-08-15 16:53:41 -07:00
Brian Anderson
74c69e1053
Convert more core types to camel case
2012-08-15 14:14:20 -07:00
Eric Holk
8be0f665bc
De-mode pipes
2012-08-15 13:58:08 -07:00
Ben Blum
fa8fc4b2b5
Add 1shot pipe chan_one/port_one type aliases and convert std::sync to use them
2012-08-15 13:22:50 -04:00
Brian Anderson
5394e34aa4
core: Camel case some lesser-used modules
2012-08-13 18:59:48 -07:00
Ben Blum
3a403e36d3
Add pipes::oneshot() to wrap pipes::oneshot::init()
2012-08-13 19:45:48 -04:00
Ben Blum
2ac288383d
Add pipes::oneshot(), pipes::send_one(), pipes::try_send_one() wrappers.
2012-08-13 19:45:48 -04:00
Eric Holk
8bb5f077c4
Comments describing the packet structures for pipes.
2012-08-13 16:20:23 -07:00
Eric Holk
ebe7b0cc37
Remove print
2012-08-10 18:27:48 -07:00
Eric Holk
d2e9d99f81
Handle failure during select nicely. Fixes #3176
2012-08-10 18:19:42 -07:00
Ben Blum
42825fbea6
Split libcore/arc.rs: arc -> std::arc; exclusive -> unsafe::exclusive
2012-08-10 20:53:09 -04:00
Eric Holk
4808d59909
Terminate blocked receive packets on failure. Fixes #3168 .
2012-08-10 16:26:22 -07:00
Eric Holk
6a10e3a713
Added oneshot protocol. Fixes #3125
2012-08-09 11:55:17 -07:00
Brian Anderson
6a0720b439
Convert impls to new syntax
2012-08-08 18:19:24 -07:00
Eric Holk
e997948c8a
Remove an invalid assert and some commented out code.
2012-08-08 18:03:28 -07:00
Eric Holk
c0874dbd21
Adding try_send for pipes::chan and pipes::shared_chan
2012-08-08 18:03:27 -07:00
Eric Holk
c5fbff01ce
Add a really optimistic fast path in receive. Gives about a 7% performance improvement in msgsend-ring-pipes
2012-08-08 10:28:57 -07:00
Ben Blum
bdbad614ac
Remove rust_cond_lock and sys::condition (rename to little_lock)
2012-08-07 18:18:48 -04:00
Brian Anderson
2772b2e5c7
syntax: Make match arm parsing more restrictive again
...
Require comma separators for all expression types except the plain block
2012-08-07 12:23:43 -07:00
Eric Holk
abf4421e7c
Generate try_send versions for all the messages. Fixes #3128
2012-08-07 11:47:12 -07:00
Eric Holk
8d1922d4c8
Add a selectable implementation for *packet_header
2012-08-07 11:47:12 -07:00
Brian Anderson
ecaf9e39c9
Convert alt to match. Stop parsing alt
2012-08-06 15:36:30 -07:00
Eric Holk
4544c015b3
Fill out rust docs for pipes some more.
2012-08-06 13:25:34 -07:00
Eric Holk
9f287c211e
Refcount tasks in packets to avoid races.
...
Revert "Once again, revert "Use pipes in compiletest""
Fixes #3098
2012-08-06 09:10:19 -07:00
Eric Holk
86947e47ad
More documentation on pipes, and moving assert in runtime.
2012-08-06 09:07:40 -07:00
Brian Anderson
025d86624d
Switch alts to use arrows
2012-08-05 22:08:09 -07:00
Eric Holk
749a184a06
Fix a failing string test.
2012-08-03 12:04:19 -07:00
Eric Holk
01ca0d1f68
Be more defensive in pipes ( #3098 )
2012-08-03 12:04:18 -07:00
Niko Matsakis
31c5cec55b
Purge placement new; Make borrowck know about unary move.
...
cc #3071
2012-08-02 22:36:36 -07:00
Eric Holk
bd195518c7
Fix an apparent race in pipes.
...
Also removed some unsafety in pipes and added vec::consume_mut.
2012-08-02 19:27:07 -07:00
Eric Holk
110ff312df
Give better error messages when port_set.recv fails.
2012-08-02 19:27:07 -07:00
Brian Anderson
b355936b4d
Convert ret to return
2012-08-01 19:16:06 -07:00
Eric Holk
e7a69fbe4e
Working on documentation of pipes.
2012-08-01 12:30:07 -07:00
Patrick Walton
c88933d714
rustc: Implement unary move. Closes #917 .
2012-07-31 17:33:20 -07:00
Paul Stansifer
a9cc5066ee
Change syntax extension syntax: #m[...]
-> m!{...}
.
2012-07-30 18:38:15 -07:00
Eric Holk
79f5d62d47
Added .peek for recv_packets
2012-07-26 17:10:48 -07:00
Eric Holk
62d4f8fe82
Added a select2 trait. Fixes #2898
2012-07-25 15:15:46 -07:00
Eric Holk
08a77e06a8
Rewrite task-comm-NN to use pipes
2012-07-25 15:15:46 -07:00
Eric Holk
1dde5e7fc2
Thread spans through the pipe compiler. They aren't perfect, but they make debugging far easier than core.rc:0:0.
...
Changed the is_bounded check, so we fail compiling core right now due to not supporting type parameters.
2012-07-25 12:12:25 -07:00
Eric Holk
f5be06fa1f
Added infrastructure to spin for a bit on recv. A spin count > 0 makes bench/pingpong.rs about 10x faster, but makes msgsend-ring-pipes unbearably slow.
2012-07-25 12:12:25 -07:00
Eric Holk
35576168dc
Added a benchmark of bounded vs unbounded. Bounded is 8-12% faster. The macros currently don't work without pretty printing first.
2012-07-25 12:12:25 -07:00
Eric Holk
7f5f1f90a0
Compiled a bounded version of pingpong.
...
There are some failures in the other pipe tests, but these seem to just be a matter of generalizing the library code.
Updating pipes library so all tests pass again
2012-07-25 12:12:25 -07:00
Eric Holk
c28af26258
Refactor the bounded pingpong example to avoid needing to generate unsafe code.
...
Took some steps towards bounded codegen.
2012-07-25 12:12:25 -07:00
Eric Holk
4f29814f2a
Hand-written bounded pingpong implementation.
2012-07-25 12:12:25 -07:00
Eric Holk
d74fb9875b
Refactoring pipes to allow implementing bounded protocols.
2012-07-25 12:12:25 -07:00
Eric Holk
6535da8417
Tighten pipe exports, and refactor traits.
2012-07-25 12:12:25 -07:00
Ben Blum
695ab09899
Change yield() and wait_event() to be MUST_CHECK and return the killed flag. ( closes #2875 )
2012-07-24 18:24:24 -04:00
Patrick Walton
db020ab63c
rustc: Implement and enforce instance coherence
2012-07-17 15:46:43 -07:00
Eric Holk
c46bf6e716
Updating str syntax
2012-07-16 14:50:47 -07:00
Eric Holk
436d263aed
Add a selectable trait.
2012-07-16 14:50:46 -07:00
Michael Sullivan
92743dc2a6
Move the world over to using the new style string literals and types. Closes #2907 .
2012-07-14 01:03:43 -07:00
Eric Holk
fec8059ed5
Move port_set and shared_chan into core.
2012-07-12 18:16:01 -07:00
Eric Holk
deb6476b29
Use unsafe pointers for recv_packet::header, because the region system is hard and this isn't safe anyway.
2012-07-12 18:16:00 -07:00
Patrick Walton
fdf0c1b353
core: Newtype a bunch of types in libcore
2012-07-11 12:47:32 -07:00
Eric Holk
71339d9e69
Pipe code cleanup
2012-07-10 22:00:48 -07:00
Eric Holk
22e955a76a
Move streams into core.
2012-07-10 22:00:48 -07:00
Eric Holk
594d9a0554
Use protocol compiler in future.rs. Also split recv into recv and try_recv.
2012-07-10 22:00:48 -07:00
Eric Holk
26e6eb3d14
Handle failure conditions correctly in pipes.
2012-07-10 22:00:47 -07:00
Eric Holk
d07e537fc3
Remember to wake up blocked task on sender terminate.
2012-07-10 22:00:46 -07:00
Eric Holk
1c1b3a3339
Added peek for pipes.
2012-07-10 22:00:46 -07:00
Eric Holk
69cd8b5fcb
Added select2 for pipes.
2012-07-10 22:00:45 -07:00
Eric Holk
a787f40013
Select on pipes.
...
Updating syntax and test cases.
2012-07-06 10:42:39 -07:00
Eric Holk
89bdd481e5
Port future to pipes. Graph500 is about 21% faster now.
...
Making all tests pass.
2012-07-06 10:42:39 -07:00
Eric Holk
e5c9cb2b3d
Pipes sleep and wake properly.
2012-07-06 10:42:39 -07:00
Eric Holk
a4838c93aa
Enabling pipes for all stages, and updating closure syntax.
2012-07-06 10:42:39 -07:00
Eric Holk
67b0760592
Moved pipes runtime support to libcore, and add a test that will help verify that busy waiting is no longer happening.
...
Fixing the result of a bad merge.
2012-07-06 10:42:39 -07:00