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

dedicated build with GenASM emitting 1.7 classfiles #5836

Closed
scabug opened this issue May 25, 2012 · 9 comments
Closed

dedicated build with GenASM emitting 1.7 classfiles #5836

scabug opened this issue May 25, 2012 · 9 comments

Comments

@scabug
Copy link

scabug commented May 25, 2012

Now that #5805 has been fixed it's possible to bootstrap with GenASM emitting 1.6 classfiles. Perhaps the time has come for a dedicated (nightly) build to test that functionality.

The following minimum changes in build.xml do the trick, and also make sure the new JVM verifier is used:

  <property name="scalac.args" value="-target:jvm-1.6"/>

  <property name="env.ANT_OPTS" value="-Xms1536M -Xmx1536M -Xss1M -XX:MaxPermSize=192M -XX:+UseParallelGC -XX:-FailOverToOldVerifier -XX:+UseSplitVerifier -Xverify:all" />

The -Xverify:all above also serves as early warning about invalid bytecode that might have escaped testing (whether GenASM's fault or not).

It's also conceivable to have a (nightly?) build with -target:jvm-1.5-asm

TODO for @magarciaEPFL: GenASM can run faster under -target:jvm-1.5-asm by skipping the update of reverseJavaName (whose contents are needed only for 1.6 and up).

@scabug
Copy link
Author

scabug commented May 25, 2012

@scabug
Copy link
Author

scabug commented May 25, 2012

@magarciaEPFL said:
And the javac.args can also target 1.6

@scabug
Copy link
Author

scabug commented May 29, 2012

@magarciaEPFL said:
@lrytz, your comments are welcome!

@scabug
Copy link
Author

scabug commented May 29, 2012

@jsuereth said:
Working on a patch for javac.target options. Not as easy as you would hope....

Also, I kinda think perhaps scalac.args for JVM target should only be for scalac.args.quickonly, so we don't run into STARR vs. locker feature issues (those are my favorite).

I should have something by the end of the week.

@scabug
Copy link
Author

scabug commented Jun 8, 2012

@magarciaEPFL said:
An idea that might prove useful:

  • Use Migration Manager to keep GenASM and GenJVM mutually honest ( by comparing the output of -target:jvm-1.5-asm and -target:jvm-1.5 ).
  • Actually, for API compatibility purposes, 1.6 classfiles can also be compared with 1.5 classfiles.
  • Any other JAR diffing tool should also do, especially if available as ANT task

A discussion was started at scala-internals to gather feedback on this approach.

@scabug
Copy link
Author

scabug commented Jun 9, 2012

@magarciaEPFL said:
This build would be a good place to test stability. As far as GenASM is concerned the following will do:

ant quick.clean -Dscalac.args.quickonly="-target:jvm-1.5-asm" test.stability

ant quick.clean -Dscalac.args.quickonly="-target:jvm-1.6"     test.stability

@scabug
Copy link
Author

scabug commented Jul 7, 2012

@magarciaEPFL said (edited on Jul 9, 2012 9:21:45 AM UTC):
scala/scala#841 activates GenASM as default backend,
and also adds "jvm-1.6" and "jvm-1.7" as PermissibleValue in

src/compiler/scala/tools/ant/Scalac.scala 

@scabug
Copy link
Author

scabug commented Jul 9, 2012

@magarciaEPFL said (edited on Aug 3, 2012 9:19:37 AM UTC):
Now that GenASM is the default backend for 1.6 classfiles (see below) this ticket should be repurposed to 1.7 classfiles.

@SethTisue
Copy link
Member

obsolete, 2.12 has the new back end

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants