about summary refs log tree commit diff
path: root/src/comp
AgeCommit message (Collapse)AuthorLines
2011-06-13Refactor some typestate-related data structuresTim Chevalier-143/+142
2011-06-13This is the mega-ucontext commit. It replaces the task switching mechanism ↵Eric Holk-12/+5
with a new one inspired by ucontext. It works under Linux, OS X and Windows, and is Valgrind clean on Linux and OS X (provided the runtime is built with gcc). This commit also moves yield and join to the standard library, as requested in #42. Join is currently a no-op though.
2011-06-13rustc: Assignment expressions have nil type. Closes #483Brian Anderson-13/+16
2011-06-13Change decl to local in expr_for and expr_for_eachTim Chevalier-222/+149
Since the decl in a for or for-each loop must always be a local decl, I changed the AST to express this. Fewer potential match failures and "the impossible happened" error messages = yay!
2011-06-13Enough driver support to link an empty program on linux. WillRafael Ávila de Espíndola-5/+16
try to update the Makefiles to use it.
2011-06-12rustc: Preserve more type information for interior vectors at the LLVM ↵Patrick Walton-21/+39
level, allowing SROA to take place. `log ~[ 2 ].(0)` now optimizes to just `log 2`.
2011-06-11rustc: Use in-bounds GEPs for fetching length and data of interior vectorsPatrick Walton-6/+7
2011-06-11rustc: Translate interior vector index expressionsPatrick Walton-8/+57
2011-06-11rustc: Typecheck vector index expressions for interior vectorsPatrick Walton-12/+13
2011-06-11rustc: Bump the default interior vector size up to 64 bytesPatrick Walton-1/+1
2011-06-11rustc: Link with main.oPatrick Walton-3/+4
2011-06-10rustc: Sketch out translation of interior vector literals and take/drop gluePatrick Walton-23/+251
2011-06-10Reject programs with unsatisfied predicate constraintsTim Chevalier-200/+309
Generate appropriate constraints for calls to functions with preconditions, and reject calls where those constraints don't hold true in the prestate. ...by which I mean that it works for one test case :-)
2011-06-10More work on typechecking anon objs.Lindsey Kuper-11/+20
2011-06-10Oops, fix logging string specs. Nobody likes writing ↵Graydon Hoare-2/+1
RUST_LOG=_ZN5rustc5front7creaderE, do they?
2011-06-10Implement meta tag matching in creader. Start using it in rustc.rc. Close ↵Graydon Hoare-6/+51
#459. Close #457.
2011-06-10Friendlier error message for break outside a loopTim Chevalier-7/+12
The typechecker should really check for this, but at least now there's an error message rather than an inexhaustive match failure in trans.
2011-06-10Use RHS type when translating assignmentsTim Chevalier-0/+6
In code like "auto foo = fail", a type gets inferred for foo depending on how it's used. However, fail still has type _|_ and still should be treated that way: particularly, its value shouldn't be copied. Fixed trans to reflect that.
2011-06-10rustc: Add a generic struct_elt() function to transPatrick Walton-4/+10
2011-06-10rustc: Derive flags for unsafe pointers. Puts out burning tinderbox.Patrick Walton-0/+4
2011-06-10Encode meta tags in the crate and start sketching enhanced logic for ↵Graydon Hoare-36/+147
resolving crate "use" directives. Now with extra "works on OSX" kludging.
2011-06-10rustc: Add some missing cases to ty.rs for interior vectors, and modify the ↵Patrick Walton-1/+46
pattern match so this is less likely to happen again. Add the LLVM type mapping as well.
2011-06-10rustc: Add missing cases for istr and ivec to equal_type_structures()Patrick Walton-0/+12
2011-06-10Fix a non-exhaustive match failure.Lindsey Kuper-0/+1
2011-06-10Merge pull request #447 from paulstansifer/quick_error_message_fixPatrick Walton-2/+25
Error message, instead of segfault, when recursive types are used.
2011-06-10rustc: Remove the bitwise not operatorPatrick Walton-14/+10
2011-06-10Dead code elimination.Lindsey Kuper-27/+0
2011-06-10Minimal comment for visit.rsMarijn Haverbeke-1/+7
2011-06-10Move some uses of walk to visit in trans.rsMarijn Haverbeke-75/+46
2011-06-10Handle mutable references in alias analysisMarijn Haverbeke-32/+78
2011-06-10Fix unsafe uses of mutable referencesMarijn Haverbeke-23/+25
2011-06-10Implement mutable/immutable alias distinction.Marijn Haverbeke-64/+98
Before, all aliases were implicitly mutable, and writing &mutable was the same as writing &. Now, the two are distinguished, and assignments to regular aliases are no longer allowed.
2011-06-10Fix all occurrences of writing to immutable aliasesMarijn Haverbeke-16/+17
You'd be surprised.
2011-06-09Sketching trans_anon_obj.Lindsey Kuper-7/+219
2011-06-09Revert "Encode meta tags in the crate and start sketching enhanced logic for ↵Patrick Walton-147/+36
resolving crate "use" directives." due to tree bustage This reverts commit ab3635eebef2b8cf0e19cdbc5b4e8dd7a49a4658.
2011-06-09rustc: Write interior vecs and strings into the metadata and add logic for ↵Patrick Walton-15/+21
them in ty_to_str
2011-06-09Encode meta tags in the crate and start sketching enhanced logic for ↵Graydon Hoare-36/+147
resolving crate "use" directives.
2011-06-09rustc: Report type errors in terms of the actual types involved, not type ↵Patrick Walton-2/+13
variables
2011-06-09rustc: Annotate vector and string literals in the AST with their uniqueness ↵Patrick Walton-45/+111
or lack thereof
2011-06-09rustc: Add ty_istr and ty_ivec typesPatrick Walton-25/+42
2011-06-09rustc: Parse istr and ivecPatrick Walton-0/+8
2011-06-09Improve error message for wrong number of type argumentsTim Chevalier-4/+12
Improve error message in the case where a use of a polymorphic tag has insufficient type arguments given. Before, the typechecker was just crashing with a bounds check error.
2011-06-09rustc: Remove comment dating back to the rustboot days from typeckPatrick Walton-1/+1
2011-06-09rustc: Remove all calls to resolve_all_vars and the function itselfPatrick Walton-27/+1
2011-06-09rustc: Remove the call to resolve_all_vars when typechecking field exprsPatrick Walton-2/+0
2011-06-09rustc: Unify with the root typesPatrick Walton-2/+3
2011-06-09Fix double import that now somehow gets caught by resolveMarijn Haverbeke-2/+0
2011-06-09Switch resolve pass to use visit.rs rather than walk.rsMarijn Haverbeke-145/+94
2011-06-09Pass ty params to visit::visit_fnMarijn Haverbeke-19/+50
2011-06-09Improve an error message in resolveTim Chevalier-3/+10