Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Remove modifiers of case class parameters | phaller | 2012-11-26 | 4 | -4/+4 |
| | |||||
* | Refactor some tree creation from Async to ExprBuilder. | Jason Zaugg | 2012-11-24 | 3 | -72/+89 |
| | |||||
* | Tiny aesthetic refactorings. | Jason Zaugg | 2012-11-24 | 2 | -14/+14 |
| | |||||
* | Refactoring to avoid unneeded mutable fields. | Jason Zaugg | 2012-11-24 | 1 | -34/+21 |
| | | | | Brings uniformity to the result generation of AsyncStateBuilder. | ||||
* | Refactoring to use Awaitable | Jason Zaugg | 2012-11-24 | 1 | -19/+16 |
| | | | | Rather than three separate parameters. | ||||
* | Refactor AsyncState heirarchy. | Jason Zaugg | 2012-11-24 | 1 | -34/+38 |
| | | | | | No more extension from concrete classes; no more dummy values for nextState. | ||||
* | More refactoring in ExprBuilder. | Jason Zaugg | 2012-11-24 | 1 | -41/+33 |
| | | | | | | - Moving some private methods out of the top-billing at the head of the file - Replace three nullable fields with one Option. | ||||
* | Address a little duplication in ExprBuilder. | Jason Zaugg | 2012-11-24 | 1 | -20/+19 |
| | |||||
* | More small refactorings. | Jason Zaugg | 2012-11-24 | 3 | -27/+14 |
| | | | | Goal is to make ExprBuilder less cluttered. | ||||
* | Refactor name substitution out of ExprBuilder. | Jason Zaugg | 2012-11-24 | 2 | -12/+17 |
| | |||||
* | Favouring composition over inheritance. | Jason Zaugg | 2012-11-24 | 5 | -31/+31 |
| | |||||
* | add missing copyright | Jason Zaugg | 2012-11-24 | 8 | -5/+18 |
| | |||||
* | Refine tracing of ANF. | Jason Zaugg | 2012-11-24 | 1 | -2/+3 |
| | | | | - show the AST on one line. | ||||
* | Centralize naming. | Jason Zaugg | 2012-11-24 | 3 | -29/+33 |
| | |||||
* | Cleanup var lifting. | Jason Zaugg | 2012-11-24 | 2 | -33/+12 |
| | | | | | Seeing as we know in advance the full set of lifted vars, we don't need to thread this information through ExprBuilder. | ||||
* | Cleaner while rewriting | Jason Zaugg | 2012-11-24 | 2 | -21/+22 |
| | | | | | | | -preserve LabelDef symbols to allow use of Symbol, rather than Names as map keys. -a label jump overwrites the nextState of an AsyncState. This is cleaner than inserting a return { state = 12; resume() }. | ||||
* | Prohibit await in if condition (for now) | Jason Zaugg | 2012-11-24 | 3 | -6/+14 |
| | | | | | | Test nested loops. Control ANF tracing with another system property. | ||||
* | Prohibit return. | Jason Zaugg | 2012-11-23 | 1 | -0/+2 |
| | | | | Closes #21 | ||||
* | Explicitly prohibit await in nested methods. | Jason Zaugg | 2012-11-23 | 2 | -0/+8 |
| | |||||
* | Enable debug logging with a system property. | Jason Zaugg | 2012-11-23 | 1 | -1/+1 |
| | |||||
* | Support await in a while loop. | Jason Zaugg | 2012-11-23 | 4 | -15/+52 |
| | |||||
* | Test for await in while (currently forbidden). | Jason Zaugg | 2012-11-23 | 2 | -3/+3 |
| | | | | Lookup the ValDef symbol from Assign#rhs.symbol. | ||||
* | Forbid await in try/catch. | Jason Zaugg | 2012-11-23 | 1 | -0/+10 |
| | |||||
* | Tightenen up modifiers and other refactoring. | Jason Zaugg | 2012-11-23 | 4 | -18/+13 |
| | |||||
* | Fix #31, Unfinished ANF transform | Jason Zaugg | 2012-11-23 | 2 | -9/+33 |
| | | | | | | | | Prepend {(); ... } before starting the ANF transform. Add tracing to the anf/inline transform. Also enables and addresses SIP-18 warnings. | ||||
* | Fix scaladoc formatting. | Jason Zaugg | 2012-11-23 | 1 | -3/+3 |
| | |||||
* | Preserve positions and attachments. | Jason Zaugg | 2012-11-23 | 2 | -28/+78 |
| | | | | | | | | | Not quite sure how to test this yet; the original trees coming from toolbox don't seem to come with position to start with. But this is a start. | ||||
* | Convert null check to an assert. | Jason Zaugg | 2012-11-23 | 1 | -5/+4 |
| | | | | We seem to be symful now. | ||||
* | Ensure unique names for definitions in the async block. | Jason Zaugg | 2012-11-23 | 4 | -17/+80 |
| | | | | | | | | - transform the provided tree using reflect.internal.Symbols#Symbol.name_= and treeCopy.{Ident, Select}. - not sure if this is possible within the public Symbol API. - move checking for unsupported nested module/class to AsyncAnalysis. - make block merging selective (only do so if there are nested await calls.) | ||||
* | Minor refactoring in ANF transform. | Jason Zaugg | 2012-11-22 | 1 | -31/+27 |
| | |||||
* | Add TODO comment. | Jason Zaugg | 2012-11-22 | 1 | -1/+1 |
| | |||||
* | Make the ANF transform more selective. | Jason Zaugg | 2012-11-22 | 1 | -57/+52 |
| | |||||
* | Refactor the analyzers to a seprarate file. | Jason Zaugg | 2012-11-22 | 4 | -103/+114 |
| | |||||
* | Lookup await symbol in AsyncBase. | Jason Zaugg | 2012-11-22 | 1 | -3/+3 |
| | |||||
* | Comment. | Jason Zaugg | 2012-11-22 | 1 | -0/+2 |
| | |||||
* | Support match as an expression. | Jason Zaugg | 2012-11-22 | 4 | -124/+218 |
| | | | | | | | | - corrects detection of await calls in the ANF transform. - Split AsyncAnalyzer into two parts. Unsupported await detection must happen prior to the async transform to prevent the ANF lifting out by-name arguments to vals and hence changing the semantics. | ||||
* | Cleanups and docs. | Jason Zaugg | 2012-11-22 | 2 | -64/+76 |
| | | | | | - Move now-working duplicate definition tests from `neg` to `run`. - Renames and small code beautification around the var lifting analysis | ||||
* | Remove unused imports. | Jason Zaugg | 2012-11-22 | 1 | -8/+4 |
| | |||||
* | Frugality is no longer required with state IDs. | Jason Zaugg | 2012-11-22 | 3 | -56/+52 |
| | | | | | | Change the way state IDs are allocated to avoid the need to ration them out. Also make the logging tolerant of a toolbox setting that doesn't have a source file. | ||||
* | Minimize lifting of vars. | Jason Zaugg | 2012-11-22 | 2 | -70/+67 |
| | |||||
* | Preserve ValDef symbol. | Jason Zaugg | 2012-11-21 | 2 | -1/+5 |
| | |||||
* | Only transform if/match-s that contain an await. | Jason Zaugg | 2012-11-21 | 2 | -2/+91 |
| | | | | | | Accurate reporting of misplaced awaits. Attempt to collect the minimal set of vars to lift. | ||||
* | Slight simplification of in-flight type checking. | Jason Zaugg | 2012-11-21 | 2 | -7/+6 |
| | |||||
* | Remove obsolete transformations | phaller | 2012-11-21 | 1 | -3/+3 |
| | |||||
* | Change type of name map | phaller | 2012-11-21 | 2 | -9/+10 |
| | |||||
* | Generate cleaner code for Unit-typed if-else expressions | phaller | 2012-11-16 | 1 | -13/+19 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of generating an assignment to a Unit-typed variable, just add the Unit value after the if-else expression: [async] scala.async.Async.async[Unit]({ val f: scala.concurrent.Future[Int] = AnfTestClass.this.base(y); if (y.>(0)) State.result_=(scala.async.Async.await[Int](f).+(2)) else State.result_=(scala.async.Async.await[Int](f).-(2)) }) [async] ANF transform expands to: { val f: scala.concurrent.Future[Int] = AnfTestClass.this.base(y); if (y.>(0)) { val await$8: Int = scala.async.Async.await[Int](f); State.result_=(await$8.+(2)) } else { val await$9: Int = scala.async.Async.await[Int](f); State.result_=(await$9.-(2)) }; () } | ||||
* | Add TransformUtils class for shared utilities | phaller | 2012-11-16 | 3 | -21/+25 |
| | |||||
* | Clean up and improve debug/error output | phaller | 2012-11-16 | 3 | -6/+5 |
| | |||||
* | Add selective ANF transform | phaller | 2012-11-16 | 3 | -12/+130 |
| | | | | | - Does not descend into class and module defs - Adds several tests, including tests for if-else | ||||
* | Fix typos | phaller | 2012-11-12 | 1 | -2/+2 |
| |