harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Tim Ellison <t.p.elli...@gmail.com>
Subject Re: [classlib] where to put mods that make classlib more portable
Date Fri, 24 Mar 2006 05:25:38 GMT
Weldon Washburn wrote:
> On 3/23/06, Tim Ellison <t.p.ellison@gmail.com> wrote:
>> Weldon Washburn wrote:
>>> Now that JCHEVM licensing issues are resolved, I would like to find a
>>> home for mods that make Harmony Classlib more portable.  The files
>>> are:
>>> nio/src/main/java/com/ibm/platform/OSMemory.java
>>> nio/src/main/java/com/ibm/platform/OSFileSystem.java
>>> luni/src/main/java/java/io/FileDescriptor.java
>>> All of the above files contain native method declarations.  To get
>>> "hello world" on JCHEVM working,  I temporarily commented out the
>>> "native" keyword and turned the code into method definitions with a
>>> few simple hacks.
>> That's cool -- as Leo said, it is fair game to create hacks to bring up
>> "hello world".  It's a step towards the full integration of JCHEVM and
>> classlib.
>>> Since the above files declare native methods, one possibility is to
>>> move them into the kernel directory.  Another possibility is to leave
>>> the above files where they are and have them call into
>>> "kernel/src/main/java/java/lang/kernel_OSMemory.java".  The idea is to
>>> move all the native method declarations into the kernel directory.
>>> Thoughts on the above?
>> As Paulex said elsewhere, you are going to have to do 'the right thing'
>> in terms of the VMI if you expect other natives to work.
> Yes, I agree.  The problem will be resolving GNU Classpath hard
> requirements and the Harmony ClassLib hard requirements.

Are Harmony's VMI requirements in some way incompatible with Classpath's
VM requirements?

>> I'm surprised that these are the only natives that you need to change
>> (to avoid the PORT_ACCESS_FROM_ENV and hy* macros) outside the kernel today.
> More accurately, these are the only natives required to get "hello
> world" working.

Understood, that's goodness, I'm just surprised.

>> Are you using the Harmony launcher for starting JCHEVM?  I ask because
>> the launcher sets up the portlib and passes it in as a vm arg when the
>> VM is created.
> Harmony launcher is not used.  I suspect the typical GNU Classpath
> ready JVM does not know about Harmony launcher.

The VMs should not need to know about the launcher, they'll just get
created by JNI_CreateJavaVM.  If you used the Harmony launcher it would
help by giving you the portlib etc. required by the VMI.  That may be
easier than adding the functionality to whatever launcher you are using
or the VM directly.
(I'm thinking beyond the 'hello world' hack here.)


>> p.s. I don't think putting these hacks into the existing mainline
>> classlib code makes sense, but I have no problem with it being off to
>> the side if that helps with collaboration.
> Yes.  Agreed.  I will keep them off to the side.
>> --
>> Tim Ellison (t.p.ellison@gmail.com)
>> IBM Java technology centre, UK.
> --
> Weldon Washburn
> Intel Middleware Products Division


Tim Ellison (t.p.ellison@gmail.com)
IBM Java technology centre, UK.

View raw message