| Age | Commit message (Collapse) | Author | Lines | |
|---|---|---|---|---|
| 2013-09-25 | rustdoc: Linkify all reexports. | Alex Crichton | -0/+28 | |
| This way each component of a reexport path is click-able to the destination that it's referencing. | ||||
| 2013-09-25 | rustdoc: Change all code-blocks with a script | Alex Crichton | -1/+1 | |
| find src -name '*.rs' | xargs sed -i '' 's/~~~.*{\.rust}/```rust/g' find src -name '*.rs' | xargs sed -i '' 's/ ~~~$/ ```/g' find src -name '*.rs' | xargs sed -i '' 's/^~~~$/ ```/g' | ||||
| 2013-09-25 | auto merge of #9491 : thestinger/rust/noreturn, r=huonw | bors | -0/+6 | |
| Closes #9317 | ||||
| 2013-09-25 | auto merge of #9492 : pnkfelix/rust/fsk-syntax-visit-refactor-remainder, r=huonw | bors | -243/+232 | |
| r? anyone Part of #7081. Removed many unnecessary context arguments, turning them into visitors. Removed some @allocation. If this lands, then I think the only thing left that is unaddressed are: * the various lint visitors, and * middle/privacy.rs, which has `impl<'self> Visitor<&'self method_map> for PrivacyVisitor` | ||||
| 2013-09-25 | Fold env into CheckItemRecursionVisitor. | Felix S. Klock II | -15/+17 | |
| 2013-09-25 | Fold ErrorCheckVisitor into Liveness. Removed some @allocation. | Felix S. Klock II | -35/+31 | |
| 2013-09-25 | Fold KindAnalysisVisitor into the Context. Removed unused current_item state. | Felix S. Klock II | -45/+38 | |
| 2013-09-25 | Move unchanging portions of Context over to the Visitor. | Felix S. Klock II | -67/+70 | |
| 2013-09-25 | Move unchanging portions of context over to the Visitor. | Felix S. Klock II | -37/+32 | |
| 2013-09-25 | Fold context into CalleeTranslationVisitor. | Felix S. Klock II | -11/+12 | |
| 2013-09-25 | Fold context into TransItemVisitor. | Felix S. Klock II | -12/+14 | |
| 2013-09-25 | Fold type_use.rs Context into its Visitor. | Felix S. Klock II | -21/+18 | |
| 2013-09-25 | add `noreturn` attribute to functions returning ! | Daniel Micay | -0/+6 | |
| Closes #9317 | ||||
| 2013-09-25 | auto merge of #9432 : alexcrichton/rust/correct-item-visibility, r=pcwalton | bors | -57/+169 | |
| This fixes private statics and functions from being usable cross-crates, along with some bad privacy error messages. This is a reopening of #8365 with all the privacy checks in privacy.rs instead of resolve.rs (where they should be anyway). These maps of exported items will hopefully get used for generating documentation by rustdoc Closes #8592 | ||||
| 2013-09-24 | auto merge of #9470 : luqmana/rust/bba, r=brson | bors | -3/+1 | |
| #8431 ~~@brson: do we need to bump up the cratemap version for this change?~~ Tis a no. | ||||
| 2013-09-24 | Remove the annihilate function from the crate map. Fixes #8431 | Luqman Aden | -3/+1 | |
| 2013-09-24 | mark functions internal if not building a library | Daniel Micay | -18/+19 | |
| the entry point is wrapped with what should be the only public function | ||||
| 2013-09-24 | Correctly encode item visibility in metadata | Alex Crichton | -57/+169 | |
| This fixes private statics and functions from being usable cross-crates, along with some bad privacy error messages. This is a reopening of #8365 with all the privacy checks in privacy.rs instead of resolve.rs (where they should be anyway). These maps of exported items will hopefully get used for generating documentation by rustdoc Closes #8592 | ||||
| 2013-09-24 | auto merge of #9463 : ↵ | bors | -111/+101 | |
| pnkfelix/rust/fsk-syntax-visit-refactor-rest-of-typeck, r=huonw r? anyone Also got rid of a bit of `@mut` allocation. (Though not the monster that is `@mut FnCtxt`; that case is documented already on #7081; if we attack it, it will probably be its own ticket, not part of #7081.) | ||||
| 2013-09-24 | Part of #7081: Fold remainder of typeck's visit env into their visitor structs. | Felix S. Klock II | -111/+101 | |
| 2013-09-24 | auto merge of #9453 : pnkfelix/rust/fsk-further-syntax-visit-refactors, ↵ | bors | -144/+123 | |
| r=alexcrichton r? anyone. Part of #7081. More refactorings of the syntax::visit::Visitor implementations, folding so-called "environments" into the visitor impl when the latter was previously a trivial unit struct. As usual, this refactoring only applies when the environments are not actually carrying state that is meant to be pushed and popped as we traverse the expression. (For an example where the environment *isn't* just passed through, see the `visit_fn` in `liveness.rs`.) Got rid of a bit of @-allocation in borrowck. Both cases should be pure-refactorings. | ||||
| 2013-09-24 | visit::Visitor refactor: fold moves.rs VisitContext into ComputeModesVisitor. | Felix S. Klock II | -108/+90 | |
| 2013-09-23 | librustc: Fix merge fallout. | Patrick Walton | -131/+199 | |
| 2013-09-23 | librustc: Remove `@fn` managed closures from the language. | Patrick Walton | -57/+35 | |
| 2013-09-23 | librustc: Change the ID visitor to use traits instead of garbage-collected ↵ | Patrick Walton | -22/+47 | |
| functions. | ||||
| 2013-09-23 | librustc: Don't use garbage-collected closures to store cleanups. | Patrick Walton | -24/+121 | |
| 2013-09-23 | librustc: Make the fall-through case in match not use garbage collected ↵ | Patrick Walton | -26/+76 | |
| functions | ||||
| 2013-09-23 | librustc: Port the pretty printer annotation infrastructure to use traits ↵ | Patrick Walton | -40/+39 | |
| instead of garbage collected functions. | ||||
| 2013-09-23 | librustc: Change fold to use traits instead of `@fn`. | Patrick Walton | -29/+48 | |
| 2013-09-24 | visit::Visitor refactor: replace (&mut BorrowckVisitor, @BorrowckCtxt) with ↵ | Felix S. Klock II | -36/+33 | |
| &mut BorrowckCtxt. | ||||
| 2013-09-23 | auto merge of #9301 : luqmana/rust/ncm, r=brson | bors | -16/+38 | |
| Get rid of the crate_map arg! r? @brson | ||||
| 2013-09-23 | Find the cratemap at runtime on windows. | Luqman Aden | -1/+28 | |
| 2013-09-20 | auto merge of #9350 : ↵ | bors | -0/+15 | |
| pnkfelix/rust/fsk-issue-4691-catch-bad-fsu-during-compute-moves, r=nikomatsakis Resolves third bullet of #4691: if the functional-struct-update (FSU) expression `{ a: b, ..s }` causes `s` to move and `s` has a destructor, then the expression is illegal. r? @nikomatsakis | ||||
| 2013-09-20 | auto merge of #9332 : eugals/rust/master, r=alexcrichton | bors | -31/+50 | |
| It is intended to optimize/beautify the code generated in a few trivial trait operations. Let's take the following code as an example: ``` trait Stuff { fn bar(&self); } fn callBar(s: &Stuff) { s.bar(); } struct Foo; impl Stuff for Foo { fn bar(&self) { } } pub fn main() { let o = Foo; callBar(&o as &Stuff); } ``` At present it is translated into something like: ``` define void @_ZN7callBar_UUID.0E({ i32, %tydesc*, i8*, i8*, i8 }*, { %tydesc*, i8* }*) #4 { "function top level": %__trait_callee = alloca { %tydesc*, i8* } %__auto_borrow_obj = alloca { %tydesc*, i8* } %2 = getelementptr inbounds { %tydesc*, i8* }* %1, i32 0, i32 0 %3 = load %tydesc** %2 %4 = getelementptr inbounds { %tydesc*, i8* }* %__auto_borrow_obj, i32 0, i32 0 store %tydesc* %3, %tydesc** %4 %5 = getelementptr inbounds { %tydesc*, i8* }* %1, i32 0, i32 1 %6 = load i8** %5 %7 = getelementptr inbounds { %tydesc*, i8* }* %__auto_borrow_obj, i32 0, i32 1 store i8* %6, i8** %7 %8 = bitcast { %tydesc*, i8* }* %__auto_borrow_obj to i8* %9 = bitcast { %tydesc*, i8* }* %__trait_callee to i8* call void @llvm.memcpy.p0i8.p0i8.i32(i8* %9, i8* %8, i32 8, i32 4, i1 false) %10 = getelementptr inbounds { %tydesc*, i8* }* %__trait_callee, i32 0, i32 1 %11 = load i8** %10 %12 = bitcast i8* %11 to { i32, %tydesc*, i8*, i8*, i8 }* %13 = getelementptr inbounds { %tydesc*, i8* }* %__trait_callee, i32 0, i32 0 %14 = bitcast %tydesc** %13 to [1 x i8*]** %15 = load [1 x i8*]** %14 %16 = getelementptr inbounds [1 x i8*]* %15, i32 0, i32 1 %17 = load i8** %16 %18 = bitcast i8* %17 to void ({ i32, %tydesc*, i8*, i8*, i8 }*)* call void %18({ i32, %tydesc*, i8*, i8*, i8 }* %12) ret void } ... define void @_ZN4main_UUID.0E({ i32, %tydesc*, i8*, i8*, i8 }*) #4 { "function top level": %o = alloca %struct.Foo %1 = alloca { %tydesc*, i8* } %__auto_borrow_obj = alloca { %tydesc*, i8* } %2 = getelementptr inbounds { %tydesc*, i8* }* %1, i32 0, i32 1 %3 = bitcast i8** %2 to %struct.Foo** store %struct.Foo* %o, %struct.Foo** %3 %4 = getelementptr inbounds { %tydesc*, i8* }* %1, i32 0, i32 0 %5 = bitcast %tydesc** %4 to { %tydesc*, void ({ i32, %tydesc*, i8*, i8*, i8 }*)* }** store { %tydesc*, void ({ i32, %tydesc*, i8*, i8*, i8 }*)* }* @vtable1081, { %tydesc*, void ({ i32, %tydesc*, i8*, i8*, i8 }*)* }** %5 %6 = getelementptr inbounds { %tydesc*, i8* }* %1, i32 0, i32 0 %7 = load %tydesc** %6 %8 = getelementptr inbounds { %tydesc*, i8* }* %__auto_borrow_obj, i32 0, i32 0 store %tydesc* %7, %tydesc** %8 %9 = getelementptr inbounds { %tydesc*, i8* }* %1, i32 0, i32 1 %10 = load i8** %9 %11 = getelementptr inbounds { %tydesc*, i8* }* %__auto_borrow_obj, i32 0, i32 1 store i8* %10, i8** %11 call void @_ZN7callBar_UUID.0E({ i32, %tydesc*, i8*, i8*, i8 }* undef, { %tydesc*, i8* }* %__auto_borrow_obj) ret void } ``` If you apply my patch, it would become way shorter and cleaner: ``` define void @_ZN7callBar_UUID.0E({ i32, %tydesc*, i8*, i8*, i8 }*, { %tydesc*, i8* }*) #4 { "function top level": %2 = getelementptr inbounds { %tydesc*, i8* }* %1, i32 0, i32 1 %3 = load i8** %2 %4 = bitcast i8* %3 to { i32, %tydesc*, i8*, i8*, i8 }* %5 = getelementptr inbounds { %tydesc*, i8* }* %1, i32 0, i32 0 %6 = bitcast %tydesc** %5 to [1 x i8*]** %7 = load [1 x i8*]** %6 %8 = getelementptr inbounds [1 x i8*]* %7, i32 0, i32 1 %9 = load i8** %8 %10 = bitcast i8* %9 to void ({ i32, %tydesc*, i8*, i8*, i8 }*)* call void %10({ i32, %tydesc*, i8*, i8*, i8 }* %4) ret void } ... define void @_ZN4main_UUID.0E({ i32, %tydesc*, i8*, i8*, i8 }*) #4 { "function top level": %o = alloca %struct.Foo %1 = alloca { %tydesc*, i8* } %2 = getelementptr inbounds { %tydesc*, i8* }* %1, i32 0, i32 1 %3 = bitcast i8** %2 to %struct.Foo** store %struct.Foo* %o, %struct.Foo** %3 %4 = getelementptr inbounds { %tydesc*, i8* }* %1, i32 0, i32 0 %5 = bitcast %tydesc** %4 to { %tydesc*, void ({ i32, %tydesc*, i8*, i8*, i8 }*)* }** store { %tydesc*, void ({ i32, %tydesc*, i8*, i8*, i8 }*)* }* @vtable1081, { %tydesc*, void ({ i32, %tydesc*, i8*, i8*, i8 }*)* }** %5 call void @_ZN7callBar_UUID.0E({ i32, %tydesc*, i8*, i8*, i8 }* undef, { %tydesc*, i8* }* %1) ret void } ``` Although this change doesn't increase the compilation speed much (I mentioned only about 1-2% boost on "rustc -O -Z time-passes syntax.rs"), but I still think it's a good thing to do as it greatly simplifies/clarifies LL generated in some cases which would definitely help in the future code generation investigations. I don't provide any new test cases in this patch as it is merely an optimization. Sorry guys, I somehow messed my previous PR and I don't see any better way to fix as to recreate it here. | ||||
| 2013-09-20 | auto merge of #9321 : chris-morgan/rust/lowercase-nan-methods, r=brson | bors | -2/+2 | |
| This is for consistency in naming conventions. - ``std::num::Float::NaN()`` is changed to ``nan()``; - ``std::num::Float.is_NaN()`` is changed to ``is_nan()``; and - ``std::num::strconv::NumStrConv::NaN()`` is changed to ``nan()``. Fixes #9319. | ||||
| 2013-09-20 | auto merge of #9320 : ↵ | bors | -3/+2 | |
| chris-morgan/rust/unreachable-macro-part-two-of-two-containing-the-destruction-of-the-unreachable-function, r=alexcrichton This is the second of two parts of #8991, now possible as a new snapshot has been made. (The first part implemented the unreachable!() macro; it was #8992, 6b7b8f2682.) ``std::util::unreachable()`` is removed summarily; any code which used it should now use the ``unreachable!()`` macro. Closes #9312. Closes #8991. | ||||
| 2013-09-20 | Resolves third bullet of #4691, and adds tests for it. Fix #4691. | Felix S. Klock II | -0/+15 | |
| 2013-09-19 | auto merge of #9295 : alexcrichton/rust/fix-lang-items, r=thestinger | bors | -43/+42 | |
| Also add a test to help prevent this from getting out of sync again. | ||||
| 2013-09-19 | will not copy trait_callee on stack if it's source expr is a plain borrowed ref | U-NOV2010\eugals | -6/+14 | |
| 2013-09-19 | minor Type::opaque_trait code cleanup | U-NOV2010\eugals | -17/+6 | |
| 2013-09-19 | optimized trans_to_datum::auto_borrow_obj code generation in case some ↵ | U-NOV2010\eugals | -9/+31 | |
| trivial cases where simple copying can be applied | ||||
| 2013-09-19 | Rename the NaN and is_NaN methods to lowercase. | Chris Morgan | -2/+2 | |
| This is for consistency in naming conventions. - ``std::num::Float::NaN()`` is changed to ``nan()``; - ``std::num::Float.is_NaN()`` is changed to ``is_nan()``; and - ``std::num::strconv::NumStrConv::NaN()`` is changed to ``nan()``. Fixes #9319. | ||||
| 2013-09-19 | Replace unreachable() calls with unreachable!(). | Chris Morgan | -3/+2 | |
| This is the second of two parts of #8991, now possible as a new snapshot has been made. (The first part implemented the unreachable!() macro; it was #8992, 6b7b8f2682.) ``std::util::unreachable()`` is removed summarily; any code which used it should now use the ``unreachable!()`` macro. Closes #9312. Closes #8991. | ||||
| 2013-09-18 | auto merge of #9284 : thestinger/rust/main, r=luqmana | bors | -27/+1 | |
| the real entry point will now pass the user's main function directly to the scheduler | ||||
| 2013-09-18 | libstd/librustc: Make the crate_map a weak symbol that libstd links against. | Luqman Aden | -6/+7 | |
| 2013-09-18 | librustc/libstd: No longer pass crate_map to start. | Luqman Aden | -11/+5 | |
| 2013-09-18 | Register new snapshots | Alex Crichton | -2/+2 | |
| 2013-09-18 | Renumber the lang items correctly | Alex Crichton | -43/+42 | |
| Also add a test to help prevent this from getting out of sync again. | ||||
| 2013-09-18 | auto merge of #9275 : blake2-ppc/rust/float-from-str, r=thestinger | bors | -3/+2 | |
| std: Remove {float,f64,f32}::from_str in favor of from_str in the prelude Like issue #9209, remove float::{from_str, from_str_radix} in favor of the two corresponding traits. The same for modules f64 and f32. New usage is: from_str::<float>("1.2e34") | ||||
| 2013-09-18 | auto merge of #9272 : luqmana/rust/esln, r=catamorphism | bors | -1/+1 | |
| Fixes #9270 | ||||
