- 03 1月, 2014 1 次提交
-
-
由 Patrick Walton 提交于
-
- 01 1月, 2014 2 次提交
- 30 12月, 2013 3 次提交
-
-
由 Steven Fackler 提交于
-
由 Steven Fackler 提交于
-
由 Steven Fackler 提交于
-
- 29 12月, 2013 3 次提交
-
-
由 Steven Fackler 提交于
-
由 Steven Fackler 提交于
-
由 Steven Fackler 提交于
-
- 25 12月, 2013 2 次提交
-
-
由 Alex Crichton 提交于
Note that this removes a number of run-pass tests which are exercising behavior of the old runtime. This functionality no longer exists and is thoroughly tested inside of libgreen and libnative. There isn't really the notion of "starting the runtime" any more. The major notion now is "bootstrapping the initial task".
-
由 Alex Crichton 提交于
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.
-
- 17 12月, 2013 1 次提交
-
-
由 Seo Sanghyeon 提交于
-
- 12 12月, 2013 1 次提交
-
-
由 Erik Price 提交于
Also remove all instances of 'self within the codebase. This fixes #10889.
-
- 11 12月, 2013 1 次提交
-
-
由 Jack Moffitt 提交于
-
- 10 12月, 2013 1 次提交
-
-
由 Seo Sanghyeon 提交于
-
- 08 12月, 2013 2 次提交
- 07 12月, 2013 3 次提交
-
-
由 Huon Wilson 提交于
using the expansion info. Previously something like struct NotEq; #[deriving(Eq)] struct Error { foo: NotEq } would just point to the `foo` field, with no mention of the `deriving(Eq)`. With this patch, the compiler creates a note saying "in expansion of #[deriving(Eq)]" pointing to the Eq.
-
由 Huon Wilson 提交于
format. Previously, any attempt to use this information from inside something like #[deriving(Foo)] would result in it printing like `deriving(Foo)!`.
-
由 Huon Wilson 提交于
-
- 05 12月, 2013 1 次提交
-
-
由 Kevin Ballard 提交于
This reverts commit c54427dd. Leave the #[ignores] in that were added to rustpkg tests. Conflicts: src/librustc/driver/driver.rs src/librustc/metadata/creader.rs
-
- 03 12月, 2013 1 次提交
-
-
由 Philipp Brüschweiler 提交于
This is useful when the information that is needed to do useful logging is expensive to produce.
-
- 01 12月, 2013 1 次提交
-
-
由 Eduard Burtescu 提交于
-
- 30 11月, 2013 1 次提交
-
-
由 Patrick Walton 提交于
-
- 29 11月, 2013 1 次提交
-
-
由 Alex Crichton 提交于
-
- 27 11月, 2013 5 次提交
-
-
由 Eduard Burtescu 提交于
-
由 Steven Fackler 提交于
-
由 Steven Fackler 提交于
Closes #4375
-
由 Patrick Walton 提交于
-
由 Patrick Walton 提交于
-
- 26 11月, 2013 3 次提交
-
-
由 Marvin Löbel 提交于
-
由 klutzy 提交于
This also moves `#[auto_{en,de}code]` checker from syntax to lint.
-
由 Seo Sanghyeon 提交于
-
- 20 11月, 2013 1 次提交
-
-
由 Patrick Walton 提交于
-
- 19 11月, 2013 1 次提交
-
-
由 Huon Wilson 提交于
ToStr, Encodable and Decodable are not marked as such, since they're already expensive, and lead to large methods, so inlining will bloat the metadata & the binaries. This means that something like #[deriving(Eq)] struct A { x: int } creates an instance like #[doc = "Automatically derived."] impl ::std::cmp::Eq for A { #[inline] fn eq(&self, __arg_0: &A) -> ::bool { match *__arg_0 { A{x: ref __self_1_0} => match *self { A{x: ref __self_0_0} => true && __self_0_0.eq(__self_1_0) } } } #[inline] fn ne(&self, __arg_0: &A) -> ::bool { match *__arg_0 { A{x: ref __self_1_0} => match *self { A{x: ref __self_0_0} => false || __self_0_0.ne(__self_1_0) } } } } (The change being the `#[inline]` attributes.)
-
- 18 11月, 2013 1 次提交
-
-
由 Alex Crichton 提交于
Closes #10111
-
- 12 11月, 2013 2 次提交
-
-
由 Alex Crichton 提交于
-
由 Alex Crichton 提交于
These two attributes are no longer useful now that Rust has decided to leave segmented stacks behind. It is assumed that the rust task's stack is always large enough to make an FFI call (due to the stack being very large). There's always the case of stack overflow, however, to consider. This does not change the behavior of stack overflow in Rust. This is still normally triggered by the __morestack function and aborts the whole process. C stack overflow will continue to corrupt the stack, however (as it did before this commit as well). The future improvement of a guard page at the end of every rust stack is still unimplemented and is intended to be the mechanism through which we attempt to detect C stack overflow. Closes #8822 Closes #10155
-
- 09 11月, 2013 1 次提交
-
-
由 Niko Matsakis 提交于
-
- 08 11月, 2013 1 次提交
-
-
由 Huon Wilson 提交于
This rearranges the deriving code so that #[deriving] a trait on a field that doesn't implement that trait will point to the field in question, e.g. struct NotEq; // doesn't implement Eq #[deriving(Eq)] struct Foo { ok: int, also_ok: ~str, bad: NotEq // error points here. } Unfortunately, this means the error is disconnected from the `deriving` itself but there's no current way to pass that information through to rustc except via the spans, at the moment. Fixes #7724.
-