<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/src/libstd/rt/kill.rs, branch try</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=try</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=try'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2013-12-25T03:59:52+00:00</updated>
<entry>
<title>green: Rip the bandaid off, introduce libgreen</title>
<updated>2013-12-25T03:59:52+00:00</updated>
<author>
<name>Alex Crichton</name>
<email>alex@alexcrichton.com</email>
</author>
<published>2013-12-13T02:01:59+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=51abdee5f1ad932671350fdd8a7911fe144d08b8'/>
<id>urn:sha1:51abdee5f1ad932671350fdd8a7911fe144d08b8</id>
<content type='text'>
This extracts everything related to green scheduling from libstd and introduces
a new libgreen crate. This mostly involves deleting most of std::rt and moving
it to libgreen.

Along with the movement of code, this commit rearchitects many functions in the
scheduler in order to adapt to the fact that Local::take now *only* works on a
Task, not a scheduler. This mostly just involved threading the current green
task through in a few locations, but there were one or two spots where things
got hairy.

There are a few repercussions of this commit:

* tube/rc have been removed (the runtime implementation of rc)
* There is no longer a "single threaded" spawning mode for tasks. This is now
  encompassed by 1:1 scheduling + communication. Convenience methods have been
  introduced that are specific to libgreen to assist in the spawning of pools of
  schedulers.
</content>
</entry>
<entry>
<title>Fallout of rewriting std::comm</title>
<updated>2013-12-17T01:47:11+00:00</updated>
<author>
<name>Alex Crichton</name>
<email>alex@alexcrichton.com</email>
</author>
<published>2013-12-06T02:19:06+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=529e268ab900f1b6e731af64ce2aeecda3555f4e'/>
<id>urn:sha1:529e268ab900f1b6e731af64ce2aeecda3555f4e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>libextra: Another round of de-`Cell`-ing.</title>
<updated>2013-12-10T23:13:12+00:00</updated>
<author>
<name>Patrick Walton</name>
<email>pcwalton@mimiga.net</email>
</author>
<published>2013-12-04T00:44:16+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=786dea207d5b891d37e596e96dd2f84c4cb59f49'/>
<id>urn:sha1:786dea207d5b891d37e596e96dd2f84c4cb59f49</id>
<content type='text'>
34 uses of `Cell` remain.
</content>
</entry>
<entry>
<title>libstd: Remove all non-`proc` uses of `do` from libstd</title>
<updated>2013-11-26T16:23:57+00:00</updated>
<author>
<name>Patrick Walton</name>
<email>pcwalton@mimiga.net</email>
</author>
<published>2013-11-20T22:17:12+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=1eca34de7dd55719cd83153994e5caf2027f62a2'/>
<id>urn:sha1:1eca34de7dd55719cd83153994e5caf2027f62a2</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Remove linked failure from the runtime</title>
<updated>2013-11-25T05:21:12+00:00</updated>
<author>
<name>Alex Crichton</name>
<email>alex@alexcrichton.com</email>
</author>
<published>2013-11-22T00:55:40+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=acca9e3834842ee8d8104abe9b8b9bb88861793c'/>
<id>urn:sha1:acca9e3834842ee8d8104abe9b8b9bb88861793c</id>
<content type='text'>
The reasons for doing this are:

* The model on which linked failure is based is inherently complex
* The implementation is also very complex, and there are few remaining who
  fully understand the implementation
* There are existing race conditions in the core context switching function of
  the scheduler, and possibly others.
* It's unclear whether this model of linked failure maps well to a 1:1 threading
  model

Linked failure is often a desired aspect of tasks, but we would like to take a
much more conservative approach in re-implementing linked failure if at all.

Closes #8674
Closes #8318
Closes #8863
</content>
</entry>
<entry>
<title>libstd: Change all uses of `&amp;fn(A)-&gt;B` over to `|A|-&gt;B` in libstd</title>
<updated>2013-11-19T20:40:19+00:00</updated>
<author>
<name>Patrick Walton</name>
<email>pcwalton@mimiga.net</email>
</author>
<published>2013-11-19T05:15:42+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=1946265e1a1a32eb922846f314657a4aa7eb1d23'/>
<id>urn:sha1:1946265e1a1a32eb922846f314657a4aa7eb1d23</id>
<content type='text'>
</content>
</entry>
<entry>
<title>libstd: Change all `~fn()`s to `proc`s in the standard library.</title>
<updated>2013-11-19T02:27:30+00:00</updated>
<author>
<name>Patrick Walton</name>
<email>pcwalton@mimiga.net</email>
</author>
<published>2013-11-18T21:25:09+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=500a8f15c9afdd4e98e1d1573e34dd2b948f9773'/>
<id>urn:sha1:500a8f15c9afdd4e98e1d1573e34dd2b948f9773</id>
<content type='text'>
This makes `Cell`s no longer necessary in most cases.
</content>
</entry>
<entry>
<title>Remove unnecessary unwind messages</title>
<updated>2013-11-01T18:58:25+00:00</updated>
<author>
<name>Alex Crichton</name>
<email>alex@alexcrichton.com</email>
</author>
<published>2013-11-01T18:20:01+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=b00449380f520deb65de26e654aeaba4561ee13f'/>
<id>urn:sha1:b00449380f520deb65de26e654aeaba4561ee13f</id>
<content type='text'>
Now that the type_id intrinsic is working across crates, all of these
unnecessary messages can be removed to have the failure type for a task truly be
~Any and only ~Any
</content>
</entry>
<entry>
<title>Prepared `std::sys` for removal, and made `begin_unwind` simpler</title>
<updated>2013-10-30T20:19:18+00:00</updated>
<author>
<name>Marvin Löbel</name>
<email>loebel.marvin@gmail.com</email>
</author>
<published>2013-10-27T19:12:40+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=54f4dcd76aafe33c553f6b58fe3e808f055465e1'/>
<id>urn:sha1:54f4dcd76aafe33c553f6b58fe3e808f055465e1</id>
<content type='text'>
- `begin_unwind` is now generic over any `T: Any + Send`.
- Every value you fail with gets boxed as an `~Any`.
- Because of implementation details, `&amp;'static str` and `~str` are still
  handled specially behind the scenes.
- Changed the big macro source string in libsyntax to a raw string
  literal, and enabled doc comments there.
</content>
</entry>
<entry>
<title>Allow fail messages to be caught, and introduce the Any trait</title>
<updated>2013-10-28T07:50:32+00:00</updated>
<author>
<name>Marvin Löbel</name>
<email>loebel.marvin@gmail.com</email>
</author>
<published>2013-10-11T21:20:34+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=fa8e71a8257f4226ab532d4bf268d3ecbfa98eb4'/>
<id>urn:sha1:fa8e71a8257f4226ab532d4bf268d3ecbfa98eb4</id>
<content type='text'>
Some code cleanup, sorting of import blocks

Removed std::unstable::UnsafeArc's use of Either

Added run-fail tests for the new FailWithCause impls

Changed future_result and try to return Result&lt;(), ~Any&gt;.

- Internally, there is an enum of possible fail messages passend around.
- In case of linked failure or a string message, the ~Any gets
  lazyly allocated in future_results recv method.
- For that, future result now returns a wrapper around a Port.
- Moved and renamed task::TaskResult into rt::task::UnwindResult
  and made it an internal enum.
- Introduced a replacement typedef `type TaskResult = Result&lt;(), ~Any&gt;`.
</content>
</entry>
</feed>
