From 61efba27ee97be3b8332e9c7b3f1403813e70a97 Mon Sep 17 00:00:00 2001 From: Jason Zaugg Date: Thu, 7 Nov 2013 09:26:53 +0100 Subject: Scala 2.11 compatibility We were relying on an internal API that no longer exists. We also need to tweak the way our tests infer scalaBinaryVersion. --- src/main/scala/scala/async/internal/AnfTransform.scala | 16 +++++++++++++++- src/test/scala/scala/async/package.scala | 2 ++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/main/scala/scala/async/internal/AnfTransform.scala b/src/main/scala/scala/async/internal/AnfTransform.scala index f7f691d..f19a87a 100644 --- a/src/main/scala/scala/async/internal/AnfTransform.scala +++ b/src/main/scala/scala/async/internal/AnfTransform.scala @@ -203,7 +203,21 @@ private[async] trait AnfTransform { } } - val typedNewApply = copyApplied(tree, treeInfo.dissectApplied(tree).applyDepth) + + /** The depth of the nested applies: e.g. Apply(Apply(Apply(_, _), _), _) + * has depth 3. Continues through type applications (without counting them.) + */ + def applyDepth: Int = { + def loop(tree: Tree): Int = tree match { + case Apply(fn, _) => 1 + loop(fn) + case TypeApply(fn, _) => loop(fn) + case AppliedTypeTree(fn, _) => loop(fn) + case _ => 0 + } + loop(tree) + } + + val typedNewApply = copyApplied(tree, applyDepth) funStats ++ argStatss.flatten.flatten :+ typedNewApply diff --git a/src/test/scala/scala/async/package.scala b/src/test/scala/scala/async/package.scala index 7c42024..98d2256 100644 --- a/src/test/scala/scala/async/package.scala +++ b/src/test/scala/scala/async/package.scala @@ -43,8 +43,10 @@ package object async { } def scalaBinaryVersion: String = { + val PreReleasePattern = """.*-(M|RC).*""".r val Pattern = """(\d+\.\d+)\..*""".r scala.util.Properties.versionNumberString match { + case s @ PreReleasePattern(_) => s case Pattern(v) => v case _ => "" } -- cgit v1.2.3 From 829483d25a9b8ffa581d46728703959ffc1b02ec Mon Sep 17 00:00:00 2001 From: Jason Zaugg Date: Thu, 7 Nov 2013 10:22:14 +0100 Subject: Release script --- release.sh | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100755 release.sh diff --git a/release.sh b/release.sh new file mode 100755 index 0000000..29e2f24 --- /dev/null +++ b/release.sh @@ -0,0 +1,28 @@ +#! /bin/bash -e + +function sbt211() { + sbt 'set scalaVersion := "2.11.0-M6"' 'set scalaBinaryVersion := scalaVersion.value' $@ + return $? +} +die () { + echo "$@" + exit 1 +} + +CHECK=";clean;test;publishLocal" +RELEASE=";clean;test;publish" +VERSION=`gsed -rn 's/version :=.*"(.+).*"/\1/p' build.sbt` +[[ -n "$(git status --porcelain)" ]] && die "working directory is not clean!" + +sbt211 $CHECK +sbt $CHECK +sbt $RELEASE +sbt211 $RELEASE + +cat < Date: Thu, 7 Nov 2013 09:46:39 +0100 Subject: 0.9.0-M1 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index fc8edb8..b65136b 100644 --- a/build.sbt +++ b/build.sbt @@ -8,7 +8,7 @@ organization := "org.scala-lang.modules.scala-async" name := "scala-async" -version := "0.9.0-SNAPSHOT" +version := "0.9.0-M1" libraryDependencies <++= (scalaVersion) { sv => Seq( -- cgit v1.2.3 From 96653d5a0e64f9dae8ba9e256c4d705e4796b2c0 Mon Sep 17 00:00:00 2001 From: Jason Zaugg Date: Thu, 7 Nov 2013 10:31:00 +0100 Subject: 0.9.0-SNAPSHOT --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index b65136b..fc8edb8 100644 --- a/build.sbt +++ b/build.sbt @@ -8,7 +8,7 @@ organization := "org.scala-lang.modules.scala-async" name := "scala-async" -version := "0.9.0-M1" +version := "0.9.0-SNAPSHOT" libraryDependencies <++= (scalaVersion) { sv => Seq( -- cgit v1.2.3 From b7ccc997f3d7bbd43418ca7104aebfd0d8add4ee Mon Sep 17 00:00:00 2001 From: Jason Zaugg Date: Thu, 7 Nov 2013 10:36:35 +0100 Subject: document release script --- release.sh | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/release.sh b/release.sh index 29e2f24..826b62d 100755 --- a/release.sh +++ b/release.sh @@ -1,4 +1,11 @@ #! /bin/bash -e +# +# Build, test, and release Scala Async. +# +# Requires credentials: +# +# % cat ~/.sbt/0.13/publish.sbt +# credentials += Credentials("Sonatype Nexus Repository Manager", "oss.sonatype.org", "", "") function sbt211() { sbt 'set scalaVersion := "2.11.0-M6"' 'set scalaBinaryVersion := scalaVersion.value' $@ @@ -21,7 +28,7 @@ sbt211 $RELEASE cat <