Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Add a test to interrogate the expanded tree. | Jason Zaugg | 2012-11-11 | 4 | -6/+49 |
| | | | | | | | - checks that only one function is synthesized - checks the set of vars created (TODO minimize these) - use x$1 rather than x1 for the freshened names for lifted vars. - make execContext a val, not a var. | ||||
* | Fixes #7, allow async blocks without await or with a single expression. | Jason Zaugg | 2012-11-11 | 3 | -85/+121 |
| | |||||
* | Use a var rather than a lazy val to break a cycle. | Jason Zaugg | 2012-11-11 | 1 | -4/+4 |
| | | | | (onCompleteHandler and resume refer to each other) | ||||
* | Refer to an relevant bug in the comments. | Jason Zaugg | 2012-11-11 | 1 | -1/+1 |
| | |||||
* | Collapse all the onComplete handlers into a single function. | Jason Zaugg | 2012-11-11 | 3 | -46/+68 |
| | | | | | | | | We're now down to two inner classes per async block: the `onComplete` function, and the by-name argument to the initial call to `future`. Also caches the execution context in a val. | ||||
* | Synthezise a match directly. | Jason Zaugg | 2012-11-11 | 2 | -24/+9 |
| | | | | Rather than a function applied to the state. | ||||
* | Shuffle a bit more code around. | Jason Zaugg | 2012-11-11 | 3 | -32/+19 |
| | |||||
* | Synthesize `case 23 => rhs` rather than `case any @ (_: Int) if any == 25)` | Jason Zaugg | 2012-11-11 | 2 | -14/+1 |
| | |||||
* | Synthesize a Function1, rather than a PartialFunction. | Jason Zaugg | 2012-11-11 | 2 | -43/+14 |
| | |||||
* | Minor refactorings | Jason Zaugg | 2012-11-11 | 2 | -19/+19 |
| | |||||
* | Deleting unused code. | Jason Zaugg | 2012-11-11 | 1 | -143/+1 |
| | |||||
* | Synthesize a single PartialFunction rather than two and an orElse call. | Jason Zaugg | 2012-11-10 | 2 | -30/+33 |
| | | | | Give the handler a real class name. | ||||
* | Remove unneed (). | Jason Zaugg | 2012-11-09 | 1 | -5/+2 |
| | |||||
* | Test with less trivial types. | Jason Zaugg | 2012-11-09 | 1 | -0/+39 |
| | | | | Works like it says on the box. | ||||
* | Avoid hygiene problems by suffixing result/result/state. | Jason Zaugg | 2012-11-09 | 3 | -8/+67 |
| | | | | Perhaps we should freshen them, but that will be a little awkward in our reify block. | ||||
* | Doc fix. | Jason Zaugg | 2012-11-09 | 1 | -2/+3 |
| | |||||
* | Remove sleeps from the tests. | Jason Zaugg | 2012-11-09 | 8 | -12/+0 |
| | |||||
* | Further cleanup in AST generation | Jason Zaugg | 2012-11-09 | 2 | -84/+104 |
| | | | | | | | | - centralize names - centralize more module/class lookup - reduce duplication - centralize use of resetAllAttrs - remove uses of asInstanceOf | ||||
* | Abstract over the future implementation. | Jason Zaugg | 2012-11-09 | 3 | -167/+341 |
| | | | | | | | | | - Refactor the base macro implementation to be parameterized by a FutureSystem, which is defines the triple of types (Future, Promise, ExecutionContext) and the operations on those types (at the AST level) - Cleanup generation of ASTs, in particular, use reify more widely. | ||||
* | Merge pull request #5 from phaller/wip-match | Jason Zaugg | 2012-11-06 | 2 | -23/+152 |
|\ | | | | | Support await inside match expressions | ||||
| * | Support await inside match expressions | phaller | 2012-11-06 | 2 | -23/+152 |
| | | |||||
* | | Use the fresh name generator provided by the macro API. | Jason Zaugg | 2012-11-06 | 2 | -7/+2 |
| | | |||||
* | | Use @deprecated as a poor-man's @compileTimeOnly | Jason Zaugg | 2012-11-06 | 5 | -25/+44 |
|/ | | | | This helps detect naked awaits. | ||||
* | Small cleanups in the tree crafting. | Jason Zaugg | 2012-11-05 | 2 | -136/+135 |
| | | | | | | - Use imports of c.universe._ rather than fully qualifying - Use attributed idents to refer to standard library symbols - Refactor duplicated code for default values | ||||
* | File naming consistency. | Jason Zaugg | 2012-11-05 | 1 | -0/+0 |
| | |||||
* | Move test utils into a package object, rather than base class. | Jason Zaugg | 2012-11-05 | 11 | -50/+50 |
| | |||||
* | Expand build configuration. | Jason Zaugg | 2012-11-05 | 8 | -12/+12 |
| | | | | | | | - Enable continuations plugin - Fill in project metadata - Enable stricter compiler options - satisfy -Xlint with some empty parens. | ||||
* | Improve test infrastructure | Jason Zaugg | 2012-11-05 | 10 | -0/+587 |
| | | | | | | - Convert tests to use JUnit - For the 'run' tests, just use plain-old-test-cases - Add a sample 'neg' test to use ToolBoxes to compile code snippets on the fly. | ||||
* | A minimal SBT build. | Jason Zaugg | 2012-11-05 | 3 | -0/+0 |
| | | | | Doesn't execute tests yet. | ||||
* | Combine cases of several states into a single partial function | phaller | 2012-11-05 | 2 | -15/+39 |
| | |||||
* | Simplify AsyncBlockBuilder.mkHandlerExpr | phaller | 2012-11-05 | 1 | -13/+3 |
| | |||||
* | Create future for async body | phaller | 2012-11-05 | 1 | -5/+5 |
| | |||||
* | Clean up verbose debug output | phaller | 2012-11-05 | 2 | -50/+18 |
| | |||||
* | Name-mangle lifted local vars | phaller | 2012-11-03 | 3 | -18/+40 |
| | |||||
* | Fix for #1861: Add fall-back to CPS for all unsupported uses of await | phaller | 2012-11-02 | 3 | -57/+116 |
| | |||||
* | Fix #2 | phaller | 2012-10-31 | 1 | -1/+5 |
| | |||||
* | Replace splicing of local ValDefs with explicit trees | phaller | 2012-10-31 | 2 | -516/+527 |
| | | | | | | Other changes: - Move class ExprBuilder to its own source file - Adapt build script | ||||
* | Remove obsolete test files | phaller | 2012-10-30 | 3 | -232/+0 |
| | |||||
* | Enable using partest for running tests | phaller | 2012-10-30 | 3 | -2/+2 |
| | |||||
* | Fix non-if-else test cases. Clean up debug output | phaller | 2012-10-29 | 1 | -27/+15 |
| | |||||
* | WIP: fix if-else | phaller | 2012-10-29 | 3 | -57/+30 |
| | |||||
* | WIP: support await in if-else expressions | phaller | 2012-10-29 | 3 | -39/+321 |
| | |||||
* | Tweak build and test scripts | phaller | 2012-10-29 | 1 | -2/+2 |
| | |||||
* | Move building of handler expressions into new AsyncBlockBuilder | phaller | 2012-10-26 | 1 | -40/+46 |
| | |||||
* | Do not use reify for building compound state handlers | phaller | 2012-10-26 | 1 | -8/+5 |
| | |||||
* | Introduce immutable AsyncState class | phaller | 2012-10-26 | 1 | -77/+103 |
| | | | | | - Refactor AsyncStateBuilder to extend collection.mutable.Builder - Reset attributes of duplicated trees only once inside the builder | ||||
* | Refactor state handling to enable non-linear state changes | phaller | 2012-10-26 | 1 | -18/+96 |
| | | | | | - Add AsyncStateBuilder.mkOnCompleteTreeIncrState - Add AsyncStateBuilder.mkHandlerTreeForState | ||||
* | Add ExprBuilder.mkHandlerTree | phaller | 2012-10-24 | 1 | -1/+33 |
| | |||||
* | More docs for AsyncStateBuilder.complete | phaller | 2012-10-24 | 1 | -3/+7 |
| | |||||
* | Move AsyncStateBuilder out of asyncImpl | phaller | 2012-10-11 | 1 | -105/+111 |
| |