JDK 9 RFR of JDK-8072480: javac should support compilation for a specific platform version
Maurizio Cimadamore
maurizio.cimadamore at oracle.com
Thu May 21 12:14:19 UTC 2015
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
Maurizio
More information about the build-dev
mailing list