JDK 9 RFR of JDK-8072480: javac should support compilation for a specific platform version

Jan Lahoda jan.lahoda at oracle.com
Thu May 21 13:14:47 UTC 2015


On 21.5.2015 14:14, Maurizio Cimadamore wrote:
>
>
> On 21/05/15 12:48, Jan Lahoda wrote:
>> As an example, consider we would be currently storing data for 6, 7
>> and 8. We could have full 8 APIs stored, and then 8->7 diff and 7->6
>> diff. So the baseline for 7 would be 8 and the baseline for 6 would be 7.
>>
>> When the data for 9 would be added(*), we could keep the full APIs for
>> 8 (to avoid wasting space in the repository), and then store 8->9 and
>> 8->7 diffs (and drop 6). So 8 would be the baseline for both 7 and 9.
>> So, some flexibility may be useful here.
>>
>> Does this make some sense?
> It seems to me that versions form a total order. If you pick N to be
> your baseline, you should generate a full API for that K, and then
> generate incremental diffs for K < N and K > N - example:
>
> case 1:
>
> platforms: { 6, 7, 8 }
> baseline = 8
>
> files: 8, 8->7, 7->6
>
> case 2:
>
> platforms { 7, 8, 9 }
> baseline = 8
>
> files: 8->9, 8, 8->7
>
> So, can't we just assume that there's a set of platforms (which can be
> sorted), and a baseline K pointing at one of them? Then it's easy to
> figure out how you should generate diffs:
>
> sym(N) := <full N file>, where N == K
> sym(N) := diff between sym(N-1) and N, where N > K
> sym(N) := diff between N and sym(N + 1), where N < K

For 6, 7, 8, ... we could assume there is an ordering. But seems to me 
that the flexibility of being able to specify the baseline (rather than 
having the chosen automatically based on the version number) is not bad. 
But I can change it to automatic baseline per the design above, if you 
prefer.

Thanks,
    Jan

>
> Maurizio



More information about the build-dev mailing list