aboutsummaryrefslogtreecommitdiff
path: root/src/comp/middle
Commit message (Collapse)AuthorAgeFilesLines
...
* Use different syntax for checks that matter to typestateTim Chevalier2011-05-028-381/+370
| | | | | | | | | | This giant commit changes the syntax of Rust to use "assert" for "check" expressions that didn't mean anything to the typestate system, and continue using "check" for checks that are used as part of typestate checking. Most of the changes are just replacing "check" with "assert" in test cases and rustc.
* rustc: Add a "fat tydesc" LLVM type to transPatrick Walton2011-05-021-0/+6
|
* Remove the search direction from resolve's fold environmentBrian Anderson2011-05-011-36/+31
| | | | | It's not actually involved in the fold so it can just be passed between the functions that need it.
* Hide unexported tag variantsBrian Anderson2011-05-011-3/+5
|
* Implement simple module exportBrian Anderson2011-05-011-12/+60
|
* rustc: Run scope cleanups in the implicit block created by log statements. ↵Patrick Walton2011-04-291-14/+18
| | | | Fixes a leak.
* rustc: Emit pure native glue; we don't call it yetPatrick Walton2011-04-291-8/+19
|
* rustc: Start threading a purity flag through upcallsPatrick Walton2011-04-291-20/+26
|
* Temporarily disable dtors; they broke self-hosting.Graydon Hoare2011-04-291-1/+3
|
* rustc: First steps to determine whether tydescs escapePatrick Walton2011-04-291-17/+30
|
* Don't emit metadata unless compiling -shared.Graydon Hoare2011-04-292-5/+8
|
* Implement destructors in rustcMarijn Haverbeke2011-04-291-40/+60
| | | | | | Unlike rustboot, rustc keeps it destructors in vtables. Entry 0 holds either the destructor for the obj or a NULL pointer. The method offsets start at 1.
* rustc: Add a --time-passes optionPatrick Walton2011-04-291-1/+1
|
* rustc: Handle alias parameters in native functions properlyPatrick Walton2011-04-291-14/+20
|
* Intern metadata while writing, shrink stage1 from 12mb to 5.7mb.Graydon Hoare2011-04-293-78/+175
|
* rustc: Fix vec append glue for strings. Add a test case.Patrick Walton2011-04-281-5/+8
|
* rustc: Add some value names to the vec append glue function. Un-XFAIL ↵Patrick Walton2011-04-281-0/+6
| | | | vec-growth.rs.
* More attempts at fixing broken vec-append glue.Graydon Hoare2011-04-281-3/+3
|
* Make the no-growth path (previously never exercised) in rustc *work*.Graydon Hoare2011-04-281-2/+1
|
* Actually hit the no-growth path on vec-append.Graydon Hoare2011-04-281-2/+12
|
* Consider unop deref as an lval. Un-XFAIL vec-push.Graydon Hoare2011-04-281-0/+1
|
* Drop args in native stubs too.Graydon Hoare2011-04-281-0/+11
|
* Add a session field to ty_ctxt and change an err to span_errTim Chevalier2011-04-282-10/+16
| | | | | | | I changed instantiate to print out a more helpful error message, which required passing it a session argument. To avoid threading extra arguments through a lot of functions, I added a session field to ty_ctxt.
* Reindented things and removed superfluous comments, nothing to see hereTim Chevalier2011-04-281-14/+7
|
* Fix some nested patterns in rustcTim Chevalier2011-04-281-0/+2
| | | | | | In rustc, nested patterns were potentially matching when they shouldn't match, because a loop index wasn't being incremented. Fixed it and added one test case.
* Fix bug in handling of expr_alt (postcond for alts was being intersected ↵Tim Chevalier2011-04-281-52/+102
| | | | with postcond for scrutinee)
* Fixed bug in typeck that wasn't filling in anns for stmtsTim Chevalier2011-04-282-8/+19
| | | | | | | (needed for typestate_check). Also changed a (log; fail) to (log_err; fail) in typestate_check, and added some more logging funs in util.common.
* Support all expression forms in typestateTim Chevalier2011-04-281-12/+198
| | | | | | | | | | | | Added support for self_method, cont, chan, port, recv, send, be, do_while, spawn, and ext; handled break and cont correctly. (However, there are no non-xfailed test cases for ext or spawn in stage0 currently.) Although the standard library compiles and all test cases pass with typestate enabled, I left typestate checking disabled as rustc terminates abnormally when building the standard library if so, even though it does generate code correctly.
* Further work on typestate_checkTim Chevalier2011-04-281-119/+343
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Lots of work on typestate_check, seems to get a lot of the way through checking the standard library. * Added for, for_each, assign_op, bind, cast, put, check, break, and cont. (I'm not sure break and cont are actually handled correctly.) * Fixed side-effect bug in seq_preconds so that unioning the preconditions of a sequence of statements or expressions is handled correctly. * Pass poststate correctly through a stmt_decl. * Handle expr_ret and expr_fail properly (after execution of a ret or fail, everything is true -- this is needed to handle ifs and alts where one branch is a ret or fail) * Fixed bug in set_prestate_ann where a thing that needed to be mutated wasn't getting passed as an alias * Fixed bug in how expr_alt was treated (zero is not the identity for intersect, who knew, right?) * Update logging to reflect log_err vs. log * Fixed find_locals so as to return all local decls and exclude function arguments. * Make union_postconds work on an empty vector (needed to handle empty blocks correctly) * Added _vec.cat_options, which takes a list of option[T] to a list of T, ignoring any Nones * Added two test cases.
* Actually perform take/drop on args (oh my!)Graydon Hoare2011-04-281-4/+36
|
* Use cnames when present in ty.ty_to_str.Graydon Hoare2011-04-271-10/+10
|
* Cache sha1 values of types, use seq-based mangling for glue as it's private ↵Graydon Hoare2011-04-271-10/+17
| | | | anyways.
* Partly disable simplified-type glue optimization due to compile-time cost.Graydon Hoare2011-04-271-1/+11
|
* rustc: Ignore the return value of native functions that return nil. stage1 ↵Patrick Walton2011-04-261-1/+10
| | | | can build libstd now, though it leaks.
* rustc: Actually write the optimized bitcode when --save-temps is onPatrick Walton2011-04-261-12/+13
|
* Speed up calls to get_tydesc and kill cname-redundant glue generation.Graydon Hoare2011-04-261-16/+29
|
* Merge branch 'master' of ssh://github.com/graydon/rustGraydon Hoare2011-04-261-1/+3
|\
| * rustc: Cap ridiculous type name sizesPatrick Walton2011-04-261-1/+3
| |
* | Various bits of trans lint, nothing major.Graydon Hoare2011-04-261-25/+36
|/
* rustc: Add a missing return value to Collect.ty_of_item()Patrick Walton2011-04-251-1/+3
|
* A little more guarding against wasted work in ty, typeck.Graydon Hoare2011-04-252-2/+19
|
* rustc: Use the abbreviated type names to avoid LLVM bitcode size explosionPatrick Walton2011-04-253-5/+11
|
* Kick ty_var and ty_local entries out of the type store. Pre-compute presence ↵Graydon Hoare2011-04-252-72/+183
| | | | of var, local, param and bound_params in types.
* rustc: Add a -save-temps option to save bitcode and write output ↵Patrick Walton2011-04-251-6/+49
| | | | simultaneously; document command line switches
* rustc: Pass a "type context" around instead of directly passing the type ↵Patrick Walton2011-04-254-783/+738
| | | | store; prep for removing type annotations
* Avoid type_store hashtable access for a variety of cases, probably only ↵Graydon Hoare2011-04-252-45/+168
| | | | ty_var matters.
* Skip substitution and/or binding when there's no work to do.Graydon Hoare2011-04-251-0/+34
|
* Bind tag members as aliases rather than new locals.Graydon Hoare2011-04-251-19/+18
|
* Fix busted iter/put code. Un-XFAIL foreach-box-drop.rs.Graydon Hoare2011-04-231-95/+94
|
* rustc: Use a silly "magic numbers" hack; seems to speed things up a bit.Patrick Walton2011-04-221-2/+41
|