Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Revert "SI-7624 Fix -feature warnings in scala/tools/scalap" #3588

Merged
merged 1 commit into from
Feb 27, 2014

Conversation

adriaanm
Copy link
Contributor

rework of #3587 to preserve compatibility with partest

This reverts commit f2de2c4 because it
broke both lift-json and json4s libraries that depend on scalap's APIs.
Arguably, those libraries shouldn't depend on unofficial APIs but they do
because they had no better alternative at the time (no Scala reflection).

The cost of breaking them is not worth minor change of the package.

The f2de2c4 mixed two things:

  1. Fixing feature warnings
  2. Changing package name

When reverting (and resolving conflicts) I tried to keep 1. and revert just
2. However, there were also some questionable changes related to 1. that
got reverted. In particular, a package object with implicit members that
enable language features is an anti-pattern because members of package
object are visible both within and outside of the package. Therefore,
user could use wildcard import for importing everything from scalap
package and enabled postfixOps language feature unknowingly. I went for
just adding imports in just those few files where they were needed.

We had to ensure compatibility with partest, which already depends on the
package structure that this commit reverts. This is done in the package object in:
src/scalap/scala/tools/scalap/package.scala

Conflicts:
src/partest/scala/tools/partest/nest/Runner.scala
src/scalap/scala/tools/scalap/scalax/rules/Memoisable.scala
src/scalap/scala/tools/scalap/scalax/rules/Rule.scala
src/scalap/scala/tools/scalap/scalax/rules/Rules.scala
src/scalap/scala/tools/scalap/scalax/rules/scalasig/ClassFileParser.scala
src/scalap/scala/tools/scalap/scalax/rules/scalasig/ScalaSig.scala

@adriaanm
Copy link
Contributor Author

I'm an idiot. I'll fix it for realz after coffee.

@adriaanm
Copy link
Contributor Author

Will have to fix on the scala-partest side. The joys of refactorings and modules.

@adriaanm adriaanm closed this Feb 26, 2014
adriaanm added a commit to adriaanm/scala-partest that referenced this pull request Feb 26, 2014
Once scala/scala#3588 is merged, the ByteCode module will go back to
scala.tools.scalap.scalax.rules.scalasig from its current (M8) package:
scala.tools.scalap.scalasig
adriaanm added a commit to adriaanm/scala-partest that referenced this pull request Feb 26, 2014
Once scala/scala#3588 is merged, the ByteCode module will go back to
scala.tools.scalap.scalax.rules.scalasig from its current (M8) package:
scala.tools.scalap.scalasig
This reverts commit f2de2c4 because it
broke both lift-json and json4s libraries that depend on scalap's APIs.
Arguably, those libraries shouldn't depend on unofficial APIs but they do
because they had no better alternative at the time (no Scala reflection).

The cost of breaking them is not worth minor change of the package.

The f2de2c4 mixed two things:

  1. Fixing feature warnings
  2. Changing package name

When reverting (and resolving conflicts) I tried to keep 1. and revert just
2. However, there were also some questionable changes related to 1. that
got reverted. In particular, a package object with implicit members that
enable language features is an anti-pattern because members of package
object are visible both _within_ and _outside_ of the package. Therefore,
user could use wildcard import for importing everything from scalap
package and enabled postfixOps language feature unknowingly. I went for
just adding imports in just those few files where they were needed.

Amended by Adriaan:
To allow faster turn around, I re-enabled resolving partest from sonatype,
as its version needs to be bumped and I don't want to wait for maven central synch.

Conflicts:
	src/partest/scala/tools/partest/nest/Runner.scala
	src/scalap/scala/tools/scalap/scalax/rules/Memoisable.scala
	src/scalap/scala/tools/scalap/scalax/rules/Rule.scala
	src/scalap/scala/tools/scalap/scalax/rules/Rules.scala
	src/scalap/scala/tools/scalap/scalax/rules/scalasig/ClassFileParser.scala
	src/scalap/scala/tools/scalap/scalax/rules/scalasig/ScalaSig.scala
@adriaanm adriaanm reopened this Feb 26, 2014
@adriaanm
Copy link
Contributor Author

Diff with @gkossakowski's PR:

--- c/build.xml
+++ w/build.xml
@@ -274,6 +274,7 @@ TODO:
       </artifact:dependencies>


+      <artifact:remoteRepository id="sonatype-release" url="https://oss.sonatype.org/content/repositories/releases"/>
       <artifact:remoteRepository id="extra-repo" url="${extra.repo.url}"/>

       <!-- prepare, for each of the names below, the property "@{name}.cross", set to the
@@ -293,6 +294,7 @@ TODO:
         <!-- so we don't have to wait for artifacts to synch to maven central
             (we don't distribute partest with Scala, so the risk of sonatype and maven being out of synch is irrelevant):
           -->
+        <artifact:remoteRepository refid="sonatype-release"/>
         <artifact:remoteRepository refid="extra-repo"/>
         <dependency groupId="org.scala-lang.modules" artifactId="scala-partest${partest.cross}" version="${partest.version.number}" />
       </artifact:dependencies>
diff --git c/versions.properties w/versions.properties
index 2ea8e713f1..9109702299 100644
--- c/versions.properties
+++ w/versions.properties
@@ -18,7 +18,7 @@ akka-actor.version.number=2.2.3
 actors-migration.version.number=1.0.0

 # external modules, used internally (not shipped)
-partest.version.number=1.0.0-RC8
+partest.version.number=1.0.0-RC9
 scalacheck.version.number=1.11.3

@adriaanm
Copy link
Contributor Author

To give some more context: we've spent a ton of time verifying as many community project as possible build on master before cutting RC1. Reverting this change is disappointing, but even more so for not being able to build lift as-is on 2.11.0-RC1.

adriaanm added a commit that referenced this pull request Feb 27, 2014
Revert "SI-7624 Fix -feature warnings in scala/tools/scalap"
@adriaanm adriaanm merged commit 59bcf6b into scala:master Feb 27, 2014
@adriaanm adriaanm deleted the rebase-3587 branch March 10, 2014 17:09
lrytz pushed a commit to lrytz/scala-partest that referenced this pull request May 9, 2018
Once scala/scala#3588 is merged, the ByteCode module will go back to
scala.tools.scalap.scalax.rules.scalasig from its current (M8) package:
scala.tools.scalap.scalasig
lrytz pushed a commit to lrytz/scala-partest that referenced this pull request May 9, 2018
Once scala/scala#3588 is merged, the ByteCode module will go back to
scala.tools.scalap.scalax.rules.scalasig from its current (M8) package:
scala.tools.scalap.scalasig
lrytz pushed a commit to lrytz/scala that referenced this pull request May 9, 2018
Once scala#3588 is merged, the ByteCode module will go back to
scala.tools.scalap.scalax.rules.scalasig from its current (M8) package:
scala.tools.scalap.scalasig
lrytz pushed a commit to lrytz/scala that referenced this pull request May 9, 2018
Once scala#3588 is merged, the ByteCode module will go back to
scala.tools.scalap.scalax.rules.scalasig from its current (M8) package:
scala.tools.scalap.scalasig
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants