| Commit message (Collapse) | Author | Age | Files | Lines | |
|---|---|---|---|---|---|
| * | Further work on typestate_check | Tim Chevalier | 2011-04-28 | 1 | -0/+15 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. | ||||
| * | stdlib: Use an unsafe cast to speed up the memory writer | Patrick Walton | 2011-04-27 | 1 | -1/+11 |
| | | |||||
| * | stdlib/rt: Add an unsafe function to cast immutable vectors to mutable ones | Patrick Walton | 2011-04-27 | 1 | -0/+2 |
| | | |||||
| * | Fix _str.bytes to trivial version. | Graydon Hoare | 2011-04-27 | 1 | -4/+2 |
| | | |||||
| * | stdlib: Real fix for _uint.parse_buf(). | Patrick Walton | 2011-04-27 | 1 | -0/+8 |
| | | |||||
| * | stdlib: Fix a crazy underflow bug in _uint.parse_buf. Oops. | Patrick Walton | 2011-04-27 | 1 | -3/+2 |
| | | |||||
| * | Fix the interaction between various flags in #fmt | Brian Anderson | 2011-04-26 | 1 | -7/+12 |
| | | |||||
| * | Support octal #fmt conversions | Brian Anderson | 2011-04-26 | 1 | -0/+7 |
| | | |||||
| * | Make #fmt char conversions behave like printf | Brian Anderson | 2011-04-26 | 1 | -1/+1 |
| | | |||||
| * | stdlib: Add a silly ANSI color library | Patrick Walton | 2011-04-26 | 2 | -0/+55 |
| | | |||||
| * | Add GetOpts module to std | Marijn Haverbeke | 2011-04-26 | 2 | -0/+250 |
| | | |||||
| * | Add _str.slice to std lib | Marijn Haverbeke | 2011-04-26 | 1 | -2/+6 |
| | | |||||
| * | Skip likely-zero initial probe, speed up map.rs. | Graydon Hoare | 2011-04-25 | 1 | -5/+5 |
| | | |||||
| * | Minimize calls to hash function in map.rs | Graydon Hoare | 2011-04-22 | 1 | -11/+12 |
| | | |||||
| * | stdlib: Add a pointer equality function to the standard library and a test case | Patrick Walton | 2011-04-21 | 2 | -0/+9 |
| | | |||||
| * | Handle nested items correctly in typestate_check | Tim Chevalier | 2011-04-19 | 2 | -5/+9 |
| | | | | | | | | | | | | | | | | | | | | | | | | | Summary says it all. Actually, only nested objects and functions are handled, but that's better than before. The fold that I was using before to traverse a crate wasn't working correctly, because annotations have to reflect the number of local variables of the nearest enclosing function (in turn, because annotations are represented as bit vectors). The fold was traversing the AST in the wrong order, first filling in the annotations correctly, but then re-traversing them with the bit vector length for any outer nested functions, and so on. Remedying this required writing a lot of tedious boilerplate code because I scrapped the idea of using a fold altogether. I also made typestate_check handle unary, field, alt, and fail. Also, some miscellaneous changes: * added annotations to blocks in typeck * fix pprust so it can handle spawn * added more logging functions in util.common * fixed _vec.or * added maybe and from_maybe in option * removed fold_block field from ast_fold, since it was never used | ||||
| * | Remove half-baked 'opacity' layer qualifier. | Graydon Hoare | 2011-04-19 | 1 | -2/+2 |
| | | |||||
| * | Remove effect system from src. | Graydon Hoare | 2011-04-19 | 11 | -107/+92 |
| | | |||||
| * | replace error logging with log_err in stdlib and rustc | Marijn Haverbeke | 2011-04-19 | 3 | -17/+17 |
| | | |||||
| * | Precision overrides 0-padding in #fmt | Brian Anderson | 2011-04-18 | 1 | -34/+49 |
| | | |||||
| * | Rearrange ExtFmt.RT.pad to recover some horizontal space | Brian Anderson | 2011-04-18 | 1 | -49/+51 |
| | | |||||
| * | Left-justification overrides 0-padding in #fmt | Brian Anderson | 2011-04-18 | 1 | -22/+24 |
| | | |||||
| * | Support 0 flag in #fmt | Brian Anderson | 2011-04-18 | 1 | -5/+49 |
| | | |||||
| * | Support the space flag in #fmt | Brian Anderson | 2011-04-17 | 1 | -4/+9 |
| | | |||||
| * | Support + flag in #fmt | Brian Anderson | 2011-04-17 | 1 | -3/+8 |
| | | |||||
| * | Support #fmt precision for bools, with same rules as strings | Brian Anderson | 2011-04-17 | 1 | -2/+6 |
| | | | | | | Not totally confident this is desirable. The alternative would be to make it a compile error. | ||||
| * | Treat char #fmt conversions just like str conversions | Brian Anderson | 2011-04-17 | 1 | -1/+1 |
| | | | | | Add missing tests | ||||
| * | Support #fmt precision for signed types | Brian Anderson | 2011-04-17 | 1 | -37/+46 |
| | | |||||
| * | Support #fmt precision for unsigned types | Brian Anderson | 2011-04-17 | 1 | -11/+49 |
| | | |||||
| * | Support #fmt precision for string types | Brian Anderson | 2011-04-17 | 1 | -2/+25 |
| | | |||||
| * | Support left-justification in #fmt conversions | Brian Anderson | 2011-04-16 | 1 | -3/+29 |
| | | |||||
| * | Make #fmt support explicit conversion widths | Brian Anderson | 2011-04-16 | 1 | -9/+45 |
| | | |||||
| * | stdlib: Add some vector functions: empty, empty_mut, grow_set, and freeze. ↵ | Patrick Walton | 2011-04-15 | 1 | -4/+31 |
| | | | | | Change _vec.grow to use uint arguments. | ||||
| * | rustc: Use union-find for variable substitution | Patrick Walton | 2011-04-14 | 1 | -16/+12 |
| | | |||||
| * | Add support for upper-case hex and binary output to #fmt. | Brian Anderson | 2011-04-13 | 2 | -0/+24 |
| | | | | | Only works for uints at present. Necessitated the addition of _str.to_upper. | ||||
| * | Add more commentary about ExtFmt | Brian Anderson | 2011-04-13 | 1 | -1/+30 |
| | | |||||
| * | Add support for printing uints as lower-case hex to ExtFmt. | Brian Anderson | 2011-04-13 | 1 | -5/+22 |
| | | | | | | Begin passing an ExtFmt.RT.conv parsed format description to each of the ExtFmt.RT.conv* functions. | ||||
| * | Move #fmt conversion model into ExtFmt.CT namespace | Brian Anderson | 2011-04-13 | 1 | -44/+44 |
| | | |||||
| * | Make expr_while work in typestate_check | Tim Chevalier | 2011-04-13 | 1 | -0/+11 |
| | | | | | | | Also did some refactoring in typestate_check. All test cases in compile-fail that involve uninitialized vars now fail correctly! (All eight of them, that is.) | ||||
| * | Slight updates to match API drift in io, lib-io.rs passes. | Graydon Hoare | 2011-04-13 | 1 | -1/+1 |
| | | |||||
| * | Further work on typestate. Handles expr_rec and expr_assign now. | Tim Chevalier | 2011-04-12 | 1 | -3/+12 |
| | | | | | | | | | | | | | Also changed the ts_ann field on statements to be an ann instead, which explains most of the changes. As well, got rid of the "warning: no type for expression" error by filling in annotations for local decls in typeck (not sure whether this was my fault or not). Finally, in bitv, added a clone() function to copy a bit vector, and fixed is_true, is_false, and to_str to not be nonsense. | ||||
| * | Factor out creation of calls into ExtFmt.RT | Brian Anderson | 2011-04-11 | 1 | -4/+4 |
| | | |||||
| * | Add support for bool, char to extfmt. | Brian Anderson | 2011-04-11 | 1 | -0/+12 |
| | | | | | XFAIL syntax-extension-fmt in rustboot. | ||||
| * | Move ExtFmt compile-time functions into their own module | Brian Anderson | 2011-04-11 | 1 | -170/+173 |
| | | |||||
| * | Use correct indentation for ExtFmt.rs | Brian Anderson | 2011-04-11 | 1 | -6/+15 |
| | | |||||
| * | Make ExtFmt call its own functions instead of others defined in std | Brian Anderson | 2011-04-11 | 1 | -0/+11 |
| | | |||||
| * | Move extfmt parsing into standard library | Brian Anderson | 2011-04-11 | 1 | -0/+213 |
| | | |||||
| * | Move the extfmt data model into the standard library. | Brian Anderson | 2011-04-11 | 2 | -0/+48 |
| | | |||||
| * | Make lexer buffer the whole file | Marijn Haverbeke | 2011-04-09 | 1 | -0/+8 |
| | | | | | | This way, it won't have to go through a bunch of calls for each byte fetched. | ||||
| * | Implemented computing prestates and poststates for a few expression forms. | Tim Chevalier | 2011-04-08 | 1 | -0/+15 |
| | | | | | | The typestate checker (if it's uncommented) now correctly rejects a trivial example program that has an uninitialized variable. | ||||