aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Add a test to interrogate the expanded tree.Jason Zaugg2012-11-114-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 Zaugg2012-11-113-85/+121
|
* Use a var rather than a lazy val to break a cycle.Jason Zaugg2012-11-111-4/+4
| | | | (onCompleteHandler and resume refer to each other)
* Refer to an relevant bug in the comments.Jason Zaugg2012-11-111-1/+1
|
* Collapse all the onComplete handlers into a single function.Jason Zaugg2012-11-113-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 Zaugg2012-11-112-24/+9
| | | | Rather than a function applied to the state.
* Shuffle a bit more code around.Jason Zaugg2012-11-113-32/+19
|
* Synthesize `case 23 => rhs` rather than `case any @ (_: Int) if any == 25)`Jason Zaugg2012-11-112-14/+1
|
* Synthesize a Function1, rather than a PartialFunction.Jason Zaugg2012-11-112-43/+14
|
* Minor refactoringsJason Zaugg2012-11-112-19/+19
|
* Deleting unused code.Jason Zaugg2012-11-111-143/+1
|
* Synthesize a single PartialFunction rather than two and an orElse call.Jason Zaugg2012-11-102-30/+33
| | | | Give the handler a real class name.
* Remove unneed ().Jason Zaugg2012-11-091-5/+2
|
* Test with less trivial types.Jason Zaugg2012-11-091-0/+39
| | | | Works like it says on the box.
* Avoid hygiene problems by suffixing result/result/state.Jason Zaugg2012-11-093-8/+67
| | | | Perhaps we should freshen them, but that will be a little awkward in our reify block.
* Doc fix.Jason Zaugg2012-11-091-2/+3
|
* Remove sleeps from the tests.Jason Zaugg2012-11-098-12/+0
|
* Further cleanup in AST generationJason Zaugg2012-11-092-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 Zaugg2012-11-093-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-matchJason Zaugg2012-11-062-23/+152
|\ | | | | Support await inside match expressions
| * Support await inside match expressionsphaller2012-11-062-23/+152
| |
* | Use the fresh name generator provided by the macro API.Jason Zaugg2012-11-062-7/+2
| |
* | Use @deprecated as a poor-man's @compileTimeOnlyJason Zaugg2012-11-065-25/+44
|/ | | | This helps detect naked awaits.
* Small cleanups in the tree crafting.Jason Zaugg2012-11-052-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 Zaugg2012-11-051-0/+0
|
* Move test utils into a package object, rather than base class.Jason Zaugg2012-11-0511-50/+50
|
* Expand build configuration.Jason Zaugg2012-11-058-12/+12
| | | | | | | - Enable continuations plugin - Fill in project metadata - Enable stricter compiler options - satisfy -Xlint with some empty parens.
* Improve test infrastructureJason Zaugg2012-11-0510-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 Zaugg2012-11-053-0/+0
| | | | Doesn't execute tests yet.
* Combine cases of several states into a single partial functionphaller2012-11-052-15/+39
|
* Simplify AsyncBlockBuilder.mkHandlerExprphaller2012-11-051-13/+3
|
* Create future for async bodyphaller2012-11-051-5/+5
|
* Clean up verbose debug outputphaller2012-11-052-50/+18
|
* Name-mangle lifted local varsphaller2012-11-033-18/+40
|
* Fix for #1861: Add fall-back to CPS for all unsupported uses of awaitphaller2012-11-023-57/+116
|
* Fix #2phaller2012-10-311-1/+5
|
* Replace splicing of local ValDefs with explicit treesphaller2012-10-312-516/+527
| | | | | | Other changes: - Move class ExprBuilder to its own source file - Adapt build script
* Remove obsolete test filesphaller2012-10-303-232/+0
|
* Enable using partest for running testsphaller2012-10-303-2/+2
|
* Fix non-if-else test cases. Clean up debug outputphaller2012-10-291-27/+15
|
* WIP: fix if-elsephaller2012-10-293-57/+30
|
* WIP: support await in if-else expressionsphaller2012-10-293-39/+321
|
* Tweak build and test scriptsphaller2012-10-291-2/+2
|
* Move building of handler expressions into new AsyncBlockBuilderphaller2012-10-261-40/+46
|
* Do not use reify for building compound state handlersphaller2012-10-261-8/+5
|
* Introduce immutable AsyncState classphaller2012-10-261-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 changesphaller2012-10-261-18/+96
| | | | | - Add AsyncStateBuilder.mkOnCompleteTreeIncrState - Add AsyncStateBuilder.mkHandlerTreeForState
* Add ExprBuilder.mkHandlerTreephaller2012-10-241-1/+33
|
* More docs for AsyncStateBuilder.completephaller2012-10-241-3/+7
|
* Move AsyncStateBuilder out of asyncImplphaller2012-10-111-105/+111
|