about summary refs log tree commit diff
path: root/src/comp
AgeCommit message (Collapse)AuthorLines
2011-11-21rustc: Remove abi from ast::native_modHaitao Li-128/+126
2011-11-21Close hole in safe-reference analysisMarijn Haverbeke-3/+15
2011-11-21Add a pass that checks that blocks are only used in safe waysMarijn Haverbeke-0/+44
Closes #1188
2011-11-21Fix bad interaction between last-use finding and referencesMarijn Haverbeke-15/+32
The last-use pass now takes input from the alias pass to not mark things as last uses that are still accessed through a reference. Issue #925
2011-11-18get pure wrappers approach runningNiko Matsakis-106/+54
2011-11-18sketch out designNiko Matsakis-54/+98
2011-11-18Add some comments to kind.rs and last_use.rsMarijn Haverbeke-0/+33
2011-11-18Make sure by-copy arguments take last-use into accountMarijn Haverbeke-1/+7
2011-11-18Make sure trans translates record fields in the order they appear in codeMarijn Haverbeke-24/+25
This prevents surprising side-effect orders, and makes them easier for the other passes to deal with.
2011-11-18Make trans use last_use info to not actually generate copiesMarijn Haverbeke-25/+48
Issue #925
2011-11-18Update stdlib, compiler, and tests to new kind systemMarijn Haverbeke-63/+57
This involved adding 'copy' to more generics than I hoped, but an experiment with making it implicit showed that that way lies madness -- unless enforced, you will not remember to mark functions that don't copy as not requiring copyable kind. Issue #1177
2011-11-18Implement a last-use-of-local finding algorithmMarijn Haverbeke-4/+231
Issue #925
2011-11-18Properly check kinds in instantiation of genericsMarijn Haverbeke-286/+29
Issue #1177
2011-11-18Prevent alias pass from inserting implicit copies for noncopyable typesMarijn Haverbeke-6/+4
Issue #1177
2011-11-18Overhaul the kind-checking passMarijn Haverbeke-126/+189
Not really useful yet because missing last-use-of-local optimization. Also: instantiation of type parameters needs to be checked. Issue #1177
2011-11-18Make tag, resource and object constructors take their arguments by copyMarijn Haverbeke-40/+18
Doing something like some([1, 2, 3]) will now no longer create a temporary copy of the vector. It will also be easier for the kind checker to see that putting a resource into a data-structure constructor is safe.
2011-11-18Add a pass-by-copy parameter passing conventionMarijn Haverbeke-10/+28
This is intended to solve the problem of how to pass arguments to constructor functions -- you want to move in rvalues, but not have to explicitly copy stuff that is not an rvalue. The by-copy passing convention will ensure the callee gets its own copy of the value. For rvalues, it'll just pass off the value. For lvalues, it'll make a copy. Issue #1177
2011-11-18Preparation for kind system overhaulMarijn Haverbeke-58/+62
This goes before a snapshot, so that subsequenct patches can make the transition without breaking the build. Disables kind checking pass, makes parser accept both new and old-style kind annotation. Issue #1177
2011-11-17remove blank lineNiko Matsakis-1/+0
2011-11-17add FIXME for issue #1184Niko Matsakis-0/+4
2011-11-17fix resource-genericNiko Matsakis-8/+5
2011-11-17Stop using temporary intrinsic_2 functionsBrian Anderson-1/+1
2011-11-17remove compile-command from local variable blocksNiko Matsakis-61/+0
2011-11-17rustc: Add a flag '--warn-unused-imports'Haitao Li-4/+12
Followup of issue #889
2011-11-17rustc: Fix warn on unused import bugHaitao Li-11/+10
rustc generates incorrect warning for cascaded import declarations like: use std; import std::io; import io::println; fn main() { println("hello"); } warning: unused import io A followup of issue #889
2011-11-16remove unused flag (thanks lht)Niko Matsakis-1/+1
2011-11-16Removed --no-typestate flag from rutscStefan Plantikow-9/+3
Fixes issue #1139
2011-11-16rustc: Fix help text for --sysrootBrian Anderson-1/+1
2011-11-16fix minor merge errorsNiko Matsakis-18/+13
2011-11-16wrap long lineNiko Matsakis-2/+2
2011-11-16apply calling convention at call site tooNiko Matsakis-1/+1
2011-11-16temp workaround for failure to pass ulonglong successfullyNiko Matsakis-2/+4
2011-11-16remove wrappers from intrinsicsNiko Matsakis-141/+9
2011-11-16make stdcall use shimNiko Matsakis-43/+26
2011-11-16Various fixes for x86_64 on linuxBrian Anderson-2/+7
Configure LLVM correctly, use the right data layout, add the readlink function back, fix C constants, etc.
2011-11-16fix natives with user-specified link names, remove unused importsNiko Matsakis-9/+18
2011-11-16fix bug in shape where s_int/s_uint were not customized to platformNiko Matsakis-12/+29
2011-11-16wrap long line;Niko Matsakis-1/+2
2011-11-16temporarily disable these tests b/c they crash rustcNiko Matsakis-4/+4
2011-11-16enable comments in generated asm, llNiko Matsakis-6/+36
2011-11-16correct translation of neg. numbers in 64-bit architecturesNiko Matsakis-17/+11
2011-11-16remove fixed FIXMENiko Matsakis-1/+0
2011-11-16wrap long lineNiko Matsakis-1/+2
2011-11-16finish up the shim approachNiko Matsakis-9/+17
2011-11-16add back call to zero_and_revokeNiko Matsakis-0/+1
2011-11-16begin efforts to use shim functions for c-stack callsNiko Matsakis-76/+148
2011-11-16Replace 'mutable?' with 'const'Brian Anderson-4/+3
2011-11-16rustc: Accept 'const' as synonym for 'mutable?'Brian Anderson-4/+7
2011-11-16Use attributes for native module ABI and link nameHaitao Li-69/+32
This patch changes how to specify ABI and link name of a native module. Before: native "cdecl" mod llvm = "rustllvm" {...} After: #[abi = "cdecl"] #[link_name = "rustllvm"] native mod llvm {...} The old optional syntax for ABI and link name is no longer supported. Fixes issue #547
2011-11-16Use attributes for native module ABI and link name [temp]Haitao Li-1/+25
This patch adds support of using attributes to specify native mode ABI and link name. The old optional syntax like: native "cdecl" mod llvm = "rustllvm" { ... } is still supported. This is a transitional commit to avoid making a stage1 (backward imcompatible) snapshot.