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 compiler-dev mailing list