about summary refs log tree commit diff
path: root/src/comp/front
AgeCommit message (Collapse)AuthorLines
2011-05-09rustc: Alias fix part 1 -- Separate out AST modes from typechecker modes, ↵Patrick Walton-2/+2
and introduce an "either value or alias" mode
2011-05-06Fix GenericOS.getenv returning a raw str, return an Option.t[str] instead.Graydon Hoare-2/+11
2011-05-06Rename std modules to be camelcasedMarijn Haverbeke-256/+256
(Have fun mergining your stuff with this.)
2011-05-05rustc: Add Rust intrinsic support to the crate metadata reader and writerPatrick Walton-3/+4
2011-05-05Bring back "pred" syntax for writing predicates for checkTim Chevalier-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.
2011-05-05Check well-formedness of constraintsTim Chevalier-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.
2011-05-05Remove 'deprecated mutable...' from our codeMarijn Haverbeke-2/+2
This should make compilation a bit less noisy.
2011-05-04Add #env syntax extension for plucking strings out of the compilation ↵Graydon Hoare-0/+75
environment.
2011-05-04Add a structure for passing option flags around the compiler, put it in ↵Graydon Hoare-3/+2
session, and use it.
2011-05-03rustc: Stub support for Rust intrinsicsPatrick Walton-0/+3
2011-05-03Revert "Rename the "llvm" API to "llvm-intrinsic"" due to tinderbox bustagePatrick Walton-1/+1
This reverts commit 6871c245a67fab222eccc2a21dcb620d11d3b0d0.
2011-05-03Start sketching --depend support in rustc.Graydon Hoare-1/+18
2011-05-03Rename the "llvm" API to "llvm-intrinsic"Patrick Walton-1/+1
2011-05-02Extract ast.is_exported from the resolve moduleBrian Anderson-0/+22
2011-05-02Un-revert "Use different syntax for checks that matter to typestate", fixing ↵Patrick Walton-28/+38
the problem. This reverts commit d08b443fffb1181d8d45ae5d061412f202dd4118.
2011-05-02Revert "Use different syntax for checks that matter to typestate"Graydon Hoare-38/+28
This reverts commit aa25f22f197682de3b18fc4c8ba068d1feda220f. It broke stage2, not sure why yet.
2011-05-02Use different syntax for checks that matter to typestateTim Chevalier-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.
2011-04-29Intern metadata while writing, shrink stage1 from 12mb to 5.7mb.Graydon Hoare-16/+49
2011-04-26Support octal #fmt conversionsBrian Anderson-0/+7
2011-04-25rustc: Pass a "type context" around instead of directly passing the type ↵Patrick Walton-45/+43
store; prep for removing type annotations
2011-04-22rustc: Thread the type store through everything that needs to access type ↵Patrick Walton-1/+1
structures
2011-04-22rustc: Switch @ty.t to ty.t so that we can change it to a uintPatrick Walton-8/+8
2011-04-22rustc: Eliminate the direct use of ty.t.structPatrick Walton-1/+1
2011-04-22Switch to binary search in codemap.lookup_posMarijn Haverbeke-19/+15
Patrick observed excessive slowness when looking up positions in rustc. This might help.
2011-04-21Fix the signature of expr_extBrian Anderson-4/+4
The extension body is just a string, not an expression.
2011-04-21rustc: Pass a type store around, which does nothing yetPatrick Walton-43/+45
2011-04-21rustc: Make the parser never assign any types, not even ty_nilPatrick Walton-5/+4
2011-04-20rustc: Remove all manual type construction outside ty.rsPatrick Walton-56/+51
2011-04-19Remove half-baked 'opacity' layer qualifier.Graydon Hoare-27/+0
2011-04-19Remove effect system from src.Graydon Hoare-193/+168
2011-04-19replace error logging with log_err in stdlib and rustcMarijn Haverbeke-33/+30
2011-04-19add log_err to rustcMarijn Haverbeke-3/+13
2011-04-18Support 0 flag in #fmtBrian Anderson-7/+14
2011-04-18collect crate meta info and ext crate namesMarijn Haverbeke-6/+9
2011-04-17Support the space flag in #fmtBrian Anderson-19/+35
2011-04-17Support + flag in #fmtBrian Anderson-3/+27
2011-04-17Support #fmt precision for string typesBrian Anderson-2/+8
2011-04-16Support left-justification in #fmt conversionsBrian Anderson-9/+56
2011-04-16Make #fmt support explicit conversion widthsBrian Anderson-4/+36
2011-04-14Work on destructors, not entirely functional yet (no tydesc integration).Graydon Hoare-4/+22
2011-04-13Add support for upper-case hex and binary output to #fmt.Brian Anderson-0/+3
Only works for uints at present. Necessitated the addition of _str.to_upper.
2011-04-13Add more commentary about ExtFmtBrian Anderson-14/+7
2011-04-13Add support for printing uints as lower-case hex to ExtFmt.Brian Anderson-13/+78
Begin passing an ExtFmt.RT.conv parsed format description to each of the ExtFmt.RT.conv* functions.
2011-04-13Move #fmt conversion model into ExtFmt.CT namespaceBrian Anderson-29/+28
2011-04-13Lex numeric escapes, needed for lib-str.rs (which now passes).Graydon Hoare-13/+77
2011-04-12typestate_check can now handle expr_block, expr_if, and expr_binaryTim Chevalier-2/+3
(caveat for the latter: it assumes that binary operations are strict; a TODO is to detect or and and and correctly reflect that they're lazy in the second argument). I had to add an ann field to ast.block, resulting in the usual boilerplate changes. Test cases that currently work (if you uncomment the typestate pass in the driver) (all these are under test/compile-fail): fru-typestate ret-uninit use-uninit use-uninit-2 use-uninit-3
2011-04-12rustc: Switch to indices for type parametersPatrick Walton-18/+16
2011-04-12Further work on typestate. Handles expr_rec and expr_assign now.Tim Chevalier-9/+13
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.
2011-04-11Factor out creation of calls into ExtFmt.RTBrian Anderson-12/+12
2011-04-11Add support for bool, char to extfmt.Brian Anderson-0/+10
XFAIL syntax-extension-fmt in rustboot.