Re: [discussion] Committer Addition Process

2005-09-20 Thread Geir Magnusson Jr.


On Sep 20, 2005, at 6:24 PM, Brett Porter wrote:


On 9/21/05, Geir Magnusson Jr. <[EMAIL PROTECTED]> wrote:



4) A committer will lose commit status after 4 months of inactivity.
In order to regain commit status, that person must begin
participating by offering a patch, new code, etc :)




This seems too much in the long run, but I do think that it is  
necessary to
have a low barrier to entry now, and then trimming back the  
committer list

to active people at either some milestone point or down the track if
applying for TLP is appropriate.


Many projects do this.  HTTPD and Jakarta both have 6 month policies,  
IIRC, with low barrier to re-entry.  It just helps keep things neat  
and clean.




If you intend to be adding a whole lot of new committers, there  
needs to be
some way to continue to contribute via JIRA/ML while the account is  
created
though, and this takes some time (unless Geir is intending to turn  
them all

around himself immediately with his new found powers :)


My powers are now mighty and vast! :)

geir

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




Re: [discussion] Committer Addition Process

2005-09-20 Thread Brett Porter
On 9/21/05, Geir Magnusson Jr. <[EMAIL PROTECTED]> wrote:
> 
> 4) A committer will lose commit status after 4 months of inactivity.
> In order to regain commit status, that person must begin
> participating by offering a patch, new code, etc :)
> 

This seems too much in the long run, but I do think that it is necessary to 
have a low barrier to entry now, and then trimming back the committer list 
to active people at either some milestone point or down the track if 
applying for TLP is appropriate.

If you intend to be adding a whole lot of new committers, there needs to be 
some way to continue to contribute via JIRA/ML while the account is created 
though, and this takes some time (unless Geir is intending to turn them all 
around himself immediately with his new found powers :)

Cheers,
Brett


How to package a contribution

2005-09-20 Thread Geir Magnusson Jr.
If you have a work that you wish to contribute to the Apache Harmony  
project, I suggest the following process :


1) First, be sure that the work is an original work by you,
   or if not, you have the right and permission to
   contribute the software to the Apache Harmony project.
   We follow the standard Apache rules regarding contributions,
   and ask for both an Individual Contributors License Agreement

  http://www.apache.org/licenses/icla.txt  or
  http://www.apache.org/licenses/icla.pdf

as well as a Software Grant and Corporate Contributor License Agreement

  http://www.apache.org/licenses/cla-corporate.txt

in the event the contribution isn't owned by yourself.

2) In addition to the ICLA, we augment the contribution process
   via an Authorized Contributor Questionnaire

  http://incubator.apache.org/harmony/auth_cont_quest.html

  and for now, fax to +1 203 665 6400.  The Apache Harmony PPMC
  will handle these.

3) Package your contribution with :

  a) the Apache License in a file called LICENSE in the root
 of the contribution directory tree

  b) Put the header for the Apache License in the top of each file :

/**
*
* Copyright 2005 The Apache Software Foundation or its licensors, as  
applicable

*
*  Licensed under the Apache License, Version 2.0 (the "License");
*  you may not use this file except in compliance with the License.
*  You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
*  Unless required by applicable law or agreed to in writing, software
*  distributed under the License is distributed on an "AS IS" BASIS,
*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or  
implied.

*  See the License for the specific language governing permissions and
*  limitations under the License.
*/


4) Submit the bundle to the project via a JIRA entry.  Please be sure
   to select "contributing under the Apache License" when doing so.

5) Submit a message to the dev list describing your contribution.


Comments or additions to this process welcome.

geir

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




Re: [legal] Change to Authorized Contributor Questionnaire

2005-09-20 Thread Geir Magnusson Jr.
In the interest of full disclosure, I also removed the word  
"PROPOSED" at the top...


The changes have been checked in and moved to staging site.  You can  
wait until it goes to www in <4 hours, or go get from SVN yourself.


geir

On Sep 20, 2005, at 11:17 AM, Geir Magnusson Jr. wrote:


Learn as we go.

I'm making two changes to the ACQ based on getting one from David.

1) Adding a note at the top that this information is considered  
public information, and will be shared in the manner deemed  
appropriate by the Apache Harmony project.  The intent is to enable  
anyone interested in our code to know where it came from.


2) Adding some numbers for each answer so we can easily create a  
simple DB


The version will be v1.0 20050920

geir

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





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




[legal] Change to Authorized Contributor Questionnaire

2005-09-20 Thread Geir Magnusson Jr.

Learn as we go.

I'm making two changes to the ACQ based on getting one from David.

1) Adding a note at the top that this information is considered  
public information, and will be shared in the manner deemed  
appropriate by the Apache Harmony project.  The intent is to enable  
anyone interested in our code to know where it came from.


2) Adding some numbers for each answer so we can easily create a  
simple DB


The version will be v1.0 20050920

geir

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




Re: Call for Contributions (was Re: 4 Months and...)

2005-09-20 Thread Geir Magnusson Jr.

Of course :)

I assume you are willing to continue working with it?

I need to do one update to the ACQ - when that is done, please get  
that, fill it out, and fax to


+1 203 665 6437

Then do the ICLA and fax to same number.

I'll post in a separate thread how a contribution should be packaged  
and submitted.


geir

On Sep 20, 2005, at 10:39 AM, Rodrigo Kumpera wrote:


I've written a pet JVM in Java, it includes a very simple JITer, no GC
(but it is starting to use MMtk magic, so should be doable to use it),
no self-hosting and no support for native code. The code have never
left my machine but I'm willing to donate if is desirable.


[]'s
Rodrigo


On 9/20/05, Geir Magnusson Jr. <[EMAIL PROTECTED]> wrote:



On Sep 20, 2005, at 8:52 AM, [EMAIL PROTECTED] wrote:



This is not likely to actually attract code.  Opening up SVN to
committership would.  You've described a reverse of how most
projects work if you will such that the barrier is to initial
commit rather than lazy veto/etc.



Most projects give committership to people that have offered code and
patches, don't they?

geir




-Andy

Geir Magnusson Jr. wrote:



I'd like to restate that we are always looking for code
contributions.  I do know of some in preparation, but it should
be  clear that if you have anything to offer (hey, Dan!) please
post a  note to dev list to discuss. :)
geir
On Sep 19, 2005, at 5:35 PM, [EMAIL PROTECTED] wrote:



Four months and no code.  Open up the repository and let the
willing start committing.  The discussion has gotten so verbose
that there are already people publishing edited digests.  Code
will  reduce the discussion :-)

-Andy











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









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




Re: [discussion] Committer Addition Process

2005-09-20 Thread Geir Magnusson Jr.


On Sep 20, 2005, at 10:25 AM, Davanum Srinivas wrote:


Geir,

Am looking for specific timelines and specific things an indiviual can
do to make sure that they catch the eye of the PMC/PPMC for commit
status.


Offer a patch or contribution.  That's pretty specific.


For a person looking from outside, there is no info on what
they should do (other than what they are doing right now) to become a
committer.


You are correct, and it's something I'm trying to resolve now.



+1 to make a policy doc in svn. But am really interested in getting
the ball rolling on voting specific people, get them commit access AND
more importantly getting out of their way and let them decide/work on
harmony's future.


Two things - this is not just a policy doc.  it's how we will  
behave.  Second, it's not a "them", it's "us", at least for me :)


geir



thanks,
dims

On 9/20/05, Geir Magnusson Jr. <[EMAIL PROTECTED]> wrote:


I'm going to shameless steal an idea from Andy Oliver.  Amended with
#4 :

1) Anyone with a contribution that would belong in SVN can be
considered for commit status by the PMC (PPMC while in incubation).
This contribution can be anything - new code, a patch to existing
code, documentation, a change to the website, testing code or other
resources, etc. (Hopefully this gets people interested in harvesting
good docs from the WIKI, as that's worth commit status IMO)

2) If offered commit status by the PMC and accepted by the
individual, we will get an ACQ from the individual along with an ICLA
if not already on file with the ASF secretary.  I'd ask that
individuals wait to do an ACQ until offered, as the ACQ will be
evolving over time as we learn, and I'd like to ask that a new
committer have the current version on file as of the date of them
being added as a commmitter.

3) The individual would be given free reign in the area to which they
contributed, and trusted to engage with the relevant part of the
community for other areas of our codebase/resourcebase.

4) A committer will lose commit status after 4 months of inactivity.
In order to regain commit status, that person must begin
participating by offering a patch, new code, etc :)



On Sep 20, 2005, at 10:07 AM, Geir Magnusson Jr. wrote:



Adding committers to a project is a problem every project faces,
and there are quite a large number of ways to do it.  I've been too
worried about legal issues (and they pop up often) lately, and this
is a good subject for us to resolve now.

We must

* have a visible process to ensure fairness
* a low barrier to entry to get people helping
* a rigid transparent process to ensure safety of the codebase in
terms of IP provenance
* a cultural standard through which people work on things that they
have demonstrated competence to the rest of the community.

For the last point, except for keeping people away from parts of
the subversion repository to which they have had prior exposure
they can't get resolved, we want to have one kind of committer.
However, it's clear that we all have different levels of talent in
different areas of technology.  So a nice way to work - I think -
is that committers are added for work in a specific area on a trust
basis, and if they want to work in other areas, they engage with
others already working there and get informal approval to commit at
will.  IOW, don't just go rummaging through code in which you have
no experience, but work with those that are.  This is something
that I've heard work well in projects like Subversion, and we're
trying it in Geronimo to recognize that the barrier to entry varies
by person and technology they are interested in working on.

So I'd like to keep it really simple :

1) Anyone with a contribution that would belong in SVN can be
considered for commit status by the PMC (PPMC while in
incubation).  This contribution can be anything - new code, a patch
to existing code, documentation, a change to the website, testing
code or other resources, etc. (Hopefully this gets people
interested in harvesting good docs from the WIKI, as that's worth
commit status IMO)

2) If offered commit status by the PMC and accepted by the
individual, we will get an ACQ from the individual along with an
ICLA if not already on file with the ASF secretary.  I'd ask that
individuals wait to do an ACQ until offered, as the ACQ will be
evolving over time as we learn, and I'd like to ask that a new
committer have the current version on file as of the date of them
being added as a commmitter.

3) The individual would be given free reign in the area to which
they contributed, and trusted to engage with the relevant part of
the community for other areas of our codebase/resourcebase.

Comments?  If people agree to this, I'd like to add this to our
website as part of the project policy.

geir

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






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







--
Davanum 

Re: Call for Contributions (was Re: 4 Months and...)

2005-09-20 Thread Rodrigo Kumpera
I've written a pet JVM in Java, it includes a very simple JITer, no GC
(but it is starting to use MMtk magic, so should be doable to use it),
no self-hosting and no support for native code. The code have never
left my machine but I'm willing to donate if is desirable.


[]'s
Rodrigo


On 9/20/05, Geir Magnusson Jr. <[EMAIL PROTECTED]> wrote:
> 
> On Sep 20, 2005, at 8:52 AM, [EMAIL PROTECTED] wrote:
> 
> > This is not likely to actually attract code.  Opening up SVN to
> > committership would.  You've described a reverse of how most
> > projects work if you will such that the barrier is to initial
> > commit rather than lazy veto/etc.
> 
> Most projects give committership to people that have offered code and
> patches, don't they?
> 
> geir
> 
> >
> > -Andy
> >
> > Geir Magnusson Jr. wrote:
> >
> >> I'd like to restate that we are always looking for code
> >> contributions.  I do know of some in preparation, but it should
> >> be  clear that if you have anything to offer (hey, Dan!) please
> >> post a  note to dev list to discuss. :)
> >> geir
> >> On Sep 19, 2005, at 5:35 PM, [EMAIL PROTECTED] wrote:
> >>
> >>> Four months and no code.  Open up the repository and let the
> >>> willing start committing.  The discussion has gotten so verbose
> >>> that there are already people publishing edited digests.  Code
> >>> will  reduce the discussion :-)
> >>>
> >>> -Andy
> >>>
> >>>
> >>>
> >
> >
> >
> 
> --
> Geir Magnusson Jr  +1-203-665-6437
> [EMAIL PROTECTED]
> 
> 
>


Re: [discussion] Committer Addition Process

2005-09-20 Thread Geir Magnusson Jr.


On Sep 20, 2005, at 10:16 AM, [EMAIL PROTECTED] wrote:


So I'd like to keep it really simple :
1) Anyone with a contribution that would belong in SVN can be   
considered for commit status by the PMC (PPMC while in  
incubation).   This contribution can be anything - new code, a  
patch to existing  code, documentation, a change to the website,  
testing code or other  resources, etc. (Hopefully this gets people  
interested in harvesting  good docs from the WIKI, as that's worth  
commit status IMO)




I'm not sure how this seeds initial committers though.  Start with  
this, any existing Apache committer or member who has turned in his  
ACQ and requests commit access.  This will at least get an initial  
set of committers to the repository.  Its also the "likely suspects".


We have an initial committer list that was part of the proposal, just  
like every other incubator proposal.


You are a committer and a member.  Can't you find a patch for David's  
code? ;)


Seriously, I'm not really against this, but I don't see why we'd have  
to do this because we are keeping the bar very low for everyone.  If  
you had commit access right now, what would you do? Could you do that  
same thing and post it as a JIRA contribution, and let us turn the  
crank? :)





2) If offered commit status by the PMC and accepted by the   
individual, we will get an ACQ from the individual along with an  
ICLA  if not already on file with the ASF secretary.  I'd ask  
that  individuals wait to do an ACQ until offered, as the ACQ will  
be  evolving over time as we learn, and I'd like to ask that a  
new  committer have the current version on file as of the date of  
them  being added as a commmitter.




This will probably be less of a problem when there is code.


It should have nothing to do with code.  It's just that we're  
evolving the ACQ...





3) The individual would be given free reign in the area to which  
they  contributed, and trusted to engage with the relevant part of  
the  community for other areas of our codebase/resourcebase.




And if they request access to another area provided they have no  
issues they should be given so forthwidth.  Start one UNIFIED  
project not 12.


I think you misunderstand.  There is only one kind of committer.

A new committer that has filled in the ACQ will have access to the  
full repository in reality (modulo places the ACQ says he/she can't  
go), with a simple understanding of trust (some would call a  
"gentleman's agreement", but I hate that term...) to work in the area  
that they got commit for.  ("Bob, you did great work on the docs.   
We're offering you commit.  Keep up the great work on the docs, and  
if you want to work elsewhere, be sure to work with other community  
members first so you can get in synch with what they are doing")


This has nothing to do w/ a segmented ACL list for the SVN.  I want  
to avoid balkanization - except for places where we have to prohibit  
people based on their ACQ.  We want to make sure that our controls  
over IP are defensible.





Comments?  If people agree to this, I'd like to add this to our   
website as part of the project policy.




If this opens the repository to code then I think its great.  If  
not, then I think it sucks.




Great.


-Andy



geir






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




Re: [discussion] Committer Addition Process

2005-09-20 Thread acoliver

Geir Magnusson Jr. wrote:

I'm going to shameless steal an idea from Andy Oliver.  Amended with  #4 :

1) Anyone with a contribution that would belong in SVN can be  
considered for commit status by the PMC (PPMC while in incubation).   
This contribution can be anything - new code, a patch to existing  code, 
documentation, a change to the website, testing code or other  
resources, etc. (Hopefully this gets people interested in harvesting  
good docs from the WIKI, as that's worth commit status IMO)


I would like to offer this:

build.xml:





 
   Harmony build
 




build.sh
#!/bin/sh

ant $*

build.bat
@echo off
REM convenience bat file to build with
REM ATTENTION: Set ANT_HOME to the root directory of ANT distribution

setlocal

PATH=%ANT_HOME%\bin;%PATH%
ant %*

endlocal


Once given commit access I'll begin adding functionality to build java 
and c targets and launch make files, etc.  (I'm mostly ambivilent so 
long as dumb people can run it and get out binaries)


Qualifications:
I read books on compiler theory in my spare time and get GCC to output 
asm to see all the cool native codes that come out (god PPC is so much 
cooler than Intel).  I also know couple things about coding in a hot 
legal environment and how to be appropriately paranoid while still 
moving forward.




2) If offered commit status by the PMC and accepted by the  individual, 
we will get an ACQ from the individual along with an ICLA  if not 
already on file with the ASF secretary.  I'd ask that  individuals wait 
to do an ACQ until offered, as the ACQ will be  evolving over time as we 
learn, and I'd like to ask that a new  committer have the current 
version on file as of the date of them  being added as a commmitter.




My CLA is already on file.  I'm willing to sign whatever.


3) The individual would be given free reign in the area to which they  
contributed, and trusted to engage with the relevant part of the  
community for other areas of our codebase/resourcebase.




I am completely untainted because I have made a conscious effort to 
never read Sun's source because I always intended to do something like this.


4) A committer will lose commit status after 4 months of inactivity.   
In order to regain commit status, that person must begin  participating 
by offering a patch, new code, etc :)




Note that this means voting rights too.  This should be automated with a 
demon process that runs once a month and reaps dead people  No 
whining, you can't argue with CVS^M^M^MSVN's commit logging.


-andy




On Sep 20, 2005, at 10:07 AM, Geir Magnusson Jr. wrote:

Adding committers to a project is a problem every project faces,  and 
there are quite a large number of ways to do it.  I've been too  
worried about legal issues (and they pop up often) lately, and this  
is a good subject for us to resolve now.


We must

* have a visible process to ensure fairness
* a low barrier to entry to get people helping
* a rigid transparent process to ensure safety of the codebase in  
terms of IP provenance
* a cultural standard through which people work on things that they  
have demonstrated competence to the rest of the community.


For the last point, except for keeping people away from parts of  the 
subversion repository to which they have had prior exposure  they 
can't get resolved, we want to have one kind of committer.   However, 
it's clear that we all have different levels of talent in  different 
areas of technology.  So a nice way to work - I think -  is that 
committers are added for work in a specific area on a trust  basis, 
and if they want to work in other areas, they engage with  others 
already working there and get informal approval to commit at  will.  
IOW, don't just go rummaging through code in which you have  no 
experience, but work with those that are.  This is something  that 
I've heard work well in projects like Subversion, and we're  trying it 
in Geronimo to recognize that the barrier to entry varies  by person 
and technology they are interested in working on.


So I'd like to keep it really simple :

1) Anyone with a contribution that would belong in SVN can be  
considered for commit status by the PMC (PPMC while in  incubation).  
This contribution can be anything - new code, a patch  to existing 
code, documentation, a change to the website, testing  code or other 
resources, etc. (Hopefully this gets people  interested in harvesting 
good docs from the WIKI, as that's worth  commit status IMO)


2) If offered commit status by the PMC and accepted by the  
individual, we will get an ACQ from the individual along with an  ICLA 
if not already on file with the ASF secretary.  I'd ask that  
individuals wait to do an ACQ until offered, as the ACQ will be  
evolving over time as we learn, and I'd like to ask that a new  
committer have the current version on file as of the date of them  
being added as a commmitter.


3) The individual would be given free reign in the

Re: [discussion] Committer Addition Process

2005-09-20 Thread Davanum Srinivas
Geir,

Am looking for specific timelines and specific things an indiviual can
do to make sure that they catch the eye of the PMC/PPMC for commit
status. For a person looking from outside, there is no info on what
they should do (other than what they are doing right now) to become a
committer.

+1 to make a policy doc in svn. But am really interested in getting
the ball rolling on voting specific people, get them commit access AND
more importantly getting out of their way and let them decide/work on
harmony's future.

thanks,
dims

On 9/20/05, Geir Magnusson Jr. <[EMAIL PROTECTED]> wrote:
> I'm going to shameless steal an idea from Andy Oliver.  Amended with
> #4 :
> 
> 1) Anyone with a contribution that would belong in SVN can be
> considered for commit status by the PMC (PPMC while in incubation).
> This contribution can be anything - new code, a patch to existing
> code, documentation, a change to the website, testing code or other
> resources, etc. (Hopefully this gets people interested in harvesting
> good docs from the WIKI, as that's worth commit status IMO)
> 
> 2) If offered commit status by the PMC and accepted by the
> individual, we will get an ACQ from the individual along with an ICLA
> if not already on file with the ASF secretary.  I'd ask that
> individuals wait to do an ACQ until offered, as the ACQ will be
> evolving over time as we learn, and I'd like to ask that a new
> committer have the current version on file as of the date of them
> being added as a commmitter.
> 
> 3) The individual would be given free reign in the area to which they
> contributed, and trusted to engage with the relevant part of the
> community for other areas of our codebase/resourcebase.
> 
> 4) A committer will lose commit status after 4 months of inactivity.
> In order to regain commit status, that person must begin
> participating by offering a patch, new code, etc :)
> 
> 
> 
> On Sep 20, 2005, at 10:07 AM, Geir Magnusson Jr. wrote:
> 
> > Adding committers to a project is a problem every project faces,
> > and there are quite a large number of ways to do it.  I've been too
> > worried about legal issues (and they pop up often) lately, and this
> > is a good subject for us to resolve now.
> >
> > We must
> >
> > * have a visible process to ensure fairness
> > * a low barrier to entry to get people helping
> > * a rigid transparent process to ensure safety of the codebase in
> > terms of IP provenance
> > * a cultural standard through which people work on things that they
> > have demonstrated competence to the rest of the community.
> >
> > For the last point, except for keeping people away from parts of
> > the subversion repository to which they have had prior exposure
> > they can't get resolved, we want to have one kind of committer.
> > However, it's clear that we all have different levels of talent in
> > different areas of technology.  So a nice way to work - I think -
> > is that committers are added for work in a specific area on a trust
> > basis, and if they want to work in other areas, they engage with
> > others already working there and get informal approval to commit at
> > will.  IOW, don't just go rummaging through code in which you have
> > no experience, but work with those that are.  This is something
> > that I've heard work well in projects like Subversion, and we're
> > trying it in Geronimo to recognize that the barrier to entry varies
> > by person and technology they are interested in working on.
> >
> > So I'd like to keep it really simple :
> >
> > 1) Anyone with a contribution that would belong in SVN can be
> > considered for commit status by the PMC (PPMC while in
> > incubation).  This contribution can be anything - new code, a patch
> > to existing code, documentation, a change to the website, testing
> > code or other resources, etc. (Hopefully this gets people
> > interested in harvesting good docs from the WIKI, as that's worth
> > commit status IMO)
> >
> > 2) If offered commit status by the PMC and accepted by the
> > individual, we will get an ACQ from the individual along with an
> > ICLA if not already on file with the ASF secretary.  I'd ask that
> > individuals wait to do an ACQ until offered, as the ACQ will be
> > evolving over time as we learn, and I'd like to ask that a new
> > committer have the current version on file as of the date of them
> > being added as a commmitter.
> >
> > 3) The individual would be given free reign in the area to which
> > they contributed, and trusted to engage with the relevant part of
> > the community for other areas of our codebase/resourcebase.
> >
> > Comments?  If people agree to this, I'd like to add this to our
> > website as part of the project policy.
> >
> > geir
> >
> > --
> > Geir Magnusson Jr  +1-203-665-6437
> > [EMAIL PROTECTED]
> >
> >
> >
> 
> --
> Geir Magnusson Jr  +1-203-665-6437
> [EMAIL PROTECTED]
> 
> 
> 


-- 
Davanum Srinivas : http://wso2.com/ 

Re: [discussion] Committer Addition Process

2005-09-20 Thread acoliver

So I'd like to keep it really simple :

1) Anyone with a contribution that would belong in SVN can be  
considered for commit status by the PMC (PPMC while in incubation).   
This contribution can be anything - new code, a patch to existing  code, 
documentation, a change to the website, testing code or other  
resources, etc. (Hopefully this gets people interested in harvesting  
good docs from the WIKI, as that's worth commit status IMO)




I'm not sure how this seeds initial committers though.  Start with this, 
any existing Apache committer or member who has turned in his ACQ and 
requests commit access.  This will at least get an initial set of 
committers to the repository.  Its also the "likely suspects".


2) If offered commit status by the PMC and accepted by the  individual, 
we will get an ACQ from the individual along with an ICLA  if not 
already on file with the ASF secretary.  I'd ask that  individuals wait 
to do an ACQ until offered, as the ACQ will be  evolving over time as we 
learn, and I'd like to ask that a new  committer have the current 
version on file as of the date of them  being added as a commmitter.




This will probably be less of a problem when there is code.

3) The individual would be given free reign in the area to which they  
contributed, and trusted to engage with the relevant part of the  
community for other areas of our codebase/resourcebase.




And if they request access to another area provided they have no issues 
they should be given so forthwidth.  Start one UNIFIED project not 12.


Comments?  If people agree to this, I'd like to add this to our  website 
as part of the project policy.




If this opens the repository to code then I think its great.  If not, 
then I think it sucks.


-Andy


geir





Re: [discussion] Committer Addition Process

2005-09-20 Thread Geir Magnusson Jr.
I'm going to shameless steal an idea from Andy Oliver.  Amended with  
#4 :


1) Anyone with a contribution that would belong in SVN can be  
considered for commit status by the PMC (PPMC while in incubation).   
This contribution can be anything - new code, a patch to existing  
code, documentation, a change to the website, testing code or other  
resources, etc. (Hopefully this gets people interested in harvesting  
good docs from the WIKI, as that's worth commit status IMO)


2) If offered commit status by the PMC and accepted by the  
individual, we will get an ACQ from the individual along with an ICLA  
if not already on file with the ASF secretary.  I'd ask that  
individuals wait to do an ACQ until offered, as the ACQ will be  
evolving over time as we learn, and I'd like to ask that a new  
committer have the current version on file as of the date of them  
being added as a commmitter.


3) The individual would be given free reign in the area to which they  
contributed, and trusted to engage with the relevant part of the  
community for other areas of our codebase/resourcebase.


4) A committer will lose commit status after 4 months of inactivity.   
In order to regain commit status, that person must begin  
participating by offering a patch, new code, etc :)




On Sep 20, 2005, at 10:07 AM, Geir Magnusson Jr. wrote:

Adding committers to a project is a problem every project faces,  
and there are quite a large number of ways to do it.  I've been too  
worried about legal issues (and they pop up often) lately, and this  
is a good subject for us to resolve now.


We must

* have a visible process to ensure fairness
* a low barrier to entry to get people helping
* a rigid transparent process to ensure safety of the codebase in  
terms of IP provenance
* a cultural standard through which people work on things that they  
have demonstrated competence to the rest of the community.


For the last point, except for keeping people away from parts of  
the subversion repository to which they have had prior exposure  
they can't get resolved, we want to have one kind of committer.   
However, it's clear that we all have different levels of talent in  
different areas of technology.  So a nice way to work - I think -  
is that committers are added for work in a specific area on a trust  
basis, and if they want to work in other areas, they engage with  
others already working there and get informal approval to commit at  
will.  IOW, don't just go rummaging through code in which you have  
no experience, but work with those that are.  This is something  
that I've heard work well in projects like Subversion, and we're  
trying it in Geronimo to recognize that the barrier to entry varies  
by person and technology they are interested in working on.


So I'd like to keep it really simple :

1) Anyone with a contribution that would belong in SVN can be  
considered for commit status by the PMC (PPMC while in  
incubation).  This contribution can be anything - new code, a patch  
to existing code, documentation, a change to the website, testing  
code or other resources, etc. (Hopefully this gets people  
interested in harvesting good docs from the WIKI, as that's worth  
commit status IMO)


2) If offered commit status by the PMC and accepted by the  
individual, we will get an ACQ from the individual along with an  
ICLA if not already on file with the ASF secretary.  I'd ask that  
individuals wait to do an ACQ until offered, as the ACQ will be  
evolving over time as we learn, and I'd like to ask that a new  
committer have the current version on file as of the date of them  
being added as a commmitter.


3) The individual would be given free reign in the area to which  
they contributed, and trusted to engage with the relevant part of  
the community for other areas of our codebase/resourcebase.


Comments?  If people agree to this, I'd like to add this to our  
website as part of the project policy.


geir

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





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




[discussion] Committer Addition Process

2005-09-20 Thread Geir Magnusson Jr.
Adding committers to a project is a problem every project faces, and  
there are quite a large number of ways to do it.  I've been too  
worried about legal issues (and they pop up often) lately, and this  
is a good subject for us to resolve now.


We must

* have a visible process to ensure fairness
* a low barrier to entry to get people helping
* a rigid transparent process to ensure safety of the codebase in  
terms of IP provenance
* a cultural standard through which people work on things that they  
have demonstrated competence to the rest of the community.


For the last point, except for keeping people away from parts of the  
subversion repository to which they have had prior exposure they  
can't get resolved, we want to have one kind of committer.  However,  
it's clear that we all have different levels of talent in different  
areas of technology.  So a nice way to work - I think - is that  
committers are added for work in a specific area on a trust basis,  
and if they want to work in other areas, they engage with others  
already working there and get informal approval to commit at will.   
IOW, don't just go rummaging through code in which you have no  
experience, but work with those that are.  This is something that  
I've heard work well in projects like Subversion, and we're trying it  
in Geronimo to recognize that the barrier to entry varies by person  
and technology they are interested in working on.


So I'd like to keep it really simple :

1) Anyone with a contribution that would belong in SVN can be  
considered for commit status by the PMC (PPMC while in incubation).   
This contribution can be anything - new code, a patch to existing  
code, documentation, a change to the website, testing code or other  
resources, etc. (Hopefully this gets people interested in harvesting  
good docs from the WIKI, as that's worth commit status IMO)


2) If offered commit status by the PMC and accepted by the  
individual, we will get an ACQ from the individual along with an ICLA  
if not already on file with the ASF secretary.  I'd ask that  
individuals wait to do an ACQ until offered, as the ACQ will be  
evolving over time as we learn, and I'd like to ask that a new  
committer have the current version on file as of the date of them  
being added as a commmitter.


3) The individual would be given free reign in the area to which they  
contributed, and trusted to engage with the relevant part of the  
community for other areas of our codebase/resourcebase.


Comments?  If people agree to this, I'd like to add this to our  
website as part of the project policy.


geir

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




Re: Code into SVN, not the WIKI (Re: [arch] VMCore / Component Model)

2005-09-20 Thread Geir Magnusson Jr.


On Sep 20, 2005, at 9:29 AM, [EMAIL PROTECTED] wrote:


Dude,

It's catch 22.  There weren't any legitimate committers (because  
there was no initial code base) at the beginning of the project to  
"vote". Because of this, there needs to be a lower barrier of entry  
than a formal procedure.


Having a "barrier to entry" isn't in conflict with a "formal  
procedure".  We are going to have a formal procedure because the code  
pedigree is critical for this project.


Otherwise I might suggest a segment of the willing go off and  
create an initial codebase in a CVS/SVN somewhere that is more open  
and then submit it.  For a project with no code this seems a bit  
officious.  Let the "likely" people in (Mladen for instance is an  
apache committer in good standing who has plans to do something)  
and then let Darwin sort them out.  Then they can vote in  
committers in the normal way.  The project needs code!!!  Rather  
than being officious, the goal should be to facillitate every means  
possible to make that happen.  It will be messy and there will be  
serveral misdirections but thats what a repository is for.  Forward  
momentum.


This is clearly a position we all believe in - we need code.  I'll  
remark in another summary message.


geir




-Andy

Geir Magnusson Jr. wrote:


On Sep 20, 2005, at 9:11 AM, Davanum Srinivas wrote:


Geir,

When folks have sent in their ACQ/ICLA, we should give them direct
commit access (after maybe a VOTE on the ppmc list). I really don't
like putting so many road blocks, what exactly are we waiting for?


What roadblocks are you talking about?
We certainly want a vote and not just make everyone who fills in   
paperwork a committer.  I don't think we need a high bar to  
entry,  but at least a patch, maybe?  This is a good subject to  
discuss.
*Any* bulk contribution - i.e. code created outside of the day to  
day  flow of the project by committers should come into a JIRA so  
the  contribution can be inspected and understood to be a clearly   
delineated contribution.  We will be keeping a record of all such   
contributions.

geir





Assuming that all is well with the ACQ, this means that we can  
accept

the code you have put in the WIKI into SVN for people to start
playing with.  You will have to add the code to a JIRA entry for  
the

project, so you can definitively offer it under the Apache license.




Thanks,
dims






--
Andrew C. Oliver
SuperLink Software, Inc.

Java to Excel using POI
http://www.superlinksoftware.com/services/poi
Commercial support including features added/implemented, bugs fixed.




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




Re: Code into SVN, not the WIKI (Re: [arch] VMCore / Component Model)

2005-09-20 Thread Geir Magnusson Jr.


On Sep 20, 2005, at 9:36 AM, Davanum Srinivas wrote:


So let's do it then...Everyone interested should fill in their
paperwork by end of the month. First week next month we can have a
VOTE on the PPMC for each person based on their contributions so far.
(Let each person state what they are bringing to the table as well if
they haven't already). So by end of October we should have a roster of
folks with commit privs who can then vote in the next set of
committers (or as and when they want to).

I really don't want to wait another 4 months and see that we are still
in the same situation as we are in today.


We won't be.  I'll post another note outlining what I think we should  
do, and we can agree.


geir



Thanks,
dims

On 9/20/05, Geir Magnusson Jr. <[EMAIL PROTECTED]> wrote:



On Sep 20, 2005, at 9:11 AM, Davanum Srinivas wrote:



Geir,

When folks have sent in their ACQ/ICLA, we should give them direct
commit access (after maybe a VOTE on the ppmc list). I really don't
like putting so many road blocks, what exactly are we waiting for?



What roadblocks are you talking about?

We certainly want a vote and not just make everyone who fills in
paperwork a committer.  I don't think we need a high bar to entry,
but at least a patch, maybe?  This is a good subject to discuss.

*Any* bulk contribution - i.e. code created outside of the day to day
flow of the project by committers should come into a JIRA so the
contribution can be inspected and understood to be a clearly
delineated contribution.  We will be keeping a record of all such
contributions.

geir






Assuming that all is well with the ACQ, this means that we can  
accept

the code you have put in the WIKI into SVN for people to start
playing with.  You will have to add the code to a JIRA entry for  
the

project, so you can definitively offer it under the Apache license.




Thanks,
dims





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







--
Davanum Srinivas : http://wso2.com/ - Oxygenating The Web Service  
Platform





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




Re: Code into SVN, not the WIKI (Re: [arch] VMCore / Component Model)

2005-09-20 Thread Davanum Srinivas
So let's do it then...Everyone interested should fill in their
paperwork by end of the month. First week next month we can have a
VOTE on the PPMC for each person based on their contributions so far.
(Let each person state what they are bringing to the table as well if
they haven't already). So by end of October we should have a roster of
folks with commit privs who can then vote in the next set of
committers (or as and when they want to).

I really don't want to wait another 4 months and see that we are still
in the same situation as we are in today.

Thanks,
dims

On 9/20/05, Geir Magnusson Jr. <[EMAIL PROTECTED]> wrote:
> 
> On Sep 20, 2005, at 9:11 AM, Davanum Srinivas wrote:
> 
> > Geir,
> >
> > When folks have sent in their ACQ/ICLA, we should give them direct
> > commit access (after maybe a VOTE on the ppmc list). I really don't
> > like putting so many road blocks, what exactly are we waiting for?
> 
> What roadblocks are you talking about?
> 
> We certainly want a vote and not just make everyone who fills in
> paperwork a committer.  I don't think we need a high bar to entry,
> but at least a patch, maybe?  This is a good subject to discuss.
> 
> *Any* bulk contribution - i.e. code created outside of the day to day
> flow of the project by committers should come into a JIRA so the
> contribution can be inspected and understood to be a clearly
> delineated contribution.  We will be keeping a record of all such
> contributions.
> 
> geir
> 
> >
> >
> >> Assuming that all is well with the ACQ, this means that we can accept
> >> the code you have put in the WIKI into SVN for people to start
> >> playing with.  You will have to add the code to a JIRA entry for the
> >> project, so you can definitively offer it under the Apache license.
> >>
> >
> > Thanks,
> > dims
> >
> >
> 
> --
> Geir Magnusson Jr  +1-203-665-6437
> [EMAIL PROTECTED]
> 
> 
> 


-- 
Davanum Srinivas : http://wso2.com/ - Oxygenating The Web Service Platform


Re: [arch] VMCore / Component Model

2005-09-20 Thread David Tanzer

Geir Magnusson Jr. wrote:
Have you tried to communicate between two components, one in C(++)  and 
one in Java?


No, I didn't try that yet. For native compiled java code (gjc) I guess
it should be straight forward to extend my proof-of-concept to support
it.
For java code which runs in the harmony vm the interface will have to
be different, but we need this interface too.


geir

On Sep 19, 2005, at 1:46 PM, David Tanzer wrote:


Today I have added some additional Information to the Wiki page.

We should also consider using C++ and abstract classes to maintain our
component model. While this would make inter-component communication
slightly slower it would be easier to maintain. We should also think
about using an existing component model like OSGi.

The model I posted provides pretty fast communication between  components
without sacrificing too much flexibility, but it is maybe not as  easy to
maintain as a clean, object-oriented implementation (i.e. C++). We  could
discuss how important these aspects are to us, i.e. how much runtime
efficiency we are willing to sacrifice for maintainability and
flexibility and vice-versa.

Regards, David.

On Fri, 2005-09-16 at 21:47 +0200, David Tanzer wrote:


Ok, it took a little bit longer than I first expected, but now my
proof-of-concept implementation of the component model I described is
available in the wiki:
http://wiki.apache.org/harmony/ComponentModelFunctionPointers
I have also linked it from the harmony architecture page.

It contains a mechanism for loading components and a basic versioning
and dependency management mechanism. The test case loads two  
components,

where one depends on the other. I'll add some more explanations to  the
wiki page when I have more time, hopefully at the weekend.

I have made several assumptions about the directory structure, the
coding conventions and the documentation conventions, we should maybe
discuss this in a different thread.

Regards, David.

On Tue, 2005-09-13 at 17:27 +0100, Tim Ellison wrote:


David Tanzer wrote:

Since we already started to define some component interfaces I  
think we

also should start thinking about a component model which loads /
connects such components. Maybe there are also some existing  
solutions

we might want to look at (I must confess I didn't really search  yet).



Agreed, plus managing the API itself to ensure forwards/backwards
version compatibility.


I guess a requirement for such a component manager would be that  
it can

load and connect components at runtime and that the specific
implementations which are loaded can be configured. It might  also be
good if the same component implementations can be linked at  
compile time
(i.e. statically) which could have benefits on embedded  platforms, 
but

I'm not sure if we really need this.



I'm assuming that you are speculating on component management  
beyond the
platform support (i.e. DLL-hell). The java world is already on  this 
path

with the OSGi framework (e.g. Felix).  It will require a non-trivial
solution to ensure that the runtime flexibility does not incur an
unacceptable runtime cost.



Another requirement would be that the components can be written in
different programming languages (i.e. C, C++, Java, ...). It isn't
really a problem to solve this for C and C++, but can we also  easily
support other programming languages?

A simple way to implement such a component model in C would be an
approach similar to the one Tim Ellison described in [1] where he
explains the structure of the J9 VM's portability library. I  started
writing a proof of concept implementation for this, and I'll add it
to the wiki as soon as it's finished.



I look forward to seeing the proof of concept.  Were you thinking of
introducing versioning and dependency management style functions?



It would be interesting to have several such proof-of-concept
implementations of component models which we can study and the  decide
which to use. We could even write "import mechanisms" for the  
different

component models so they can import and use components from another
model too (of course this would normally imply reduced  performance).

Regards, David.

[1]
http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/ 
200509.mbox/[EMAIL PROTECTED]







--
David Tanzer, Haghofstr. 29, A-3352 St. Peter/Au, Austria/Europe
http://deltalabs.at -- http://dev.guglhupf.net -- http://guglhupf.net
My PGP Public Key: http://guglhupf.net/david/david.asc
--
AUFGABEN DER PHYSIK -- QUANTENMECHANIK
Gegebene Konstante: m(Kuh)=400 kg

Die Kuh befinde sich auf einer Weide, die ringsum durch einen Zaun  
abgegrenzt ist. Der
Weidezaun sie ideal gebaut, sodass die Kuh ihn (klassich gesehen)  
nicht passieren kann.
Begrnden Sie, dass man die Kuh trotzdem mit gewisser  
Wahrscheinlichkeit ausserhalb

der Weide antrifft.







Re: Code into SVN, not the WIKI (Re: [arch] VMCore / Component Model)

2005-09-20 Thread acoliver

Dude,

It's catch 22.  There weren't any legitimate committers (because there 
was no initial code base) at the beginning of the project to "vote". 
Because of this, there needs to be a lower barrier of entry than a 
formal procedure.  Otherwise I might suggest a segment of the willing go 
off and create an initial codebase in a CVS/SVN somewhere that is more 
open and then submit it.  For a project with no code this seems a bit 
officious.  Let the "likely" people in (Mladen for instance is an apache 
committer in good standing who has plans to do something) and then let 
Darwin sort them out.  Then they can vote in committers in the normal 
way.  The project needs code!!!  Rather than being officious, the goal 
should be to facillitate every means possible to make that happen.  It 
will be messy and there will be serveral misdirections but thats what a 
repository is for.  Forward momentum.


-Andy

Geir Magnusson Jr. wrote:


On Sep 20, 2005, at 9:11 AM, Davanum Srinivas wrote:


Geir,

When folks have sent in their ACQ/ICLA, we should give them direct
commit access (after maybe a VOTE on the ppmc list). I really don't
like putting so many road blocks, what exactly are we waiting for?



What roadblocks are you talking about?

We certainly want a vote and not just make everyone who fills in  
paperwork a committer.  I don't think we need a high bar to entry,  but 
at least a patch, maybe?  This is a good subject to discuss.


*Any* bulk contribution - i.e. code created outside of the day to day  
flow of the project by committers should come into a JIRA so the  
contribution can be inspected and understood to be a clearly  delineated 
contribution.  We will be keeping a record of all such  contributions.


geir





Assuming that all is well with the ACQ, this means that we can accept
the code you have put in the WIKI into SVN for people to start
playing with.  You will have to add the code to a JIRA entry for the
project, so you can definitively offer it under the Apache license.



Thanks,
dims







--
Andrew C. Oliver
SuperLink Software, Inc.

Java to Excel using POI
http://www.superlinksoftware.com/services/poi
Commercial support including features added/implemented, bugs fixed.



Re: Code into SVN, not the WIKI (Re: [arch] VMCore / Component Model)

2005-09-20 Thread Geir Magnusson Jr.


On Sep 20, 2005, at 9:11 AM, Davanum Srinivas wrote:


Geir,

When folks have sent in their ACQ/ICLA, we should give them direct
commit access (after maybe a VOTE on the ppmc list). I really don't
like putting so many road blocks, what exactly are we waiting for?


What roadblocks are you talking about?

We certainly want a vote and not just make everyone who fills in  
paperwork a committer.  I don't think we need a high bar to entry,  
but at least a patch, maybe?  This is a good subject to discuss.


*Any* bulk contribution - i.e. code created outside of the day to day  
flow of the project by committers should come into a JIRA so the  
contribution can be inspected and understood to be a clearly  
delineated contribution.  We will be keeping a record of all such  
contributions.


geir





Assuming that all is well with the ACQ, this means that we can accept
the code you have put in the WIKI into SVN for people to start
playing with.  You will have to add the code to a JIRA entry for the
project, so you can definitively offer it under the Apache license.



Thanks,
dims




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




Re: [arch] VMCore / Component Model

2005-09-20 Thread David Tanzer

Peter Edworthy wrote:

[Snip]
First of all thanks to David Tanzer, having something solid to start from
makes a tremendous difference. The code captures a basic functional spec
for a component loader very well.

I'm not very familiar with UNIX dynamic libs so if this is way off please
say;

It seems dlfcn is quite platform specific; would ltdl make more sense?


Maybe. I just saw that the APR also provides methods for doing this, so
that would be a good solution too. As i said, my code should only be
a basis for discussion and a proof-of-concept.


It seems as though only one 'native method' is provided per file this way,
is that just for the demo code or is it a limitation of this method?


No, it's not a limitation of the method, the "struct TestComponent*"
could store an arbitrary number of functions.


Am I right in thinking that to use the table of 'native method' pointers
we will have to place the operands on the stack and then jump to the
method (just checking as the code to do that would also be a component and
so how would we bootstrap it, jikes had a clever method involving writing
from a JVM a startup JVM image with the native code in it)?


I'm not sure if we are talking about the same thing here, maybe I just
fail to see some important part of the bigger picture.

My intention was to provide a mechanism with which we could handle
components like the ones for which Weldon Washburn wrote the interfaces
for. For example, it could be used to load implementations of
http://wiki.apache.org/harmony-data/attachments/HarmonyArchitecture/attachments/gc_interface.txt
and
http://wiki.apache.org/harmony-data/attachments/HarmonyArchitecture/attachments/vm_gc_interface.txt
and interconnect them. It focuses on C (or C++) implementations so far,
I'm not sure if we can easily extend it to support other programming
languages.

I think what you are talking about here is more like the "light-weight
native calls" which where proposed by Mladen Turk (correct me if I'm
wrong):
http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200509.mbox/[EMAIL
 PROTECTED]


Could this be implemented in Java so long as a native call mechanism
existed to 'register' components with each other, there is probably no
compelling reason to do this but it might improve cross platform support.


That should be no big problem. I mentioned earlier that it would be cool
if we had several different prototypes we can play with, compare to each
other and discuss about, so maybe someone volunteers for writing one ;-)


[Code-In lining]
To have a JIT we must have a method of storing 'compiled code' and calling
it we could create the basic components as native code stored in the JVM
using same system as the JIT. The class loader could then mark inside the
byte stream a call to this native code in place of the original byte code.
Or the interpreter could act as though the byte code should be interpreted
as a call to that method.

If this is too inefficient then the JIT will compile the method that the
call is within and at this point may well decide to in line the code from
the method call.

I don't see why we would want to or need to create a different in lining
method for these aspects of the interpretor. If we are using the boot
strapping method like jikes then maybe some methods should be JIT'ed
before the image is written.

[native code storage for the JIT]
I've never tried to create a JIT, but I assume we need to consider some
way of describing the side-effects of a section of code; i.e. what
registers are changed/used as input and output.

Or do JITs not normally need this as they compile whole methods and so use
the stack for data in and out and assume all registers are dirty?

Thanks in advance,
Peter





Re: Code into SVN, not the WIKI (Re: [arch] VMCore / Component Model)

2005-09-20 Thread Davanum Srinivas
Geir,

When folks have sent in their ACQ/ICLA, we should give them direct
commit access (after maybe a VOTE on the ppmc list). I really don't
like putting so many road blocks, what exactly are we waiting for?

> Assuming that all is well with the ACQ, this means that we can accept
> the code you have put in the WIKI into SVN for people to start
> playing with.  You will have to add the code to a JIRA entry for the
> project, so you can definitively offer it under the Apache license.

Thanks,
dims


Re: Call for Contributions (was Re: 4 Months and...)

2005-09-20 Thread Geir Magnusson Jr.


On Sep 20, 2005, at 8:52 AM, [EMAIL PROTECTED] wrote:

This is not likely to actually attract code.  Opening up SVN to  
committership would.  You've described a reverse of how most  
projects work if you will such that the barrier is to initial  
commit rather than lazy veto/etc.


Most projects give committership to people that have offered code and  
patches, don't they?


geir



-Andy

Geir Magnusson Jr. wrote:

I'd like to restate that we are always looking for code   
contributions.  I do know of some in preparation, but it should  
be  clear that if you have anything to offer (hey, Dan!) please  
post a  note to dev list to discuss. :)

geir
On Sep 19, 2005, at 5:35 PM, [EMAIL PROTECTED] wrote:

Four months and no code.  Open up the repository and let the   
willing start committing.  The discussion has gotten so verbose   
that there are already people publishing edited digests.  Code  
will  reduce the discussion :-)


-Andy









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




Re: Call for Contributions (was Re: 4 Months and...)

2005-09-20 Thread acoliver
This is not likely to actually attract code.  Opening up SVN to 
committership would.  You've described a reverse of how most projects 
work if you will such that the barrier is to initial commit rather than 
lazy veto/etc.


-Andy

Geir Magnusson Jr. wrote:
I'd like to restate that we are always looking for code  contributions.  
I do know of some in preparation, but it should be  clear that if you 
have anything to offer (hey, Dan!) please post a  note to dev list to 
discuss. :)


geir


On Sep 19, 2005, at 5:35 PM, [EMAIL PROTECTED] wrote:

Four months and no code.  Open up the repository and let the  willing 
start committing.  The discussion has gotten so verbose  that there 
are already people publishing edited digests.  Code will  reduce the 
discussion :-)


-Andy









Re: [arch] VMCore / Component Model

2005-09-20 Thread Geir Magnusson Jr.


On Sep 20, 2005, at 12:26 AM, Robin Garner wrote:


I think it's important not to take Tim's point about performance too
lightly here.  There are some key interfaces between components that
can't afford the overhead of a function call, let alone an indirect
call via a function pointer.

Three instances that come to mind are:
- Allocation.  For best performance, the common case of a new() needs
  to be inlined directly into the compiled code.
- Write barrier (and read barrier if we need one).  The common case
  of a write barrier should be a handful of instructions.
- Yield points.  Again should inline down to a couple of instructions.



I'd be interested in any approaches you may have thought of for these
interfaces.


Are these things the components would worry about, or can an  
optimizer deal with these "later" if possible?


Now, I'm really just making this up as I go along... what some people  
call "thinking out loud", but I won't grace this with the term  
"thinking".  I've never written or been inside VM internals, so I'm  
inventing out of whole cloth here...


In earlier discussions of componentization, I kept imagining a model  
where we have a defined set of capabilities that a component could  
optionally implement.  There would be a required set, as well as  
optional ones.  (This thinking is inspired by the old MSFT COM  
infrastructure...)


In the case of a memory manager, a required one would be the  
"interface" containing the function pointers for a memory management.


An optional one would be "NativeInlineConversion" or something, where  
an optimizer could find a new() and if it doesn't support the native  
inlineing, use the function call into the component, and if it does,  
ask the component for the bit of complied code to use.


I'll sketch these out in code once we get David's code contributed  
properly into JIRA and we register his ACQ.



On Mon, 2005-09-19 at 19:46 +0200, David Tanzer wrote:


Today I have added some additional Information to the Wiki page.

We should also consider using C++ and abstract classes to maintain  
our

component model. While this would make inter-component communication
slightly slower it would be easier to maintain. We should also think
about using an existing component model like OSGi.

The model I posted provides pretty fast communication between  
components
without sacrificing too much flexibility, but it is maybe not as  
easy to
maintain as a clean, object-oriented implementation (i.e. C++). We  
could

discuss how important these aspects are to us, i.e. how much runtime
efficiency we are willing to sacrifice for maintainability and
flexibility and vice-versa.



First order of priority, IMO, is to decide what are the performance
critical components, and what are not.  For the infrequent cases,  
we can

afford a heavy-weight approach, for those that happen every few
bytecodes, we need to be lean and mean.



Is this the kind of optimization you want to do now, or do we want to  
put together a structure that supports it for later?


geir

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




Re: [arch] VMCore / Component Model

2005-09-20 Thread Geir Magnusson Jr.
Have you tried to communicate between two components, one in C(++)  
and one in Java?


geir

On Sep 19, 2005, at 1:46 PM, David Tanzer wrote:


Today I have added some additional Information to the Wiki page.

We should also consider using C++ and abstract classes to maintain our
component model. While this would make inter-component communication
slightly slower it would be easier to maintain. We should also think
about using an existing component model like OSGi.

The model I posted provides pretty fast communication between  
components
without sacrificing too much flexibility, but it is maybe not as  
easy to
maintain as a clean, object-oriented implementation (i.e. C++). We  
could

discuss how important these aspects are to us, i.e. how much runtime
efficiency we are willing to sacrifice for maintainability and
flexibility and vice-versa.

Regards, David.

On Fri, 2005-09-16 at 21:47 +0200, David Tanzer wrote:


Ok, it took a little bit longer than I first expected, but now my
proof-of-concept implementation of the component model I described is
available in the wiki:
http://wiki.apache.org/harmony/ComponentModelFunctionPointers
I have also linked it from the harmony architecture page.

It contains a mechanism for loading components and a basic versioning
and dependency management mechanism. The test case loads two  
components,
where one depends on the other. I'll add some more explanations to  
the

wiki page when I have more time, hopefully at the weekend.

I have made several assumptions about the directory structure, the
coding conventions and the documentation conventions, we should maybe
discuss this in a different thread.

Regards, David.

On Tue, 2005-09-13 at 17:27 +0100, Tim Ellison wrote:


David Tanzer wrote:

Since we already started to define some component interfaces I  
think we

also should start thinking about a component model which loads /
connects such components. Maybe there are also some existing  
solutions
we might want to look at (I must confess I didn't really search  
yet).




Agreed, plus managing the API itself to ensure forwards/backwards
version compatibility.


I guess a requirement for such a component manager would be that  
it can

load and connect components at runtime and that the specific
implementations which are loaded can be configured. It might  
also be
good if the same component implementations can be linked at  
compile time
(i.e. statically) which could have benefits on embedded  
platforms, but

I'm not sure if we really need this.



I'm assuming that you are speculating on component management  
beyond the
platform support (i.e. DLL-hell). The java world is already on  
this path

with the OSGi framework (e.g. Felix).  It will require a non-trivial
solution to ensure that the runtime flexibility does not incur an
unacceptable runtime cost.



Another requirement would be that the components can be written in
different programming languages (i.e. C, C++, Java, ...). It isn't
really a problem to solve this for C and C++, but can we also  
easily

support other programming languages?

A simple way to implement such a component model in C would be an
approach similar to the one Tim Ellison described in [1] where he
explains the structure of the J9 VM's portability library. I  
started

writing a proof of concept implementation for this, and I'll add it
to the wiki as soon as it's finished.



I look forward to seeing the proof of concept.  Were you thinking of
introducing versioning and dependency management style functions?



It would be interesting to have several such proof-of-concept
implementations of component models which we can study and the  
decide
which to use. We could even write "import mechanisms" for the  
different

component models so they can import and use components from another
model too (of course this would normally imply reduced  
performance).


Regards, David.

[1]
http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/ 
200509.mbox/[EMAIL PROTECTED]







--
David Tanzer, Haghofstr. 29, A-3352 St. Peter/Au, Austria/Europe
http://deltalabs.at -- http://dev.guglhupf.net -- http://guglhupf.net
My PGP Public Key: http://guglhupf.net/david/david.asc
--
AUFGABEN DER PHYSIK -- QUANTENMECHANIK
Gegebene Konstante: m(Kuh)=400 kg

Die Kuh befinde sich auf einer Weide, die ringsum durch einen Zaun  
abgegrenzt ist. Der
Weidezaun sie ideal gebaut, sodass die Kuh ihn (klassich gesehen)  
nicht passieren kann.
Begrnden Sie, dass man die Kuh trotzdem mit gewisser  
Wahrscheinlichkeit ausserhalb

der Weide antrifft.



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




Re: [arch] VMCore / Component Model

2005-09-20 Thread Geir Magnusson Jr.


On Sep 13, 2005, at 1:47 PM, David Tanzer wrote:


On Tue, 2005-09-13 at 17:27 +0100, Tim Ellison wrote:


[Snip]

I guess a requirement for such a component manager would be that  
it can

load and connect components at runtime and that the specific
implementations which are loaded can be configured. It might also be
good if the same component implementations can be linked at  
compile time
(i.e. statically) which could have benefits on embedded  
platforms, but

I'm not sure if we really need this.



I'm assuming that you are speculating on component management  
beyond the
platform support (i.e. DLL-hell). The java world is already on  
this path

with the OSGi framework (e.g. Felix).  It will require a non-trivial
solution to ensure that the runtime flexibility does not incur an
unacceptable runtime cost.


[Snip]


I look forward to seeing the proof of concept.  Were you thinking of
introducing versioning and dependency management style functions?



I was thinking about a really simple model, basically only a framework
which loads shared libraries and creates the function pointer  
tables you
described in your posting. Versioning and dependency management  
will be

a requirement, but I didn't consider it so far in my proof-of-concept
(which will take a few more days to finish), and the libraries which
are loaded should be configurable.

I also think we should be careful not to introduce too much runtime
costs, and I'm implementing my prototype under the assumption that we
don't need to manage arbitrary components (so I assume that the
component interfaces and dependencies are known at compile time).
Anyway it would be possible to extend my approach for arbitrary (i.e.
unknown) components.


I think that ultimately, this will be necessary.  I imagine we want  
to be able to allow others to plug in new components easily.


geir

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




Re: [arch] VMCore / Component Model

2005-09-20 Thread Peter Edworthy
Hi,

sorry if this is a bit long, my fault for not catching up with the list
for a few days ;-}>

headlines are:

* Cross-platform and language support
  - ltdl vs dlfcn
  - native code needed to access native code, jikes boot strap system
  - Java based loader?

* In-lining of code
  - let the JIT do it

* native code storage for JIT use
  - how much information is needed to allow good optimization?

[cross-platform support]

First of all thanks to David Tanzer, having something solid to start from
makes a tremendous difference. The code captures a basic functional spec
for a component loader very well.

I'm not very familiar with UNIX dynamic libs so if this is way off please
say;

It seems dlfcn is quite platform specific; would ltdl make more sense?

It seems as though only one 'native method' is provided per file this way,
is that just for the demo code or is it a limitation of this method?

Am I right in thinking that to use the table of 'native method' pointers
we will have to place the operands on the stack and then jump to the
method (just checking as the code to do that would also be a component and
so how would we bootstrap it, jikes had a clever method involving writing
from a JVM a startup JVM image with the native code in it)?

Could this be implemented in Java so long as a native call mechanism
existed to 'register' components with each other, there is probably no
compelling reason to do this but it might improve cross platform support.

[Code-In lining]
To have a JIT we must have a method of storing 'compiled code' and calling
it we could create the basic components as native code stored in the JVM
using same system as the JIT. The class loader could then mark inside the
byte stream a call to this native code in place of the original byte code.
Or the interpreter could act as though the byte code should be interpreted
as a call to that method.

If this is too inefficient then the JIT will compile the method that the
call is within and at this point may well decide to in line the code from
the method call.

I don't see why we would want to or need to create a different in lining
method for these aspects of the interpretor. If we are using the boot
strapping method like jikes then maybe some methods should be JIT'ed
before the image is written.

[native code storage for the JIT]
I've never tried to create a JIT, but I assume we need to consider some
way of describing the side-effects of a section of code; i.e. what
registers are changed/used as input and output.

Or do JITs not normally need this as they compile whole methods and so use
the stack for data in and out and assume all registers are dirty?

Thanks in advance,
Peter