about summary refs log tree commit diff
path: root/src/comp/middle
AgeCommit message (Collapse)AuthorLines
2011-07-28Factor out box initializing code into trans_malloc_boxed.Michael Sullivan-66/+36
2011-07-28Updated alt indenting.Lindsey Kuper-11/+11
2011-07-28The names 'outer' and 'inner' make more sense than 'self' and 'with'.Lindsey Kuper-84/+89
(Also, some formatting and long-string cleanup.)
2011-07-28Thread kinds into the type system. Don't quite activate yet, since it breaks ↵Graydon Hoare-39/+49
stdlib and snapshot isn't ready to compile modified stdlib.
2011-07-28Adding upcalls to to ref() and deref() tasks. This is the first step towards ↵Eric Holk-2/+18
atomic reference counting of tasks.
2011-07-28Parse, store and print type parameter kind constraints.Graydon Hoare-4/+12
2011-07-27Fix stale 'copy' occurrences to 'move' in comments.Graydon Hoare-2/+2
2011-07-28Replace walk with visit in the typecheckerMarijn Haverbeke-35/+35
2011-07-28Remove walk instance from kind.rsMarijn Haverbeke-6/+6
2011-07-27Further refinement to kind system lattice and type-kind rules; first ↵Graydon Hoare-27/+62
successful caught kind error (prohibits copying a pinned resource, though trans already caught it later).
2011-07-27Some work on backwarding for issue #702.Lindsey Kuper-20/+100
2011-07-27Have bind support non-alias parametric non-bound arguments.Michael Sullivan-42/+26
This was previously disallowed by the typechecker and not properly handled in trans. I removed the typechecker check (replacing it with a simpler check that spawned functions don't have type params) and fixed trans. Closes #756.
2011-07-27Allow already bound functions to be bound again.Michael Sullivan-4/+0
This commit just disables the check. All of the real work was in previous commits that moved the target function into the bindings part of the closure that is tracked by the tydesc. Closes #754.
2011-07-27Fix binding a bare fn argument with type parameters.Michael Sullivan-11/+10
Closes #642.
2011-07-27Remove vestiges of "layers", insert skeletal do-nothing "kind" pass plus ↵Graydon Hoare-2/+256
cached calculation of kind for each type.
2011-07-27Eliminate "target" field in closures.Michael Sullivan-14/+10
2011-07-27Put the bound function in bind in the bindings, not in a distinguished spot.Michael Sullivan-23/+22
2011-07-27Mess around with the casting in trans_bind.Michael Sullivan-14/+7
2011-07-27Some cleanup in trans.Michael Sullivan-26/+21
2011-07-27Associate names with taskptr and tydesc types for better debugging.Michael Sullivan-0/+2
2011-07-27Make trand_bind_1 use create_real_fn_pair.Michael Sullivan-21/+11
2011-07-27Don't allow globals or immutable locals to be passed by mut aliasMarijn Haverbeke-17/+39
Closes #747
2011-07-27Fix damage done by the pretty-printerMarijn Haverbeke-112/+97
2011-07-27Reformat for new syntaxMarijn Haverbeke-13302/+12681
2011-07-27Add missing case for view_item_use in resolve.rsMarijn Haverbeke-16/+11
Closes #748
2011-07-26Clean up long strings and indentation.Lindsey Kuper-21/+19
2011-07-26Some simple cleanup of trans_bind.Michael Sullivan-172/+162
2011-07-26Convert a bunch of cx.fcx.lcx... paths into bcx_...(cx)Michael Sullivan-310/+310
2011-07-26Initial implementation of typestate for closures.Michael Sullivan-13/+31
There are still things not handled properly: relying on other preconditions of upvars is likely to cause bad things to happen. We probably want to disallow it.
2011-07-26Translate anonymous block closures.Michael Sullivan-8/+50
2011-07-26Resolve and typecheck alias-environment-capturing blocks.Michael Sullivan-34/+101
2011-07-26Fix the freevars pass to actually work on top of visit.Michael Sullivan-2/+9
2011-07-26Convert all code that uses walk.rs in the straightforward way to simple_visitMarijn Haverbeke-49/+42
Code that needs the keep_going functionality is still using walk. I will add an equivalent to visit.rs later.
2011-07-26Resolve loop collection expressions in the right scopeMarijn Haverbeke-11/+15
Closes #745
2011-07-26Detect duplicate field names in record literals and typesMarijn Haverbeke-16/+33
Closes #746
2011-07-26Remove tuple support from the compilerMarijn Haverbeke-269/+23
2011-07-26Remove all uses of tuples from the compiler and stdlibMarijn Haverbeke-388/+396
2011-07-25Rename the block type to be blk also. Sorry.Michael Sullivan-36/+37
2011-07-25Disallow block as a variable name in preparation for it becoming a keyword.Michael Sullivan-19/+19
2011-07-25Remove some rustboot-ismsMarijn Haverbeke-11/+6
Closes #464
2011-07-25Tie up the ends needed to get external consts workingMarijn Haverbeke-24/+17
Closes #658
2011-07-25Add a pass that checks for unreachable alt armsMarijn Haverbeke-2/+102
2011-07-22Overhaul how we handle freevars.Michael Sullivan-26/+39
2011-07-22Simple cleanup of the freevars pass.Michael Sullivan-5/+5
2011-07-22Add a "fake" def_upvar and mechanisms to create it.Michael Sullivan-4/+17
2011-07-22Fixing (or at least improving) translation of move semantics for send and ↵Eric Holk-8/+5
receive. This let's us run all of the task-comm tests.
2011-07-22Folding recv_val into trans_recv, since this is its only use.Eric Holk-11/+7
2011-07-22Remove typechecker work-arounds now that I know howMarijn Haverbeke-2/+1
2011-07-22Start adding support for multiple variable declarations per stmtMarijn Haverbeke-25/+47
This adds parser support and most of the machinery for auto x = 10, y = 20; However, the above still goes wrong somewhere in typestate, causing the state checker to believe only the last variable in the list is initialized after the statement. Tim, if you have a moment, could you go over the changes to the tstate code in this patch and see where I'm going wrong? Multi-var-decls without the typestate extension Add a loop
2011-07-22Rewrite trans_cast, float->float and float->int castsMarijn Haverbeke-50/+63