Re: [vote] HARMONY-1363 - DRLVM fixes and additions

2006-09-07 Thread Alexey Petrenko

I've talked about a small patch for this exact issue of course.

SY, Alexey

2006/9/7, Alexey Varlamov [EMAIL PROTECTED]:

Alexey,

This conflict is trivial enough and was caused by recent Geir's
changes, see the parallel thread about launcher.
I don't think we need to redone the whole patch for this issue -
either commiter will resolve it by hand or minor patch for this
particular change can be made anew.

--
Regards,
Alexey


2006/9/7, Alexey Petrenko [EMAIL PROTECTED]:
 Guys,

 I've tried a patch.
 Patch failed in ./vm/em/src/DrlEMImpl.cpp. On Linux and Windows.
 Here is a rej file:
 === cut ===
 ***
 *** 151,165 
  //_
  // Reading and parsing configuration


 - std::string buildDefaultLibPath(const std::string dll_name) {
 - std::string library_path = 
vm_get_property_value(vm.boot.library.path);
  #ifdef PLATFORM_NT
 - std::string fullPath = library_path + \\+ dll_name+.dll;
 - #else
 - std::string fullPath = library_path + /lib + dll_name + .so;
  #endif
 - return fullPath;
  }

  static std::string getParam(const std::string config, const
 std::string name) {
 --- 167,198 
  //_
  // Reading and parsing configuration

 + static bool endsWith(const std::string str, const std::string suffix) {
 + if (str.length()  suffix.length()) {
 + return false;
 + }
 + return std::equal(suffix.rbegin(), suffix.rend(), str.rbegin());
 + }

 + std::string prepareLibPath(const std::string origPath) {
  #ifdef PLATFORM_NT
 + std::string separator(\\), libPrefix(), libSuffix(.dll);
 + #else
 + std::string separator(/), libPrefix(lib), libSuffix(.so);
  #endif
 +
 + std::string path = origPath;
 + if (path.find('/') == path.npos  path.find('\\') == path.npos ) {
 + std::string dir = vm_get_property_value(vm.boot.library.path);
 + if (libPrefix.length()  0  !startsWith(path, libPrefix)) {
 + path = libPrefix + path;
 + }
 + path = dir + separator + path;
 + }
 + if (!endsWith(path, libSuffix)) {
 + path+=libSuffix;
 + }
 + return path;
  }

  static std::string getParam(const std::string config, const
 std::string name) {
 === cut ===

 As a result build fails.

 Salikh, it seems that you need to provide additional patch.

 SY, Alexey

 2006/9/7, Alexey Varlamov [EMAIL PROTECTED]:
  +1
 
  2006/9/7, Geir Magnusson Jr. [EMAIL PROTECTED]:
   +1
  
   Geir Magnusson Jr. wrote:
All is in order and in SVN for Harmony-1225 wrt BCC and ACQ.  I think
that this an important patch so we can get better 1.5 support et al.
   
Please vote to accept or reject this set of patches and fixes into the
Apache Harmony class library :
   
[ ] + 1 Accept
[ ] -1 Reject  (provide reason below)
   
Lets let this run a minimum of 3 days unless a) someone states they need
more time or b) we get all committer votes before then.
   
geir
   
   
   
   
-
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]
 
 


 --
 Alexey A. Petrenko
 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]





--
Alexey A. Petrenko
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] DRLVM, jre/bin/default and launcher

2006-09-07 Thread Evgueni Brevnov

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

Code is checked in for linux - and updating and testing now on WinXP.

The issue was that all of our library loading was done with full paths,
which didn't let APR via dlopen() use LD_LIBRARY_PATH.

So I made some small mods - please review.  One problem I found was that
 I had to make assumptions such as passing NULL instead of a path being
safe, because there was no comments in the code about expected inputs
(or resulting outputs).

I also neutered vm.boot.library.path to be  unless set on command
line, rather than be the directory of the launching executable, as I
figured that a) I needed to have it be  and b) that would lead to some
interesting failures when people tried to embed DRLVM in other apps or such.


It seems we don't need vm.boot.library.path anymore. I propose to
remove it from the sources completely. What do you think?



I'll see what I can take out of HARMONY-1390 for some of the issues
related to teardown.  Or, Evgueni, you can tell me to close it and we
can do another one.  There seemed to be a few extra things included in
that patch, btw :)

Ok, let me give you some details regarding HARMONY-1390 patches. You
definitely don't need classlib.launcher.patch anymore.
drlvm.launcghr.patch contains the following logic parts:
1) Get rid of old DRLVM launcher and related stuff like parsing
command line (new launcher do it for us) and executing main method.
BTW I just noticed that I forgot to delete useless code in
j.l.VMStarter class.
2) Fix stack trace creation for new scheme. Now when main thread
starts application main method from native code through JNI we have
different few first frames on the stack. See changes for
vm\vmcore\src\kernel_classes\native\org_apache_harmony_vm_VMStack.cpp
3) Fix -help and -X options processing when VM is created by calling
JNI_CreateJavaVM.
4) Changes related to new location of VM's dll's.

We don't need part number 4) anymore since you did it in more elegant
way. I believe it still makes sense to apply parts 1) 2) 3).



Tomorrow, I'll finish the changes to the build so we get a
launcher-based JRE and HDK.

I know this isn't perfect, but it's a step forward - thanks all for all
the help.

geir

(and for the record, working in C, C++ and Java all at the same time is
a hoot...)


Geir Magnusson Jr. wrote:
 Ok, I think I have this working now.

 DRLVM can be put anywhere and it works w/ the launcher w/o any unnatural
 acts with command line parameters and/or scripts.

 There are a few things to chat about - I'll get my thoughts together
 later tonight and post, and check in the code.  I just wanted to let
 people know if they were thinking about working on it.

 geir



 Geir Magnusson Jr. wrote:


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


 Evgueni Brevnov wrote:
  HI All,
 
  Good news! I have a patch to run DRLVM with the classlib's launcher
  (I've checked Hello and Eclipse applications on Windows only).
  Actually, there are two patches. The first one is for classlib which
  changes vm default directory to drlvm.

 I don't think we should do that - we'll keep it the same as it is now -
 default.

 Why should we change it?

 I don't care about it too much. Let it be default. In that case
 -vmdir option should be specified each time. Is it convenient for
 users?

 ?  right now, default is the default.  So the user doesn't have to
 specify anything...

 With the DRLVM stuff in jre/bin/default the user just types

  java


   BTW it seems there will be some problems with hythr.dll library
 if we wish to use drlvm and j9 in simultaneously. But that's another
 story...

 Yes, we need to resolve this.



  The second one is for build
  system and VM itself. Unfortunatelly, it is impossible to eliminate
  all problems in a short period of time. There is still a bunch of
 work
  in initialization and jni modules. So this patch is just a one more
  step to our goal.

 Great.  As I said in other mails, the build stuff isn't the part to
 worry about but rather the VM itself.

 So does this patch do it completely, or should we wait?

 Yes, the patch contains changes for both parts vm and build.
 It was easy for me to change the build than do manual manipulations
 each time to
 check whether it runs OK or not.

 So does this mean if I apply the patch, then DRLVM works w/ the
 launcher from the jre/bin/default directory w/o any problems?

 geir



 
  The vm patch is quite heavy so I attach it and classlib patch.
  Hope it will work not only for me :-)
 
 
  On 9/5/06, Geir Magnusson Jr. [EMAIL PROTECTED] wrote:
 
 
  Salikh Zakirov wrote:
   Andrey Chernyshev wrote:
   1.  Fix the DRLVM layout - rename vmcore to harmonyvm and move
   ..dll/.so into the default subdirectory such that one doesn't
  have to
   type -vm and -vmdir options;
  
   While would you want to rename DRLVM to Harmony VM?
   It feels to me like claiming DRLVM to be the only Harmony VM.
   On the 

Re: [classlib][sql] Another confusing behavior: java.sql.Timestamp

2006-09-07 Thread Richard Liang

Hello,

I have raised Harmony-1400[1] for this issue. Thanks a lot.

[1]http://issues.apache.org/jira/browse/HARMONY-1400

Best regards,
Richard.

On 8/30/06, Richard Liang [EMAIL PROTECTED] wrote:



Geir Magnusson Jr. wrote:
 1) What should it do?

When calculating nanos value, underflow may occur if the given time is
near Long.MIN_VALUE. In fact, I'm also not sure what it should do. Just
notice that RI handles the underflow situation in a special/confusing
way, while Harmony does not have any handling.


 2) if it's just a single value, why not fix it and never have to deal
 w/ it again?  Is it an easy fix?
Yes, the fix is quite easy. Do you mean we shall follow RI?

Thanks a lot.

Richard.

 geir



 Anton Luht wrote:
 Hello,

 I don't think we should bother about single value which is very
 unlikely to happpen in real data.

 On 8/29/06, Richard Liang [EMAIL PROTECTED] wrote:
 Hello All,

 RI's  java.sql.Timestamp(long time)  behaves confusing when the
 parameter time is in  Long.MIN_VALUE. Shall we follow RI?

 Output of the following sample is:
 time: -9223372036854775808
 time: 9223372036854775192
 timestamp: 292278994-08-17 15:12:55.192
 timestamp: 292278994-08-17 15:12:55.192


 =
 import java.sql.Timestamp;

 public class TimeStampTest {
public static void main(String[] args) {
long time = Long.MIN_VALUE;
long time2 = 9223372036854775192l;
Timestamp timestamp = new Timestamp(time);
Timestamp timestamp2 = new Timestamp(time2);

System.out.println(time:  + time);
System.out.println(time:  + time2);

System.out.println(timestamp:  + timestamp);
System.out.println(timestamp:  + timestamp2);
}
 }


 --
 Richard Liang
 China Software Development Lab, IBM



 -
 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]



--
Richard Liang
China Software Development Lab, IBM



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





--
Richard Liang
China Software Development Lab, IBM

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



Re: [build] Use Sun 5.0_8 or Eclipse Compiler for automated builds

2006-09-07 Thread Oliver Deakin



Nathan Beyer wrote:
  

-Original Message-
From: Richard Liang [mailto:[EMAIL PROTECTED]

 Sun compiler (5.0_8) also has some unexpected behavior. See[1]

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




I've found that a second or third ant build takes care of it. What I've
noticed though is that the failures are all linking to elements from classes
in luni-kernel. I'm looking at it, but I think there are some issues with
what's put on the bootclasspath. I've already found one discrepancy between
some of our 'luni-kernel' stubs and the spec. The Method.invoke() uses a
vararg and our stub didn't have this.
  


I spotted this as well, was preparing a patch for it - unless you want 
to just go ahead and

fix it?

Regards,
Oliver


-Nathan


  

There are a number of places that use ReferenceQueues and Reference, but
can't be generified because of a bug in the Sun compilers prior to
  

5.0_8. At


the end of this email is an example of code that causes a compiler error
  

in


previous releases. This issue does not affect the Eclipse compiler. I've
  

run


a full rebuild as of revision 440796 and everything compiles fine with
  

both


the Eclipse compiler and Sun 5.0_8 compiler.



-Nathan





private static final ReferenceQueueObject cacheQueue = new
ReferenceQueueObject();



private static final class CacheEntry extends WeakReferenceObject
  

{


String key;



CacheEntry(Object jar, String key, ReferenceQueueObject queue)
  

{


super(jar, queue);

this.key = key;

}

}



// ... code using the queue



CacheEntry entry;

// This cast fails on Sun 5.0_7 and prior compilers

while ((entry = (CacheEntry)cacheQueue.poll()) != null) {

jarCache.remove(entry.key);

}



// . more code







  

--
Richard Liang
China Software Development Lab, IBM

-
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]


  


--
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: [build] Use Sun 5.0_8 or Eclipse Compiler for automated builds

2006-09-07 Thread Alexey Varlamov

2006/9/7, Oliver Deakin [EMAIL PROTECTED]:



Nathan Beyer wrote:

 -Original Message-
 From: Richard Liang [mailto:[EMAIL PROTECTED]

  Sun compiler (5.0_8) also has some unexpected behavior. See[1]

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



 I've found that a second or third ant build takes care of it. What I've
 noticed though is that the failures are all linking to elements from classes
 in luni-kernel. I'm looking at it, but I think there are some issues with
 what's put on the bootclasspath. I've already found one discrepancy between
 some of our 'luni-kernel' stubs and the spec. The Method.invoke() uses a
 vararg and our stub didn't have this.


I spotted this as well, was preparing a patch for it - unless you want
to just go ahead and
fix it?


Could you please restore j.l.Thread.setInterruptAction()  co, as well?

--
Alexey



Regards,
Oliver

 -Nathan



 There are a number of places that use ReferenceQueues and Reference, but
 can't be generified because of a bug in the Sun compilers prior to

 5.0_8. At

 the end of this email is an example of code that causes a compiler error

 in

 previous releases. This issue does not affect the Eclipse compiler. I've

 run

 a full rebuild as of revision 440796 and everything compiles fine with

 both

 the Eclipse compiler and Sun 5.0_8 compiler.



 -Nathan





 private static final ReferenceQueueObject cacheQueue = new
 ReferenceQueueObject();



 private static final class CacheEntry extends WeakReferenceObject

 {

 String key;



 CacheEntry(Object jar, String key, ReferenceQueueObject queue)

 {

 super(jar, queue);

 this.key = key;

 }

 }



 // ... code using the queue



 CacheEntry entry;

 // This cast fails on Sun 5.0_7 and prior compilers

 while ((entry = (CacheEntry)cacheQueue.poll()) != null) {

 jarCache.remove(entry.key);

 }



 // . more code








 --
 Richard Liang
 China Software Development Lab, IBM

 -
 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]




--
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]




-
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][concurrent] Next IBM VME request

2006-09-07 Thread Oliver Deakin

Tim Ellison wrote:

Nathan Beyer wrote:
  

For those kind souls working that help release the IBM VME, I'd like to ask
for an implementation of the sun.misc.Unsafe interface for the next
release to facilitate the 'concurrent' modules continued development. As
such, the only portion of the Unsafe class that would need to be implemented
is what's defined in the 'luni-kernel' module. Additionally, the
'concurrent' module has one other requirement and that's the implementation
of a native method in AtomicLong [1]. My initial goal it to be able to
enable all of the tests in the 'concurrent' module's build (all tests are
currently disabled).



Hey Nathan -- I'm just about to set off for a few days, but briefly, I'd
expect that we'd agree on an addition to the luni kernel for some
o.a.h.FooBar type that has the required functionality, and create
sun.misc in the suncompat component.
  


Agreed, this sounds like the right way to do it. Add a class to the 
suncompat module that redirects

method calls to some o.a.h class in luni kernel.

Regards,
Oliver


Regards,
Tim

  

Let me and the list know how we can help if there's anything needed. Thanks.

 


-Nathan

 

 


[1] private static native boolean VMSupportsCS8();





  


--
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: [general] Marking JIRA issues before creation of patches.

2006-09-07 Thread Paulex Yang

Geir Magnusson Jr. wrote:

Good.

Also, don't just do things in JIRA.  Add the comment in JIRA, but also 
send something to the dev list.  That way, people who are interested 
will more easily notice and maybe offer to help, or such...
+1, and for classlib, we have had some wiki pages[1]-[3] to list the 
ToDos and to record who is doing or has interest on what.


[1] http://wiki.apache.org/harmony/component_development_status
[2] http://wiki.apache.org/harmony/Excluded_tests
[3] http://wiki.apache.org/harmony/ClassLibrary



geir


Oleg Khaschansky wrote:

Hi all,

There were situations when several people started work on the same
issue simultaneously. This happens because it is impossible to assign
an issue to a non-committer. I suggest the following process to
prevent these collisions:

1. If non-committer starts investigation and is pretty sure that he
will proceed with the patch then he adds a comment like starting
investigation to the JIRA issue. Maybe we should have a special
keyword for this to make a search easier.
2. If for some reason he is unable to provide the patch, he adds a
comment about this also.

What do you think about this?

--
 Oleg

-
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]





--
Paulex Yang
China Software Development Lab
IBM



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



RE: [general] Marking JIRA issues before creation of patches.

2006-09-07 Thread Ivanov, Alexey A
-Original Message-
From: Paulex Yang [mailto:[EMAIL PROTECTED]
Sent: Thursday, September 07, 2006 12:38 PM
To: harmony-dev@incubator.apache.org
Subject: Re: [general] Marking JIRA issues before creation of patches.

Geir Magnusson Jr. wrote:
 Good.

 Also, don't just do things in JIRA.  Add the comment in JIRA, but
also
 send something to the dev list.  That way, people who are interested
 will more easily notice and maybe offer to help, or such...
+1, and for classlib, we have had some wiki pages[1]-[3] to list the
ToDos and to record who is doing or has interest on what.

+1


Regards,
Alexey.


[1] http://wiki.apache.org/harmony/component_development_status
[2] http://wiki.apache.org/harmony/Excluded_tests
[3] http://wiki.apache.org/harmony/ClassLibrary


 geir


 Oleg Khaschansky wrote:
 Hi all,

 There were situations when several people started work on the same
 issue simultaneously. This happens because it is impossible to
assign
 an issue to a non-committer. I suggest the following process to
 prevent these collisions:

 1. If non-committer starts investigation and is pretty sure that he
 will proceed with the patch then he adds a comment like starting
 investigation to the JIRA issue. Maybe we should have a special
 keyword for this to make a search easier.
 2. If for some reason he is unable to provide the patch, he adds a
 comment about this also.

 What do you think about this?

 --
  Oleg


-
 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]




--
Paulex Yang
China Software Development Lab
IBM



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

--
Alexey A. Ivanov
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: [build] Use Sun 5.0_8 or Eclipse Compiler for automated builds

2006-09-07 Thread Oliver Deakin

Alexey Varlamov wrote:

2006/9/7, Oliver Deakin [EMAIL PROTECTED]:



Nathan Beyer wrote:

 -Original Message-
 From: Richard Liang [mailto:[EMAIL PROTECTED]

  Sun compiler (5.0_8) also has some unexpected behavior. See[1]

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



 I've found that a second or third ant build takes care of it. 
What I've
 noticed though is that the failures are all linking to elements 
from classes
 in luni-kernel. I'm looking at it, but I think there are some 
issues with
 what's put on the bootclasspath. I've already found one discrepancy 
between
 some of our 'luni-kernel' stubs and the spec. The Method.invoke() 
uses a

 vararg and our stub didn't have this.


I spotted this as well, was preparing a patch for it - unless you want
to just go ahead and
fix it?


Could you please restore j.l.Thread.setInterruptAction()  co, as well?


Isn't setInterruptAction() a private method? Why do we need this in the 
luni-kernel

stubs?

As far as I can see, that is the only method that has been removed 
recently from the
Thread class stub - were there any others that I have missed that are 
required?


Regards,
Oliver



--
Alexey



Regards,
Oliver

 -Nathan



 There are a number of places that use ReferenceQueues and 
Reference, but

 can't be generified because of a bug in the Sun compilers prior to

 5.0_8. At

 the end of this email is an example of code that causes a 
compiler error


 in

 previous releases. This issue does not affect the Eclipse 
compiler. I've


 run

 a full rebuild as of revision 440796 and everything compiles fine 
with


 both

 the Eclipse compiler and Sun 5.0_8 compiler.



 -Nathan





 private static final ReferenceQueueObject cacheQueue = new
 ReferenceQueueObject();



 private static final class CacheEntry extends 
WeakReferenceObject


 {

 String key;



 CacheEntry(Object jar, String key, ReferenceQueueObject 
queue)


 {

 super(jar, queue);

 this.key = key;

 }

 }



 // ... code using the queue



 CacheEntry entry;

 // This cast fails on Sun 5.0_7 and prior compilers

 while ((entry = (CacheEntry)cacheQueue.poll()) != 
null) {


 jarCache.remove(entry.key);

 }



 // . more code








 --
 Richard Liang
 China Software Development Lab, IBM

 -
 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]




--
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]




-
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: [build] Use Sun 5.0_8 or Eclipse Compiler for automated builds

2006-09-07 Thread Alexey Varlamov

2006/9/7, Oliver Deakin [EMAIL PROTECTED]:

Alexey Varlamov wrote:
 2006/9/7, Oliver Deakin [EMAIL PROTECTED]:


 Nathan Beyer wrote:
 
  -Original Message-
  From: Richard Liang [mailto:[EMAIL PROTECTED]
 
   Sun compiler (5.0_8) also has some unexpected behavior. See[1]
 
  [1]http://mail-archives.apache.org/mod_mbox/incubator-harmony-
  dev/200608.mbox/[EMAIL PROTECTED]
 
 
 
  I've found that a second or third ant build takes care of it.
 What I've
  noticed though is that the failures are all linking to elements
 from classes
  in luni-kernel. I'm looking at it, but I think there are some
 issues with
  what's put on the bootclasspath. I've already found one discrepancy
 between
  some of our 'luni-kernel' stubs and the spec. The Method.invoke()
 uses a
  vararg and our stub didn't have this.
 

 I spotted this as well, was preparing a patch for it - unless you want
 to just go ahead and
 fix it?

 Could you please restore j.l.Thread.setInterruptAction()  co, as well?

Isn't setInterruptAction() a private method? Why do we need this in the
luni-kernel
stubs?


As long as luni-kernel stubs actually document VMI, we should keep all
related methods there (until someone can suggest better place, which I
doubt - you know, the code is best doc itslef and any separate docs
become outdated sooner or later). Real-life example: I noted
NoSuchMethodException in DRLVM trace logs, and was quite puzzled what
it is about - so had to browse dev-list history...



As far as I can see, that is the only method that has been removed
recently from the
Thread class stub - were there any others that I have missed that are
required?

Simply reapply luni-kernel part of HARMONY-635. Thank you!

--
Regards,
Alexey

-
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]A subject to profiling instrumenting

2006-09-07 Thread Mikhail Fursov

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


Ok, I will put my diffs to the JIRA later. And I have solved the issue I
asked two days ago.



Ok, I will wait the JIRA number from you.


It needs liblwdis.so supporting.




Check JIRA 1402 for it. http://issues.apache.org/jira/browse/HARMONY-1402

--
Mikhail Fursov


Re: [DRLVM][JIT] can Jitrino.JET call MMTk alloc() instead of C helper?

2006-09-07 Thread Mikhail Fursov

Weldon,
the problem is clear. I going to add the support to JET in a day.

+ Note that even for a simple single method HelloWorld application DRLVM
starts multiple threads to support finalization. Also some threads may be
created by API itself (but I'm not sure it does). So, at least, you need to
disable finalizer threads with -Dvm.finalize=false property.


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


On 9/6/06, Mikhail Fursov [EMAIL PROTECTED] wrote:

 Weldon,
 The replacement of the 'new' opcode call with another call is relatively
 easy task.

 To send a working patch I need the following information:
 1) Which Java method to call? Is it an instance method or a static?


Its an instance method.  Ideally you can use the same approach as the one
used when adding write barriers to Jitrino.JET.  Specifically
PlanLocal.javain Jira Harmony-816.  The API is:

public Address alloc(int bytes, int align, int offset, int allocator, int
site);

The only parameter I care about at this time is bytes.  This must  be
accurate.  I will ignore the rest of the parameters.  In other words, to
allocate a 52 byte object, the call site should look like:

alloc( 52, 0, 0, 0, 0);

Make sure the JIT loads the vtable ptr (and array length if required).

2) How to test the implementation? I can get and deploy all of your
changes
 or just to call some stub methods in a specialized testcase before
sending
 the result to you.



It would be best to test with a stub that is similar to what's in
Harmony-816.  It would also be great if the object allocator can chosen by
pattern matching on the method name.  A similar facility already exists
for
the write barrier -- it might be a simple cut/paste.

The above will work fine during the single thread stage of this project.
Once we decide to turn on multiple Java threads, we will need to stuff a
thread specific MMTk object in DRLVM's thread block.  Then during
execution
of JITed code, use vmmagic to load fs:14+offset_of_the_alloc_object into,
for example, EBX.  Do a mov eax, [ebx] to get the vtable pointer into
eax.  And finally, call [eax + offset_of_the_alloc_method].

Let me know if you have further questions.



?


 On 9/6/06, Weldon Washburn [EMAIL PROTECTED] wrote:
 
  A question for Jitrino.JET developers.  How hard would it be to modify
 the
  existing Jitrino.JET code  so that the new opcode calls MMTk
alloc()?
 
  Thanks
  --
  Weldon Washburn
  Intel Middleware Products Division
 
 


 --
 Mikhail Fursov




--
Weldon Washburn
Intel Middleware Products Division





--
Mikhail Fursov


Re: [jira] Created: (HARMONY-1395) Code for reading and writing binary DTDs using ASN.1 encoding

2006-09-07 Thread Mikhail Loenko

Hi Miguel

Thanks for your patches! Could you please grant ASF license to them?

Thanks,
Mikhail

2006/9/7, Miguel Montes (JIRA) [EMAIL PROTECTED]:

Code for reading and writing binary DTDs using ASN.1 encoding
-

Key: HARMONY-1395
URL: http://issues.apache.org/jira/browse/HARMONY-1395
Project: Harmony
 Issue Type: Improvement
 Components: Contributions
   Reporter: Miguel Montes
Attachments: ASN1_01.patch, ASN1_ITC-Contribution_20060905.zip

The class javax.swing.text.html.parser.DTD has a method read() for loading a 
binary DTD. The format of this binary file is not specified, so the current 
implementation uses serialization. This approach has several problems, so it 
was suggested in harmony-dev the use of ASN.1 to encode the DTD information.
Attached is a zip file with a set of classes for encoding and decoding a DTD, 
using the ASN.1 framework already in use in javax.crypto; and two bdtds, one 
for HTML 3.2 and one for HTML 4.01. Also attached is a patch for DTD.java and 
DTDUtilities.java.




The proposed format is:
BDTD ::= SEQUENCE {
   name UTF8String,
   entity SET OF HTMLEntity,
   element SET OF HTMLElement
}

HTMLEntity ::= SEQUENCE {
   name UTF8String,
   value INTEGER,
   general [0] IMPLICIT BOOLEAN DEFAULT FALSE,
   parameter [1] IMPLICIT BOOLEAN DEFAULT FALSE,
   data UTF8String
}

HTMLElement ::= SEQUENCE {
   index INTEGER,
   name UTF8String,
   type INTEGER,
   oStart BOOLEAN,
   oEnd BOOLEAN,
   exclusions [0] IMPLICIT SET OF INTEGER OPTIONAL,
   inclusions [1] IMPLICIT SET OF INTEGER OPTIONAL,
 attributes SET OF HTMLElementAttributes OPTIONAL,
   contentModel HTMLContentModel
}

HTMLContentModel ::= SEQUENCE OF SEQUENCE {
   type INTEGER,
   index INTEGER
}

HTMLElementAttributes ::= SEQUENCE {
   name UTF8String,
   type INTEGER,
   modifier INTEGER,
   defaultValue UTF8String OPTIONAL,
   possibleValues SET OF UTF8String OPTIONAL

}


--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira





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



Re: [vote] HARMONY-1363 - DRLVM fixes and additions

2006-09-07 Thread Mikhail Loenko

+1

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

All is in order and in SVN for Harmony-1225 wrt BCC and ACQ.  I think
that this an important patch so we can get better 1.5 support et al.

Please vote to accept or reject this set of patches and fixes into the
Apache Harmony class library :

[ ] + 1 Accept
[ ] -1 Reject  (provide reason below)

Lets let this run a minimum of 3 days unless a) someone states they need
more time or b) we get all committer votes before then.

geir




-
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: [jira] Created: (HARMONY-1395) Code for reading and writing binary DTDs using ASN.1 encoding

2006-09-07 Thread Miguel Montes

Hi Mikhail:
The attach button in the JIRA form doesn't have the checkbox to grant  the
license. Now I notice the button is there when you try to attach files to an
already created issue, so i understand I have to create the issue first, and
attach the files later.
What should i do now to grant the license? Re-attach the files granting the
license? Sorry if this was explained before, but i didn't read it

Miguel

On 9/7/06, Mikhail Loenko [EMAIL PROTECTED] wrote:


Hi Miguel

Thanks for your patches! Could you please grant ASF license to them?

Thanks,
Mikhail

2006/9/7, Miguel Montes (JIRA) [EMAIL PROTECTED]:
 Code for reading and writing binary DTDs using ASN.1 encoding
 -

 Key: HARMONY-1395
 URL: http://issues.apache.org/jira/browse/HARMONY-1395
 Project: Harmony
  Issue Type: Improvement
  Components: Contributions
Reporter: Miguel Montes
 Attachments: ASN1_01.patch, ASN1_ITC-Contribution_20060905.zip

 The class javax.swing.text.html.parser.DTD has a method read() for
loading a binary DTD. The format of this binary file is not specified, so
the current implementation uses serialization. This approach has several
problems, so it was suggested in harmony-dev the use of ASN.1 to encode
the DTD information.
 Attached is a zip file with a set of classes for encoding and decoding a
DTD, using the ASN.1 framework already in use in javax.crypto; and two
bdtds, one for HTML 3.2 and one for HTML 4.01. Also attached is a patch
for DTD.java and DTDUtilities.java.




 The proposed format is:
 BDTD ::= SEQUENCE {
name UTF8String,
entity SET OF HTMLEntity,
element SET OF HTMLElement
 }

 HTMLEntity ::= SEQUENCE {
name UTF8String,
value INTEGER,
general [0] IMPLICIT BOOLEAN DEFAULT FALSE,
parameter [1] IMPLICIT BOOLEAN DEFAULT FALSE,
data UTF8String
 }

 HTMLElement ::= SEQUENCE {
index INTEGER,
name UTF8String,
type INTEGER,
oStart BOOLEAN,
oEnd BOOLEAN,
exclusions [0] IMPLICIT SET OF INTEGER OPTIONAL,
inclusions [1] IMPLICIT SET OF INTEGER OPTIONAL,
  attributes SET OF HTMLElementAttributes OPTIONAL,
contentModel HTMLContentModel
 }

 HTMLContentModel ::= SEQUENCE OF SEQUENCE {
type INTEGER,
index INTEGER
 }

 HTMLElementAttributes ::= SEQUENCE {
name UTF8String,
type INTEGER,
modifier INTEGER,
defaultValue UTF8String OPTIONAL,
possibleValues SET OF UTF8String OPTIONAL

 }


 --
 This message is automatically generated by JIRA.
 -
 If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
 -
 For more information on JIRA, see:
http://www.atlassian.com/software/jira




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





--
Miguel Montes


active discussion in Suns OpenSource-Java forum

2006-09-07 Thread theUser BL

Hi Harmonys!

I want only to mention, that at
http://forums.java.net/jive/thread.jspa?threadID=18036start=0tstart=0
is an active discussion about what GNU Classpath developer think, how Suns 
Java license must look like and what people think, if it is better to have 
only one implementation (if Suns Java is OpenSource) or more.


Greatings
theuserbl



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



RE: [jira] Created: (HARMONY-1395) Code for reading and writing binary DTDs using ASN.1 encoding

2006-09-07 Thread Ivanov, Alexey A
-Original Message-
From: Miguel Montes [mailto:[EMAIL PROTECTED]
Sent: Thursday, September 07, 2006 4:26 PM
To: harmony-dev@incubator.apache.org
Subject: Re: [jira] Created: (HARMONY-1395) Code for reading and
writing
binary DTDs using ASN.1 encoding

Hi Mikhail:
The attach button in the JIRA form doesn't have the checkbox to grant
the
license. Now I notice the button is there when you try to attach files
to
an
already created issue, so i understand I have to create the issue
first,
and
attach the files later.
What should i do now to grant the license? Re-attach the files granting
the
license? Sorry if this was explained before, but i didn't read IT

Miguel,

Yes, just re-attach the files granting the license.

It was discussed several weeks ago [1]. There were also several other
threads about this issue.

Regards,
Alexey.

[1]
http://thread.gmane.org/gmane.comp.java.harmony.devel/11975/focus=11991


Miguel

On 9/7/06, Mikhail Loenko [EMAIL PROTECTED] wrote:

 Hi Miguel

 Thanks for your patches! Could you please grant ASF license to them?

 Thanks,
 Mikhail

 2006/9/7, Miguel Montes (JIRA) [EMAIL PROTECTED]:
  Code for reading and writing binary DTDs using ASN.1 encoding
  -
 
  Key: HARMONY-1395
  URL:
http://issues.apache.org/jira/browse/HARMONY-1395
  Project: Harmony
   Issue Type: Improvement
   Components: Contributions
 Reporter: Miguel Montes
  Attachments: ASN1_01.patch,
ASN1_ITC-Contribution_20060905.zip
 
  The class javax.swing.text.html.parser.DTD has a method read() for
 loading a binary DTD. The format of this binary file is not
specified, so
 the current implementation uses serialization. This approach has
several
 problems, so it was suggested in harmony-dev the use of ASN.1 to
encode
 the DTD information.
  Attached is a zip file with a set of classes for encoding and
decoding
a
 DTD, using the ASN.1 framework already in use in javax.crypto; and
two
 bdtds, one for HTML 3.2 and one for HTML 4.01. Also attached is a
patch
 for DTD.java and DTDUtilities.java.
 
 
 
 
  The proposed format is:
  BDTD ::= SEQUENCE {
 name UTF8String,
 entity SET OF HTMLEntity,
 element SET OF HTMLElement
  }
 
  HTMLEntity ::= SEQUENCE {
 name UTF8String,
 value INTEGER,
 general [0] IMPLICIT BOOLEAN DEFAULT FALSE,
 parameter [1] IMPLICIT BOOLEAN DEFAULT FALSE,
 data UTF8String
  }
 
  HTMLElement ::= SEQUENCE {
 index INTEGER,
 name UTF8String,
 type INTEGER,
 oStart BOOLEAN,
 oEnd BOOLEAN,
 exclusions [0] IMPLICIT SET OF INTEGER OPTIONAL,
 inclusions [1] IMPLICIT SET OF INTEGER OPTIONAL,
   attributes SET OF HTMLElementAttributes OPTIONAL,
 contentModel HTMLContentModel
  }
 
  HTMLContentModel ::= SEQUENCE OF SEQUENCE {
 type INTEGER,
 index INTEGER
  }
 
  HTMLElementAttributes ::= SEQUENCE {
 name UTF8String,
 type INTEGER,
 modifier INTEGER,
 defaultValue UTF8String OPTIONAL,
 possibleValues SET OF UTF8String OPTIONAL
 
  }
 
 
  --
  This message is automatically generated by JIRA.
  -
  If you think it was sent incorrectly contact one of the
administrators:
 http://issues.apache.org/jira/secure/Administrators.jspa
  -
  For more information on JIRA, see:
 http://www.atlassian.com/software/jira
 
 
 

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




--
Miguel Montes

--
Alexey A. Ivanov
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: [drlvm] Helper inlining in JIT

2006-09-07 Thread Mikhail Fursov

Hi Xiao-Feng,
I think that MMTk unboxed package + native call support + tls access magics
are enought for the all helpers I know.
Do you know any examples to extend this list?

On 8/29/06, Xiao-Feng Li [EMAIL PROTECTED] wrote:


Fursov, what are the intrinsics supports you want to implement? The
code below you gave has only a few examples. I think it would be a
good idea to well define the instrinsics before code them.

Thanks,
xiaofeng



--
Mikhail Fursov


Re: [drlvm] Helper inlining in JIT

2006-09-07 Thread Mikhail Fursov

On 9/7/06, Rana Dasgupta [EMAIL PROTECTED] wrote:


Hi Mikhail,
Sorry I left this thread for a while. Are you implementing VMMagic
support in .OPT currently, and prototyping with bump allocation?  I am
just
trying to understand in what order we are doing this.



I'm implementing VMMagics and going to use it to prototype bump pointer
allocation. I hope I will finish VMMagic OPT package in a several weeks.

  Would it be possible to list the fastpath helpers so that the java

interfaces to access them could be defined? All of them don't need magic
classes support and one of us could just write them. I don't know the list
of intrinsics implemented already in .JET. Can we just use them as is, and
what else ( other than TLS access, call support ) would need to be added?



The list of the helpers with fast path to be written in Java:
1) object allocation
2) array allocation
3) monitor enters
4) monitor exits
5) I hope we can move some profiling helpers to Java and to remove the
knowledge about their implementation from JIT.
6) write and read barriers
7) back branch polling helper
8) ? Some TI helpers ?

VM gurus, have you anything to add to this list?

+ I think that TLS and call support are enough.


 BTW, there may be a small omission in the example below..if I am reading

this right...



IMO newCurrent = oldCurrent + size is OK. May be the source of the problem
is the variable name, i.e. 'ceiling' is always = 'current' in my example.

Thanks,

Rana

On 8/28/06, Mikhail Fursov [EMAIL PROTECTED] wrote:

 Folks,
 Here is the example of fast allocation helper written in Java with the
 help
 of VMMagic
 If nobody objects I'm starting to implement VMMagic support in
 Jitrino.OPTthis week.



 private static final int GC_TLS_OFFSET = 10;
 private static final int GC_CURRENT_OFFSET= GC_TLS_OFFSET + 0;
 private static final int GC_CEILING_OFFSET= GC_TLS_OFFSET + 4;
 private static final int OBJ_VTABLE_OFFSET = 0;

 //annotate with calling convention and real VM helper id/name
information
 private static Address slowAlloc(int vtable, int size) {throw new
 Error(must never be called!);}

 private static Address fastAlloc(int vtable, int size) {
Address tlsBase = TLS.getAddress();  //load thread local client area
 address

Address currentFieldAddress = tlsBase.plus(GC_CURRENT_OFFSET);
Address ceilingFieldAddress = tlsBase.plus(GC_CEILING_OFFSET);

Address newObjectAddress; //the result of the method

// check if there is enough size to do allocation in thread local
 buffer
Address current = currentFieldAddress.loadAddress();
Address ceiling = ceilingFieldAddress.loadAddress();
Address newCurrent = current.plus(size);
if (newCurrent.LT(ceiling)) {


newCurrent = newCurrent.plus(-size);

   currentFieldAddress.store(newCurrent.toWord());
newObjectAddress = newCurrent;
newObjectAddress.store(vtable, Offset.fromInt
(OBJ_VTABLE_OFFSET));

} else {
newObjectAddress = slowAlloc(vtable, size);
}
return newObjectAddress;
 }

 --
 Mikhail Fursov







--
Mikhail Fursov


Re: [jira] Created: (HARMONY-1395) Code for reading and writing binary DTDs using ASN.1 encoding

2006-09-07 Thread Miguel Montes

Done

On 9/7/06, Ivanov, Alexey A [EMAIL PROTECTED] wrote:


-Original Message-
From: Miguel Montes [mailto:[EMAIL PROTECTED]
Sent: Thursday, September 07, 2006 4:26 PM
To: harmony-dev@incubator.apache.org
Subject: Re: [jira] Created: (HARMONY-1395) Code for reading and
writing
binary DTDs using ASN.1 encoding

Hi Mikhail:
The attach button in the JIRA form doesn't have the checkbox to grant
the
license. Now I notice the button is there when you try to attach files
to
an
already created issue, so i understand I have to create the issue
first,
and
attach the files later.
What should i do now to grant the license? Re-attach the files granting
the
license? Sorry if this was explained before, but i didn't read IT

Miguel,

Yes, just re-attach the files granting the license.

It was discussed several weeks ago [1]. There were also several other
threads about this issue.

Regards,
Alexey.

[1]
http://thread.gmane.org/gmane.comp.java.harmony.devel/11975/focus=11991


Miguel

On 9/7/06, Mikhail Loenko [EMAIL PROTECTED] wrote:

 Hi Miguel

 Thanks for your patches! Could you please grant ASF license to them?

 Thanks,
 Mikhail

 2006/9/7, Miguel Montes (JIRA) [EMAIL PROTECTED]:
  Code for reading and writing binary DTDs using ASN.1 encoding
  -
 
  Key: HARMONY-1395
  URL:
http://issues.apache.org/jira/browse/HARMONY-1395
  Project: Harmony
   Issue Type: Improvement
   Components: Contributions
 Reporter: Miguel Montes
  Attachments: ASN1_01.patch,
ASN1_ITC-Contribution_20060905.zip
 
  The class javax.swing.text.html.parser.DTD has a method read() for
 loading a binary DTD. The format of this binary file is not
specified, so
 the current implementation uses serialization. This approach has
several
 problems, so it was suggested in harmony-dev the use of ASN.1 to
encode
 the DTD information.
  Attached is a zip file with a set of classes for encoding and
decoding
a
 DTD, using the ASN.1 framework already in use in javax.crypto; and
two
 bdtds, one for HTML 3.2 and one for HTML 4.01. Also attached is a
patch
 for DTD.java and DTDUtilities.java.
 
 
 
 
  The proposed format is:
  BDTD ::= SEQUENCE {
 name UTF8String,
 entity SET OF HTMLEntity,
 element SET OF HTMLElement
  }
 
  HTMLEntity ::= SEQUENCE {
 name UTF8String,
 value INTEGER,
 general [0] IMPLICIT BOOLEAN DEFAULT FALSE,
 parameter [1] IMPLICIT BOOLEAN DEFAULT FALSE,
 data UTF8String
  }
 
  HTMLElement ::= SEQUENCE {
 index INTEGER,
 name UTF8String,
 type INTEGER,
 oStart BOOLEAN,
 oEnd BOOLEAN,
 exclusions [0] IMPLICIT SET OF INTEGER OPTIONAL,
 inclusions [1] IMPLICIT SET OF INTEGER OPTIONAL,
   attributes SET OF HTMLElementAttributes OPTIONAL,
 contentModel HTMLContentModel
  }
 
  HTMLContentModel ::= SEQUENCE OF SEQUENCE {
 type INTEGER,
 index INTEGER
  }
 
  HTMLElementAttributes ::= SEQUENCE {
 name UTF8String,
 type INTEGER,
 modifier INTEGER,
 defaultValue UTF8String OPTIONAL,
 possibleValues SET OF UTF8String OPTIONAL
 
  }
 
 
  --
  This message is automatically generated by JIRA.
  -
  If you think it was sent incorrectly contact one of the
administrators:
 http://issues.apache.org/jira/secure/Administrators.jspa
  -
  For more information on JIRA, see:
 http://www.atlassian.com/software/jira
 
 
 

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




--
Miguel Montes

--
Alexey A. Ivanov
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]





--
Miguel Montes


Re: [vote] HARMONY-1363 - DRLVM fixes and additions

2006-09-07 Thread Geir Magnusson Jr.

thats something I just changed yesterday...

Alexey Petrenko wrote:

Guys,

I've tried a patch.
Patch failed in ./vm/em/src/DrlEMImpl.cpp. On Linux and Windows.
Here is a rej file:
=== cut ===
***
*** 151,165 
 //_
 // Reading and parsing configuration


- std::string buildDefaultLibPath(const std::string dll_name) {
- std::string library_path = 
vm_get_property_value(vm.boot.library.path);

 #ifdef PLATFORM_NT
- std::string fullPath = library_path + \\+ dll_name+.dll;
- #else
- std::string fullPath = library_path + /lib + dll_name + .so;
 #endif
- return fullPath;
 }

 static std::string getParam(const std::string config, const
std::string name) {
--- 167,198 
 //_
 // Reading and parsing configuration

+ static bool endsWith(const std::string str, const std::string suffix) {
+ if (str.length()  suffix.length()) {
+ return false;
+ }
+ return std::equal(suffix.rbegin(), suffix.rend(), str.rbegin());
+ }

+ std::string prepareLibPath(const std::string origPath) {
 #ifdef PLATFORM_NT
+ std::string separator(\\), libPrefix(), libSuffix(.dll);
+ #else
+ std::string separator(/), libPrefix(lib), libSuffix(.so);
 #endif
+
+ std::string path = origPath;
+ if (path.find('/') == path.npos  path.find('\\') == path.npos ) {
+ std::string dir = vm_get_property_value(vm.boot.library.path);
+ if (libPrefix.length()  0  !startsWith(path, libPrefix)) {
+ path = libPrefix + path;
+ }
+ path = dir + separator + path;
+ }
+ if (!endsWith(path, libSuffix)) {
+ path+=libSuffix;
+ }
+ return path;
 }

 static std::string getParam(const std::string config, const
std::string name) {
=== cut ===

As a result build fails.

Salikh, it seems that you need to provide additional patch.

SY, Alexey

2006/9/7, Alexey Varlamov [EMAIL PROTECTED]:

+1

2006/9/7, Geir Magnusson Jr. [EMAIL PROTECTED]:
 +1

 Geir Magnusson Jr. wrote:
  All is in order and in SVN for Harmony-1225 wrt BCC and ACQ.  I think
  that this an important patch so we can get better 1.5 support et al.
 
  Please vote to accept or reject this set of patches and fixes into 
the

  Apache Harmony class library :
 
  [ ] + 1 Accept
  [ ] -1 Reject  (provide reason below)
 
  Lets let this run a minimum of 3 days unless a) someone states 
they need

  more time or b) we get all committer votes before then.
 
  geir
 
 
 
 
  -
  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] DRLVM, jre/bin/default and launcher

2006-09-07 Thread Geir Magnusson Jr.



Evgueni Brevnov wrote:

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

Code is checked in for linux - and updating and testing now on WinXP.

The issue was that all of our library loading was done with full paths,
which didn't let APR via dlopen() use LD_LIBRARY_PATH.

So I made some small mods - please review.  One problem I found was that
 I had to make assumptions such as passing NULL instead of a path being
safe, because there was no comments in the code about expected inputs
(or resulting outputs).

I also neutered vm.boot.library.path to be  unless set on command
line, rather than be the directory of the launching executable, as I
figured that a) I needed to have it be  and b) that would lead to some
interesting failures when people tried to embed DRLVM in other apps or 
such.


It seems we don't need vm.boot.library.path anymore. I propose to
remove it from the sources completely. What do you think?



I wasn't sure.  It is used in Classloader and Runtime, I suppose as a 
parallel to Sun's equivalent?




I'll see what I can take out of HARMONY-1390 for some of the issues
related to teardown.  Or, Evgueni, you can tell me to close it and we
can do another one.  There seemed to be a few extra things included in
that patch, btw :)

Ok, let me give you some details regarding HARMONY-1390 patches. You
definitely don't need classlib.launcher.patch anymore.
drlvm.launcghr.patch contains the following logic parts:
1) Get rid of old DRLVM launcher and related stuff like parsing
command line (new launcher do it for us) and executing main method.
BTW I just noticed that I forgot to delete useless code in
j.l.VMStarter class.
2) Fix stack trace creation for new scheme. Now when main thread
starts application main method from native code through JNI we have
different few first frames on the stack. See changes for
vm\vmcore\src\kernel_classes\native\org_apache_harmony_vm_VMStack.cpp
3) Fix -help and -X options processing when VM is created by calling
JNI_CreateJavaVM.
4) Changes related to new location of VM's dll's.

We don't need part number 4) anymore since you did it in more elegant
way. I believe it still makes sense to apply parts 1) 2) 3).


I was definitely going to do 1) and 3).  I didn't really yet understand 
2), but I'll study that and ask any questions if I have any.


Thanks

geir





Tomorrow, I'll finish the changes to the build so we get a
launcher-based JRE and HDK.

I know this isn't perfect, but it's a step forward - thanks all for all
the help.

geir

(and for the record, working in C, C++ and Java all at the same time is
a hoot...)


Geir Magnusson Jr. wrote:
 Ok, I think I have this working now.

 DRLVM can be put anywhere and it works w/ the launcher w/o any 
unnatural

 acts with command line parameters and/or scripts.

 There are a few things to chat about - I'll get my thoughts together
 later tonight and post, and check in the code.  I just wanted to let
 people know if they were thinking about working on it.

 geir



 Geir Magnusson Jr. wrote:


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


 Evgueni Brevnov wrote:
  HI All,
 
  Good news! I have a patch to run DRLVM with the classlib's 
launcher

  (I've checked Hello and Eclipse applications on Windows only).
  Actually, there are two patches. The first one is for classlib 
which

  changes vm default directory to drlvm.

 I don't think we should do that - we'll keep it the same as it is 
now -

 default.

 Why should we change it?

 I don't care about it too much. Let it be default. In that case
 -vmdir option should be specified each time. Is it convenient for
 users?

 ?  right now, default is the default.  So the user doesn't have to
 specify anything...

 With the DRLVM stuff in jre/bin/default the user just types

  java


   BTW it seems there will be some problems with hythr.dll library
 if we wish to use drlvm and j9 in simultaneously. But that's another
 story...

 Yes, we need to resolve this.



  The second one is for build
  system and VM itself. Unfortunatelly, it is impossible to 
eliminate

  all problems in a short period of time. There is still a bunch of
 work
  in initialization and jni modules. So this patch is just a one 
more

  step to our goal.

 Great.  As I said in other mails, the build stuff isn't the part to
 worry about but rather the VM itself.

 So does this patch do it completely, or should we wait?

 Yes, the patch contains changes for both parts vm and build.
 It was easy for me to change the build than do manual manipulations
 each time to
 check whether it runs OK or not.

 So does this mean if I apply the patch, then DRLVM works w/ the
 launcher from the jre/bin/default directory w/o any problems?

 geir



 
  The vm patch is quite heavy so I attach it and classlib patch.
  Hope it will work not only for me :-)
 
 
  On 9/5/06, Geir Magnusson Jr. [EMAIL PROTECTED] wrote:
 
 
  Salikh Zakirov wrote:
   Andrey Chernyshev wrote:
   1.  Fix 

Re: [DRLVM][JIT] can Jitrino.JET call MMTk alloc() instead of C helper?

2006-09-07 Thread Weldon Washburn

Mikhail,

Thanks.  Please put the mods in JIRA  Harmony-816.  Thanks for pointing out
the other drlvm threads.  It turns out that even though these java threads
are running,  the MMTk user mode setup that has been created for
initial integration only sees one single java thread.

At some point soon we need to go multithread.  When can you fix the vmmagic
atomic operations?

  Thanks
  Weldon




On 9/7/06, Mikhail Fursov [EMAIL PROTECTED] wrote:


Weldon,
the problem is clear. I going to add the support to JET in a day.

+ Note that even for a simple single method HelloWorld application DRLVM
starts multiple threads to support finalization. Also some threads may be
created by API itself (but I'm not sure it does). So, at least, you need
to
disable finalizer threads with -Dvm.finalize=false property.


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

 On 9/6/06, Mikhail Fursov [EMAIL PROTECTED] wrote:
 
  Weldon,
  The replacement of the 'new' opcode call with another call is
relatively
  easy task.
 
  To send a working patch I need the following information:
  1) Which Java method to call? Is it an instance method or a static?


 Its an instance method.  Ideally you can use the same approach as the
one
 used when adding write barriers to Jitrino.JET.  Specifically
 PlanLocal.javain Jira Harmony-816.  The API is:

 public Address alloc(int bytes, int align, int offset, int allocator,
int
 site);

 The only parameter I care about at this time is bytes.  This must  be
 accurate.  I will ignore the rest of the parameters.  In other words, to
 allocate a 52 byte object, the call site should look like:

 alloc( 52, 0, 0, 0, 0);

 Make sure the JIT loads the vtable ptr (and array length if required).

 2) How to test the implementation? I can get and deploy all of your
 changes
  or just to call some stub methods in a specialized testcase before
 sending
  the result to you.



 It would be best to test with a stub that is similar to what's in
 Harmony-816.  It would also be great if the object allocator can chosen
by
 pattern matching on the method name.  A similar facility already exists
 for
 the write barrier -- it might be a simple cut/paste.

 The above will work fine during the single thread stage of this project.
 Once we decide to turn on multiple Java threads, we will need to stuff a
 thread specific MMTk object in DRLVM's thread block.  Then during
 execution
 of JITed code, use vmmagic to load fs:14+offset_of_the_alloc_object
into,
 for example, EBX.  Do a mov eax, [ebx] to get the vtable pointer into
 eax.  And finally, call [eax + offset_of_the_alloc_method].

 Let me know if you have further questions.



 ?
 
 
  On 9/6/06, Weldon Washburn [EMAIL PROTECTED] wrote:
  
   A question for Jitrino.JET developers.  How hard would it be to
modify
  the
   existing Jitrino.JET code  so that the new opcode calls MMTk
 alloc()?
  
   Thanks
   --
   Weldon Washburn
   Intel Middleware Products Division
  
  
 
 
  --
  Mikhail Fursov
 
 


 --
 Weldon Washburn
 Intel Middleware Products Division




--
Mikhail Fursov





--
Weldon Washburn
Intel Middleware Products Division


Re: [general] Marking JIRA issues before creation of patches.

2006-09-07 Thread Geir Magnusson Jr.
but again, I'll emphasize that you want to bring this to the dev list. 
Adding to a wiki or a JIRA is very silent compared to an introduction 
and discussion :)


geir


Paulex Yang wrote:

Geir Magnusson Jr. wrote:

Good.

Also, don't just do things in JIRA.  Add the comment in JIRA, but also 
send something to the dev list.  That way, people who are interested 
will more easily notice and maybe offer to help, or such...
+1, and for classlib, we have had some wiki pages[1]-[3] to list the 
ToDos and to record who is doing or has interest on what.


[1] http://wiki.apache.org/harmony/component_development_status
[2] http://wiki.apache.org/harmony/Excluded_tests
[3] http://wiki.apache.org/harmony/ClassLibrary



geir


Oleg Khaschansky wrote:

Hi all,

There were situations when several people started work on the same
issue simultaneously. This happens because it is impossible to assign
an issue to a non-committer. I suggest the following process to
prevent these collisions:

1. If non-committer starts investigation and is pretty sure that he
will proceed with the patch then he adds a comment like starting
investigation to the JIRA issue. Maybe we should have a special
keyword for this to make a search easier.
2. If for some reason he is unable to provide the patch, he adds a
comment about this also.

What do you think about this?

--
 Oleg

-
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: [build] Use Sun 5.0_8 or Eclipse Compiler for automated builds

2006-09-07 Thread Geir Magnusson Jr.



Alexey Varlamov wrote:

2006/9/7, Oliver Deakin [EMAIL PROTECTED]:

Alexey Varlamov wrote:
 2006/9/7, Oliver Deakin [EMAIL PROTECTED]:


 Nathan Beyer wrote:
 
  -Original Message-
  From: Richard Liang [mailto:[EMAIL PROTECTED]
 
   Sun compiler (5.0_8) also has some unexpected behavior. See[1]
 
  [1]http://mail-archives.apache.org/mod_mbox/incubator-harmony-
  dev/200608.mbox/[EMAIL PROTECTED]
 
 
 
  I've found that a second or third ant build takes care of it.
 What I've
  noticed though is that the failures are all linking to elements
 from classes
  in luni-kernel. I'm looking at it, but I think there are some
 issues with
  what's put on the bootclasspath. I've already found one discrepancy
 between
  some of our 'luni-kernel' stubs and the spec. The Method.invoke()
 uses a
  vararg and our stub didn't have this.
 

 I spotted this as well, was preparing a patch for it - unless you want
 to just go ahead and
 fix it?

 Could you please restore j.l.Thread.setInterruptAction()  co, as well?

Isn't setInterruptAction() a private method? Why do we need this in the
luni-kernel
stubs?


As long as luni-kernel stubs actually document VMI, we should keep all
related methods there (until someone can suggest better place, which I
doubt - you know, the code is best doc itslef and any separate docs
become outdated sooner or later). Real-life example: I noted
NoSuchMethodException in DRLVM trace logs, and was quite puzzled what
it is about - so had to browse dev-list history...


When I first saw this suggestion, I too thought that it shouldn't go in 
Thread.


But where is it used or documented as part of VMI?  I couldn't find it...

geir





As far as I can see, that is the only method that has been removed
recently from the
Thread class stub - were there any others that I have missed that are
required?

Simply reapply luni-kernel part of HARMONY-635. Thank you!

--
Regards,
Alexey

-
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: [jira] Created: (HARMONY-1395) Code for reading and writing binary DTDs using ASN.1 encoding

2006-09-07 Thread Geir Magnusson Jr.
Just add a comment saying I grant the attached materials under the 
terms of the Apache License v2.0





Miguel Montes wrote:

Hi Mikhail:
The attach button in the JIRA form doesn't have the checkbox to grant  the
license. Now I notice the button is there when you try to attach files 
to an
already created issue, so i understand I have to create the issue first, 
and

attach the files later.
What should i do now to grant the license? Re-attach the files granting the
license? Sorry if this was explained before, but i didn't read it

Miguel

On 9/7/06, Mikhail Loenko [EMAIL PROTECTED] wrote:


Hi Miguel

Thanks for your patches! Could you please grant ASF license to them?

Thanks,
Mikhail

2006/9/7, Miguel Montes (JIRA) [EMAIL PROTECTED]:
 Code for reading and writing binary DTDs using ASN.1 encoding
 -

 Key: HARMONY-1395
 URL: http://issues.apache.org/jira/browse/HARMONY-1395
 Project: Harmony
  Issue Type: Improvement
  Components: Contributions
Reporter: Miguel Montes
 Attachments: ASN1_01.patch, ASN1_ITC-Contribution_20060905.zip

 The class javax.swing.text.html.parser.DTD has a method read() for
loading a binary DTD. The format of this binary file is not specified, so
the current implementation uses serialization. This approach has several
problems, so it was suggested in harmony-dev the use of ASN.1 to encode
the DTD information.
 Attached is a zip file with a set of classes for encoding and 
decoding a

DTD, using the ASN.1 framework already in use in javax.crypto; and two
bdtds, one for HTML 3.2 and one for HTML 4.01. Also attached is a patch
for DTD.java and DTDUtilities.java.




 The proposed format is:
 BDTD ::= SEQUENCE {
name UTF8String,
entity SET OF HTMLEntity,
element SET OF HTMLElement
 }

 HTMLEntity ::= SEQUENCE {
name UTF8String,
value INTEGER,
general [0] IMPLICIT BOOLEAN DEFAULT FALSE,
parameter [1] IMPLICIT BOOLEAN DEFAULT FALSE,
data UTF8String
 }

 HTMLElement ::= SEQUENCE {
index INTEGER,
name UTF8String,
type INTEGER,
oStart BOOLEAN,
oEnd BOOLEAN,
exclusions [0] IMPLICIT SET OF INTEGER OPTIONAL,
inclusions [1] IMPLICIT SET OF INTEGER OPTIONAL,
  attributes SET OF HTMLElementAttributes OPTIONAL,
contentModel HTMLContentModel
 }

 HTMLContentModel ::= SEQUENCE OF SEQUENCE {
type INTEGER,
index INTEGER
 }

 HTMLElementAttributes ::= SEQUENCE {
name UTF8String,
type INTEGER,
modifier INTEGER,
defaultValue UTF8String OPTIONAL,
possibleValues SET OF UTF8String OPTIONAL

 }


 --
 This message is automatically generated by JIRA.
 -
 If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
 -
 For more information on JIRA, see:
http://www.atlassian.com/software/jira




-
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]A subject to profiling instrumenting

2006-09-07 Thread zouqiong

This is the JIRA number.
https://issues.apache.org/jira/browse/HARMONY-1406

I upload the vm code, it`s not so large, 3.8 Megabytes.

And the code still have bugs when profile the AALOAD.
But I am not sure the GETFIELD and GETSTATIC are totally right. :(

If you want to profile the AALOAD, please look at the _TEST_ macro in
gen_aload() method.
And the GETFIELD and GETSTATIC is opened automatically.

Now I have the following schedule:
1.First implement the instrument which helps to profile the access patterns
2.Second using sampling to implement the instrument.


2006/9/7, Mikhail Fursov [EMAIL PROTECTED]:


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

 Ok, I will put my diffs to the JIRA later. And I have solved the issue I
 asked two days ago.


Ok, I will wait the JIRA number from you.


It needs liblwdis.so supporting.


Check JIRA 1402 for it. http://issues.apache.org/jira/browse/HARMONY-1402

--
Mikhail Fursov





--
Best Regards,
Qiong,Zou


Re: [drlvm] Helper inlining in JIT

2006-09-07 Thread Weldon Washburn

On 9/7/06, Mikhail Fursov [EMAIL PROTECTED] wrote:


On 9/7/06, Rana Dasgupta [EMAIL PROTECTED] wrote:

 Hi Mikhail,
 Sorry I left this thread for a while. Are you implementing VMMagic
 support in .OPT currently, and prototyping with bump allocation?  I am
 just
 trying to understand in what order we are doing this.


I'm implementing VMMagics and going to use it to prototype bump pointer
allocation. I hope I will finish VMMagic OPT package in a several weeks.

  Would it be possible to list the fastpath helpers so that the java
 interfaces to access them could be defined? All of them don't need magic
 classes support and one of us could just write them. I don't know the
list
 of intrinsics implemented already in .JET. Can we just use them as is,
and
 what else ( other than TLS access, call support ) would need to be
added?


The list of the helpers with fast path to be written in Java:
1) object allocation
2) array allocation
3) monitor enters
4) monitor exits
5) I hope we can move some profiling helpers to Java and to remove the
knowledge about their implementation from JIT.
6) write and read barriers
7) back branch polling helper
8) ? Some TI helpers ?

VM gurus, have you anything to add to this list?



This is a good list to start with.  I would focus on the first four for
now.  This is because for the most part the interface from the common, fast
code to the slow not-so-common code is real simple and well understood.  The
idea is to start with the simplest thing possible that exercises all the
vmmagic functions you want to add (call, thread-local access).

Write barriers fall into a different category.  It depends on the write
barrier algorithm that happens to be implemented by the GC.  And what the GC
happens to be written in.  In other words, the integration we recently did
for MMTk probably does not apply to what Xiao Feng will be doing in GCV5.

Also on closer look, there are allocation algorithms that are not as simple
and clean as bump the pointer.  For example a non-moving collector might
search size segregated lists to allocate an object.  The point is that it
would be good if the JIT keeps the existing helper interface in addition to
the work you are proposing.


+ I think that TLS and call support are enough.



BTW, there may be a small omission in the example below..if I am reading
 this right...


IMO newCurrent = oldCurrent + size is OK. May be the source of the
problem
is the variable name, i.e. 'ceiling' is always = 'current' in my example.

Thanks,
 Rana

 On 8/28/06, Mikhail Fursov [EMAIL PROTECTED] wrote:

  Folks,
  Here is the example of fast allocation helper written in Java with the
  help
  of VMMagic
  If nobody objects I'm starting to implement VMMagic support in
  Jitrino.OPTthis week.
 
 
 
  private static final int GC_TLS_OFFSET = 10;
  private static final int GC_CURRENT_OFFSET= GC_TLS_OFFSET + 0;
  private static final int GC_CEILING_OFFSET= GC_TLS_OFFSET + 4;
  private static final int OBJ_VTABLE_OFFSET = 0;
 
  //annotate with calling convention and real VM helper id/name
 information
  private static Address slowAlloc(int vtable, int size) {throw new
  Error(must never be called!);}
 
  private static Address fastAlloc(int vtable, int size) {
 Address tlsBase = TLS.getAddress();  //load thread local client
area
  address
 
 Address currentFieldAddress = tlsBase.plus(GC_CURRENT_OFFSET);
 Address ceilingFieldAddress = tlsBase.plus(GC_CEILING_OFFSET);
 
 Address newObjectAddress; //the result of the method
 
 // check if there is enough size to do allocation in thread local
  buffer
 Address current = currentFieldAddress.loadAddress();
 Address ceiling = ceilingFieldAddress.loadAddress();
 Address newCurrent = current.plus(size);
 if (newCurrent.LT(ceiling)) {


 newCurrent = newCurrent.plus(-size);

currentFieldAddress.store(newCurrent.toWord());
 newObjectAddress = newCurrent;
 newObjectAddress.store(vtable, Offset.fromInt
 (OBJ_VTABLE_OFFSET));
 
 } else {
 newObjectAddress = slowAlloc(vtable, size);
 }
 return newObjectAddress;
  }
 
  --
  Mikhail Fursov
 
 




--
Mikhail Fursov





--
Weldon Washburn
Intel Middleware Products Division


Re: [build] Use Sun 5.0_8 or Eclipse Compiler for automated builds

2006-09-07 Thread Alexey Varlamov

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



Alexey Varlamov wrote:
 2006/9/7, Oliver Deakin [EMAIL PROTECTED]:
 Alexey Varlamov wrote:
  2006/9/7, Oliver Deakin [EMAIL PROTECTED]:
 
 
  Nathan Beyer wrote:
  
   -Original Message-
   From: Richard Liang [mailto:[EMAIL PROTECTED]
  
Sun compiler (5.0_8) also has some unexpected behavior. See[1]
  
   [1]http://mail-archives.apache.org/mod_mbox/incubator-harmony-
   dev/200608.mbox/[EMAIL PROTECTED]
  
  
  
   I've found that a second or third ant build takes care of it.
  What I've
   noticed though is that the failures are all linking to elements
  from classes
   in luni-kernel. I'm looking at it, but I think there are some
  issues with
   what's put on the bootclasspath. I've already found one discrepancy
  between
   some of our 'luni-kernel' stubs and the spec. The Method.invoke()
  uses a
   vararg and our stub didn't have this.
  
 
  I spotted this as well, was preparing a patch for it - unless you want
  to just go ahead and
  fix it?
 
  Could you please restore j.l.Thread.setInterruptAction()  co, as well?

 Isn't setInterruptAction() a private method? Why do we need this in the
 luni-kernel
 stubs?

 As long as luni-kernel stubs actually document VMI, we should keep all
 related methods there (until someone can suggest better place, which I
 doubt - you know, the code is best doc itslef and any separate docs
 become outdated sooner or later). Real-life example: I noted
 NoSuchMethodException in DRLVM trace logs, and was quite puzzled what
 it is about - so had to browse dev-list history...

When I first saw this suggestion, I too thought that it shouldn't go in
Thread.

Yep, I let the original discussion slip and still not comfortable
about current state. I especially dislike using brute force as
reflection to overcome design flaws...
I will try to look into this closer, when time permits.


But where is it used or documented as part of VMI?  I couldn't find it...

Used in java.nio.channels.spi.AbstractInterruptibleChannel, the only
documentation was in javadocs to j.l.Thread.setInterruptAction().



geir



 As far as I can see, that is the only method that has been removed
 recently from the
 Thread class stub - were there any others that I have missed that are
 required?
 Simply reapply luni-kernel part of HARMONY-635. Thank you!

 --
 Regards,
 Alexey

 -
 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: [classlib][luni] signalis interruptus in hysock

2006-09-07 Thread Weldon Washburn

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




Artem Aliev wrote:
 The hyport and hy* are a porting layer that provides os independent
 interface.
 hysock_select() does not return EINTR on windows why it should do it
 under linux?
 either user presses Ctrl-c or ctrl-\ or VM uses other signals for its
 owns needs.

I think you just gave me the answer.

The *caller* to hysock_select() needs to decide what to do on EINTR, not
hysock_select() itself.

I still don't think this is a perfect solution, but I think it's better :)



Does the above solve the problem completely or is it a temporary patch?
Will the caller to hysock_select() need to have #ifdef Windows #ifdef
Linux...?

I still want to know about J9 though.  Maybe I need to go work for IBM

again :)

geir


-
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


Re: [classlib][luni] signalis interruptus in hysock

2006-09-07 Thread Geir Magnusson Jr.



Weldon Washburn wrote:

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




Artem Aliev wrote:
 The hyport and hy* are a porting layer that provides os independent
 interface.
 hysock_select() does not return EINTR on windows why it should do it
 under linux?
 either user presses Ctrl-c or ctrl-\ or VM uses other signals for its
 owns needs.

I think you just gave me the answer.

The *caller* to hysock_select() needs to decide what to do on EINTR, not
hysock_select() itself.

I still don't think this is a perfect solution, but I think it's 
better :)



Does the above solve the problem completely or is it a temporary patch?


I don't know, but happy to call it a temporary patch - right now we're 
stuck, because we can't even run tomcat and I want to do a new snapshot.



Will the caller to hysock_select() need to have #ifdef Windows #ifdef
Linux...?


We already have platform specific code that calls hysock_select()

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: [build] Use Sun 5.0_8 or Eclipse Compiler for automated builds

2006-09-07 Thread Geir Magnusson Jr.



Alexey Varlamov wrote:

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



Alexey Varlamov wrote:

 As long as luni-kernel stubs actually document VMI, we should keep all
 related methods there (until someone can suggest better place, which I
 doubt - you know, the code is best doc itslef and any separate docs
 become outdated sooner or later). Real-life example: I noted
 NoSuchMethodException in DRLVM trace logs, and was quite puzzled what
 it is about - so had to browse dev-list history...

When I first saw this suggestion, I too thought that it shouldn't go in
Thread.

Yep, I let the original discussion slip and still not comfortable
about current state. I especially dislike using brute force as
reflection to overcome design flaws...
I will try to look into this closer, when time permits.



Ah - I wasn't arguing for or against the technical solution, but just 
wondering about how to document.





But where is it used or documented as part of VMI?  I couldn't find it...

Used in java.nio.channels.spi.AbstractInterruptibleChannel, the only
documentation was in javadocs to j.l.Thread.setInterruptAction().


Got it - I understand now.

I agree that we should put something in our Thread stub with good 
javadoc pointing back at j.n.c.spi.AIC...


geir





geir



 As far as I can see, that is the only method that has been removed
 recently from the
 Thread class stub - were there any others that I have missed that are
 required?
 Simply reapply luni-kernel part of HARMONY-635. Thank you!

 --
 Regards,
 Alexey

 -
 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: [classlib][luni] signalis interruptus in hysock

2006-09-07 Thread Geir Magnusson Jr.
And one other comment on the proposed patch...  it doesn't respect the 
timeout as it restarts the select() with the original timeout...




Geir Magnusson Jr. wrote:



Weldon Washburn wrote:

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




Artem Aliev wrote:
 The hyport and hy* are a porting layer that provides os independent
 interface.
 hysock_select() does not return EINTR on windows why it should do it
 under linux?
 either user presses Ctrl-c or ctrl-\ or VM uses other signals for its
 owns needs.

I think you just gave me the answer.

The *caller* to hysock_select() needs to decide what to do on EINTR, not
hysock_select() itself.

I still don't think this is a perfect solution, but I think it's 
better :)



Does the above solve the problem completely or is it a temporary patch?


I don't know, but happy to call it a temporary patch - right now we're 
stuck, because we can't even run tomcat and I want to do a new snapshot.


Will the caller to hysock_select() need to have #ifdef Windows 
#ifdef

Linux...?


We already have platform specific code that calls hysock_select()

geir


-
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: [vote] HARMONY-1363 - DRLVM fixes and additions

2006-09-07 Thread Gregory Shimansky
+1

It contains JVMTI breakpoint support which I hope to use in future JVMTI 
development.

On Thursday 07 September 2006 08:33 Geir Magnusson Jr. wrote:
 All is in order and in SVN for Harmony-1225 wrt BCC and ACQ.  I think
 that this an important patch so we can get better 1.5 support et al.

 Please vote to accept or reject this set of patches and fixes into the
 Apache Harmony class library :

 [ ] + 1 Accept
 [ ] -1 Reject  (provide reason below)

 Lets let this run a minimum of 3 days unless a) someone states they need
 more time or b) we get all committer votes before then.

 geir




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

-- 
Gregory Shimansky, 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: [build] Use Sun 5.0_8 or Eclipse Compiler for automated builds

2006-09-07 Thread Nathan Beyer
Not that I agree or disagree about the Thread method, but perhaps we should
start a new thread for that.

-Nathan

 -Original Message-
 From: Geir Magnusson Jr. [mailto:[EMAIL PROTECTED]
 Sent: Thursday, September 07, 2006 11:31 AM
 To: harmony-dev@incubator.apache.org
 Subject: Re: [build] Use Sun 5.0_8 or Eclipse Compiler for automated
 builds
 
 
 
 Alexey Varlamov wrote:
  2006/9/7, Geir Magnusson Jr. [EMAIL PROTECTED]:
 
 
  Alexey Varlamov wrote:
  
   As long as luni-kernel stubs actually document VMI, we should keep
 all
   related methods there (until someone can suggest better place, which
 I
   doubt - you know, the code is best doc itslef and any separate docs
   become outdated sooner or later). Real-life example: I noted
   NoSuchMethodException in DRLVM trace logs, and was quite puzzled what
   it is about - so had to browse dev-list history...
 
  When I first saw this suggestion, I too thought that it shouldn't go in
  Thread.
  Yep, I let the original discussion slip and still not comfortable
  about current state. I especially dislike using brute force as
  reflection to overcome design flaws...
  I will try to look into this closer, when time permits.
 
 
 Ah - I wasn't arguing for or against the technical solution, but just
 wondering about how to document.
 
 
  But where is it used or documented as part of VMI?  I couldn't find
 it...
  Used in java.nio.channels.spi.AbstractInterruptibleChannel, the only
  documentation was in javadocs to j.l.Thread.setInterruptAction().
 
 Got it - I understand now.
 
 I agree that we should put something in our Thread stub with good
 javadoc pointing back at j.n.c.spi.AIC...
 
 geir
 
 
 
  geir
 
  
  
   As far as I can see, that is the only method that has been removed
   recently from the
   Thread class stub - were there any others that I have missed that
 are
   required?
   Simply reapply luni-kernel part of HARMONY-635. Thank you!
  
   --
   Regards,
   Alexey
  
   -
   Terms of use : http://incubator.apache.org/harmony/mailing.html
   To unsubscribe, e-mail: [EMAIL PROTECTED]
   For additional commands, e-mail: harmony-dev-
 [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]



[classlib][luni] Put setInterruptAction() in our j.l.Thread stub?

2006-09-07 Thread Geir Magnusson Jr.

This came up in another thread.

Currently, java.nio.channels.spi.AbstractInterruptibleChannel depends on 
there being a setInterruptAction() method on java.lang.Thread.


I certainly think that this kind of thing should be documented, so the 
question - should we add this to our Thread stub class?


geir

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



[classlib][luni] socketus interruptus - fix committed

2006-09-07 Thread Geir Magnusson Jr.
I committed the initial fix to the socket interrupt problem.  I stared 
at it a while and did what I thought the simplest thing possible.  (Most 
of the staring was trying to grok some of the intent in the socket.c and 
hysock.c code...


Simply put, I ensured that hysock_select() just dealt w/ that return 
code correctly, translating to the HSOCK error code.  (I also did a bit 
of reformatting... apologies if it really upsets someone - I'll put it 
back).  The result is that hysock_select() still behaves the same.


I also modified one function in socket.c - the pollSelectRead() call - 
to deal with the interrupt return code from hysock_select().


I *think* I got it right, and am hoping that some others can review and 
comment.  I'm embarrassed to have used a 'goto' (mimicing the style 
there), but didn't want to do the rewrite I wanted to while also fixing 
the interrupt problem. :)  (I also want some better tests before we take 
it apart...)


This of course fixes the problems w/ Tomcat that we created w/ the DRLVM 
thread manager fix, so I'm going to try to spin a new snapshot tonight.


Also, I'll go and treat the other usages of hysock_select() to deal w/ 
this return code, but after there's been a period of review and comment 
for these changes.


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][luni] Put setInterruptAction() in our j.l.Thread stub?

2006-09-07 Thread Andrew Zhang

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


This came up in another thread.

Currently, java.nio.channels.spi.AbstractInterruptibleChannel depends on
there being a setInterruptAction() method on java.lang.Thread.

I certainly think that this kind of thing should be documented, so the
question - should we add this to our Thread stub class?



+1.
It is a part of vmi, and we should add setInterruptAction Thread stub
class as a private method. Thanks!


geir


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





--
Andrew Zhang
China Software Development Lab, IBM


Re: [classlib][luni] Put setInterruptAction() in our j.l.Thread stub?

2006-09-07 Thread Jimmy, Jing Lv

Geir Magnusson Jr. wrote:

This came up in another thread.

Currently, java.nio.channels.spi.AbstractInterruptibleChannel depends on 
there being a setInterruptAction() method on java.lang.Thread.


I certainly think that this kind of thing should be documented, so the 
question - should we add this to our Thread stub class?




Yes, the VMs whose Thread do not know how to interrupt a certain 
understratum blocking I/O(socket read/write, select, or so) is likely to 
use this method. Though DRLVM using SIGUSR2 may not meet this problem( 
does SIGUSR2 work on windows?). I agree this must be documented.


But to DRLVM, one problem is how to tell the interruption is 
necessary(say, user invoke wake() or some other methods to ask them to 
stop) or can be ignored(say, caused by other unrelated interruption and 
can be recover like recently fix to hysock.c and socket.c).



geir

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





--

Best Regards!

Jimmy, Jing Lv
China Software Development Lab, IBM

-
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][luni] Put setInterruptAction() in our j.l.Thread stub?

2006-09-07 Thread Paulex Yang

Geir Magnusson Jr. wrote:

This came up in another thread.

Currently, java.nio.channels.spi.AbstractInterruptibleChannel depends 
on there being a setInterruptAction() method on java.lang.Thread.


I certainly think that this kind of thing should be documented, so the 
question - should we add this to our Thread stub class?
I think so, actually it has been added as part of patch for HARMONY-635 
with documentations, but it was removed later for unknown reasons...I 
can recover it if no one objects.


geir

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





--
Paulex Yang
China Software Development Lab
IBM



-
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][luni] socketus interruptus - fix committed

2006-09-07 Thread Jimmy, Jing Lv

Geir Magnusson Jr. wrote:
I committed the initial fix to the socket interrupt problem.  I stared 
at it a while and did what I thought the simplest thing possible.  (Most 
of the staring was trying to grok some of the intent in the socket.c and 
hysock.c code...


Simply put, I ensured that hysock_select() just dealt w/ that return 
code correctly, translating to the HSOCK error code.  (I also did a bit 
of reformatting... apologies if it really upsets someone - I'll put it 
back).  The result is that hysock_select() still behaves the same.


I also modified one function in socket.c - the pollSelectRead() call - 
to deal with the interrupt return code from hysock_select().


I *think* I got it right, and am hoping that some others can review and 
comment.  I'm embarrassed to have used a 'goto' (mimicing the style 
there), but didn't want to do the rewrite I wanted to while also fixing 
the interrupt problem. :)  (I also want some better tests before we take 
it apart...)




I've taken a quick review on the two files, and I like the reformatting 
:) Maybe the goto can be avoid, but this does not matter much.


I notice the port lib, say hysock.c is modified, adding a line:
if (errno == EINTR) {
rc = portLibrary-error_set_last_error(portLibrary, errno, 
 			 
HYPORT_ERROR_SOCKET_INTERRUPTED);

}
IMHO, we can avoid this modification, for method in socket.c the result 
is judged by the return value(result), not last_error. IMHO, we'd 
better do no modification on port lib. Please correct me if I'm wrong.


This of course fixes the problems w/ Tomcat that we created w/ the DRLVM 
thread manager fix, so I'm going to try to spin a new snapshot tonight.


Also, I'll go and treat the other usages of hysock_select() to deal w/ 
this return code, but after there's been a period of review and comment 
for these changes.




I have no objection if everything goes well, but still worry about how 
to tell the difference between a necessary interruption(user 
interruption) and this recover-able interruption.



geir


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





--

Best Regards!

Jimmy, Jing Lv
China Software Development Lab, IBM

-
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][luni] socketus interruptus - fix committed

2006-09-07 Thread Geir Magnusson Jr.



Jimmy, Jing Lv wrote:

Geir Magnusson Jr. wrote:
I committed the initial fix to the socket interrupt problem.  I stared 
at it a while and did what I thought the simplest thing possible.  
(Most of the staring was trying to grok some of the intent in the 
socket.c and hysock.c code...


Simply put, I ensured that hysock_select() just dealt w/ that return 
code correctly, translating to the HSOCK error code.  (I also did a 
bit of reformatting... apologies if it really upsets someone - I'll 
put it back).  The result is that hysock_select() still behaves the same.


I also modified one function in socket.c - the pollSelectRead() call - 
to deal with the interrupt return code from hysock_select().


I *think* I got it right, and am hoping that some others can review 
and comment.  I'm embarrassed to have used a 'goto' (mimicing the 
style there), but didn't want to do the rewrite I wanted to while also 
fixing the interrupt problem. :)  (I also want some better tests 
before we take it apart...)




I've taken a quick review on the two files, and I like the reformatting 
:) Maybe the goto can be avoid, but this does not matter much.


It can certainly be avoided, but I didn't want to change too much at 
this time.




I notice the port lib, say hysock.c is modified, adding a line:
if (errno == EINTR) {
rc = portLibrary-error_set_last_error(portLibrary, errno, 
  
HYPORT_ERROR_SOCKET_INTERRUPTED);

}
IMHO, we can avoid this modification, for method in socket.c the result 
is judged by the return value(result), not last_error. IMHO, we'd 
better do no modification on port lib. Please correct me if I'm wrong.


Well, yes, it is judged by the return value, but if the semantics of 
hyscok_ is that if there is an error, the platform error is set via 
_error_set_last_error, then I wanted to follow the convention.


This was one more thing to chase down- I figured I'd just follow along 
for now :)




This of course fixes the problems w/ Tomcat that we created w/ the 
DRLVM thread manager fix, so I'm going to try to spin a new snapshot 
tonight.


Also, I'll go and treat the other usages of hysock_select() to deal w/ 
this return code, but after there's been a period of review and 
comment for these changes.




I have no objection if everything goes well, but still worry about how 
to tell the difference between a necessary interruption(user 
interruption) and this recover-able interruption.


I've been thinking about this a lot, and I just don't know.  There is no 
concept for this up in Java, so it's not like we're breaking anything there.


I do wonder if our concerns are overblown, that this is Just The Way 
Things Are due to the history of how IO calls and signals evolved in 
unix and linux.


But again, I'm not sure of myself here...

geir




geir


-
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: [build] Use Sun 5.0_8 or Eclipse Compiler for automated builds

2006-09-07 Thread Nathan Beyer
I think I have this issue fixed. I modified the 'build-java.xml' script to
use 'bootclasspath' instead of 'classpath' in the 'javac' task [1].

Please test it out and let me know if this works. It works for me on WinXP
and Sun JDK 5.0_8 and resolves the issue mentioned below.

[1]
http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/make/
build-java.xml?r1=440948r2=441358diff_format=h

 -Original Message-
 From: Geir Magnusson Jr. [mailto:[EMAIL PROTECTED]
 Sent: Wednesday, September 06, 2006 10:07 PM
 To: harmony-dev@incubator.apache.org
 Subject: Re: [build] Use Sun 5.0_8 or Eclipse Compiler for automated
 builds
 
 
 
 Nathan Beyer wrote:
 
  -Original Message-
  From: Richard Liang [mailto:[EMAIL PROTECTED]
 
   Sun compiler (5.0_8) also has some unexpected behavior. See[1]
 
  [1]http://mail-archives.apache.org/mod_mbox/incubator-harmony-
  dev/200608.mbox/[EMAIL PROTECTED]
 
 
  I've found that a second or third ant build takes care of it.
 
 LOL
 
 That's not a solution.
 
   What I've
  noticed though is that the failures are all linking to elements from
 classes
  in luni-kernel. I'm looking at it, but I think there are some issues
 with
  what's put on the bootclasspath. I've already found one discrepancy
 between
  some of our 'luni-kernel' stubs and the spec. The Method.invoke() uses a
  vararg and our stub didn't have this.
 
 Cool.
 
 
  -Nathan
 
 
 
  There are a number of places that use ReferenceQueues and Reference,
 but
  can't be generified because of a bug in the Sun compilers prior to
  5.0_8. At
  the end of this email is an example of code that causes a compiler
 error
  in
  previous releases. This issue does not affect the Eclipse compiler.
 I've
  run
  a full rebuild as of revision 440796 and everything compiles fine with
  both
  the Eclipse compiler and Sun 5.0_8 compiler.
 
 
 
  -Nathan
 
 
 
 
 
  private static final ReferenceQueueObject cacheQueue = new
  ReferenceQueueObject();
 
 
 
  private static final class CacheEntry extends
 WeakReferenceObject
  {
  String key;
 
 
 
  CacheEntry(Object jar, String key, ReferenceQueueObject
 queue)
  {
  super(jar, queue);
 
  this.key = key;
 
  }
 
  }
 
 
 
  // ... code using the queue
 
 
 
  CacheEntry entry;
 
  // This cast fails on Sun 5.0_7 and prior compilers
 
  while ((entry = (CacheEntry)cacheQueue.poll()) != null) {
 
  jarCache.remove(entry.key);
 
  }
 
 
 
  // . more code
 
 
 
 
 
 
 
 
  --
  Richard Liang
  China Software Development Lab, IBM
 
  -
  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: [build] Use Sun 5.0_8 or Eclipse Compiler for automated builds

2006-09-07 Thread Nathan Beyer
I guess I have to take this one back. It seemingly killed the automated
linux build. I reverted the change, so hopefully that will fix the build.

Anyone with a Linux box willing to test out this change? Like I mentioned,
it works perfectly fine on WinXP.

Note: This would all go away if we used the Eclipse compiler - there's no
default bootclasspath to get in the way.

-Nathan

 -Original Message-
 From: Nathan Beyer [mailto:[EMAIL PROTECTED]
 Sent: Thursday, September 07, 2006 10:12 PM
 To: harmony-dev@incubator.apache.org
 Subject: RE: [build] Use Sun 5.0_8 or Eclipse Compiler for automated
 builds
 
 I think I have this issue fixed. I modified the 'build-java.xml' script to
 use 'bootclasspath' instead of 'classpath' in the 'javac' task [1].
 
 Please test it out and let me know if this works. It works for me on WinXP
 and Sun JDK 5.0_8 and resolves the issue mentioned below.
 
 [1]
 http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/mak
 e/
 build-java.xml?r1=440948r2=441358diff_format=h
 
  -Original Message-
  From: Geir Magnusson Jr. [mailto:[EMAIL PROTECTED]
  Sent: Wednesday, September 06, 2006 10:07 PM
  To: harmony-dev@incubator.apache.org
  Subject: Re: [build] Use Sun 5.0_8 or Eclipse Compiler for automated
  builds
 
 
 
  Nathan Beyer wrote:
  
   -Original Message-
   From: Richard Liang [mailto:[EMAIL PROTECTED]
  
Sun compiler (5.0_8) also has some unexpected behavior. See[1]
  
   [1]http://mail-archives.apache.org/mod_mbox/incubator-harmony-
   dev/200608.mbox/[EMAIL PROTECTED]
  
  
   I've found that a second or third ant build takes care of it.
 
  LOL
 
  That's not a solution.
 
What I've
   noticed though is that the failures are all linking to elements from
  classes
   in luni-kernel. I'm looking at it, but I think there are some issues
  with
   what's put on the bootclasspath. I've already found one discrepancy
  between
   some of our 'luni-kernel' stubs and the spec. The Method.invoke() uses
 a
   vararg and our stub didn't have this.
 
  Cool.
 
  
   -Nathan
  
  
  
   There are a number of places that use ReferenceQueues and Reference,
  but
   can't be generified because of a bug in the Sun compilers prior to
   5.0_8. At
   the end of this email is an example of code that causes a compiler
  error
   in
   previous releases. This issue does not affect the Eclipse compiler.
  I've
   run
   a full rebuild as of revision 440796 and everything compiles fine
 with
   both
   the Eclipse compiler and Sun 5.0_8 compiler.
  
  
  
   -Nathan
  
  
  
  
  
   private static final ReferenceQueueObject cacheQueue = new
   ReferenceQueueObject();
  
  
  
   private static final class CacheEntry extends
  WeakReferenceObject
   {
   String key;
  
  
  
   CacheEntry(Object jar, String key, ReferenceQueueObject
  queue)
   {
   super(jar, queue);
  
   this.key = key;
  
   }
  
   }
  
  
  
   // ... code using the queue
  
  
  
   CacheEntry entry;
  
   // This cast fails on Sun 5.0_7 and prior compilers
  
   while ((entry = (CacheEntry)cacheQueue.poll()) != null)
 {
  
   jarCache.remove(entry.key);
  
   }
  
  
  
   // . more code
  
  
  
  
  
  
  
  
   --
   Richard Liang
   China Software Development Lab, IBM
  
   -
   Terms of use : http://incubator.apache.org/harmony/mailing.html
   To unsubscribe, e-mail: [EMAIL PROTECTED]
   For additional commands, e-mail: harmony-dev-
 [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: [build] Use Sun 5.0_8 or Eclipse Compiler for automated builds

2006-09-07 Thread Geir Magnusson Jr.



Nathan Beyer wrote:

I think I have this issue fixed. I modified the 'build-java.xml' script to
use 'bootclasspath' instead of 'classpath' in the 'javac' task [1].



Why?  What changed in the Sun compiler that warrants this?

Can we just switch to the eclipse compiler?

geir



Please test it out and let me know if this works. It works for me on WinXP
and Sun JDK 5.0_8 and resolves the issue mentioned below.

[1]
http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/make/
build-java.xml?r1=440948r2=441358diff_format=h


-Original Message-
From: Geir Magnusson Jr. [mailto:[EMAIL PROTECTED]
Sent: Wednesday, September 06, 2006 10:07 PM
To: harmony-dev@incubator.apache.org
Subject: Re: [build] Use Sun 5.0_8 or Eclipse Compiler for automated
builds



Nathan Beyer wrote:

-Original Message-
From: Richard Liang [mailto:[EMAIL PROTECTED]

 Sun compiler (5.0_8) also has some unexpected behavior. See[1]

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


I've found that a second or third ant build takes care of it.

LOL

That's not a solution.

  What I've

noticed though is that the failures are all linking to elements from

classes

in luni-kernel. I'm looking at it, but I think there are some issues

with

what's put on the bootclasspath. I've already found one discrepancy

between

some of our 'luni-kernel' stubs and the spec. The Method.invoke() uses a
vararg and our stub didn't have this.

Cool.


-Nathan



There are a number of places that use ReferenceQueues and Reference,

but

can't be generified because of a bug in the Sun compilers prior to

5.0_8. At

the end of this email is an example of code that causes a compiler

error

in

previous releases. This issue does not affect the Eclipse compiler.

I've

run

a full rebuild as of revision 440796 and everything compiles fine with

both

the Eclipse compiler and Sun 5.0_8 compiler.



-Nathan





private static final ReferenceQueueObject cacheQueue = new
ReferenceQueueObject();



private static final class CacheEntry extends

WeakReferenceObject

{

String key;



CacheEntry(Object jar, String key, ReferenceQueueObject

queue)

{

super(jar, queue);

this.key = key;

}

}



// ... code using the queue



CacheEntry entry;

// This cast fails on Sun 5.0_7 and prior compilers

while ((entry = (CacheEntry)cacheQueue.poll()) != null) {

jarCache.remove(entry.key);

}



// . more code








--
Richard Liang
China Software Development Lab, IBM

-
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]



[classlib] is it me, or is there a problem w/ the auto fetch of msvcr71.dll?

2006-09-07 Thread Geir Magnusson Jr.

Seems like it gets a 500 and then goes to home page of dlldump.com

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] is it me, or is there a problem w/ the auto fetch of msvcr71.dll?

2006-09-07 Thread Alexey Varlamov

There is Harmony-1362 right about this...

-
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] is it me, or is there a problem w/ the auto fetch of msvcr71.dll?

2006-09-07 Thread Alexey Petrenko

The dlldump.com was down for a few days when 1362 was created. It
became up for a few days then. And now msvcr71.dll is unavailable
since yesterday.

It looks like dlldump.com has some problems.

SY, Alexey


2006/9/8, Alexey Varlamov [EMAIL PROTECTED]:

There is Harmony-1362 right about this...

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





--
Alexey A. Petrenko
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]



[classlib][luni]upgrade java.lang.Character to 5.0

2006-09-07 Thread Tony Wu

Hi all,
I have looked through the java.lang.Character and found there were several
methods missing in Harmony. I'll try to implement these methods if no one
objects :)
All of these methods are coming with Supplementary Character Support of
Tiger. That is, we should handle the character whose code point is after
U+ in our code.
After doing some research, I found there're two ways to achieve:
1.Maintain a HashMap contains the information of supplementary character and
retrieve from it when these methods were invoked.
2.Delegate these methods to ICU4J, which provides extensions to the
java.lang.Character class.

What's your opinion? Any suggestion are welcome :)
--
Tony Wu
China Software Development Lab, IBM


Re: [classlib][luni]upgrade java.lang.Character to 5.0

2006-09-07 Thread Andrew Zhang

On 9/8/06, Tony Wu [EMAIL PROTECTED] wrote:


Hi all,
I have looked through the java.lang.Character and found there were several
methods missing in Harmony. I'll try to implement these methods if no one
objects :)



Great! Go ahead!

All of these methods are coming with Supplementary Character Support of

Tiger. That is, we should handle the character whose code point is after
U+ in our code.
After doing some research, I found there're two ways to achieve:
1.Maintain a HashMap contains the information of supplementary character
and
retrieve from it when these methods were invoked.



Where does the data come from?

2.Delegate these methods to ICU4J, which provides extensions to the

java.lang.Character class.



I prefer this option, although ICU doesn't reponse very quickly. If icu4j
works well, I think there's no reason for Harmony to reinvent the wheel.

If there are some series bugs in ICU4J which may affect our goal, it's
another story.

For now, I strongly recommened you to study icu4j and take a try!  Good
luck. :-)

What's your opinion? Any suggestion are welcome :)

--
Tony Wu
China Software Development Lab, IBM





--
Andrew Zhang
China Software Development Lab, IBM


Re: [classlib][luni]upgrade java.lang.Character to 5.0

2006-09-07 Thread Robert Hu

Tony Wu 写道:

Hi all,
I have looked through the java.lang.Character and found there were 
several

methods missing in Harmony. I'll try to implement these methods if no one
objects :)
All of these methods are coming with Supplementary Character Support of
Tiger. That is, we should handle the character whose code point is after
U+ in our code.
After doing some research, I found there're two ways to achieve:
1.Maintain a HashMap contains the information of supplementary 
character and

retrieve from it when these methods were invoked.
2.Delegate these methods to ICU4J, which provides extensions to the
java.lang.Character class.

What's your opinion? Any suggestion are welcome :)
This task is to update current implementation of java.lang.Character, 
about some new feature of J2SE 5.0, it's important to reduce the risk of 
changing such a core class.
The HashMap method may introduce more complexity and more maintenance 
effort into Harmony development, so I think delegating to ICU4J is the 
better choice.
The only concern is that: does the ICU4J we currently using meet our 
need perfectly?



-
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][luni]upgrade java.lang.Character to 5.0

2006-09-07 Thread Richard Liang

On 9/8/06, Robert Hu [EMAIL PROTECTED] wrote:

Tony Wu 写道:
 Hi all,
 I have looked through the java.lang.Character and found there were
 several
 methods missing in Harmony. I'll try to implement these methods if no one
 objects :)
 All of these methods are coming with Supplementary Character Support of
 Tiger. That is, we should handle the character whose code point is after
 U+ in our code.
 After doing some research, I found there're two ways to achieve:
 1.Maintain a HashMap contains the information of supplementary
 character and
 retrieve from it when these methods were invoked.
 2.Delegate these methods to ICU4J, which provides extensions to the
 java.lang.Character class.

 What's your opinion? Any suggestion are welcome :)
This task is to update current implementation of java.lang.Character,
about some new feature of J2SE 5.0, it's important to reduce the risk of
changing such a core class.
The HashMap method may introduce more complexity and more maintenance
effort into Harmony development, so I think delegating to ICU4J is the
better choice.
The only concern is that: does the ICU4J we currently using meet our
need perfectly?


IMHO, the icu4j_3.4.4 which supports Unicode 4.1 will meet our requirement.

Best regards,
Richard




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





--
Richard Liang
China Software Development Lab, IBM

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