aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
| * Minor fixes in Async`s scaladoc.akomar2014-01-121-2/+2
|/
* Merge pull request #20 from theon/patch-1Jason Zaugg2014-01-081-2/+2
|\ | | | | Fix line numbers for example in README
| * Fix line numbers for example in READMEIan Forsey2013-06-051-2/+2
| |
* | Update version in READMEJason Zaugg2013-11-241-1/+1
| |
* | 0.9.0-SNAPSHOTJason Zaugg2013-11-241-1/+1
| |
* | 0.9.0-M4v0.9.0-M4Jason Zaugg2013-11-241-1/+1
| |
* | Merge pull request #47 from retronym/topic/pres2Jason Zaugg2013-11-221-6/+5
|\ \ | | | | | | Another take at the 2.10/2.11 spanning suppressMacroAttachment
| * | Another take at the 2.10/2.11 spanning suppressMacroAttachmentJason Zaugg2013-11-201-6/+5
| | | | | | | | | | | | It was only working on the former.
* | | Merge pull request #50 from retronym/ticket/48Philipp Haller2013-11-225-34/+73
|\ \ \ | | | | | | | | Fix crashers in do/while and while(await(..))
| * | | Fix crashers in do/while and while(await(..))Jason Zaugg2013-11-225-34/+73
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The new tree shapes handled for do/while look like: // type checked async({ val b = false; doWhile$1(){ await(()); if (b) doWhile$1() else () }; () }) We had to change ExprBuilder to create states for the if/else that concludes the doWhile body, and also loosen the assertion that the label jump must be the last thing we see. We also have to look for more than just `containsAwait` when deciding whether an `If` needs to be transformed into states; it might also contain a jump to the enclosing label that is on the other side of an `await`, and hence needs to be a state transition instead.
* | | Merge pull request #51 from phaller/topic/travis-jdk-configPhilipp Haller2013-11-221-1/+1
|\ \ \ | |/ / |/| | Remove unsupported Oracle JDK6 from Travis CI config
| * | Remove unsupported Oracle JDK6 from Travis CI configPhilipp Haller2013-11-221-1/+1
|/ /
* | 0.9.0-SNAPSHOTJason Zaugg2013-11-202-2/+2
| |
* | 0.9.0-M3v0.9.0-M3Jason Zaugg2013-11-201-1/+1
| |
* | Merge pull request #42 from retronym/topic/hooksJason Zaugg2013-11-204-12/+58
|\ \ | | | | | | Hooks for custom async implementations
| * | Abstract over use of scala.util.TryJason Zaugg2013-11-134-11/+52
| | | | | | | | | | | | | | | Custom implementation of the async macro may choose to use a different data type to represent `Throwable | A`.
| * | Add a hook for post-ANF transformationJason Zaugg2013-11-132-1/+6
| | | | | | | | | | | | For use by custom implementations of the async macro.
* | | Merge pull request #46 from retronym/topic/pres-compiler-npeJason Zaugg2013-11-203-7/+31
|\ \ \ | | | | | | | | Presentation compiler friendliness
| * | | Less hacky check for presentation compiler.Jason Zaugg2013-11-201-1/+1
| | | | | | | | | | | | | | | | "There's a method for that!"
| * | | Return original macro application under presentation compiler.Jason Zaugg2013-11-202-7/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Right now, the body of an async block suffers from diminished IDE support: most notably hyperlinking doesn't work [1]. During the course of the blackbox/whitebox macro discussion, we've often talked about how the former give us the latitude to simply disable macro expansion in the IDE so we could get these features working again, at the cost of losing domain specific errors, such as "await must not be used under a nested function". But why not have our cake and eat too? This commit detects if we are running the presentation compiler and, after running our regular macro, returns the original macro application. We need to annotate that tree to prevent the typechecker from stubbornly calling our macro again. EXPERIMENTAL NOTE: This logic shouldn't live in macros: this is just a short term measure. If these experiments in async prove successful, we'll roll something similar into the macro expansion engine itself. TODO: as a performance optimization, we could just run the "unsupported await" checks, and avoid doing the more expensive state machine transformation. [1] https://www.assembla.com/spaces/scala-ide/tickets/1001449-code-navigation-fails-when-macros-are-used#/activity/ticket:
| * | | Fix a NPE in the presentation compilerJason Zaugg2013-11-201-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We were using a TypingTransformer and we called `atOwner` before we had called `transform`. This meant that `currTree` was null, which was observed when that was passed to `Context#make`. IDE ticket: https://scala-ide-portfolio.assembla.com/spaces/scala-ide/tickets/1001971#/activity/ticket: Stack trace: exception during macro expansion: java.lang.NullPointerException at scala.tools.nsc.interactive.ContextTrees$class.addContext(ContextTrees.scala:78) at scala.tools.nsc.interactive.Global.addContext(Global.scala:28) at scala.tools.nsc.interactive.Global.registerContext(Global.scala:268) at scala.tools.nsc.typechecker.Contexts$Context.make(Contexts.scala:295) at scala.tools.nsc.typechecker.Contexts$Context.make0(Contexts.scala:320) at scala.tools.nsc.typechecker.Contexts$Context.make(Contexts.scala:327) at scala.tools.nsc.typechecker.Typers$Typer.atOwner(Typers.scala:5662) at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:33) at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:28) at scala.async.internal.AsyncTransform$class.fixup$1(AsyncTransform.scala:191)
* | | | Update README.mdPhilipp Haller2013-11-181-1/+1
|/ / / | | | | | | Fixes #45
* | | Merge pull request #44 from phaller/topic/cleanup-43Philipp Haller2013-11-151-10/+2
|\ \ \ | | | | | | | | Clean-ups found during review of PR #43
| * | | Clean-ups found during review of PR #43Philipp Haller2013-11-141-10/+2
|/ / /
* | | Merge pull request #43 from retronym/ticket/icode-crasherPhilipp Haller2013-11-142-37/+94
|\ \ \ | | | | | | | | Fix crasher in icode due to symbol mismatches in lifted methods
| * | | Fix crasher in icode due to symbol mismatches in lifted methodsJason Zaugg2013-11-142-37/+94
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | These stem from the handling of the internal/external view or method type parameters by `thisMethodType` in `Namers`. I've now preseversed the orginal ValDefs favoured the latter when constructing the new DefDef, and made construction of all liftables consistent in this regard.
* / / Update README.mdJason Zaugg2013-11-131-0/+3
|/ / | | | | Link to CI status
* | Merge pull request #41 from retronym/topic/travisJason Zaugg2013-11-131-0/+13
|\ \ | | | | | | Enable Travis CI
| * | Enable Travis CIJason Zaugg2013-11-131-0/+13
| | |
* | | Merge pull request #40 from retronym/topic/live-var-captureJason Zaugg2013-11-135-18/+205
|\ \ \ | |/ / |/| | Don't aggressively null out captured vars
| * | Don't aggressively null out captured varsJason Zaugg2013-11-125-18/+205
|/ / | | | | | | | | Once they escape, we leave the references in the state machines fields untouched.
* | 0.9.0-SNAPSHOTJason Zaugg2013-11-071-1/+1
| |
* | Merge pull request #38 from phaller/topic/cleanup-cps-fallbackv0.9.0-M2Jason Zaugg2013-11-072-5/+3
|\ \ | | | | | | Remove left-overs of CPS fallback logic
| * | Remove left-overs of CPS fallback logicPhilipp Haller2013-11-072-5/+3
| | | | | | | | | | | | Completes removal performed in #37.
* | | Remove unneeded level from the group id.Jason Zaugg2013-11-072-2/+2
| | |
* | | v0.9.0-M2Jason Zaugg2013-11-071-1/+1
|/ /
* | Update documentationJason Zaugg2013-11-072-7/+7
| |
* | Update and split the READMEJason Zaugg2013-11-072-189/+194
| |
* | Merge pull request #37 from retronym/topic/cleanup-cps-and-awaitJason Zaugg2013-11-0719-438/+81
|\ \ | | | | | | Minimize the public API
| * | Remove scala.async.StateMachineJason Zaugg2013-11-073-20/+9
| | | | | | | | | | | | | | | | | | The generated code can simply extends Function1 and Function0. This class was a hacky means to get the macro working a long time ago.
| * | Minimize the public APIJason Zaugg2013-11-0718-420/+74
|/ / | | | | | | | | | | | | | | | | | | - Remove the CPS fallback version of async. That was not intended to be part of 1.0. - Lookup the await method beside the macro, rather than requiring all calls to go to AsyncBase.await. - Create a minimal version of Async that just contains await/async and delegates to the macro implementation in internal._ - Add scaladoc.
* | Use publishSigned in the release process.Jason Zaugg2013-11-071-2/+7
| |
* | Merge pull request #36 from retronym/release/0.9.0-M1Jason Zaugg2013-11-072-0/+37
|\ \ | | | | | | Release/0.9.0 m1
| * | document release scriptJason Zaugg2013-11-071-1/+8
| | |
| * | 0.9.0-SNAPSHOTJason Zaugg2013-11-071-1/+1
| | |
| * | 0.9.0-M1v0.9.0-M1Jason Zaugg2013-11-071-1/+1
| | |
| * | Release scriptJason Zaugg2013-11-071-0/+28
| | |
| * | Scala 2.11 compatibilityJason Zaugg2013-11-072-1/+17
| | | | | | | | | | | | | | | | | | We were relying on an internal API that no longer exists. We also need to tweak the way our tests infer scalaBinaryVersion.
* | | Scala 2.11 compatibilityJason Zaugg2013-11-071-1/+15
|/ / | | | | | | We were relying on an internal API that no longer exists.
* | Build changes before the first binary release.Jason Zaugg2013-11-071-1/+4
| |