On Apr 15, 2015, at 2:03 PM, Remi Forax <fo...@univ-mlv.fr> wrote:
>> Of course we cannot feasibly backport every new API in N to N-1, N-2 etc. In 
>> selective cases that might be possible, but for the core of the JDK it's 
>> like pulling on a string of public dependencies, internal dependencies and 
>> perhaps more subtle dependencies between javac and hotspot (Unsafe 
>> replacements would be particularly tricky).
> 
> that why most of the tools like the retroweaver [1] rewrite bytecodes because 
> you can replace a dependency to a JDK class to wire it to a class that will 
> come with your code.
> 

IIUC Retroweaver seemed to hit a sweet spot focusing on transforming language 
features and some minimal API features (i presume some lambda weaving tooling 
has/will hit a similar sweet spot, there is at least one but i cannot recall 
the name).

It seems for APIs in general this may require more sophisticated code 
transformation techniques with additional non-core library support?


> Note that in that case, you develop and maintain only one version of the code 
> compatible with the newer version and backport the code to the old one, 
> instead of selectively develop part of the code with the new version as you 
> propose.
> 

And either one publishes X JARs for each platform, or the consumer manages that 
themselves. Or one trusts this to work in some dynamic fashion.

--

In my last email i forgot to point out that a tool (jar for example) that 
transforms a MVJAR into a platform specific JAR before being operated on by a 
byte code transforming tool may be a reasonable approach, but still requires 
some additional action.

Paul.

Reply via email to