On 2/06/2021 3:47 pm, Jaroslav Tulach wrote:
On Tue, 1 Jun 2021 09:30:40 GMT, Jaroslav Tulach 
<github.com+26887752+jaroslavtul...@openjdk.org> wrote:

There doesn't seem to be much support for the complete changes in #4245. To get 
at least something useful from that endeavor I have extracted the test for 
existing behavior of `-XX:+PreserveAllAnnotations` and I am offering it in this 
pull request without any changes to the JVM behavior.

Right Peter, the `AnnotationTypeChangedToRuntimeTest` mimics closely the 
use-case:

JVM as a late-binding runtime ... There are exceptions to the rule such
as compile-time constants, ... and also annotation uses where the
information from one source file (annotation retention) is baked into
compilation artifacts of other source files (`RuntimeVisibleAnnotations`
vs. `RuntimeInvisibleAnnotations`). `PreserveAllAnnotations` option helps to
overcome the situation

Great formulation of the problem. The late binding allows people to ignore time 
of compilation when thinking about the running system. Ignoring time makes the 
mental model of the overall system easier. But when certain information is 
_baked_ elsewhere, ignoring time is may no longer be possible as the sequence 
of actions becomes important - an up to date system may see relics of the past 
(old values of compile-time constants and annotation not being visible even 
their most recent retention is `RUNTIME`).

This PR isn't going to modify behavior of the `-XX:+PreserveAllAnnotations` 
option in any way. It only provides a test. Having a test is better than having 
none. Can we consider this PR reviewed? Can somebody with enough merit mark 
this _change as properly reviewed_? Can somebody restart the _Windows aarch64 - 
Build_ - the error seems unrelated?

Sorry Jaroslav but I don't really see this test as a basic functional test of the PreserveAllAnnotations flag. There is no need for any dynamic retention mode switch. All you need as I've said previously is a class with all the CLASS retention annotations of interest (8 IIRC) applied and a programs that reads them, and either expects to find them or not, based on the PreserveAllAnnotations flag. I get that you are just trying to not waste a test you already developed.

The Windows build issue seems to be a software configuration issue on the Github machines and is outside of our control. I've no idea how to report issues to the Github folk.

David

-------------

PR: https://git.openjdk.java.net/jdk/pull/4280

Reply via email to