Re: The Classpath VM interface. (Please read)

2005-06-07 Thread Peter Donald

Sven de Marothy wrote:

If you have downloaded Harmony, which intends to be a full JDK including 
a VM and class library, why would you want to be able to use that with the 
class library from a different JDK? 
 


In [arch] VM Interface on 6/06/2005 10:32 AM I wrote

I assume that if the Harmony JVM gets half as good as is hoped
there will be companys who want to adopt the JVM but continue
to use Suns class library so that differences in libraries don't hurt
their customers.

Disregarding the illegality of distributing such a combo, 


I am not sure why it would be illegal if someone like IBM were to use the
Harmony JVM but use Suns class library. Actually I think that this use case
is one of the aims of the project.

there is no good 
practical reason for wanting that either.
 


I think we will have to agree to disagree about that point.

--
Cheers,

Peter Donald
The first duty of a revolutionary is to get
 away with it. - Abbie Hoffman


Re: [arch] VM Interface

2005-06-07 Thread Geir Magnusson Jr.


On Jun 6, 2005, at 10:03 AM, Ahmed Saad wrote:


On 6/6/05, Peter Donald [EMAIL PROTECTED] wrote:


The reason being that their customers do not
want to be exposed to differences between rt.jar and GNU Classpath.



oh well aren't both implemented according to a well-designed exported
API. So how there would be differences that would hurt the clients of
this API (assuming that the GUN Classpath got completed and they are
both might be retrofitted to be easily installed in this modular
architecture even if they depend on some native libraries).


The differences come from implementation of that API.  Conceivably :)  
there are bugs in implementations of class libraries.


(Having one that we all share would be an excellent start to solving  
that problem.)


geir




regards,
ahmed




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




Re: [arch] VM Interface

2005-06-07 Thread Geir Magnusson Jr.


On Jun 6, 2005, at 9:11 AM, Archie Cobbs wrote:


Peter Donald wrote:

I assume that if the Harmony JVM gets half as good as is hoped  
there will be companys who want to adopt the JVM but continue to  
use Suns class library so that differences in libraries don't hurt  
their customers.




If that is a goal of Harmony then we've just made things a lot harder.

First of all, Sun's class library - VM interface is proprietary and
unpublished. How would people become experts in it without studying
the Sun source code, with all the potential legal problems that  
entails?


Because it's possible that Sun finds this aspect of Harmony valuable  
overall, and contributes information to help shape this.




Secondly, you can no longer use Classpath as is, so Harmony will have
to create a new fork of the Classpath code. Lots of work, zero forward
progress.


No, we won't fork GNU Classpath.  I don't understand why you believe  
we have to do this.




Thirdly, what's to stop Sun from changing things around every release?
Their API is not standardized in any way. It involves sun.*  
classes, etc.


Nothing.



On the other hand, if down the road the various interested parties
got together and said, Let's all agree on a common class library/JVM
API then certainly Harmony should be involved and supportive. However
somehow to me that seems about as likely as Toyota, Ford, and GM all
agreeing to standardize the connection between engines and gearboxes.


That agreement is one of the things we're trying to do here,  
remember.  I don't know if the analogy is right though (although  
there is a bit of standardization in the auto industry).  Maybe the  
computer industry would be a better example?  :)


geir




-Archie

__ 

Archie Cobbs  *CTO, Awarix*  http:// 
www.awarix.com





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




Re: The Classpath VM interface. (Please read)

2005-06-07 Thread Geir Magnusson Jr.


On Jun 6, 2005, at 2:29 PM, Sven de Marothy wrote:


Hi,
Ok, the amount of confusion going on is just amazing.
I'll try to recapitulate what the actual situation and actual issues
are.

It is of course impossible to implement a java class library  
completely

independently of the Virtual Machine. The VM must be able to provide
certain basic, core things.

Sun has not documented how their VM works with rt.jar. Therefore it is
not possible to develop a Sun class library-compatible VM in a
clean-room fashion.


Not *now*, but Harmony has the potential to be a long-running, far- 
reaching project, and our interest from the beginning is to have Sun  
involved.  So it's not unthinkable to assume that Sun might be  
interested in participating at some point in the future.


That doesn't mean we'll hold things up waiting, but we also can't  
assume that they'll never be interested.


[SNIP]



The only real issues raised so far (that I've seen), are the  
following:


1) GNU Classpath's VM interface doesn't include things necessary for
J2SE 5.

(My take on it: There is no VM which needs them yet.)


But you absolutely know we will.



2) GNU Classpath's VM interface uses language protection such as
package-privacy to hide the VM classes.

(My take on it: Why is that a problem?)


You are misrepresenting the problem.  it's not that it's language  
protection, but that you extend java.lang namespace and are hoping  
that you don't get tromped by the spec at some point in the future.   
(Nor is it clear that it's good citizenship working in that namespace  
as well...)




3) If Harmony commits itself to using the Classpath VM interface, it
won't be able to use other class libraries.

(My take on it: The alternative being one with an undocumented
proprietary VM interface, and .. well, what else?)


We want to be able to choose class library implementations.  We want  
to work with GNU Classpath now, and work out an independent interface  
that starts w/ GNU CLasspath, is supported [enthusiastically] by GNU  
Classpath, and one that we can evolve together with GNU Classpath.   
But just as GNU Classpath thought it wise to keep the door open for  
multiple VM implementations, we are trying to do the same for mutiple  
class library implementations.


geir




/Sven

[1] http://www.gnu.org/software/classpath/docs/vmintegration.html
[2]
http://savannah.gnu.org/cgi-bin/viewcvs/classpath/classpath/vm/ 
reference/java/
[3] Apparently I was wrong about this previously, David Grove  
corrected

me. JikesRVM does use the Classpath VM interface.





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




Re: The Classpath VM interface. (Please read)

2005-06-07 Thread Sven de Marothy
On Tue, 2005-06-07 at 16:45 +1000, Peter Donald wrote:

 If you have downloaded Harmony, which intends to be a full JDK including 
 a VM and class library, why would you want to be able to use that with the 
 class library from a different JDK? 
   
 
 In [arch] VM Interface on 6/06/2005 10:32 AM I wrote
 
 I assume that if the Harmony JVM gets half as good as is hoped
 there will be companys who want to adopt the JVM but continue
 to use Suns class library so that differences in libraries don't hurt
 their customers.

If the Harmony JVM gets half as good as hoped, it will be fully J2SE 5
compatible. If it passes the TCK, it's compatible. If that still hurts
people, then that code is broken. You've got to draw the line somewhere.

And there is no reason to believe the VM part of Harmony will have
higher quality than the class library. Especially not if the VM is
written from scratch.

 Disregarding the illegality of distributing such a combo, 
 
 I am not sure why it would be illegal if someone like IBM were to use the
 Harmony JVM but use Suns class library. Actually I think that this use case
 is one of the aims of the project.

It is in violation of Sun's EULA.

/Sven



Re: The Classpath VM interface. (Please read)

2005-06-07 Thread Sven de Marothy
On Tue, 2005-06-07 at 08:15 -0400, Geir Magnusson Jr. wrote:
 On Jun 6, 2005, at 2:29 PM, Sven de Marothy wrote:
  Sun has not documented how their VM works with rt.jar. Therefore it is
  not possible to develop a Sun class library-compatible VM in a
  clean-room fashion.
 
 Not *now*, but Harmony has the potential to be a long-running, far- 
 reaching project, and our interest from the beginning is to have Sun  
 involved.  So it's not unthinkable to assume that Sun might be  
 interested in participating at some point in the future.

I don't quite see what the one has to do with the other here.

  1) GNU Classpath's VM interface doesn't include things necessary for
  J2SE 5.
 
  (My take on it: There is no VM which needs them yet.)
 
 But you absolutely know we will.

Right. But because no VM needs them yet, nobody around (who's made
themself known) has worked out *exactly* what demands that puts on the
VM interface. And without that detail Harmony can't devise a Java 5 VM
interface any more than GNU Classpath can.

  2) GNU Classpath's VM interface uses language protection such as
  package-privacy to hide the VM classes.
 
  (My take on it: Why is that a problem?)
 
 You are misrepresenting the problem.  it's not that it's language  
 protection, but that you extend java.lang namespace and are hoping  
 that you don't get tromped by the spec at some point in the future.   
 (Nor is it clear that it's good citizenship working in that namespace  
 as well...)

I still don't see the problem. You may always get tromped by the spec in
the future. And as for namespace issues; We're not extending the public
namespace. I don't see the issue. 

And it's not just about the VM interface. In fact, I don't see how its
possible to do a good implementation of the class library *at all*
without adding package-private methods, or classes. (And while I can't
be certain offhand like this, I think there are parts which are simply
*impossible* to implement without adding package-private parts.)

 But just as GNU Classpath thought it wise to keep the door open for  
 multiple VM implementations, we are trying to do the same for mutiple  
 class library implementations.

This is a job for the JCP. If you want a standard interface, get the JCP
to create a spec for one. 

But if you develop your own interface and only GNU Classpath uses it,
it's not keeping the door open. 

(And worse, if GNU Classpath doesn't use it, all you've got is yet
another inofficial interface. And that'll be even worse for
interoperability.)

/Sven



Re: The Classpath VM interface. (Please read)

2005-06-07 Thread Bruno F. Souza

Sven de Marothy wrote:


I really don't view it that way. I view it as 'Is it worth spending
effort on this?'.



I understand where Geir is coming from here: even more important then 
the implementation, one of Harmony objectives is to involve different 
groups as well as commercial companies, to define a modular architecture 
for a J2SE implementation. It could even be that a Harmony VM would be 
incorporated with Sun's classlibraries to create a product by some 
comercial vendor that could lawfully do that. In this view, it would be 
important to have a VM-library interface that could accomplish that.


But I mostly agree with Sven: if we're going to support plugging 
different libraries, we must start from somewere that is available and 
documented (Classpath has such a beast) and then work with the 
interested parties to expand that. For us to include the existing (non 
documented/proprietary) Sun interface it would have to be contributed by 
Sun into the discussion.


This could be a good way of starting to propose a Sun involvement. If 
this proves a good idea it could even turn into a JCP spec as it was 
suggested. If Sun is not interested, I don't see any reason to invest 
effort in doing it, since it will have no pratical value.


I think it is more probable that IBM or other Sun licensee that wants to 
use Sun's class libraries will just do the effort in order for then to 
use the existing library, and if legally possble, contribute that back. 
Without Sun's involvement, that's the best we could hope for.


And if we want a pluggable infrastructure, we would still be better off 
starting from Classpath, since it already plugs into many VMs, while 
Sun's library seams to not have this advantage to start with. Better 
change one than many :-)


Bruno.


/Sven




--
Bruno.
__
Bruno Peres Ferreira de Souza Brazil's JavaMan
http://www.javaman.com.br  bruno at javaman.com.br
if I fail, if I succeed, at least I live as I believe



Re: [arch] VM Interface

2005-06-07 Thread Ahmed Saad
On 6/7/05, Archie Cobbs [EMAIL PROTECTED] wrote:
 Geir Magnusson Jr. wrote:
[..]
  Because it's possible that Sun finds this aspect of Harmony valuable
  overall, and contributes information to help shape this.
 
 I highly doubt that will happen (just my opinion though).
 
  Secondly, you can no longer use Classpath as is, so Harmony will have
  to create a new fork of the Classpath code. Lots of work, zero forward
  progress.
 
  No, we won't fork GNU Classpath.  I don't understand why you believe  we
  have to do this.
 
 Well, the alternative is to convince the Classpath developers to completely
 rewrite the existing API to match whatever Sun currently does (which is
 unknown, and would probably taint them), and also convince all the current
 VM implementers to change their implementations. As a Classpath developer
 and VM implementer, I even more highly doubt that.
 
  Thirdly, what's to stop Sun from changing things around every release?
  Their API is not standardized in any way. It involves sun.*
  classes, etc.
 
  Nothing.
 
 So you have a moving, undocumented API to support. Sounds fun :-)
[..]

From what i understood from the GNU Classpath VM Integration Guide, a
classlibrary-VM interface is intended to provide implementation for
some basic classes that are needed by this particular classlibrary to
get the work done, correct me anybody, please? (are there any other
requirements for such interface beyond some hooks? (maybe true for Sun
rt.jar))

Jikes RVM, Kaffe, SableVM, etc [implement Classpath-required
classes] can use Classpath

Harmony VM [implement Classpath-required classes] can use Classpath
Harmony VM [implement Sun rt.jar-required classes(??)] --- can
use Sun rt.jar
Harmony VM [implement X-required classes] can use X

maybe Harmony would:
1. determine which classes are required by each classlibrary
implementation: GNU, Sun (is this legal), are there any others? btw,
how will we know about Sun's? is src.zip enough ? (i doubt there are
any published docs about this)
2. work out a draft spec about what it takes for a common, well there
was only GUN and Sun, classlibrary-VM interface based on what we found
in Classpath and rt.jar
2. implement adpaters for Classpath and rt.jar (what i mean is that
Harmony spec will introduce a layer to abstract current
classlibrary-vm interfaces)

Apache can take this spec to the JCP and till it's approved the
adapaters will be enough (if sun changed the interface in the next
version we would work on a new adapeter. maybe there would be some
changes in the spec).

i haven't been down to a VM before but can such a thing be achived?

-ahmed


Re: [arch] VM Interface

2005-06-07 Thread Geir Magnusson Jr.


On Jun 7, 2005, at 9:49 AM, Archie Cobbs wrote:


Geir Magnusson Jr. wrote:

I assume that if the Harmony JVM gets half as good as is hoped   
there will be companys who want to adopt the JVM but continue  
to  use Suns class library so that differences in libraries  
don't hurt  their customers.




If that is a goal of Harmony then we've just made things a lot  
harder.


First of all, Sun's class library - VM interface is proprietary  
and

unpublished. How would people become experts in it without studying
the Sun source code, with all the potential legal problems that   
entails?


Because it's possible that Sun finds this aspect of Harmony  
valuable  overall, and contributes information to help shape this.




I highly doubt that will happen (just my opinion though).


Secondly, you can no longer use Classpath as is, so Harmony will  
have
to create a new fork of the Classpath code. Lots of work, zero  
forward

progress.

No, we won't fork GNU Classpath.  I don't understand why you  
believe  we have to do this.




Well, the alternative is to convince the Classpath developers to  
completely
rewrite the existing API to match whatever Sun currently does  
(which is
unknown, and would probably taint them), and also convince all the  
current
VM implementers to change their implementations. As a Classpath  
developer

and VM implementer, I even more highly doubt that.


I don't think anyone suggested that we should match what Sun does.   
Maybe get some insight into what they needed to do for J2SE 1.5  
(since they have done it..), and what they learned building one of  
the finest VMs out there.  But just do what they do?  No.





Thirdly, what's to stop Sun from changing things around every  
release?
Their API is not standardized in any way. It involves sun.*   
classes, etc.



Nothing.



So you have a moving, undocumented API to support. Sounds fun :-)


We don't have to support it.  The question is what stops Sun? the  
answer is nothing.  But we don't have to support it.






On the other hand, if down the road the various interested parties
got together and said, Let's all agree on a common class library/ 
JVM
API then certainly Harmony should be involved and supportive.  
However

somehow to me that seems about as likely as Toyota, Ford, and GM all
agreeing to standardize the connection between engines and  
gearboxes.


That agreement is one of the things we're trying to do here,   
remember.  I don't know if the analogy is right though (although   
there is a bit of standardization in the auto industry).  Maybe  
the  computer industry would be a better example?  :)




I think it would be great to get there someday. The thing to do would
be to create a JCP project to standardize the Class/VM API.

However, the fact that this is a nice idea doesn't seem to have any
impact on the current situation for Harmony.

Are you saying Harmony should wait for such a JCP to be proposed,
accepted, and standardized? That will take years.


Come on -  I think I [jokingly] suggested we take what *we* develop  
and bring to the JCP, not wait for it.




Are you saying Harmony should adopt Sun's current, undocumented,
proprietary, and subject-to-change-at-any-time API? That seems like
a really bad idea for a large number of reasons.


I'm starting to wonder if you read what I actually wrote.  I  
suggested we try to figure out what Sun did to learn from them.




Even the idea that there will be any interest in combining Sun's  
classes

with a Harmony VM is suspect IMHO as well (would that even be legal?).


Why not?  If I had a license from Sun to do so?



So in summary: I just don't get it.


I suppose not - I thought the issue is really simple, and I'm sorry  
it's gotten a bit off track.


We started with the idea that in part, we should look at  
modularization of a VM platform.  One of the connection points is the  
VM-Class library interface, and since we have something to start  
with - the GNU Classpath interface - I suggested we start there, and  
see what additional information we can gather from those that have  
done more advanced and complete implementations (Sun, IBM, BEA, HP,  
etc) and with those considerations, produce an interface that works  
for where we are targeting to go.


No one is suggesting we standardize on Sun's interface, wait until  
the JCP does something about this, or bundle our (or anyone else's)  
stuff w/ Suns libraries.  (As for the latter, it would be nice if it  
was an option for those that choose to go that route... Freedom is  
good :)


geir

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




Re: [arch] VM Interface

2005-06-07 Thread Geir Magnusson Jr.


On Jun 7, 2005, at 4:03 PM, Archie Cobbs wrote:


Geir Magnusson Jr. wrote:

I assume that if the Harmony JVM gets half as good as is  
hoped   there will be companys who want to adopt the JVM but  
continue  to  use Suns class library so that differences in  
libraries  don't hurt  their customers.




If that is a goal of Harmony then we've just made things a lot   
harder.




So in summary: I just don't get it.

I suppose not - I thought the issue is really simple, and I'm  
sorry  it's gotten a bit off track.
We started with the idea that in part, we should look at   
modularization of a VM platform.  One of the connection points is  
the  VM-Class library interface, and since we have something to  
start  with - the GNU Classpath interface - I suggested we start  
there, and  see what additional information we can gather from  
those that have  done more advanced and complete implementations  
(Sun, IBM, BEA, HP,  etc) and with those considerations, produce  
an interface that works  for where we are targeting to go.
No one is suggesting we standardize on Sun's interface, wait  
until  the JCP does something about this, or bundle our (or anyone  
else's)  stuff w/ Suns libraries.  (As for the latter, it would be  
nice if it  was an option for those that choose to go that  
route... Freedom is  good :)




Learning from Sun et.al. and taking the best ideas is all good...

My reaction was to the notion that a goal of Harmony should be to
be API-compatible with Sun. Reading the first blurb quoted above,
that seemed to be the suggestion (maybe I misread it). IMHO it's
inappropriate to spend any (more) time worrying about API  
compatibility

right now, when the possibility is so far off.


Agreed.  API compatibility with Sun isn't a goal right now - but  
having a VM/lib interface rich enough to support the semantics they  
(and anyone else w/ a modern, complete implementation) need isn't  
something we should ignore :)




On the other hand, anyone who has any bright ideas for how the  
class/JVM
API that Classpath has now might be improved please speak up  
(preferably

on the Classpath mailing list, not this one?)


Either one - if here, we can certainly suggest to classpath (and even  
provide some code... I'm dying to contribute to something under the  
GPL ;)


geir

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




Re: [arch] Modules and interfaces (was: How much of java.* ...)

2005-06-07 Thread Matthew French
On Tue, 2005-06-07 at 07:35 +1000, Steve Blackburn wrote:
 It brings to mind some of the portability/modularity issues we've been 
 wrestling with (at great length) with MMTk and the interdependence 
 between the memory manager and the VM.  Our solution is not earth 
 shattering, but it evolved out of a very long struggle with issues like 
 the one Geir is alluding to above.

I will most probably be told why not very shortly, but is it not
possible to use the class loader to solve this problem?

My first solution would be too implement VM specific functions in their
own library, but using existing the namespaces, not creating new ones.
So you have your own java.lang.Thread, for example, that works with your
VM. The class loader then uses the VM specific functionality to override
the generic functionality.

This acts like a mask, hiding functionality that the VM authors decide
is specific to the VM, but leaving all the other generic functionality
exposed. This has the advantage that it reduces the amount of re-work
while allowing enormous flexibility. The only requirement is that the
class libraries call the public API instead of internal implementation
classes - i.e. make no assumptions about the implementation of any other
class (as much as possible, anyway).

This also makes it possible to inject, for example, a VM specific String
class, or specially tuned Socket classes. But at the same time for other
VM's to use the generic String class. 

The principal can be extended so that application specific classes can
override the generic classes. Although this is wrong for so many other
reasons. :(

From a brief look at the classpath docs, it looks like classpath uses a
similar approach - from what I can tell the one I am suggesting is just
more generic.

Or is the issue deeper than this?

- Matthew




Re: [arch] VM Interface

2005-06-07 Thread Geir Magnusson Jr.


On Jun 7, 2005, at 4:32 PM, Sven de Marothy wrote:


On Tue, 2005-06-07 at 16:14 -0400, Geir Magnusson Jr. wrote:



Either one - if here, we can certainly suggest to classpath (and even
provide some code... I'm dying to contribute to something under the
GPL ;)



Geir,
I know you were joking, but GNU Classpath isn't under the GPL.
You know that. But there's been enough misconceptions about this on  
this

list already. Let's not risk adding to them.



I meant GPL + Exception.  And I wasn't joking.  I think it would be  
fun to contribute there. :)


geir


GPL+exception != LGPL != GPL

/Sven




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




[Legal] Issue for Contribution Process

2005-06-07 Thread Geir Magnusson Jr.

The standard Apache contribution process goes something like this :

  a) Any individual that is a committer must have
 on file an Individual Contributor License Agreement[1]
 This document is a statement from the individual that says
 that anything they contribute is their original work that
 they are free to license under the Apache License.

  b) Any other entity can make contributions to the project via
 a Software Grant[2] or through the modified Corporate
 Contributor License Agreement[3].  Through this, if accepted,
 the documentation is registered with the Apache Incubator, and
 the contribution goes into the SVN repository of the accepting  
project.


We will continue with these processes, but due to the extremely  
sensitive legal and political nature of our project, I'd like to  
discuss adding some additional constraints and processes in order to  
ensure that from the beginning, the codebase we maintain and develop  
has especially good tracking and oversight.


First, as part of the Apache Harmony project, we keep a registry of  
all 'bulk' contributions.  This doesn't replace the tracking the  
incubator does for these, but augments it - I think we would be well  
served if we internally tracked where code came from, and where we  
used it.  One of the lessons that I learned with Apache Geronimo is  
that for things like this, there never is too much information or  
careful oversight and screening, because even for things that are  
clean and clear, you want to avoid any confusion or FUD about  
materials later on.


Second, any contribution by an individual committer that is bulk -  
a quantity of code that is re-purposed, re-licensed or re- 
contributed, e.g. any bit of code that had been used elsewhere - be  
also registered as such.  We may or may not want to go as far as a  
software grant from that committer.  I'm not sure that there is any  
purpose to asking for one, but am interested in what others think.


For any bulk contribution, we could have a checklist like the  
following to help track where code is coming from, and help remind  
committers about our contribution rules.


Contribution Checklist for Individual Bulk Contribution


1) Identification

  Please provide the following information

 - Name of the committer and apache ID
 - Names of all authors of the code or other material being submitted

2) Author's Permission

  If you did not write the material yourself, you would
  need to have a written agreement with those who did write
  the material that either gives you ownership of the material
  or otherwise provides you sufficient rights to submit this
  material to the project on their behalf?

  - If you do not have such an agreement, then do not submit
this Contribution.

  - If you do have such an agreement, you should provide
details of this agreement.

3) All Authors Are Committers

If you did not write the material yourself, are all of
the authors committers to Apache Harmony and authorized to
participate in the related project component? If not,
then you should not submit this Contribution, although the
Corporate Contributor License Agreement may apply.

3) Re-purposed or Re-Licensed

   Did you submit this Contribution to another open
   source or proprietary project?

   - If so, then you should provide details with the submission.

Comments?

geir


[1] http://www.apache.org/licenses/icla.txt
[2] http://www.apache.org/licenses/software-grant.txt
[3] http://www.apache.org/licenses/cla-corporate.txt


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




Re: [Legal] Requirements for Committers

2005-06-07 Thread Tor-Einar Jarnbjo

Geir Magnusson Jr. wrote:


8) Employment Limitations

   Are you employed as a programmer, systems analyst, or other
   IT professional?  If so, you may be an commiter
   only if your employer either:

   a) signs a Corporate Contribution License Agreement with Apache
  and lists you as a designated employee or

   b) submits a written authorization for your participation in this
  project and disclaims any copyright or confidentiality interest
  in your current or future contributions to this project.


IANAL, but this is a really tricky part, as different laws apply 
depending on where the contributor lives. Most countries have a 
different approach on this subject than the anglo-american copyright, 
namely the author's right.


For my part, living in Germany, there is no way for my employer (even 
though I'm employed as a software developer) to claim any rights on work 
I'm doing in my spare time and there is no legal way for me to disclaim 
or overdraw my author's right on any work I've done. Even the author's 
right on the work I'm doing for my employer stays with me, all they can 
claim is an exclusive right to _use_ the code.


I have been working on a few smaller projects lately, which may be of 
interest to the Harmony project, and I would find it a pity, if your 
legal requirements makes it difficult for me to contribute.


Tor



Re: [Legal] Requirements for Committers

2005-06-07 Thread Tor-Einar Jarnbjo

Geir Magnusson Jr. wrote:


What are you working on?


It's a framework to ease JNI programming, or more precisely to make it 
possible to call native, e.g. OS functions without writing wrapper code 
in C to do type conversions etc.


For example, invoking the Windows MessageBox function in user32.dll can 
be done like this:


EasyJni jni = EasyJni.getInstance();
NativeLibrary user32 = jni.loadNativeLibrary(user32);

long ctext = jni.createCString(Message box text, UTF-16LE);
long ctitle = jni.createCString(Message box title, UTF-16LE);

int res = (int)user32.invokeLong(
 MessageBoxW, 0, ctext, ctitle, MessageBoxConstants.MB_OKCANCEL);

jni..free(ctext);
jni.free(ctitle);

C structs can be mapped to Java classes using annotations, as here with 
the WAVEFORMAT struct used by the Windows audio API:


@NativeStruct(endian=Endian.little, size=16)
public class WaveFormat implements Modifiable {

   @NativeField(type=FieldType.int16, offset=0)
   private int formatTag;

   @NativeField(type=FieldType.int16, offset=2)
   private int channels;
  
   @NativeField(type=FieldType.int32, offset=4)

   private int samplesPerSecond;

   @NativeField(type=FieldType.int32, offset=8)
   private int avgBytesPerSecond;
  
   @NativeField(type=FieldType.int32, offset=12)

   private int blockAlign;

   // getter and setter methods ...
}

I needed this for some audio functionality, which is not available 
through JavaSound. The JNI library could probably be used in several 
fields, and seeing that Classpath does not implement any parts of 
JavaSound, my Windows media API wrappers are probably a good starting 
point for a new JavaSound implementation (at least targetted for Windows).


Tor



Re: [Legal] Requirements for Committers

2005-06-07 Thread Steven Gong
On 6/8/05, Tor-Einar Jarnbjo [EMAIL PROTECTED] wrote:
 
 Geir Magnusson Jr. wrote:
 
  What are you working on?
 
 It's a framework to ease JNI programming, or more precisely to make it
 possible to call native, e.g. OS functions without writing wrapper code
 in C to do type conversions etc.


Tor, is it legal to for you to contribute the API of this JNI programming 
framework? IMHO the API is as valuable as the implementation.

-- 
Best Regards
Steven Gong


RE: The Classpath VM interface. (Please read)

2005-06-07 Thread Renaud BECHADE
>It could even be that a Harmony VM would be
>incorporated with Sun's classlibraries to create a product by some
>comercial vendor that could lawfully do that. In this view, it would be
>important to have a VM-library interface that could accomplish that.

If people really want to do that, then they will have the $$$ to have it
done.
As far as I am concerned, what interests me in Harmony is to have a really
free good Java 5 VM embeddable everywhere (including FreeDSB, OpenBSD and
others, as well as embedded devices for instance) with a good support for
real-time and number crunching too (which means it will scale well for
distributed applications/multimedia-DBs and all those fancy things to come
in the near future).
The very first step: having support for java 5 as-in-the-available-standards
(i.e. something usable to something for some people, and also something to
play with so that people can build reasonable real-life test suites on top
of it - because I only trust what I see) is already a good bunch of work.
The next step: having good support (read performance) for multimedia(number
crunching)/realtime for instance, or some set of applications that really
matter[1]  so is probably more fun and cooler than just trying to follow
fuzzy, obscure, dark-side implementation choices (and what about plagiarism
charges in courts?), without just considering the efforts it would take to
do it. Besides, having to follow crap specs (inexistent specs) is the best
way to have a product that has a plethora of security holes  other funny
bugs IMHO.

Regards,

RB

[1] And all kinds of advanced GC techniques  JIT technologies as exposed by
the specialists of these fields that are in this group. What I mean here is
that there is probably some concrete target application set to focus on at
the beginning (say the kind of stuffs that are priorities to micro$oft and
apple/intel etc.), no more, no less.

-Original Message-
From: Bruno F. Souza [mailto:[EMAIL PROTECTED]
Sent: Wednesday, June 08, 2005 2:31 AM
To: harmony-dev@incubator.apache.org
Subject: Re: The Classpath VM interface. (Please read)

Sven de Marothy wrote:

 I really don't view it that way. I view it as 'Is it worth spending
 effort on this?'.


I understand where Geir is coming from here: even more important then
the implementation, one of Harmony objectives is to involve different
groups as well as commercial companies, to define a modular architecture
for a J2SE implementation. It could even be that a Harmony VM would be
incorporated with Sun's classlibraries to create a product by some
comercial vendor that could lawfully do that. In this view, it would be
important to have a VM-library interface that could accomplish that.

But I mostly agree with Sven: if we're going to support plugging
different libraries, we must start from somewere that is available and
documented (Classpath has such a beast) and then work with the
interested parties to expand that. For us to include the existing (non
documented/proprietary) Sun interface it would have to be contributed by
Sun into the discussion.

This could be a good way of starting to propose a Sun involvement. If
this proves a good idea it could even turn into a JCP spec as it was
suggested. If Sun is not interested, I don't see any reason to invest
effort in doing it, since it will have no pratical value.

I think it is more probable that IBM or other Sun licensee that wants to
use Sun's class libraries will just do the effort in order for then to
use the existing library, and if legally possble, contribute that back.
Without Sun's involvement, that's the best we could hope for.

And if we want a pluggable infrastructure, we would still be better off
starting from Classpath, since it already plugs into many VMs, while
Sun's library seams to not have this advantage to start with. Better
change one than many :-)

Bruno.

 /Sven



--
Bruno.
__
Bruno Peres Ferreira de Souza Brazil's JavaMan
http://www.javaman.com.br  bruno at javaman.com.br
 if I fail, if I succeed, at least I live as I believe

RE: [arch] Modules and interfaces (was: How much of java.* ...)

2005-06-07 Thread Renaud BECHADE
> It brings to mind some of the portability/modularity issues we've been
> wrestling with (at great length) with MMTk and the interdependence
> between the memory manager and the VM.  Our solution is not earth
> shattering, but it evolved out of a very long struggle with issues 
like
> the one Geir is alluding to above.
>
>I will most probably be told why not very shortly, but is it not
>possible to use the class loader to solve this problem?

Indeed if you add some "AOP-like" code at the right place (check the
resource names, do something specific if it is VM-specific) it might just do
(at least conceptually). After all it is just possible to instrument classes
and add whatever code is required at runtime, so I guess the java.lang.*
classes do not really need to have everything available in the jar that is
exposed to users, except what is in the standards (the signatures, the code
itself is another question, right?).

Sound like mil. security principle: give people just what they need to do
their jobs, not more.

RB

-Original Message-
From: Matthew French [mailto:[EMAIL PROTECTED]
Sent: Wednesday, June 08, 2005 6:09 AM
To: harmony-dev@incubator.apache.org
Subject: Re: [arch] Modules and interfaces (was: How much of java.* ...)

On Tue, 2005-06-07 at 07:35 +1000, Steve Blackburn wrote:
 It brings to mind some of the portability/modularity issues we've been
 wrestling with (at great length) with MMTk and the interdependence
 between the memory manager and the VM.  Our solution is not earth
 shattering, but it evolved out of a very long struggle with issues like
 the one Geir is alluding to above.

I will most probably be told why not very shortly, but is it not
possible to use the class loader to solve this problem?

My first solution would be too implement VM specific functions in their
own library, but using existing the namespaces, not creating new ones.
So you have your own java.lang.Thread, for example, that works with your
VM. The class loader then uses the VM specific functionality to override
the generic functionality.

This acts like a mask, hiding functionality that the VM authors decide
is specific to the VM, but leaving all the other generic functionality
exposed. This has the advantage that it reduces the amount of re-work
while allowing enormous flexibility. The only requirement is that the
class libraries call the public API instead of internal implementation
classes - i.e. make no assumptions about the implementation of any other
class (as much as possible, anyway).

This also makes it possible to inject, for example, a VM specific String
class, or specially tuned Socket classes. But at the same time for other
VM's to use the generic String class.

The principal can be extended so that application specific classes can
override the generic classes. Although this is wrong for so many other
reasons. :(

From a brief look at the classpath docs, it looks like classpath uses a
similar approach - from what I can tell the one I am suggesting is just
more generic.

Or is the issue deeper than this?

- Matthew

RE: [Legal] Requirements for Committers

2005-06-07 Thread Renaud BECHADE

It is quite similar in French law (soft copyright law being a derivative of
usual author copyright law: author's right belongs to the author, period;
usage right can be granted/sold/etc. but NOT the author's property). Not
sure about Japanese law (I am living in Japan and France :-)).

I guess we should not try to have legal stances that are just too obscure or
absolute (and hence just not compatible with some countries laws).

Sorry this is more like a problem than a solution, but it would be a pity to
be deep in the  because we ignore laws diversity.

-Original Message-
From: Tor-Einar Jarnbjo [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, June 08, 2005 8:01 AM
To: harmony-dev@incubator.apache.org
Subject: Re: [Legal] Requirements for Committers

Geir Magnusson Jr. wrote:

 8) Employment Limitations

Are you employed as a programmer, systems analyst, or other
IT professional?  If so, you may be an commiter
only if your employer either:

a) signs a Corporate Contribution License Agreement with Apache
   and lists you as a designated employee or

b) submits a written authorization for your participation in this
   project and disclaims any copyright or confidentiality interest
   in your current or future contributions to this project.

IANAL, but this is a really tricky part, as different laws apply 
depending on where the contributor lives. Most countries have a 
different approach on this subject than the anglo-american copyright, 
namely the author's right.

For my part, living in Germany, there is no way for my employer (even 
though I'm employed as a software developer) to claim any rights on work 
I'm doing in my spare time and there is no legal way for me to disclaim 
or overdraw my author's right on any work I've done. Even the author's 
right on the work I'm doing for my employer stays with me, all they can 
claim is an exclusive right to _use_ the code.

I have been working on a few smaller projects lately, which may be of 
interest to the Harmony project, and I would find it a pity, if your 
legal requirements makes it difficult for me to contribute.

Tor



Re: [Legal] Requirements for Committers

2005-06-07 Thread William . Wu
Good 
Best Regards, 

William Wu
Software Engineer
Sybase Shanghai RD Center
Room 1202-1206, Building One, 
Zhangjiang Semiconductor Industry Park
3000 Longdong Avenue
Pudong, Shanghai 201203
Tel: 8621-68799918 ext 3081
Fax: 8621-68790199
Email: [EMAIL PROTECTED]


Re: [Legal] Requirements for Committers

2005-06-07 Thread Geir Magnusson Jr.


On Jun 7, 2005, at 9:34 PM, Renaud BECHADE wrote:



It is quite similar in French law (soft copyright law being a  
derivative of
usual author copyright law: author's right belongs to the author,  
period;
usage right can be granted/sold/etc. but NOT the author's  
property). Not

sure about Japanese law (I am living in Japan and France :-)).

I guess we should not try to have legal stances that are just too  
obscure or

absolute (and hence just not compatible with some countries laws).

Sorry this is more like a problem than a solution, but it would be  
a pity to

be deep in the  because we ignore laws diversity.


Which aspect?  We're not ignoring diversity here.  We're trying to  
get started figuring out what to do.  We'll have to consult the ASF  
legal team, but the issues of the CCLA is universal at the ASF anyway.


The issues won't go away if we just try and ignore them.

geir




-Original Message-
From: Tor-Einar Jarnbjo [mailto:[EMAIL PROTECTED]
Sent: Wednesday, June 08, 2005 8:01 AM
To: harmony-dev@incubator.apache.org
Subject: Re: [Legal] Requirements for Committers

Geir Magnusson Jr. wrote:



8) Employment Limitations

   Are you employed as a programmer, systems analyst, or other
   IT professional?  If so, you may be an commiter
   only if your employer either:

   a) signs a Corporate Contribution License Agreement with Apache
  and lists you as a designated employee or

   b) submits a written authorization for your participation in this
  project and disclaims any copyright or confidentiality interest
  in your current or future contributions to this project.



IANAL, but this is a really tricky part, as different laws apply
depending on where the contributor lives. Most countries have a
different approach on this subject than the anglo-american copyright,
namely the author's right.

For my part, living in Germany, there is no way for my employer (even
though I'm employed as a software developer) to claim any rights on  
work
I'm doing in my spare time and there is no legal way for me to  
disclaim

or overdraw my author's right on any work I've done. Even the author's
right on the work I'm doing for my employer stays with me, all they  
can

claim is an exclusive right to _use_ the code.

I have been working on a few smaller projects lately, which may be of
interest to the Harmony project, and I would find it a pity, if your
legal requirements makes it difficult for me to contribute.

Tor




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




Re: The Classpath VM interface. (Please read)

2005-06-07 Thread Phillip Rhodes

Sven de Marothy wrote:


Geir.. I really don't get your position here. 


The way I read your arguments are: Harmony should spend time and energy
implementing Sun's class library interface, which is proprietary,
closed-source, unspecified, may change at any time and requires a
licensing agreement with Sun to be practically useful.

And if Harmony doesn't spend time on this, it'd be 'willfully
restricting' the ability of users?

I really don't view it that way. I view it as 'Is it worth spending
effort on this?'.



+1

I don't claim to know the final word on the subject by any means... but 
my gut feeling is that almost nobody is going to want/need to download

Harmony and then use a different class lib that the one that's included.
If we pass the TCK and make a quality product (VM + Classlib) I believe
people will either download and use it, or not download and use it, as a
whole.  I have a very difficult time seeing the need for spending a lot
of time worrying about allowing people to switch out classlibraries.

I can see some very unlikely edge cases that might prompt somebody to 
mix-n-match classlibs and VMs, but it doesn't strike me as being a

particularly important feature.


TTYL,


Phil
--
North Carolina - First In Freedom

Free America - Vote Libertarian
www.lp.org