Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
| * | | Prohibit lazy vals in async blocks. | Jason Zaugg | 2012-12-10 | 2 | -3/+18 | |
| | | | ||||||
| * | | Workaround non-idempotency of typing pattern matching anonymous functions. | Jason Zaugg | 2012-12-10 | 6 | -30/+114 | |
| | | | | | | | | | | | | | | | | | | | | | - Undo the transformation that takes place in Typers to leave us with Match(EmptyTree, cases). - Make sure we don't descend into the cases of such a tree when peforming the async transform | |||||
* | | | Expand documentation | Jason Zaugg | 2012-12-19 | 1 | -6/+150 | |
| |/ |/| | ||||||
* | | Merge pull request #47 from phaller/ticket/46-varargs-holistic-apply | Philipp Haller | 2012-12-03 | 3 | -11/+54 | |
|\ \ | | | | | | | Fix ANF transform involving `xs: _*` trees. | |||||
| * | | Fix ANF transform involving `xs: _*` trees. | Jason Zaugg | 2012-11-27 | 3 | -11/+54 | |
| | | | | | | | | | | | | | | | | | | | | | | | | We need to unwrap and inline `xs`, then rewrap the result expression with the wildcard star. Addresses the first half of #46. | |||||
* | | | Fix typo | phaller | 2012-11-29 | 1 | -3/+3 | |
|/ / | ||||||
* | | Remove @author tags | phaller | 2012-11-27 | 3 | -9/+0 | |
| | | ||||||
* | | Merge pull request #45 from phaller/ticket/33-by-name-2 | Philipp Haller | 2012-11-27 | 4 | -24/+139 | |
|\| | | | | | Ticket/33 by name 2 | |||||
| * | No need to extract vals for inlinable args. | Jason Zaugg | 2012-11-27 | 3 | -15/+23 | |
| | | | | | | | | | | | | We use `isExprSafeToInline` from the non-public reflection API to check. In addtion, we now that an untyped Ident("await$N") is also an inlinable expression. | |||||
| * | Test cases for named and default args. | Jason Zaugg | 2012-11-27 | 1 | -1/+35 | |
| | | ||||||
| * | Disallow await in non-primary param sections. | Jason Zaugg | 2012-11-27 | 2 | -9/+52 | |
| | | | | | | | | | | | | | | | | | | We can allow it, but we need to treat nested Apply trees holistically, in order to lift out all the arguments and maintain the correct evaluation order. Fixes #33. | |||||
| * | Fix semantics of by-name application | Jason Zaugg | 2012-11-27 | 2 | -8/+38 | |
|/ | | | | | | | | - If we lift one arg, we must lift them all. This preserves evaluation order. - But, never lift an by-name arg Addresses the first half of #33. | |||||
* | Fix execution context lookup for the trivial async block. | Jason Zaugg | 2012-11-27 | 1 | -1/+1 | |
| | ||||||
* | Lookup log level dynamically from system property. | Jason Zaugg | 2012-11-27 | 2 | -19/+19 | |
| | | | | | | And change TreeInterrogation to set if via this means, rather than through a direct means, which seems to assume too much about classloaders. | |||||
* | Merge pull request #44 from phaller/topic/exception-handling | Jason Zaugg | 2012-11-26 | 4 | -20/+106 | |
|\ | | | | | Topic/exception handling | |||||
| * | More tests for ExceptionsSpec | phaller | 2012-11-26 | 1 | -8/+30 | |
| | | ||||||
| * | Fix #42 - Futures created by async are not properly completed with exceptions | phaller | 2012-11-26 | 4 | -20/+84 | |
|/ | | | | | | | | | | | | This augments the on-complete handler for an async state with await as follows: if (tr.isFailure) result$async.complete(tr.asInstanceOf[Try[T]]) else { <resultName> = tr.get.asInstanceOf[<resultType>] <nextState> <mkResumeApply> } | |||||
* | Merge pull request #37 from phaller/ticket/23-port-futures-tests | Philipp Haller | 2012-11-26 | 1 | -0/+536 | |
|\ | | | | | Port futures tests of scala.concurrent | |||||
| * | Replace uses of Future.map/Future.flatMap with async+await | phaller | 2012-11-26 | 1 | -24/+33 | |
| | | ||||||
| * | Add ported futures tests | phaller | 2012-11-26 | 1 | -0/+527 | |
| | | | | | | | | | | | | These tests do not use async/await, yet. Refs #23 | |||||
* | | Merge pull request #41 from phaller/ticket/35-synth-object-2 | Philipp Haller | 2012-11-26 | 18 | -159/+444 | |
|\ \ | | | | | | | Ticket/35 synth object 2 | |||||
| * | | Show that indirectly nested defs aren't lifted. | Jason Zaugg | 2012-11-26 | 2 | -3/+18 | |
| | | | ||||||
| * | | Fix #26, leaner code gen for `async { <no awaits> }`. | Jason Zaugg | 2012-11-26 | 1 | -9/+20 | |
| | | | | | | | | | | | | We can then use this as a replacement for `Future { expr }`. | |||||
| * | | Make the name uniqification more selective. | Jason Zaugg | 2012-11-26 | 2 | -12/+12 | |
| | | | | | | | | | | | | | | | | | | We need not, and should not, rename definitions beyond the scope of the async transform, e.g. in nested classes of function bodies. | |||||
| * | | Rewrite the state machine to a class, rather than an object. | Jason Zaugg | 2012-11-26 | 9 | -88/+92 | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | To avoid suprises in tree retyping, the instance of this class is immediately upcase to StateMachine[Promise[T], ExecContext]. Allow nested non-case classes. These pop up when we use nested async calls. Only look for duplicate names in the subtrees traversed by AsyncTraverser. | |||||
| * | | Preserve outer This() refs through resetAttrs. | Jason Zaugg | 2012-11-26 | 6 | -40/+120 | |
| | | | | | | | | | | | | | | | | | | Adapt the compiler's standard ResetAttrs to keep This() nodes don't refer to a symbol defined in the current async block. | |||||
| * | | Synthesize an object implementing Function#apply and resume() | Jason Zaugg | 2012-11-26 | 5 | -52/+84 | |
| | | | | | | | | | | | | | | | | | | | | | | | | There is a fly in the ointment: any This() trees in the provided code are getting rebound to this class. Sounds like more resetAttrs fun ahead. The object also serves as the Future {} thunk. | |||||
| * | | Lift local defs and functions. | Jason Zaugg | 2012-11-26 | 5 | -11/+81 | |
| | | | | | | | | | | | | | | | | | | | | | Any vals referred to in the body of these must also be lifted. Fixes #36 | |||||
| * | | Fix await in if condition / match scrutinee. | Jason Zaugg | 2012-11-26 | 7 | -41/+59 | |
| | | | | | | | | | | | | | | | | | | The type-checking performed in ANF transform is precarious, and needed to use the original condition/ scrutinee in a throwaway tree to get things to work. | |||||
| * | | Extract vals for all names bound in a pattern. | Jason Zaugg | 2012-11-26 | 7 | -49/+107 | |
| | | | | | | | | | | | | | | | | | | | | | These gives us something to lift to vars to be accessed from multiple states of the state machine. Fixes #35 | |||||
| * | | Flatmap it, Sam. | Jason Zaugg | 2012-11-26 | 1 | -4/+1 | |
|/ / | ||||||
* | | Merge pull request #38 from phaller/ticket/19-external-vars | Philipp Haller | 2012-11-26 | 1 | -26/+64 | |
|\ \ | | | | | | | Fix #19 | |||||
| * | | Address review comment | phaller | 2012-11-26 | 1 | -3/+1 | |
| | | | ||||||
| * | | Fix #19 | phaller | 2012-11-26 | 1 | -26/+66 | |
| |/ | | | | | | | | | | | | | - Add tests where the result of an await is assigned to a variable external to the async block. - Clean up HygieneSpec. | |||||
* | | Merge pull request #39 from phaller/topic/simplify-attachcopy | Jason Zaugg | 2012-11-26 | 3 | -50/+24 | |
|\ \ | | | | | | | Simplify attachCopy | |||||
| * | | Turn object into def | phaller | 2012-11-26 | 1 | -12/+11 | |
| | | | ||||||
| * | | Simplify attachCopy in TransformUtils | phaller | 2012-11-26 | 3 | -39/+14 | |
|/ / | | | | | | | This refactoring removes a group of factory methods. | |||||
* | | Remove modifiers of case class parameters | phaller | 2012-11-26 | 4 | -4/+4 | |
| | | ||||||
* | | Merge pull request #32 from phaller/topic/try-while | Philipp Haller | 2012-11-26 | 29 | -383/+660 | |
|\| | | | | | Topic/try while | |||||
| * | 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 | 27 | -15/+64 | |
| | |