aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Update version for M2 releasetopic/m2Philipp Haller2013-03-151-1/+1
|
* Fix #12 - Add support for await inside try-catchPhilipp Haller2013-03-158-87/+385
| | | | | | | - `await` can now be used inside the body of `try` and `finally` - using `await` inside the cases of a `catch` is illegal - provides precise error messages ("await must not be used under catch") - adds 9 tests
* Fix #55 - Async implementation depends on continuations pluginPhilipp Haller2013-02-2610-67/+244
| | | | | | | - remove CPS dependency from default async implementation (fix #55) - move all CPS-related code to `continuations` sub package - fix CPS-based async implementation - enable testing of CPS-based async implementation
* Bump Scala version to 2.10.0Philipp Haller2013-02-051-2/+2
|
* s/LHS/RHSJason Zaugg2012-12-201-1/+1
|
* Update version for M1 releasephaller2012-12-201-1/+1
|
* Bump Scala version to latest RCphaller2012-12-201-1/+1
|
* Remove unreachable code in pattern matching testphaller2012-12-201-1/+0
|
* Fix typos in READMEphaller2012-12-201-12/+12
|
* Resolve merge conflictphaller2012-12-195-17/+93
|\
| * New fix for #1861: Add fall-back to CPS for all unsupported uses of awaitphaller2012-12-195-16/+93
| | | | | | | | | | | | | | This is a re-implementation of a previous fix. It is more modular, since it enables the definition of a CPS-based fall-back as a subclass of `AsyncBase`. Thus, it's possible to define fall-back-enabled subclasses of `AsyncBase` targetting not only Scala Futures.
* | Update README.mdJason Zaugg2012-12-191-0/+171
| |
* | Merge pull request #49 from phaller/topic/patmat-partial-functionJason Zaugg2012-12-196-33/+132
|\ \ | | | | | | Topic/patmat partial function
| * | Prohibit lazy vals in async blocks.Jason Zaugg2012-12-102-3/+18
| | |
| * | Workaround non-idempotency of typing pattern matching anonymous functions.Jason Zaugg2012-12-106-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 documentationJason Zaugg2012-12-191-6/+150
| |/ |/|
* | Merge pull request #47 from phaller/ticket/46-varargs-holistic-applyPhilipp Haller2012-12-033-11/+54
|\ \ | | | | | | Fix ANF transform involving `xs: _*` trees.
| * | Fix ANF transform involving `xs: _*` trees.Jason Zaugg2012-11-273-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 typophaller2012-11-291-3/+3
|/ /
* | Remove @author tagsphaller2012-11-273-9/+0
| |
* | Merge pull request #45 from phaller/ticket/33-by-name-2Philipp Haller2012-11-274-24/+139
|\| | | | | Ticket/33 by name 2
| * No need to extract vals for inlinable args.Jason Zaugg2012-11-273-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 Zaugg2012-11-271-1/+35
| |
| * Disallow await in non-primary param sections.Jason Zaugg2012-11-272-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 applicationJason Zaugg2012-11-272-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 Zaugg2012-11-271-1/+1
|
* Lookup log level dynamically from system property.Jason Zaugg2012-11-272-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-handlingJason Zaugg2012-11-264-20/+106
|\ | | | | Topic/exception handling
| * More tests for ExceptionsSpecphaller2012-11-261-8/+30
| |
| * Fix #42 - Futures created by async are not properly completed with exceptionsphaller2012-11-264-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-testsPhilipp Haller2012-11-261-0/+536
|\ | | | | Port futures tests of scala.concurrent
| * Replace uses of Future.map/Future.flatMap with async+awaitphaller2012-11-261-24/+33
| |
| * Add ported futures testsphaller2012-11-261-0/+527
| | | | | | | | | | | | These tests do not use async/await, yet. Refs #23
* | Merge pull request #41 from phaller/ticket/35-synth-object-2Philipp Haller2012-11-2618-159/+444
|\ \ | | | | | | Ticket/35 synth object 2
| * | Show that indirectly nested defs aren't lifted.Jason Zaugg2012-11-262-3/+18
| | |
| * | Fix #26, leaner code gen for `async { <no awaits> }`.Jason Zaugg2012-11-261-9/+20
| | | | | | | | | | | | We can then use this as a replacement for `Future { expr }`.
| * | Make the name uniqification more selective.Jason Zaugg2012-11-262-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 Zaugg2012-11-269-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 Zaugg2012-11-266-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 Zaugg2012-11-265-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 Zaugg2012-11-265-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 Zaugg2012-11-267-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 Zaugg2012-11-267-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 Zaugg2012-11-261-4/+1
|/ /
* | Merge pull request #38 from phaller/ticket/19-external-varsPhilipp Haller2012-11-261-26/+64
|\ \ | | | | | | Fix #19
| * | Address review commentphaller2012-11-261-3/+1
| | |
| * | Fix #19phaller2012-11-261-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-attachcopyJason Zaugg2012-11-263-50/+24
|\ \ | | | | | | Simplify attachCopy
| * | Turn object into defphaller2012-11-261-12/+11
| | |
| * | Simplify attachCopy in TransformUtilsphaller2012-11-263-39/+14
|/ / | | | | | | This refactoring removes a group of factory methods.