Review: Indify String Concat JEP
Alan.Bateman at oracle.com
Mon Sep 21 11:24:43 UTC 2015
On 18/09/2015 16:17, Aleksey Shipilev wrote:
> I recently sent the review request to compiler-dev@ , but got no
> response. Resending at corelibs-dev@ to gain more exposure.
> Please review the submitted "Indify String Concat" JEP. It seems
> complete to me: with working implementation, testing, and general
> understanding of an issue. Start here:
> General feedback, comments, concerns, testing is appreciated.
The main concerns that come to mind reading through this is potential
startup overhead and potential recursive initialization/bootstrapping
issues where the BSM might need to do string concatenation. However,
you've covered those points quite well in the Risks and Assumptions section.
On startup overhead then it might be amortized by the initialization of
the module system as you suggest. It might be something else. We don't
want to discourage use of lambda expressions or method reference so the
first use of LF or whatever the initialization cost is will need to be
worked on anyway.
I see the proposal is to exempt java.base. It probably could be finer
grained than all of java.base but tricky to determine that subset. Even
if all of java.base is exempt then I think there are initialization
issues that need to be looked at. Peter Levart had a proposed patch for
at least one of this issues at one point but there might be others .
One other thing is that JEP 261 proposes the -Xoverride option (maybe it
might be renamed to -Xpatch) for patching/override classes in java.base.
Anyone using that to override classes used early in the startup would
need to be careful to use the right javac option.
One other other on exemptions is that it might need to be javac too, at
least for the JDK build where the newly built compiler runs with the
boot JDK to compile everything else. I can't quite tell from a first
read if the proposal is that javac emit indy by default, if not then
this may be a non-issue.
More information about the core-libs-dev