Re: Cross plaform issues

2005-05-18 Thread Garrett Rooney
Garrett Rooney wrote:
access to scalable IO facilities (IOCP, epoll, kqueue, etc...)

See the apr_pool API, which uses epoll, kqueue, etc on the backend if 
available.
Now that my message finally makes it through the ASF mail system, I 
notice that typo...  That should be apr_poll, not apr_pool ;-)

-garrett


Re: [arch] VM Candidate : JikesRVM http://jikesrvm.sourceforge.net/

2005-05-18 Thread Ozgur Akan
I think everyone shall read this first 
http://jikesrvm.sourceforge.net/info/overview.shtml . If performance 
will not be a problem then the product based on Jikes can be an 
alternative to Sun`s JVM.

Personally Java is the language I feel myself most confortable and I 
think most of the people here feels the same. This is also an advantage 
which will shorten the development time if Java language is used.

Ozgur Akan
Geir Magnusson Jr. wrote:
We've been talking about two threads of discussion, one working with  
a C/C++ based VM, one w/ Java.

Here's a Java one for discussion (just want to focus threads...)
geir


Re: [arch] VM Candidate : JikesRVM http://jikesrvm.sourceforge.net/

2005-05-18 Thread Mladen Turk
Geir Magnusson Jr. wrote:
On May 18, 2005, at 2:18 AM, Ozgur Akan wrote:
I think everyone shall read this first http:// 
jikesrvm.sourceforge.net/info/overview.shtml . If performance will  
not be a problem then the product based on Jikes can be an  
alternative to Sun`s JVM.

Can we put the performance question to rest once and for all?
The rules of programming are transitory; only Tao is eternal.
Therefore you must contemplate Tao before you receive enlightenment.
But how will I know when I have received enlightenment? asked
the novice.
Your program will then run correctly, replied the master.
So I agree wit Geir, for an enlightenment, the first rule is to
run it correctly. Speaking on performance before a single line
of code in not Tao!
Regards,
Mladen.


Re: Against using Java to implement Java

2005-05-18 Thread shudo
There is an old document describing a JIT interface though ORP should
be more advanced, for example, as having GC interface.

  The JIT Compiler Interface Specification
  http://java.sun.com/docs/jit_interface.html

Sun's Classic VM, which was a reference VM, of JDK 1.0.2 and 1.1.X
implements this interface and it was modified a bit for J2SDK 1.2.
There were actually multiple JIT compilers based on this JIT interface
including Symantec JIT, OpenJIT, shuJIT and TYA.

This interface is not enough to support advanced optimizations
including adaptive compilation, which today's Sun's and IBM's runtimes
do.  Adaptive compilation needs cooperation by an interpreter (or a
baseline compiler) and I am not sure whether it can be factored out
from the JVM core.


From: Tom Tromey [EMAIL PROTECTED]

 David Maybe a concrete example would help. Let's say you have a GC module
 David written in C. One of it's API calls is to allocate a new object. How
 David is your JIT module going to produce code to use that API? Via a C
 David function pointer?

 Yes.

 One way is to mandate link- or compile-time pluggability only.  Then
 this can be done by name.  Your JIT just references
 'harmony_allocate_object' in its source and uses this pointer
 in the code it generates.

 The other way is to have the JIT call some central function to get a
 pointer to the allocator function (or functions, in libgcj it turned
 out to be useful to have several).  This only needs to be done once,
 at startup.


 For folks interested in pluggability, I advise downloading a copy of
 ORP and reading through it.  ORP already solved these problems in a
 fairly reasonable way.


  Kazuyuki Shudo[EMAIL PROTECTED]   http://www.shudo.net/


Re: Developing Harmony

2005-05-18 Thread Ben Laurie
Stefano Mazzocchi wrote:
Bryce Leo wrote:
Now don't go too crazy for my suggesting this, but why not pascal? If
we're considering C as it is this really isn't a terrible suggestion.
I know it's fallen out of favor with most of you guys but it compiles
quickly and supports a good number of operating systems and types of
hardware, like arm and AMD64 (referencing Free Pascal that is). I'm
betting that you guys won't like it but I think the option should be
listed.
Opinions?

Can we stop this language madness thing, please?
We are *NOT* going to be writing a JVM from scratch, we are open for 
donations.
Says who? If people here want to write a VM, are you going to stop them? 
I hope you wouldn't even try.

--
http://www.apache-ssl.org/ben.html   http://www.thebunker.net/
There is no limit to what a man can do or how far he can go if he
doesn't mind who gets the credit. - Robert Woodruff


Re: Cross plaform issues

2005-05-18 Thread Mladen Turk
Rodrigo Kumpera wrote:
A quick look at APR reveal that it doesn´t provide all OS abstraction that a 
JVM needs.
I tend to disagree with you. The only thing the APR doesn't offer is
GUI abstraction.
There are no functions to mark pages as executable,
Like Garrett said, those functionality was not needed.
Not sure if it can be added in a portable fashion to APR or
if this should be kept as separate lib.
scalable IO facilities (IOCP, epoll, kqueue, etc...) or workarounds for 
small diferences on syscalls or libC implementation.
Take a look at:
jakarta-tomcat-connectors/jni
It uses APR in a way the Sun does for it's low level I/O.
On windows, APR currently uses select, but we are discussing to use the
IOCP for quite some time. On other platforms, either poll, epoll or
kqueue are used.
Regards,
Mladen.


RE: Introduction, and a question

2005-05-18 Thread Subramanian, Sundar
What you are suggesting would be a definite must-have if we want to try for a 
distributable JVM.

I will read up on the links supplied and get back on this.
Regards
~s

-Original Message-
From: Brad Cox [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, May 18, 2005 4:40 AM
To: harmony-dev@incubator.apache.org
Subject: Re: Introduction, and a question

My ambitions were far more modest, cutting down on startup overhead in 
apps coded like this


static Foo aFoo = new Foo();
public void main(String args[])
{
checkpoint();
// on with the show
}

But JVM/instance persistence would certainly be nice (if hard to provide 
reliably).

Subramanian, Sundar wrote:

My original intention of having a snapshot was not so much as to have a quick 
restart but to be able to migrate apps a la distributed JVM efforts 
(http://djvm.anu.edu.au/) as Steve has mentioned in this thread earlier.

As you say I guess persistence along with machine specific JIT code might be a 
hard problem to solve. Sun's efforts in this direction is a good partial 
solution. But taking care of the environmental parameters like open JDBC 
connections etc would also have to be implemented if any movement in this 
direction is to be expected.

Regards
~sundar

-Original Message-
From: Nick Lothian [mailto:[EMAIL PROTECTED] 
Sent: Tuesday, May 17, 2005 10:36 AM
To: harmony-dev@incubator.apache.org
Subject: RE: Introduction, and a question

  

El lun, 16-05-2005 a las 16:08 +0530, Subramanian, Sundar escribió:
(...)


I guess what Brad is asking is for a snapshot of the state of JVM.
This
would be really useful to migrate stuff from one environment to 
another preserving the underlying state.
  

I have mixed feelings about having a save image __a la__ 
Smalltalk, if this is what you are meaning. While delivering 
an image looks tempting, state gets corrupt in unpredictable 
ways, and having ways to track changes becomes a nightmare.

The Smalltalk community has worked hard in this (hard) 
problem, but I'm still not sure if it would make sense in the 
java world. Java is a system-oriented language, and the 
ability to save the whole VM state and recover from this 
saved image would bring additional constraints to the Virtual 
Machine implementation. For instance, machine specific JIT 
code should be invalidated upon save, negating a substantial 
part of the advantages of a saved image (faster startup).

This said, if VM implementors out there find easy ways to 
meet these constraints w/o burdening runtime or memory 
requirements, it could be an area for experimenting.




This looks like it would be related to the stuff Sun has done with class data 
sharing in the 1.5 JVMs:

When the JRE is installed on 32-bit platforms using the Sun provided 
installer, the installer loads a set of classes from the system jar file into 
a private internal representation, and dumps that representation to a file, 
called a shared archive. Class data sharing is not supported in Microsoft 
Windows 95/98/ME. If the Sun JRE installer is not being used, this can be done 
manually, as explained below. During subsequent JVM invocations, the shared 
archive is memory-mapped in, saving the cost of loading those classes and 
allowing much of the JVM's metadata for these classes to be shared among 
multiple JVM processes. [1]

This isn't quite the same as saving JIT'ed code, but it sounds like it is 
saving the pre-parsed and verified class files.

Nick

[1] http://java.sun.com/j2se/1.5.0/docs/guide/vm/class-data-sharing.html


IMPORTANT: This e-mail, including any attachments, may contain private or 
confidential information. If you think you may not be the intended recipient, 
or if you have received this e-mail in error, please contact the sender 
immediately and delete all copies of this e-mail. If you are not the intended 
recipient, you must not reproduce any part of this e-mail or disclose its 
contents to any other party.
This email represents the views of the individual sender, which do not 
necessarily reflect those of education.au limited except where the sender 
expressly states otherwise.
It is your responsibility to scan this email and any files transmitted with it 
for viruses or any other defects.
education.au limited will not be liable for any loss, damage or consequence 
caused directly or indirectly by this email. 



  






Re: Introduction, and a question

2005-05-18 Thread Paul Richards
On Wed, May 18, 2005 at 10:40:41AM +0900, [EMAIL PROTECTED] wrote:
  Newbie question: What is to stop us from caching JITed code?  .NET/
  mono does this as far as I know?
 
 We can do it even in the forthcoming Harmony runtime.
 
 On the other hand, an apparent drawback is disk
 consumption. Generally, JITted native code takes 3 times or more as
 much as bytecode takes.

I think Parrot can do this. Parrot might not be an obvious VM to
throw into the ring but I think it should be given serious
consideration. To have a common VM across two of the most commonly
used languages would be politically very appealing from an open
source perspective. It also has clear technical merits in that
there'd only be one VM, so on a modern os that would just be the
one executable image in memory. Parrot also has .NET like qualities
in that multiple languages can be used to build your app since they
all compile down to the same bytecode.

I think it's definitely worth taking a look at. Leon Brocard write
a Java-Parrot bytecode converted quite early on in the life of
Parrot. It might not be much work to bring it up to speed.

-- 
Paul Richards


Re: Developing Harmony

2005-05-18 Thread Ben Laurie
Tom Tromey wrote:
Ben == Ben Laurie [EMAIL PROTECTED] writes:

I'm pretty sure we want a framework in C/C++, whatever components
are developed in.

Umm.  Why?

Ben So it can run everywhere.
FWIW, writing a VM in java doesn't make this harder per se.
In fact, in a way it is easier as you are already writing a compiler,
so you don't need another one for your target.
The way JikesRVM works, as I understand it, is that you bootstrap it
on some other VM.  This makes an image, which is just plain old
executable code, which is the actual VM.  Then you can run your java
programs using this image.
This has to be a VM that produces native code, right?
In any case, here I am with a platform that currently has no VM, but 
does have a C compiler. What do I do?

In your world, I first port some other VM, then port Harmony. I don't 
understand why this is not harder?

--
http://www.apache-ssl.org/ben.html   http://www.thebunker.net/
There is no limit to what a man can do or how far he can go if he
doesn't mind who gets the credit. - Robert Woodruff


Re: Intro to Classpath

2005-05-18 Thread usman bashir
And i ll add one thing more!
 when u get it up, you will see many more alternative implementations will 
be sumbited to harmony, so let me dream for that :) and it is what we called 
power of OSS.
 i mean actually in future we can then replace the implementation of such 
API's which are based on Service Provider interfaces could be avialable as 
alternative bases.

 On 5/17/05, Sven de Marothy [EMAIL PROTECTED] wrote: 
 
 On Tue, 2005-05-17 at 11:46 -0300, Rodrigo Kumpera wrote:
  I'm wondering, some parts of the JDK seens to be product features and 
 not a
  standard. For examples, the sound system should use arts, esd or alsa (I
  believe Sun support the last 2). The printing system should support 
 cups,
  lprng or both?
 
 Such matters are of course not part of the Java spec and are completely
 up to the implementation. There would be no point in having a Java API
 for these things if a certain underlying API was required.
 
  The same goes for the crypto algorithms on the pack.
 
 No. Although parts of crypto (like so much of the newer APIs) is behind
 a Service Provider Interface, you still want to provide everything Sun
 does, because applications will expect those algorithms to be available.
 
 While I'm not sure this is required for strict-TCK compatibility, it is
 certainly a compatibility issue for real-world apps.
 
 /Sven
 
 


-- 
Usman Bashir
Certified IBM XML Solution Developer 
Certified UML Developer
Brainbench Certified Internet Perfessional[advance](BCIP)
Brainbench Certified Java Perfessional (BCJP)
Brainbench Certified .NET Perfessional 
Brainbench Ceritified C++ Perfessional (BCCP)
Software engineer IT24
Faculty Member Operation Badar Lahore


Re: Developing Harmony

2005-05-18 Thread Ben Laurie
Mark Brooks wrote:
C++, just C++, is a recipe for trouble. Most projects that use it 
define a
subset to make development a less painfull talk. Usually operator
overloading, templates and virtual inheritance are discarded.

Rodrigo

Agreed.  If the decision is to go with C++, it will need to be a subset 
of C++ for sanity.  I still think that, at most, a minimal C kernel and 
the rest in Java is a better option.

 As I said before, don't assume we're all Java fans here. I'm far more
 familiar with C++ than I am with Java.
snip

 Ben.

If you aren't a Java fan, why are you interested in Harmony?  Or am I 
misinterpreting what you meant there?
Surely I don't have to rate Java as the best language for everything in 
order to be interested in Harmony? I don't think HTTP or SSL are the 
best ways to do things, either, but I've spent an enormous amount of 
time on both of them.

There's all sorts of reasons I'm interested in Harmony.
a) I recently tried Eclipse, and discovered it removed a major source of 
Java irritation (excessive amounts of redundant typing). In fact, I love 
Eclipse. If only I could get it working on FreeBSD :-)

b) I'm interested in capability-secure versions of popular languages. 
Java is a popular language.

c) I'm interested in security generally.
d) I'm interested in compilers.
e) I'm interested in VMs.
f) I'm interested in modularity.
g) I'm interested in portability.
So, in summary, my interest is in the nuts and bolts of Harmony far more 
than in writing things in Java.

That said, I do write things in Java :-)
Cheers,
Ben.
--
http://www.apache-ssl.org/ben.html   http://www.thebunker.net/
There is no limit to what a man can do or how far he can go if he
doesn't mind who gets the credit. - Robert Woodruff


Re: [arch] VM Candidate : JC @ http://jcvm.sourceforge.net/

2005-05-18 Thread usman bashir
 It seems good geir ! and also seems to be following what we planned for 
harmony, and it could be a good starting point for us, later on we can make 
required changes as we moves on, and it will also help to impatients to work 
on and see some thing written down from the air to papers :)


 On 5/18/05, Geir Magnusson Jr. [EMAIL PROTECTED] wrote: 
 
 For those that want meaningful subjects lines, here it is and for
 those that are waiting for an architecture discussion - here it is.
 
 Here's the first of the offered VMs. (I've privately mailed Tom van
 Dijck about mudGE so we can look at something else)
 
 I've downloaded and will begin playing with today. Archie, can you
 give a brief overview of structure?
 
 Can we get some discussion about this from those that know about
 about VM architecture?
 
 geir
 
 On May 16, 2005, at 3:22 PM, Archie Cobbs wrote:
 
  As mentioned before, and/all of JC [1] is available and I'll
  be happy to relicense it. All of the code was written by me
  (though I didn't invent all of the algorithms of course).
 
  Some bits I can think of that may be useful, roughly ordered
  from smaller and more likely to larger and less likely...
 
  - Splay tree implementation (splay.c)
  - String/UTF-8 functions (string.c, utf.c)
  - ZIP file reader (zip.c)
  - Class file parser (cf_parse.c)
  - Native local and global reference code (native_ref.c)
  - Per-classloader memory allocator (cl_alloc.c)
  - SableVM thin lock algorithm (lock.c)
  - Native library loader (native_lib.c)
  - VM Bootstrap code (vm.c, bootstrap.c)
  - JNI support (jni_invoke.c, jni_native.c)
  - Reflection support (reflect.c)
  - Dynamic invoker (invoke.c)
  - Threading support (thread.c)
  - Heap structure and garbage collector (heap.c, gc_root.c,
  gc_scan.c).
  - Bytecode interpreter (interp.c)
  - Class loading, derivation, and resolution (load2.c, derive2.c,
  resolve.c)
 
  There's also an ELF object loader and DWARF2 parser if you need
  those :-)
 
  -Archie
 
  [1] http://jcvm.sourceforge.net/
 
 
 --
 Geir Magnusson Jr +1-203-665-6437
 [EMAIL PROTECTED]
 
 


-- 
Usman Bashir
Certified IBM XML Solution Developer 
Certified UML Developer
Brainbench Certified Internet Perfessional[advance](BCIP)
Brainbench Certified Java Perfessional (BCJP)
Brainbench Certified .NET Perfessional 
Brainbench Ceritified C++ Perfessional (BCCP)
Software engineer IT24
Faculty Member Operation Badar Lahore


Re: Developing Harmony

2005-05-18 Thread Panagiotis Astithas
Ben Laurie wrote:
Mark Brooks wrote:
C++, just C++, is a recipe for trouble. Most projects that use it 
define a
subset to make development a less painfull talk. Usually operator
overloading, templates and virtual inheritance are discarded.

Rodrigo

Agreed.  If the decision is to go with C++, it will need to be a 
subset of C++ for sanity.  I still think that, at most, a minimal C 
kernel and the rest in Java is a better option.

 As I said before, don't assume we're all Java fans here. I'm far more
 familiar with C++ than I am with Java.
snip


 Ben.

If you aren't a Java fan, why are you interested in Harmony?  Or am I 
misinterpreting what you meant there?

Surely I don't have to rate Java as the best language for everything in 
order to be interested in Harmony? I don't think HTTP or SSL are the 
best ways to do things, either, but I've spent an enormous amount of 
time on both of them.

There's all sorts of reasons I'm interested in Harmony.
a) I recently tried Eclipse, and discovered it removed a major source of 
Java irritation (excessive amounts of redundant typing). In fact, I love 
Eclipse. If only I could get it working on FreeBSD :-)
Since the java/eclipse port is working fine, I assume you want to use it 
with another JVM than java/jdk14? If so, and since this is something I 
was contemplating these days, under which JVM would you want to use it? 
Kaffe? GCJ? JC? JikesRVM?

--
Panagiotis Astithas
EBS, Electronic Business Systems Ltd.
18 Evgenidou Street, 115 25, Athens GREECE
Phone: +30 210 674 7631
Fax: +30 210 674 7601
http://www.ebs.gr


Re: Against using Java to implement Java (Was: Java)

2005-05-18 Thread David Griffiths
I think it's too slow to have the overhead of a function call for
every object allocation. This is the cost of modularization. I doubt
any of the mainstream JVMs you are competing with do this.

Cheers,

Dave

On 17 May 2005 18:27:42 -0600, Tom Tromey [EMAIL PROTECTED] wrote:
  David == David Griffiths [EMAIL PROTECTED] writes:
 
 David Maybe a concrete example would help. Let's say you have a GC module
 David written in C. One of it's API calls is to allocate a new object. How
 David is your JIT module going to produce code to use that API? Via a C
 David function pointer?
 
 Yes.
 
 One way is to mandate link- or compile-time pluggability only.  Then
 this can be done by name.  Your JIT just references
 'harmony_allocate_object' in its source and uses this pointer
 in the code it generates.
 
 The other way is to have the JIT call some central function to get a
 pointer to the allocator function (or functions, in libgcj it turned
 out to be useful to have several).  This only needs to be done once,
 at startup.
 
 For folks interested in pluggability, I advise downloading a copy of
 ORP and reading through it.  ORP already solved these problems in a
 fairly reasonable way.
 
 Tom



RE: [arch] VM Candidate : JC @ http://jcvm.sourceforge.net/

2005-05-18 Thread Tom van Dijck
Hi,

I've had some time today to cleanup and make the VM a standalone thing,
since it pretty much was designed to work together with our Game Engine.
Full game engine (forgive me my commercial plug on the list) can be licensed
as well. It's been used for Red Ninja: End of Honor and several other
games.

Please bare in mind that in our Game Engine we use java as a scripting
language, NOT as our main development language, and thus use a very
restricted and small runtime. We do NOT fully implement the J2SE API, nor do
we have any intensions to do so.

Anyway, the standalone VM is available on www.mudge.nl/java/
It is distributed under a somewhat modified version of the ZLIB license, so
for use as reference or as a base for harmony there should be no problem
whatsoever. If there are any problems with the license please let me know so
we can negotiate, all I want is to be notified about what happens to my code
and who uses it.

Tom van Dijck
mudGE Entertainment


 

 -Original Message-
 From: Geir Magnusson Jr. [mailto:[EMAIL PROTECTED] 
 Sent: Wednesday, May 18, 2005 6:35 AM
 To: harmony-dev@incubator.apache.org
 Subject: [arch] VM Candidate : JC @ http://jcvm.sourceforge.net/
 
 For those that want meaningful subjects lines, here it is and 
 for those that are waiting for an architecture discussion - 
 here it is.
 
 Here's the first of the offered VMs.  (I've privately mailed 
 Tom van Dijck about mudGE so we can look at something else)
 
 I've downloaded and will begin playing with today.  Archie, 
 can you give a brief overview of structure?
 
 Can we get some discussion about this from those that know 
 about about VM architecture?
 
 geir
 
 
 On May 16, 2005, at 3:22 PM, Archie Cobbs wrote:
 
  As mentioned before, and/all of JC [1] is available and 
 I'll be happy 
  to relicense it. All of the code was written by me (though I didn't 
  invent all of the algorithms of course).
 
  Some bits I can think of that may be useful, roughly ordered from 
  smaller and more likely to larger and less likely...
 
- Splay tree implementation (splay.c)
- String/UTF-8 functions (string.c, utf.c)
- ZIP file reader (zip.c)
- Class file parser (cf_parse.c)
- Native local and global reference code (native_ref.c)
- Per-classloader memory allocator (cl_alloc.c)
- SableVM thin lock algorithm (lock.c)
- Native library loader (native_lib.c)
- VM Bootstrap code (vm.c, bootstrap.c)
- JNI support (jni_invoke.c, jni_native.c)
- Reflection support (reflect.c)
- Dynamic invoker (invoke.c)
- Threading support (thread.c)
- Heap structure and garbage collector (heap.c, gc_root.c, 
  gc_scan.c).
- Bytecode interpreter (interp.c)
- Class loading, derivation, and resolution (load2.c, derive2.c,
  resolve.c)
 
  There's also an ELF object loader and DWARF2 parser if you 
 need those 
  :-)
 
  -Archie
 
  [1] http://jcvm.sourceforge.net/
 
 
 -- 
 Geir Magnusson Jr  +1-203-665-6437
 [EMAIL PROTECTED]
 
 




Re: Against using Java to implement Java

2005-05-18 Thread David Griffiths
Well that's the theory but I think you'll find in practice that real
JITs cheat and inline object allocation using their knowledge of the
GC internals.

And there is no way that a JIT is going to implement synchronized
methods by doing a monitorEnter function call!

Dave

On 5/18/05, [EMAIL PROTECTED] [EMAIL PROTECTED] wrote:
 There is an old document describing a JIT interface though ORP should
 be more advanced, for example, as having GC interface.
 
   The JIT Compiler Interface Specification
   http://java.sun.com/docs/jit_interface.html
 
 Sun's Classic VM, which was a reference VM, of JDK 1.0.2 and 1.1.X
 implements this interface and it was modified a bit for J2SDK 1.2.
 There were actually multiple JIT compilers based on this JIT interface
 including Symantec JIT, OpenJIT, shuJIT and TYA.
 
 This interface is not enough to support advanced optimizations
 including adaptive compilation, which today's Sun's and IBM's runtimes
 do.  Adaptive compilation needs cooperation by an interpreter (or a
 baseline compiler) and I am not sure whether it can be factored out
 from the JVM core.
 
 From: Tom Tromey [EMAIL PROTECTED]
 
  David Maybe a concrete example would help. Let's say you have a GC module
  David written in C. One of it's API calls is to allocate a new object. How
  David is your JIT module going to produce code to use that API? Via a C
  David function pointer?
 
  Yes.
 
  One way is to mandate link- or compile-time pluggability only.  Then
  this can be done by name.  Your JIT just references
  'harmony_allocate_object' in its source and uses this pointer
  in the code it generates.
 
  The other way is to have the JIT call some central function to get a
  pointer to the allocator function (or functions, in libgcj it turned
  out to be useful to have several).  This only needs to be done once,
  at startup.
 
 
  For folks interested in pluggability, I advise downloading a copy of
  ORP and reading through it.  ORP already solved these problems in a
  fairly reasonable way.
 
   Kazuyuki Shudo[EMAIL PROTECTED]  http://www.shudo.net/



RE: GCJ ABI (Re: Trampoline)

2005-05-18 Thread Subramanian, Sundar
Yeah John, that will be great
Thanks
~sundar


-Original Message-
From: John Wilson [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, May 18, 2005 4:25 PM
To: harmony-dev@incubator.apache.org
Subject: Re: GCJ ABI (Re: Trampoline)


On 18 May 2005, at 11:44, Subramanian, Sundar wrote:

 I think the paper is behind a protected ftp which requires login and
 password. I am unable to get to it.


It's Ok from here - would you like  me to email you a copy?



John Wilson
The Wilson Partnership
http://www.wilson.co.uk






Re: Developing Harmony

2005-05-18 Thread usman bashir
 We shouldl design in such a way that , we should get some 
interfacing/bootstrapping issues in C (can be C++ but i think due to its 
direct linking to natives C will be prefered i can present more argo over it 
though ;) )
 and then come back to java again until we feel ctuck some where (though 
what my experiance suggest and i have looked it into the presented projects, 
we can get rid of those concerete walls if any one we have to have face in 
the running of time )
 so what i am saying i m summing it up
 write in java using C.
 java provides us all those features which we need to go to this road , from 
the management, maintianbility and other stuffs (i m not writting SE book 
though ha ha ha) u all knows better.
 so what u think comment ?
 On 5/18/05, Panagiotis Astithas [EMAIL PROTECTED] wrote: 
 
 Ben Laurie wrote:
  Mark Brooks wrote:
 
  C++, just C++, is a recipe for trouble. Most projects that use it
  define a
  subset to make development a less painfull talk. Usually operator
  overloading, templates and virtual inheritance are discarded.
 
  Rodrigo
 
 
 
  Agreed. If the decision is to go with C++, it will need to be a
  subset of C++ for sanity. I still think that, at most, a minimal C
  kernel and the rest in Java is a better option.
 
   As I said before, don't assume we're all Java fans here. I'm far 
 more
   familiar with C++ than I am with Java.
 
  snip
 
 
  
   Ben.
 
 
 
  If you aren't a Java fan, why are you interested in Harmony? Or am I
  misinterpreting what you meant there?
 
 
  Surely I don't have to rate Java as the best language for everything in
  order to be interested in Harmony? I don't think HTTP or SSL are the
  best ways to do things, either, but I've spent an enormous amount of
  time on both of them.
 
  There's all sorts of reasons I'm interested in Harmony.
 
  a) I recently tried Eclipse, and discovered it removed a major source of
  Java irritation (excessive amounts of redundant typing). In fact, I love
  Eclipse. If only I could get it working on FreeBSD :-)
 
 Since the java/eclipse port is working fine, I assume you want to use it
 with another JVM than java/jdk14? If so, and since this is something I
 was contemplating these days, under which JVM would you want to use it?
 Kaffe? GCJ? JC? JikesRVM?
 
 --
 Panagiotis Astithas
 EBS, Electronic Business Systems Ltd.
 18 Evgenidou Street, 115 25, Athens GREECE
 Phone: +30 210 674 7631
 Fax: +30 210 674 7601
 http://www.ebs.gr
 



-- 
Usman Bashir
Certified IBM XML Solution Developer 
Certified UML Developer
Brainbench Certified Internet Perfessional[advance](BCIP)
Brainbench Certified Java Perfessional (BCJP)
Brainbench Certified .NET Perfessional 
Brainbench Ceritified C++ Perfessional (BCCP)
Software engineer IT24
Faculty Member Operation Badar Lahore


Re: Digest list?

2005-05-18 Thread Leo Simons
Send e-mail to [EMAIL PROTECTED] (subject and body don't
really matter) for info on how to set your subscription into digest mode.

Cheers,

Leo

On 18-05-2005 12:29, Simon Cooper [EMAIL PROTECTED] wrote:
 Is there any chance of setting up a digest of the mailing list? I'm interested
 in the project but wont really be contributing for a month or so, and atm im
 having trouble wading through all the emails
 
 Simon Cooper




Re: [arch] VM Candidate : JC @ http://jcvm.sourceforge.net/

2005-05-18 Thread Royce Ausburn
Tom,
Thanks! =)
Doesn't compile on my powerbook, but it doesn't look like it would be  
*too* hard to get working (but I've no real coding experience (CS  
student) and have only read the win32/* code)

Will it?
--Royce
On 18/05/2005, at 4:27 PM, Tom van Dijck wrote:
Hi,
I've had some time today to cleanup and make the VM a standalone  
thing,
since it pretty much was designed to work together with our Game  
Engine.
Full game engine (forgive me my commercial plug on the list) can be  
licensed
as well. It's been used for Red Ninja: End of Honor and several  
other
games.

Please bare in mind that in our Game Engine we use java as a scripting
language, NOT as our main development language, and thus use a very
restricted and small runtime. We do NOT fully implement the J2SE  
API, nor do
we have any intensions to do so.

Anyway, the standalone VM is available on www.mudge.nl/java/
It is distributed under a somewhat modified version of the ZLIB  
license, so
for use as reference or as a base for harmony there should be no  
problem
whatsoever. If there are any problems with the license please let  
me know so
we can negotiate, all I want is to be notified about what happens  
to my code
and who uses it.

Tom van Dijck
mudGE Entertainment


-Original Message-
From: Geir Magnusson Jr. [mailto:[EMAIL PROTECTED]
Sent: Wednesday, May 18, 2005 6:35 AM
To: harmony-dev@incubator.apache.org
Subject: [arch] VM Candidate : JC @ http://jcvm.sourceforge.net/
For those that want meaningful subjects lines, here it is and
for those that are waiting for an architecture discussion -
here it is.
Here's the first of the offered VMs.  (I've privately mailed
Tom van Dijck about mudGE so we can look at something else)
I've downloaded and will begin playing with today.  Archie,
can you give a brief overview of structure?
Can we get some discussion about this from those that know
about about VM architecture?
geir
On May 16, 2005, at 3:22 PM, Archie Cobbs wrote:
As mentioned before, and/all of JC [1] is available and
I'll be happy
to relicense it. All of the code was written by me (though I didn't
invent all of the algorithms of course).
Some bits I can think of that may be useful, roughly ordered from
smaller and more likely to larger and less likely...
  - Splay tree implementation (splay.c)
  - String/UTF-8 functions (string.c, utf.c)
  - ZIP file reader (zip.c)
  - Class file parser (cf_parse.c)
  - Native local and global reference code (native_ref.c)
  - Per-classloader memory allocator (cl_alloc.c)
  - SableVM thin lock algorithm (lock.c)
  - Native library loader (native_lib.c)
  - VM Bootstrap code (vm.c, bootstrap.c)
  - JNI support (jni_invoke.c, jni_native.c)
  - Reflection support (reflect.c)
  - Dynamic invoker (invoke.c)
  - Threading support (thread.c)
  - Heap structure and garbage collector (heap.c, gc_root.c,
gc_scan.c).
  - Bytecode interpreter (interp.c)
  - Class loading, derivation, and resolution (load2.c, derive2.c,
resolve.c)
There's also an ELF object loader and DWARF2 parser if you
need those
:-)
-Archie
[1] http://jcvm.sourceforge.net/

--
Geir Magnusson Jr  +1-203-665-6437
[EMAIL PROTECTED]






Re: Against using Java to implement Java (Was: Java)

2005-05-18 Thread Ben Laurie
David Griffiths wrote:
By having the JIT produce code to inline the object allocation using
its knowledge of the GC internals. I'm not recommending this approach,
just saying that this is how things tend to be done in practice. And
if you want to compete on speed then you're going to have to address
the issue. (This seems to be an area where Java in Java wins if I
understand it right, ie you can have your modularity cake and eat it
too).
Well, inlining stuff sometimes makes things faster (though it sometimes 
doesn't). But I'd be seriously surprised if object allocation was simple 
enough to make it worthwhile.

I do take the point, however, that using dispatch tables without 
embellishment does preclude inlining.

It doesn't take me a huge leap to imagine including a function in the 
dispatch table that would do inlining instead of finding the appropriate 
function, though.

Cheers,
Ben.
--
http://www.apache-ssl.org/ben.html   http://www.thebunker.net/
There is no limit to what a man can do or how far he can go if he
doesn't mind who gets the credit. - Robert Woodruff


Re: Developing Harmony

2005-05-18 Thread Ben Laurie
Paul Richards wrote:
a) I recently tried Eclipse, and discovered it removed a major source of 
Java irritation (excessive amounts of redundant typing). In fact, I love 
Eclipse. If only I could get it working on FreeBSD :-)

The FreeBSD Eclipse port just worked for me.
Just goes to show that ports aren't as reliable as one might hope, then, 
coz it didn't work for me. Repeatedly.

--
http://www.apache-ssl.org/ben.html   http://www.thebunker.net/
There is no limit to what a man can do or how far he can go if he
doesn't mind who gets the credit. - Robert Woodruff


Re: Gosling on Harmony

2005-05-18 Thread theUser BL
At first I want to cite myself:
Sun have given with OpenOffice.org the OpenSource-community a lot.
But with Java, it looks a little bit diffrent.
And the reason is, that Java _is_ already popular. So they see no need to 
make it more popular.
[...]
The idea behind it is clear: Letting a platform closed source or commercial 
(Java by Sun, Windows/.net by Microsoft) and give products which run on 
this platform away for free or OpenSource, to make the platform more 
public.
For this here is a new article:
http://software.newsforge.com/article.pl?sid=05/05/16/1358227from=rss
It seems, that now Sun want to bring more and more parts of OOo2 to the 
Java-platform.

Greatings
theuserbl



Re: Gosling on Harmony

2005-05-18 Thread Sheref Younan
On 5/18/05, theUser BL [EMAIL PROTECTED] wrote:

 
 For this here is a new article:
 http://software.newsforge.com/article.pl?sid=05/05/16/1358227from=rss
 
 It seems, that now Sun want to bring more and more parts of OOo2 to the
 Java-platform.
 
 Greatings
 theuserbl
 

how does this article says that Sun want to bring more and more parts
of OOo2 to the
Java-platform, quite the contrary, this will lead to less dependency
on Sun's JVM and we will start to take other opensource JVM's more
seriously


Re: Against using Java to implement Java (Was: Java)

2005-05-18 Thread Weldon Washburn
On 5/18/05, David Griffiths [EMAIL PROTECTED] wrote:
 I think it's too slow to have the overhead of a function call for
 every object allocation. This is the cost of modularization. I doubt
 any of the mainstream JVMs you are competing with do this.
Yes.  I agree.  A clean interface would have a function call for every
object allocation.  However if the allocation code itself is only a
few lines of assemby, it can be inlined by the JIT.  Using a moving
GC, it is possible to get the allocation sequence down to a bump the
pointer and a compare to see if you have run off the end of the
allocation area.
 
 Cheers,
 
 Dave
 
 On 17 May 2005 18:27:42 -0600, Tom Tromey [EMAIL PROTECTED] wrote:
   David == David Griffiths [EMAIL PROTECTED] writes:
 
  David Maybe a concrete example would help. Let's say you have a GC module
  David written in C. One of it's API calls is to allocate a new object. How
  David is your JIT module going to produce code to use that API? Via a C
  David function pointer?
 
  Yes.
 
  One way is to mandate link- or compile-time pluggability only.  Then
  this can be done by name.  Your JIT just references
  'harmony_allocate_object' in its source and uses this pointer
  in the code it generates.
 
  The other way is to have the JIT call some central function to get a
  pointer to the allocator function (or functions, in libgcj it turned
  out to be useful to have several).  This only needs to be done once,
  at startup.
 
  For folks interested in pluggability, I advise downloading a copy of
  ORP and reading through it.  ORP already solved these problems in a
  fairly reasonable way.
 
  Tom
 



[arch] mudGE VM ( was Re: [arch] VM Candidate : JC @ http://jcvm.sourceforge.net/)

2005-05-18 Thread Geir Magnusson Jr.
On May 18, 2005, at 4:27 AM, Tom van Dijck wrote:
Hi,
I've had some time today to cleanup and make the VM a standalone  
thing,
since it pretty much was designed to work together with our Game  
Engine.
Full game engine (forgive me my commercial plug on the list) can be  
licensed
as well. It's been used for Red Ninja: End of Honor and several  
other
games.

Please bare in mind that in our Game Engine we use java as a scripting
language, NOT as our main development language, and thus use a very
restricted and small runtime. We do NOT fully implement the J2SE  
API, nor do
we have any intensions to do so.

Anyway, the standalone VM is available on www.mudge.nl/java/
It is distributed under a somewhat modified version of the ZLIB  
license, so
for use as reference or as a base for harmony there should be no  
problem
whatsoever. If there are any problems with the license please let  
me know so
we can negotiate, all I want is to be notified about what happens  
to my code
and who uses it.

Tom, thanks for this.  Comments?
geir
Tom van Dijck
mudGE Entertainment


-Original Message-
From: Geir Magnusson Jr. [mailto:[EMAIL PROTECTED]
Sent: Wednesday, May 18, 2005 6:35 AM
To: harmony-dev@incubator.apache.org
Subject: [arch] VM Candidate : JC @ http://jcvm.sourceforge.net/
For those that want meaningful subjects lines, here it is and
for those that are waiting for an architecture discussion -
here it is.
Here's the first of the offered VMs.  (I've privately mailed
Tom van Dijck about mudGE so we can look at something else)
I've downloaded and will begin playing with today.  Archie,
can you give a brief overview of structure?
Can we get some discussion about this from those that know
about about VM architecture?
geir
On May 16, 2005, at 3:22 PM, Archie Cobbs wrote:
As mentioned before, and/all of JC [1] is available and
I'll be happy
to relicense it. All of the code was written by me (though I didn't
invent all of the algorithms of course).
Some bits I can think of that may be useful, roughly ordered from
smaller and more likely to larger and less likely...
  - Splay tree implementation (splay.c)
  - String/UTF-8 functions (string.c, utf.c)
  - ZIP file reader (zip.c)
  - Class file parser (cf_parse.c)
  - Native local and global reference code (native_ref.c)
  - Per-classloader memory allocator (cl_alloc.c)
  - SableVM thin lock algorithm (lock.c)
  - Native library loader (native_lib.c)
  - VM Bootstrap code (vm.c, bootstrap.c)
  - JNI support (jni_invoke.c, jni_native.c)
  - Reflection support (reflect.c)
  - Dynamic invoker (invoke.c)
  - Threading support (thread.c)
  - Heap structure and garbage collector (heap.c, gc_root.c,
gc_scan.c).
  - Bytecode interpreter (interp.c)
  - Class loading, derivation, and resolution (load2.c, derive2.c,
resolve.c)
There's also an ELF object loader and DWARF2 parser if you
need those
:-)
-Archie
[1] http://jcvm.sourceforge.net/

--
Geir Magnusson Jr  +1-203-665-6437
[EMAIL PROTECTED]



--
Geir Magnusson Jr  +1-203-665-6437
[EMAIL PROTECTED]



Re: Developing Harmony

2005-05-18 Thread Mark Brooks
But I guess the language will just depend on who donates a JVM.
- Jónas Tryggvi
Since somebody(s) are in conversation with FSF about Classpath, has anyone 
started a conversation with IBM research about Jikes RVM?  Just a 
prelimininary sort of if we were interested what would be involved sort of 
thing.

I think Geir has said that we are looking at jcvm as well since a list 
member has offered to donate it and place it under the apache license.

_
Express yourself instantly with MSN Messenger! Download today - it's FREE! 
http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/



Re: [arch] mudGE VM ( was Re: [arch] VM Candidate : JC @ http://jcvm.sourceforge.net/)

2005-05-18 Thread Geir Magnusson Jr.
Tom,
I tried to build and got this :
BUILD FAILED
/Users/geir/dev/apache/harmony/mudGE/mudJavaRuntime/build.xml:35:  
Execute failed: java.io.IOException: /Users/geir/dev/apache/harmony/ 
mudGE/mudJavaRuntime/JavaPack.exe: not found

I asked privately, but might as well ask here for the benefit of  
others...

geir
On May 18, 2005, at 8:57 AM, Geir Magnusson Jr. wrote:
On May 18, 2005, at 4:27 AM, Tom van Dijck wrote:

Hi,
I've had some time today to cleanup and make the VM a standalone  
thing,
since it pretty much was designed to work together with our Game  
Engine.
Full game engine (forgive me my commercial plug on the list) can  
be licensed
as well. It's been used for Red Ninja: End of Honor and several  
other
games.

Please bare in mind that in our Game Engine we use java as a  
scripting
language, NOT as our main development language, and thus use a very
restricted and small runtime. We do NOT fully implement the J2SE  
API, nor do
we have any intensions to do so.

Anyway, the standalone VM is available on www.mudge.nl/java/
It is distributed under a somewhat modified version of the ZLIB  
license, so
for use as reference or as a base for harmony there should be no  
problem
whatsoever. If there are any problems with the license please let  
me know so
we can negotiate, all I want is to be notified about what happens  
to my code
and who uses it.


Tom, thanks for this.  Comments?
geir

Tom van Dijck
mudGE Entertainment



-Original Message-
From: Geir Magnusson Jr. [mailto:[EMAIL PROTECTED]
Sent: Wednesday, May 18, 2005 6:35 AM
To: harmony-dev@incubator.apache.org
Subject: [arch] VM Candidate : JC @ http://jcvm.sourceforge.net/
For those that want meaningful subjects lines, here it is and
for those that are waiting for an architecture discussion -
here it is.
Here's the first of the offered VMs.  (I've privately mailed
Tom van Dijck about mudGE so we can look at something else)
I've downloaded and will begin playing with today.  Archie,
can you give a brief overview of structure?
Can we get some discussion about this from those that know
about about VM architecture?
geir
On May 16, 2005, at 3:22 PM, Archie Cobbs wrote:

As mentioned before, and/all of JC [1] is available and

I'll be happy

to relicense it. All of the code was written by me (though I didn't
invent all of the algorithms of course).
Some bits I can think of that may be useful, roughly ordered from
smaller and more likely to larger and less likely...
  - Splay tree implementation (splay.c)
  - String/UTF-8 functions (string.c, utf.c)
  - ZIP file reader (zip.c)
  - Class file parser (cf_parse.c)
  - Native local and global reference code (native_ref.c)
  - Per-classloader memory allocator (cl_alloc.c)
  - SableVM thin lock algorithm (lock.c)
  - Native library loader (native_lib.c)
  - VM Bootstrap code (vm.c, bootstrap.c)
  - JNI support (jni_invoke.c, jni_native.c)
  - Reflection support (reflect.c)
  - Dynamic invoker (invoke.c)
  - Threading support (thread.c)
  - Heap structure and garbage collector (heap.c, gc_root.c,
gc_scan.c).
  - Bytecode interpreter (interp.c)
  - Class loading, derivation, and resolution (load2.c, derive2.c,
resolve.c)
There's also an ELF object loader and DWARF2 parser if you

need those

:-)
-Archie
[1] http://jcvm.sourceforge.net/

--
Geir Magnusson Jr  +1-203-665-6437
[EMAIL PROTECTED]




--
Geir Magnusson Jr  +1-203-665-6437
[EMAIL PROTECTED]

--
Geir Magnusson Jr  +1-203-665-6437
[EMAIL PROTECTED]



Re: Intro to Classpath

2005-05-18 Thread Sven de Marothy
On Wed, 2005-05-18 at 13:15 +0500, usman bashir wrote:
 And i ll add one thing more!
  when u get it up, you will see many more alternative implementations will 
 be sumbited to harmony, so let me dream for that :) and it is what we called 
 power of OSS.
  i mean actually in future we can then replace the implementation of such 
 API's which are based on Service Provider interfaces could be avialable as 
 alternative bases.

Oh, absolutely!
We're already doing this to a small extent already in Classpath; 
for java.nio.charset, we have a set of character set converters written
in Java, and another provider based on the libiconv library.

/Sven



Re: Against using Java to implement Java (Was: Java)

2005-05-18 Thread Steve Blackburn
This subject has been covered in detail at least twice already.
There is no need for any function call on the fast path of the 
allocation sequence.  In a Java in Java VM the allocation sequence is 
inlined into the user code.  This has considerable advantages over a 
few lines of assembler.  Aside from the obvious advantage of not having 
to express your allocator in assembler, using Java also compiles to 
better code since the code can be optimized in context (register 
allocation, constant folding etc), producing much better code than hand 
crafted assembler.

However this is small fry compared to the importance of compiling write 
barriers correctly (barriers are used by most high performance GCs and 
are executed far more frequently than allocations).  The same argument 
applies though.  The barrier expressed in Java is inlined insitu, and 
the optimizing compiler is able to optimize in context.

Modularization does not imply any of this.
--Steve
Weldon Washburn wrote:
On 5/18/05, David Griffiths [EMAIL PROTECTED] wrote:
 

I think it's too slow to have the overhead of a function call for
every object allocation. This is the cost of modularization. I doubt
any of the mainstream JVMs you are competing with do this.
   

Yes.  I agree.  A clean interface would have a function call for every
object allocation.  However if the allocation code itself is only a
few lines of assemby, it can be inlined by the JIT.  Using a moving
GC, it is possible to get the allocation sequence down to a bump the
pointer and a compare to see if you have run off the end of the
allocation area.
 



Re: Gosling on Harmony

2005-05-18 Thread Davanum Srinivas
Hi Danese,

Since the VOTE on the proposal has closed with a positive result. I'd
love to hear with your INTEL hat on :)

-- dims

On 5/18/05, Danese Cooper [EMAIL PROTECTED] wrote:
 Much as I admire James, I have to say that the responses from
 enterprise developers of which he presumably speaks were carefully
 choreographed by the organizers of JavaONE (who are of course Sun
 employees).  Its the old story...you can't ask a question without
 influencing the answer.  When Sun asks they often hear what they want
 to hear.  When Tim O'Reilly asked the same question a month later at
 OSCON he got the opposite answer (of course).  I spent 6 years at Sun
 asking the question every chance I got and probably because of who I
 am I heard clear support for a *compatible* open J2SE...which is what
 Harmony is trying to be (and why I'm a supporter) :-)...
 
 In my experience, James is a fair-minded guy and I believe that a
 strong, ethical and hard-working Harmony community is bound to
 impress him over time.
 
 Danese (still speaking on my own and neither on behalf of my former
 nor my current employer)
 
 On May 17, 2005, at 4:11 PM, Ahmed Saad wrote:
 
  The clear need that Magnusson cites is anything but clear to
  Gosling, who
  says Sun has received negative response from the enterprise
  development
  community regarding the idea of open-source Java.
 
  welcome to the matrix, guys ;)
 
  On 5/17/05, Tomer Barletz [EMAIL PROTECTED] wrote:
 
 
  http://www.devx.com/Java/Article/28125?trk=DXRSS_JAVA
 
  Looks like Doc java is pretty upset...
 
 
 
 


-- 
Davanum Srinivas - http://webservices.apache.org/~dims/


Re: Against using Java to implement Java (Was: Java)

2005-05-18 Thread David Griffiths
I know, but despite the subject line my original point was about the
problem of modularizing a VM written in C.

Cheers,

Dave

On 5/18/05, Steve Blackburn [EMAIL PROTECTED] wrote:
 This subject has been covered in detail at least twice already.
 
 There is no need for any function call on the fast path of the
 allocation sequence.  In a Java in Java VM the allocation sequence is
 inlined into the user code.  This has considerable advantages over a
 few lines of assembler.  Aside from the obvious advantage of not having
 to express your allocator in assembler, using Java also compiles to
 better code since the code can be optimized in context (register
 allocation, constant folding etc), producing much better code than hand
 crafted assembler.
 
 However this is small fry compared to the importance of compiling write
 barriers correctly (barriers are used by most high performance GCs and
 are executed far more frequently than allocations).  The same argument
 applies though.  The barrier expressed in Java is inlined insitu, and
 the optimizing compiler is able to optimize in context.
 
 Modularization does not imply any of this.
 
 --Steve
 
 
 Weldon Washburn wrote:
 
 On 5/18/05, David Griffiths [EMAIL PROTECTED] wrote:
 
 
 I think it's too slow to have the overhead of a function call for
 every object allocation. This is the cost of modularization. I doubt
 any of the mainstream JVMs you are competing with do this.
 
 
 Yes.  I agree.  A clean interface would have a function call for every
 object allocation.  However if the allocation code itself is only a
 few lines of assemby, it can be inlined by the JIT.  Using a moving
 GC, it is possible to get the allocation sequence down to a bump the
 pointer and a compare to see if you have run off the end of the
 allocation area.
 
 



Fwd: [VOTE RESULT] Apache Harmony (was Re: [VOTE]: On PROPOSAL : Apache Harmony - J2SE 5 Project)

2005-05-18 Thread Davanum Srinivas
FYI

-- Forwarded message --
From: Geir Magnusson Jr. [EMAIL PROTECTED]
Date: May 18, 2005 8:44 AM
Subject: [VOTE RESULT] Apache Harmony (was Re: [VOTE]: On  PROPOSAL :
Apache Harmony - J2SE 5 Project)
To: general@incubator.apache.org


Here are the results from the voting on Apache Harmony.  The proposal
passes.

Note that I screwed up and started voting on the Proposal thread,
and many followed suit.

With the intention of recognizing the intent of the voters, all are
included here.  I hope I got everyone.

+1 for Vote thread
==
Noel Bergman (binding)
Alex Karasulu
Davanum Srinivas (binding)
Geir Magnusson (binding)
Paul Hammant (binding)*

* provided copyright and trademark issues appropriately considered

+0 from Vote thread
===
Niclas Hedhman

-1 from Vote thread
===
none

+1 from Proposal thread
===
Danese Cooper
Erik Hatcher (binding)
Roy Fielding (binding)
Cliff Schmidt (binding)
Sam Ruby (binding)
Bruce Snyder
Ted Leung (binding)
Graham Legett
Clinton Begin
Steven Noels (binding)
Jim Jagielski (binding)


We already have the mail list and wiki resources.  I'll be getting
the rest (svn, etc) done ASAP.

geir

On May 6, 2005, at 7:18 PM, Noel J. Bergman wrote:

 +1

 --- Noel


 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]



--
Geir Magnusson Jr  +1-203-665-6437
[EMAIL PROTECTED]



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



-- 
Davanum Srinivas - http://webservices.apache.org/~dims/


Re: Developing Harmony

2005-05-18 Thread Stefano Mazzocchi
Ozgur Akan wrote:
JVM in Java will be the slower then Sun`s JVM. C or C++ is a better choice.
You have to undertand that written in Java does *NOT* equate 
necessarely as will be run as interpreted bytecode.

--
Stefano.


Re: Developing Harmony

2005-05-18 Thread Stefano Mazzocchi
Ben Laurie wrote:
Stefano Mazzocchi wrote:
Bryce Leo wrote:
Now don't go too crazy for my suggesting this, but why not pascal? If
we're considering C as it is this really isn't a terrible suggestion.
I know it's fallen out of favor with most of you guys but it compiles
quickly and supports a good number of operating systems and types of
hardware, like arm and AMD64 (referencing Free Pascal that is). I'm
betting that you guys won't like it but I think the option should be
listed.
Opinions?

Can we stop this language madness thing, please?
We are *NOT* going to be writing a JVM from scratch, we are open for 
donations.
Says who? If people here want to write a VM, are you going to stop them? 
I hope you wouldn't even try.
I'll discuss that when it happens ;-)
--
Stefano.


Re: Against using Java to implement Java (Was: Java)

2005-05-18 Thread Tom Tromey
 Steve == Steve Blackburn [EMAIL PROTECTED] writes:

Steve There is no need for any function call on the fast path of the
Steve allocation sequence.
[ ... ]

Steve However this is small fry compared to the importance of compiling
Steve write barriers correctly (barriers are used by most high performance
Steve GCs and are executed far more frequently than allocations).
[ ... ]

Steve Modularization does not imply any of this.

I wanted to mention a few things on what modularity is not.

Just because we have some tunable knob, it does not imply that we must
support all possible settings of that knob.  And, likewise, we are not
compelled to support every possible combination of settings of all the
knobs.  Finally, modularity does not imply that all aspects of the VM
will be selectable at runtime.  It is completely reasonable to require
compile-time choices.

So, in this case, it isn't as if we would have to design an allocation
interface that allows all possible choices.  It can merely allow the
subset we know to be immediately usable.

Tom


Re: [arch] VM Candidate : JNode

2005-05-18 Thread Thorbjørn Ravn Andersen
[EMAIL PROTECTED] wrote:
Those scores seems to be produced by HotSpot Client VM.
If HotSpot Server VM was used, the score of Sun J2SDK 1.4.2
will be higher than 7500.
 

I have not verified the numbers myself, since I do not currently have a 
machine where it runs out of the box (network drivers are quite limited).

(*1) TYA: a JIT compiler, http://sax.sax.de/~adlibit
 

However, a generic JIT-plugin framework would be quite interesting.
--
 Thorbjørn


Re: Developing Harmony

2005-05-18 Thread Tom Tromey
 Ben == Ben Laurie [EMAIL PROTECTED] writes:

Ben This has to be a VM that produces native code, right?

Yes.

Ben In any case, here I am with a platform that currently has no VM, but
Ben does have a C compiler. What do I do?

One answer is, cross-build the VM from another machine that it does
work on.  This is one way people bring up GCC on a new machine as
well.

Tom


Re: Harmony Project Structure Attempt

2005-05-18 Thread Thorbjørn Ravn Andersen
Steve Blackburn wrote:
Over time we learned certain idioms which on one hand meant we tended 
to get reasonable performance first shot, but on the other may have 
undermined the natural Java style we started with.

Do you have a summary of this available somewhere on the net? 

If I understand you correctly, you have found that you need to code in a 
special way to get the best code out of it.  Is this generically for 
java or just the compiler you used?

--
 Thorbjørn


Re: Against using Java to implement Java (Was: Java)

2005-05-18 Thread Davanum Srinivas
Weldon,

One way to handle this is to write something up on the wiki
(http://wiki.apache.org/harmony/) and ask people to comment and then
incorporate the comments back. So that we have a record of the
discussion and the conclusions. Yes, we need to stick to harmony-dev
for now.

Thanks,
dims

On 5/18/05, Weldon Washburn [EMAIL PROTECTED] wrote:
 On 17 May 2005 18:27:42 -0600, Tom Tromey [EMAIL PROTECTED] wrote:
   David == David Griffiths [EMAIL PROTECTED] writes:
 
  David Maybe a concrete example would help. Let's say you have a GC module
  David written in C. One of it's API calls is to allocate a new object. How
  David is your JIT module going to produce code to use that API? Via a C
  David function pointer?
 
  Yes.
 
  One way is to mandate link- or compile-time pluggability only.  Then
  this can be done by name.  Your JIT just references
  'harmony_allocate_object' in its source and uses this pointer
  in the code it generates.
 
  The other way is to have the JIT call some central function to get a
  pointer to the allocator function (or functions, in libgcj it turned
  out to be useful to have several).  This only needs to be done once,
  at startup.
 
  For folks interested in pluggability, I advise downloading a copy of
  ORP and reading through it.  ORP already solved these problems in a
  fairly reasonable way.
 
 Thanks.  I am more than willing to respond to questions about ORP.
 Since ORP was last posted to open source, I have done some additional
 thinking about interfaces as well as JVM and .NET design in general.
 I really look forward to discussing these ideas.  It would be great if
 we can quickly get to the point where we can discuss interface
 details.  For example, I would like to start a detailed discussion on
 JIT and GC interface header files.  Should we start this on the
 general harmony-dev list?
 Weldon
 
 
  Tom
 
 


-- 
Davanum Srinivas - http://webservices.apache.org/~dims/


Re: Gosling on Harmony

2005-05-18 Thread Stefano Mazzocchi
Danese Cooper wrote:
Yup in a nutshell.  I'd like to see James keynote at ApacheCon one of  
these years soon :-)
What *I*'d like to see is *our* keynote at JavaOne :-)
--
Stefano, who was part of a javaone keynote already once and would not 
mind doing it again :-)



Re: [VOTE RESULT] Apache Harmony (was Re: [VOTE]: On PROPOSAL : Apache Harmony - J2SE 5 Project)

2005-05-18 Thread usman bashir
congratulations geir and all and now we have to prove our selves as well !!!

On 5/18/05, Davanum Srinivas [EMAIL PROTECTED] wrote: 
 
 FYI
 
 -- Forwarded message --
 From: Geir Magnusson Jr. [EMAIL PROTECTED]
 Date: May 18, 2005 8:44 AM
 Subject: [VOTE RESULT] Apache Harmony (was Re: [VOTE]: On  PROPOSAL :
 Apache Harmony - J2SE 5 Project)
 To: general@incubator.apache.org
 
 Here are the results from the voting on Apache Harmony. The proposal
 passes.
 
 Note that I screwed up and started voting on the Proposal thread,
 and many followed suit.
 
 With the intention of recognizing the intent of the voters, all are
 included here. I hope I got everyone.
 
 +1 for Vote thread
 ==
 Noel Bergman (binding)
 Alex Karasulu
 Davanum Srinivas (binding)
 Geir Magnusson (binding)
 Paul Hammant (binding)*
 
 * provided copyright and trademark issues appropriately considered
 
 +0 from Vote thread
 ===
 Niclas Hedhman
 
 -1 from Vote thread
 ===
 none
 
 +1 from Proposal thread
 ===
 Danese Cooper
 Erik Hatcher (binding)
 Roy Fielding (binding)
 Cliff Schmidt (binding)
 Sam Ruby (binding)
 Bruce Snyder
 Ted Leung (binding)
 Graham Legett
 Clinton Begin
 Steven Noels (binding)
 Jim Jagielski (binding)
 
 We already have the mail list and wiki resources. I'll be getting
 the rest (svn, etc) done ASAP.
 
 geir
 
 On May 6, 2005, at 7:18 PM, Noel J. Bergman wrote:
 
  +1
 
  --- Noel
 
 
  -
  To unsubscribe, e-mail: [EMAIL PROTECTED]
  For additional commands, e-mail: [EMAIL PROTECTED]
 
 
 
 --
 Geir Magnusson Jr +1-203-665-6437
 [EMAIL PROTECTED]
 
 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
 
 --
 Davanum Srinivas - http://webservices.apache.org/~dims/
 



-- 
Usman Bashir
Certified IBM XML Solution Developer 
Certified UML Developer
Brainbench Certified Internet Perfessional[advance](BCIP)
Brainbench Certified Java Perfessional (BCJP)
Brainbench Certified .NET Perfessional 
Brainbench Ceritified C++ Perfessional (BCCP)
Software engineer IT24
Faculty Member Operation Badar Lahore


Re: Developing Harmony

2005-05-18 Thread Ben Laurie
Tom Tromey wrote:
Ben == Ben Laurie [EMAIL PROTECTED] writes:

Ben This has to be a VM that produces native code, right?
Yes.
Ben In any case, here I am with a platform that currently has no VM, but
Ben does have a C compiler. What do I do?
One answer is, cross-build the VM from another machine that it does
work on.  This is one way people bring up GCC on a new machine as
well.
I'm going to stop beating on this dead horse: you'll be happy if we can 
implement the VM in Java. I'll be happy if we can implement it in C.

We'll both be happy if we can implement it in either.
--
http://www.apache-ssl.org/ben.html   http://www.thebunker.net/
There is no limit to what a man can do or how far he can go if he
doesn't mind who gets the credit. - Robert Woodruff


Re: [VOTE RESULT] Apache Harmony (was Re: [VOTE]: On PROPOSAL : Apache Harmony - J2SE 5 Project)

2005-05-18 Thread Juan Leyva Delgado
Good news. Congratulations
- Original Message - 
From: Davanum Srinivas [EMAIL PROTECTED]
To: harmony-dev@incubator.apache.org
Sent: Wednesday, May 18, 2005 4:21 PM
Subject: Fwd: [VOTE RESULT] Apache Harmony (was Re: [VOTE]: On  PROPOSAL : 
Apache Harmony - J2SE 5 Project)

FYI
-- Forwarded message --
From: Geir Magnusson Jr. [EMAIL PROTECTED]
Date: May 18, 2005 8:44 AM
Subject: [VOTE RESULT] Apache Harmony (was Re: [VOTE]: On  PROPOSAL :
Apache Harmony - J2SE 5 Project)
To: general@incubator.apache.org
Here are the results from the voting on Apache Harmony.  The proposal
passes.
Note that I screwed up and started voting on the Proposal thread,
and many followed suit.
With the intention of recognizing the intent of the voters, all are
included here.  I hope I got everyone.
+1 for Vote thread
==
Noel Bergman (binding)
Alex Karasulu
Davanum Srinivas (binding)
Geir Magnusson (binding)
Paul Hammant (binding)*
* provided copyright and trademark issues appropriately considered
+0 from Vote thread
===
Niclas Hedhman
-1 from Vote thread
===
none
+1 from Proposal thread
===
Danese Cooper
Erik Hatcher (binding)
Roy Fielding (binding)
Cliff Schmidt (binding)
Sam Ruby (binding)
Bruce Snyder
Ted Leung (binding)
Graham Legett
Clinton Begin
Steven Noels (binding)
Jim Jagielski (binding)
We already have the mail list and wiki resources.  I'll be getting
the rest (svn, etc) done ASAP.
geir
On May 6, 2005, at 7:18 PM, Noel J. Bergman wrote:
+1
--- Noel
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

--
Geir Magnusson Jr  +1-203-665-6437
[EMAIL PROTECTED]

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

--
Davanum Srinivas - http://webservices.apache.org/~dims/


Re: Gosling on Harmony

2005-05-18 Thread Danese Cooper
LOL, I'm not exactly in a position to influence that anymore,  
Stefano :-)

What say you, Simon Phipps?
Danese
On May 18, 2005, at 12:54 PM, Stefano Mazzocchi wrote:
Danese Cooper wrote:

Yup in a nutshell.  I'd like to see James keynote at ApacheCon one  
of  these years soon :-)

What *I*'d like to see is *our* keynote at JavaOne :-)
--
Stefano, who was part of a javaone keynote already once and would  
not mind doing it again :-)





Re: Gosling on Harmony

2005-05-18 Thread Dalibor Topic
Stefano Mazzocchi wrote:
Danese Cooper wrote:
Yup in a nutshell.  I'd like to see James keynote at ApacheCon one of  
these years soon :-)

What *I*'d like to see is *our* keynote at JavaOne :-)
What I'd like to see is a keynote where someone covers M.A.R.R.S. 'Pump 
Up The Volume' in true Atari Teenage Riot style with distorted mobile 
phones, Jonathan Schwartz does the vocals and Steve Ballmer does the 
dancing.

cheers,
dalibor topic


Re: [arch] VM Candidate : JNode

2005-05-18 Thread Geir Magnusson Jr.
Can the VM be tweaked to work on standard OSs?
On May 18, 2005, at 7:33 AM, Thorbjørn Ravn Andersen wrote:
I would like to mention the JNode VM.  It is written in Java with a  
platform specific nanokernel (currently a stable x86 and a  
development X86_64) with the direct aim of running a full Java  
enviroment on the bare metal.

The performance figures show that the JIT gives performance higher  
than 50% of the 1.4.2 hotspot.

http://jnode.sourceforge.net/portal/node/51
It is currently rather hungry for memory and has a suboptimal GC.   
A patched GNU Classpath is used.

--
 Thorbjørn


--
Geir Magnusson Jr  +1-203-665-6437
[EMAIL PROTECTED]



Re: Gosling on Harmony

2005-05-18 Thread Geir Magnusson Jr.
On May 18, 2005, at 10:54 AM, Simon Phipps wrote:
I completely agree with this. I regret that James showed how out of  
touch he was with real open source practice (crazy answer about put- 
backs), but my interactions with him (most recently at Cafe Brasil  
where he also met with Dalibor and Geir) suggest that he's  
interested in code alone, not in either Sun of FOSS politics, and  
that positive results will get positive support.

Lets make this a goal too :)  Lets get James as a Harmony fan :)
geir
--
Geir Magnusson Jr  +1-203-665-6437
[EMAIL PROTECTED]



Re: Against using Java to implement Java (Was: Java)

2005-05-18 Thread Geir Magnusson Jr.
Or post to the dev list first so everyone can see it, and then take a  
summary to the wiki.

On May 18, 2005, at 2:43 PM, Davanum Srinivas wrote:
Weldon,
One way to handle this is to write something up on the wiki
(http://wiki.apache.org/harmony/) and ask people to comment and then
incorporate the comments back. So that we have a record of the
discussion and the conclusions. Yes, we need to stick to harmony-dev
for now.
Thanks,
dims
On 5/18/05, Weldon Washburn [EMAIL PROTECTED] wrote:
On 17 May 2005 18:27:42 -0600, Tom Tromey [EMAIL PROTECTED] wrote:
David == David Griffiths [EMAIL PROTECTED] writes:
David Maybe a concrete example would help. Let's say you have a  
GC module
David written in C. One of it's API calls is to allocate a new  
object. How
David is your JIT module going to produce code to use that API?  
Via a C
David function pointer?

Yes.
One way is to mandate link- or compile-time pluggability only.  Then
this can be done by name.  Your JIT just references
'harmony_allocate_object' in its source and uses this pointer
in the code it generates.
The other way is to have the JIT call some central function to get a
pointer to the allocator function (or functions, in libgcj it turned
out to be useful to have several).  This only needs to be done once,
at startup.
For folks interested in pluggability, I advise downloading a copy of
ORP and reading through it.  ORP already solved these problems in a
fairly reasonable way.
Thanks.  I am more than willing to respond to questions about ORP.
Since ORP was last posted to open source, I have done some additional
thinking about interfaces as well as JVM and .NET design in general.
I really look forward to discussing these ideas.  It would be  
great if
we can quickly get to the point where we can discuss interface
details.  For example, I would like to start a detailed discussion on
JIT and GC interface header files.  Should we start this on the
general harmony-dev list?
Weldon


Tom



--
Davanum Srinivas - http://webservices.apache.org/~dims/

--
Geir Magnusson Jr  +1-203-665-6437
[EMAIL PROTECTED]



Re: Against using Java to implement Java (Was: Java)

2005-05-18 Thread Weldon Washburn
On 5/18/05, Geir Magnusson Jr. [EMAIL PROTECTED] wrote:
 
 On May 18, 2005, at 9:36 AM, Steve Blackburn wrote:
 
  This subject has been covered in detail at least twice already.
 
  There is no need for any function call on the fast path of the
  allocation sequence.  In a Java in Java VM the allocation sequence
  is inlined into the user code.  This has considerable advantages
  over a few lines of assembler.  Aside from the obvious advantage
  of not having to express your allocator in assembler, using Java
  also compiles to better code since the code can be optimized in
  context (register allocation, constant folding etc), producing much
  better code than hand crafted assembler.
 
  However this is small fry compared to the importance of compiling
  write barriers correctly (barriers are used by most high
  performance GCs and are executed far more frequently than
  allocations).  The same argument applies though.  The barrier
  expressed in Java is inlined insitu, and the optimizing compiler is
  able to optimize in context.
 
  Modularization does not imply any of this.
 
 I assume you mean that Modularization is orthogonal to this - that
 they are independent aspects?

Modularization always interacts with performance.  I believe empirical
evidence suggests that the performance impact of splitting out the JIT
and GC as separate modules is in the noise.  I suspect the internal
JVM support for java.lang.Thread, java.lang.Object can also be split
off as a separate module with very little performance impact.  It
might even be possible to include java.util.concurrent support in the
same threads module.

Elaborating on a previous comment about inlining allocation/write
barrier sequences.  First design step: the GC team hand optimizes an
assembly sequence while making sure the functionality is absolutely
correct.  Second step: the JIT team blindly inlines the GC team's
assembly code and starts doing performance analysis.  Third step: the
JIT team integrates the inline sequence(s) into the IR so that all the
optimizations can be performed.  Perhaps these steps are the same for
both a JVM written in Java as well as C/C++.

I am curious if a JVM written in Java must break type-safety.   Does
anyone know? For example, the new bytecode will need to manipulate
(gasp!) raw C pointers.  In specific, Java code will need to
scribble on free memory to slice off X untyped bytes and return a
raw pointer to the base of chunk of memory.  Then the java code will
need to use the raw pointer to install stuff like a vtable pointer. 
Once the object is setup, the Java code can revert to running code
that can actually be verified.  Also does anyone know the current
state of research on formally proving a GC written in Java is
type-safe?
 
 
 geir
 
 
  --Steve
 
 
  Weldon Washburn wrote:
 
 
  On 5/18/05, David Griffiths [EMAIL PROTECTED] wrote:
 
 
  I think it's too slow to have the overhead of a function call for
  every object allocation. This is the cost of modularization. I doubt
  any of the mainstream JVMs you are competing with do this.
 
 
  Yes.  I agree.  A clean interface would have a function call for
  every
  object allocation.  However if the allocation code itself is only a
  few lines of assemby, it can be inlined by the JIT.  Using a moving
  GC, it is possible to get the allocation sequence down to a bump the
  pointer and a compare to see if you have run off the end of the
  allocation area.
 
 
 
 
 
 --
 Geir Magnusson Jr  +1-203-665-6437
 [EMAIL PROTECTED]
 
 



Re: Against using Java to implement Java (Was: Java)

2005-05-18 Thread Weldon Washburn
Steve,

Very interesting.  Please point me to the web pages that show
SpecJAppServer/JBB/JVM... numbers for Jikes.

I see some mention of magic types.   Does this work around the java
verifier by coercing a reference pointer into a Java int and
vice-versa?  This could be done by calling a non-verifiable chunk of
code written in Java.  Something like Object int2ref(int x); and
int ref2obj(Object z).  The net result sort of C++-izes java
without having to modify the language.

If we are going to entertain writing most of the JVM in a type-safe
language, we should also consider the proposed ECMA C++/CLI.  From
what I understand, it standardizes a form of type-safe C++.  It has
the promise of keeping both the Java and C camps happy.

Regarding the inlining of assembly in the JIT.  You point out that
this code can be written in Java then fed to the JIT.  Do you see any
reason why this code can not be written in C/C++, C#, etc?



On 5/18/05, Steve Blackburn [EMAIL PROTECTED] wrote:
 Hi Weldon,
 
 It seems we have similar experiences with modularity, you in ORP, me in
 Jikes RVM and MMTk.
 
 Elaborating on a previous comment about inlining allocation/write
 barrier sequences.  First design step: the GC team hand optimizes an
 assembly sequence while making sure the functionality is absolutely
 correct.  Second step: the JIT team blindly inlines the GC team's
 assembly code and starts doing performance analysis.  Third step: the
 JIT team integrates the inline sequence(s) into the IR so that all the
 optimizations can be performed.  Perhaps these steps are the same for
 both a JVM written in Java as well as C/C++.
 
 
 No.  It is as I stated in the post to which you were responding.  In
 MMTk, we express the barriers and allocation sequences in Java and then
 the opt compiler inlines them and optimizes them.  The first Jikes RVM
 collectors used assembler for the barriers, but we transitioned to
 expressing them in Java a long time ago.  This gives us much greater
 expressibility on the GC side of the fence, greater portability (MMTk is
 totally architecture neutral),  and better performance because it
 presents better opportunities for optimization to the compiler (constant
 folding etc etc).
 
 I am curious if a JVM written in Java must break type-safety.   Does
 anyone know? For example, the new bytecode will need to manipulate
 (gasp!) raw C pointers.  In specific, Java code will need to
 scribble on free memory to slice off X untyped bytes and return a
 raw pointer to the base of chunk of memory.  Then the java code will
 need to use the raw pointer to install stuff like a vtable pointer.
 Once the object is setup, the Java code can revert to running code
 that can actually be verified.  Also does anyone know the current
 state of research on formally proving a GC written in Java is
 type-safe?
 
 
 Yes.  We put a lot of work into making MMTk type safe.  Type safety is
 key.  Perry Cheng was the person who initially did all the hard work on
 this.
 
 We have introduced new magic types for Address (think void*), Word
 (think 32 or 64 bit unsigned values), ObjectReference (abstract notion
 of a refernce to an object, could in principle be a handle, for Jikes
 RVM it is an Address), etc etc.  Each of these looks like a heavyweight
 regular Java type, but our compiler knows about them and folds them
 into primitives.  The fact that we *do* preserve type safety is what
 allows the opt compiler to be as agressive as it is in compiling across
 barriers and allocations.  I've provided pointers to this previously.
 Jnode has been using these magic types for a while now (for the same
 reasons).
 
 http://jikesrvm.sourceforge.net/api/org/vmmagic/unboxed/package-summary.html
 
 I would like (not now, I need to run) to discuss different notions of
 modularity and modular design.  We have approached it very differently
 to you and I think it would be profitable for us all to share our thoughts.
 
 Cheers,
 
 --Steve