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