More from the JEP 261 backlog

Jan Lahoda jan.lahoda at oracle.com
Thu Jul 18 13:12:54 UTC 2024


Hi Stephan,

regarding ct.sym, my personal opinion: the format was never meant to be 
stable and publicly documented. The format is likely to change around 
JDK 36, if not earlier, when the current way to specify release version 
will run out.

For having an API, there's this filled:
https://bugs.openjdk.org/browse/JDK-8199521

It is likely possible to implement that, but I unfortunately can't 
promise it will be done in any specific release.

In any case, it is not clear to me if using any of the above is 
necessarily reasonable for ecj. Wouldn't it be more appropriate to 
bundle the historical data with ecj? That would seem to improve 
predictability, as a given version of Eclipse would only have to worry 
about one specific (and known) format - instead of being at the mercy of 
whatever ct.sym happens to be defined in the JDK used to run Eclipse.

Jan


On 18. 07. 24 14:16, Stephan Herrmann wrote:
> In thread "[module-imports] Importing java.se" Alex mentioned a 
> planned update to JEP 261. Now I wonder, if this is a suitable point 
> in time to ask again about another specification issue in this area.
>
> JEP 261 lists among the new features a compiler option "--release", 
> which was contributed by JEP 247.
>
> Now, JEP 261 is scope SE, but it "includes" JEP 247 which is declared 
> as scope JDK.
>
> Similar to the discussion in the other thread, this does not answer, 
> how a compiler which is not part of a JDK can possibly implement the 
> "--release" option.
>
> Back at the time, we (Eclipse) had shyly asked for a specification of 
> the format of file ct.sym. This specification was denied (it's 
> internal, subject to change), and also the idea to provide an API 
> instead didn't - to the best of my knowledge - bear any fruit.
>
> As a result the Eclipse compiler had to be based on reverse 
> engineering of existing ct.sym files, and more than once the resulting 
> heuristics were broken by changes in the file format.
>
> It seems that by now the file format has stabilized, so the easiest 
> solution might be to
> + provide a specification of that format, and
> + provide information for which JDK versions this format can be assumed
>
> Please remember, that the Eclipse compiler must as best as possible be 
> able to work with any released JDK out there, past and future.
>
> Most importantly, moving forward we'd appreciate some assurance that 
> our implementation will not be broken again by future internal changes 
> in OpenJDK.
>
> thanks,
> Stephan


More information about the amber-spec-observers mailing list