aboutsummaryrefslogtreecommitdiff
path: root/src/comp/middle
Commit message (Collapse)AuthorAgeFilesLines
* 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
|
* rustc: Include the cname in the hash to increase entropyPatrick Walton2011-04-221-1/+10
|
* rustc: Thread the type store through everything that needs to access type ↵Patrick Walton2011-04-224-382/+411
| | | | structures
* rustc: Move the type serialization logic to an Encode modulePatrick Walton2011-04-222-97/+108
|
* rustc: Remove direct access to the cname field of typesPatrick Walton2011-04-221-4/+7
|
* rustc: Switch @ty.t to ty.t so that we can change it to a uintPatrick Walton2011-04-224-414/+415
|