Re: svn commit: r412928 - /incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/util/Collections.java

2006-06-09 Thread Mark Hindess

This breaks the build.  I'm getting:

compile:
[javac] Compiling 1839 source files to /pbuilder/tmp/Harmony.clean/build
[javac] 
/pbuilder/tmp/Harmony.clean/modules/luni/src/main/java/java/util/Collections.java:1074:
 name clash: add(java.lang.Object) in 
java.util.Collections.UnmodifiableCollectionjava.util.Map.EntryK,V and 
add(E) in java.util.Setjava.util.Map.EntryK,V have the same erasure, yet 
neither overrides the other
[javac] private static class UnmodifiableEntrySetK, V extends 
UnmodifiableSetMap.EntryK, V {
[javac]^

w/sun 1.5 javac on linux.

Regards,
 Mark.

On 9 June 2006 at 4:59, [EMAIL PROTECTED] wrote:
 Author: ndbeyer
 Date: Thu Jun  8 21:59:15 2006
 New Revision: 412928
 
 URL: http://svn.apache.org/viewvc?rev=412928view=rev
 Log:
 Generification of methods.
 
 Modified:
 incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java
 /util/Collections.java
 
 Modified: incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/jav
 a/java/util/Collections.java
 URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/m
 odules/luni/src/main/java/java/util/Collections.java?rev=412928r1=412927r2=
 412928view=diff
 =
 =
 --- incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java
 /util/Collections.java (original)
 +++ incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java
 /util/Collections.java Thu Jun  8 21:59:15 2006
 @@ -27,15 +27,15 @@
   */
  public class Collections {
  
 - private static final class CopiesList extends AbstractList implements
 + private static final class CopiesListE extends AbstractListE implem
 ents
   Serializable {
   private static final long serialVersionUID = 273909926839871180
 0L;
  
   private final int n;
  
 - private final Object element;
 + private final E element;
  
 - CopiesList(int length, Object object) {
 + CopiesList(int length, E object) {
   if (length  0) {
   throw new IllegalArgumentException();
   }
 @@ -51,7 +51,7 @@
   return n;
   }
  
 - public Object get(int location) {
 + public E get(int location) {
   if (0 = location  location  n)
   return element;
   throw new IndexOutOfBoundsException();
 @@ -162,13 +162,13 @@
  }
  }
  
 - private static final class SingletonSet extends AbstractSet implements
 + private static final class SingletonSetE extends AbstractSetE imple
 ments
   Serializable {
   private static final long serialVersionUID = 319368720755043167
 9L;
  
 - final Object element;
 + final E element;
  
 - SingletonSet(Object object) {
 + SingletonSet(E object) {
   element = object;
   }
  
 @@ -180,15 +180,15 @@
   return 1;
   }
  
 - public Iterator iterator() {
 - return new Iterator() {
 + public IteratorE iterator() {
 + return new IteratorE() {
   boolean hasNext = true;
  
   public boolean hasNext() {
   return hasNext;
   }
  
 - public Object next() {
 + public E next() {
   if (hasNext) {
   hasNext = false;
   return element;
 @@ -203,13 +203,13 @@
   }
   }
  
 - private static final class SingletonList extends AbstractList implement
 s
 + private static final class SingletonListE extends AbstractListE imp
 lements
   Serializable {
   private static final long serialVersionUID = 309373661874065295
 1L;
  
 - final Object element;
 + final E element;
  
 - SingletonList(Object object) {
 + SingletonList(E object) {
   element = object;
   }
  
 @@ -217,7 +217,7 @@
   return element == null ? object == null : element.equal
 s(object);
   }
  
 - public Object get(int location) {
 + public E get(int location) {
   if (location == 0)
   return element;
   throw new IndexOutOfBoundsException();
 @@ -228,13 +228,14 @@
   }
   }
  
 - private static final class SingletonMap extends AbstractMap implements
 + private 

[DRLVM] MMTk vmmagic classes, can someone w/ compiler experience help me?

2006-06-09 Thread Weldon Washburn

All,

I am hoping someone who has worked on compilers can actually do the
JIT modifications.  I don't have much experience in compilers.

I am trying to get MMTk write barriers integrated into Harmony DRLVM.
I came up with the following scheme.  I don't know if it is correct.
It would be great if someone from the MMTk crowd looked at it.  If it
helps, I can also post this message on Jikes/MMTk mailing list.

Build a shim between the DRLVM class loader and Jitrino.JET.  The shim
would contain a lookup table that would map _local_ variables of
specific types to int.  In particular, the shim would re-map local
variables of the below types to int:

Address
Extent
Offset
Word

The reason for the shim is to avoid modifying the class loader.  This
should reduce the maintenance burden.

Java source code that creates objects of the above classes is a now a
problem.  For example, Java source code that does:

int xx = 33;
Address a1 = new Address(xx);

Translates to the following bytecode:

bipush 33
istore_1
new //class Address
dup
iload_1
invokespecial   //Method init: (I)V
astore_2

Basically the JIT needs to special case new.  If it is a new of
class Address/Extent/Offset/Word, substitute nop for the new bytecode.
If new has been substituted, then replace the following dup with a
nop.  Leave iload_1 alone.  Nop invokespecial.  If the new was nop'ed,
replace astore_2 with istore_2.

The bytecode sequence the JIT really sees is now:

bipush 33
istore_1
nop //new   //class Address
nop // dup
iload_1
nop //invokespecial //Method init: (I)V
istore_2//astore_2

Another example:

int xx = 33;
Address a1 = new Address(xx);
int kk = a1.toInt();

Translates to bytecode that looks like:


bipush 33
istore_1
new //class Address
dup
iload_1
invokespecial   //Method init: (I)V
astore_2
 new code starts here
aload_2
invokevirtual   //Method toInt(V)I
istore_3

All the bytecode down to astore_2 has already been described in the
first example.  The additional bytecode would be magically remapped by
the JIT to:

iload_2 // aload_2
nop // invokevirtual//Method toInt(V)I
istore_3

Equivalent mappings will be needed for the rest of the methods of
class Address as well as Extent, Offset and Word.

Will the above work?  Thoughts?




--
Weldon Washburn
Intel Middleware Products Division

-
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [DRLVM] write barrier -- some preliminary design ideas for Jitrino.JET

2006-06-09 Thread 鸣伍
hi, guys

The way to use gen_invoke to call a Java write barrier should work, and

the better way may be inlining the barrier code. Maybe jet can not do

inlining, but jitrino.opt should do it.



Alex's idea is not so bad. It is right that the cost will be high if

we'll have a JNI call on every PUFIELD/PUTSTATIC/AASTORE, but I think

the performance for jet is not very critical, becasue it is not an

optimized jit. If we realy care about some methods' performance, we

should recompile it using some more powerful jit such as jitrino.opt. 



In fact, Alex's idea can be implemented as something like a root GC

which can dynamically manage the different GC with the same interface.

The idea of root GC will actually incur many overhead of indirect

calling. I think, if we only care about the static situation with

certain information about what gc we use, whether we have write

barriers .etc, the direct solution is sure to be the best. But when we

consider some dynamic situations, it is not the case. For example, when

we change a gc without needs for write barrier to another gc with the

needs during runtime, if we do not have help of root GC, we should

recompile the method using jet, and if we have root GC, we do not have

to recompile it, the changing to a new write barrier function can be

finished by root GC interface during the process of loading of the new

gc. Of course, recompiling for more powerful optimization is necessary,

but it should only be done on some hot methods, and we may not need to

recompile all the methods using jet.



The above is just a consideration for infrastructure. I have already

implemented the write barrier code in jet for some GC developed in C.

It has already been tested and attached file is the patch.

thanks
-ming


diff -BburN vm/jitrino/src/jet/cg_ia32.cpp vm-write-barriers/jitrino/src/jet/cg_ia32.cpp
--- vm/jitrino/src/jet/cg_ia32.cpp	2006-03-28 22:33:21.0 +0800
+++ vm-write-barriers/jitrino/src/jet/cg_ia32.cpp	2006-06-04 11:16:21.0 +0800
@@ -2080,6 +2080,12 @@
 voper(typeInfo[jt].mov, phi, vstack(1));
 }
 //
+  	if (jt == jobj) {
+	void *helper = vm_get_rt_support_addr(VM_RT_WRITE_BARRIER_FASTCALL);
+	gen_mem(MEM_STACK|MEM_VARS|MEM_TO_MEM|MEM_UPDATE);
+	voper(Mnemonic_MOV, RegName_ECX, rref);
+	vcall(helper);
+  	}
 vpop(jt);
 vpop(jobj);
 }
diff -BburN vm/vmcore/src/jit/jit_runtime_support.cpp vm-write-barriers/vmcore/src/jit/jit_runtime_support.cpp
--- vm/vmcore/src/jit/jit_runtime_support.cpp	2006-03-28 22:53:28.0 +0800
+++ vm-write-barriers/vmcore/src/jit/jit_runtime_support.cpp	2006-06-04 11:17:36.0 +0800
@@ -1657,6 +1657,8 @@
 #endif
 
 switch(f) {
+		case VM_RT_WRITE_BARRIER_FASTCALL:
+return NULL;
 // Object creation
 case VM_RT_NEW_RESOLVED_USING_VTABLE_AND_SIZE:
 return NULL;
-
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Re: [DRLVM] MMTk vmmagic classes, can someone w/ compiler experience help me?

2006-06-09 Thread Xiao-Feng Li

Clever trick. But I don't understand why you want to create the
Address object at all. You can probably just invoke a method of
Address to generate an Address object reference, and the method
invoke bytecode can be identified by the JIT compiler easily and
replaced by a nop or whatever proper. In this way, the Address object
reference can be used directly as an object reference, i.e., object
pointer.

Thanks,
xiaofeng

On 6/9/06, Weldon Washburn [EMAIL PROTECTED] wrote:

All,

I am hoping someone who has worked on compilers can actually do the
JIT modifications.  I don't have much experience in compilers.

I am trying to get MMTk write barriers integrated into Harmony DRLVM.
I came up with the following scheme.  I don't know if it is correct.
It would be great if someone from the MMTk crowd looked at it.  If it
helps, I can also post this message on Jikes/MMTk mailing list.

Build a shim between the DRLVM class loader and Jitrino.JET.  The shim
would contain a lookup table that would map _local_ variables of
specific types to int.  In particular, the shim would re-map local
variables of the below types to int:

Address
Extent
Offset
Word

The reason for the shim is to avoid modifying the class loader.  This
should reduce the maintenance burden.

Java source code that creates objects of the above classes is a now a
problem.  For example, Java source code that does:

int xx = 33;
Address a1 = new Address(xx);

Translates to the following bytecode:

bipush 33
istore_1
new //class Address
dup
iload_1
invokespecial   //Method init: (I)V
astore_2

Basically the JIT needs to special case new.  If it is a new of
class Address/Extent/Offset/Word, substitute nop for the new bytecode.
 If new has been substituted, then replace the following dup with a
nop.  Leave iload_1 alone.  Nop invokespecial.  If the new was nop'ed,
replace astore_2 with istore_2.

The bytecode sequence the JIT really sees is now:

bipush 33
istore_1
nop //new   //class Address
nop // dup
iload_1
nop //invokespecial //Method init: (I)V
istore_2//astore_2

Another example:

int xx = 33;
Address a1 = new Address(xx);
int kk = a1.toInt();

Translates to bytecode that looks like:


bipush 33
istore_1
new //class Address
dup
iload_1
invokespecial   //Method init: (I)V
astore_2
 new code starts here
aload_2
invokevirtual   //Method toInt(V)I
istore_3

All the bytecode down to astore_2 has already been described in the
first example.  The additional bytecode would be magically remapped by
the JIT to:

iload_2 // aload_2
nop // invokevirtual//Method toInt(V)I
istore_3

Equivalent mappings will be needed for the rest of the methods of
class Address as well as Extent, Offset and Word.

Will the above work?  Thoughts?




--
Weldon Washburn
Intel Middleware Products Division

-
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




-
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [announce] New Apache Harmony Committer : Mark Hindess

2006-06-09 Thread David Tanzer

Congratulations!

On 09.06.2006, at 05:51, Geir Magnusson Jr wrote:


Please join the Apache Harmony PPMC in welcoming the project's newest
committer, Mark Hindess.

Mark has demonstrated the elements that help build a healthy  
community,
namely his ability to work together with others, continued  
dedication to

the project, an understanding of our overall goals of the project, and
some amazing ability in creating build systems :)

We all continue to expect great things from him.

Mark, as a first step to test your almighty powers of committership,
please update the committers page on the website.  That should be a  
good

 (and harmless) exercise to test if everything is working.

Things to do :

1) test ssh-ing to the server people.apache.org.
2) Change your login password on the machine as per the account email
3) Add a public key to .ssh so you can stop using the password
4) Change your svn password as described in the account email

At this point, you should be good to go.  Checkout the website from  
svn

and update it.  See if you can figure out how.

Also, for your main harmony/enhanced/classlib/trunk please be sure  
that

you have checked out via 'https' and not 'http' or you can't check in.
You can switch using svn switch. (See the manual)

Finally, although you now have the ability to commit, please  
remember :


1) continue being as transparent and communicative as possible.  You
earned committer status in part because of your engagement with  
others.

 While it was a  have to situation because you had to submit patches
and defend them, but we believe it is a want to.  Community is  
the key

to any Apache project.

2)We don't want anyone going off and doing lots of work locally, and
then committing.  Committing is like voting in Chicago - do it  
early and

often.  Of course, you don't want to break the build, but keep the
commit bombs to an absolute minimum, and warn the community if  
you are

going to do it - we may suggest it goes into a branch at first.  Use
branches if you need to.

3) Always remember that you can **never** commit code that comes from
someone else, even a co-worker.  All code from someone else must be
submitted by the copyright holder (either the author or author's
employer, depending) as a JIRA, and then follow up with the required
ACQs and BCC.


Again, thanks for your hard work so far, and welcome.

The Apache Harmony PPMC


-
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail:

-
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]





smime.p7s
Description: S/MIME cryptographic signature


Re: svn commit: r412928 - /incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/util/Collections.java

2006-06-09 Thread Geir Magnusson Jr
and the beer flowed

Mark Hindess wrote:
 This breaks the build.  I'm getting:
 
 compile:
 [javac] Compiling 1839 source files to /pbuilder/tmp/Harmony.clean/build
 [javac] 
 /pbuilder/tmp/Harmony.clean/modules/luni/src/main/java/java/util/Collections.java:1074:
  name clash: add(java.lang.Object) in 
 java.util.Collections.UnmodifiableCollectionjava.util.Map.EntryK,V and 
 add(E) in java.util.Setjava.util.Map.EntryK,V have the same erasure, yet 
 neither overrides the other
 [javac] private static class UnmodifiableEntrySetK, V 
 extends UnmodifiableSetMap.EntryK, V {
 [javac]^
 
 w/sun 1.5 javac on linux.
 
 Regards,
  Mark.
 
 On 9 June 2006 at 4:59, [EMAIL PROTECTED] wrote:
 Author: ndbeyer
 Date: Thu Jun  8 21:59:15 2006
 New Revision: 412928

 URL: http://svn.apache.org/viewvc?rev=412928view=rev
 Log:
 Generification of methods.

 Modified:
 incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java
 /util/Collections.java

 Modified: incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/jav
 a/java/util/Collections.java
 URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/m
 odules/luni/src/main/java/java/util/Collections.java?rev=412928r1=412927r2=
 412928view=diff
 =
 =
 --- incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java
 /util/Collections.java (original)
 +++ incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java
 /util/Collections.java Thu Jun  8 21:59:15 2006
 @@ -27,15 +27,15 @@
   */
  public class Collections {
  
 -private static final class CopiesList extends AbstractList implements
 +private static final class CopiesListE extends AbstractListE implem
 ents
  Serializable {
  private static final long serialVersionUID = 273909926839871180
 0L;
  
  private final int n;
  
 -private final Object element;
 +private final E element;
  
 -CopiesList(int length, Object object) {
 +CopiesList(int length, E object) {
  if (length  0) {
  throw new IllegalArgumentException();
  }
 @@ -51,7 +51,7 @@
  return n;
  }
  
 -public Object get(int location) {
 +public E get(int location) {
  if (0 = location  location  n)
  return element;
  throw new IndexOutOfBoundsException();
 @@ -162,13 +162,13 @@
  }
  }
  
 -private static final class SingletonSet extends AbstractSet implements
 +private static final class SingletonSetE extends AbstractSetE imple
 ments
  Serializable {
  private static final long serialVersionUID = 319368720755043167
 9L;
  
 -final Object element;
 +final E element;
  
 -SingletonSet(Object object) {
 +SingletonSet(E object) {
  element = object;
  }
  
 @@ -180,15 +180,15 @@
  return 1;
  }
  
 -public Iterator iterator() {
 -return new Iterator() {
 +public IteratorE iterator() {
 +return new IteratorE() {
  boolean hasNext = true;
  
  public boolean hasNext() {
  return hasNext;
  }
  
 -public Object next() {
 +public E next() {
  if (hasNext) {
  hasNext = false;
  return element;
 @@ -203,13 +203,13 @@
  }
  }
  
 -private static final class SingletonList extends AbstractList implement
 s
 +private static final class SingletonListE extends AbstractListE imp
 lements
  Serializable {
  private static final long serialVersionUID = 309373661874065295
 1L;
  
 -final Object element;
 +final E element;
  
 -SingletonList(Object object) {
 +SingletonList(E object) {
  element = object;
  }
  
 @@ -217,7 +217,7 @@
  return element == null ? object == null : element.equal
 s(object);
  }
  
 -public Object get(int location) {
 +public E get(int location) {
  if (location == 0)
  return element;
  throw new IndexOutOfBoundsException();
 @@ -228,13 +228,14 @@
  }
  }
  
 -private static final class SingletonMap extends AbstractMap implements
 +private static 

[classlib] build failure (was: Re: svn commit: r412928 - /incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/util/Collections.java)

2006-06-09 Thread Tim Ellison
I see it too.

Stepan / Mikhail, do you get build failures?  Shouldn't we stop putting
in new code until this is resolved?

I am happy to take a look at the error, and if it is not a quick fix I
think we can roll back Collections without trouble.

Regards,
Tim


Geir Magnusson Jr wrote:
 and the beer flowed
 
 Mark Hindess wrote:
 This breaks the build.  I'm getting:

 compile:
 [javac] Compiling 1839 source files to /pbuilder/tmp/Harmony.clean/build
 [javac] 
 /pbuilder/tmp/Harmony.clean/modules/luni/src/main/java/java/util/Collections.java:1074:
  name clash: add(java.lang.Object) in 
 java.util.Collections.UnmodifiableCollectionjava.util.Map.EntryK,V and 
 add(E) in java.util.Setjava.util.Map.EntryK,V have the same erasure, yet 
 neither overrides the other
 [javac] private static class UnmodifiableEntrySetK, V 
 extends UnmodifiableSetMap.EntryK, V {
 [javac]^

 w/sun 1.5 javac on linux.

 Regards,
  Mark.

 On 9 June 2006 at 4:59, [EMAIL PROTECTED] wrote:
 Author: ndbeyer
 Date: Thu Jun  8 21:59:15 2006
 New Revision: 412928

 URL: http://svn.apache.org/viewvc?rev=412928view=rev
 Log:
 Generification of methods.

 Modified:
 
 incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java
 /util/Collections.java

 Modified: 
 incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/jav
 a/java/util/Collections.java
 URL: 
 http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/m
 odules/luni/src/main/java/java/util/Collections.java?rev=412928r1=412927r2=
 412928view=diff
 =
 =
 --- 
 incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java
 /util/Collections.java (original)
 +++ 
 incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java
 /util/Collections.java Thu Jun  8 21:59:15 2006
 @@ -27,15 +27,15 @@
   */
  public class Collections {
  
 -   private static final class CopiesList extends AbstractList implements
 +   private static final class CopiesListE extends AbstractListE implem
 ents
 Serializable {
 private static final long serialVersionUID = 273909926839871180
 0L;
  
 private final int n;
  
 -   private final Object element;
 +   private final E element;
  
 -   CopiesList(int length, Object object) {
 +   CopiesList(int length, E object) {
 if (length  0) {
 throw new IllegalArgumentException();
 }
 @@ -51,7 +51,7 @@
 return n;
 }
  
 -   public Object get(int location) {
 +   public E get(int location) {
 if (0 = location  location  n)
 return element;
 throw new IndexOutOfBoundsException();
 @@ -162,13 +162,13 @@
  }
  }
  
 -   private static final class SingletonSet extends AbstractSet implements
 +   private static final class SingletonSetE extends AbstractSetE imple
 ments
 Serializable {
 private static final long serialVersionUID = 319368720755043167
 9L;
  
 -   final Object element;
 +   final E element;
  
 -   SingletonSet(Object object) {
 +   SingletonSet(E object) {
 element = object;
 }
  
 @@ -180,15 +180,15 @@
 return 1;
 }
  
 -   public Iterator iterator() {
 -   return new Iterator() {
 +   public IteratorE iterator() {
 +   return new IteratorE() {
 boolean hasNext = true;
  
 public boolean hasNext() {
 return hasNext;
 }
  
 -   public Object next() {
 +   public E next() {
 if (hasNext) {
 hasNext = false;
 return element;
 @@ -203,13 +203,13 @@
 }
 }
  
 -   private static final class SingletonList extends AbstractList implement
 s
 +   private static final class SingletonListE extends AbstractListE imp
 lements
 Serializable {
 private static final long serialVersionUID = 309373661874065295
 1L;
  
 -   final Object element;
 +   final E element;
  
 -   SingletonList(Object object) {
 +   SingletonList(E object) {
 element = object;
 }
  
 @@ -217,7 +217,7 @@
 return element == null ? object == null : element.equal
 s(object);
 }
  
 -   public Object get(int location) {
 +   public E get(int location) {
 if (location == 0)

Re: [announce] New Apache Harmony Committer : Mark Hindess

2006-06-09 Thread Tim Ellison
welcome and well done.

Tim

Geir Magnusson Jr wrote:
 Please join the Apache Harmony PPMC in welcoming the project's newest
 committer, Mark Hindess.
 
 Mark has demonstrated the elements that help build a healthy community,
 namely his ability to work together with others, continued dedication to
 the project, an understanding of our overall goals of the project, and
 some amazing ability in creating build systems :)
 
 We all continue to expect great things from him.
 
 Mark, as a first step to test your almighty powers of committership,
 please update the committers page on the website.  That should be a good
  (and harmless) exercise to test if everything is working.
 
 Things to do :
 
 1) test ssh-ing to the server people.apache.org.
 2) Change your login password on the machine as per the account email
 3) Add a public key to .ssh so you can stop using the password
 4) Change your svn password as described in the account email
 
 At this point, you should be good to go.  Checkout the website from svn
 and update it.  See if you can figure out how.
 
 Also, for your main harmony/enhanced/classlib/trunk please be sure that
 you have checked out via 'https' and not 'http' or you can't check in.
 You can switch using svn switch. (See the manual)
 
 Finally, although you now have the ability to commit, please remember :
 
 1) continue being as transparent and communicative as possible.  You
 earned committer status in part because of your engagement with others.
  While it was a  have to situation because you had to submit patches
 and defend them, but we believe it is a want to.  Community is the key
 to any Apache project.
 
 2)We don't want anyone going off and doing lots of work locally, and
 then committing.  Committing is like voting in Chicago - do it early and
 often.  Of course, you don't want to break the build, but keep the
 commit bombs to an absolute minimum, and warn the community if you are
 going to do it - we may suggest it goes into a branch at first.  Use
 branches if you need to.
 
 3) Always remember that you can **never** commit code that comes from
 someone else, even a co-worker.  All code from someone else must be
 submitted by the copyright holder (either the author or author's
 employer, depending) as a JIRA, and then follow up with the required
 ACQs and BCC.
 
 
 Again, thanks for your hard work so far, and welcome.
 
 The Apache Harmony PPMC
 
 
 -
 Terms of use : http://incubator.apache.org/harmony/mailing.html
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail:
 
 -
 Terms of use : http://incubator.apache.org/harmony/mailing.html
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
 
 

-- 

Tim Ellison ([EMAIL PROTECTED])
IBM Java technology centre, UK.

-
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [classlib] build failure

2006-06-09 Thread Geir Magnusson Jr
If it isn't really quick, roll it back and let Nathan fix it...

geir

Tim Ellison wrote:
 I see it too.
 
 Stepan / Mikhail, do you get build failures?  Shouldn't we stop putting
 in new code until this is resolved?
 
 I am happy to take a look at the error, and if it is not a quick fix I
 think we can roll back Collections without trouble.
 
 Regards,
 Tim
 
 
 Geir Magnusson Jr wrote:
 and the beer flowed

 Mark Hindess wrote:
 This breaks the build.  I'm getting:

 compile:
 [javac] Compiling 1839 source files to /pbuilder/tmp/Harmony.clean/build
 [javac] 
 /pbuilder/tmp/Harmony.clean/modules/luni/src/main/java/java/util/Collections.java:1074:
  name clash: add(java.lang.Object) in 
 java.util.Collections.UnmodifiableCollectionjava.util.Map.EntryK,V and 
 add(E) in java.util.Setjava.util.Map.EntryK,V have the same erasure, 
 yet neither overrides the other
 [javac] private static class UnmodifiableEntrySetK, V 
 extends UnmodifiableSetMap.EntryK, V {
 [javac]^

 w/sun 1.5 javac on linux.

 Regards,
  Mark.

 On 9 June 2006 at 4:59, [EMAIL PROTECTED] wrote:
 Author: ndbeyer
 Date: Thu Jun  8 21:59:15 2006
 New Revision: 412928

 URL: http://svn.apache.org/viewvc?rev=412928view=rev
 Log:
 Generification of methods.

 Modified:
 
 incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java
 /util/Collections.java

 Modified: 
 incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/jav
 a/java/util/Collections.java
 URL: 
 http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/m
 odules/luni/src/main/java/java/util/Collections.java?rev=412928r1=412927r2=
 412928view=diff
 =
 =
 --- 
 incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java
 /util/Collections.java (original)
 +++ 
 incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java
 /util/Collections.java Thu Jun  8 21:59:15 2006
 @@ -27,15 +27,15 @@
   */
  public class Collections {
  
 -  private static final class CopiesList extends AbstractList implements
 +  private static final class CopiesListE extends AbstractListE implem
 ents
Serializable {
private static final long serialVersionUID = 273909926839871180
 0L;
  
private final int n;
  
 -  private final Object element;
 +  private final E element;
  
 -  CopiesList(int length, Object object) {
 +  CopiesList(int length, E object) {
if (length  0) {
throw new IllegalArgumentException();
}
 @@ -51,7 +51,7 @@
return n;
}
  
 -  public Object get(int location) {
 +  public E get(int location) {
if (0 = location  location  n)
return element;
throw new IndexOutOfBoundsException();
 @@ -162,13 +162,13 @@
  }
  }
  
 -  private static final class SingletonSet extends AbstractSet implements
 +  private static final class SingletonSetE extends AbstractSetE imple
 ments
Serializable {
private static final long serialVersionUID = 319368720755043167
 9L;
  
 -  final Object element;
 +  final E element;
  
 -  SingletonSet(Object object) {
 +  SingletonSet(E object) {
element = object;
}
  
 @@ -180,15 +180,15 @@
return 1;
}
  
 -  public Iterator iterator() {
 -  return new Iterator() {
 +  public IteratorE iterator() {
 +  return new IteratorE() {
boolean hasNext = true;
  
public boolean hasNext() {
return hasNext;
}
  
 -  public Object next() {
 +  public E next() {
if (hasNext) {
hasNext = false;
return element;
 @@ -203,13 +203,13 @@
}
}
  
 -  private static final class SingletonList extends AbstractList implement
 s
 +  private static final class SingletonListE extends AbstractListE imp
 lements
Serializable {
private static final long serialVersionUID = 309373661874065295
 1L;
  
 -  final Object element;
 +  final E element;
  
 -  SingletonList(Object object) {
 +  SingletonList(E object) {
element = object;
}
  
 @@ -217,7 +217,7 @@
return element == null ? object == null : element.equal
 s(object);
}
  
 -  public Object get(int location) {
 +  public E get(int location) {

Re: [offlist] Re: [classlib] logging from within our implementation

2006-06-09 Thread Leo Simons
On Mon, Jun 05, 2006 at 11:17:50AM +0100, Tim Ellison wrote:
 [Eek!  ok so you can see that wasn't intended to go onto the list]

FWIW and IMVHO, this kind of thing is entirely appropriate on-list :-)

 Apologies for embarrassing George (... but buy the book anywayg)

I just might!

 Tim Ellison wrote:
  Talk to George, he's a world expert on Aspects
  
  (and co-author of a book on the subject)
  http://www.amazon.com/gp/product/0321245873/qid=1149502393/sr=1-1/ref=sr_1_1/102-7435876-8007311?s=booksv=glancen=283155
  
  Regards,
  Tim
  
  
  Geir Magnusson Jr wrote:
  Stefano Mazzocchi wrote:
 
  Maybe we should start thinking more with that in mind and think about
  scratching our own itches in terms of development... we might find some
  serious innovation on the way to there.
 
  I think the disagreement boils down to defining the itch.  I'm not
  interested in the overhead because while we will own the VM for our
  distro, it's still overhead and additionally, we want others w/ VMs to
  use our classlibrary too (like Sun, BEA, IBM, Apple... )
 
  I'm going to dork around w/ aspects to see if we can make the addition
  of debugging a pre-processing step used by people that want to debug...
 
  geir

-- 

LSD

-
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [announce] New Apache Harmony Committer : Nathan Beyer

2006-06-09 Thread Leo Simons
*cheer*! Keep it up, Nathan!

On Mon, Jun 05, 2006 at 08:55:37PM -0400, Geir Magnusson Jr wrote:
 Please join the Apache Harmony PPMC in welcoming the project's newest
 committer, Nathan Beyer.

- LSD

-
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [classlib] build failure

2006-06-09 Thread Tim Ellison
Yep, that was the plan, but it was a trivial fix (in repo = r412990).

Just wondering how Mikhail/Stepan got it to build?  It may be a
consequence of different compiler versions again since I did not see a
compiler error on the Eclipse compiler either.

Regards,
Tim

Geir Magnusson Jr wrote:
 If it isn't really quick, roll it back and let Nathan fix it...
 
 geir
 
 Tim Ellison wrote:
 I see it too.

 Stepan / Mikhail, do you get build failures?  Shouldn't we stop putting
 in new code until this is resolved?

 I am happy to take a look at the error, and if it is not a quick fix I
 think we can roll back Collections without trouble.

 Regards,
 Tim


 Geir Magnusson Jr wrote:
 and the beer flowed

 Mark Hindess wrote:
 This breaks the build.  I'm getting:

 compile:
 [javac] Compiling 1839 source files to 
 /pbuilder/tmp/Harmony.clean/build
 [javac] 
 /pbuilder/tmp/Harmony.clean/modules/luni/src/main/java/java/util/Collections.java:1074:
  name clash: add(java.lang.Object) in 
 java.util.Collections.UnmodifiableCollectionjava.util.Map.EntryK,V and 
 add(E) in java.util.Setjava.util.Map.EntryK,V have the same erasure, 
 yet neither overrides the other
 [javac] private static class UnmodifiableEntrySetK, V 
 extends UnmodifiableSetMap.EntryK, V {
 [javac]^

 w/sun 1.5 javac on linux.

 Regards,
  Mark.

 On 9 June 2006 at 4:59, [EMAIL PROTECTED] wrote:
 Author: ndbeyer
 Date: Thu Jun  8 21:59:15 2006
 New Revision: 412928

 URL: http://svn.apache.org/viewvc?rev=412928view=rev
 Log:
 Generification of methods.

 Modified:
 
 incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java
 /util/Collections.java

 Modified: 
 incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/jav
 a/java/util/Collections.java
 URL: 
 http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/m
 odules/luni/src/main/java/java/util/Collections.java?rev=412928r1=412927r2=
 412928view=diff
 =
 =
 --- 
 incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java
 /util/Collections.java (original)
 +++ 
 incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java
 /util/Collections.java Thu Jun  8 21:59:15 2006
 @@ -27,15 +27,15 @@
   */
  public class Collections {
  
 - private static final class CopiesList extends AbstractList implements
 + private static final class CopiesListE extends AbstractListE implem
 ents
   Serializable {
   private static final long serialVersionUID = 273909926839871180
 0L;
  
   private final int n;
  
 - private final Object element;
 + private final E element;
  
 - CopiesList(int length, Object object) {
 + CopiesList(int length, E object) {
   if (length  0) {
   throw new IllegalArgumentException();
   }
 @@ -51,7 +51,7 @@
   return n;
   }
  
 - public Object get(int location) {
 + public E get(int location) {
   if (0 = location  location  n)
   return element;
   throw new IndexOutOfBoundsException();
 @@ -162,13 +162,13 @@
  }
  }
  
 - private static final class SingletonSet extends AbstractSet implements
 + private static final class SingletonSetE extends AbstractSetE imple
 ments
   Serializable {
   private static final long serialVersionUID = 319368720755043167
 9L;
  
 - final Object element;
 + final E element;
  
 - SingletonSet(Object object) {
 + SingletonSet(E object) {
   element = object;
   }
  
 @@ -180,15 +180,15 @@
   return 1;
   }
  
 - public Iterator iterator() {
 - return new Iterator() {
 + public IteratorE iterator() {
 + return new IteratorE() {
   boolean hasNext = true;
  
   public boolean hasNext() {
   return hasNext;
   }
  
 - public Object next() {
 + public E next() {
   if (hasNext) {
   hasNext = false;
   return element;
 @@ -203,13 +203,13 @@
   }
   }
  
 - private static final class SingletonList extends AbstractList implement
 s
 + private static final class SingletonListE extends AbstractListE imp
 lements
   Serializable {
   private static final long serialVersionUID = 309373661874065295
 1L;
  
 - final Object element;
 + final E element;
  
 - SingletonList(Object object) {
 + SingletonList(E object) {
   element = object;
   

Re: [announce] New Apache Harmony Committer : Mark Hindess

2006-06-09 Thread Leo Simons
Whoohooh! Go, Mark, go!

On Thu, Jun 08, 2006 at 11:51:09PM -0400, Geir Magnusson Jr wrote:
 Please join the Apache Harmony PPMC in welcoming the project's newest
 committer, Mark Hindess.

Look, two footers:
 -
 Terms of use : http://incubator.apache.org/harmony/mailing.html
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail:
 
 -
 Terms of use : http://incubator.apache.org/harmony/mailing.html
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]

:-)

LSD

-
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [classlib] build failure

2006-06-09 Thread Stepan Mishura

Hi Tim,

On 6/9/06, Tim Ellison [EMAIL PROTECTED] wrote:


I see it too.

Stepan / Mikhail, do you get build failures?  Shouldn't we stop putting
in new code until this is resolved?



I didn't update this particular file because I work separately with
security module only.
But I think that you are right - it'd better to stop putting new code once
we get notification that the build is broken.

BTW, where is classlib build status emails? I didn't get any notification.

Thanks,
Stepan.

I am happy to take a look at the error, and if it is not a quick fix I

think we can roll back Collections without trouble.

Regards,
Tim


Geir Magnusson Jr wrote:
 and the beer flowed

 Mark Hindess wrote:
 This breaks the build.  I'm getting:

 compile:
 [javac] Compiling 1839 source files to
/pbuilder/tmp/Harmony.clean/build
 [javac]
/pbuilder/tmp/Harmony.clean/modules/luni/src/main/java/java/util/Collections.java:1074:
name clash: add(java.lang.Object) in
java.util.Collections.UnmodifiableCollectionjava.util.Map.EntryK,V and
add(E) in java.util.Setjava.util.Map.EntryK,V have the same erasure,
yet neither overrides the other
 [javac] private static class UnmodifiableEntrySetK, V
extends UnmodifiableSetMap.EntryK, V {
 [javac]^

 w/sun 1.5 javac on linux.

 Regards,
  Mark.

 On 9 June 2006 at 4:59, [EMAIL PROTECTED] wrote:
 Author: ndbeyer
 Date: Thu Jun  8 21:59:15 2006
 New Revision: 412928

 URL: http://svn.apache.org/viewvc?rev=412928view=rev
 Log:
 Generification of methods.

 Modified:

incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java
 /util/Collections.java

 Modified:
incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/jav
 a/java/util/Collections.java
 URL:
http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/m

odules/luni/src/main/java/java/util/Collections.java?rev=412928r1=412927r2=
 412928view=diff
SNIP




--
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Re: [classlib] proposal - resolution to java.util.concurrent issue

2006-06-09 Thread Tim Ellison
Geir Magnusson Jr wrote:
 
 Tim Ellison wrote:
 Geir Magnusson Jr wrote:
 I had a nice chat with Doug today to try to reach a conclusion regarding
 j.u.c

 Given that everyone else (Sun, IBM, BEA...) seems to use j.u.c, found here

 http://gee.cs.oswego.edu/cgi-bin/viewcvs.cgi/jsr166/src/main/java/util/concurrent/

 I think that we'd be well-served to do so as well.  It's the RI, it's
 complicated, it goes w/o saying that Doug is committed to this being
 right, and I'd like to have the same bugs as everyone else for now :)

 The summary of what I think we should do is simple - we take the code
 from j.u.c from the above link (w/ 1 exception) into our SVN repo and
 track any changes made by Doug and the jsr166 EG going forward.
 So I understand correctly, are you talking about taking the source code
 into Harmony SVN, or creating a dependency on a binary version of that
 code (stored in our SVN)?
 
 Into our SVN, simply for ease of use, oversight, and control.

Can you expand on that for me?  Why isn't a binary dependency sufficient?

 Just trying to figure the rationale of taking source if the goal is to
 be in lock-step.  Are you imagining that there may be patches created
 here that are ALv2'd only (and maybe therefore do not go back into
 Doug's copy)?
 
 It could be, although given how it seems to be working, I would guess
 we'd work with Doug if there were problems, and see if he'd do it into
 the RI.
 
 All the code is under the following terms, which are acceptable to the ASF :

 /*
  * Written by Doug Lea with assistance from members of JCP JSR-166
  * Expert Group and released to the public domain, as explained at
  * http://creativecommons.org/licenses/publicdomain
  */

 except for one file :

 http://gee.cs.oswego.edu/cgi-bin/viewcvs.cgi/jsr166/src/main/java/util/concurrent/CopyOnWriteArrayList.java

 for which I understand we can get a clean replacement from the backport.

 Now, there is an issue of our clean-room rules, and I think there's a
 very neat solution that would allow us to use this code w/o getting an
 ACQ from the authors of j.u.c (which Doug claims is himself, assisted by
 the JSR166 EG)

 The premise of our ACQ structure is that we want to ensure that people
 who have worked on a non-open/non-free implementation of a
 portion/module/component of Java not work on our implementation of that
 portion/module/component.

 Now, given that j.u.c in Java SE 5 is the first time this functionality
 has existed, it must be the case that the contributors are not
 contaminated by working on another implementation, since there are no
 other implementations.  We can't be contaminated because there's nothing
 with which to contaminate us with.
 AIUI (and hypothetically) people could take a copy of the public domain
 code and create a proprietary derivative couldn't they? And the spec is
 out there for all to see, how do you know there are no other
 implementations?
 
 There could be implementations out there now, but there weren't before,
 and we'd just have to watch to see what gets added down the road...

I assume that the authors (jsr166-group) have a good knowledge of all
sorts of code that is in our ACQ CORE bucket.  The need not only be
'contaminated' by concurrent.

(I would like to see this, I'm still just thinking it through).

Regards,
Tim

 That is the gate I was talking about - we are still overseeing what
 we're distributing...
 
 
 Of course, this needs VM support, so there is work to do, but this seems
 like a sane and clean way to add this functionality to Harmony classlib,
 as well as build a bridge to another part of the Java SE ecosystem.
 Don't get me wrong, I think we should build the bridge -- just working
 things out in my head.

 Comments? Things that I missed?
 Invite the j.u.concurrent expert group to move in g.
 
 That would be cool :)
 
 geir
 
 Regards,
 Tim

 
 -
 Terms of use : http://incubator.apache.org/harmony/mailing.html
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
 
 

-- 

Tim Ellison ([EMAIL PROTECTED])
IBM Java technology centre, UK.

-
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [classlib] build failure

2006-06-09 Thread Tim Ellison
Stepan Mishura wrote:
 Hi Tim,
 
 On 6/9/06, Tim Ellison [EMAIL PROTECTED] wrote:

 I see it too.

 Stepan / Mikhail, do you get build failures?  Shouldn't we stop putting
 in new code until this is resolved?
 
 
 I didn't update this particular file because I work separately with
 security module only.
 But I think that you are right - it'd better to stop putting new code once
 we get notification that the build is broken.
 
 BTW, where is classlib build status emails? I didn't get any notification.

AFAIK they are still being sent out -- possibly a problem with them
being accepted on the commit list?.

Regards,
Tim

 I am happy to take a look at the error, and if it is not a quick fix I
 think we can roll back Collections without trouble.

 Regards,
 Tim


 Geir Magnusson Jr wrote:
  and the beer flowed
 
  Mark Hindess wrote:
  This breaks the build.  I'm getting:
 
  compile:
  [javac] Compiling 1839 source files to
 /pbuilder/tmp/Harmony.clean/build
  [javac]
 /pbuilder/tmp/Harmony.clean/modules/luni/src/main/java/java/util/Collections.java:1074:

 name clash: add(java.lang.Object) in
 java.util.Collections.UnmodifiableCollectionjava.util.Map.EntryK,V
 and
 add(E) in java.util.Setjava.util.Map.EntryK,V have the same erasure,
 yet neither overrides the other
  [javac] private static class
 UnmodifiableEntrySetK, V
 extends UnmodifiableSetMap.EntryK, V {
  [javac]^
 
  w/sun 1.5 javac on linux.
 
  Regards,
   Mark.
 
  On 9 June 2006 at 4:59, [EMAIL PROTECTED] wrote:
  Author: ndbeyer
  Date: Thu Jun  8 21:59:15 2006
  New Revision: 412928
 
  URL: http://svn.apache.org/viewvc?rev=412928view=rev
  Log:
  Generification of methods.
 
  Modified:
 
 incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java
  /util/Collections.java
 
  Modified:
 incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/jav
  a/java/util/Collections.java
  URL:
 http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/m
 
 odules/luni/src/main/java/java/util/Collections.java?rev=412928r1=412927r2=

  412928view=diff
 SNIP

 
 
 --
 Terms of use : http://incubator.apache.org/harmony/mailing.html
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
 

-- 

Tim Ellison ([EMAIL PROTECTED])
IBM Java technology centre, UK.

-
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [classlib] build failure

2006-06-09 Thread Mark Hindess

On 9 June 2006 at 16:55, Stepan Mishura [EMAIL PROTECTED] wrote:

 Hi Tim,
 
 On 6/9/06, Tim Ellison [EMAIL PROTECTED] wrote:
 
  I see it too.
 
  Stepan / Mikhail, do you get build failures?  Shouldn't we stop putting
  in new code until this is resolved?
 
 
  I didn't update this particular file because I work separately with
 security module only.
 But I think that you are right - it'd better to stop putting new code once
 we get notification that the build is broken.
 
 BTW, where is classlib build status emails? I didn't get any notification.

I think they are failing to get to the list because they are too large.
I tried changing the envelope sender to my gmail account - which is
subscribed to the -commits list, but they still don't make the list
or generate any bounce messages.  I've changed the sender back to
[EMAIL PROTECTED] as it was originally.

Regards,
 Mark.



-
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [classlib] proposal - resolution to java.util.concurrent issue

2006-06-09 Thread Geir Magnusson Jr


Tim Ellison wrote:
 Geir Magnusson Jr wrote:
 Tim Ellison wrote:
 Geir Magnusson Jr wrote:
 I had a nice chat with Doug today to try to reach a conclusion regarding
 j.u.c

 Given that everyone else (Sun, IBM, BEA...) seems to use j.u.c, found here

 http://gee.cs.oswego.edu/cgi-bin/viewcvs.cgi/jsr166/src/main/java/util/concurrent/

 I think that we'd be well-served to do so as well.  It's the RI, it's
 complicated, it goes w/o saying that Doug is committed to this being
 right, and I'd like to have the same bugs as everyone else for now :)

 The summary of what I think we should do is simple - we take the code
 from j.u.c from the above link (w/ 1 exception) into our SVN repo and
 track any changes made by Doug and the jsr166 EG going forward.
 So I understand correctly, are you talking about taking the source code
 into Harmony SVN, or creating a dependency on a binary version of that
 code (stored in our SVN)?
 Into our SVN, simply for ease of use, oversight, and control.
 
 Can you expand on that for me?  Why isn't a binary dependency sufficient?

It would be if there was one.  As far as I can tell, there isn't.

There also may be small mods required to work w/ our VMI.  Dunno -
hopefully Nathan or others can tell us.

What's the problem with having the source around?  It makes it easier
for people to look at, debug, etc...

 
 Just trying to figure the rationale of taking source if the goal is to
 be in lock-step.  Are you imagining that there may be patches created
 here that are ALv2'd only (and maybe therefore do not go back into
 Doug's copy)?
 It could be, although given how it seems to be working, I would guess
 we'd work with Doug if there were problems, and see if he'd do it into
 the RI.

 All the code is under the following terms, which are acceptable to the ASF 
 :

 /*
  * Written by Doug Lea with assistance from members of JCP JSR-166
  * Expert Group and released to the public domain, as explained at
  * http://creativecommons.org/licenses/publicdomain
  */

 except for one file :

 http://gee.cs.oswego.edu/cgi-bin/viewcvs.cgi/jsr166/src/main/java/util/concurrent/CopyOnWriteArrayList.java

 for which I understand we can get a clean replacement from the backport.

 Now, there is an issue of our clean-room rules, and I think there's a
 very neat solution that would allow us to use this code w/o getting an
 ACQ from the authors of j.u.c (which Doug claims is himself, assisted by
 the JSR166 EG)

 The premise of our ACQ structure is that we want to ensure that people
 who have worked on a non-open/non-free implementation of a
 portion/module/component of Java not work on our implementation of that
 portion/module/component.

 Now, given that j.u.c in Java SE 5 is the first time this functionality
 has existed, it must be the case that the contributors are not
 contaminated by working on another implementation, since there are no
 other implementations.  We can't be contaminated because there's nothing
 with which to contaminate us with.
 AIUI (and hypothetically) people could take a copy of the public domain
 code and create a proprietary derivative couldn't they? And the spec is
 out there for all to see, how do you know there are no other
 implementations?
 There could be implementations out there now, but there weren't before,
 and we'd just have to watch to see what gets added down the road...
 
 I assume that the authors (jsr166-group) have a good knowledge of all
 sorts of code that is in our ACQ CORE bucket.  The need not only be
 'contaminated' by concurrent.

Right, but unless you believe that by knowing about code in our CORE
bucket that isn't j.u.c yet somehow tainted j.u.c, shouldn't we just add
a new 'bucket' for j.u.c to solve what would then simply be a paper problem?

 
 (I would like to see this, I'm still just thinking it through).

This is a good and reasonable discussion to have.  I'm just working the
Pragmatic Devil's Advocate line here...

geir

 
 Regards,
 Tim
 
 That is the gate I was talking about - we are still overseeing what
 we're distributing...


 Of course, this needs VM support, so there is work to do, but this seems
 like a sane and clean way to add this functionality to Harmony classlib,
 as well as build a bridge to another part of the Java SE ecosystem.
 Don't get me wrong, I think we should build the bridge -- just working
 things out in my head.

 Comments? Things that I missed?
 Invite the j.u.concurrent expert group to move in g.
 That would be cool :)

 geir

 Regards,
 Tim

 -
 Terms of use : http://incubator.apache.org/harmony/mailing.html
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]


 

-
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [classlib] build failure

2006-06-09 Thread Geir Magnusson Jr
I checked the allow list, and

[EMAIL PROTECTED]

is still there.

I'm assuming that this isn't a real account.  Any chance you could
switch to one to test, so you can see the bounceback if there is one?

geir


Tim Ellison wrote:
 Stepan Mishura wrote:
 Hi Tim,

 On 6/9/06, Tim Ellison [EMAIL PROTECTED] wrote:
 I see it too.

 Stepan / Mikhail, do you get build failures?  Shouldn't we stop putting
 in new code until this is resolved?

 I didn't update this particular file because I work separately with
 security module only.
 But I think that you are right - it'd better to stop putting new code once
 we get notification that the build is broken.

 BTW, where is classlib build status emails? I didn't get any notification.
 
 AFAIK they are still being sent out -- possibly a problem with them
 being accepted on the commit list?.
 
 Regards,
 Tim
 
 I am happy to take a look at the error, and if it is not a quick fix I
 think we can roll back Collections without trouble.

 Regards,
 Tim


 Geir Magnusson Jr wrote:
 and the beer flowed

 Mark Hindess wrote:
 This breaks the build.  I'm getting:

 compile:
 [javac] Compiling 1839 source files to
 /pbuilder/tmp/Harmony.clean/build
 [javac]
 /pbuilder/tmp/Harmony.clean/modules/luni/src/main/java/java/util/Collections.java:1074:

 name clash: add(java.lang.Object) in
 java.util.Collections.UnmodifiableCollectionjava.util.Map.EntryK,V
 and
 add(E) in java.util.Setjava.util.Map.EntryK,V have the same erasure,
 yet neither overrides the other
 [javac] private static class
 UnmodifiableEntrySetK, V
 extends UnmodifiableSetMap.EntryK, V {
 [javac]^

 w/sun 1.5 javac on linux.

 Regards,
  Mark.

 On 9 June 2006 at 4:59, [EMAIL PROTECTED] wrote:
 Author: ndbeyer
 Date: Thu Jun  8 21:59:15 2006
 New Revision: 412928

 URL: http://svn.apache.org/viewvc?rev=412928view=rev
 Log:
 Generification of methods.

 Modified:

 incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java
 /util/Collections.java

 Modified:
 incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/jav
 a/java/util/Collections.java
 URL:
 http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/m
 odules/luni/src/main/java/java/util/Collections.java?rev=412928r1=412927r2=

 412928view=diff
 SNIP


 --
 Terms of use : http://incubator.apache.org/harmony/mailing.html
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]

 

-
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [classlib] build failure

2006-06-09 Thread Geir Magnusson Jr
A large message should still generate a bounce...

I'll go look to see what the size is.

How large are these messages?

Mark Hindess wrote:
 On 9 June 2006 at 16:55, Stepan Mishura [EMAIL PROTECTED] wrote:
 Hi Tim,

 On 6/9/06, Tim Ellison [EMAIL PROTECTED] wrote:
 I see it too.

 Stepan / Mikhail, do you get build failures?  Shouldn't we stop putting
 in new code until this is resolved?

  I didn't update this particular file because I work separately with
 security module only.
 But I think that you are right - it'd better to stop putting new code once
 we get notification that the build is broken.

 BTW, where is classlib build status emails? I didn't get any notification.
 
 I think they are failing to get to the list because they are too large.
 I tried changing the envelope sender to my gmail account - which is
 subscribed to the -commits list, but they still don't make the list
 or generate any bounce messages.  I've changed the sender back to
 [EMAIL PROTECTED] as it was originally.
 
 Regards,
  Mark.
 
 
 
 -
 Terms of use : http://incubator.apache.org/harmony/mailing.html
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
 
 

-
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [drlvm] building...

2006-06-09 Thread Oliver Deakin


Garrett Rooney wrote:

SNIP

Now sometimes you do need to have a totally different implementation
for a new platform, but a lot of the time, there can be some minor
ifdefs (based on availability of FEATURES, not platform) that allow
the same file to work on multiple platforms.

Just splitting up into two implementations (or really N
implementations, since eventually Harmony will run on more than just
Linux and Windows) is a bit of a waste, and ifdefing based on platform
is just as bad, since the stuff that works on FreeBSD or OpenBSD or
Solaris is often the same as the stuff that works on Linux...

What we ended up with in APR is something like this:

There's a base implementation of each file that is designed to work on
any unix system.  These go in unix/ subdirectories.  If it's feasable
to make that file work elsewhere (Netware, Windows, OS/2, BeOS,
whatever) then it's done via ifdefs.  If the ifdefs get out of
control, or the platform is really that different then you start
splitting off into platform specific implementations, but that's a
last resort.


We actually had some discussion about doing exactly that kind of thing
a while back [1] and more recently [2]. The basic ideas were:

- Make the code as shared as possible, by using IFDEFs where it
makes sense. We've made some progress in this area, with a lot of
our code shared, but as you say there is still more to do.
Im working on moving the native code around at the moment, so
more unification is probably something I will look at at the same
time.
- Where IFDEFs are starting to make the code difficult to read,
split the source up into platform specific files. The kind of layout
that could be used for this is described in [2].

I think this matches what you're describing for APR. Do you
agree?

Im interested to know what kind of build system is used in APR -
previous suggestions for picking up platform specific code have
included using clever Ant scripts to figure out which file versions
are needed, or using gmake and its vpath variable to pick them
up (they are described more extensively in [1]). What does APR
use to deal with building platform specific versions of files
over shared ones?



So in the end, the main things to keep in mind are to make your unix
implemenation try to work across as many systems as possible, ifdefing
based on availability of features as much as you can, not based on
specific platforms, and only as a last resort split out into totally
different platform specific implementations.



IIRC Mark suggested ifdef'ing on features as opposed to platforms before
[3], and it seems like a good idea to me, providing a more obvious
reason for the existence of the ifdef and allowing us to use ifdefs that
describe more than just a ballpark platform distinction.

I think in general we have similar ideas to those you describe,
but we're not at a point yet where they have been completely embodied
in the codebase, or even summarised in a single post/page.
Perhaps I will put these ideas together into a page for the classlib
section of the Harmony website, so we have something concrete to talk
about without digging back into the mail archives.

Regards,
Oliver

[1] 
http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200603.mbox/[EMAIL PROTECTED]
[2] 
http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200605.mbox/[EMAIL PROTECTED]
[3] 
http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200602.mbox/[EMAIL PROTECTED]

-garrett

-
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




--
Oliver Deakin
IBM United Kingdom Limited


-
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



RE: [drlvm] building...

2006-06-09 Thread Denis Sharypov

Answering Geir's question #3:

compiler, linker and define arguments are specified via compilerarg,
linkerarg, defineset tags respectively
in .xml subcomponents descriptors depending on OS, compiler, configuration.
You can find DRL VM subcomponent descriptors at
enhanced/drlvm/trunk/build/make/components/vm/*.xml

Here're some example extracts from jitrino.xml:

   !-- linux specific --
   select os=lnx
   defineset define=PLATFORM_POSIX /

   select cxx=gcc arch=ia32,em64t
   compilerarg value=-msse2 /
   /select

   select cxx=gcc
   compilerarg value=-fmessage-length=0 /
   compilerarg value=-Wall /
   compilerarg value=-Werror /
   /select

   compilerarg value=-x /
   compilerarg value=c++ /
   compilerarg value=-fPIC /

   select cxx=icc
   compilerarg value=-wd68 /
   compilerarg value=-wd654 /
   compilerarg value=-wd854 /
   compilerarg value=-wd470 /
   compilerarg value=-wd1572 /
   compilerarg value=-wd1125 /
   !--
 # 470 - 'qualified name is not allowed in member
declaration'
 # warning #1125: function xxx is hidden by yyy
 - virtual function override intended
 # warning #1572: floating-point equality and
inequality comparisons are unreliable
   --
   /select

   select cfg=debug
   compilerarg value=-g /
   compilerarg value=-O0 /
   /select

   select cfg=release
   compilerarg value=-O /
   /select
   /select







   linker name=${build.cxx} id=linker
   select os=win
   select arch=ipf
   linkerarg value=/MACHINE:IA64 /
   /select

   select arch=em64t
   linkerarg value=/MACHINE:AMD64 /
   /select

   select arch=ia32
   linkerarg value=/MACHINE:X86 /
   /select

   linkerarg value=/DLL /
   linkerarg value=/SUBSYSTEM:WINDOWS /
   linkerarg value=/DEBUG /
   linkerarg value=/NOLOGO /
   linkerarg value=/FIXED:NO /
   linkerarg value=/OPT:REF /
   linkerarg value=/OUT:${libdir}/ /

   libset libs=${vm.vmcore.lib} dir=${vm.vmcore.libdir} /
   libset libs=${vm.encoder.lib} dir=${vm.encoder.libdir}
/
   /select

   select os=lnx
   linkerarg value=-shared /
   linkerarg value=-ldl /
   linkerarg value=-lm /
   /select
   /linker
--
Denis Sharypov,
Intel Middleware Products Division


Re: [drlvm] building...

2006-06-09 Thread Geir Magnusson Jr
Thanks - I figured that out.

It's an interesting difference from makefiles, as they tend to be more
explicit and local - I can go into a directory and look at the
makefile for the params used for building stuff local to that directory.

geir

Denis Sharypov wrote:
 Answering Geir's question #3:
 
 compiler, linker and define arguments are specified via compilerarg,
 linkerarg, defineset tags respectively
 in .xml subcomponents descriptors depending on OS, compiler, configuration.
 You can find DRL VM subcomponent descriptors at
 enhanced/drlvm/trunk/build/make/components/vm/*.xml
 
 Here're some example extracts from jitrino.xml:
 
!-- linux specific --
select os=lnx
defineset define=PLATFORM_POSIX /
 
select cxx=gcc arch=ia32,em64t
compilerarg value=-msse2 /
/select
 
select cxx=gcc
compilerarg value=-fmessage-length=0 /
compilerarg value=-Wall /
compilerarg value=-Werror /
/select
 
compilerarg value=-x /
compilerarg value=c++ /
compilerarg value=-fPIC /
 
select cxx=icc
compilerarg value=-wd68 /
compilerarg value=-wd654 /
compilerarg value=-wd854 /
compilerarg value=-wd470 /
compilerarg value=-wd1572 /
compilerarg value=-wd1125 /
!--
  # 470 - 'qualified name is not allowed in member
 declaration'
  # warning #1125: function xxx is hidden by yyy
  - virtual function override intended
  # warning #1572: floating-point equality and
 inequality comparisons are unreliable
--
/select
 
select cfg=debug
compilerarg value=-g /
compilerarg value=-O0 /
/select
 
select cfg=release
compilerarg value=-O /
/select
/select
 
 
 
 
 
 
 
linker name=${build.cxx} id=linker
select os=win
select arch=ipf
linkerarg value=/MACHINE:IA64 /
/select
 
select arch=em64t
linkerarg value=/MACHINE:AMD64 /
/select
 
select arch=ia32
linkerarg value=/MACHINE:X86 /
/select
 
linkerarg value=/DLL /
linkerarg value=/SUBSYSTEM:WINDOWS /
linkerarg value=/DEBUG /
linkerarg value=/NOLOGO /
linkerarg value=/FIXED:NO /
linkerarg value=/OPT:REF /
linkerarg value=/OUT:${libdir}/ /
 
libset libs=${vm.vmcore.lib} dir=${vm.vmcore.libdir} /
libset libs=${vm.encoder.lib} dir=${vm.encoder.libdir}
 /
/select
 
select os=lnx
linkerarg value=-shared /
linkerarg value=-ldl /
linkerarg value=-lm /
/select
/linker

-
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [classlib] build failure

2006-06-09 Thread Mark Hindess

The most recent success message was 343k at approximately 
Fri, 09 Jun 06 11:26:34 +0100.

-Mark.

On 9 June 2006 at 6:33, Geir Magnusson Jr [EMAIL PROTECTED] wrote:
 A large message should still generate a bounce...
 
 I'll go look to see what the size is.
 
 How large are these messages?
 
 Mark Hindess wrote:
  On 9 June 2006 at 16:55, Stepan Mishura [EMAIL PROTECTED] wrote:
  Hi Tim,
 
  On 6/9/06, Tim Ellison [EMAIL PROTECTED] wrote:
  I see it too.
 
  Stepan / Mikhail, do you get build failures?  Shouldn't we stop putting
  in new code until this is resolved?
 
   I didn't update this particular file because I work separately with
  security module only.
  But I think that you are right - it'd better to stop putting new code once
  we get notification that the build is broken.
 
  BTW, where is classlib build status emails? I didn't get any notification.
  
  I think they are failing to get to the list because they are too large.
  I tried changing the envelope sender to my gmail account - which is
  subscribed to the -commits list, but they still don't make the list
  or generate any bounce messages.  I've changed the sender back to
  [EMAIL PROTECTED] as it was originally.
  
  Regards,
   Mark.
  
  
  
  -
  Terms of use : http://incubator.apache.org/harmony/mailing.html
  To unsubscribe, e-mail: [EMAIL PROTECTED]
  For additional commands, e-mail: [EMAIL PROTECTED]
  
  
 
 -
 Terms of use : http://incubator.apache.org/harmony/mailing.html
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]



-
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



[drlvm] what I'm doing...

2006-06-09 Thread Geir Magnusson Jr
I'm doing a few things.  I've set aside my drive to replace the build
for now, and just want to get it using current classlib as a start.

To that end, I'm :

- tweaking the build to accommodate the structural changes recently made
to classlib (hdk et al)
-  trying to normalize the use of apr (some expect to do apr-/foo.h
and some seem to do foo.h
- removing the classlib patching and JIRA additions

I'll commit once I get it back to stable and we can look at next steps...

geir

-
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [classlib] build failure

2006-06-09 Thread Geir Magnusson Jr
any clue about how big a failed message is (if you can figure that out...)?

geir

Mark Hindess wrote:
 The most recent success message was 343k at approximately 
 Fri, 09 Jun 06 11:26:34 +0100.
 
 -Mark.
 
 On 9 June 2006 at 6:33, Geir Magnusson Jr [EMAIL PROTECTED] wrote:
 A large message should still generate a bounce...

 I'll go look to see what the size is.

 How large are these messages?

 Mark Hindess wrote:
 On 9 June 2006 at 16:55, Stepan Mishura [EMAIL PROTECTED] wrote:
 Hi Tim,

 On 6/9/06, Tim Ellison [EMAIL PROTECTED] wrote:
 I see it too.

 Stepan / Mikhail, do you get build failures?  Shouldn't we stop putting
 in new code until this is resolved?
  I didn't update this particular file because I work separately with
 security module only.
 But I think that you are right - it'd better to stop putting new code once
 we get notification that the build is broken.

 BTW, where is classlib build status emails? I didn't get any notification.
 I think they are failing to get to the list because they are too large.
 I tried changing the envelope sender to my gmail account - which is
 subscribed to the -commits list, but they still don't make the list
 or generate any bounce messages.  I've changed the sender back to
 [EMAIL PROTECTED] as it was originally.

 Regards,
  Mark.



 -
 Terms of use : http://incubator.apache.org/harmony/mailing.html
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]


 -
 Terms of use : http://incubator.apache.org/harmony/mailing.html
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
 
 
 
 -
 Terms of use : http://incubator.apache.org/harmony/mailing.html
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
 
 

-
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [drlvm] what I'm doing...

2006-06-09 Thread Denis Sharypov

The patch that accommodate the structural changes recently made
to classlib and removing the classlib patching and JIRA additions is ready
and will be sent soon.

--
Denis Sharypov,
Intel Middleware Products Division

On 6/9/06, Geir Magnusson Jr [EMAIL PROTECTED] wrote:


I'm doing a few things.  I've set aside my drive to replace the build
for now, and just want to get it using current classlib as a start.

To that end, I'm :

- tweaking the build to accommodate the structural changes recently made
to classlib (hdk et al)
-  trying to normalize the use of apr (some expect to do apr-/foo.h
and some seem to do foo.h
- removing the classlib patching and JIRA additions

I'll commit once I get it back to stable and we can look at next steps...

geir

-
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




Re: [classlib] build failure

2006-06-09 Thread Mark Hindess

Just about to go offline, but I'd guess smaller since not as much works!
;-)

-Mark.

On 9 June 2006 at 7:01, Geir Magnusson Jr [EMAIL PROTECTED] wrote:
 any clue about how big a failed message is (if you can figure that out...)?
 
 geir
 
 Mark Hindess wrote:
  The most recent success message was 343k at approximately 
  Fri, 09 Jun 06 11:26:34 +0100.
  
  -Mark.
  
  On 9 June 2006 at 6:33, Geir Magnusson Jr [EMAIL PROTECTED] wrote:
  A large message should still generate a bounce...
 
  I'll go look to see what the size is.
 
  How large are these messages?
 
  Mark Hindess wrote:
  On 9 June 2006 at 16:55, Stepan Mishura [EMAIL PROTECTED] wrot
 e:
  Hi Tim,
 
  On 6/9/06, Tim Ellison [EMAIL PROTECTED] wrote:
  I see it too.
 
  Stepan / Mikhail, do you get build failures?  Shouldn't we stop putting
  in new code until this is resolved?
   I didn't update this particular file because I work separately with
  security module only.
  But I think that you are right - it'd better to stop putting new code on
 ce
  we get notification that the build is broken.
 
  BTW, where is classlib build status emails? I didn't get any notificatio
 n.
  I think they are failing to get to the list because they are too large.
  I tried changing the envelope sender to my gmail account - which is
  subscribed to the -commits list, but they still don't make the list
  or generate any bounce messages.  I've changed the sender back to
  [EMAIL PROTECTED] as it was originally.
 
  Regards,
   Mark.
 
 
 
  -
  Terms of use : http://incubator.apache.org/harmony/mailing.html
  To unsubscribe, e-mail: [EMAIL PROTECTED]
  For additional commands, e-mail: [EMAIL PROTECTED]
 
 
  -
  Terms of use : http://incubator.apache.org/harmony/mailing.html
  To unsubscribe, e-mail: [EMAIL PROTECTED]
  For additional commands, e-mail: [EMAIL PROTECTED]
  
  
  
  -
  Terms of use : http://incubator.apache.org/harmony/mailing.html
  To unsubscribe, e-mail: [EMAIL PROTECTED]
  For additional commands, e-mail: [EMAIL PROTECTED]
  
  
 
 -
 Terms of use : http://incubator.apache.org/harmony/mailing.html
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]



-
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [drlvm] what I'm doing...

2006-06-09 Thread Geir Magnusson Jr
Sorry, I'm already wading through it.  I'll be happy to see it to use
for reference though.

If someone is going to work on something, please speak up here first.

geir



Denis Sharypov wrote:
 The patch that accommodate the structural changes recently made
 to classlib and removing the classlib patching and JIRA additions is ready
 and will be sent soon.
 

-
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [classlib] build failure

2006-06-09 Thread Geir Magnusson Jr
do you mean larger?  I was wondering what the size is so I can see if
it's the threshold set on the list, or something else...

geir


Mark Hindess wrote:
 Just about to go offline, but I'd guess smaller since not as much works!
 ;-)
 
 -Mark.
 
 On 9 June 2006 at 7:01, Geir Magnusson Jr [EMAIL PROTECTED] wrote:
 any clue about how big a failed message is (if you can figure that out...)?

 geir

 Mark Hindess wrote:
 The most recent success message was 343k at approximately 
 Fri, 09 Jun 06 11:26:34 +0100.

 -Mark.

 On 9 June 2006 at 6:33, Geir Magnusson Jr [EMAIL PROTECTED] wrote:
 A large message should still generate a bounce...

 I'll go look to see what the size is.

 How large are these messages?

 Mark Hindess wrote:
 On 9 June 2006 at 16:55, Stepan Mishura [EMAIL PROTECTED] wrot
 e:
 Hi Tim,

 On 6/9/06, Tim Ellison [EMAIL PROTECTED] wrote:
 I see it too.

 Stepan / Mikhail, do you get build failures?  Shouldn't we stop putting
 in new code until this is resolved?
  I didn't update this particular file because I work separately with
 security module only.
 But I think that you are right - it'd better to stop putting new code on
 ce
 we get notification that the build is broken.

 BTW, where is classlib build status emails? I didn't get any notificatio
 n.
 I think they are failing to get to the list because they are too large.
 I tried changing the envelope sender to my gmail account - which is
 subscribed to the -commits list, but they still don't make the list
 or generate any bounce messages.  I've changed the sender back to
 [EMAIL PROTECTED] as it was originally.

 Regards,
  Mark.



 -
 Terms of use : http://incubator.apache.org/harmony/mailing.html
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]


 -
 Terms of use : http://incubator.apache.org/harmony/mailing.html
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]


 -
 Terms of use : http://incubator.apache.org/harmony/mailing.html
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]


 -
 Terms of use : http://incubator.apache.org/harmony/mailing.html
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
 
 
 
 -
 Terms of use : http://incubator.apache.org/harmony/mailing.html
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
 
 

-
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [drlvm] building...

2006-06-09 Thread Garrett Rooney

On 6/9/06, Geir Magnusson Jr [EMAIL PROTECTED] wrote:

Thanks - I figured that out.

It's an interesting difference from makefiles, as they tend to be more
explicit and local - I can go into a directory and look at the
makefile for the params used for building stuff local to that directory.


Yeah, when I was trying to disect the vm build when it was first
released I had similar problems.  I wanted to run some of the build
commands by hand to see a particular error without running the whole
build, but it was very difficult to tell what the final string of
arguments were, and once I had them  it was difficult to tell what I
would have to change to alter them.

The other major problem was that when build problems occurred,
compiles didn't stop.  So if one file blows up because of an issue,
the set of warnings in it immediately scroll off the screen and are
replaced by hundreds more.  On make based systems I'm used to it would
stop after the first file, which is much more approachable when
debugging.

-garrett

-
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [jchevm+classlibadapter] Running classlib tests

2006-06-09 Thread Ivan Volosyuk

Yes, I have done this in VMThread.run() method for newly created
threads. But I have seen no way to do this in JNI's ThreadAttach().
Looks like gnu classpath doesn't require any callbacks (like
thread_attach()) to be called on the attached thread, so the jchevm
doesn't do this. That is why in order to use classlib, this place
needs changes in jchevm and it looks like the same applies to all
other VMs which use gnu classpath interfaces. That is the problem I am
talking about.
--
Ivan

On 6/9/06, Tim Ellison [EMAIL PROTECTED] wrote:

Ivan Volosyuk wrote:
 Yes, there are a lot of functions without implementation. I have
 inserted this exceptions there to fast detect this places. It will
 also be a few UnsatisfiedLinkErrors for some missing functions in
 java.lang.reflect.Array.
 Security is just no-op for now. I have almost zero knowledge in this area.
 Most probable reason for the hang in two luni tests is bug or
 unimplemented functionality in Thread.java
 One of problems in the Thread.java I have no clue how to solve is:
  Classlib implementation uses its own thread manager implementation,
 jchevm has also its own. Some classlib's native methods implementation
 rely on thread_attach() call before them, otherwise they crash. I have
 implemented this in VMThread.run(). But JNI ThreadAttach in jchevm
 doesn't call classlib's thread_attach(), so threads attached via JNI
 will crash classlib.

There are requirements on the VM in order to run the classlib native
code, like setting up the port library and playing nicely with the
thread library.  For example, native's monitor operations require that
the thread has been attached via hythread_attach() [1].

I don't know the JCHEVM code well enough to point to the right place,
but performing an hythread_attach() when a JCHEVM thread is
created/attached -- and a matching detach -- would be the answer.

[1]
http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/doc/vm_doc/html/hythread_8c.html?view=co

Regards,
Tim

 --
 Ivan

 On 6/8/06, Mark Hindess [EMAIL PROTECTED] wrote:

 On 7 June 2006 at 20:50, Mark Hindess [EMAIL PROTECTED]
 wrote:
 
  With HARMONY-569, HARMONY-572 and a couple of simple hacks - like
  removing the -showversion jvm arguments from test runs - I've been
  able to run 63% of the classlib tests.  I should get more running with
  a little more effort.  The test results were:
 
Tests  FailuresErrors   Success rate
5601   360 744  80.29%
 
  which is v. impressive.

 I've improved my wrapper script (linux only sorry) to ignore
 -showversion and handle -Xbootclasspath/[ap] appropriately.  I've
 attached this to HARMONY-583.

 I had to exclude two luni tests which were causing the vm to hang:

   tests/api/java/lang/IllegalThreadStateExceptionTest.java
   tests/api/java/lang/ThreadTest.java

 But the new test results are:

   Tests  FailuresErrors   Success rate
   8348   1295892  73.80%

 which is progress even though the success rate went down.

 Many of the failures share the same root causes so I think this
 figure could improved pretty quickly.

 I wish there was a tool to summarise the root failures out of 2000+
 junit test reports!  Just scanning at random, the most common errors
 seem to be:

 1)

  not implemented

  java.lang.RuntimeException: not implemented at
  java.lang.ClassLoader.getResources(ClassLoader.java:224) at
  org.apache.harmony.jndi.internal.EnvironmentReader.readMultipleResourceFiles

  (EnvironmentReader.java:227) at
  org.apache.harmony.jndi.internal.EnvironmentReader$2.run
  (EnvironmentReader.java:280) at
 java.security.AccessController.doPrivileged
  (AccessController.java:241) at
  
org.apache.harmony.jndi.internal.EnvironmentReader.readApplicationResourceFiles

  (EnvironmentReader.java:278) at javax.naming.InitialContext.internalInit
  (InitialContext.java:207) at javax.naming.InitialContext.init
  (InitialContext.java:151) at
  org.apache.harmony.jndi.tests.javax.naming.InitialContextMockTest.setUp
  (InitialContextMockTest.java:50)

 2)

 not implemented

 java.lang.RuntimeException: not implemented at
 org.apache.harmony.kernel.vm.VM.getNonBootstrapClassLoader(VM.java:77) at
 java.io.ObjectInputStream.readObject(ObjectInputStream.java:1942) at
 java.io.ObjectInputStream.readObject(ObjectInputStream.java:1901) at
 javax.security.auth.SubjectTest.test_PrincipalSetInvalidSerForm
 (SubjectTest.java:1297) at java.lang.reflect.Method.invokeNative
 (Method.java) at org.apache.harmony.auth.internal.SecurityTest.runTest
 (SecurityTest.java:109)

 3) Many of the crypto/auth/security tests are failing with
 implementation
not found type errors.

 4)

 META-INF/ALICE.SF has invalid digest for Test.class in /var/tmp/
 hyts_resources45209/TestCodeSigners.jar

 java.lang.SecurityException: META-INF/ALICE.SF has invalid digest for
 Test.class in /var/tmp/hyts_resources45209/TestCodeSigners.jar at
 

Re: [classlib] moving to 1.5 for real - discuss

2006-06-09 Thread Tim Ellison
Alexey Petrenko wrote:
 2006/6/8, Tim Ellison [EMAIL PROTECTED]:
 Alexey Petrenko wrote:
  2006/6/8, Mikhail Loenko [EMAIL PROTECTED]:
  what are the benefits?
  The main benefit for me is to have possibility to use all the 1.5
  extensions without any problems.
  We will need to make this step somewhen anyway since we are going to
  create 1.5 implementation.
 
  The only question from me for now: does all the Harmony VMs (DRLVM,
  j9, jchevm) support 1.5 version of class files?

 Exactly.

 So to answer part of your question : there would need to be a new IBM
 VME download put on developerworks, but I do not expect that to be a
 problem.
 Great!
 
 So we need answers from DRLVM and jchevm guys...

Archie has expressed the jchevm opinion in favour of the change --
anyone familiar with DRLVM care to comment?

(Of course this would be after Geir's VM build work, just asking)

Regards,
Tim


-- 

Tim Ellison ([EMAIL PROTECTED])
IBM Java technology centre, UK.

-
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [drlvm] build -unhook the classlib build and point to the existing in-tree one

2006-06-09 Thread Geir Magnusson Jr
Thanks for this.  I'm figuring it out.  It's pretty logical once you
start to figure it out in that you can start to guess where things might
be.  There seem to be multiple places that would be valid w/
parent-child relationships, but that's no different than make.  I don't
like what I'm guessing are constructed properties, like the includes
property in the extra.apr project appears as 'extra.apr.includes
later, which makes searching for where props are originally set somewhat
of a easter-egg hunt...

more inline...

Denis Sharypov wrote:
 I would like to give the background on how the build system is designed and
 then
 give answers for the specific questions.
 
 The build system provided with the VM is designed to be able to build the
 whole harmony codebase
 no matter how many modules it contains. The intent was to propose it later
 as a unified build system
 for the Harmony project after receiving the community feedback.

Speaking for myself, I'd personally prefer a much more loosely coupled
build framework, to allow the individual parts of Harmony (drlvm,
jchevm, classlib, tools, etc) the freedom to build in the way best
suited for that part, as determined by the people working on that part.

There has to be some overall federation, such as where generated
artifacts are to be placed when generating a JDK, but I'm hoping that
coupling doesn't have to be tight.

Others agree, disagree?

 
 The main notion the build operates with is a component - a more or less
 distinct part of product (vm, classlib, tools, etc).
 The benefits are:
 
  - A component can contain several types of source:
C++ sources, C sources, assembler sources, Java* sources, smoke
and unit tests.
 
  - A component can be processed in several ways in the build:
produce native output (shared or static library or executable)
and/or Java* classes in .jar file, produce and run smoke and/or unit
 tests.
 
  - One can switch between the different compilers and modes by using
 the environment variables, as follows:
 
On Windows*: |  On
 Linux*:
 
  -+
MSVC compiler  : set CXX=msvc   |  N/A
Intel(R) compiler : set CXX=icl|  export
 CXX=icc
GCC compiler : N/A  |  export
 CXX=gcc
Release  : set BUILD_CFG=release   |  export
 BUILD_CFG=release
Debug: set BUILD_CFG=debug  |  export
 BUILD_CFG=debug
 
 
The build dynamically produces a build_${component}.xml file for
each specific component by taking its descriptor, performing the
attribute-based filtering on it, and then applying target templates
and settings on it.
 
 The README describing how to write a component descriptor can be found at:
 harmony/enhanced/drlvm/trunk/README.txt
 
 

Now, as a build system for the drlvm (alone), I do think it's a pretty
interesting system - very slick - but I do wonder about the ease at
which we can adapt it to new things as they come along, and how easy new
people can grok it and help out.  That last factor is critical.

 
 Here are the answers on questions:
 
 Component-oriented build system is designed to support project layout this
 way :
 
 /drlvm/
 /classlib/
 /tools/
 
 /deploy/
 
 The external resources such as APR, ECLIPSE, CPPTASKS, ZLIB, etc are
 described in enhanced/drlvm/trunk/build/make/win.properties and
 enhanced/drlvm/trunk/build/make/linux.properties for each system
 respectively.

yep - that I know

 
 Each network resource location is configured as follows:
 
 remote.resource name.archive=Resource URL or local path to zip
 archive
 
 Which can be overridden through the system environment as follows:
 
 resource name_HOME=extracted archive location
 
 For example, the build takes Eclipse from it's default location on Windows:
 
 remote.ECLIPSE.archive=http://mirrors.cat.pdx.edu/eclipse/eclipse/downloads/drops/R-3.1.1-200509290840/eclipse-JDT-3.1.1.zip
 
 
 unless the ECLIPSE_HOME is set and points to the Eclipse installation
 directory.
 
 The build update command downloads resources only once. It may be
 overridden by setting resource name_HOME=extracted archive location
 variables.
 
 The build is invokable from above by calling build.bat or build.sh
 depending
 on the operating system.
 
 It is possible to specify only certain compnent(s) to build:
 
build.bat -DCOMPONENTS=vm extra classlib
 
 However, currently vm component is rigidly dependent on classlib and will
 initiate classlib building. I can't provide the patch to unhook vm and
 class
 libs today, but please allow a bit more time, and the patch will appear.
 

Ok - but if we can turn this into a conversation/tutorial here on the
list, that would be better than a patch thrown over the wall.  It will
help people learn more about this system...


Re: [jchevm+classlibadapter] Running classlib tests

2006-06-09 Thread Tim Ellison
Ivan Volosyuk wrote:
 Yes, I have done this in VMThread.run() method for newly created
 threads. But I have seen no way to do this in JNI's ThreadAttach().

Ah, ok got it.

 Looks like gnu classpath doesn't require any callbacks (like
 thread_attach()) to be called on the attached thread, so the jchevm
 doesn't do this.

and to be fair you wouldn't expect them to without reason.

 That is why in order to use classlib, this place
 needs changes in jchevm and it looks like the same applies to all
 other VMs which use gnu classpath interfaces. That is the problem I am
 talking about.

So you either have to think of ways to subvert ThreadAttach() or delay
the classlib attachment until it comes into (classlib) native code.
Either way sounds like grubby hacks required.

Regards,
Tim

 -- 
 Ivan
 
 On 6/9/06, Tim Ellison [EMAIL PROTECTED] wrote:
 Ivan Volosyuk wrote:
  Yes, there are a lot of functions without implementation. I have
  inserted this exceptions there to fast detect this places. It will
  also be a few UnsatisfiedLinkErrors for some missing functions in
  java.lang.reflect.Array.
  Security is just no-op for now. I have almost zero knowledge in this
 area.
  Most probable reason for the hang in two luni tests is bug or
  unimplemented functionality in Thread.java
  One of problems in the Thread.java I have no clue how to solve is:
   Classlib implementation uses its own thread manager implementation,
  jchevm has also its own. Some classlib's native methods implementation
  rely on thread_attach() call before them, otherwise they crash. I have
  implemented this in VMThread.run(). But JNI ThreadAttach in jchevm
  doesn't call classlib's thread_attach(), so threads attached via JNI
  will crash classlib.

 There are requirements on the VM in order to run the classlib native
 code, like setting up the port library and playing nicely with the
 thread library.  For example, native's monitor operations require that
 the thread has been attached via hythread_attach() [1].

 I don't know the JCHEVM code well enough to point to the right place,
 but performing an hythread_attach() when a JCHEVM thread is
 created/attached -- and a matching detach -- would be the answer.

 [1]
 http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/doc/vm_doc/html/hythread_8c.html?view=co


 Regards,
 Tim

  --
  Ivan
 
  On 6/8/06, Mark Hindess [EMAIL PROTECTED] wrote:
 
  On 7 June 2006 at 20:50, Mark Hindess [EMAIL PROTECTED]
  wrote:
  
   With HARMONY-569, HARMONY-572 and a couple of simple hacks - like
   removing the -showversion jvm arguments from test runs - I've been
   able to run 63% of the classlib tests.  I should get more running
 with
   a little more effort.  The test results were:
  
 Tests  FailuresErrors   Success rate
 5601   360 744  80.29%
  
   which is v. impressive.
 
  I've improved my wrapper script (linux only sorry) to ignore
  -showversion and handle -Xbootclasspath/[ap] appropriately.  I've
  attached this to HARMONY-583.
 
  I had to exclude two luni tests which were causing the vm to hang:
 
tests/api/java/lang/IllegalThreadStateExceptionTest.java
tests/api/java/lang/ThreadTest.java
 
  But the new test results are:
 
Tests  FailuresErrors   Success rate
8348   1295892  73.80%
 
  which is progress even though the success rate went down.
 
  Many of the failures share the same root causes so I think this
  figure could improved pretty quickly.
 
  I wish there was a tool to summarise the root failures out of 2000+
  junit test reports!  Just scanning at random, the most common errors
  seem to be:
 
  1)
 
   not implemented
 
   java.lang.RuntimeException: not implemented at
   java.lang.ClassLoader.getResources(ClassLoader.java:224) at
  
 org.apache.harmony.jndi.internal.EnvironmentReader.readMultipleResourceFiles

 
   (EnvironmentReader.java:227) at
   org.apache.harmony.jndi.internal.EnvironmentReader$2.run
   (EnvironmentReader.java:280) at
  java.security.AccessController.doPrivileged
   (AccessController.java:241) at
  
 org.apache.harmony.jndi.internal.EnvironmentReader.readApplicationResourceFiles

 
   (EnvironmentReader.java:278) at
 javax.naming.InitialContext.internalInit
   (InitialContext.java:207) at javax.naming.InitialContext.init
   (InitialContext.java:151) at
  
 org.apache.harmony.jndi.tests.javax.naming.InitialContextMockTest.setUp
   (InitialContextMockTest.java:50)
 
  2)
 
  not implemented
 
  java.lang.RuntimeException: not implemented at
 
 org.apache.harmony.kernel.vm.VM.getNonBootstrapClassLoader(VM.java:77) at
  java.io.ObjectInputStream.readObject(ObjectInputStream.java:1942) at
  java.io.ObjectInputStream.readObject(ObjectInputStream.java:1901) at
  javax.security.auth.SubjectTest.test_PrincipalSetInvalidSerForm
  (SubjectTest.java:1297) at java.lang.reflect.Method.invokeNative
  (Method.java) at 

Re: [classlib] build failure

2006-06-09 Thread Tim Ellison
Geir Magnusson Jr wrote:
 do you mean larger?

It may be larger if the last test fails with a walkback ;-) but
generally the build fails part way through, with a message, and the rest
of the log is not written, so it is smaller overall.

Regards,
Tim

I was wondering what the size is so I can see if
 it's the threshold set on the list, or something else...
 
 geir
 
 
 Mark Hindess wrote:
 Just about to go offline, but I'd guess smaller since not as much works!
 ;-)

 -Mark.

 On 9 June 2006 at 7:01, Geir Magnusson Jr [EMAIL PROTECTED] wrote:
 any clue about how big a failed message is (if you can figure that out...)?

 geir

 Mark Hindess wrote:
 The most recent success message was 343k at approximately 
 Fri, 09 Jun 06 11:26:34 +0100.

 -Mark.

 On 9 June 2006 at 6:33, Geir Magnusson Jr [EMAIL PROTECTED] wrote:
 A large message should still generate a bounce...

 I'll go look to see what the size is.

 How large are these messages?

 Mark Hindess wrote:
 On 9 June 2006 at 16:55, Stepan Mishura [EMAIL PROTECTED] wrot
 e:
 Hi Tim,

 On 6/9/06, Tim Ellison [EMAIL PROTECTED] wrote:
 I see it too.

 Stepan / Mikhail, do you get build failures?  Shouldn't we stop putting
 in new code until this is resolved?
  I didn't update this particular file because I work separately with
 security module only.
 But I think that you are right - it'd better to stop putting new code on
 ce
 we get notification that the build is broken.

 BTW, where is classlib build status emails? I didn't get any notificatio
 n.
 I think they are failing to get to the list because they are too large.
 I tried changing the envelope sender to my gmail account - which is
 subscribed to the -commits list, but they still don't make the list
 or generate any bounce messages.  I've changed the sender back to
 [EMAIL PROTECTED] as it was originally.

 Regards,
  Mark.



 -
 Terms of use : http://incubator.apache.org/harmony/mailing.html
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]


 -
 Terms of use : http://incubator.apache.org/harmony/mailing.html
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]

 -
 Terms of use : http://incubator.apache.org/harmony/mailing.html
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]


 -
 Terms of use : http://incubator.apache.org/harmony/mailing.html
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]


 -
 Terms of use : http://incubator.apache.org/harmony/mailing.html
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]


 
 -
 Terms of use : http://incubator.apache.org/harmony/mailing.html
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
 
 

-- 

Tim Ellison ([EMAIL PROTECTED])
IBM Java technology centre, UK.

-
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [drlvm] build -unhook the classlib build and point to the existing in-tree one

2006-06-09 Thread Denis Sharypov

Currently two VM subcomponents - vmi and kernel_classes - explicitly depend
on classlibs.
It's needed to get rid of this and then bootstrap prebuilt harmony classlib
while building vm subcomponents.
Here're the extracts from the correponding xml descriptors describing
dependency:

project name=vm.vmi
   target name=init depends=common_vm
   property name=build.depends value=classlib.vmi_includes,
 extra.apr,
 vm.vmcore,
 classlib.pool,
 classlib.zip,
 classlib.port /



project name=vm.kernel_classes
   target name=init depends=common_vm
   property name=build.java.depends
 value=classlib.luni,classlib.security,classlib.archive,
classlib.regex,classlib.nio,classlib.nio_char/

--
Denis Sharypov,
Intel Middleware Products Division




 It is possible to specify only certain compnent(s) to build:

build.bat -DCOMPONENTS=vm extra classlib

 However, currently vm component is rigidly dependent on classlib and
will
 initiate classlib building. I can't provide the patch to unhook vm and
 class
 libs today, but please allow a bit more time, and the patch will appear.


Ok - but if we can turn this into a conversation/tutorial here on the
list, that would be better than a patch thrown over the wall.  It will
help people learn more about this system...

geir

-
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




Re: [drlvm] build -unhook the classlib build and point to the existing in-tree one

2006-06-09 Thread Oliver Deakin

Geir Magnusson Jr wrote:

snip

Denis Sharypov wrote:
  

I would like to give the background on how the build system is designed and
then
give answers for the specific questions.

The build system provided with the VM is designed to be able to build the
whole harmony codebase
no matter how many modules it contains. The intent was to propose it later
as a unified build system
for the Harmony project after receiving the community feedback.



Speaking for myself, I'd personally prefer a much more loosely coupled
build framework, to allow the individual parts of Harmony (drlvm,
jchevm, classlib, tools, etc) the freedom to build in the way best
suited for that part, as determined by the people working on that part.

There has to be some overall federation, such as where generated
artifacts are to be placed when generating a JDK, but I'm hoping that
coupling doesn't have to be tight.

Others agree, disagree?

  


Agreed - IMHO using a build system for each VM or classlib that most 
suits that

particular component makes sense.
Classlib currently has a fairly straightforward build system (which 
could probably be
simplified further with some work), and this is good enough for it - it 
suits all the

requirements of that component and is easy to use.
DRLVM has a more complex build system, but probably with some 
justification due

to the complexity of the project it is compiling.

As long as they produce binaries that can be combined (adhere to the VMI,
produced JDK 'shape' is standard etc.) then I dont think it matters if the
underlying build systems are the same.

Regards,
Oliver

--
Oliver Deakin
IBM United Kingdom Limited


-
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [DRLVM] MMTk vmmagic classes, can someone w/ compiler experience help me?

2006-06-09 Thread Weldon Washburn

On 6/9/06, Xiao-Feng Li [EMAIL PROTECTED] wrote:

Clever trick. But I don't understand why you want to create the
Address object at all.


hmm... please read my example again.  I do not create an Address
object.   And the call to invokespecial is nop'ed.


You can probably just invoke a method of
Address to generate an Address object reference, and the method
invoke bytecode can be identified by the JIT compiler easily and
replaced by a nop or whatever proper. In this way, the Address object
reference can be used directly as an object reference, i.e., object
pointer.


Well actually in what I propose, instances of Address are always an
int.  Note that the JIT never has GC maps for ints.  If  I
understand vmmagic correctly, instances of Address are only used for
pointer arithmetic.  They are never used as reference pointers.  To
use an Address as a reference pointer, you must convert it back to an
ObjectReference.



Thanks,
xiaofeng

On 6/9/06, Weldon Washburn [EMAIL PROTECTED] wrote:
 All,

 I am hoping someone who has worked on compilers can actually do the
 JIT modifications.  I don't have much experience in compilers.

 I am trying to get MMTk write barriers integrated into Harmony DRLVM.
 I came up with the following scheme.  I don't know if it is correct.
 It would be great if someone from the MMTk crowd looked at it.  If it
 helps, I can also post this message on Jikes/MMTk mailing list.

 Build a shim between the DRLVM class loader and Jitrino.JET.  The shim
 would contain a lookup table that would map _local_ variables of
 specific types to int.  In particular, the shim would re-map local
 variables of the below types to int:

 Address
 Extent
 Offset
 Word

 The reason for the shim is to avoid modifying the class loader.  This
 should reduce the maintenance burden.

 Java source code that creates objects of the above classes is a now a
 problem.  For example, Java source code that does:

 int xx = 33;
 Address a1 = new Address(xx);

 Translates to the following bytecode:

 bipush 33
 istore_1
 new //class Address
 dup
 iload_1
 invokespecial   //Method init: (I)V
 astore_2

 Basically the JIT needs to special case new.  If it is a new of
 class Address/Extent/Offset/Word, substitute nop for the new bytecode.
  If new has been substituted, then replace the following dup with a
 nop.  Leave iload_1 alone.  Nop invokespecial.  If the new was nop'ed,
 replace astore_2 with istore_2.

 The bytecode sequence the JIT really sees is now:

 bipush 33
 istore_1
 nop //new   //class Address
 nop // dup
 iload_1
 nop //invokespecial //Method init: (I)V
 istore_2//astore_2

 Another example:

 int xx = 33;
 Address a1 = new Address(xx);
 int kk = a1.toInt();

 Translates to bytecode that looks like:


 bipush 33
 istore_1
 new //class Address
 dup
 iload_1
 invokespecial   //Method init: (I)V
 astore_2
  new code starts here
 aload_2
 invokevirtual   //Method toInt(V)I
 istore_3

 All the bytecode down to astore_2 has already been described in the
 first example.  The additional bytecode would be magically remapped by
 the JIT to:

 iload_2 // aload_2
 nop // invokevirtual//Method toInt(V)I
 istore_3

 Equivalent mappings will be needed for the rest of the methods of
 class Address as well as Extent, Offset and Word.

 Will the above work?  Thoughts?




 --
 Weldon Washburn
 Intel Middleware Products Division

 -
 Terms of use : http://incubator.apache.org/harmony/mailing.html
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]



-
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]





--
Weldon Washburn
Intel Middleware Products Division

-
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [DRLVM] MMTk vmmagic classes, can someone w/ compiler experience help me?

2006-06-09 Thread Xiao-Feng Li

Ok, actually I meant to write:
int xx = 33;
Address a1 = Address.creat(xx);
so that the bytecode sequence has no stuff for object new. JIT only
needs to recognize Address.creat() as an intrinsic for compilation
without bytecode rewrite.

And yes, I agree that an Address can be only an address in semantics
if that's desirable.

Thanks,
xiaofeng

On 6/9/06, Weldon Washburn [EMAIL PROTECTED] wrote:

On 6/9/06, Xiao-Feng Li [EMAIL PROTECTED] wrote:
 Clever trick. But I don't understand why you want to create the
 Address object at all.

hmm... please read my example again.  I do not create an Address
object.   And the call to invokespecial is nop'ed.

 You can probably just invoke a method of
 Address to generate an Address object reference, and the method
 invoke bytecode can be identified by the JIT compiler easily and
 replaced by a nop or whatever proper. In this way, the Address object
 reference can be used directly as an object reference, i.e., object
 pointer.

Well actually in what I propose, instances of Address are always an
int.  Note that the JIT never has GC maps for ints.  If  I
understand vmmagic correctly, instances of Address are only used for
pointer arithmetic.  They are never used as reference pointers.  To
use an Address as a reference pointer, you must convert it back to an
ObjectReference.


 Thanks,
 xiaofeng

 On 6/9/06, Weldon Washburn [EMAIL PROTECTED] wrote:
  All,
 
  I am hoping someone who has worked on compilers can actually do the
  JIT modifications.  I don't have much experience in compilers.
 
  I am trying to get MMTk write barriers integrated into Harmony DRLVM.
  I came up with the following scheme.  I don't know if it is correct.
  It would be great if someone from the MMTk crowd looked at it.  If it
  helps, I can also post this message on Jikes/MMTk mailing list.
 
  Build a shim between the DRLVM class loader and Jitrino.JET.  The shim
  would contain a lookup table that would map _local_ variables of
  specific types to int.  In particular, the shim would re-map local
  variables of the below types to int:
 
  Address
  Extent
  Offset
  Word
 
  The reason for the shim is to avoid modifying the class loader.  This
  should reduce the maintenance burden.
 
  Java source code that creates objects of the above classes is a now a
  problem.  For example, Java source code that does:
 
  int xx = 33;
  Address a1 = new Address(xx);
 
  Translates to the following bytecode:
 
  bipush 33
  istore_1
  new //class Address
  dup
  iload_1
  invokespecial   //Method init: (I)V
  astore_2
 
  Basically the JIT needs to special case new.  If it is a new of
  class Address/Extent/Offset/Word, substitute nop for the new bytecode.
   If new has been substituted, then replace the following dup with a
  nop.  Leave iload_1 alone.  Nop invokespecial.  If the new was nop'ed,
  replace astore_2 with istore_2.
 
  The bytecode sequence the JIT really sees is now:
 
  bipush 33
  istore_1
  nop //new   //class Address
  nop // dup
  iload_1
  nop //invokespecial //Method init: (I)V
  istore_2//astore_2
 
  Another example:
 
  int xx = 33;
  Address a1 = new Address(xx);
  int kk = a1.toInt();
 
  Translates to bytecode that looks like:
 
 
  bipush 33
  istore_1
  new //class Address
  dup
  iload_1
  invokespecial   //Method init: (I)V
  astore_2
   new code starts here
  aload_2
  invokevirtual   //Method toInt(V)I
  istore_3
 
  All the bytecode down to astore_2 has already been described in the
  first example.  The additional bytecode would be magically remapped by
  the JIT to:
 
  iload_2 // aload_2
  nop // invokevirtual//Method toInt(V)I
  istore_3
 
  Equivalent mappings will be needed for the rest of the methods of
  class Address as well as Extent, Offset and Word.
 
  Will the above work?  Thoughts?
 
 
 
 
  --
  Weldon Washburn
  Intel Middleware Products Division
 
  -
  Terms of use : http://incubator.apache.org/harmony/mailing.html
  To unsubscribe, e-mail: [EMAIL PROTECTED]
  For additional commands, e-mail: [EMAIL PROTECTED]
 
 

 -
 Terms of use : http://incubator.apache.org/harmony/mailing.html
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]




--
Weldon Washburn
Intel Middleware Products Division

-
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional 

Re: [classlib] moving to 1.5 for real - discuss

2006-06-09 Thread Alexey Varlamov

 So we need answers from DRLVM and jchevm guys...

Archie has expressed the jchevm opinion in favour of the change --
anyone familiar with DRLVM care to comment?

(Of course this would be after Geir's VM build work, just asking)

Regards,
Tim


DRLVM needs some (minor) changes to support 1.5-targeted classfiles,
this is quite easy. Full-fledged implementation of 1.5 kernel classes
(annotations, reflection, etc) requires some more efforts but also
should not take too long.
So +1 from me.

Regards,
Alexey Varlamov

-
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [jchevm+classlibadapter] Running classlib tests

2006-06-09 Thread Ivan Volosyuk

As far as I can see classlib uses port library libprt.so which is
intended to be used by VM as low level layer above OS threading
system. Some kind of abstraction of underlying OS primitives. The port
library is widely used in classlib. The port library data is
accessible via TLS (it is done imho to support multi VM environments).
To initialize each thread's TLS pointer to the port library the
thread_attach() function is needed.
--
Ivan

On 6/9/06, Archie Cobbs [EMAIL PROTECTED] wrote:

Ivan Volosyuk wrote:
 Yes, I have done this in VMThread.run() method for newly created
 threads. But I have seen no way to do this in JNI's ThreadAttach().
 Looks like gnu classpath doesn't require any callbacks (like
 thread_attach()) to be called on the attached thread, so the jchevm
 doesn't do this. That is why in order to use classlib, this place
 needs changes in jchevm and it looks like the same applies to all
 other VMs which use gnu classpath interfaces. That is the problem I am
 talking about.

I haven't looked at the code so these may be questions arising from
ignorance..

What native code in classlib requires special thread support and why?

Could we simply override those classes and eliminate this need, and
just remove (or ignore) the classlib thread stuff?

Why can't whatever code uses thread_attach() use the normal JNI methods
for thread management instead?

JCHEVM should be compatible with any native library that adheres to
the JNI spec.. but if it requires other backdoor functions to be
supplied by the JVM, then in theory we can eliminate that requirement,
because after all normal Classpath doesn't require it and it works
just fine.

Thanks,
-Archie


-
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [classlib] moving to 1.5 for real - discuss

2006-06-09 Thread Geir Magnusson Jr


Tim Ellison wrote:
 Alexey Petrenko wrote:
 2006/6/8, Tim Ellison [EMAIL PROTECTED]:
 Alexey Petrenko wrote:
 2006/6/8, Mikhail Loenko [EMAIL PROTECTED]:
 what are the benefits?
 The main benefit for me is to have possibility to use all the 1.5
 extensions without any problems.
 We will need to make this step somewhen anyway since we are going to
 create 1.5 implementation.

 The only question from me for now: does all the Harmony VMs (DRLVM,
 j9, jchevm) support 1.5 version of class files?
 Exactly.

 So to answer part of your question : there would need to be a new IBM
 VME download put on developerworks, but I do not expect that to be a
 problem.
 Great!

 So we need answers from DRLVM and jchevm guys...
 
 Archie has expressed the jchevm opinion in favour of the change --
 anyone familiar with DRLVM care to comment?
 
 (Of course this would be after Geir's VM build work, just asking)

My intention is to not hold anything up and always have the old build
system work, so no need to serialize.

geir


-
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



[DRLVM] one more gc

2006-06-09 Thread Ivan Volosyuk

While some works going on to properly integrate DRLVM in harmony build system...

I would like to start development of new garbage collector. I know
about Weldon's work related to MMTk. I am not sure that it is the
right way.

Instead of doing GC based on java, I would concentrate on the one
written in C. I think that the VM written in C (or C++ ) should have
GC written the same way.

I have some experience in garbage collectors (stop-the-world ones for
now) and want to extend my knowledge in this area. That is one of the
reasons I want to make the GC, but do not port the existing one. I
hope I will eventually produce something which is better then existing
implementations or at least a few new ideas.

I would like to start implementing something similar to Train
algorithm, then possibly modify it in direction to Garbage First
collector. I want to create something with high performance and low
pauses.  At the beginning it will not even compile. I do not expect
this to be interesting to anyone for some time, but as Geir always
suggests I going to do this in public to avoid surprises.

All required VM functionality (for GC written in C) is already in
place. DRLVM's interfaces for GC is ok for me and should be quite
portable. Write barriers implementation is already in place, suitable
for C-based Gc: (Harmony-504 (me), Harmony-581 (Ming Wu)).

As I don't have commiter account, I going to create one JIRA and start
to fill it with patches. In the patches I will create directory
enhanced/drlvm/trunk/vm/gcx and will start to fill it with stubs and
implementation. I am going to do it mostly at spare time.

I hope this doesn't bother anyone. :)
--
Ivan
Intel Middleware Products Division

-
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



JIRA summaries

2006-06-09 Thread Mark Hindess

Is there any interest in having summaries of JIRA activity sent to the
list once a week?  Something like the following perhaps sent to the
commits list every Sunday at midnight or something?

Regards,
 Mark

Summary of JIRA activity since 2006-06-02
=

New
---

  11 Fixed
  23 Unresolved


Updated
---

  26 Fixed
   4 Unresolved


New
===

Fixed
-

[HARMONY-554] [classlib][luni-kernel] Java 5 Updates for Class, Package
  and Thread
[HARMONY-555] Missing s/w for linux build of harmony
[HARMONY-556] [classlib][luni] TreeMap and TreeSet generification
[HARMONY-559] [classlib][luni] new classes java.util.AbstractQueue
[HARMONY-561] Modularise native include directories
[HARMONY-562] [rmi2.1.4] removing commented out call now we have
  Timer.purge
[HARMONY-563] Java 5 Enhancement: java.util.Properties should implement
  methods loadFromXML, storeToXML.
[HARMONY-567] [classlib][luni] java.util.Scanner constructors not
  implemented
[HARMONY-571] [classlib] [beans] 
[HARMONY-576] Keytool - first contribution. Files with stubs.
[HARMONY-577] [classlib][util]
  java.util.zip.ZipOutputStream.write(byte[] ) doesn't
  throw IOException if an entry is not set


Unresolved
--

[HARMONY-557] [classlib] Update build scripts to use JUnit 3.8.1
[HARMONY-558] [classlib] Update build scripts to use Eclipse JDT 3.2RC7
  compiler
[HARMONY-560] Use mx4j for javax.management
[HARMONY-564] Scripts to generate test coveragte report using Emma and
  Ant
[HARMONY-565] Application class coverage checking scripts
[HARMONY-566] NASM port of assembly parts of win32 code in hythreads
[HARMONY-568] Bug in java.net.InetSocketAddress serialization
[HARMONY-569] [classlibadapter] System.setOut/setErr implementation
[HARMONY-570] [classlib] HttpURLConnection does not use proxy
[HARMONY-572] [classlibadapter] implement Package.isSealed methods
[HARMONY-573] Implementation of ThreadLocal support in Thread
[HARMONY-574] [classlib][util] Java 5 Enhancement:new class
  java.util.PriorityQueue
[HARMONY-575] [classlib][tesing] Refactor ByteBuffer testcases in
  org.apache.harmony.tests.java.nio 
[HARMONY-578] [classlib][nio] NIO should provide some utility classes
  for the JNI 1.4 enhancement
[HARMONY-579] [jchevm] trivial memory leak when command line arguments
  are replaced/ignored
[HARMONY-580] [classlib][regex][perf] Lookaround matching is slow
[HARMONY-581] Write barrier patch for jet in drlvm
[HARMONY-582] java.nio.channels.Selector.open() returns null
[HARMONY-583] [classlibadapter] fake java wrapper to enable classlib
  tests to be run
[HARMONY-584] missing descriptions in @param tags
[HARMONY-585] [jchevm] minimal 1.5 class file support
[HARMONY-586] Keytool - added parameter and options declarations and
  commands enum.
[HARMONY-587] [classlib][security] Split impl vs. api tests


Updated
===

Fixed
-

[HARMONY-199] Contribution of javax.crypto and java.math
[HARMONY-421] java.beans.VetoableChangeSupport.readObject() throws
  unexpected ClassCastException
[HARMONY-438] DRL Virtual Machine contribution
[HARMONY-481] PKCS7 SignedData is not designed to be encoded
[HARMONY-515] [classlib][luni] java.io: missing 8 methods and 4
  constructors in PrintWriter and PrintStream.
[HARMONY-516] [classlib] [beans]
  java.beans.PropertyEditorSupport.getAsText() throws
  unexpected ClassCastException
[HARMONY-522] java.util.Scanner is not implemented in Harmony
[HARMONY-524] [classlib][luni-kernel] java.lang.reflect Field and
  Method generification
[HARMONY-525] [classlib][luni] Misc Collections Generification
[HARMONY-527] [classlib][text]
  java.text.AttributedString.addAttribute() incorrectly
  handles null value.
[HARMONY-531] [classlib] CertificateFactory source files are poorly
  documented
[HARMONY-533] Java 5 Enhancement: util.Arrays should implement
  deepHashCode, deepEquals, hashCode(*) methods.
[HARMONY-537] [classlib] X.509 CertificateFactory implementation does
  not support PKCS7 Data
[HARMONY-538] Windows native clean target does not clean all produced
  files
[HARMONY-539] ArrayList.addAll(0, ...) index out of bounds exception
[HARMONY-540] [classlib][text] Method applyPattern(String) of
  java.text.ChoiceFormat incorrectly throws
  IllegalArgumentException.
[HARMONY-542] [classlib][luni] Misc java.util Generifications
[HARMONY-543] javax.naming.spi generifications
[HARMONY-544] javax.naming.ldap generifications
[HARMONY-545] javax.naming.directory generifications
[HARMONY-546] javax.naming generifications
[HARMONY-548] upgrade to xerces 2.8.0 and xalan 2.7.0
[HARMONY-549] [classlib][nio-channels]
  

Re: svn commit: r413113 - in /incubator/harmony/enhanced/drlvm/trunk/build/make: components/extra/apr.xml components/extra/aprutil.xml components/extra/log4cxx.xml targets/common_classlib.xml

2006-06-09 Thread Mark Hindess

On 9 June 2006 at 18:06, [EMAIL PROTECTED] wrote:
 Author: geirm
 Date: Fri Jun  9 11:06:17 2006
 New Revision: 413113
 
 URL: http://svn.apache.org/viewvc?rev=413113view=rev
 Log:
 tweaks to stop the apr-1/foo.h stuff, and 
 just do foo.h for APR includes.  Not a big deal
 but let me get more comfortable w/ the build.
 
 No functional changes.  
 
 Code change commit will follow

[ snipped, good stuff cleaning up includes. ]

There are issues like this with the awt/swing contribution (see
HARMONY-534) doing includes in non-standard and even in a way that broke
the build for me.  I think it is a big deal to use header files in the
way that is intended/common.

...

 Modified: incubator/harmony/enhanced/drlvm/trunk/build/make/targets/common_cl
 asslib.xml
 URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/drlvm/trunk/buil
 d/make/targets/common_classlib.xml?rev=413113r1=413112r2=413113view=diff
 =
 =
 --- incubator/harmony/enhanced/drlvm/trunk/build/make/targets/common_classlib
 .xml (original)
 +++ incubator/harmony/enhanced/drlvm/trunk/build/make/targets/common_classlib
 .xml Fri Jun  9 11:06:17 2006
 @@ -75,6 +75,13 @@
  compiler id=common.compiler
  !--common for cpp and c--
  includepath
 +
 +!-- $$$ geirm for what's coming...  
 +pathelement location=${build.CLASSLIB.home}/deploy/include
  /
 +pathelement location=${build.CLASSLIB.home}/deploy/jdk/inc
 lude /
 +pathelement location=${build.CLASSLIB.home}/modules/luni/s
 rc/main/native/include/shared /

I don't think you should need this last one.  Any header is intended to 
define a public interface to the luni module should have been copied to 
deploy/include by the build.  If you need to point in to the module, 
then we might have a discrepancy about what is public/private that needs
addressing.

-Mark.

 +--

  pathelement location=${os.native.dir}/include /
  pathelement location=${shared.dir}/include /
  pathelement location=${common.src} /
 



-
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [classlib] moving to 1.5 for real - discuss

2006-06-09 Thread Tim Ellison
Alexey Varlamov wrote:
  So we need answers from DRLVM and jchevm guys...

 Archie has expressed the jchevm opinion in favour of the change --
 anyone familiar with DRLVM care to comment?

 (Of course this would be after Geir's VM build work, just asking)

 Regards,
 Tim
 
 DRLVM needs some (minor) changes to support 1.5-targeted classfiles,
 this is quite easy. Full-fledged implementation of 1.5 kernel classes
 (annotations, reflection, etc) requires some more efforts but also
 should not take too long.

Understood, I wasn't expecting those to be working -- just the effort to
let DRLVM grok the v49 files.

 So +1 from me.

Well it isn't a formal vote, but glad to see you are in favor too.

Regards,
Tim


-- 

Tim Ellison ([EMAIL PROTECTED])
IBM Java technology centre, UK.


-
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



[drlvm] update - removed apr-1 in includes

2006-06-09 Thread Geir Magnusson Jr
I just did a small checkin of minor mods of the current build system and
  VM source that changes how the APR headers are treated.

It's a simple, minor change

  #include apr-1/apr.h

becomes

  #include apr.h

the real benefit is that I learned a bit more about how the build stuff
works :)

I've only tested under windows - it builds and passes all tests.  I'll
try linux too at some point unless someone beats me to it.

Next, I'm going to try to switch to the current version of classlib.

geir

-
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [classlib] logging from within our implementation

2006-06-09 Thread Alexei Zakharov

 I promise that if we need logging then I'll personally volunteer to
 uncomment those same lines, and let Alexei make fun of me while saying
 'I told you so'.
in Russian.


I can do it in several languages of your choice (Russian, English,
Japanese) if this helps to resolve the situation with logging.  :)

2006/6/9, Geir Magnusson Jr [EMAIL PROTECTED]:


Tim Ellison wrote:
 Geir Magnusson Jr wrote:
 Tim Ellison wrote:
 Resurrecting this thread, with some trepidation...

 We went round the houses a bit, but did we reach a conclusion to the
 questions you posed?
 Sadly, no, it doesn't seem so.

 I was hoping that Aspect-Master-George might give us some hints...

 I'm eager to fix-up the DNS provider code.
 Is there something driving that other than the desire to put it to
 bed?  (Just curious)

 Can you just comment the stuff out?  (or I can - I'll be happy to)

 Ok, so here goes...

 I shall leave the logging statements in place but comment them out (so
 they are easy to replace if we decide we can't live without them, or
 indeed that all classlib code should contain logging) and I will remove
 the o.a.h.util.logging.LogConst type from the JNDI module.

Oh, o.a.h.util.logging.LogConst... we barely knew ye


 I promise that if we need logging then I'll personally volunteer to
 uncomment those same lines, and let Alexei make fun of me while saying
 'I told you so'.

in Russian.

geir


 Regards,
 Tim


--
Alexei Zakharov,
Intel Middleware Product Division

-
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: svn commit: r413114 - in /incubator/harmony/enhanced/drlvm/trunk/vm: em/src/ gc/src/ include/ include/open/ port/include/ port/include/tl/ port/src/disasm/linux/ port/src/disasm/win/ port/src/file

2006-06-09 Thread Geir Magnusson Jr
Oh geeze.  How embarassing.  I assume you fixed?

(I was going to flip to my VMWare Ubuntu VMM but it's too slow.  I have
a second laptop I will install Ubuntu on, but don't have enough Round
Tuits...)

geir


Mark Hindess wrote:
 On 9 June 2006 at 18:09, [EMAIL PROTECTED] wrote:
 Author: geirm
 Date: Fri Jun  9 11:09:16 2006
 New Revision: 413114

 URL: http://svn.apache.org/viewvc?rev=413114view=rev
 Log:
 tweaks to stop the apr-1/foo.h stuff, and 
 just do foo.h for APR includes.  Not a big deal
 but let me get more comfortable w/ the build.

 No functional changes.  

 Tests pass on winxp.  Linux not tested yet
 
 Testing at the moment... I did find ...
 
 Modified: incubator/harmony/enhanced/drlvm/trunk/vm/port/src/misc/linux/dso.c
 URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/drlvm/trunk/vm/p
 ort/src/misc/linux/dso.c?rev=413114r1=413113r2=413114view=diff
 =
 =
 --- incubator/harmony/enhanced/drlvm/trunk/vm/port/src/misc/linux/dso.c (orig
 inal)
 +++ incubator/harmony/enhanced/drlvm/trunk/vm/port/src/misc/linux/dso.c Fri J
 un  9 11:09:16 2006
 @@ -19,9 +19,9 @@
  */  
  
  #include dlfcn.h
 -#include stdlib.h
 -#include apr-1/apr_dso.h
 -#include apr-1/apr_strings.h
 +#include stdliapr_dso.h
 +#include b.h
 +#include apr_strings.h
  #include port_dso.h
  
  struct apr_dso_handle_t {
 
 which I fixed.
 
 Still compiling ... will let you know if there are any other issues.
 
 -Mark.
 
 
 
 -
 Terms of use : http://incubator.apache.org/harmony/mailing.html
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
 
 

-
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



RE: Problems with builth path!

2006-06-09 Thread Nathan Beyer
After you've got everything built and you have the PDE's Target Platform
pointing at the 'deploy\jdk\jre\lib\boot' folder you should just need to add
the luni-kernel-stubs.jar to your build path. Most of the dependencies
should be resolved as Plug-in Dependencies. You'll also need to add the
'build\tests' as a class folder so that the tests can compile. I usually do
this by creating a new linked folder.

-Nathan

 -Original Message-
 From: Bidea Cristian [mailto:[EMAIL PROTECTED]
 Sent: Friday, June 09, 2006 4:11 PM
 To: harmony-dev@incubator.apache.org
 Subject: Problems with builth path!
 
 Hello to everyone
 
 I've tried setting up my Eclipse environment for working on Harmony (at
 list trying) and I faced a problem. I've compiled the classpath and I've
 installed the VM from IBM. After that I've started Eclipse, after
 putting the required options in eclipse.ini, setting everything and
 checking it twice.
 
 When I checkout a module from repository I keep getting the same error
 at build:
 
 Severity and Description
 The project was not built since its build path is incomplete. Cannot
 find the class file for java.lang.Object. Fix the build path then try
 building this project
 
 I'm not sure what should I include in the path or what am I doing wrong.
 In Eclipse in the Java Build Path menu I have only the option to include
 jars. I even tried to put everything from the Harmony/build directory
 into a jar and after that including it into java build path but it
 generated even more errors.
 
 I'm using Eclipse 3.2RC7.
 
 Thanks,
 Cristian
 
 
 -
 Terms of use : http://incubator.apache.org/harmony/mailing.html
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]


-
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



RE: [classlib] proposal - resolution to java.util.concurrent issue

2006-06-09 Thread Nathan Beyer


 -Original Message-
 From: Geir Magnusson Jr [mailto:[EMAIL PROTECTED]
 Tim Ellison wrote:
  Geir Magnusson Jr wrote:
  Tim Ellison wrote:
  Geir Magnusson Jr wrote:
  I had a nice chat with Doug today to try to reach a conclusion
 regarding
  j.u.c
 
  Given that everyone else (Sun, IBM, BEA...) seems to use j.u.c, found
 here
 
  http://gee.cs.oswego.edu/cgi-
 bin/viewcvs.cgi/jsr166/src/main/java/util/concurrent/
 
  I think that we'd be well-served to do so as well.  It's the RI, it's
  complicated, it goes w/o saying that Doug is committed to this being
  right, and I'd like to have the same bugs as everyone else for now :)
 
  The summary of what I think we should do is simple - we take the code
  from j.u.c from the above link (w/ 1 exception) into our SVN repo and
  track any changes made by Doug and the jsr166 EG going forward.
  So I understand correctly, are you talking about taking the source
 code
  into Harmony SVN, or creating a dependency on a binary version of that
  code (stored in our SVN)?
  Into our SVN, simply for ease of use, oversight, and control.
 
  Can you expand on that for me?  Why isn't a binary dependency
 sufficient?
 
 It would be if there was one.  As far as I can tell, there isn't.
 
 There also may be small mods required to work w/ our VMI.  Dunno -
 hopefully Nathan or others can tell us.

There was one binary, but it seemed more like an experimental build of new
stuff.

As for the code, there will have to be some modifications to work with our
VMI. The java.util.concurrent classes are clean, but the 'atomic' and
'locks' packages are filled with references to a Sun proprietary class, that
we would have to replace. For example, check out the AtomicBoolean class
[1].

[1]
http://gee.cs.oswego.edu/cgi-bin/viewcvs.cgi/jsr166/src/main/java/util/concu
rrent/atomic/AtomicBoolean.java?rev=1.20content-type=text/vnd.viewcvs-marku
p
 
 What's the problem with having the source around?  It makes it easier
 for people to look at, debug, etc...
 
 
  Just trying to figure the rationale of taking source if the goal is to
  be in lock-step.  Are you imagining that there may be patches created
  here that are ALv2'd only (and maybe therefore do not go back into
  Doug's copy)?
  It could be, although given how it seems to be working, I would guess
  we'd work with Doug if there were problems, and see if he'd do it into
  the RI.
 
  All the code is under the following terms, which are acceptable to
 the ASF :
 
  /*
   * Written by Doug Lea with assistance from members of JCP JSR-166
   * Expert Group and released to the public domain, as explained at
   * http://creativecommons.org/licenses/publicdomain
   */
 
  except for one file :
 
  http://gee.cs.oswego.edu/cgi-
 bin/viewcvs.cgi/jsr166/src/main/java/util/concurrent/CopyOnWriteArrayList.
 java
 
  for which I understand we can get a clean replacement from the
 backport.
 
  Now, there is an issue of our clean-room rules, and I think there's a
  very neat solution that would allow us to use this code w/o getting
 an
  ACQ from the authors of j.u.c (which Doug claims is himself, assisted
 by
  the JSR166 EG)
 
  The premise of our ACQ structure is that we want to ensure that
 people
  who have worked on a non-open/non-free implementation of a
  portion/module/component of Java not work on our implementation of
 that
  portion/module/component.
 
  Now, given that j.u.c in Java SE 5 is the first time this
 functionality
  has existed, it must be the case that the contributors are not
  contaminated by working on another implementation, since there are no
  other implementations.  We can't be contaminated because there's
 nothing
  with which to contaminate us with.
  AIUI (and hypothetically) people could take a copy of the public
 domain
  code and create a proprietary derivative couldn't they? And the spec
 is
  out there for all to see, how do you know there are no other
  implementations?
  There could be implementations out there now, but there weren't before,
  and we'd just have to watch to see what gets added down the road...
 
  I assume that the authors (jsr166-group) have a good knowledge of all
  sorts of code that is in our ACQ CORE bucket.  The need not only be
  'contaminated' by concurrent.
 
 Right, but unless you believe that by knowing about code in our CORE
 bucket that isn't j.u.c yet somehow tainted j.u.c, shouldn't we just add
 a new 'bucket' for j.u.c to solve what would then simply be a paper
 problem?
 
 
  (I would like to see this, I'm still just thinking it through).
 
 This is a good and reasonable discussion to have.  I'm just working the
 Pragmatic Devil's Advocate line here...
 
 geir
 
 
  Regards,
  Tim
 
  That is the gate I was talking about - we are still overseeing what
  we're distributing...
 
 
  Of course, this needs VM support, so there is work to do, but this
 seems
  like a sane and clean way to add this functionality to Harmony
 classlib,
  as well as build a bridge to another 

Re: Problems with builth path!

2006-06-09 Thread Tim Ellison
Yep, in fact recent builds of Eclipse can cope with the kernel jars if
you specify -Dpde.allowCycles=true as well as -Dpde.jreProfile=none on
the launch-line.

(We should plan to put the stubs and tests support jars into the HDK
when we get there, but yes, in the meantime link/load it into the
workspace/target)

Regards,
Tim

Nathan Beyer wrote:
 After you've got everything built and you have the PDE's Target Platform
 pointing at the 'deploy\jdk\jre\lib\boot' folder you should just need to add
 the luni-kernel-stubs.jar to your build path. Most of the dependencies
 should be resolved as Plug-in Dependencies. You'll also need to add the
 'build\tests' as a class folder so that the tests can compile. I usually do
 this by creating a new linked folder.
 
 -Nathan
 
 -Original Message-
 From: Bidea Cristian [mailto:[EMAIL PROTECTED]
 Sent: Friday, June 09, 2006 4:11 PM
 To: harmony-dev@incubator.apache.org
 Subject: Problems with builth path!

 Hello to everyone

 I've tried setting up my Eclipse environment for working on Harmony (at
 list trying) and I faced a problem. I've compiled the classpath and I've
 installed the VM from IBM. After that I've started Eclipse, after
 putting the required options in eclipse.ini, setting everything and
 checking it twice.

 When I checkout a module from repository I keep getting the same error
 at build:

 Severity and Description
 The project was not built since its build path is incomplete. Cannot
 find the class file for java.lang.Object. Fix the build path then try
 building this project

 I'm not sure what should I include in the path or what am I doing wrong.
 In Eclipse in the Java Build Path menu I have only the option to include
 jars. I even tried to put everything from the Harmony/build directory
 into a jar and after that including it into java build path but it
 generated even more errors.

 I'm using Eclipse 3.2RC7.

 Thanks,
 Cristian


 -
 Terms of use : http://incubator.apache.org/harmony/mailing.html
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
 
 
 -
 Terms of use : http://incubator.apache.org/harmony/mailing.html
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
 
 

-- 

Tim Ellison ([EMAIL PROTECTED])
IBM Java technology centre, UK.


-
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]