aboutsummaryrefslogtreecommitdiff
path: root/src/comp/front
Commit message (Collapse)AuthorAgeFilesLines
* Remove some truly wrong logic in parse_constrsMarijn Haverbeke2011-05-121-13/+8
|
* Keep resolve data in external hash table, rather than embedded defsMarijn Haverbeke2011-05-124-20/+33
| | | | | | | | | | | | | 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.)
* Ensure ann tags are actually kept around during typecheckingMarijn Haverbeke2011-05-121-1/+9
| | | | | | This way, the tag assigned by the parser stays with the node. I realize ann replacing is probably going away real soon, but I needed this now for moving the resolve defs out of the AST.
* Properly lex block comments followed by EOFMarijn Haverbeke2011-05-121-4/+4
|
* Remove unused filename parameter from lexer.new_readerBrian Anderson2011-05-112-3/+3
|
* Give the lexer a session so that it can fail more informativelyBrian Anderson2011-05-112-19/+30
|
* Remove mod indices from the ASTMarijn Haverbeke2011-05-113-148/+27
| | | | | 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 indicesMarijn Haverbeke2011-05-112-24/+3
|
* Get rid of block indicesMarijn Haverbeke2011-05-112-55/+13
|
* Use a const for crate-num-zero (ast.local_crate)Marijn Haverbeke2011-05-111-0/+1
|
* Rewrite comp/middle/resolve.rsMarijn Haverbeke2011-05-113-13/+6
| | | | | | | | | * 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)
* rustc: Number everything with an annotationPatrick Walton2011-05-104-148/+166
|
* Alias-ify fold and its users, remove another 85kb.Graydon Hoare2011-05-091-3/+4
|
* Remove boxes from token.t.Graydon Hoare2011-05-093-42/+79
|
* rustc: Alias fix part 1 -- Separate out AST modes from typechecker modes, ↵Patrick Walton2011-05-091-2/+2
| | | | and introduce an "either value or alias" mode
* Fix GenericOS.getenv returning a raw str, return an Option.t[str] instead.Graydon Hoare2011-05-061-2/+11
|
* Rename std modules to be camelcasedMarijn Haverbeke2011-05-069-256/+256
| | | | (Have fun mergining your stuff with this.)
* rustc: Add Rust intrinsic support to the crate metadata reader and writerPatrick Walton2011-05-051-3/+4
|
* Bring back "pred" syntax for writing predicates for checkTim Chevalier2011-05-054-12/+31
| | | | | | | | | | This commit reinstates the requirement that the predicate in a "check" must be a manifest call to a special kind of function declared with the new "pred" keyword instead of "fn". Preds must have a boolean return type and can only call other preds; they can't have any effects (as enforced by the typechecker). The arguments to a predicate in a check expression must be slot variables or literals.
* Check well-formedness of constraintsTim Chevalier2011-05-051-0/+14
| | | | | | Check that the operand in a constraint is an explicit name, and that the operands are all local variables or literals. Still need to check that the name refers to a pure function.
* Remove 'deprecated mutable...' from our codeMarijn Haverbeke2011-05-052-2/+2
| | | | This should make compilation a bit less noisy.
* Add #env syntax extension for plucking strings out of the compilation ↵Graydon Hoare2011-05-042-0/+75
| | | | environment.
* Add a structure for passing option flags around the compiler, put it in ↵Graydon Hoare2011-05-041-3/+2
| | | | session, and use it.
* rustc: Stub support for Rust intrinsicsPatrick Walton2011-05-032-0/+3
|
* Revert "Rename the "llvm" API to "llvm-intrinsic"" due to tinderbox bustagePatrick Walton2011-05-031-1/+1
| | | | This reverts commit 6871c245a67fab222eccc2a21dcb620d11d3b0d0.
* Start sketching --depend support in rustc.Graydon Hoare2011-05-032-1/+18
|
* Rename the "llvm" API to "llvm-intrinsic"Patrick Walton2011-05-031-1/+1
|
* Extract ast.is_exported from the resolve moduleBrian Anderson2011-05-021-0/+22
|
* Un-revert "Use different syntax for checks that matter to typestate", fixing ↵Patrick Walton2011-05-025-28/+38
| | | | | | the problem. This reverts commit d08b443fffb1181d8d45ae5d061412f202dd4118.
* Revert "Use different syntax for checks that matter to typestate"Graydon Hoare2011-05-025-38/+28
| | | | This reverts commit aa25f22f197682de3b18fc4c8ba068d1feda220f. It broke stage2, not sure why yet.
* Use different syntax for checks that matter to typestateTim Chevalier2011-05-025-28/+38
| | | | | | | | | | 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.
* Intern metadata while writing, shrink stage1 from 12mb to 5.7mb.Graydon Hoare2011-04-291-16/+49
|
* Support octal #fmt conversionsBrian Anderson2011-04-261-0/+7
|
* rustc: Pass a "type context" around instead of directly passing the type ↵Patrick Walton2011-04-251-45/+43
| | | | store; prep for removing type annotations
* rustc: Thread the type store through everything that needs to access type ↵Patrick Walton2011-04-221-1/+1
| | | | structures
* rustc: Switch @ty.t to ty.t so that we can change it to a uintPatrick Walton2011-04-222-8/+8
|
* rustc: Eliminate the direct use of ty.t.structPatrick Walton2011-04-221-1/+1
|
* Switch to binary search in codemap.lookup_posMarijn Haverbeke2011-04-221-19/+15
| | | | | Patrick observed excessive slowness when looking up positions in rustc. This might help.
* Fix the signature of expr_extBrian Anderson2011-04-213-4/+4
| | | | The extension body is just a string, not an expression.
* rustc: Pass a type store around, which does nothing yetPatrick Walton2011-04-211-43/+45
|
* rustc: Make the parser never assign any types, not even ty_nilPatrick Walton2011-04-211-5/+4
|
* rustc: Remove all manual type construction outside ty.rsPatrick Walton2011-04-201-56/+51
|
* Remove half-baked 'opacity' layer qualifier.Graydon Hoare2011-04-194-27/+0
|
* Remove effect system from src.Graydon Hoare2011-04-196-193/+168
|
* replace error logging with log_err in stdlib and rustcMarijn Haverbeke2011-04-194-33/+30
|
* add log_err to rustcMarijn Haverbeke2011-04-194-3/+13
|
* Support 0 flag in #fmtBrian Anderson2011-04-181-7/+14
|
* collect crate meta info and ext crate namesMarijn Haverbeke2011-04-182-6/+9
|
* Support the space flag in #fmtBrian Anderson2011-04-171-19/+35
|
* Support + flag in #fmtBrian Anderson2011-04-171-3/+27
|