about summary refs log tree commit diff
path: root/src/comp
AgeCommit message (Collapse)AuthorLines
2011-05-31rustc: Teach rustc to use block results as fn return values. Closes #372Brian Anderson-3/+54
2011-05-31Fix comment-scanning logic in lexer.Graydon Hoare-2/+4
2011-05-31Handle pretty-printing else-if properly.Graydon Hoare-12/+26
2011-05-31Move rust_vec_append_glue to rt.Rafael Ávila de Espíndola-142/+0
2011-05-31Consolidate formatting functions a bit more.Graydon Hoare-209/+132
2011-05-31Fix utility printers to flush eof in common.rs.Graydon Hoare-0/+6
2011-05-31Fix long linesGraydon Hoare-8/+16
2011-05-31Break methods in obj types.Graydon Hoare-0/+3
2011-05-31Tighten up comment rules a little more.Graydon Hoare-22/+22
2011-05-31Improve handling of trailing comments.Graydon Hoare-4/+30
2011-05-31Add span to field to catch per-field comments in rec exprs.Graydon Hoare-22/+27
2011-05-31Improve comment handling in pp.Graydon Hoare-205/+333
2011-05-31Differentiate consistency of commasep boxesGraydon Hoare-27/+35
2011-05-31new pretty printerGraydon Hoare-405/+736
2011-05-31Start finishing up the rust_start signature transition.Rafael Ávila de Espíndola-1/+1
2011-05-31Have blocks return their result by writing to a reserved spaceMarijn Haverbeke-71/+103
This makes it possible to pass the location of that space through to nested blocks, resulting in less copying, taking, and dropping. This makes the compiler slightly faster and 19k smaller. A FIXME is to use 'move' semantics when returning the values from the block -- don't bump the refcount and drop it again for the returning block, but simply assign ownership to the receiver. To do this, we'll need a way to (safely) scrub things from a block's cleanup list.
2011-05-31rustc: Remove unneeded type params from alt patternsBrian Anderson-271/+271
2011-05-31rustc: Pushdown type params for tag patterns. Closes #363Brian Anderson-4/+14
2011-05-27In pre/postcondition computation, failing calls should set the postconditionTim Chevalier-3/+12
A non-returning call should have a postcondition in which all predicates are true -- not just a poststate. Otherwise, alt expressions where one or more branches terminate in a non-returning call and others initialize a variable get rejected. Includes a test case.
2011-05-27change commentTim Chevalier-3/+3
2011-05-27Fix two typestate bugsTim Chevalier-8/+11
* Non-returning calls should set all predicates to be true, not just the "this function returns" predicate * Fixed a bug in the expr_alt case in tstate.states that wasn't updating the changed flag properly, then fixed *another* bug that was updating it too enthusiastically, but was masked by the first bug.
2011-05-27Lots of comments, and some more descriptive names.Lindsey Kuper-56/+209
2011-05-27Check the declaration type in a for loop against the sequence typeTim Chevalier-15/+39
Changed the typechecker to correctly typecheck the declared variable type in a for or for-each loop against the vector element type (for a for loop) or the iterator type (for a for-each loop). Added a test case.
2011-05-27add a function that returns the type of a local declTim Chevalier-0/+11
2011-05-27Generating names for wrappers, removed extra loggingEric Holk-35/+5
2011-05-27Switched calling conventions so that spawn with multiple arguments works.Eric Holk-6/+5
2011-05-27Switching over to wrappers for spawning functions of multiple arguments. ↵Eric Holk-43/+115
Doesn't quite work yet.
2011-05-27Removing excessively verbous logging.Eric Holk-37/+0
2011-05-27Programs using spawn terminateEric Holk-0/+17
2011-05-27Working on 2 argument spawn. The arguments seem to be copied correctly once, ↵Eric Holk-3/+1
but then they get lost.
2011-05-27Arguments seem to be correctly passed to child processes now.Eric Holk-10/+13
2011-05-27New tasks run, but their arguments get lost and something ends up in an ↵Eric Holk-2/+6
infinite loop when the task exits.
2011-05-27Use annotations on blocksTim Chevalier-10/+9
Previously, block_ty returned the type of the terminating expression of the block (or nil if said expression was absent). I changed check_expr to write the type of that expression into the annotation for the block itself, so now block_ty can use the block's annotation.
2011-05-27Change the syntax for RECV from "var <- port" to "port |> var".Michael Sullivan-5/+5
2011-05-27Fix missing bump in RECV lexer case.Michael Sullivan-0/+1
2011-05-27Pretty print the new RECV token...Michael Sullivan-0/+1
2011-05-27Remove parser support for recv as an initializer in preparation for changing ↵Michael Sullivan-5/+7
the recv syntax.
2011-05-27Lex '|>' as the RECV token.Michael Sullivan-6/+14
2011-05-26Make _|_ unify with anythingTim Chevalier-12/+9
The typechecker had a number of special cases for unifying types with _|_ (as with checking if and alt). But, a value of type _|_ should be usable in any context, as such a value always diverges, and will never be used by its immediate context. Changed unify accordingly, removed special cases.
2011-05-27Handle circularity in glob imports in a more elegant fashion.Paul Stansifer-75/+87
2011-05-27Add a map from def_id s to items in resolve::env.Paul Stansifer-1/+24
Use it to provide better error messages in the event of glob-importing the same name multiple times.
2011-05-27Fix bugs: make sure glob imports show up in the right module,Paul Stansifer-65/+92
and make sure that circular glob imports don't diverge.
2011-05-27"import module::*;" now works.Paul Stansifer-55/+69
2011-05-27Part one of adding globbing to resolve.rs: build up glob links. (Part two ↵Paul Stansifer-21/+119
will follow those links if non-glob resolution fails.)
2011-05-27Parsing and folding changes for globbed imports.Paul Stansifer-12/+42
2011-05-26Fix typoTim Chevalier-1/+1
2011-05-26More delicious dead code removal from runtime, upcalls.Graydon Hoare-79/+11
2011-05-26Track spans for each local variable in typestateTim Chevalier-103/+161
This lets us print better messages in situations with name shadowing.
2011-05-26Remove unused importsTim Chevalier-6/+1
2011-05-26Add a span_str function in sessionTim Chevalier-4/+12