Re: [rvm-research] Curious about OpenJDK on JikesRVM

Xi Yang <[email protected]>
Newsgroups gmane.comp.java.jikes.rvm.devel
Message-ID <CAG2O1R0XmMXapwpyT++MgYo4sFQY=Qc_xsVHnBf34Wwkkoxx7w@mail.gmail.com>
On 14 August 2013 23:04, Erik Brangs <[email protected]> wrote:
> Hi,
>
> On 14.08.2013 19:03, Xi Yang wrote:
>> Look at Section 3.4 in  Maxine: An Approachable Virtual Machine For,
>> and In, Java (https://wikis.oracle.com/display/MaxineVM/TACO+Journal+Paper)
>
> Thanks for the link.
>
>> I have to implement same features in Jikes to substitution of JDK
>> Methods. Then, I can reuse their Maxine's JDK methods.
>
> This sounds like it could be also useful for GNU Classpath. For example,
> we overwrite VMChannel, ReferenceQueue and VMAccessController with
> modified versions from libraryInterface/GNUClasspath/LGPL.

Yep, we can clean the Classpath interface too after we build a good baseline.

>
> What's your view on libraryInterface/Common? We currently overwrite
> classes such as java.lang.Class that are provided by both GNU Classpath
> and OpenJDK. With substitution of JDK methods implemented, would it make
> sense to drop these kinds of classes from libraryInterface/Common (i.e.
> everything expect VM* classes and sun.misc.Unsafe)? We could use
> substitution classes specific to each class library and extract the
> common code to newly-created shared classes in libraryInterface/Common.

I would like to drop all classes who should be included in JDK
libraries, and as Maxine does, replace some methods and fields.
However, I am not sure this is a good idea for GNU Classpath.
Classpath may already assume any VM implementation would replace those
classes in "libraryInterface/Common"?


Beside the interface, I think there are two points Jikes did not do it
very well. One is the list of JDK classes in bootimage, another is the
the list of classes who should be inited in certain order before
dynamic loading becoming functional. I think this is a good chance to
fix them all. Instead of trying many times, and add classes in the
list manually, we can have a script to figure out candidates. We can
put why we need to init class X, and the dependence between class
X,Y,Z  for JDK libraries.

>
>> So, the source code I reuse is limited in libraryInterface directory,
>> and I have to modify main Jikes too, but not using the code from
>> Maxine.
>
> That's good to hear. Using GPL code with (or consulting it for an
> implementation of) EPL code is disallowed by both licenses. We can only
> use GNU Classpath and the OpenJDK libraries because of the Classpath
> exception to the GPL. AFAIK the core codebase of Maxine does not have
> the Classpath exception (i.e. it is "plain" GPL).
>
> I suppose the final diff for OpenJDK support will be quite large.
> Unfortunately, large diffs make merging quite hard for various reasons.
> If you have some changes that can be merged and tested independently
> (e.g. related to the substition support), don't hesitate to provide
> patches now.

Sure :)

>
> I appreciate your continued work on OpenJDK support.

Thanks. I would like to make OpenJDK and AMD64 support as soon as
possible :) It is not easy to keep working on hobby projects at spare
time. So, I really appreciate your work on Jikes. Let's push Jikes to
a higher level.

Regards.

>
>
> Kind regards,
>
> Erik Brangs
>
> ------------------------------------------------------------------------------
> Get 100% visibility into Java/.NET code with AppDynamics Lite!
> It's a free troubleshooting tool designed for production.
> Get down to code-level detail for bottlenecks, with <2% overhead.
> Download for free and get started troubleshooting in minutes.
> http://pubads.g.doubleclick.net/gampad/clk?id=48897031&iu=/4140/ostg.clktrk
> _______________________________________________
> Jikesrvm-researchers mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/jikesrvm-researchers

------------------------------------------------------------------------------
Get 100% visibility into Java/.NET code with AppDynamics Lite!
It's a free troubleshooting tool designed for production.
Get down to code-level detail for bottlenecks, with <2% overhead. 
Download for free and get started troubleshooting in minutes. 
http://pubads.g.doubleclick.net/gampad/clk?id=48897031&iu=/4140/ostg.clktrk
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.