| Commit message (Collapse) | Author | Age | Files | Lines | |
|---|---|---|---|---|---|
| * | Implement module namespaces | Marijn Haverbeke | 2011-05-13 | 1 | -70/+72 |
| | | | | | | | | Module names no longer clash with type and value names. The tokenizer/parser still needs to be taught to be more careful in identifying keywords, so that we can use 'str' and 'vec' and so as module names. | ||||
| * | Extend crate format to allow multiple definitions for a single name | Marijn Haverbeke | 2011-05-13 | 1 | -23/+25 |
| | | | | | | The type/value namespace distinction pretty much works now. Module namespace is up next. | ||||
| * | Make module indices hold a list of items | Marijn Haverbeke | 2011-05-13 | 1 | -42/+87 |
| | | | | | | This way, they can support having both a type and a value of the same name. | ||||
| * | Move capture checking into resolve.rs | Marijn Haverbeke | 2011-05-13 | 1 | -12/+49 |
| | | | | | | Drops capture.rs. The new algorithm also checks for captures function arguments and obj fields. | ||||
| * | Change resolve to use walk instead of fold | Marijn Haverbeke | 2011-05-13 | 1 | -100/+162 |
| | | | | | | | Possibly, at some point, we should add a state-passing variant of walk, or a wrapper that makes it easier to thread state. (See the repetetive pop_state_for_* functions in this commit.) | ||||
| * | Downcase std modules again, move to :: for module dereferencing | Marijn Haverbeke | 2011-05-12 | 1 | -223/+223 |
| | | | | | This should be a snapshot transition. | ||||
| * | Change module dereference syntax from . to :: | Marijn Haverbeke | 2011-05-12 | 1 | -48/+6 |
| | | | | | This will need to be a snapshot. | ||||
| * | Keep resolve data in external hash table, rather than embedded defs | Marijn Haverbeke | 2011-05-12 | 1 | -36/+45 |
| | | | | | | | | | | | | | | One step closer to removing fold and having a single, immutable AST. Resolve still uses fold, because it has to detect and transform expr_field expressions. If we go through on our plan of moving to a different syntax for module dereferencing, the parser can spit out expr_field expressions, and resolve can move to walk. (I am truly sorry for the things I did in typestate_check.rs. I expect we'll want to change that to walk as well in the near future, at which point it should probably pass around a context record, which could hold the def_map.) | ||||
| * | Remove mod indices from the AST | Marijn Haverbeke | 2011-05-11 | 1 | -37/+134 |
| | | | | | | They are now created by the resolve pass, which is the only pass that needs them, and kept internal to that pass. | ||||
| * | Get rid of arm indices | Marijn Haverbeke | 2011-05-11 | 1 | -6/+19 |
| | | |||||
| * | Get rid of block indices | Marijn Haverbeke | 2011-05-11 | 1 | -52/+47 |
| | | |||||
| * | Hash only on def_num when storing def_ids that are local | Marijn Haverbeke | 2011-05-11 | 1 | -13/+14 |
| | | |||||
| * | Use a const for crate-num-zero (ast.local_crate) | Marijn Haverbeke | 2011-05-11 | 1 | -2/+1 |
| | | |||||
| * | Cache external crate lookups in resolve.rs | Marijn Haverbeke | 2011-05-11 | 1 | -6/+28 |
| | | | | | | | According to --time-passes, resolution went from 2 to 0 seconds. Not really the bottleneck... but if we want to be crazy fast, just consider this a future bottleneck that was fixed very timely. | ||||
| * | Rewrite comp/middle/resolve.rs | Marijn Haverbeke | 2011-05-11 | 1 | -631/+539 |
| | | | | | | | | | | * Cleans up the algorithm * Move first pass to walk (second still folds) * Support part of a type/value namespace split (crate metadata and module indices still need to be taught about this) * Remove a few blatant inefficiencies (import tables being recreated for every lookup, most importantly) | ||||
| * | Alias-ify fold and its users, remove another 85kb. | Graydon Hoare | 2011-05-09 | 1 | -15/+15 |
| | | |||||
| * | Rename std modules to be camelcased | Marijn Haverbeke | 2011-05-06 | 1 | -47/+47 |
| | | | | | (Have fun mergining your stuff with this.) | ||||
| * | Add missing ret statements to check_mod | Brian Anderson | 2011-05-04 | 1 | -0/+4 |
| | | | | | Un-XFAIL compile-fail export tests | ||||
| * | Extract ast.is_exported from the resolve module | Brian Anderson | 2011-05-02 | 1 | -18/+1 |
| | | |||||
| * | Un-revert "Use different syntax for checks that matter to typestate", fixing ↵ | Patrick Walton | 2011-05-02 | 1 | -1/+1 |
| | | | | | | | the problem. This reverts commit d08b443fffb1181d8d45ae5d061412f202dd4118. | ||||
| * | Revert "Use different syntax for checks that matter to typestate" | Graydon Hoare | 2011-05-02 | 1 | -1/+1 |
| | | | | | This reverts commit aa25f22f197682de3b18fc4c8ba068d1feda220f. It broke stage2, not sure why yet. | ||||
| * | Use different syntax for checks that matter to typestate | Tim Chevalier | 2011-05-02 | 1 | -1/+1 |
| | | | | | | | | | | | 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. | ||||
| * | Remove the search direction from resolve's fold environment | Brian Anderson | 2011-05-01 | 1 | -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 variants | Brian Anderson | 2011-05-01 | 1 | -3/+5 |
| | | |||||
| * | Implement simple module export | Brian Anderson | 2011-05-01 | 1 | -12/+60 |
| | | |||||
| * | replace error logging with log_err in stdlib and rustc | Marijn Haverbeke | 2011-04-19 | 1 | -2/+2 |
| | | |||||
| * | rustc: Switch to indices for type parameters | Patrick Walton | 2011-04-12 | 1 | -21/+31 |
| | | |||||
| * | Remove unused function. | Rafael Ávila de Espíndola | 2011-04-08 | 1 | -17/+0 |
| | | |||||
| * | Remove unused function. | Rafael Ávila de Espíndola | 2011-04-08 | 1 | -12/+0 |
| | | |||||
| * | Continued sketching out code for checking states against preconditions. | Tim Chevalier | 2011-04-06 | 1 | -1/+2 |
| | | | | | | | | | | It's still sketchy. I added a typestate annotation field to statements tagged stmt_decl or stmt_expr, because a stmt_decl statement has a typestate that's different from that of its child node. This necessitated trivial changes to a bunch of other files all over to the compiler. I also added a few small standard library functions, some of which I didn't actually end up using but which I thought might be useful anyway. | ||||
| * | rustc: Add a type annotation to tag items | Patrick Walton | 2011-03-31 | 1 | -4/+4 |
| | | |||||
| * | Improve line comment positioning | Marijn Haverbeke | 2011-03-31 | 1 | -2/+2 |
| | | | | | This involved making ast.variant spanned. | ||||
| * | rustc: Thread an item-to-type mapping throughout the typechecking and ↵ | Patrick Walton | 2011-03-30 | 1 | -39/+60 |
| | | | | | translation phases | ||||
| * | rustc: Partially resolve external module imports | Patrick Walton | 2011-03-29 | 1 | -4/+88 |
| | | |||||
| * | Another go at changing compile-command, this time using RBUILD env var. | Graydon Hoare | 2011-03-25 | 1 | -1/+1 |
| | | |||||
| * | Revert "Bulk-edit compile commands in emacs chatter to point to assumed ↵ | Graydon Hoare | 2011-03-25 | 1 | -1/+1 |
| | | | | | | | build/ dir off src root." This reverts commit 846f2e2ba994268725f38c36fa12f1a09f21615c. | ||||
| * | Bulk-edit compile commands in emacs chatter to point to assumed build/ dir ↵ | Graydon Hoare | 2011-03-25 | 1 | -1/+1 |
| | | | | | off src root. | ||||
| * | rustc: Store cached crate metadata in the session | Patrick Walton | 2011-03-25 | 1 | -9/+5 |
| | | |||||
| * | Start hooking resolve into creater. | Graydon Hoare | 2011-03-24 | 1 | -5/+23 |
| | | |||||
| * | Modify native_item_fn to handle trailing linkage names that differ from the ↵ | Graydon Hoare | 2011-03-20 | 1 | -2/+2 |
| | | | | | item name (used in win32 build of std.dll) | ||||
| * | rustc: Add an annotation for the crate definition to view_item_use | Patrick Walton | 2011-03-15 | 1 | -2/+2 |
| | | |||||
| * | Add support for indexing tags in blocks. | Rafael Ávila de Espíndola | 2011-03-11 | 1 | -8/+36 |
| | | |||||
| * | Handle resolving to native modules. | Rafael Ávila de Espíndola | 2011-03-10 | 1 | -0/+7 |
| | | |||||
| * | Permit view items in native modules. | Graydon Hoare | 2011-03-07 | 1 | -3/+11 |
| | | |||||
| * | More typechecking for native types and the needed plumbing in codegen. | Rafael Avila de Espindola | 2011-02-16 | 1 | -2/+2 |
| | | |||||
| * | Add basic front-end support for 'for each' loops. | Graydon Hoare | 2011-02-14 | 1 | -0/+3 |
| | | |||||
| * | Teach resolve about ty params on tags. | Graydon Hoare | 2011-02-14 | 1 | -0/+8 |
| | | |||||
| * | Add missing fold of native functions. | Rafael Avila de Espindola | 2011-02-10 | 1 | -12/+35 |
| | | |||||
| * | Add native modules to resolve. With this hello world gets to typecheck. | Rafael Avila de Espindola | 2011-02-07 | 1 | -19/+58 |
| | | |||||
| * | Fix expressions with paths with more than one element. | Rafael Avila de Espindola | 2011-02-07 | 1 | -2/+1 |
| | | |||||