Will Java go native?
Dmitry Leskov
dleskov at excelsior-usa.com
Thu Sep 19 22:44:09 PDT 2013
On Thursday, 19 September 2013 at 17:21:16 UTC, Andrei
Alexandrescu wrote:
> On 9/19/13 6:05 AM, PauloPinto wrote:
>>> In java, all classes are dynamically loadable, and most
>>> functions are
>>> virtual. This is a deal breaker for the AOT.
>>
>> Wrong. The Java AOT compilers that target embedded systems
>> produce
>> static binaries.
>
> That's not wrong. Java AOT compilers usually (or at least last
> time I looked) make it clear they support no dynamic
> loading/invocation etc. so in a sense they don't support 100%
> of Java.
You have not looked for way too long it seems. Our JVM with AOT
compiler passes the official compliance tests (Java Compatibility
Kit), which includes reflaction/invocation tests. Of course, if
the class being loaded dynamically was known at compile time, it
will resolve to the precompiled image, otherwsie, a JIT compiler
kicks into action. GCJ has an interpreter serving the same
purpose.
We even went a step further and created an interesting technique
that enables you to reduce application download size and disk
footprint by omitting the unused parts of the Java platform:
http://www.excelsior-usa.com/java-download-size.html
In order to remain spec compliant, the runtime is capable of
downloading the omitted on demand. However, for sample apps that
you can download from the above URL, there was not a single such
download ever.
More information about the Digitalmars-d
mailing list