Re: [drlvm] Extending ‘org.vmmagic.unboxed’ package with native calls and TLS access

2006-10-11 Thread Mikhail Fursov

On 10/11/06, Rana Dasgupta [EMAIL PROTECTED] wrote:


Mikhail,

 Please see inline.

2)  How will JIT know if to use magic helpers?
 The one option is to pass cmd-line parameter, like -
 Djit.use_magic_vmhelpers=on. This option could be placed into the EM
 configuration file as any other JIT option.


 Could use both ?



Yes, all of the JIT options in EM configuration file are simple -Djit...
Java properties and could be overriden from the command line.



4)  How to detect native helper calling convention?
 We can use one of the approaches JUnit uses: a) check the prefix for
the
 method: stdcall_new(..), cdecl_new(): b) check the Java annotation for
 the
 method.
 I prefer to use approach a). But the only reason for that is that I'm
not
 sure DRLVM has interface to access to the class annotations today.
Could
 VM
 gurus correct me?


 We had discussed this elsewhere and annotations look cleaner.
Annotations should be obtainable via reflection methods
get/resolve_annotations() on the class, but Alexey V could confirm. We
could
have a default like cdecl and even use this exclusively initially, unless
you want to use a custom platform independent JIT calling convention



Ok, I'll use annotation if we support them.



 6)  Where to keep and which classloader to use to load unboxed +
 helpers
 Java code? Would it be part of the kernel classes and loaded by
bootstrap
 classloader?
 I vote leave it outside of the kernel class. But this way could cause
 security problems in future. Any other opinion?


 I did not really understand why you are recommending leaving them out
of
the boot loader set.



I changed my opinion after posting this proposal. Once VM helpers are
internals of VM we should protect them and use only boot classloader to load
them.


I'm going to implement the first helper today/tomorrow. I know that while
doing it there will more problems arise and I'll report them to discuss.

--
Mikhail Fursov


Re: [drlvm] Extending ‘org.vmmagic.unboxed’ package with native calls and TLS access

2006-10-11 Thread Weldon Washburn

Mikhail,
It all seems reasonable.  Regarding #6.  Maybe I misunderstand what you are
saying but it seems best to put the java vmhelpers in the same isolation as
other security sensitive kernel classes.


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


Mikhail,

Please see inline.

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

 All,
 We have 'org.vmmagic.unboxed' package (address arithmetic) support in
 both
 Jitrino.OPT and Jitrino.JET compilers today. So we can rewrite part of
 our
 VM helper's fast paths in Java and teach JIT compiler to inline it.
 The only thing is left to do is to get the answers to the following
 questions:

 1)  What is the default package for the fast path helpers?
 My proposal is 'org.harmony.vmhelper'.


 Sounds reasonable

2)  How will JIT know if to use magic helpers?
 The one option is to pass cmd-line parameter, like -
 Djit.use_magic_vmhelpers=on. This option could be placed into the EM
 configuration file as any other JIT option.


 Could use both ?

3)  How to call a slow native helper's version from the fast-path part of
 the helper written in Java?
 The proposal is to create package like 'org.harmony.vmhelper.native'
with
 stub methods for all native helpers. Once such a method is called from
 Java,
 JIT will replace it with a real native helper call. In this case we
need
 to
 have a mapping between magic and native helpers on JIT or VM side.


 This is a good idea. I think the VM needs to do this housekeeping,
since
it provides the stubs of regular helpers to the JIT anyway

4)  How to detect native helper calling convention?
 We can use one of the approaches JUnit uses: a) check the prefix for
the
 method: stdcall_new(..), cdecl_new(): b) check the Java annotation for
 the
 method.
 I prefer to use approach a). But the only reason for that is that I'm
not
 sure DRLVM has interface to access to the class annotations today.
Could
 VM
 gurus correct me?


 We had discussed this elsewhere and annotations look cleaner.
Annotations should be obtainable via reflection methods
get/resolve_annotations() on the class, but Alexey V could confirm. We
could
have a default like cdecl and even use this exclusively initially, unless
you want to use a custom platform independent JIT calling convention

5)  How to access to TLS data from Java?
  The last agreement was something like public static Address
  TLS.getAddress()
  method. We can put TLS class to the package with all of native VM
  helpers
  stubs (see item 3 for details)
 

 6)  Where to keep and which classloader to use to load unboxed +
 helpers
 Java code? Would it be part of the kernel classes and loaded by
bootstrap
 classloader?
 I vote leave it outside of the kernel class. But this way could cause
 security problems in future. Any other opinion?


 I did not really understand why you are recommending leaving them out
of
the boot loader set.

All of the tasks above are rather easy to implement. But we have to come
to
  the agreement before coding.
  Please, suggest your vision or ask me if something I wrote is unclear.
 
  +
  The first candidates for inlining are: allocation helpers, monitor
  helpers,
  write barriers.
  Any other ideas?
 
 

 --
 Mikhail Fursov







--
Weldon Washburn
Intel Middleware Products Division


Re: [DRLVM][JET] write barrier for Java (mmtk)

2006-10-11 Thread Weldon Washburn

Ooops.  I really tangled things up.  You are right about how we are supposed
to find the Java write barrier method.  It is located in Plan.writeBarrier().
Each GC algorithm has a Plan class that overrides the writeBarrier()
method.  I erroneously thought we could call
VM.barriers.performWriteInBarrier() directly.  This sort of, kind of breaks
MMTk architecture.  By design, each GC algorithm in MMTk is supposed to call
Plan.writeBarrier() which, in turn, will call
VM.barriers.performWriteInBarrier.

Sorry for the confusion.




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


Yes, we can run the usual inliner after helpers are inlined.
The only problem I want to notice is that once we have different helpers
for
different GCs it's a bad idea to use virtual method calls in performance
sensitive helpers. You are allowed to do it, but the better solution is to
teach the helper to use a final implementation of the Barrier and replace
the helper once the implementation of the Barrier class is changed.

On 10/11/06, Rana Dasgupta [EMAIL PROTECTED] wrote:

 Makes sense, using a standard barrier invocation fastpath. But I assume
 that
 the MMTk WB helper that it will call needs to be inlined too.

 Thanks


 On 10/10/06, Mikhail Fursov [EMAIL PROTECTED] wrote:
 
  Weldon,
   I thought about slightly different approach.
   Why not to write fast-path VM helper like was proposed in the thread
   [drlvm]Extending...
   This helper (a static method) can be inlined by JIT without any
   devirtualization and call any method needed from MMTk or native
   implementation. So JIT won't know if it works with MMTk or with a
 native
   GC:
   all you need is just to replace the Java version of the helper.
   ?
  
 
 




--
Mikhail Fursov





--
Weldon Washburn
Intel Middleware Products Division


Re: [drlvm] Extending ‘org.vmmagic.unboxed’ package with native calls and TLS access

2006-10-11 Thread Mikhail Fursov

Yes, I'm agree we should protected them (In the initial letter I was not
sure)

+ We have to divide the helpers into the groups: VM helpers, GC helpers. So
switching to the different type of GC version only GC helpers implementation
will be changed.
But this means that GC must provide some of the kernel classes. This is the
problem I think.

On 10/11/06, Weldon Washburn [EMAIL PROTECTED] wrote:


It all seems reasonable.  Regarding #6.  Maybe I misunderstand what you
are
saying but it seems best to put the java vmhelpers in the same isolation
as
other security sensitive kernel classes.




--
Mikhail Fursov


Re: [classlib][build]Lacks liblcms.a libpng.a and etc on Linux and recommend to add them to fetch-depends target

2006-10-11 Thread Mark Hindess

On 11 October 2006 at 3:14, Gregory Shimansky [EMAIL PROTECTED] wrote:
 On Monday 09 October 2006 19:54 Oliver Deakin wrote:
  I see that you already said pretty much the same thing I did on another
  thread [1].
 
  IMHO we should make sure that if the fetch-depends target finds it
  cannot sym
  link to preinstalled system libraries, then the user is clearly informed
  so they have
  the choice to install them without having the archived file versions
  unpacked. So
  perhaps the fetch-depends step should still fail with a message saying
  something like
  Could not resolve these dependencies, either build/install these
  packages manually
  or you can run this other target to have the archived versions unpacked
  into your
  dependency tree. (Hopefully a little clearer than that ;) )
 
 This sounds very much like a configure script.

Indeed, and we may well end up with one of those at some point.

 Check for installed libraries, fail if something is missing. I like it :)

I would like to be more helpful if we can.  Yesterday, I added the
details of the required packages for Fedora Core 5.  Hopefully others
will help get the instructions up dated for distributions they use.
Otherwise, I will try to add instructions for recent SLES and RHEL in
the next week or so.

 On Linux however all libraries are present in distributions (I buy you
 a beer if you name a single Linux distribution which doesn't include
 necessary development packages, knoppix not counted).

I'll get my better half to start making more room in the fridge while I
go through the list of distros at:

  http://lwn.net/Distributions/

I reckon I should get at least a six-pack just out of the embedded
section alone. ;-)

 Only Windows distribution doesn't include them, so for convenience
 windows binaries may be cached for download on harmony site.

In time I expect we'll do the same for others like MacOS X, Aix, etc.

Regards,
 Mark.





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



Re: [drlvm] VM throws NullPointerException in case java.class.path is not set

2006-10-11 Thread Evgueni Brevnov

Oliver,

HARMONY-1818 was created to track this issue. Could you attach your
test case (simple  launcher) to it?

Thanks
Evgueni

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

Absolutely.  And if not, even the principle of be kind to your users
dictates that we do something nice for them.

geir

Evgueni Brevnov wrote:
 Oliver,

 You have provided strong arguments that RI uses current directory by
 default. I think it makes sense to be compatible with RI in this
 particular case.

 Thanks
 Evgueni

 On 10/10/06, Oliver Deakin [EMAIL PROTECTED] wrote:
 I have just tried launching the RI with a simple launcher (very basic -
 CreateJavaVM(),
 finds and launches a class, then calls DestroyJavaVM()). The launcher
 does not
 set java.class.path, and executes the main method of the following class:

   public class SysInfo {
   public static void main(String[] args) {
   System.getProperties().list(System.out);
   }
   }

 The java.class.path value is printed as:

  java.class.path=

 So it appears that java.class.path property is left empty by default.
 However,
 to have found the SysInfo class, the RI must have searched in the current
 directory. I can also instantiate other classes that are located in the
 current
 directory. So although the java.class.path is set to an empty string,
 internally
 there is a default inclusion of the current directory.

 IMHO we follow the RI behaviour here, and have an implicit inclusion of
 the current directory unless the classpath is explicitly set.

 Regards,
 Oliver


 Evgueni Brevnov wrote:
  It seems for me like pretty specified VM behavior to treat classpath
  absence as take classes from current directory. At least RI does like
  that when you don't specify classpath on command line.
 
  Evgueni
 
  On 10/10/06, Mikhail Fursov [EMAIL PROTECTED] wrote:
  Another solution could be a simple shutdown with the valid error
  message.
  Sometimes the error message is better than hidden behaviour.
  So the alternative is to check all properties VM needs before running
  real
  startup and fail if some of the properties are not found.
 
 
  On 10/10/06, Evgueni Brevnov [EMAIL PROTECTED] wrote:
  
   Hi All,
  
   Currently DRLVM starts with help of the launcher. The launcher
 does a
   lot of stuff required to create VM instatnce. As a part of its
 job it
   sets up java.class.path property. And this is good. What is not good
   that DRLVM crashes (actually throws NullPointerException in
   initalization stage) if java.class.path is not set. I believe it
 makes
   sense to point java.class.path to current directory inside VM if
   launcher doesn't set it.
  
   What do u think?
  
   Thanks
   Evgueni
  
  
 -
   Terms of use : http://incubator.apache.org/harmony/mailing.html
   To unsubscribe, e-mail: [EMAIL PROTECTED]
   For additional commands, e-mail:
 [EMAIL PROTECTED]
  
  
 
 
  --
  Mikhail Fursov
 
 
 
  -
  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]


-
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] DRLVM build on Windows

2006-10-11 Thread Alexey Petrenko

2006/10/10, Salikh Zakirov [EMAIL PROTECTED]:



Alexey Petrenko wrote:
 Salikh,

 I've posted the last few lines from the output. There is no compiler call.
 And the error message is the same with the mentioned in the first letter:

Ah, I see now. The compiler was never called, and the error is likely
to be printed by cctask. It looks like some cctask issue.

By the way, grepping for the error message, I found this
http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200606.mbox/[EMAIL
 PROTECTED]
:)

Salikh,

this old instruction helped! :)
Thanks for finding it.

SY, Alexey



Some more things to check
1) Maybe you have older version of cpptasks.jar in ant/lib? - If yes, remove it
2) Maybe the version that 'build.bat update' placed to build/make/tmp is not 
1.0b4? - Download real 1.0b4 version from http://ant-contrib.sourceforge.net/
and compare with the cpptasks.jar in build/make/tmp. - If different, remove 
build/make/tmp and re-run 'build.bat update'

If this all still doesn't help, I'd say we're screwed with respect to the build 
system.



-
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][swing] test failure: javax.swing.filechooser.FileSystemViewTest.testGetSystemTypeDescription

2006-10-11 Thread Richard Liang

Hello,

The test fails on Windows XP when the locale-setting is zh_CN. It's
because that view.getSystemTypeDescription(file) returns Chinese
words 文件 instead of File.

Could any one help to verify this issue? Thanks a lot.

--
Richard Liang
China 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: [drlvm] Should the launcher print uncaught exceptions?

2006-10-11 Thread Evgueni Brevnov

Oliver,

I created https://issues.apache.org/jira/browse/HARMONY-1819 with
suggested fix. Please, look at and update it if DetachCurrentThread is
required before DestroyJavaVM for some reason.

Thanks
Evgueni

On 9/22/06, Evgueni Brevnov [EMAIL PROTECTED] wrote:

On 9/22/06, Oliver Deakin [EMAIL PROTECTED] wrote:
 Tim Ellison wrote:
  Still, it seems strange that you should have to call DetachCurrentThread
   explicitly to get this behavior.  I would have expected that
  DestroyJavaVM alone would cause the uncaught exception handler to fire.
   Not all apps that embed the VM will know to make this work-around.
 

 Yes, that surprised me too. The bug suggests that the launcher is at
 fault for calling
 ExceptionDescribe() instead of DetachCurrentThread(). However I would have
 thought that this was not necessary in the case where an exception
 handler has
 been registered, and that the handler would be called during
 DestroyJavaVM()'s
 execution.

 Perhaps this is something that could be fixed in DRLVM? So if
 DetachCurrentThread() is called, it runs any registered exception
 handlers for that
 thread as usual. However, if DestroyJavaVM is called, it makes sure that all
 exception handlers are run for every thread.


Sure, I checked both cases work fine on my implementation of
InvocationAPI for DRLVM (with DetachCurrentThread and without it). So
the launcher can choose either to detach the main thread or not...

Thanks
Evgueni

 Regards,
 Oliver

  Regards,
  Tim
 
  Oliver Deakin wrote:
 
  Evgueni Brevnov wrote:
 
  Oliver,
 
  Yes, I got the same result on RI when starting VM by your simple
  launcher. Assume it is OK not to print an error message and stacke
  trace of an unhandled exception in JavaDestroyVM(). How about calling
  uncaught exception handler? According to the spec it must be called if
  terminating thread has an exception. The test shows that the handler
  is not called when VM is created by our launcher.  But if VM is
  created by RI's launcher then everything works fine and the handler is
  executed. This means that RI's launcher somehow deals with it (not VM
  itself). It seems for me as a bug in RI. Do you think so?
 
  Hi Evgueni,
 
  I see the same thing - if I run your second Test class (the
  UncaughtExceptionHandler
  test) with my simple launcher on the RI and J9 I do not see any output.
  i.e. the MyHandler.uncaughtException() method is never called.
 
  Having a Google around I found a link to a Sun bug registered for this [1].
  All our launcher needs to do is call DetachCurrentThread() on the main
  thread before DestroyJavaVM(), and the UncaughtExceptionHandler will
  be called as expected. (This bug only occurs with exception handlers
  registered to the main thread - I verified this with [2] which has its
  non-main
  thread's exception handler called correctly)
 
  So if you add the line:
(*jvm)-DetachCurrentThread(jvm);
  to my simple launcher just before the DestroyJavaVM() call, you will see
  that the MyHandler.uncaughtException() is called for the main thread, and
  the test works as expected.
 
  This looks like it needs to be added to our launcher - do you agree?
 
  What is even more interesting is that if I run your more simple Test class
  (the one that just does 'throw new Error(my);'), with the
  DetachCurrentThread()
  call added to the simple launcher I get a stack trace printed on both RI
  and J9!
  Again it appears that this is only a problem with the main thread (if
  you alter
  [2] before so that the handler is not registered, you get the expected
  stack trace).
  So it seems that adding DetachCurrentThread to the launcher fixes both
  problems!
 
  Regards,
  Oliver
 
  [1] http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4992454
  [2]
  public class Test {
 static class MyHandler implements Thread.UncaughtExceptionHandler {
 public void uncaughtException(Thread t, Throwable e) {
 System.out.println(My Handler Called!!!);
 }
}
 
 static class MyRunnable implements Runnable {
 public void run() {
 Thread.currentThread().setUncaughtExceptionHandler(new
  MyHandler());
 throw new Error(my);
 }
 }
 
 public static void main(String [] args) {
 Thread t = new Thread(new MyRunnable());
 t.start();
 try {
 t.join();
 } catch (InterruptedException e) {
 System.out.println(Interrupted!);
 }
 }
  }
 
 
  Evgueni
 
  On 9/21/06, Oliver Deakin [EMAIL PROTECTED] wrote:
 
  Hi Evgueni,
 
  I wrote a simple launcher [1] that does the following:
  1) Calls CreateJavaVM
  2) Runs the main method of your Test class below
  3) Calls DestroyJavaVM
 
  Note that it does *not* call env-ExceptionDescribe() before destroying
  the VM.
  I tested this launcher against the RI and J9 and found that no stack
  trace or
  error details are printed.
  So I would say that it is standard behaviour for the VM not to 

RE: [classlib][swing] test failure: javax.swing.filechooser.FileSystemViewTest.testGetSystemTypeDescription

2006-10-11 Thread Ivanov, Alexey A
Hello, Richard,

I'll take a look at it. 

Thanks,
--
Alexey A. Ivanov
Intel Middleware Product Division

-Original Message-
From: Richard Liang [mailto:[EMAIL PROTECTED]
Sent: Wednesday, October 11, 2006 12:06 PM
To: harmony-dev@incubator.apache.org
Subject: [classlib][swing] test failure:
javax.swing.filechooser.FileSystemViewTest.testGetSystemTypeDescription

Hello,

The test fails on Windows XP when the locale-setting is zh_CN. It's
because that view.getSystemTypeDescription(file) returns Chinese
words 文件 instead of File.

Could any one help to verify this issue? Thanks a lot.

--
Richard Liang
China 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]



Re: [DRLVM][JET] write barrier for Java (mmtk)

2006-10-11 Thread Alex Astapchuk

Weldon,

I'm a bit confused what to call finally...

The previous WB4J version did a call to 
org/mmtk/plan/PlanLocal::writeBarrier().
The problem was with getting an instance of PlanLocal. We solved it by 
adding a stub static method PlanLocal::getPlanLocal() - just for the 
sake of testing functionality.


In the latest version (HARMONY-1806) I'm doing a call to static 
Barriers::performWriteInBarrier(). However, as long as this method is 
presented in old MMTk javadoc, I could not find it in the MMTk/ sources 
from Harmony svn.


Also, looking into MMTk/ I could not find a PlanLocal class either.
The javadoc says that writeBarrier() is only presented in xxMutator classes.

I was about to call org.mmtk.vm::barriers::writeInBarrier() but just saw 
your post.


So, now I'm a in deep thoughts on which method to call and what instance 
to use. :-)


Could please give me a clue?

--
Thanks,
  Alex


Weldon Washburn wrote:
Ooops.  I really tangled things up.  You are right about how we are 
supposed
to find the Java write barrier method.  It is located in 
Plan.writeBarrier().

Each GC algorithm has a Plan class that overrides the writeBarrier()
method.  I erroneously thought we could call
VM.barriers.performWriteInBarrier() directly.  This sort of, kind of breaks
MMTk architecture.  By design, each GC algorithm in MMTk is supposed to 
call

Plan.writeBarrier() which, in turn, will call
VM.barriers.performWriteInBarrier.

Sorry for the confusion.




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


Yes, we can run the usual inliner after helpers are inlined.
The only problem I want to notice is that once we have different helpers
for
different GCs it's a bad idea to use virtual method calls in performance
sensitive helpers. You are allowed to do it, but the better solution 
is to

teach the helper to use a final implementation of the Barrier and replace
the helper once the implementation of the Barrier class is changed.

On 10/11/06, Rana Dasgupta [EMAIL PROTECTED] wrote:

 Makes sense, using a standard barrier invocation fastpath. But I assume
 that
 the MMTk WB helper that it will call needs to be inlined too.

 Thanks


 On 10/10/06, Mikhail Fursov [EMAIL PROTECTED] wrote:
 
  Weldon,
   I thought about slightly different approach.
   Why not to write fast-path VM helper like was proposed in the 
thread

   [drlvm]Extending...
   This helper (a static method) can be inlined by JIT without any
   devirtualization and call any method needed from MMTk or native
   implementation. So JIT won't know if it works with MMTk or with a
 native
   GC:
   all you need is just to replace the Java version of the helper.
   ?
  
 
 




--
Mikhail Fursov








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



Re: [testing] test suite layout, testNG, and more

2006-10-11 Thread Andrew Zhang

On 10/9/06, Richard Liang [EMAIL PROTECTED] wrote:


On 10/9/06, Mikhail Loenko [EMAIL PROTECTED] wrote:
 What is the status of our discussions about new test suite layout?
 Long ago we decided not to move existing tests until we finish with
 that discussion but the discussion seems to be either dead or in coma

It's not dead ;-) We are waiting for the completion of j.u.concurrent
so that we could run a pilot and continue our discussion.



Looking forward to ...

btw, Harmony may also benifit from failure and rerun feature of TestNG. I
believe developers will like it!




 Does it make sense to continue putting the tests in order (according to
the old
 model) and relayout them as soon as we finish the discussion?

Yes, it does make sense. Before we draw any new conclusion about
TestNG, I suggest we follow our existing testing
conventions/guidelines.


 Thanks,
 Mikhail

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





--
Best regards,
Andrew Zhang


RE: Can't get binary to work

2006-10-11 Thread Armand Navabi
Seemed promising, but this patch did not help.  

I ran java -Xtrace helloworld to see if it even got to the patched code,
but it seems like my code hangs even before getting to that code.

I'm really not sure what my next step is to try to get the VM up and running
correctly.

Armand

-Original Message-
From: Alexey Varlamov [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, October 11, 2006 1:54 AM
To: harmony-dev@incubator.apache.org
Subject: Re: Can't get binary to work

2006/10/9, Armand Navabi [EMAIL PROTECTED]:
 Yes, I am still having problems.

 Like I said, I am just trying to run the executable currently.  I see the
 same problem I was seeing when I built the DRLVM.

 I downloaded the Latest Linux JRE snapshot build, set the JAVA_HOME, PATH
 and LD_LIBRARY_PATH environment variables and then tried to run
helloworld.
 Sometimes the executable will print hello world! and then hang, and
 sometimes it will just hang.  Same thing happens when I download and try
to
 run the Latest Linux HDK with helloworld.

Armand,

The symptoms you are describing similar to investigation results of
HARMONY-1816. It is interesting to see if the patch helps you.

[0] http://issues.apache.org/jira/browse/HARMONY-1816


 My platform is Linux Gentoo 2.6.17.8.

 Thanks,
 Armand

 -Original Message-
 From: Tim Ellison [mailto:[EMAIL PROTECTED]
 Sent: Sunday, October 08, 2006 6:57 PM
 To: harmony-dev@incubator.apache.org
 Subject: Re: Can't get binary to work

 Are you still having problems Armand?

 Tim

 Armand Navabi wrote:
  I have been unable to figure out why I can't get the drlvm to run
  helloworld.  The classlib with Intel's VM works fine.
 
 
 
  So now I thought I'd just see if I could download the binary and execute
 it
  (JRE), but it is behaving the same way (I guess this is to be expected,
 but
  I just wanted to make sure it wasn't something in the build process that
 was
  causing the trouble).
 
 
 
  When I run java by itself it executes without problem, when I run java
  helloworld it just hangs, and java -showversion will print version
info
  and then hang right after that:
 
 
 
  [EMAIL PROTECTED] /scratch/anavabi/Harmony/harmony-jre-r450941/bin $ ./java
  -showversion
 
  Apache Harmony Launcher : (c) Copyright 1991, 2006 The Apache Software
  Foundation or its licensors, as applicable.
 
  java version 1.5.0
 
  pre-alpha : not complete or compatible
 
  svn = r450941, (Sep 28 2006), Linux/ia32/gcc 3.4.6, release build
 
  http://incubator.apache.org/harmony
 
  (hangs here)
 
 
 
  Here are the environment variables that I think are relevant:
 
 
 
  LD_LIBRARY_PATH
 
 

/scratch/anavabi/Harmony/harmony-jre-r450941/bin:/scratch/anavabi/Harmony/ha
  rmony-jre-r450941/bin/default/
 
  PATH
 
 

.:/usr/local/bin:/bin:/usr/bin:/sbin:/usr/sbin:/usr/i686-pc-linux-gnu/gcc-bi
 

n/3.4.6:/opt/ICAClient:/opt/sun-jdk-1.5.0.06/bin:/opt/sun-jdk-1.5.0.06/jre/b
  in:/usr/kde/3.5/bin:/usr/qt/3/bin:/usr/games/bin:/opt/eclipse-sdk-3.2.1
 
  JAVA_HOME
 
  /scratch/anavabi/Harmony/harmony-jre-r450941/bin
 
 
 
  I'm on Gentoo 2.6.17.8.
 
  Any ideas what may be going on?
 
 
 
  Thanks,
 
  Armand
 
 

 --

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

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



 -
 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] VM throws NullPointerException in case java.class.path is not set

2006-10-11 Thread Oliver Deakin

ok, done - thanks for opening the JIRA Evgueni.

Regards,
Oliver


Evgueni Brevnov wrote:

Oliver,

HARMONY-1818 was created to track this issue. Could you attach your
test case (simple  launcher) to it?

Thanks
Evgueni

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

Absolutely.  And if not, even the principle of be kind to your users
dictates that we do something nice for them.

geir

Evgueni Brevnov wrote:
 Oliver,

 You have provided strong arguments that RI uses current directory by
 default. I think it makes sense to be compatible with RI in this
 particular case.

 Thanks
 Evgueni

 On 10/10/06, Oliver Deakin [EMAIL PROTECTED] wrote:
 I have just tried launching the RI with a simple launcher (very 
basic -

 CreateJavaVM(),
 finds and launches a class, then calls DestroyJavaVM()). The launcher
 does not
 set java.class.path, and executes the main method of the following 
class:


   public class SysInfo {
   public static void main(String[] args) {
   System.getProperties().list(System.out);
   }
   }

 The java.class.path value is printed as:

  java.class.path=

 So it appears that java.class.path property is left empty by default.
 However,
 to have found the SysInfo class, the RI must have searched in the 
current
 directory. I can also instantiate other classes that are located 
in the

 current
 directory. So although the java.class.path is set to an empty string,
 internally
 there is a default inclusion of the current directory.

 IMHO we follow the RI behaviour here, and have an implicit 
inclusion of

 the current directory unless the classpath is explicitly set.

 Regards,
 Oliver


 Evgueni Brevnov wrote:
  It seems for me like pretty specified VM behavior to treat 
classpath
  absence as take classes from current directory. At least RI does 
like

  that when you don't specify classpath on command line.
 
  Evgueni
 
  On 10/10/06, Mikhail Fursov [EMAIL PROTECTED] wrote:
  Another solution could be a simple shutdown with the valid error
  message.
  Sometimes the error message is better than hidden behaviour.
  So the alternative is to check all properties VM needs before 
running

  real
  startup and fail if some of the properties are not found.
 
 
  On 10/10/06, Evgueni Brevnov [EMAIL PROTECTED] wrote:
  
   Hi All,
  
   Currently DRLVM starts with help of the launcher. The launcher
 does a
   lot of stuff required to create VM instatnce. As a part of its
 job it
   sets up java.class.path property. And this is good. What is 
not good

   that DRLVM crashes (actually throws NullPointerException in
   initalization stage) if java.class.path is not set. I believe it
 makes
   sense to point java.class.path to current directory inside VM if
   launcher doesn't set it.
  
   What do u think?
  
   Thanks
   Evgueni
  
  
 -
   Terms of use : http://incubator.apache.org/harmony/mailing.html
   To unsubscribe, e-mail: 
[EMAIL PROTECTED]

   For additional commands, e-mail:
 [EMAIL PROTECTED]
  
  
 
 
  --
  Mikhail Fursov
 
 
 
  
-

  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]


-
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: [classlib] [tests] Can anyone explain what these are for?

2006-10-11 Thread Rui Hu

I've written a script to search all the statements like that:

#!/usr/bin/perl -w
use File::Find;
use DirHandle;
use strict;

my $dir = $ARGV[0] || die need input a dir\n;
chomp $dir;
processDir($dir);

sub processDir {

my $folder = $_[0];

my $dh = DirHandle-new($folder) || die can not open directiony: $!\n;

foreach my $f ($dh-read()) {
   next if ($f=~/^\.$|^\.\.$|^\..*$/);
   if (-d $folder\/$f){
   processDir($folder\/$f);
   }
   if ($f=~/^.*Test\.java$/){
   processFile($folder\/$f);
   }
}
}

sub processFile {
   my $f = $_[0];
   my $lineNum = 1;
 my $line=;
   open (MYFILE,$f) || die can not open file: $!\n;
   while ($line=MYFILE){
   chomp $line;
   if ($line=~/^\s*assertTrue.*true\s*\)\s*;\s*$/){
print $f:$lineNum\n;
   }
   $lineNum = $lineNum +1;
   }
}


And found 88 statements like that in current classlib, then record them in
[1].
We can check them.

[1].http://wiki.apache.org/harmony/Invalid_assertTrue


On 10/11/06, Richard Liang [EMAIL PROTECTED] wrote:


On 10/11/06, Nathan Beyer [EMAIL PROTECTED] wrote:
 Perhaps, but there are much better ways of determining that. From just
 reading the test code to code coverage tools.

 From my analysis, these were part of the large test contribution and
 indicated that there wasn't an explicit test for that method. In most
 cases, there were tests for these methods, either in other classes or
 in other methods of the class.

Nathan, I agree ;-)


 -Nathan

 On 10/10/06, Richard Liang [EMAIL PROTECTED] wrote:
  On 10/11/06, Nathan Beyer [EMAIL PROTECTED] wrote:
   I've seen a few and I've deleted any that I've come across. I would
   say feel free to delete them too. I've also been deleting empty
setup
   and teardown methods too.
 
  Please do not simply delete them. Maybe that means we are lack of the
  test for some methods, for example getInetAddress.
 
  
   -Nathan
  
   On 10/10/06, Alexey Petrenko [EMAIL PROTECTED] wrote:
These could be a result of copy/paste tests creation.
And I'm curious why it was written for the first time. :)
   
SY, Alexey
   
2006/10/10, Mark Hindess [EMAIL PROTECTED]:

 I've come across a couple of tests with things like:

 public void test_getInetAddress() {
 assertTrue(Used to test, true);
 }

 Can anyone explain why we have these?

 Regards,
  Mark.




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


   
   
--
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]
  
  
 
 
  --
  Richard Liang
  China 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 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]





--
Robert Hu
China Software Development Lab, IBM


Re: [drlvm] VM throws NullPointerException in case java.class.path is not set

2006-10-11 Thread Oliver Deakin

Geir Magnusson Jr. wrote:
Absolutely.  And if not, even the principle of be kind to your users 
dictates that we do something nice for them.


Agreed - being nice to the user where we can is a good thing! Having the
current directory on the classpath is pretty common - giving it to the
user by default costs nothing and saves them having to explicitly set it
in every launcher they write.

Regards,
Oliver



geir

Evgueni Brevnov wrote:

Oliver,

You have provided strong arguments that RI uses current directory by
default. I think it makes sense to be compatible with RI in this
particular case.

Thanks
Evgueni

On 10/10/06, Oliver Deakin [EMAIL PROTECTED] wrote:

I have just tried launching the RI with a simple launcher (very basic -
CreateJavaVM(),
finds and launches a class, then calls DestroyJavaVM()). The launcher
does not
set java.class.path, and executes the main method of the following 
class:


  public class SysInfo {
  public static void main(String[] args) {
  System.getProperties().list(System.out);
  }
  }

The java.class.path value is printed as:

 java.class.path=

So it appears that java.class.path property is left empty by default.
However,
to have found the SysInfo class, the RI must have searched in the 
current

directory. I can also instantiate other classes that are located in the
current
directory. So although the java.class.path is set to an empty string,
internally
there is a default inclusion of the current directory.

IMHO we follow the RI behaviour here, and have an implicit inclusion of
the current directory unless the classpath is explicitly set.

Regards,
Oliver


Evgueni Brevnov wrote:
 It seems for me like pretty specified VM behavior to treat classpath
 absence as take classes from current directory. At least RI does like
 that when you don't specify classpath on command line.

 Evgueni

 On 10/10/06, Mikhail Fursov [EMAIL PROTECTED] wrote:
 Another solution could be a simple shutdown with the valid error
 message.
 Sometimes the error message is better than hidden behaviour.
 So the alternative is to check all properties VM needs before 
running

 real
 startup and fail if some of the properties are not found.


 On 10/10/06, Evgueni Brevnov [EMAIL PROTECTED] wrote:
 
  Hi All,
 
  Currently DRLVM starts with help of the launcher. The launcher 
does a
  lot of stuff required to create VM instatnce. As a part of its 
job it
  sets up java.class.path property. And this is good. What is not 
good

  that DRLVM crashes (actually throws NullPointerException in
  initalization stage) if java.class.path is not set. I believe 
it makes

  sense to point java.class.path to current directory inside VM if
  launcher doesn't set it.
 
  What do u think?
 
  Thanks
  Evgueni
 
  
-

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

 
 


 --
 Mikhail Fursov



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



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




--
Oliver Deakin
IBM United Kingdom Limited


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



Re: [DRLVM][JET] write barrier for Java (mmtk)

2006-10-11 Thread Robin Garner
I think you must be looking at a fairly old version of MMTk. 
writeBarrier is an instance method of a MutatorContext (in org.mmtk.plan).


MutatorContext exists to hold unsynchronized thread-local data 
structures.  Particularly relevant to the write barrier, each mutator 
context has its own thread-local remset.  All of the mutator context 
methods of MMTk need fast access to the MMTk thread local data 
structures, which is why they are instance methods.  The other critical 
instance method of a MutatorContext is 'alloc', which also has it's 
thread-local chunk of the space(s) it allocates into.


As far as the VM is concerned, it will be calling instance methods of a 
final class.  The various classes in org.mmtk.plan.* aren't final, but 
the VM interface code is expected to wrap the currently selected plan in 
 some final class.  JikesRVM wraps the currently selected plan classes 
in a 'SelectedPlan', 'SelectedMutatorContext' etc.


As far as the VM.barriers.performWriteInBarrier() call is concerned,
the optimization required to devirtualize a call to a final method of a 
static final field shouldn't be too hard to implement.  MMTk recently 
moved away from using static methods for this part of the interface, to 
the current abstract factory, and improved the structure of the software 
significantly.  We don't want to go back!


  I erroneously thought we could call
 VM.barriers.performWriteInBarrier() directly.  This sort of, kind of 
breaks

 MMTk architecture.

well, it less 'breaks the architecture' than performs a no-op :)

-- robin

Weldon Washburn wrote:
Ooops.  I really tangled things up.  You are right about how we are 
supposed
to find the Java write barrier method.  It is located in 
Plan.writeBarrier().

Each GC algorithm has a Plan class that overrides the writeBarrier()
method.  I erroneously thought we could call
VM.barriers.performWriteInBarrier() directly.  This sort of, kind of breaks
MMTk architecture.  By design, each GC algorithm in MMTk is supposed to 
call

Plan.writeBarrier() which, in turn, will call
VM.barriers.performWriteInBarrier.

Sorry for the confusion.




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


Yes, we can run the usual inliner after helpers are inlined.
The only problem I want to notice is that once we have different helpers
for
different GCs it's a bad idea to use virtual method calls in performance
sensitive helpers. You are allowed to do it, but the better solution 
is to

teach the helper to use a final implementation of the Barrier and replace
the helper once the implementation of the Barrier class is changed.

On 10/11/06, Rana Dasgupta [EMAIL PROTECTED] wrote:

 Makes sense, using a standard barrier invocation fastpath. But I assume
 that
 the MMTk WB helper that it will call needs to be inlined too.

 Thanks


 On 10/10/06, Mikhail Fursov [EMAIL PROTECTED] wrote:
 
  Weldon,
   I thought about slightly different approach.
   Why not to write fast-path VM helper like was proposed in the 
thread

   [drlvm]Extending...
   This helper (a static method) can be inlined by JIT without any
   devirtualization and call any method needed from MMTk or native
   implementation. So JIT won't know if it works with MMTk or with a
 native
   GC:
   all you need is just to replace the Java version of the helper.
   ?
  
 
 




--
Mikhail Fursov








-
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] DRLVM build on Windows

2006-10-11 Thread Oliver Deakin

This should be listed somewhere under Gotchas while building DRLVM.
It would be useful to have these helpful tips stored for future Harmony
contributors. I see there are already some useful DRLVM docs on the
website - perhaps some kind of build troubleshooting section would
also be good?

Regards,
Oliver

Alexey Petrenko wrote:

2006/10/10, Salikh Zakirov [EMAIL PROTECTED]:



Alexey Petrenko wrote:
 Salikh,

 I've posted the last few lines from the output. There is no 
compiler call.
 And the error message is the same with the mentioned in the first 
letter:


Ah, I see now. The compiler was never called, and the error is likely
to be printed by cctask. It looks like some cctask issue.

By the way, grepping for the error message, I found this
http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200606.mbox/[EMAIL PROTECTED] 


:)

Salikh,

this old instruction helped! :)
Thanks for finding it.

SY, Alexey



Some more things to check
1) Maybe you have older version of cpptasks.jar in ant/lib? - If yes, 
remove it
2) Maybe the version that 'build.bat update' placed to build/make/tmp 
is not 1.0b4? - Download real 1.0b4 version from 
http://ant-contrib.sourceforge.net/
and compare with the cpptasks.jar in build/make/tmp. - If different, 
remove build/make/tmp and re-run 'build.bat update'


If this all still doesn't help, I'd say we're screwed with respect to 
the build system.




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



[classlib][util.prefs] Implementation should be compatible with RI

2006-10-11 Thread Elena Semukhina

Hi all,

org.apache.harmony.prefs.tests.java.util.prefs.PreferencesTest fails on some
machines when there are restrictions in access to system registry.
https://issues.apache.org/jira/browse/HARMONY-1751 describes the issue. It
looks like Harmony implementation does not follow spec for
Preferences.systemNodeForPackage(). Besides, the test is incorrect as well
because it does not expect java.util.prefs.BackingStoreException on
Preferences.childrenNames() and fails on RI.

Could anyone look into the issue?

--
Thanks,
Elena


Re: [classlib][build] Failed to build classlib on r454714

2006-10-11 Thread Alexey Varlamov

Just to assure that the fix Mark did is good - lcms1.0.12 works fine
for me, all unit tests pass on J9.

2006/10/10, Mark Hindess [EMAIL PROTECTED]:


On 10 October 2006 at 12:23, Geir Magnusson Jr. [EMAIL PROTECTED] wrote:
 Muahaha... didn't you just say this was something that never changed,
 was geological in stability, etc, etc? :)

:-) Well, yeah, and I was worried until I saw that:

a) the change to introduce this variable happened over two years ago,
and

b) my lucky guess was enough to fix it

-Mark.

 Mark Hindess wrote:
  On 10 October 2006 at 16:22, Oleg Khaschansky [EMAIL PROTECTED]
 om wrote:
  It looks like you don't have lcms.h and, probably, other lcms stuff in
  Harmony\enhanced\classlib\trunk\depends\libs\build\lcms\.
 
  I think the problem is more likely that they do have lcms but that they
  don't have the same version as everyone else.
 
  At a guess, I'd say that the version they are using doesn't have the
  cache that the cmsFLAGS_NOTCACHE flag is intended to switch off and
  that:
 
  #ifndef cmsFLAGS_NOTCACHE
  #define cmsFLAGS_NOTCACHE (0)
  #endif
 
  after the #include for lcms.h would solve the problem.
 
  But this is a complete guess.
 
  -Mark.
 
  Recently awt/swing build was enabled by default and it requires this
  dependency as well as png and jpeg.
 
  Read the instructions in
  Harmony\enhanced\classlib\trunk\depends\libs\build\README.txt.
 
  Or check the recent posts about this. E.g. the following recent thread:
  [classlib][build]Lacks liblcms.a libpng.a and etc on Linux and
  recommend to add them to fetch-depends target
 
  On 10/10/06, Pavel Ozhdikhin [EMAIL PROTECTED] wrote:
  I'm seeing the same problem.
 
  Thanks,
  Pavel
 
  On 10/10/06, Alexey Varlamov [EMAIL PROTECTED] wrote:
  Got the following compilation error (SLES 9 gcc 3.3.3):
 
   build-native:
  [exec] cc -O1 -march=pentium3 -DLINUX -D_REENTRANT
  -DIPv6_FUNCTION_SUPPORT -DHYX86  -I/e
  xport/users2/avarlamo/linux.ia32/svn-repo/classlib/deploy/include
  -I/export/users2/avarlamo/l
  inux.ia32/svn-repo/classlib/deploy/jdk/include -I. -I../shared/ -fpic
  -Icommon -I../shared//i nclude
  -I/export/users2/avarlamo/linux.ia32/svn-repo/classlib/deploy/../depends
 /
  libs/build/lc
  ms   -c -o ../shared//cmmxforms.o ../shared//cmmxforms.c
  [exec] ../shared/cmmxforms.c: In function `cmmCreateMultiprofileTran
 s
  form':
  [exec] ../shared/cmmxforms.c:150: error: `cmsFLAGS_NOTCACHE'
  undeclared (first use in th is function)
  [exec] ../shared/cmmxforms.c:150: error: (Each undeclared
  identifier is reported only on ce
  [exec] ../shared/cmmxforms.c:150: error: for each function it appear
 s
   in.)
  [exec] ../shared/cmmxforms.c:181: warning: passing arg 2 of
  `cmsSample3DGrid' from incom patible pointer type
  [exec] make: *** [../shared//cmmxforms.o] Error 1
 
  BUILD FAILED
 
  -
  Terms of use : http://incubator.apache.org/harmony/mailing.html
  To unsubscribe, e-mail: [EMAIL PROTECTED]
  For additional commands, e-mail: [EMAIL PROTECTED]
 
 
  -
  Terms of use : http://incubator.apache.org/harmony/mailing.html
  To unsubscribe, e-mail: [EMAIL PROTECTED]
  For additional commands, e-mail: [EMAIL PROTECTED]
 
 
  -
  Terms of use : http://incubator.apache.org/harmony/mailing.html
  To unsubscribe, e-mail: [EMAIL PROTECTED]
  For additional commands, e-mail: [EMAIL PROTECTED]
 
 
 
 
  -
  Terms of use : http://incubator.apache.org/harmony/mailing.html
  To unsubscribe, e-mail: [EMAIL PROTECTED]
  For additional commands, e-mail: [EMAIL PROTECTED]
 

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




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




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



Re: [classlib][build] Failed to build classlib on r454714

2006-10-11 Thread Pavel Ozhdikhin

Thanks, Alexey! I though I need to install a newer lcms - now I'm
happy to live with that.

-Pavel

On 10/11/06, Alexey Varlamov [EMAIL PROTECTED] wrote:

Just to assure that the fix Mark did is good - lcms1.0.12 works fine
for me, all unit tests pass on J9.

2006/10/10, Mark Hindess [EMAIL PROTECTED]:

 On 10 October 2006 at 12:23, Geir Magnusson Jr. [EMAIL PROTECTED] wrote:
  Muahaha... didn't you just say this was something that never changed,
  was geological in stability, etc, etc? :)

 :-) Well, yeah, and I was worried until I saw that:

 a) the change to introduce this variable happened over two years ago,
 and

 b) my lucky guess was enough to fix it

 -Mark.

  Mark Hindess wrote:
   On 10 October 2006 at 16:22, Oleg Khaschansky [EMAIL PROTECTED]
  om wrote:
   It looks like you don't have lcms.h and, probably, other lcms stuff in
   Harmony\enhanced\classlib\trunk\depends\libs\build\lcms\.
  
   I think the problem is more likely that they do have lcms but that they
   don't have the same version as everyone else.
  
   At a guess, I'd say that the version they are using doesn't have the
   cache that the cmsFLAGS_NOTCACHE flag is intended to switch off and
   that:
  
   #ifndef cmsFLAGS_NOTCACHE
   #define cmsFLAGS_NOTCACHE (0)
   #endif
  
   after the #include for lcms.h would solve the problem.
  
   But this is a complete guess.
  
   -Mark.
  
   Recently awt/swing build was enabled by default and it requires this
   dependency as well as png and jpeg.
  
   Read the instructions in
   Harmony\enhanced\classlib\trunk\depends\libs\build\README.txt.
  
   Or check the recent posts about this. E.g. the following recent thread:
   [classlib][build]Lacks liblcms.a libpng.a and etc on Linux and
   recommend to add them to fetch-depends target
  
   On 10/10/06, Pavel Ozhdikhin [EMAIL PROTECTED] wrote:
   I'm seeing the same problem.
  
   Thanks,
   Pavel
  
   On 10/10/06, Alexey Varlamov [EMAIL PROTECTED] wrote:
   Got the following compilation error (SLES 9 gcc 3.3.3):
  
build-native:
   [exec] cc -O1 -march=pentium3 -DLINUX -D_REENTRANT
   -DIPv6_FUNCTION_SUPPORT -DHYX86  -I/e
   xport/users2/avarlamo/linux.ia32/svn-repo/classlib/deploy/include
   -I/export/users2/avarlamo/l
   inux.ia32/svn-repo/classlib/deploy/jdk/include -I. -I../shared/ -fpic
   -Icommon -I../shared//i nclude
   
-I/export/users2/avarlamo/linux.ia32/svn-repo/classlib/deploy/../depends
  /
   libs/build/lc
   ms   -c -o ../shared//cmmxforms.o ../shared//cmmxforms.c
   [exec] ../shared/cmmxforms.c: In function 
`cmmCreateMultiprofileTran
  s
   form':
   [exec] ../shared/cmmxforms.c:150: error: `cmsFLAGS_NOTCACHE'
   undeclared (first use in th is function)
   [exec] ../shared/cmmxforms.c:150: error: (Each undeclared
   identifier is reported only on ce
   [exec] ../shared/cmmxforms.c:150: error: for each function it 
appear
  s
in.)
   [exec] ../shared/cmmxforms.c:181: warning: passing arg 2 of
   `cmsSample3DGrid' from incom patible pointer type
   [exec] make: *** [../shared//cmmxforms.o] Error 1
  
   BUILD FAILED
  
   -
   Terms of use : http://incubator.apache.org/harmony/mailing.html
   To unsubscribe, e-mail: [EMAIL PROTECTED]
   For additional commands, e-mail: [EMAIL PROTECTED]
  
  
   -
   Terms of use : http://incubator.apache.org/harmony/mailing.html
   To unsubscribe, e-mail: [EMAIL PROTECTED]
   For additional commands, e-mail: [EMAIL PROTECTED]
  
  
   -
   Terms of use : http://incubator.apache.org/harmony/mailing.html
   To unsubscribe, e-mail: [EMAIL PROTECTED]
   For additional commands, e-mail: [EMAIL PROTECTED]
  
  
  
  
   -
   Terms of use : http://incubator.apache.org/harmony/mailing.html
   To unsubscribe, e-mail: [EMAIL PROTECTED]
   For additional commands, e-mail: [EMAIL PROTECTED]
  
 
  -
  Terms of use : http://incubator.apache.org/harmony/mailing.html
  To unsubscribe, e-mail: [EMAIL PROTECTED]
  For additional commands, e-mail: [EMAIL PROTECTED]
 



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



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

Re: [build] DRLVM build on Windows

2006-10-11 Thread Salikh Zakirov
Oliver Deakin wrote:
 This should be listed somewhere under Gotchas while building DRLVM.
 It would be useful to have these helpful tips stored for future Harmony
 contributors. I see there are already some useful DRLVM docs on the
 website - perhaps some kind of build troubleshooting section would
 also be good?

I've started a wiki page DRLVM Build Troubleshooting to collect such recipes.

http://wiki.apache.org/harmony/DrlvmBuildTroubleshooting


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



Re: [classlib][build]Lacks liblcms.a libpng.a and etc on Linux and recommend to add them to fetch-depends target

2006-10-11 Thread Oliver Deakin

Mark Hindess wrote:

On 11 October 2006 at 3:14, Gregory Shimansky [EMAIL PROTECTED] wrote:
  

On Monday 09 October 2006 19:54 Oliver Deakin wrote:


I see that you already said pretty much the same thing I did on another
thread [1].

IMHO we should make sure that if the fetch-depends target finds it
cannot sym
link to preinstalled system libraries, then the user is clearly informed
so they have
the choice to install them without having the archived file versions
unpacked. So
perhaps the fetch-depends step should still fail with a message saying
something like
Could not resolve these dependencies, either build/install these
packages manually
or you can run this other target to have the archived versions unpacked
into your
dependency tree. (Hopefully a little clearer than that ;) )
  

This sounds very much like a configure script.



Indeed, and we may well end up with one of those at some point.

  

Check for installed libraries, fail if something is missing. I like it :)



I would like to be more helpful if we can.  Yesterday, I added the
details of the required packages for Fedora Core 5.  Hopefully others
will help get the instructions up dated for distributions they use.
Otherwise, I will try to add instructions for recent SLES and RHEL in
the next week or so.
  


Thanks for doing that Mark.

  

On Linux however all libraries are present in distributions (I buy you
a beer if you name a single Linux distribution which doesn't include
necessary development packages, knoppix not counted).



I'll get my better half to start making more room in the fridge while I
go through the list of distros at:

  http://lwn.net/Distributions/

I reckon I should get at least a six-pack just out of the embedded
section alone. ;-)
  


Not if I get there first - thanks for the link ;)

  

Only Windows distribution doesn't include them, so for convenience
windows binaries may be cached for download on harmony site.



In time I expect we'll do the same for others like MacOS X, Aix, etc.
  


Yes, agreed - we should use the system libraries where possible as a 
first choice, and
supply instructions for getting the required packages for those who 
havnt already got
them. For OSes that do not distribute these libraries, we should provide 
precompiled
binaries where possible, or at least some instructions on where to go 
get them.


Regards,
Oliver


Regards,
 Mark.





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


  


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



[drlvm] The first GC helper with fast-path implemented in Java: gc_alloc

2006-10-11 Thread Mikhail Fursov

GC, VM gurus!
I need your help in implementation of the first our helper written with
magic.
I've started with GCv41 allocation helper for objects.
Please review the way I'm going to implement it and correct me if I have
misunderstood something or confirm if everything is OK.


The native fast path:

Managed_Object_Handle gc_alloc_fast(unsigned in_size,  Allocation_Handle ah,
void *thread_pointer) {
C1.assert((in_size % GC_OBJECT_ALIGNMENT) == 0);
C2.assert (ah);
C3.unsigned char *next;

C4.GC_Thread_Info *info = (GC_Thread_Info *) thread_pointer;
C5.Partial_Reveal_VTable *vtable = ah_to_vtable(ah);
C6.GC_VTable_Info *gcvt = vtable-get_gcvt();
C7.unsigned char *cleaned = info-tls_current_cleaned;
C8.unsigned char *res = info-tls_current_free;

C9.if (res + in_size = cleaned) {
C10.if (gcvt-is_finalizible()) return 0;

C11.info-tls_current_free =  res + in_size;
C12.*(VT32*)res = ah;

C13.assert(((POINTER_SIZE_INT)res  (GC_OBJECT_ALIGNMENT - 1)) ==
0);
C14.return res;
C15.}

C16.if (gcvt-is_finalizible()) return 0;

C17.unsigned char *ceiling = info-tls_current_ceiling;


C18.if (res + in_size = ceiling) {

C19.info-tls_current_free = next = info-tls_current_free +
in_size;

   // cleaning required
C20.unsigned char *cleaned_new = next +
THREAD_LOCAL_CLEANED_AREA_SIZE;
C21.if (cleaned_new  ceiling) cleaned_new = ceiling;
C22.info-tls_current_cleaned = cleaned_new;
C23.memset(cleaned, 0, cleaned_new - cleaned);
C24.*(VT32*)res = ah;

C25.assert(((POINTER_SIZE_INT)res  (GC_OBJECT_ALIGNMENT - 1)) ==
0);
C26.return res;
C27.}

C28.return 0;
}



The helper's code:

public static Object gc_alloc(int objSize, int allocationHandle) {

J1.Address tlsAddr = TLS.getGCThreadLocal();

J2.Address tlsCurrentFreeFieldAddr = tlsAddr.plus
(TLS_CURRENT_FREE_OFFSET);
J3.Address tlsCurrentCleanedFieldAddr = tlsAddr.plus
(TLS_CURRENT_CLEANED_OFFSET);

J4.Address tlsCurrentFreeAddr = tlsCurrentFreeFieldAddr.loadAddress();
J5.Address tlsCurrentCleanedAddr =
tlsCurrentCleanedFieldAddr.loadAddress();

J6.Address tlsNewFreeAddr = tlsCurrentFreeAddr.plus(objSize);

 // the fast path without cleaning
J7.if (tlsNewFreeAddr.LE(tlsCurrentCleanedAddr)) {
J8.tlsCurrentFreeFieldAddr.store(tlsNewFreeAddr);
J9.tlsCurrentFreeAddr.store(allocationHandle);
J10.return tlsCurrentFreeAddr;
J11.}

J12.Address tlsCurrentCeilingFieldAddr = tlsAddr.plus
(TLS_CURRENT_CEILING_OFFSET);
J13.Address tlsCurrentCeilingAddr =
tlsCurrentCeilingFieldAddr.loadAddress();

   // the fast path with cleaning
J14.   if (tlsNewCurrentFreeAddr.LE(tlsCurrentCeilingAddr)) {
J15.   Address tlsNewCleanedAddr = tlsCurrentCeilingAddr;
J16.   if (tlsCurrentCeilingAddr.diff(tlsNewFreeAddr) 
THREAD_LOCAL_CLEANED_AREA_SIZE) {
J17.   Address tlsCleanedNew = tlsNewFreeAddr.plus
(THREAD_LOCAL_CLEANED_AREA_SIZE);
J18.   }
J19.   int bytesToClean = tlsNewCleanedAddr.diff(tlsNewFreeAddr);
J20.   org.apache.harmony.vmhelper.native.Utils.memset(tlsNewFreeAddr,
bytesToClean, 0);
J21.   tlsCurrentCleanedFieldAddr.store(tlsNewCleanedAddr);

J22.   tlsCurrentFreeFieldAddr.store(tlsNewFreeAddr);
J23.   tlsCurrentFreeAddr.store(allocationHandle);
J24.   return tlsCurrentFreeAddr;

}

   //the slow path
   //this call will be replaced by JIT with direct native call as VM
magic
   org.apache.harmony.vmhelper.native.DRLVMHelper.gc_alloc(objSize,
allocationHandle);

}


The problems I see:

1) The problem: GC helper must know GC_Thread_Info struct offsets.

2) The problem: Where to keep GC magic code? This code is GC specific and
must be available for bootstrap classloader.
JIT can know all the details which magic code to inline (the helper type,
the helper signature) from its properties (see opt.emconf file for example)

3) The problem: Is the signature for gc_alloc method : gc_alloc(int objSize,
int allocationHandle) is universal for all GCs?
I think it's not. But we can extend JIT with different signatures support if
needed.

4) The new magic method is proposed, line J21:
org.apache.harmony.vmhelper.native.Utils.memset(tlsNewFreeAddr,
bytesToClean, 0);

5) The magic code in does not contain 'finalizable' check.
JIT can do this check during the compilation and do not generate the fast
path. This is another option to pass to JIT from GC.

I've enumerated the lines in code if you want to comment it.
Please feel free to review the code and to discuss any other problems I
missed.

--
Mikhail Fursov


Re: [drlvm] Should the launcher print uncaught exceptions?

2006-10-11 Thread Nikolay Kuznetsov

I have a quick note about detaching current thread. I've filled
HARMONY-1816 issue about counting non daemon threads. And concerning
DetachCurrentThread we should either detach it or rewrite
wait_for_all_nondaemon threads to take into account the fact that main
thread is also non daemon.

Nik.
On 10/11/06, Evgueni Brevnov [EMAIL PROTECTED] wrote:

Oliver,

I created https://issues.apache.org/jira/browse/HARMONY-1819 with
suggested fix. Please, look at and update it if DetachCurrentThread is
required before DestroyJavaVM for some reason.

Thanks
Evgueni

On 9/22/06, Evgueni Brevnov [EMAIL PROTECTED] wrote:
 On 9/22/06, Oliver Deakin [EMAIL PROTECTED] wrote:
  Tim Ellison wrote:
   Still, it seems strange that you should have to call DetachCurrentThread
explicitly to get this behavior.  I would have expected that
   DestroyJavaVM alone would cause the uncaught exception handler to fire.
Not all apps that embed the VM will know to make this work-around.
  
 
  Yes, that surprised me too. The bug suggests that the launcher is at
  fault for calling
  ExceptionDescribe() instead of DetachCurrentThread(). However I would have
  thought that this was not necessary in the case where an exception
  handler has
  been registered, and that the handler would be called during
  DestroyJavaVM()'s
  execution.
 
  Perhaps this is something that could be fixed in DRLVM? So if
  DetachCurrentThread() is called, it runs any registered exception
  handlers for that
  thread as usual. However, if DestroyJavaVM is called, it makes sure that all
  exception handlers are run for every thread.
 

 Sure, I checked both cases work fine on my implementation of
 InvocationAPI for DRLVM (with DetachCurrentThread and without it). So
 the launcher can choose either to detach the main thread or not...

 Thanks
 Evgueni

  Regards,
  Oliver
 
   Regards,
   Tim
  
   Oliver Deakin wrote:
  
   Evgueni Brevnov wrote:
  
   Oliver,
  
   Yes, I got the same result on RI when starting VM by your simple
   launcher. Assume it is OK not to print an error message and stacke
   trace of an unhandled exception in JavaDestroyVM(). How about calling
   uncaught exception handler? According to the spec it must be called if
   terminating thread has an exception. The test shows that the handler
   is not called when VM is created by our launcher.  But if VM is
   created by RI's launcher then everything works fine and the handler is
   executed. This means that RI's launcher somehow deals with it (not VM
   itself). It seems for me as a bug in RI. Do you think so?
  
   Hi Evgueni,
  
   I see the same thing - if I run your second Test class (the
   UncaughtExceptionHandler
   test) with my simple launcher on the RI and J9 I do not see any output.
   i.e. the MyHandler.uncaughtException() method is never called.
  
   Having a Google around I found a link to a Sun bug registered for this 
[1].
   All our launcher needs to do is call DetachCurrentThread() on the main
   thread before DestroyJavaVM(), and the UncaughtExceptionHandler will
   be called as expected. (This bug only occurs with exception handlers
   registered to the main thread - I verified this with [2] which has its
   non-main
   thread's exception handler called correctly)
  
   So if you add the line:
 (*jvm)-DetachCurrentThread(jvm);
   to my simple launcher just before the DestroyJavaVM() call, you will see
   that the MyHandler.uncaughtException() is called for the main thread, and
   the test works as expected.
  
   This looks like it needs to be added to our launcher - do you agree?
  
   What is even more interesting is that if I run your more simple Test 
class
   (the one that just does 'throw new Error(my);'), with the
   DetachCurrentThread()
   call added to the simple launcher I get a stack trace printed on both RI
   and J9!
   Again it appears that this is only a problem with the main thread (if
   you alter
   [2] before so that the handler is not registered, you get the expected
   stack trace).
   So it seems that adding DetachCurrentThread to the launcher fixes both
   problems!
  
   Regards,
   Oliver
  
   [1] http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4992454
   [2]
   public class Test {
  static class MyHandler implements Thread.UncaughtExceptionHandler {
  public void uncaughtException(Thread t, Throwable e) {
  System.out.println(My Handler Called!!!);
  }
 }
  
  static class MyRunnable implements Runnable {
  public void run() {
  Thread.currentThread().setUncaughtExceptionHandler(new
   MyHandler());
  throw new Error(my);
  }
  }
  
  public static void main(String [] args) {
  Thread t = new Thread(new MyRunnable());
  t.start();
  try {
  t.join();
  } catch (InterruptedException e) {
  System.out.println(Interrupted!);
  }
  }
   }
  
  
   Evgueni
  
   On 9/21/06, Oliver 

Re: [drlvm][unit tests] the goal is to achieve 100% pass rate

2006-10-11 Thread Mikhail Loenko

2006/10/11, Elena Semukhina [EMAIL PROTECTED]:

Hello all,

I think that the goal of running classlib unit tests on DRLVM with 100% pass
rate could be worth to achieve.


+1

and we will have better pre-commit tests for VM


Actually today we have 99% (without

awt/swing) but still have about 30 failures/errors. Most of them have been
evaluated and corresponding JIRAs filed. There is a page on Harmony Wiki
which lists those JIRA issues:

http://wiki.apache.org/harmony/Unit_Tests_Pass_on_DRLVM


I started to look at some of them.

Thanks,
Mikhail



Are there any volunteers to help with DRLVM bugs fixing?

Thanks,
Elena




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



Re: [classlib][build] Failed to build classlib on r454714

2006-10-11 Thread Oleg Khaschansky

You probably mean Windows version of lcms.

There's the same code for linux and for windows in the lcmm native
library, which glues lcms library with awt. As far as I recall, with
1.15 it will compile but fail on the first invocation at runtime (when
the color conversion will occur). It wasn't tested with the older
versions of lcms also. That's why 1.14 is the best choice.


I though I need to install a newer lcms - now I'm
happy to live with that.

Yes, it compiles, may work and may not. There are no unit tests for
the color conversion.


No statements on required version for Linux.

Right, the readme was modified before the contribution and it seems
like this requirement was removed. Nothing changed in the code AFAIK,
so 1.14 is still the best choice. I believe that it may compile with
other versions (and, probably, that's why the 1.14 requirement was
removed) but will it fail at runtime or not is unclear for the older
ones.

On 10/11/06, Pavel Ozhdikhin [EMAIL PROTECTED] wrote:

Thanks, Alexey! I though I need to install a newer lcms - now I'm
happy to live with that.

-Pavel

On 10/11/06, Alexey Varlamov [EMAIL PROTECTED] wrote:
 Just to assure that the fix Mark did is good - lcms1.0.12 works fine
 for me, all unit tests pass on J9.

 2006/10/10, Mark Hindess [EMAIL PROTECTED]:
 
  On 10 October 2006 at 12:23, Geir Magnusson Jr. [EMAIL PROTECTED] wrote:
   Muahaha... didn't you just say this was something that never changed,
   was geological in stability, etc, etc? :)
 
  :-) Well, yeah, and I was worried until I saw that:
 
  a) the change to introduce this variable happened over two years ago,
  and
 
  b) my lucky guess was enough to fix it
 
  -Mark.
 
   Mark Hindess wrote:
On 10 October 2006 at 16:22, Oleg Khaschansky [EMAIL PROTECTED]
   om wrote:
It looks like you don't have lcms.h and, probably, other lcms stuff in
Harmony\enhanced\classlib\trunk\depends\libs\build\lcms\.
   
I think the problem is more likely that they do have lcms but that they
don't have the same version as everyone else.
   
At a guess, I'd say that the version they are using doesn't have the
cache that the cmsFLAGS_NOTCACHE flag is intended to switch off and
that:
   
#ifndef cmsFLAGS_NOTCACHE
#define cmsFLAGS_NOTCACHE (0)
#endif
   
after the #include for lcms.h would solve the problem.
   
But this is a complete guess.
   
-Mark.
   
Recently awt/swing build was enabled by default and it requires this
dependency as well as png and jpeg.
   
Read the instructions in
Harmony\enhanced\classlib\trunk\depends\libs\build\README.txt.
   
Or check the recent posts about this. E.g. the following recent thread:
[classlib][build]Lacks liblcms.a libpng.a and etc on Linux and
recommend to add them to fetch-depends target
   
On 10/10/06, Pavel Ozhdikhin [EMAIL PROTECTED] wrote:
I'm seeing the same problem.
   
Thanks,
Pavel
   
On 10/10/06, Alexey Varlamov [EMAIL PROTECTED] wrote:
Got the following compilation error (SLES 9 gcc 3.3.3):
   
 build-native:
[exec] cc -O1 -march=pentium3 -DLINUX -D_REENTRANT
-DIPv6_FUNCTION_SUPPORT -DHYX86  -I/e
xport/users2/avarlamo/linux.ia32/svn-repo/classlib/deploy/include
-I/export/users2/avarlamo/l
inux.ia32/svn-repo/classlib/deploy/jdk/include -I. -I../shared/ -fpic
-Icommon -I../shared//i nclude

-I/export/users2/avarlamo/linux.ia32/svn-repo/classlib/deploy/../depends
   /
libs/build/lc
ms   -c -o ../shared//cmmxforms.o ../shared//cmmxforms.c
[exec] ../shared/cmmxforms.c: In function 
`cmmCreateMultiprofileTran
   s
form':
[exec] ../shared/cmmxforms.c:150: error: `cmsFLAGS_NOTCACHE'
undeclared (first use in th is function)
[exec] ../shared/cmmxforms.c:150: error: (Each undeclared
identifier is reported only on ce
[exec] ../shared/cmmxforms.c:150: error: for each function it 
appear
   s
 in.)
[exec] ../shared/cmmxforms.c:181: warning: passing arg 2 of
`cmsSample3DGrid' from incom patible pointer type
[exec] make: *** [../shared//cmmxforms.o] Error 1
   
BUILD FAILED
   
-
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] DRLVM build on Windows

2006-10-11 Thread Alexey Petrenko

Salikh,

I've changed that page a little. According my own experience :)

SY, Alexey

2006/10/11, Salikh Zakirov [EMAIL PROTECTED]:

Oliver Deakin wrote:
 This should be listed somewhere under Gotchas while building DRLVM.
 It would be useful to have these helpful tips stored for future Harmony
 contributors. I see there are already some useful DRLVM docs on the
 website - perhaps some kind of build troubleshooting section would
 also be good?

I've started a wiki page DRLVM Build Troubleshooting to collect such recipes.

http://wiki.apache.org/harmony/DrlvmBuildTroubleshooting


-
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: [jira] Commented: (HARMONY-1670) [classlib][luni] invalid testcase in ClassTest

2006-10-11 Thread Mikhail Loenko

Hi Alexei

I'm sorry I comlpetely don't understand your comment (as well as a
number of similar comments in other JIRAs)

Thanks,
Mikhail

2006/10/7, Alexei Fedotov (JIRA) [EMAIL PROTECTED]:

   [ 
http://issues.apache.org/jira/browse/HARMONY-1670?page=comments#action_12440591 
]

Alexei Fedotov commented on HARMONY-1670:
-

[drlvm][unit] Blocks http://wiki.apache.org/harmony/Unit_Tests_Pass_on_DRLVM

This is a low risk test fix.

 [classlib][luni] invalid testcase in ClassTest
 --

 Key: HARMONY-1670
 URL: http://issues.apache.org/jira/browse/HARMONY-1670
 Project: Harmony
  Issue Type: Bug
  Components: Classlib
Reporter: Alexey Varlamov
Priority: Trivial
 Attachments: H-1670.patch


 The test_getDeclaredMethodLjava_lang_String$Ljava_lang_Class of 
modules/luni/src/test/java/org/apache/harmony/luni/tests/java/lang/ClassTest.java
 checks if IllegalAccessException is thrown during invokation of private 
method of inner class. This is bad due to:
 1) the check is invalid, see HARMONY-1309 for details;
 2) The ClassTest is not appropriate for testing reflection, and this is 
already covered in j.l.reflect.* tests.

--
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: [jira] Commented: (HARMONY-1670) [classlib][luni] invalid testcase in ClassTest

2006-10-11 Thread Alexey Varlamov

2006/10/11, Mikhail Loenko [EMAIL PROTECTED]:

Hi Alexei

I'm sorry I comlpetely don't understand your comment (as well as a
number of similar comments in other JIRAs)


Hi Mikhail,
I'll be happy to clarify. Please tell me which part is not clear? Is
it my English or smth else?

--
Regards, Alexey



Thanks,
Mikhail

2006/10/7, Alexei Fedotov (JIRA) [EMAIL PROTECTED]:
[ 
http://issues.apache.org/jira/browse/HARMONY-1670?page=comments#action_12440591 ]

 Alexei Fedotov commented on HARMONY-1670:
 -

 [drlvm][unit] Blocks http://wiki.apache.org/harmony/Unit_Tests_Pass_on_DRLVM

 This is a low risk test fix.

  [classlib][luni] invalid testcase in ClassTest
  --
 
  Key: HARMONY-1670
  URL: http://issues.apache.org/jira/browse/HARMONY-1670
  Project: Harmony
   Issue Type: Bug
   Components: Classlib
 Reporter: Alexey Varlamov
 Priority: Trivial
  Attachments: H-1670.patch
 
 
  The test_getDeclaredMethodLjava_lang_String$Ljava_lang_Class of 
modules/luni/src/test/java/org/apache/harmony/luni/tests/java/lang/ClassTest.java
  checks if IllegalAccessException is thrown during invokation of private 
method of inner class. This is bad due to:
  1) the check is invalid, see HARMONY-1309 for details;
  2) The ClassTest is not appropriate for testing reflection, and this is 
already covered in j.l.reflect.* tests.

 --
 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] Using latest linux snapshot[hdk]...

2006-10-11 Thread Ilya Okomin

On 10/11/06, Gregory Shimansky [EMAIL PROTECTED] wrote:


On Tuesday 10 October 2006 13:02 Ilya Okomin wrote:
 On 10/9/06, Geir Magnusson Jr. [EMAIL PROTECTED] wrote:
  Yeah, I would have been surprised it that worked.
 
  Why not just install v 6?

 I have libstdc++.so.6 on my system.
 Nevertheless I have the same results as Dmitry described:

 bash-2.05b$ ./java -version
 Apache Harmony Launcher : (c) Copyright 1991, 2006 The Apache Software
 Foundation or its licensors, as applicable.
 Failed to open JVM DLL:
 /work/Harmony/builds/harmony-jre-latest/bin/default/harmonyvm
 (/lib/ssa/libstdc++.so.6: version `GLIBCXX_3.4' not found (required by
 /work/Harmony/builds/harmony-jre-latest/bin/default/libharmonyvm.so))

 I used harmony-jre-r450941 snapshot.
 Should I do anything else to resolve this issue?

It is probably because your custom libstdc++ is still compiled against an
older glibc version of your distribution. Geir uses more modern version.
Can
you run /lib/libc.so.6 and show the output?



You've asked about libc.so.6 output, here it is:

GNU C Library stable release version 2.3.2, by Roland McGrath et al.
Copyright (C) 2003 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Compiled by GNU CC version 3.2.3 20030502 (Red Hat Linux 3.2.3-53).
Compiled on a Linux 2.4.20 system on 2005-09-16.
Available extensions:
   GNU libio by Per Bothner
   crypt add-on version 2.1 by Michael Glad and others
   linuxthreads-0.10 by Xavier Leroy
   The C stubs add-on version 2.1.2.
   BIND-8.2.3-T5B
   NIS(YP)/NIS+ NSS modules 0.19 by Thorsten Kukuk
   Glibc-2.0 compatibility add-on by Cristian Gafton
   libthread_db work sponsored by Alpha Processor Inc
Thread-local storage support included.
For bug reporting instructions, please see:
http://www.gnu.org/software/libc/bugs.html.

I hope this information will clear some questions.

Note: everything fine if I use drlvm built from drlvm trunk.

Thanks,
Ilya.



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





--
--
Ilya Okomin
Intel Middleware Products Division


Re: [drlvm] smoke test : gc PhantomReferenceQueueTest is really unstable

2006-10-11 Thread Salikh Zakirov
Gregory Shimansky wrote:
 On Monday 09 October 2006 21:01 Pavel Pervov wrote:
 Geir, all,
 I did reserched this failure some time ago. The same failure was observed
 on gc.Finalizers.
 Here is what I've found.

 Now what is happening:
 1)   FinalizerThread is being run
 2)   java/lang/Object.notify()V is being compiled
 3)   java/lang/InternalError is being resolved (and loaded) for
 java/lang/Object
 4)   GC happens while creating instance of java/lang/Class for
 java/lang/InternalError
 5)   vm_hint_finalize happens
 6)   java/lang/ref/ReferenceQueue.enqueue is being called
 7)   java/lang/Object.notify()V is being compiled
 8)   java/lang/InternalError is being resolved (and loaded) for
 java/lang/Object
 9)   ClassCircularityError occurs for java/lang/InternalError
 10)   VM returns to step (3)
 11)   Assertion happens in SuccessLoadingClass for java/lang/InternalError
 as LoadingClass instance for this class was removed on step (9)

 It can be tried to fix it in class loading, but I can imagine only one
 generic solution for this problem: do not run Java while compiling.

I believe the real root cause is running java code from vm_hint_finalize().
A possible solution would be:

- rewrite vm_hint_finalize() to just run 'notify' operation, without calling 
any real java code
- handle reference queue in the finalizer thread instead of enqueuing it 
directly from vm_hint_finalize() thread


-
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] Commented: (HARMONY-1670) [classlib][luni] invalid testcase in ClassTest

2006-10-11 Thread Fedotov, Alexei A
Mikhail,

I already got several personal feedbacks about these comments. I accept
that they are not good. 

I tried to express an idea that JIRAs marked with this comment prevent
getting 100% pass rate on DRLVM. When I search for
Unit_Tests_Pass_on_DRLVM in comments I will get a list of bugs to fix.

Any suggestions how the comment should like? My only requirement is to
keep Unit_Tests_Pass_on_DRLVM lexem in this comment.

With best regards,
Alexei Fedotov,
Intel Middleware Products Division

-Original Message-
From: Mikhail Loenko [mailto:[EMAIL PROTECTED]
Sent: Wednesday, October 11, 2006 2:37 PM
To: harmony-dev@incubator.apache.org
Subject: Re: [jira] Commented: (HARMONY-1670) [classlib][luni] invalid
testcase in ClassTest

Hi Alexei

I'm sorry I comlpetely don't understand your comment (as well as a
number of similar comments in other JIRAs)

Thanks,
Mikhail

2006/10/7, Alexei Fedotov (JIRA) [EMAIL PROTECTED]:
[ http://issues.apache.org/jira/browse/HARMONY-
1670?page=comments#action_12440591 ]

 Alexei Fedotov commented on HARMONY-1670:
 -

 [drlvm][unit] Blocks
http://wiki.apache.org/harmony/Unit_Tests_Pass_on_DRLVM

 This is a low risk test fix.

  [classlib][luni] invalid testcase in ClassTest
  --
 
  Key: HARMONY-1670
  URL:
http://issues.apache.org/jira/browse/HARMONY-1670
  Project: Harmony
   Issue Type: Bug
   Components: Classlib
 Reporter: Alexey Varlamov
 Priority: Trivial
  Attachments: H-1670.patch
 
 
  The test_getDeclaredMethodLjava_lang_String$Ljava_lang_Class of
modules/luni/src/test/java/org/apache/harmony/luni/tests/java/lang/Clas
sTes
t.java
  checks if IllegalAccessException is thrown during invokation of
private
method of inner class. This is bad due to:
  1) the check is invalid, see HARMONY-1309 for details;
  2) The ClassTest is not appropriate for testing reflection, and
this is
already covered in j.l.reflect.* tests.

 --
 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: [classlib] [tests] Can anyone explain what these are for?

2006-10-11 Thread Alexei Zakharov

Some tests for beans contained the code like this:

---
public void testGetArguments() {
   // Covered in the testcases for the constructor
}

public void testGetMethodName() {
   // Covered in the testcases for the constructor
}
---

I just commented it out. I could simply delete it but decided that we
may need it in the future. When we finish with 1.5 and everybody will
have a lot of free time - we can get back to it and think again: do we
need to insert an additional test case here?

Regards,



2006/10/11, Richard Liang [EMAIL PROTECTED]:

On 10/11/06, Nathan Beyer [EMAIL PROTECTED] wrote:
 Perhaps, but there are much better ways of determining that. From just
 reading the test code to code coverage tools.

 From my analysis, these were part of the large test contribution and
 indicated that there wasn't an explicit test for that method. In most
 cases, there were tests for these methods, either in other classes or
 in other methods of the class.

Nathan, I agree ;-)


 -Nathan

 On 10/10/06, Richard Liang [EMAIL PROTECTED] wrote:
  On 10/11/06, Nathan Beyer [EMAIL PROTECTED] wrote:
   I've seen a few and I've deleted any that I've come across. I would
   say feel free to delete them too. I've also been deleting empty setup
   and teardown methods too.
 
  Please do not simply delete them. Maybe that means we are lack of the
  test for some methods, for example getInetAddress.
 
  
   -Nathan
  
   On 10/10/06, Alexey Petrenko [EMAIL PROTECTED] wrote:
These could be a result of copy/paste tests creation.
And I'm curious why it was written for the first time. :)
   
SY, Alexey
   
2006/10/10, Mark Hindess [EMAIL PROTECTED]:

 I've come across a couple of tests with things like:

 public void test_getInetAddress() {
 assertTrue(Used to test, true);
 }

 Can anyone explain why we have these?


--
Alexei Zakharov,
Intel Middleware Product Division

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



Re: [drlvm] smoke test : gc PhantomReferenceQueueTest is really unstable

2006-10-11 Thread Mikhail Fursov

On 10/11/06, Salikh Zakirov [EMAIL PROTECTED] wrote:


I believe the real root cause is running java code from
vm_hint_finalize().
A possible solution would be:

- rewrite vm_hint_finalize() to just run 'notify' operation, without
calling any real java code
- handle reference queue in the finalizer thread instead of enqueuing it
directly from vm_hint_finalize() thread



I support the idea to fix the finalization code. The requirement from JIT to
use lazy resolution everywhere is overkill in this case.
Also the lazy resolution requires very significant changes in the current
Jitrino.OPT implementation and will make the static modes (-Xem:opt,
-Xem:sever_static) unusable because of the performance degradation.

--
Mikhail Fursov


[classlib][launcher]shall we handle the parameter -version and -showversion in launcher or vm?

2006-10-11 Thread Tony Wu

I encounter an error[1] when run java -version with IBM VME today and
it is ok on DRLVM. I wonder how to handle these simple parameters. Is
there any decision
about that?

[1]
[EMAIL PROTECTED]:~/harmony/workspace/trunk/deploy/jdk/jre/bin$ ./java -version
Apache Harmony Launcher : (c) Copyright 1991, 2006 The Apache Software
Foundation or its licensors, as applicable.
JVMJ9VM007E Command-line option unrecognised: -version
HMYEXEL062E Internal VM error: Failed to create Java VM
FAILED to invoke JVM.

--
Tony Wu
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: [drlvm] Should the launcher print uncaught exceptions?

2006-10-11 Thread Evgueni Brevnov

Nikolay,


On 10/11/06, Nikolay Kuznetsov [EMAIL PROTECTED] wrote:

I have a quick note about detaching current thread. I've filled
HARMONY-1816 issue about counting non daemon threads. And concerning
DetachCurrentThread we should either detach it


I don't understand your concern what should we detach? Could you
give an example or test case?


or rewrite
wait_for_all_nondaemon threads to take into account the fact that main
thread is also non daemon.


First of all we should not do any assumption regarding main thread. It
doesn't differ from any other non daemon thread. It may die long
before last non daemon thread dies. DestroyJavaVM may be called by any
threadeven unattached...

Thanks Evgueni


Nik.
On 10/11/06, Evgueni Brevnov [EMAIL PROTECTED] wrote:
 Oliver,

 I created https://issues.apache.org/jira/browse/HARMONY-1819 with
 suggested fix. Please, look at and update it if DetachCurrentThread is
 required before DestroyJavaVM for some reason.

 Thanks
 Evgueni

 On 9/22/06, Evgueni Brevnov [EMAIL PROTECTED] wrote:
  On 9/22/06, Oliver Deakin [EMAIL PROTECTED] wrote:
   Tim Ellison wrote:
Still, it seems strange that you should have to call DetachCurrentThread
 explicitly to get this behavior.  I would have expected that
DestroyJavaVM alone would cause the uncaught exception handler to fire.
 Not all apps that embed the VM will know to make this work-around.
   
  
   Yes, that surprised me too. The bug suggests that the launcher is at
   fault for calling
   ExceptionDescribe() instead of DetachCurrentThread(). However I would have
   thought that this was not necessary in the case where an exception
   handler has
   been registered, and that the handler would be called during
   DestroyJavaVM()'s
   execution.
  
   Perhaps this is something that could be fixed in DRLVM? So if
   DetachCurrentThread() is called, it runs any registered exception
   handlers for that
   thread as usual. However, if DestroyJavaVM is called, it makes sure that 
all
   exception handlers are run for every thread.
  
 
  Sure, I checked both cases work fine on my implementation of
  InvocationAPI for DRLVM (with DetachCurrentThread and without it). So
  the launcher can choose either to detach the main thread or not...
 
  Thanks
  Evgueni
 
   Regards,
   Oliver
  
Regards,
Tim
   
Oliver Deakin wrote:
   
Evgueni Brevnov wrote:
   
Oliver,
   
Yes, I got the same result on RI when starting VM by your simple
launcher. Assume it is OK not to print an error message and stacke
trace of an unhandled exception in JavaDestroyVM(). How about calling
uncaught exception handler? According to the spec it must be called if
terminating thread has an exception. The test shows that the handler
is not called when VM is created by our launcher.  But if VM is
created by RI's launcher then everything works fine and the handler is
executed. This means that RI's launcher somehow deals with it (not VM
itself). It seems for me as a bug in RI. Do you think so?
   
Hi Evgueni,
   
I see the same thing - if I run your second Test class (the
UncaughtExceptionHandler
test) with my simple launcher on the RI and J9 I do not see any output.
i.e. the MyHandler.uncaughtException() method is never called.
   
Having a Google around I found a link to a Sun bug registered for this 
[1].
All our launcher needs to do is call DetachCurrentThread() on the main
thread before DestroyJavaVM(), and the UncaughtExceptionHandler will
be called as expected. (This bug only occurs with exception handlers
registered to the main thread - I verified this with [2] which has its
non-main
thread's exception handler called correctly)
   
So if you add the line:
  (*jvm)-DetachCurrentThread(jvm);
to my simple launcher just before the DestroyJavaVM() call, you will 
see
that the MyHandler.uncaughtException() is called for the main thread, 
and
the test works as expected.
   
This looks like it needs to be added to our launcher - do you agree?
   
What is even more interesting is that if I run your more simple Test 
class
(the one that just does 'throw new Error(my);'), with the
DetachCurrentThread()
call added to the simple launcher I get a stack trace printed on both 
RI
and J9!
Again it appears that this is only a problem with the main thread (if
you alter
[2] before so that the handler is not registered, you get the expected
stack trace).
So it seems that adding DetachCurrentThread to the launcher fixes both
problems!
   
Regards,
Oliver
   
[1] http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4992454
[2]
public class Test {
   static class MyHandler implements Thread.UncaughtExceptionHandler {
   public void uncaughtException(Thread t, Throwable e) {
   System.out.println(My Handler Called!!!);
   }
  }
   
   

Re: [drlvm] The first GC helper with fast-path implemented in Java: gc_alloc

2006-10-11 Thread Ivan Volosyuk

Mikhail, there is GCVM interface function exists for this purpose:

Boolean gc_supports_frontier_allocation(unsigned *offset_of_current,
unsigned *offset_of_limit) {
   // Need additional support for object offset in native stubs.
   *offset_of_current = field_offset(GC_Thread_Info, tls_current_free);
   *offset_of_limit = field_offset(GC_Thread_Info, tls_current_cleaned);
   return true;
}

1. VM exactly knows where the GC_Thread_Info is in TLS and using this
offsets can obtain current allocation position and its limit. It seems
that the information should be also propagated to JIT if you want to
implement the helper inlining.

2. You should not care about cleaned with uncleaned memory as it just
GC v4.1 specific optimization. Fast path should deal with current and
limit as in gc_supports_frontier_allocation().

3. This is just VMGC native interface function. There is no other
parameters passed here currently.

4. No need, see above (in 2).

5. Excellent idea! I thought about it. This optimization can be much valuable.

More issues to deal with.

Current native helper which is called from managed code to allocate a
object has one problem. It should call clinit for uninitialized
classes. I was working with it some time ago, but the change was too
intrusive and had negative performance impact. It was decided to do
this latter. I think we should think about it again now.

I suggest before compiling fast path code check whether class is
initialized and not finalizible. Depending on the results we can
produce different fast (or generic) code paths.

--
Ivan

On 10/11/06, Mikhail Fursov [EMAIL PROTECTED] wrote:

GC, VM gurus!
I need your help in implementation of the first our helper written with
magic.
I've started with GCv41 allocation helper for objects.
Please review the way I'm going to implement it and correct me if I have
misunderstood something or confirm if everything is OK.


The native fast path:

Managed_Object_Handle gc_alloc_fast(unsigned in_size,  Allocation_Handle ah,
void *thread_pointer) {
C1.assert((in_size % GC_OBJECT_ALIGNMENT) == 0);
C2.assert (ah);
C3.unsigned char *next;

C4.GC_Thread_Info *info = (GC_Thread_Info *) thread_pointer;
C5.Partial_Reveal_VTable *vtable = ah_to_vtable(ah);
C6.GC_VTable_Info *gcvt = vtable-get_gcvt();
C7.unsigned char *cleaned = info-tls_current_cleaned;
C8.unsigned char *res = info-tls_current_free;

C9.if (res + in_size = cleaned) {
C10.if (gcvt-is_finalizible()) return 0;

C11.info-tls_current_free =  res + in_size;
C12.*(VT32*)res = ah;

C13.assert(((POINTER_SIZE_INT)res  (GC_OBJECT_ALIGNMENT - 1)) ==
0);
C14.return res;
C15.}

C16.if (gcvt-is_finalizible()) return 0;

C17.unsigned char *ceiling = info-tls_current_ceiling;


C18.if (res + in_size = ceiling) {

C19.info-tls_current_free = next = info-tls_current_free +
in_size;

// cleaning required
C20.unsigned char *cleaned_new = next +
THREAD_LOCAL_CLEANED_AREA_SIZE;
C21.if (cleaned_new  ceiling) cleaned_new = ceiling;
C22.info-tls_current_cleaned = cleaned_new;
C23.memset(cleaned, 0, cleaned_new - cleaned);
C24.*(VT32*)res = ah;

C25.assert(((POINTER_SIZE_INT)res  (GC_OBJECT_ALIGNMENT - 1)) ==
0);
C26.return res;
C27.}

C28.return 0;
}



The helper's code:

public static Object gc_alloc(int objSize, int allocationHandle) {

J1.Address tlsAddr = TLS.getGCThreadLocal();

J2.Address tlsCurrentFreeFieldAddr = tlsAddr.plus
(TLS_CURRENT_FREE_OFFSET);
J3.Address tlsCurrentCleanedFieldAddr = tlsAddr.plus
(TLS_CURRENT_CLEANED_OFFSET);

J4.Address tlsCurrentFreeAddr = tlsCurrentFreeFieldAddr.loadAddress();
J5.Address tlsCurrentCleanedAddr =
tlsCurrentCleanedFieldAddr.loadAddress();

J6.Address tlsNewFreeAddr = tlsCurrentFreeAddr.plus(objSize);

  // the fast path without cleaning
J7.if (tlsNewFreeAddr.LE(tlsCurrentCleanedAddr)) {
J8.tlsCurrentFreeFieldAddr.store(tlsNewFreeAddr);
J9.tlsCurrentFreeAddr.store(allocationHandle);
J10.return tlsCurrentFreeAddr;
J11.}

J12.Address tlsCurrentCeilingFieldAddr = tlsAddr.plus
(TLS_CURRENT_CEILING_OFFSET);
J13.Address tlsCurrentCeilingAddr =
tlsCurrentCeilingFieldAddr.loadAddress();

// the fast path with cleaning
J14.   if (tlsNewCurrentFreeAddr.LE(tlsCurrentCeilingAddr)) {
J15.   Address tlsNewCleanedAddr = tlsCurrentCeilingAddr;
J16.   if (tlsCurrentCeilingAddr.diff(tlsNewFreeAddr) 
THREAD_LOCAL_CLEANED_AREA_SIZE) {
J17.   Address tlsCleanedNew = tlsNewFreeAddr.plus
(THREAD_LOCAL_CLEANED_AREA_SIZE);
J18.   }
J19.   int bytesToClean = tlsNewCleanedAddr.diff(tlsNewFreeAddr);
J20.   org.apache.harmony.vmhelper.native.Utils.memset(tlsNewFreeAddr,
bytesToClean, 0);
J21.   tlsCurrentCleanedFieldAddr.store(tlsNewCleanedAddr);

J22.   tlsCurrentFreeFieldAddr.store(tlsNewFreeAddr);
J23.   

Re: [drlvm] smoke test : gc PhantomReferenceQueueTest is really unstable

2006-10-11 Thread Pavel Pervov

Michail,

Generally speaking I can think of fully user code which produces exactly the
same result.
So, workarounding this in one place (finalizers) just is not enough.

Regards,
   Pavel.

On 10/11/06, Mikhail Fursov [EMAIL PROTECTED] wrote:


On 10/11/06, Salikh Zakirov [EMAIL PROTECTED] wrote:

 I believe the real root cause is running java code from
 vm_hint_finalize().
 A possible solution would be:

 - rewrite vm_hint_finalize() to just run 'notify' operation, without
 calling any real java code
 - handle reference queue in the finalizer thread instead of enqueuing it
 directly from vm_hint_finalize() thread


I support the idea to fix the finalization code. The requirement from JIT
to
use lazy resolution everywhere is overkill in this case.
Also the lazy resolution requires very significant changes in the current
Jitrino.OPT implementation and will make the static modes (-Xem:opt,
-Xem:sever_static) unusable because of the performance degradation.

--
Mikhail Fursov




[wiki] frontpage outdated?

2006-10-11 Thread Salikh Zakirov
Hi,

after creating a wiki page 
http://wiki.apache.org/harmony/DrlvmBuildTroubleshooting
I was wondering where to link it up, so that it would be 'clickable-through' 
from
the start page.

I haven't found any suitable place.

Moreover, the front page contains a lot of stuff not directly related to the 
current
state of the project.

I suggest to clean up front page by moving most of its contents to pages like
'initial project proposals', 'bookmarks' etc.
The content which I think is appropriate for the wiki front page are the 
following links

* component links: class library, jchevm, drlvm
* status page links
* troubleshooting page links

It looks like someone already started cleaning and created the page 
'OldFrontPage',
but the frontpage is still cluttered.

Comments?


-
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] smoke test : gc PhantomReferenceQueueTest is really unstable

2006-10-11 Thread Pavel Pervov

Geir,

sorry for confusion. The bug you are referring to is described in [1].

Regards,
   Pavel.

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

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


I get this more often than not.  Can someone interested take a look?
Happens w/ jitrino :

java:

/home/geir/dev/apache/harmony/enhanced/trunk/working_vm/vm/vmcore/src/class_support/C_Interface.cpp:524:
const char* class_get_name(Class*):
Assertion `cl' failed.
SIGABRT in VM code.
Stack trace:
addr2line: '[vdso]': No such file
1: ?? (D7^CCA5FEB6A8DCFDA4FFE8E3B6:-1)
java:

/home/geir/dev/apache/harmony/enhanced/trunk/working_vm/vm/vmcore/src/class_support/C_Interface.cpp:524:
const char* class_get_name(Class*):
Assertion `cl' failed.
SIGABRT in VM code.
Stack trace:
addr2line: '[vdso]': No such file
3: ?? (D7^CCA5FEB6B8C8BABFFFE8E3B6:-1)
2: abort (??:-1)
4: __assert_fail (??:-1)
5: abort (??:-1)
6: __assert_fail (??:-1)
7: class_get_name

(/home/geir/dev/apache/harmony/enhanced/trunk/working_vm/vm/vmcore/src/class_support/C_Interface.cpp:525)
8: class_get_name

(/home/geir/dev/apache/harmony/enhanced/trunk/working_vm/vm/vmcore/src/class_support/C_Interface.cpp:525)
9: Jitrino::Jet::is_magic(Class*) (??:-1)
10: Jitrino::Jet::Compiler::gen_magic() (??:-1)
11: Jitrino::Jet::Compiler::handle_inst() (??:-1)
12: Jitrino::Jet::is_magic(Class*) (??:-1)
13: Jitrino::Jet::Compiler::gen_magic() (??:-1)
14: Jitrino::Jet::Compiler::handle_inst() (??:-1)
15: Jitrino::Jet::Compiler::comp_gen_insts(unsigned int,
unsigned int, unsigned int) (??:-1)
16: Jitrino::Jet::Compiler::comp_gen_code_bb(unsigned int) (??:-1)
17: Jitrino::Jet::Compiler::comp_gen_insts(unsigned int,
unsigned int, unsigned int) (??:-1)
18: Jitrino::Jet::Compiler::comp_gen_code_bb(unsigned int) (??:-1)
19: Jitrino::Jet::Compiler::compile(void*, Method*,
OpenMethodExecutionParams const) (??:-1)
20: Jitrino::Jet::Compiler::compile(void*, Method*,
OpenMethodExecutionParams const) (??:-1)
21: Jitrino::Jet::compile_with_params(void*, void*, Method*,
OpenMethodExecutionParams) (??:-1)
22: Jitrino::Jet::compile_with_params(void*, void*, Method*,
OpenMethodExecutionParams) (??:-1)
23: JIT_compile_method_with_params (??:-1)
24: JIT_compile_method_with_params (??:-1)
25: Dll_JIT::compile_method_with_params(void*, Method*,
OpenMethodExecutionParams)
(/home/geir/dev/apache/harmony/enhanced/trunk/working_v
m/vm/vmcore/include/dll_jit_intf.h:86)
26: compile_do_compilation_jit(Method*, JIT*)

(/home/geir/dev/apache/harmony/enhanced/trunk/working_vm/vm/vmcore/src/jit/compile.cpp:700)
27: vm_compile_method

(/home/geir/dev/apache/harmony/enhanced/trunk/working_vm/vm/vmcore/src/class_support/C_Interface.cpp:2539)
28: Dll_JIT::compile_method_with_params(void*, Method*,
OpenMethodExecutionParams)
(/home/geir/dev/apache/harmony/enhanced/trunk/working_v
m/vm/vmcore/include/dll_jit_intf.h:86)
29: compile_do_compilation_jit(Method*, JIT*)

(/home/geir/dev/apache/harmony/enhanced/trunk/working_vm/vm/vmcore/src/jit/compile.cpp:700)
30: vm_compile_method

(/home/geir/dev/apache/harmony/enhanced/trunk/working_vm/vm/vmcore/src/class_support/C_Interface.cpp:2539)
31: DrlEMImpl::compileMethod(Method*)

(/home/geir/dev/apache/harmony/enhanced/trunk/working_vm/vm/em/src/DrlEMImpl.cpp:520)
32: CompileMethod

(/home/geir/dev/apache/harmony/enhanced/trunk/working_vm/vm/em/src/em_intf.cpp:50)
33: compile_do_compilation

(/home/geir/dev/apache/harmony/enhanced/trunk/working_vm/vm/vmcore/src/jit/compile.cpp:780)
34: compile_jit_a_method(Method*)

(/home/geir/dev/apache/harmony/enhanced/trunk/working_vm/vm/vmcore/src/jit/compile.cpp:828)
35: IP is 0xB6891172 native code
36: java/lang/FinalizerThread.wakeupFinalization()V (??:-1)
37: java/lang/FinalizerThread.startFinalization(Z)V (??:-1)
38: vm_invoke_native_array_stub

(/home/geir/dev/apache/harmony/enhanced/trunk/working_vm/vm/vmcore/src/util/ia32/base/invoke_native_stub_i
a32.asm:41)
39: JIT_execute_method_default(void*, _jmethodID*, jvalue*,
jvalue*)
(/home/geir/dev/apache/harmony/enhanced/trunk/working_vm/vm/vmcore/sr
c/util/ia32/base/ini_iA32.cpp:200)
40: DrlEMImpl::compileMethod(Method*)

(/home/geir/dev/apache/harmony/enhanced/trunk/working_vm/vm/em/src/DrlEMImpl.cpp:520)
41: CompileMethod

(/home/geir/dev/apache/harmony/enhanced/trunk/working_vm/vm/em/src/em_intf.cpp:50)
42: compile_do_compilation

(/home/geir/dev/apache/harmony/enhanced/trunk/working_vm/vm/vmcore/src/jit/compile.cpp:780)
43: compile_jit_a_method(Method*)

(/home/geir/dev/apache/harmony/enhanced/trunk/working_vm/vm/vmcore/src/jit/compile.cpp:828)
44: IP is 

Re: [drlvm] smoke test : gc PhantomReferenceQueueTest is really unstable

2006-10-11 Thread Mikhail Fursov

Pavel,
Can you describe the problem with user's code only?
Would BEA or SUN VM be able to run the test?
I think we can create a separate discussion or JIRA for it.

On 10/11/06, Pavel Pervov [EMAIL PROTECTED] wrote:


Michail,

Generally speaking I can think of fully user code which produces exactly
the
same result.
So, workarounding this in one place (finalizers) just is not enough.

Regards,
Pavel.

On 10/11/06, Mikhail Fursov [EMAIL PROTECTED] wrote:

 On 10/11/06, Salikh Zakirov [EMAIL PROTECTED] wrote:
 
  I believe the real root cause is running java code from
  vm_hint_finalize().
  A possible solution would be:
 
  - rewrite vm_hint_finalize() to just run 'notify' operation, without
  calling any real java code
  - handle reference queue in the finalizer thread instead of enqueuing
it
  directly from vm_hint_finalize() thread
 

 I support the idea to fix the finalization code. The requirement from
JIT
 to
 use lazy resolution everywhere is overkill in this case.
 Also the lazy resolution requires very significant changes in the
current
 Jitrino.OPT implementation and will make the static modes (-Xem:opt,
 -Xem:sever_static) unusable because of the performance degradation.

 --
 Mikhail Fursov







--
Mikhail Fursov


Re: [drlvm] Should the launcher print uncaught exceptions?

2006-10-11 Thread Nikolay Kuznetsov

Evgueni,

On 10/11/06, Nikolay Kuznetsov [EMAIL PROTECTED] wrote:
 I have a quick note about detaching current thread. I've filled
 HARMONY-1816 issue about counting non daemon threads. And concerning
 DetachCurrentThread we should either detach it

I don't understand your concern what should we detach? Could you
give an example or test case?


HARMONY-1816 contains such a test case, it hangs because child thread
works a bit longer than main method. In this case  main method exits,
but the main thread enters
wait for all non daemon treads method. It checks that non daemon count

1, 1 stands for itself and enters while cycle with condition that

non-daemon threads should be equal to zero, while the main thread also
non-daemon.


 or rewrite
 wait_for_all_nondaemon threads to take into account the fact that main
 thread is also non daemon.

First of all we should not do any assumption regarding main thread. It
doesn't differ from any other non daemon thread. It may die long
before last non daemon thread dies. DestroyJavaVM may be called by any
threadeven unattached...


I agree, but the thread which counts non-daemon threads should take
into account that it itself may also daemon or non-daemon and count
other threads till 1 or 0 or detach(or countdown non-daemon threads)
itself before waiting.

Nik.


Thanks Evgueni

 Nik.
 On 10/11/06, Evgueni Brevnov [EMAIL PROTECTED] wrote:
  Oliver,
 
  I created https://issues.apache.org/jira/browse/HARMONY-1819 with
  suggested fix. Please, look at and update it if DetachCurrentThread is
  required before DestroyJavaVM for some reason.
 
  Thanks
  Evgueni
 
  On 9/22/06, Evgueni Brevnov [EMAIL PROTECTED] wrote:
   On 9/22/06, Oliver Deakin [EMAIL PROTECTED] wrote:
Tim Ellison wrote:
 Still, it seems strange that you should have to call 
DetachCurrentThread
  explicitly to get this behavior.  I would have expected that
 DestroyJavaVM alone would cause the uncaught exception handler to 
fire.
  Not all apps that embed the VM will know to make this work-around.

   
Yes, that surprised me too. The bug suggests that the launcher is at
fault for calling
ExceptionDescribe() instead of DetachCurrentThread(). However I would 
have
thought that this was not necessary in the case where an exception
handler has
been registered, and that the handler would be called during
DestroyJavaVM()'s
execution.
   
Perhaps this is something that could be fixed in DRLVM? So if
DetachCurrentThread() is called, it runs any registered exception
handlers for that
thread as usual. However, if DestroyJavaVM is called, it makes sure 
that all
exception handlers are run for every thread.
   
  
   Sure, I checked both cases work fine on my implementation of
   InvocationAPI for DRLVM (with DetachCurrentThread and without it). So
   the launcher can choose either to detach the main thread or not...
  
   Thanks
   Evgueni
  
Regards,
Oliver
   
 Regards,
 Tim

 Oliver Deakin wrote:

 Evgueni Brevnov wrote:

 Oliver,

 Yes, I got the same result on RI when starting VM by your simple
 launcher. Assume it is OK not to print an error message and stacke
 trace of an unhandled exception in JavaDestroyVM(). How about 
calling
 uncaught exception handler? According to the spec it must be called 
if
 terminating thread has an exception. The test shows that the handler
 is not called when VM is created by our launcher.  But if VM is
 created by RI's launcher then everything works fine and the handler 
is
 executed. This means that RI's launcher somehow deals with it (not 
VM
 itself). It seems for me as a bug in RI. Do you think so?

 Hi Evgueni,

 I see the same thing - if I run your second Test class (the
 UncaughtExceptionHandler
 test) with my simple launcher on the RI and J9 I do not see any 
output.
 i.e. the MyHandler.uncaughtException() method is never called.

 Having a Google around I found a link to a Sun bug registered for 
this [1].
 All our launcher needs to do is call DetachCurrentThread() on the 
main
 thread before DestroyJavaVM(), and the UncaughtExceptionHandler will
 be called as expected. (This bug only occurs with exception handlers
 registered to the main thread - I verified this with [2] which has 
its
 non-main
 thread's exception handler called correctly)

 So if you add the line:
   (*jvm)-DetachCurrentThread(jvm);
 to my simple launcher just before the DestroyJavaVM() call, you will 
see
 that the MyHandler.uncaughtException() is called for the main 
thread, and
 the test works as expected.

 This looks like it needs to be added to our launcher - do you agree?

 What is even more interesting is that if I run your more simple Test 
class
 (the one that just does 'throw new Error(my);'), with the
 

RE: README.txt patch Was: [drlvm] NPE is thrown when the kernel tests are run on Windows at revision 448448

2006-10-11 Thread Konovalova, Svetlana
 

Folks,

 

I took a close look at the README file and Quick Help pages for users [1] and 
developers [2] and created patches for these three docs [JIRA 1730] 
https://issues.apache.org/jira/browse/HARMONY-1730   Taking into 
consideration latest changes, I fixed duplication of info and out-dated 
content, and tried to improve language in some places.

It would be great if someone can find a chance to look at the patches. Your 
feedback is very important!

 

Thanks in advance!

 

 [1] http://incubator.apache.org/harmony/quickhelp_users.html  

 [2] http://incubator.apache.org/harmony/quickhelp_contributors.html  

 

Cheers,

Sveta Konovalova

 

 

-Original Message-
From: Geir Magnusson Jr. [mailto:[EMAIL PROTECTED] 
Sent: Friday, October 06, 2006 1:18 PM
To: harmony-dev@incubator.apache.org
Subject: Re: README.txt patch Was: [drlvm] NPE is thrown when the kernel tests 
are run on Windows at revision 448448

 

I was looking at the patch, and think we should just chuck the whole

README.txt, salvage what's good, put it on the website, and put a

pointer in the README.txt to the website.

 

geir

 

 

Morozova, Nadezhda wrote:

 Thanks for the fix, Alexei. I think this is a good start for updating the 
 README. 

 I've looked at the current version, and many other things are out-of-date 
 (such as ij as the name of our executable). Some things are also duplicated - 
 we now have the nice Quick Help pages for users [1] and developers [2]. As I 
 see it, the Quick Start you've been referring to roughly matches [1], whereas 
 [2] is for those who have to 'read this README and follow building 
 instructions to the point.' :) 

 

 I suggest that we edit the README file more to improve it. What do you think? 
 Do you think we can use JIRA 1730 for these changes? 

 

 [1] http://incubator.apache.org/harmony/quickhelp_users.html 

 [2] http://incubator.apache.org/harmony/quickhelp_contributors.html 

 

 Best regards, 

 Nadya Morozova

  

 -Original Message-

 From: Fedotov, Alexei A 

 Sent: Friday, October 06, 2006 12:23 AM

 To: Morozova, Nadezhda

 Cc: harmony-dev@incubator.apache.org

 Subject: README.txt patch Was: [drlvm] NPE is thrown when the kernel tests 
 are run on Windows at revision 448448

 

 BTW,

 I really enjoyed the last item of the Quick Start section:

 

 7. If building the DRLVM fails, read this README and follow building 
 instructions to the point.

 

 A hardcore programmer can loop infinitely here. :-)

 

 With best regards,

 Alexei Fedotov,

 Intel Middleware Products Division

 

 -Original Message-

 From: Fedotov, Alexei A

 Sent: Friday, October 06, 2006 12:20 AM

 To: =SMTP:[EMAIL PROTECTED]

 Cc: harmony-dev@incubator.apache.org

 Subject: RE: [drlvm] NPE is thrown when the kernel tests are run on Windows

 at revision 448448

 

 Hi, Nadya,

 

 I tried to build DRLVM, faced the issue from the thread below, and filed a

 JIRA issue: https://issues.apache.org/jira/browse/HARMONY-1730. Does the

 patch worth to be applied to the README.txt?

 

 With best regards,

 Alexei Fedotov,

 Intel Middleware Products Division

 

 -Original Message-

 From: Spark Shen [mailto:[EMAIL PROTECTED]

 Sent: Friday, September 22, 2006 9:56 AM

 To: harmony-dev@incubator.apache.org

 Subject: Re: [drlvm] NPE is thrown when the kernel tests are run on

 Windows

 at revision 448448

 

 Thank you, I am trying :-).

 

 2006/9/22, Vladimir Gorr [EMAIL PROTECTED]:

 On 9/22/06, Spark Shen [EMAIL PROTECTED] wrote:

 Vladimir Gorr 写道:

 When I roll away the latest changes for Character.java (H-1500

 *Refactor

 some methods in java.lang.Character*)

 this issue disappears. It means a clue is here.

 Sorry for the late reply. JIRA 1500 is due to discussion [1] on the

 dev

 mailing list.

 

 I can not build DRLVM on my desktop. (Windows XP, RI JDK1.5.0, ant

 1.6.5). So I could not reproduce the bug

 The prompted error message is:

 C:\spark\drlvm\trunk\build\make\build.xml:238: The following error

 occurred while executing this line:

 C:\spark\drlvm\trunk\build\make\setup.xml:289: The following error

 occurred while executing this line:

 C:\spark\drlvm\trunk\build\make\setup.xml:291: The following error

 occurred while executing this line:

 C:\spark\drlvm\trunk\build\make\setup.xml:462: Warning: Could not find

 file

 C:\spark\drlvm\trunk\build\make\no_settings_in_config_or_environment

 to

 copy.

 

 This is the first time I build DRLVM, would you give me some hint

 about

 this error message.

 

 It seems you didn't run the *build.bat update* before starting the

 build.

 We need to run the following steps (sorry if you're aware about this):

 

 - svn checkout classlib

 - svn checkout drlvm

 - build classlib (cd classlib/trunk; ant fetch-depend; ant)

 - cd drlvm/trunk/build

 - build.bat update (you need to slightly some time here :-) )

 - build.bat

 

 Thanks,

 Vladimir.

 

 

 [1]

 

 

Re: [drlvm] Should the launcher print uncaught exceptions?

2006-10-11 Thread Evgueni Brevnov

Nikolay,


From what you said above I conclude that it is TM problem in respect

to how it manages non-daemon threads. Do you agree? If you don't
please start another thread with appropriate subject. It seems to be
out of current topic.

Evgueni

On 10/11/06, Nikolay Kuznetsov [EMAIL PROTECTED] wrote:

Evgueni,
 On 10/11/06, Nikolay Kuznetsov [EMAIL PROTECTED] wrote:
  I have a quick note about detaching current thread. I've filled
  HARMONY-1816 issue about counting non daemon threads. And concerning
  DetachCurrentThread we should either detach it

 I don't understand your concern what should we detach? Could you
 give an example or test case?

HARMONY-1816 contains such a test case, it hangs because child thread
works a bit longer than main method. In this case  main method exits,
but the main thread enters
wait for all non daemon treads method. It checks that non daemon count
1, 1 stands for itself and enters while cycle with condition that
non-daemon threads should be equal to zero, while the main thread also
non-daemon.

  or rewrite
  wait_for_all_nondaemon threads to take into account the fact that main
  thread is also non daemon.

 First of all we should not do any assumption regarding main thread. It
 doesn't differ from any other non daemon thread. It may die long
 before last non daemon thread dies. DestroyJavaVM may be called by any
 threadeven unattached...

I agree, but the thread which counts non-daemon threads should take
into account that it itself may also daemon or non-daemon and count
other threads till 1 or 0 or detach(or countdown non-daemon threads)
itself before waiting.

Nik.

 Thanks Evgueni
 
  Nik.
  On 10/11/06, Evgueni Brevnov [EMAIL PROTECTED] wrote:
   Oliver,
  
   I created https://issues.apache.org/jira/browse/HARMONY-1819 with
   suggested fix. Please, look at and update it if DetachCurrentThread is
   required before DestroyJavaVM for some reason.
  
   Thanks
   Evgueni
  
   On 9/22/06, Evgueni Brevnov [EMAIL PROTECTED] wrote:
On 9/22/06, Oliver Deakin [EMAIL PROTECTED] wrote:
 Tim Ellison wrote:
  Still, it seems strange that you should have to call 
DetachCurrentThread
   explicitly to get this behavior.  I would have expected that
  DestroyJavaVM alone would cause the uncaught exception handler to 
fire.
   Not all apps that embed the VM will know to make this work-around.
 

 Yes, that surprised me too. The bug suggests that the launcher is at
 fault for calling
 ExceptionDescribe() instead of DetachCurrentThread(). However I would 
have
 thought that this was not necessary in the case where an exception
 handler has
 been registered, and that the handler would be called during
 DestroyJavaVM()'s
 execution.

 Perhaps this is something that could be fixed in DRLVM? So if
 DetachCurrentThread() is called, it runs any registered exception
 handlers for that
 thread as usual. However, if DestroyJavaVM is called, it makes sure 
that all
 exception handlers are run for every thread.

   
Sure, I checked both cases work fine on my implementation of
InvocationAPI for DRLVM (with DetachCurrentThread and without it). So
the launcher can choose either to detach the main thread or not...
   
Thanks
Evgueni
   
 Regards,
 Oliver

  Regards,
  Tim
 
  Oliver Deakin wrote:
 
  Evgueni Brevnov wrote:
 
  Oliver,
 
  Yes, I got the same result on RI when starting VM by your simple
  launcher. Assume it is OK not to print an error message and stacke
  trace of an unhandled exception in JavaDestroyVM(). How about 
calling
  uncaught exception handler? According to the spec it must be 
called if
  terminating thread has an exception. The test shows that the 
handler
  is not called when VM is created by our launcher.  But if VM is
  created by RI's launcher then everything works fine and the 
handler is
  executed. This means that RI's launcher somehow deals with it 
(not VM
  itself). It seems for me as a bug in RI. Do you think so?
 
  Hi Evgueni,
 
  I see the same thing - if I run your second Test class (the
  UncaughtExceptionHandler
  test) with my simple launcher on the RI and J9 I do not see any 
output.
  i.e. the MyHandler.uncaughtException() method is never called.
 
  Having a Google around I found a link to a Sun bug registered for 
this [1].
  All our launcher needs to do is call DetachCurrentThread() on the 
main
  thread before DestroyJavaVM(), and the UncaughtExceptionHandler 
will
  be called as expected. (This bug only occurs with exception 
handlers
  registered to the main thread - I verified this with [2] which has 
its
  non-main
  thread's exception handler called correctly)
 
  So if you add the line:
(*jvm)-DetachCurrentThread(jvm);
  to my simple launcher just before the 

Re: [wiki] frontpage outdated?

2006-10-11 Thread Mikhail Fursov

Salikh, I thought that you have problems with MS software when read the
subject :)

+ I support your idea and the only item I want to add is to avoid
duplication in wiki and main project pages.
This will simplify maintenance. So instead of any news/status information in
wiki we should keep only links to non-wiki pages.
And do the same (avoid duplication) for internal information for all of the
components we have.

On 10/11/06, Salikh Zakirov [EMAIL PROTECTED] wrote:


Hi,

after creating a wiki page
http://wiki.apache.org/harmony/DrlvmBuildTroubleshooting
I was wondering where to link it up, so that it would be
'clickable-through' from
the start page.

I haven't found any suitable place.

Moreover, the front page contains a lot of stuff not directly related to
the current
state of the project.

I suggest to clean up front page by moving most of its contents to pages
like
'initial project proposals', 'bookmarks' etc.
The content which I think is appropriate for the wiki front page are the
following links

* component links: class library, jchevm, drlvm
* status page links
* troubleshooting page links

It looks like someone already started cleaning and created the page
'OldFrontPage',
but the frontpage is still cluttered.

Comments?


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





--
Mikhail Fursov


[dlrvm] ClassCircularityError in recursive compilation (Was: Re: [drlvm] smoke test : gc PhantomReferenceQueueTest is really unstable)

2006-10-11 Thread Pavel Pervov

(Branching from original thread as this is different problem than in the
root message.)

Mikhail,

The following scenario will fail:

1) JIT compiles some method and resolves some class A through user defined
class loader
2) user define class loader loads class A and triggers compilation of some
of its methods
3) this method happens to depend on class A, and, thus, JIT resolves the
class A through the same class loader

Voila! We have the described situation.

Regards,
   Pavel.

On 10/11/06, Mikhail Fursov [EMAIL PROTECTED] wrote:


Pavel,
Can you describe the problem with user's code only?
Would BEA or SUN VM be able to run the test?
I think we can create a separate discussion or JIRA for it.

On 10/11/06, Pavel Pervov [EMAIL PROTECTED] wrote:

 Michail,

 Generally speaking I can think of fully user code which produces exactly
 the
 same result.
 So, workarounding this in one place (finalizers) just is not enough.

 Regards,
 Pavel.

 On 10/11/06, Mikhail Fursov [EMAIL PROTECTED] wrote:
 
  On 10/11/06, Salikh Zakirov [EMAIL PROTECTED] wrote:
  
   I believe the real root cause is running java code from
   vm_hint_finalize().
   A possible solution would be:
  
   - rewrite vm_hint_finalize() to just run 'notify' operation, without
   calling any real java code
   - handle reference queue in the finalizer thread instead of
enqueuing
 it
   directly from vm_hint_finalize() thread
  
 
  I support the idea to fix the finalization code. The requirement from
 JIT
  to
  use lazy resolution everywhere is overkill in this case.
  Also the lazy resolution requires very significant changes in the
 current
  Jitrino.OPT implementation and will make the static modes (-Xem:opt,
  -Xem:sever_static) unusable because of the performance degradation.
 
  --
  Mikhail Fursov
 
 




--
Mikhail Fursov




[classlib][em64t]Problems during classlib on em64t (revision 462753)

2006-10-11 Thread Valentin Al. Sitnick (Moscow)

Hi,
   I've tried to build classlib on em64t workstation an got some problems:

0. Bug in depends.xml - hosts architectures defined with bug
---
   condition property=hack.arch value=ipf
   isset property=is.x86_64 /
   /condition
--- small fix
condition property=hack.arch value=ia64
   isset property=is.ia64 /
   /condition

   condition property=hack.arch value=x86_64
   isset property=is.x86_64 /
   /condition
---

1. ant (1.6.5 or 1.7.0.beta2 - I've tried to use both) cannot create
symlinks. It is not serious porblem - it is possible to create these lintks
manually
2. build process was interrupted by error:

--
-really-link:

check:

-compile:
   [mkdir] Created dir: /home/angel/builds/harmony/suse-10.1-em64t
/clean/classlib/trunk/build/classes
   [javac] Compiling 3397 source files to /home/angel/builds/harmony/suse-
10.1-em64t/clean/classlib/trunk/build/classes
   [javac] Note: * uses or overrides a deprecated API.
   [javac] Note: Recompile with -Xlint:deprecation for details.
   [javac] Note: Some input files use unchecked or unsafe operations.
   [javac] Note: Recompile with -Xlint:unchecked for details.
   [mkdir] Created dir: /home/angel/builds/harmony/suse-10.1-em64t
/clean/classlib/trunk/deploy/jdk/jre/lib/boot

call-modules-all:

compile-java:
[echo] Compiling ACCESSIBILITY classes

copy-resources:
[copy] Copying 1 file to /home/angel/builds/harmony/suse-10.1-em64t
/clean/classlib/trunk/build/classes

svn-info:

build-jar:

BUILD FAILED
/home/angel/builds/harmony/suse-10.1-em64t/clean/classlib/trunk/build.xml:108:
The following error occurred while executing
this line:
/home/angel/builds/harmony/suse-10.1-em64t/clean/classlib/trunk/make/build-
java.xml:183: The following error occurred while executing
this line:
/home/angel/builds/harmony/suse-10.1-em64t/clean/classlib/trunk/make/properties.xml:249:
The following error occurred while executing
this line:
/home/angel/builds/harmony/suse-10.1-em64t/clean/classlib/trunk/make/properties.xml:259:
The following error occurred while executing
this line:
/home/angel/builds/harmony/suse-10.1-em64t/clean/classlib/trunk/modules/accessibility/build.xml:90:
No supported regular expression ma
tcher found

Total time: 56 seconds

Linux_x86_64 (bigbox): /home/angel/builds/harmony/suse-10.1-em64t
/clean/classlib/trunk
14:36:02 $

--
It seems as an ant bug.
Could someone help me?


[classlib][luni] Tweaked native method name in file

2006-10-11 Thread Spark Shen

Hi All:
After skimming through the source code of java.io.File, I found two 
tweaked method names:


private native boolean isReadOnlyImpl(byte[] filePath);
private native boolean isWriteOnlyImpl(byte[] filePath);

Take isWriteOnlyImpl as an example,

canRead -
exists  !Java_java_io_File_isWriteOnlyImpl() -   = this method 
is in native\luni\shared\file.c
getPlatformIsWriteOnly()  = this method is in 
native\luni\linux\helpers.c, and the follow is the code snippet


if (buffer.st_uid == geteuid ())
   return (buffer.st_mode  S_IRUSR) == 0;
 else if (buffer.st_gid == getegid ())
   return (buffer.st_mode  S_IRGRP) == 0;

 return (buffer.st_mode  S_IROTH) == 0;

The name isWriteOnlyImpl is confusing, negate the return value of 
isWriteOnlyImpl and uses it in canRead is confusing,
in native method getPlatformIsWriteOnly(), prob S_IRXXX bit is also 
confusing and can not express the meaning writeOnly. Correct me if I am 
wrong.

Since isWriteOnlyImpl is only utilized by canRead, I suggest the following:

change isWriteOnlyImpl to isReadableImpl, getPlatformIsWriteOnly to 
getPlatformIsReadable and do the negation in getPlatformIsReadable:


canRead -
exists  Java_java_io_File_isReadOnlyImpl() - getPlatformIsReadable() 


if (buffer.st_uid == geteuid ())
   return (buffer.st_mode  S_IRUSR) != 0;
 else if (buffer.st_gid == getegid ())
   return (buffer.st_mode  S_IRGRP) != 0;

 return (buffer.st_mode  S_IROTH) != 0;

This way, code is more readable and the method name 
getPlatformIsReadable semantically matches it implemantation.
(The original name getPlatformIsWriteOnly seems not consistent with its 
implmentation, correct me if I am wrong).


If no one objects, I want to supply a patch to do the enhancement.

Best regards

--
Spark Shen
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: [drlvm] The first GC helper with fast-path implemented in Java: gc_alloc

2006-10-11 Thread Mikhail Fursov

Ivan,

On 10/11/06, Ivan Volosyuk [EMAIL PROTECTED] wrote:


Mikhail, there is GCVM interface function exists for this purpose:

Boolean gc_supports_frontier_allocation(unsigned *offset_of_current,
unsigned *offset_of_limit) {
// Need additional support for object offset in native stubs.
*offset_of_current = field_offset(GC_Thread_Info, tls_current_free);
*offset_of_limit = field_offset(GC_Thread_Info, tls_current_cleaned);
return true;
}



Yes, I know. But the main benefit of magics is that JIT does not know the
details of the allocation algorithm.
The helper is a GC part. You, or any other GC developer, can write any
fast-path helper you like and point the JIT to use it.
So my proposal is to use known offset in GC_Thread_Info and hardcode it into
the helper code.
Another solution  is to initialize these offsets as final static fields
during helper class initialization using JNI accessor to GC natives.

1. VM exactly knows where the GC_Thread_Info is in TLS and using this

offsets can obtain current allocation position and its limit. It seems
that the information should be also propagated to JIT if you want to
implement the helper inlining.



Yes, this is not the problem. In the example I wrote the
TLS.getGCThreadLocal() does the same.

2. You should not care about cleaned with uncleaned memory as it just

GC v4.1 specific optimization. Fast path should deal with current and
limit as in gc_supports_frontier_allocation().



This is the helper for GCv4.1. JIT does not care if memory cleaned or not.
JIT does not care if you use bump-pointer of free-list allocation. So it's
up to you if too keep it.

3. This is just VMGC native interface function. There is no other

parameters passed here currently.



Yes, it's enough to support GCv4.x and GCv5. But is it OK for MMTK
collectors? The main idea is to make JIT as independent as possible.

4. No need, see above (in 2).


Ok, if you do not need this functionality in the fast path we can remove it.

5. Excellent idea! I thought about it. This optimization can be much

valuable.

More issues to deal with.

Current native helper which is called from managed code to allocate a
object has one problem. It should call clinit for uninitialized
classes. I was working with it some time ago, but the change was too
intrusive and had negative performance impact. It was decided to do
this latter. I think we should think about it again now.



I thought that the problem is already solved on the JIT side?!
That was a real headache for me to synchronize check sums and map edge
profiles from the IR with class initialization helpers to IR without it in
server mode.

I suggest before compiling fast path code check whether class is

initialized and not finalizible. Depending on the results we can
produce different fast (or generic) code paths.



Finalization issue is clean. But I see no improvements in the fast path
related to the class initialization.

--
Mikhail Fursov


Re: [drlvm] Should the launcher print uncaught exceptions?

2006-10-11 Thread Nikolay Kuznetsov

Sorry guys, I've just found different problem at the very same place.

Nik.

On 10/11/06, Evgueni Brevnov [EMAIL PROTECTED] wrote:

Nikolay,

From what you said above I conclude that it is TM problem in respect
to how it manages non-daemon threads. Do you agree? If you don't
please start another thread with appropriate subject. It seems to be
out of current topic.

Evgueni

On 10/11/06, Nikolay Kuznetsov [EMAIL PROTECTED] wrote:
 Evgueni,
  On 10/11/06, Nikolay Kuznetsov [EMAIL PROTECTED] wrote:
   I have a quick note about detaching current thread. I've filled
   HARMONY-1816 issue about counting non daemon threads. And concerning
   DetachCurrentThread we should either detach it
 
  I don't understand your concern what should we detach? Could you
  give an example or test case?

 HARMONY-1816 contains such a test case, it hangs because child thread
 works a bit longer than main method. In this case  main method exits,
 but the main thread enters
 wait for all non daemon treads method. It checks that non daemon count
 1, 1 stands for itself and enters while cycle with condition that
 non-daemon threads should be equal to zero, while the main thread also
 non-daemon.

   or rewrite
   wait_for_all_nondaemon threads to take into account the fact that main
   thread is also non daemon.
 
  First of all we should not do any assumption regarding main thread. It
  doesn't differ from any other non daemon thread. It may die long
  before last non daemon thread dies. DestroyJavaVM may be called by any
  threadeven unattached...

 I agree, but the thread which counts non-daemon threads should take
 into account that it itself may also daemon or non-daemon and count
 other threads till 1 or 0 or detach(or countdown non-daemon threads)
 itself before waiting.

 Nik.
 
  Thanks Evgueni
  
   Nik.
   On 10/11/06, Evgueni Brevnov [EMAIL PROTECTED] wrote:
Oliver,
   
I created https://issues.apache.org/jira/browse/HARMONY-1819 with
suggested fix. Please, look at and update it if DetachCurrentThread is
required before DestroyJavaVM for some reason.
   
Thanks
Evgueni
   
On 9/22/06, Evgueni Brevnov [EMAIL PROTECTED] wrote:
 On 9/22/06, Oliver Deakin [EMAIL PROTECTED] wrote:
  Tim Ellison wrote:
   Still, it seems strange that you should have to call 
DetachCurrentThread
explicitly to get this behavior.  I would have expected that
   DestroyJavaVM alone would cause the uncaught exception handler to 
fire.
Not all apps that embed the VM will know to make this 
work-around.
  
 
  Yes, that surprised me too. The bug suggests that the launcher is at
  fault for calling
  ExceptionDescribe() instead of DetachCurrentThread(). However I 
would have
  thought that this was not necessary in the case where an exception
  handler has
  been registered, and that the handler would be called during
  DestroyJavaVM()'s
  execution.
 
  Perhaps this is something that could be fixed in DRLVM? So if
  DetachCurrentThread() is called, it runs any registered exception
  handlers for that
  thread as usual. However, if DestroyJavaVM is called, it makes sure 
that all
  exception handlers are run for every thread.
 

 Sure, I checked both cases work fine on my implementation of
 InvocationAPI for DRLVM (with DetachCurrentThread and without it). So
 the launcher can choose either to detach the main thread or not...

 Thanks
 Evgueni

  Regards,
  Oliver
 
   Regards,
   Tim
  
   Oliver Deakin wrote:
  
   Evgueni Brevnov wrote:
  
   Oliver,
  
   Yes, I got the same result on RI when starting VM by your simple
   launcher. Assume it is OK not to print an error message and 
stacke
   trace of an unhandled exception in JavaDestroyVM(). How about 
calling
   uncaught exception handler? According to the spec it must be 
called if
   terminating thread has an exception. The test shows that the 
handler
   is not called when VM is created by our launcher.  But if VM is
   created by RI's launcher then everything works fine and the 
handler is
   executed. This means that RI's launcher somehow deals with it 
(not VM
   itself). It seems for me as a bug in RI. Do you think so?
  
   Hi Evgueni,
  
   I see the same thing - if I run your second Test class (the
   UncaughtExceptionHandler
   test) with my simple launcher on the RI and J9 I do not see any 
output.
   i.e. the MyHandler.uncaughtException() method is never called.
  
   Having a Google around I found a link to a Sun bug registered 
for this [1].
   All our launcher needs to do is call DetachCurrentThread() on 
the main
   thread before DestroyJavaVM(), and the UncaughtExceptionHandler 
will
   be called as expected. (This bug only occurs with exception 
handlers
   registered to the main 

Re: [dlrvm] ClassCircularityError in recursive compilation (Was: Re: [drlvm] smoke test : gc PhantomReferenceQueueTest is really unstable)

2006-10-11 Thread Mikhail Fursov

Will this test pass on SUN or BEA JVM?
I remember I tried something similar but one of the RIs crashed :)

On 10/11/06, Pavel Pervov [EMAIL PROTECTED] wrote:


(Branching from original thread as this is different problem than in the
root message.)

Mikhail,

The following scenario will fail:

1) JIT compiles some method and resolves some class A through user
defined
class loader
2) user define class loader loads class A and triggers compilation of
some
of its methods
3) this method happens to depend on class A, and, thus, JIT resolves the
class A through the same class loader

Voila! We have the described situation.

Regards,
Pavel.







--
Mikhail Fursov


Re: [classlib][regex|luni] build break

2006-10-11 Thread Anton Ivanov

On 10/10/06, Anton Ivanov [EMAIL PROTECTED] wrote:




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

 So I checked in a patch for HARMONY-688's regex fix, and it passed the
 regex unit tests, but causes the existing luni tests to fail in
 java.util.Scanner.  I've not figured out the base cause of the failure
 so I've backed out the changes.

 Regards,
 Tim

 --

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

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





This is my patch.
I'll look into this problem and try to correct the patch.

Thanks,
Anton


There was a bug in the newly created class SupplRangeSet.java.
There was the following code in the method matches() of SupplRangeSet.java:
...
   if (stringIndex  strLength) {
   char high = testString.charAt(stringIndex++);

   if (contains(high) 
   next.matches(stringIndex, testString, matchResult)  0)
{
   return 1;
   }
...
But it is wrong simply to return 1, though we can read about method
matches() in AbstractSet.java comments:

Checks if this node matches in given position and recursively call
 next node matches on positive self match. Returns positive integer if
 entire match succeed, negative otherwise
 return -1 if match fails or n  0;
In fact method matches() returns not only a positive n  0. The n is an
offset in case of a positive
match attempt. This fact is took into account in all old classes of
java.util.regex, but I forgot this fact in SupplRangeSet.java
So I corrected method matches() of the SupplRangeSet class as follows:
...
   int offset = -1;
   if (stringIndex  strLength) {
   char high = testString.charAt(stringIndex++);

   if (contains(high) 
   (offset = next.matches(stringIndex, testString,
matchResult))  0) {
   return offset;
   }
...
I corrected the patch and attached it to the issue.
I verified that regex and luni tests pass normally with the patch applied.

Thanks,
Anton


Re: [drlvm][jvmti] Last commit of Harmony-1582 brocks JVMTI support for DRLVM.

2006-10-11 Thread Pavel Rebriy

The fix is ready. See http://issues.apache.org/jira/browse/HARMONY-1826

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




Pavel Rebriy wrote:
 Hello,

 Fix for Harmony-1582 brocks initialization of JVMTI support. I'm
 investigating the problem and going to create fixing JIRA as soon as
 possible.

Great - thanks


 P.S. May be include several JVMTI tests into build test.

Yes, please do.



-
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,
Pavel Rebriy


Re: [drlvm] The first GC helper with fast-path implemented in Java: gc_alloc

2006-10-11 Thread Ivan Volosyuk

On 10/11/06, Mikhail Fursov [EMAIL PROTECTED] wrote:

Ivan,

On 10/11/06, Ivan Volosyuk [EMAIL PROTECTED] wrote:

 Mikhail, there is GCVM interface function exists for this purpose:

 Boolean gc_supports_frontier_allocation(unsigned *offset_of_current,
 unsigned *offset_of_limit) {
 // Need additional support for object offset in native stubs.
 *offset_of_current = field_offset(GC_Thread_Info, tls_current_free);
 *offset_of_limit = field_offset(GC_Thread_Info, tls_current_cleaned);
 return true;
 }


Yes, I know. But the main benefit of magics is that JIT does not know the
details of the allocation algorithm.
The helper is a GC part. You, or any other GC developer, can write any
fast-path helper you like and point the JIT to use it.
So my proposal is to use known offset in GC_Thread_Info and hardcode it into
the helper code.
Another solution  is to initialize these offsets as final static fields
during helper class initialization using JNI accessor to GC natives.


Ahh, I see now. I was thinking about GC independent helper. You are right.



1. VM exactly knows where the GC_Thread_Info is in TLS and using this
 offsets can obtain current allocation position and its limit. It seems
 that the information should be also propagated to JIT if you want to
 implement the helper inlining.


Yes, this is not the problem. In the example I wrote the
TLS.getGCThreadLocal() does the same.


ok



2. You should not care about cleaned with uncleaned memory as it just
 GC v4.1 specific optimization. Fast path should deal with current and
 limit as in gc_supports_frontier_allocation().


This is the helper for GCv4.1. JIT does not care if memory cleaned or not.
JIT does not care if you use bump-pointer of free-list allocation. So it's
up to you if too keep it.


ok



3. This is just VMGC native interface function. There is no other
 parameters passed here currently.


Yes, it's enough to support GCv4.x and GCv5. But is it OK for MMTK
collectors? The main idea is to make JIT as independent as possible.


Let's ask Weldon here.



4. No need, see above (in 2).


Ok, if you do not need this functionality in the fast path we can remove it.


Well, if we talk about GC specific helpers, I would prefer to keep it :)



5. Excellent idea! I thought about it. This optimization can be much
 valuable.

 More issues to deal with.

 Current native helper which is called from managed code to allocate a
 object has one problem. It should call clinit for uninitialized
 classes. I was working with it some time ago, but the change was too
 intrusive and had negative performance impact. It was decided to do
 this latter. I think we should think about it again now.


I thought that the problem is already solved on the JIT side?!
That was a real headache for me to synchronize check sums and map edge
profiles from the IR with class initialization helpers to IR without it in
server mode.


It is possible that I have outdated information.



I suggest before compiling fast path code check whether class is
 initialized and not finalizible. Depending on the results we can
 produce different fast (or generic) code paths.


Finalization issue is clean. But I see no improvements in the fast path
related to the class initialization.


If we still has issues with initialization we could do the following:

1. If class in already initialized when we compile the allocation code
we can forget about the initialization.
2. If it is not initialized yet, we can insert required initialization
check right before usual allocation fast path.



--
Mikhail Fursov




--
Ivan
Intel Middleware Products Division

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



Re: HARMONY-1407: Contribution of Java code for package java.lang.management

2006-10-11 Thread Andrey Yakushev

Why not write LogManager.getLoggingMXBean like this:
return com.ibm.lang.management.ManagementUtils.getLoggingBean();


Yes, it also possible, but tightly binds logging module to
lang-managment implementation.


I found the problem about StackTraceElement when I used luni-kernel.jar
(in jre/bin/default) in build-path of project, it could not compile; and
when I replaced it with luni-kernel-stubs.jar (in jre/lib/boot), it was
OK. Maybe your problem is not exactly as mine.


Yes, you are right. Deeper investigation showed that problem was in
CompositeDataSupport constructor and exists not only for
StackTraceElement class. This is minimal test that fails on DRLVM but
works well on J9:

---8--
import javax.management.openmbean.*;
class CompositeDataTest {
   public static void main(String[] args) throws Exception {
   String[] names = { goodName };
   OpenType[] te = { SimpleType.STRING };
   CompositeType ct = new CompositeType(goodName, goodName,
names, names, te);
   CompositeData[] cda = { new CompositeDataSupport(ct, names, names) };
   Object[] values = { cda };
   OpenType[] typeTypes = { new ArrayType(1, ct) };
   CompositeType ct2 = new CompositeType(goodName, goodName,
names, names, typeTypes);
   new CompositeDataSupport(ct2, names, values);
   System.out.println(Passed);
   }
}
---8-


I think the vote is coming, we'd best move on after voting, :-)


It's a pity but I've already created
http://issues.apache.org/jira/browse/HARMONY-1821 :-)

Thanks,
Andrey


On 10/11/06, Rui Hu [EMAIL PROTECTED] wrote:

On 10/5/06, Andrey Yakushev [EMAIL PROTECTED] wrote:

 I've tried to follow you suggestions. The result:

 1. The fix for unimplemented
 java.util.logging.LogManager.getLoggingMXBean could be simple, like:

 return LoggingMXBeanImpl.getInstance()

 But it bind logging module to LoggingMXBean implementation.
 Probably more clean solution would be:

ObjectName loggingMXBeanName = new
 ObjectName(LOGGING_MXBEAN_NAME);
MBeanServer platformBeanServer =
 ManagementFactory.getPlatformMBeanServer();
Set loggingMXBeanSet =
 platformBeanServer.queryMBeans(loggingMXBeanName, null);

if(loggingMXBeanSet.size() != 1) {
throw new AssertionError(There Can Be Only One
 logging MX bean.);
}

Iterator i = loggingMXBeanSet.iterator();
ObjectInstance loggingMXBeanOI = (ObjectInstance) i.next();
String lmxbcn = loggingMXBeanOI.getClassName();
Class lmxbc = Class.forName(lmxbcn);
Method giMethod = lmxbc.getDeclaredMethod(getInstance);
giMethod.setAccessible(true);
LoggingMXBean lmxb = (LoggingMXBean) giMethod.invoke(null,
 new Object[] {});

return lmxb;

 But this approach also supposes that implementation contains
 getInstance method, which is not always true as far as I know.
 Probably some other solution exists?


Sorry for reply so late.
Why not write LogManager.getLoggingMXBean like this:
return com.ibm.lang.management.ManagementUtils.getLoggingBean();

The similar implementation can be found in some public methods in
java.lang.management.ManagementFactory

2. One more problem fount is that

 
\management\src\main\java\org\apache\harmony\lang\management\CompilationMXBeanImpl.java
 uses System.getProperty(java.compiler) which is not defined and it
 lead to NullPointerException in
 testGetAttribute(
 tests.org.apache.harmony.lang.management.CompilationMXBeanImplTest)

 Running tests with -Djava.compiler=jitrino removes this test error.

 It is interest that test_getProperty_Str from

 
inincubator\harmony\enhanced\drlvm\trunk\vm\tests\kernel\java\lang\SystemExtensionTest
 tries to check that but couldn't due to error in test (using ||
 instead of ).




3. As to StackTraceElement problem, I obtain the fail:

 javax.management.openmbean.OpenDataException: itemValue at index 12 is
 not a valid value for itemName stackTrace and itemType
 javax.management.openmbean.CompositeData(typename=[
 Ljavax.management.openmbean.CompositeData;,dimension=1,elementType=
 javax.management.openmbean.CompositeData
 TypeName: java.lang.StackTraceElement contains data:
 ItemName: className OpenType value:
 javax.management.openmbean.SimpleType(name = java.lang.String)
 ItemName: fileName OpenType value:
 javax.management.openmbean.SimpleType(name = java.lang.String)
 ItemName: lineNumber OpenType value:
 javax.management.openmbean.SimpleType(name = java.lang.Integer)
 ItemName: methodName OpenType value:
 javax.management.openmbean.SimpleType(name = java.lang.String)
 ItemName: nativeMethod OpenType value:
 javax.management.openmbean.SimpleType(name = java.lang.Boolean)
 )
at javax.management.openmbean.CompositeDataSupport.validateContents
 (CompositeDataSupport.java:104)
at 

Re: [classlib][em64t]Problems during classlib on em64t (revision 462753)

2006-10-11 Thread Mark Hindess

On 11 October 2006 at 16:18, Valentin Al. Sitnick (Moscow) [EMAIL 
PROTECTED] wrote:
 
 Hi,
 I've tried to build classlib on em64t workstation an got some problems:
 
 0. Bug in depends.xml - hosts architectures defined with bug
 ---
 condition property=hack.arch value=ipf
 isset property=is.x86_64 /
 /condition
 --- small fix
  condition property=hack.arch value=ia64
 isset property=is.ia64 /
 /condition
 
 condition property=hack.arch value=x86_64
 isset property=is.x86_64 /
 /condition
  ---
 
 1. ant (1.6.5 or 1.7.0.beta2 - I've tried to use both) cannot create
 symlinks. It is not serious porblem - it is possible to create these lintks
 manually
 2. build process was interrupted by error:
 
 -
 -
  -really-link:
 
 check:
 
 -compile:
 [mkdir] Created dir: /home/angel/builds/harmony/suse-10.1-em64t
 /clean/classlib/trunk/build/classes
 [javac] Compiling 3397 source files to /home/angel/builds/harmony/suse-
 10.1-em64t/clean/classlib/trunk/build/classes
 [javac] Note: * uses or overrides a deprecated API.
 [javac] Note: Recompile with -Xlint:deprecation for details.
 [javac] Note: Some input files use unchecked or unsafe operations.
 [javac] Note: Recompile with -Xlint:unchecked for details.
 [mkdir] Created dir: /home/angel/builds/harmony/suse-10.1-em64t
 /clean/classlib/trunk/deploy/jdk/jre/lib/boot
 
 call-modules-all:
 
 compile-java:
  [echo] Compiling ACCESSIBILITY classes
 
 copy-resources:
  [copy] Copying 1 file to /home/angel/builds/harmony/suse-10.1-em64t
 /clean/classlib/trunk/build/classes
 
 svn-info:
 
 build-jar:
 
 BUILD FAILED
 /home/angel/builds/harmony/suse-10.1-em64t/clean/classlib/trunk/build.xml:108
 :
 The following error occurred while executing
 this line:
 /home/angel/builds/harmony/suse-10.1-em64t/clean/classlib/trunk/make/build-
 java.xml:183: The following error occurred while executing
 this line:
 /home/angel/builds/harmony/suse-10.1-em64t/clean/classlib/trunk/make/properti
 es.xml:249:
 The following error occurred while executing
 this line:
 /home/angel/builds/harmony/suse-10.1-em64t/clean/classlib/trunk/make/properti
 es.xml:259:
 The following error occurred while executing
 this line:
 /home/angel/builds/harmony/suse-10.1-em64t/clean/classlib/trunk/modules/acces
 sibility/build.xml:90:
 No supported regular expression ma
 tcher found
 
 Total time: 56 seconds
 
 Linux_x86_64 (bigbox): /home/angel/builds/harmony/suse-10.1-em64t
 /clean/classlib/trunk
 14:36:02 $
 
 -
 -
 It seems as an ant bug.
 Could someone help me?

I've never seen this error, but it looks like you are missing a regex
implementation.  The ant regexp glob mapper has some dependencies
described at:

  http://ant.apache.org/manual/CoreTypes/mapper.html#regexp-mapper

But basically it says you need:

  Ant comes with implementations for the
  java.util.regex package of JDK 1.4 or higher,
  jakarta-regexp and jakarta-ORO.

I'm kind of surprised you don't have the first of these?

Regards,
 Mark.





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



Re: [classlib][luni] Tweaked native method name in file

2006-10-11 Thread Andrew Zhang

On 10/11/06, Spark Shen [EMAIL PROTECTED] wrote:


Hi All:
After skimming through the source code of java.io.File, I found two
tweaked method names:

private native boolean isReadOnlyImpl(byte[] filePath);
private native boolean isWriteOnlyImpl(byte[] filePath);

Take isWriteOnlyImpl as an example,

canRead -
exists  !Java_java_io_File_isWriteOnlyImpl() -   = this method
is in native\luni\shared\file.c
getPlatformIsWriteOnly()  = this method is in
native\luni\linux\helpers.c, and the follow is the code snippet

if (buffer.st_uid == geteuid ())
   return (buffer.st_mode  S_IRUSR) == 0;
else if (buffer.st_gid == getegid ())
   return (buffer.st_mode  S_IRGRP) == 0;

return (buffer.st_mode  S_IROTH) == 0;

The name isWriteOnlyImpl is confusing, negate the return value of
isWriteOnlyImpl and uses it in canRead is confusing,
in native method getPlatformIsWriteOnly(), prob S_IRXXX bit is also
confusing and can not express the meaning writeOnly. Correct me if I am
wrong.
Since isWriteOnlyImpl is only utilized by canRead, I suggest the
following:

change isWriteOnlyImpl to isReadableImpl, getPlatformIsWriteOnly to
getPlatformIsReadable and do the negation in getPlatformIsReadable:



Agree. But I don't think it's negation. you may simplify the code as:

if (buffer.st_uid == geteuid ())
  return buffer.st_mode  S_IRUSR;
...




canRead -
exists  Java_java_io_File_isReadOnlyImpl() - getPlatformIsReadable()

if (buffer.st_uid == geteuid ())
   return (buffer.st_mode  S_IRUSR) != 0;
else if (buffer.st_gid == getegid ())
   return (buffer.st_mode  S_IRGRP) != 0;

return (buffer.st_mode  S_IROTH) != 0;

This way, code is more readable and the method name
getPlatformIsReadable semantically matches it implemantation.
(The original name getPlatformIsWriteOnly seems not consistent with its
implmentation, correct me if I am wrong).



Agree. I think we'd better fix it, although it's only an internal method.



If no one objects, I want to supply a patch to do the enhancement.

Best regards

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





--
Best regards,
Andrew Zhang


Re: [classlib][launcher]shall we handle the parameter -version and -showversion in launcher or vm?

2006-10-11 Thread Vladimir Ivanov

This issue was discussed several times already. Seems that the set of
'standard' options should be defined for Harmony VM's and describe
somewhere.

But nobody do it yet :)

thanks, Vladimir


On 10/11/06, Tony Wu [EMAIL PROTECTED] wrote:


I encounter an error[1] when run java -version with IBM VME today and
it is ok on DRLVM. I wonder how to handle these simple parameters. Is
there any decision
about that?

[1]
[EMAIL PROTECTED]:~/harmony/workspace/trunk/deploy/jdk/jre/bin$ ./java
-version
Apache Harmony Launcher : (c) Copyright 1991, 2006 The Apache Software
Foundation or its licensors, as applicable.
JVMJ9VM007E Command-line option unrecognised: -version
HMYEXEL062E Internal VM error: Failed to create Java VM
FAILED to invoke JVM.

--
Tony Wu
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][em64t]Problems during classlib on em64t (revision 462753)

2006-10-11 Thread Valentin Al. Sitnick (Moscow)

Hi Mark,

I have
- sun JDK-1.5.0 64 bit version
- ant 1.6.5  1.7.0b2


On 10/11/06, Mark Hindess [EMAIL PROTECTED] wrote:



On 11 October 2006 at 16:18, Valentin Al. Sitnick (Moscow) 
[EMAIL PROTECTED] wrote:

 Hi,
 I've tried to build classlib on em64t workstation an got some
problems:

 0. Bug in depends.xml - hosts architectures defined with bug
 ---
 condition property=hack.arch value=ipf
 isset property=is.x86_64 /
 /condition
 --- small fix
  condition property=hack.arch value=ia64
 isset property=is.ia64 /
 /condition

 condition property=hack.arch value=x86_64
 isset property=is.x86_64 /
 /condition
  ---

 1. ant (1.6.5 or 1.7.0.beta2 - I've tried to use both) cannot create
 symlinks. It is not serious porblem - it is possible to create these
lintks
 manually
 2. build process was interrupted by error:


-
 -
  -really-link:

 check:

 -compile:
 [mkdir] Created dir: /home/angel/builds/harmony/suse-10.1-em64t
 /clean/classlib/trunk/build/classes
 [javac] Compiling 3397 source files to
/home/angel/builds/harmony/suse-
 10.1-em64t/clean/classlib/trunk/build/classes
 [javac] Note: * uses or overrides a deprecated API.
 [javac] Note: Recompile with -Xlint:deprecation for details.
 [javac] Note: Some input files use unchecked or unsafe operations.
 [javac] Note: Recompile with -Xlint:unchecked for details.
 [mkdir] Created dir: /home/angel/builds/harmony/suse-10.1-em64t
 /clean/classlib/trunk/deploy/jdk/jre/lib/boot

 call-modules-all:

 compile-java:
  [echo] Compiling ACCESSIBILITY classes

 copy-resources:
  [copy] Copying 1 file to /home/angel/builds/harmony/suse-10.1-em64t
 /clean/classlib/trunk/build/classes

 svn-info:

 build-jar:

 BUILD FAILED
 /home/angel/builds/harmony/suse-10.1-em64t
/clean/classlib/trunk/build.xml:108
 :
 The following error occurred while executing
 this line:
 /home/angel/builds/harmony/suse-10.1-em64t
/clean/classlib/trunk/make/build-
 java.xml:183: The following error occurred while executing
 this line:
 /home/angel/builds/harmony/suse-10.1-em64t
/clean/classlib/trunk/make/properti
 es.xml:249:
 The following error occurred while executing
 this line:
 /home/angel/builds/harmony/suse-10.1-em64t
/clean/classlib/trunk/make/properti
 es.xml:259:
 The following error occurred while executing
 this line:
 /home/angel/builds/harmony/suse-10.1-em64t
/clean/classlib/trunk/modules/acces
 sibility/build.xml:90:
 No supported regular expression ma
 tcher found

 Total time: 56 seconds

 Linux_x86_64 (bigbox): /home/angel/builds/harmony/suse-10.1-em64t
 /clean/classlib/trunk
 14:36:02 $


-
 -
 It seems as an ant bug.
 Could someone help me?

I've never seen this error, but it looks like you are missing a regex
implementation.  The ant regexp glob mapper has some dependencies
described at:

http://ant.apache.org/manual/CoreTypes/mapper.html#regexp-mapper

But basically it says you need:

Ant comes with implementations for the
java.util.regex package of JDK 1.4 or higher,
jakarta-regexp and jakarta-ORO.

I'm kind of surprised you don't have the first of these?

Regards,
Mark.





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




Re: [drlvm][jvmti] Last commit of Harmony-1582 brocks JVMTI support for DRLVM.

2006-10-11 Thread Salikh Zakirov
Pavel Rebriy wrote:
  Fix for Harmony-1582 brocks initialization of JVMTI support. I'm
  investigating the problem and going to create fixing JIRA as soon as
  possible.

 The fix is ready. See http://issues.apache.org/jira/browse/HARMONY-1826

Pavel, I have reviewed the patch in HARMONY-1826, and it looks great!

A couple of minor comments.
The change like this doesn't really move us closer to multi-VM support,
as the jni_env is hardcoded to the emitted code.

-s = mov(s,  M_Base_Opnd(esp_reg, 0),  Imm_Opnd((int)jni_native_intf)) ; // 
o0=jni_native_intf
+s = mov(s,  M_Base_Opnd(esp_reg, 0),  
Imm_Opnd((int)p_TLS_vmthread-jni_env)) ; // o0=jni_native_intf
 


The following change seems to fix unrelated issue ('Fixed Single Step event 
disabling'?),
so I think it would have been better if it filed as a separate JIRA/patch.

-
ti-vm_brpt-release_intf(vm_thread-ss_state-predicted_breakpoints);
-_deallocate((unsigned char *)vm_thread-ss_state);
-vm_thread-ss_state = NULL;
+if( vm_thread-ss_state ) {
+if( vm_thread-ss_state-predicted_breakpoints ) {
+
ti-vm_brpt-release_intf(vm_thread-ss_state-predicted_breakpoints);
+}
+_deallocate((unsigned char *)vm_thread-ss_state);
+vm_thread-ss_state = NULL;
+}


Anyway, I vote for a quick inclusion of this patch.


-
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] Commented: (HARMONY-1670) [classlib][luni] invalid testcase in ClassTest

2006-10-11 Thread Mikhail Loenko

I don't understand either: This is a low risk test fix.

2006/10/11, Fedotov, Alexei A [EMAIL PROTECTED]:

Mikhail,

I already got several personal feedbacks about these comments. I accept
that they are not good.

I tried to express an idea that JIRAs marked with this comment prevent
getting 100% pass rate on DRLVM. When I search for
Unit_Tests_Pass_on_DRLVM in comments I will get a list of bugs to fix.

Any suggestions how the comment should like? My only requirement is to
keep Unit_Tests_Pass_on_DRLVM lexem in this comment.


IMHO It makes sense to discuss it on a separate thread with different subject,
so that other people could notice that discussion and participate

Thanks,
Mikhail



With best regards,
Alexei Fedotov,
Intel Middleware Products Division

-Original Message-
From: Mikhail Loenko [mailto:[EMAIL PROTECTED]
Sent: Wednesday, October 11, 2006 2:37 PM
To: harmony-dev@incubator.apache.org
Subject: Re: [jira] Commented: (HARMONY-1670) [classlib][luni] invalid
testcase in ClassTest

Hi Alexei

I'm sorry I comlpetely don't understand your comment (as well as a
number of similar comments in other JIRAs)

Thanks,
Mikhail

2006/10/7, Alexei Fedotov (JIRA) [EMAIL PROTECTED]:
[ http://issues.apache.org/jira/browse/HARMONY-
1670?page=comments#action_12440591 ]

 Alexei Fedotov commented on HARMONY-1670:
 -

 [drlvm][unit] Blocks
http://wiki.apache.org/harmony/Unit_Tests_Pass_on_DRLVM

 This is a low risk test fix.

  [classlib][luni] invalid testcase in ClassTest
  --
 
  Key: HARMONY-1670
  URL:
http://issues.apache.org/jira/browse/HARMONY-1670
  Project: Harmony
   Issue Type: Bug
   Components: Classlib
 Reporter: Alexey Varlamov
 Priority: Trivial
  Attachments: H-1670.patch
 
 
  The test_getDeclaredMethodLjava_lang_String$Ljava_lang_Class of
modules/luni/src/test/java/org/apache/harmony/luni/tests/java/lang/Clas
sTes
t.java
  checks if IllegalAccessException is thrown during invokation of
private
method of inner class. This is bad due to:
  1) the check is invalid, see HARMONY-1309 for details;
  2) The ClassTest is not appropriate for testing reflection, and
this is
already covered in j.l.reflect.* tests.

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




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



Re: [dlrvm] ClassCircularityError in recursive compilation (Was: Re: [drlvm] smoke test : gc PhantomReferenceQueueTest is really unstable)

2006-10-11 Thread Pavel Pervov

I suspect it was JRockit java, which crashed. Since Sun's jvm is hotspot,
you have to force it into compiling the method. Otherwise it will interpret
the method and everything will work fine. :)

Pavel.

On 10/11/06, Mikhail Fursov [EMAIL PROTECTED] wrote:


Will this test pass on SUN or BEA JVM?
I remember I tried something similar but one of the RIs crashed :)

On 10/11/06, Pavel Pervov [EMAIL PROTECTED] wrote:

 (Branching from original thread as this is different problem than in the
 root message.)

 Mikhail,

 The following scenario will fail:

 1) JIT compiles some method and resolves some class A through user
 defined
 class loader
 2) user define class loader loads class A and triggers compilation of
 some
 of its methods
 3) this method happens to depend on class A, and, thus, JIT resolves
the
 class A through the same class loader

 Voila! We have the described situation.

 Regards,
 Pavel.






--
Mikhail Fursov




Re: [DRLVM][JET] write barrier for Java (mmtk)

2006-10-11 Thread Weldon Washburn

Robin,

Thanks for helping clarify the issues.  The MMTk code base we are using is
what Steve Blackburn supplied us in mid July.  I don't know when it will be
suggested we move to a more recent version of MMTk.  I suspect a major part
of the confusion has been because of working with a code base where the Plan
interface is in transition.

In any case, please confirm that each java thread needs to put an instance
of Plan in its thread-local storage and that writeBarrier() and alloc()
virtual method entry points need to be materialized from thread-local Plan
object.

Also, please confirm (or deny) that we should never call
VM.barriers.performWriteInBarrier().  It only should be called by internal
MMTk methods (I think).




On 10/11/06, Robin Garner [EMAIL PROTECTED] wrote:


I think you must be looking at a fairly old version of MMTk.
writeBarrier is an instance method of a MutatorContext (in org.mmtk.plan).

MutatorContext exists to hold unsynchronized thread-local data
structures.  Particularly relevant to the write barrier, each mutator
context has its own thread-local remset.  All of the mutator context
methods of MMTk need fast access to the MMTk thread local data
structures, which is why they are instance methods.  The other critical
instance method of a MutatorContext is 'alloc', which also has it's
thread-local chunk of the space(s) it allocates into.

As far as the VM is concerned, it will be calling instance methods of a
final class.  The various classes in org.mmtk.plan.* aren't final, but
the VM interface code is expected to wrap the currently selected plan in
some final class.  JikesRVM wraps the currently selected plan classes
in a 'SelectedPlan', 'SelectedMutatorContext' etc.

As far as the VM.barriers.performWriteInBarrier() call is concerned,
the optimization required to devirtualize a call to a final method of a
static final field shouldn't be too hard to implement.  MMTk recently
moved away from using static methods for this part of the interface, to
the current abstract factory, and improved the structure of the software
significantly.  We don't want to go back!

  I erroneously thought we could call
 VM.barriers.performWriteInBarrier() directly.  This sort of, kind of
breaks
 MMTk architecture.

well, it less 'breaks the architecture' than performs a no-op :)

-- robin

Weldon Washburn wrote:
 Ooops.  I really tangled things up.  You are right about how we are
 supposed
 to find the Java write barrier method.  It is located in
 Plan.writeBarrier().
 Each GC algorithm has a Plan class that overrides the writeBarrier()
 method.  I erroneously thought we could call
 VM.barriers.performWriteInBarrier() directly.  This sort of, kind of
breaks
 MMTk architecture.  By design, each GC algorithm in MMTk is supposed to
 call
 Plan.writeBarrier() which, in turn, will call
 VM.barriers.performWriteInBarrier.

 Sorry for the confusion.




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

 Yes, we can run the usual inliner after helpers are inlined.
 The only problem I want to notice is that once we have different
helpers
 for
 different GCs it's a bad idea to use virtual method calls in
performance
 sensitive helpers. You are allowed to do it, but the better solution
 is to
 teach the helper to use a final implementation of the Barrier and
replace
 the helper once the implementation of the Barrier class is changed.

 On 10/11/06, Rana Dasgupta [EMAIL PROTECTED] wrote:
 
  Makes sense, using a standard barrier invocation fastpath. But I
assume
  that
  the MMTk WB helper that it will call needs to be inlined too.
 
  Thanks
 
 
  On 10/10/06, Mikhail Fursov [EMAIL PROTECTED] wrote:
  
   Weldon,
I thought about slightly different approach.
Why not to write fast-path VM helper like was proposed in the
 thread
[drlvm]Extending...
This helper (a static method) can be inlined by JIT without any
devirtualization and call any method needed from MMTk or native
implementation. So JIT won't know if it works with MMTk or with a
  native
GC:
all you need is just to replace the Java version of the helper.
?
   
  
  
 
 


 --
 Mikhail Fursov






-
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: [dlrvm] ClassCircularityError in recursive compilation (Was: Re: [drlvm] smoke test : gc PhantomReferenceQueueTest is really unstable)

2006-10-11 Thread Mikhail Fursov

The test you described has a lot of hidden issues.
For example: if Sun supports such situation only with interpreter (need to
investigate), may be it's enough if we support it only with JET (in the
default mode JET compiles all methods first)? In this case if we see
ClassCircularityError in OPT we have a chance to return JIT_FAILURE to EM
and ask EM to compile this method with JET?

On 10/11/06, Pavel Pervov [EMAIL PROTECTED] wrote:


I suspect it was JRockit java, which crashed. Since Sun's jvm is hotspot,
you have to force it into compiling the method. Otherwise it will
interpret
the method and everything will work fine. :)

Pavel.

On 10/11/06, Mikhail Fursov [EMAIL PROTECTED] wrote:

 Will this test pass on SUN or BEA JVM?
 I remember I tried something similar but one of the RIs crashed :)

 On 10/11/06, Pavel Pervov [EMAIL PROTECTED] wrote:
 
  (Branching from original thread as this is different problem than in
the
  root message.)
 
  Mikhail,
 
  The following scenario will fail:
 
  1) JIT compiles some method and resolves some class A through user
  defined
  class loader
  2) user define class loader loads class A and triggers compilation
of
  some
  of its methods
  3) this method happens to depend on class A, and, thus, JIT resolves
 the
  class A through the same class loader
 
  Voila! We have the described situation.
 
  Regards,
  Pavel.






 --
 Mikhail Fursov







--
Mikhail Fursov


Re: [classlib][em64t]Problems during classlib on em64t (revision 462753)

2006-10-11 Thread Valentin Al. Sitnick (Moscow)

It is very strange but I have needed jdk  jars
---
compile-java:
[echo] Compiling ACCESSIBILITY classes

copy-resources:

svn-info:

build-jar:

BUILD FAILED
/home/angel/builds/harmony/suse-10.1-em64t/clean/classlib/trunk/build.xml:108:
The following error occurred while executing this line:
/home/angel/builds/harmony/suse-10.1-em64t/clean/classlib/trunk/make/build-
java.xml:183: The following error occurred while executing
this line:
/home/angel/builds/harmony/suse-10.1-em64t/clean/classlib/trunk/make/properties.xml:249:
The following error occurred while executing
this line:
/home/angel/builds/harmony/suse-10.1-em64t/clean/classlib/trunk/make/properties.xml:259:
The following error occurred while executing
this line:
/home/angel/builds/harmony/suse-10.1-em64t/clean/classlib/trunk/modules/accessibility/build.xml:90:
No supported regular expression matcher found

Total time: 20 seconds

Linux_x86_64 (bigbox): /home/angel/builds/harmony/suse-10.1-em64t
/clean/classlib/trunk
18:17:24 $ java -version
java version 1.5.0_09
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_09-b01)
Java HotSpot(TM) 64-Bit Server VM (build 1.5.0_09-b01, mixed mode)

Linux_x86_64 (bigbox): /home/angel/builds/harmony/suse-10.1-em64t
/clean/classlib/trunk
18:19:32 $ ant -version
Apache Ant version 1.6.5 compiled on June 16 2006

Linux_x86_64 (bigbox): /home/angel/builds/harmony/suse-10.1-em64t
/clean/classlib/trunk
18:19:54 $ ls /usr/postinstall/ant/apache-ant-1.7.0Beta2/lib/
ant-antlr.jarant.jar   ant-stylebook.jar
ant-apache-bcel.jar  ant-javamail.jar  ant-swing.jar
ant-apache-bsf.jar   ant-jdepend.jar   ant-trax.jar
ant-apache-log4j.jar ant-jmf.jar   ant-weblogic.jar
ant-apache-oro.jar   ant-jsch.jar  jakarta-oro-2.0.8.jar
ant-apache-regexp.jarant-junit.jar jakarta-regexp-1.4.jar
ant-apache-resolver.jar  ant-launcher.jar  libraries.properties
ant-commons-logging.jar  ant-netrexx.jar   README
ant-commons-net.jar  ant-nodeps.jarxercesImpl.jar
ant-jai.jar  ant-starteam.jar  xml-apis.jar

Linux_x86_64 (bigbox): /home/angel/builds/harmony/suse-10.1-em64t
/clean/classlib/trunk
18:20:16 $

-









On 10/11/06, Mark Hindess [EMAIL PROTECTED] wrote:



On 11 October 2006 at 16:18, Valentin Al. Sitnick (Moscow) 
[EMAIL PROTECTED] wrote:

 Hi,
 I've tried to build classlib on em64t workstation an got some
problems:

 0. Bug in depends.xml - hosts architectures defined with bug
 ---
 condition property=hack.arch value=ipf
 isset property=is.x86_64 /
 /condition
 --- small fix
  condition property=hack.arch value=ia64
 isset property=is.ia64 /
 /condition

 condition property=hack.arch value=x86_64
 isset property=is.x86_64 /
 /condition
  ---

 1. ant (1.6.5 or 1.7.0.beta2 - I've tried to use both) cannot create
 symlinks. It is not serious porblem - it is possible to create these
lintks
 manually
 2. build process was interrupted by error:


-
 -
  -really-link:

 check:

 -compile:
 [mkdir] Created dir: /home/angel/builds/harmony/suse-10.1-em64t
 /clean/classlib/trunk/build/classes
 [javac] Compiling 3397 source files to
/home/angel/builds/harmony/suse-
 10.1-em64t/clean/classlib/trunk/build/classes
 [javac] Note: * uses or overrides a deprecated API.
 [javac] Note: Recompile with -Xlint:deprecation for details.
 [javac] Note: Some input files use unchecked or unsafe operations.
 [javac] Note: Recompile with -Xlint:unchecked for details.
 [mkdir] Created dir: /home/angel/builds/harmony/suse-10.1-em64t
 /clean/classlib/trunk/deploy/jdk/jre/lib/boot

 call-modules-all:

 compile-java:
  [echo] Compiling ACCESSIBILITY classes

 copy-resources:
  [copy] Copying 1 file to /home/angel/builds/harmony/suse-10.1-em64t
 /clean/classlib/trunk/build/classes

 svn-info:

 build-jar:

 BUILD FAILED
 /home/angel/builds/harmony/suse-10.1-em64t
/clean/classlib/trunk/build.xml:108
 :
 The following error occurred while executing
 this line:
 /home/angel/builds/harmony/suse-10.1-em64t
/clean/classlib/trunk/make/build-
 java.xml:183: The following error occurred while executing
 this line:
 /home/angel/builds/harmony/suse-10.1-em64t
/clean/classlib/trunk/make/properti
 es.xml:249:
 The following error occurred while executing
 this line:
 /home/angel/builds/harmony/suse-10.1-em64t
/clean/classlib/trunk/make/properti
 es.xml:259:
 The following error occurred while executing
 this line:
 /home/angel/builds/harmony/suse-10.1-em64t
/clean/classlib/trunk/modules/acces
 sibility/build.xml:90:
 No supported regular expression ma
 tcher 

Re: [ant][classlib][em64t]Problems during classlib on em64t (revision 462753)

2006-10-11 Thread Mark Hindess

On 11 October 2006 at 18:26, Valentin Al. Sitnick (Moscow) [EMAIL 
PROTECTED] wrote:
 
 It is very strange but I have needed jdk  jars

Yeah.  I thought when adding the regexp mapper dependency that this
should be a non-issue since everyone will need 1.5 to compile anyway.
Your setup looks like it has all three options to me.  You could check
the ant -v output but it'll be very verbose and I'm not certain it'll
help with this problem.

I've added an [ant] tag to the subject in the hope that Matt Benson will
spot this thread and might offer some insight?

Regards,
 Mark.

 ---
 compile-java:
  [echo] Compiling ACCESSIBILITY classes
 
 copy-resources:
 
 svn-info:
 
 build-jar:
 
 BUILD FAILED
 /home/angel/builds/harmony/suse-10.1-em64t/clean/classlib/trunk/build.xml:108
 :
 The following error occurred while executing this line:
 /home/angel/builds/harmony/suse-10.1-em64t/clean/classlib/trunk/make/build-
 java.xml:183: The following error occurred while executing
 this line:
 /home/angel/builds/harmony/suse-10.1-em64t/clean/classlib/trunk/make/properti
 es.xml:249:
 The following error occurred while executing
 this line:
 /home/angel/builds/harmony/suse-10.1-em64t/clean/classlib/trunk/make/properti
 es.xml:259:
 The following error occurred while executing
 this line:
 /home/angel/builds/harmony/suse-10.1-em64t/clean/classlib/trunk/modules/acces
 sibility/build.xml:90:
 No supported regular expression matcher found
 
 Total time: 20 seconds
 
 Linux_x86_64 (bigbox): /home/angel/builds/harmony/suse-10.1-em64t
 /clean/classlib/trunk
 18:17:24 $ java -version
 java version 1.5.0_09
 Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_09-b01)
 Java HotSpot(TM) 64-Bit Server VM (build 1.5.0_09-b01, mixed mode)
 
 Linux_x86_64 (bigbox): /home/angel/builds/harmony/suse-10.1-em64t
 /clean/classlib/trunk
 18:19:32 $ ant -version
 Apache Ant version 1.6.5 compiled on June 16 2006
 
 Linux_x86_64 (bigbox): /home/angel/builds/harmony/suse-10.1-em64t
 /clean/classlib/trunk
 18:19:54 $ ls /usr/postinstall/ant/apache-ant-1.7.0Beta2/lib/
 ant-antlr.jarant.jar   ant-stylebook.jar
 ant-apache-bcel.jar  ant-javamail.jar  ant-swing.jar
 ant-apache-bsf.jar   ant-jdepend.jar   ant-trax.jar
 ant-apache-log4j.jar ant-jmf.jar   ant-weblogic.jar
 ant-apache-oro.jar   ant-jsch.jar  jakarta-oro-2.0.8.jar
 ant-apache-regexp.jarant-junit.jar jakarta-regexp-1.4.jar
 ant-apache-resolver.jar  ant-launcher.jar  libraries.properties
 ant-commons-logging.jar  ant-netrexx.jar   README
 ant-commons-net.jar  ant-nodeps.jarxercesImpl.jar
 ant-jai.jar  ant-starteam.jar  xml-apis.jar
 
 Linux_x86_64 (bigbox): /home/angel/builds/harmony/suse-10.1-em64t
 /clean/classlib/trunk
 18:20:16 $
 
 -
 
 
 
 
 
 
 
 
 
 
 On 10/11/06, Mark Hindess [EMAIL PROTECTED] wrote:
 
 
  On 11 October 2006 at 16:18, Valentin Al. Sitnick (Moscow) 
  [EMAIL PROTECTED] wrote:
  
   Hi,
   I've tried to build classlib on em64t workstation an got some
  problems:
  
   0. Bug in depends.xml - hosts architectures defined with bug
   ---
   condition property=hack.arch value=ipf
   isset property=is.x86_64 /
   /condition
   --- small fix
condition property=hack.arch value=ia64
   isset property=is.ia64 /
   /condition
  
   condition property=hack.arch value=x86_64
   isset property=is.x86_64 /
   /condition
---
  
   1. ant (1.6.5 or 1.7.0.beta2 - I've tried to use both) cannot create
   symlinks. It is not serious porblem - it is possible to create these
  lintks
   manually
   2. build process was interrupted by error:
  
  
  ---
 --
   -
-really-link:
  
   check:
  
   -compile:
   [mkdir] Created dir: /home/angel/builds/harmony/suse-10.1-em64t
   /clean/classlib/trunk/build/classes
   [javac] Compiling 3397 source files to
  /home/angel/builds/harmony/suse-
   10.1-em64t/clean/classlib/trunk/build/classes
   [javac] Note: * uses or overrides a deprecated API.
   [javac] Note: Recompile with -Xlint:deprecation for details.
   [javac] Note: Some input files use unchecked or unsafe operations.
   [javac] Note: Recompile with -Xlint:unchecked for details.
   [mkdir] Created dir: /home/angel/builds/harmony/suse-10.1-em64t
   /clean/classlib/trunk/deploy/jdk/jre/lib/boot
  
   call-modules-all:
  
   compile-java:
[echo] Compiling ACCESSIBILITY classes
  
   copy-resources:
[copy] Copying 1 file to /home/angel/builds/harmony/suse-10.1-em64t
   /clean/classlib/trunk/build/classes
  
   svn-info:
  
   build-jar:
  
   BUILD FAILED
   

Re: [testing] test suite layout, testNG, and more

2006-10-11 Thread Richard Liang

On 10/11/06, Andrew Zhang [EMAIL PROTECTED] wrote:

On 10/9/06, Richard Liang [EMAIL PROTECTED] wrote:

 On 10/9/06, Mikhail Loenko [EMAIL PROTECTED] wrote:
  What is the status of our discussions about new test suite layout?
  Long ago we decided not to move existing tests until we finish with
  that discussion but the discussion seems to be either dead or in coma

 It's not dead ;-) We are waiting for the completion of j.u.concurrent
 so that we could run a pilot and continue our discussion.


Looking forward to ...

btw, Harmony may also benifit from failure and rerun feature of TestNG. I
believe developers will like it!


Sure ;-)





  Does it make sense to continue putting the tests in order (according to
 the old
  model) and relayout them as soon as we finish the discussion?

 Yes, it does make sense. Before we draw any new conclusion about
 TestNG, I suggest we follow our existing testing
 conventions/guidelines.

 
  Thanks,
  Mikhail
 
  -
  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 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]




--
Best regards,
Andrew Zhang





--
Richard Liang
China 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]



[drlvm][build] Make svn stamping optional

2006-10-11 Thread Salikh Zakirov
Geir, Mark,

any chance of HARMONY-1083 being committed?

I've updated it to match the current trunk
and also incorporated best practices from classlib's build system.

Without this change the file version_svn_tag.h ends up changed after every build
in my workspace, which is annoying.


-
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] DRLVM build on Windows

2006-10-11 Thread Oliver Deakin

That's great, thanks Salikh. Could we also stick a link to this page
in the build readme? It would be good to make it as easy to find
as possible for a first time (and the rest of us) DRLVM builder.

Regards,
Oliver

Salikh Zakirov wrote:

Oliver Deakin wrote:
  

This should be listed somewhere under Gotchas while building DRLVM.
It would be useful to have these helpful tips stored for future Harmony
contributors. I see there are already some useful DRLVM docs on the
website - perhaps some kind of build troubleshooting section would
also be good?



I've started a wiki page DRLVM Build Troubleshooting to collect such recipes.

http://wiki.apache.org/harmony/DrlvmBuildTroubleshooting


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



[jira] 'Patch available' status

2006-10-11 Thread Salikh Zakirov
Hi,

we had a discussion about adding new searchable 'Patch Available' status
to JIRA [1] some time ago. Several people supported the idea, and there
were no objections.

However, no actions have been made.

Geir, have you forgotten about it, or do you have some objections?

[1] 
http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200609.mbox/[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: [wiki] frontpage outdated?

2006-10-11 Thread Geir Magnusson Jr.



Salikh Zakirov wrote:

Hi,

after creating a wiki page 
http://wiki.apache.org/harmony/DrlvmBuildTroubleshooting
I was wondering where to link it up, so that it would be 'clickable-through' 
from
the start page.

I haven't found any suitable place.

Moreover, the front page contains a lot of stuff not directly related to the 
current
state of the project.

I suggest to clean up front page by moving most of its contents to pages like
'initial project proposals', 'bookmarks' etc.
The content which I think is appropriate for the wiki front page are the 
following links

* component links: class library, jchevm, drlvm
* status page links
* troubleshooting page links

It looks like someone already started cleaning and created the page 
'OldFrontPage',
but the frontpage is still cluttered.

Comments?


That was me - I started as I thought the same thing.

Go for it :)

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] 'Patch available' status

2006-10-11 Thread Mark Hindess

I'll take a look.

-Mark.

On 11 October 2006 at 20:03, Salikh Zakirov [EMAIL PROTECTED] wrote:
 Hi,
 
 we had a discussion about adding new searchable 'Patch Available' status
 to JIRA [1] some time ago. Several people supported the idea, and there
 were no objections.
 
 However, no actions have been made.
 
 Geir, have you forgotten about it, or do you have some objections?
 
 [1] http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200609.mbo
 x/[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][build] Make svn stamping optional

2006-10-11 Thread Geir Magnusson Jr.

I'll be happy to look at it.  It is somewhat annoying, but very useful :)

geir


Salikh Zakirov wrote:

Geir, Mark,

any chance of HARMONY-1083 being committed?

I've updated it to match the current trunk
and also incorporated best practices from classlib's build system.

Without this change the file version_svn_tag.h ends up changed after every build
in my workspace, which is annoying.


-
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] 'Patch available' status

2006-10-11 Thread Geir Magnusson Jr.



Salikh Zakirov wrote:

Hi,

we had a discussion about adding new searchable 'Patch Available' status
to JIRA [1] some time ago. Several people supported the idea, and there
were no objections.

However, no actions have been made.

Geir, have you forgotten about it, or do you have some objections?


I've been trying to get it to work as our default navigator. There is 
some issue with JIRa...


You can create your own issue navigator and use that, which will show 
patch avail...


geir



[1] 
http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200609.mbox/[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][unit tests] the goal is to achieve 100% pass rate

2006-10-11 Thread Geir Magnusson Jr.
Excellent.  As appreciative as I am of J9, I can't wait to work in 
all-Harmony code :)


geir


Elena Semukhina wrote:

Hello all,

I think that the goal of running classlib unit tests on DRLVM with 100% 
pass

rate could be worth to achieve. Actually today we have 99% (without
awt/swing) but still have about 30 failures/errors. Most of them have been
evaluated and corresponding JIRAs filed. There is a page on Harmony Wiki
which lists those JIRA issues:

http://wiki.apache.org/harmony/Unit_Tests_Pass_on_DRLVM

Are there any volunteers to help with DRLVM bugs fixing?

Thanks,
Elena



-
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] DRLVM build on Windows

2006-10-11 Thread Salikh Zakirov
Oliver Deakin wrote:
 Could we also stick a link to this page
 in the build readme? It would be good to make it as easy to find
 as possible for a first time (and the rest of us) DRLVM builder.

Done as README-troubleshooting-link.patch in HARMONY-1828 (on top of 
HARMONY-1730 README.patch)


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



Re: Can't get binary to work

2006-10-11 Thread Geir Magnusson Jr.

I'm ready to install Gentoo to see if I can repeat it...  what version?

Armand Navabi wrote:
Seemed promising, but this patch did not help.  


I ran java -Xtrace helloworld to see if it even got to the patched code,
but it seems like my code hangs even before getting to that code.

I'm really not sure what my next step is to try to get the VM up and running
correctly.

Armand

-Original Message-
From: Alexey Varlamov [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, October 11, 2006 1:54 AM

To: harmony-dev@incubator.apache.org
Subject: Re: Can't get binary to work

2006/10/9, Armand Navabi [EMAIL PROTECTED]:

Yes, I am still having problems.

Like I said, I am just trying to run the executable currently.  I see the
same problem I was seeing when I built the DRLVM.

I downloaded the Latest Linux JRE snapshot build, set the JAVA_HOME, PATH
and LD_LIBRARY_PATH environment variables and then tried to run

helloworld.

Sometimes the executable will print hello world! and then hang, and
sometimes it will just hang.  Same thing happens when I download and try

to

run the Latest Linux HDK with helloworld.


Armand,

The symptoms you are describing similar to investigation results of
HARMONY-1816. It is interesting to see if the patch helps you.

[0] http://issues.apache.org/jira/browse/HARMONY-1816


My platform is Linux Gentoo 2.6.17.8.

Thanks,
Armand

-Original Message-
From: Tim Ellison [mailto:[EMAIL PROTECTED]
Sent: Sunday, October 08, 2006 6:57 PM
To: harmony-dev@incubator.apache.org
Subject: Re: Can't get binary to work

Are you still having problems Armand?

Tim

Armand Navabi wrote:

I have been unable to figure out why I can't get the drlvm to run
helloworld.  The classlib with Intel's VM works fine.



So now I thought I'd just see if I could download the binary and execute

it

(JRE), but it is behaving the same way (I guess this is to be expected,

but

I just wanted to make sure it wasn't something in the build process that

was

causing the trouble).



When I run java by itself it executes without problem, when I run java
helloworld it just hangs, and java -showversion will print version

info

and then hang right after that:



[EMAIL PROTECTED] /scratch/anavabi/Harmony/harmony-jre-r450941/bin $ ./java
-showversion

Apache Harmony Launcher : (c) Copyright 1991, 2006 The Apache Software
Foundation or its licensors, as applicable.

java version 1.5.0

pre-alpha : not complete or compatible

svn = r450941, (Sep 28 2006), Linux/ia32/gcc 3.4.6, release build

http://incubator.apache.org/harmony

(hangs here)



Here are the environment variables that I think are relevant:



LD_LIBRARY_PATH



/scratch/anavabi/Harmony/harmony-jre-r450941/bin:/scratch/anavabi/Harmony/ha

rmony-jre-r450941/bin/default/

PATH



.:/usr/local/bin:/bin:/usr/bin:/sbin:/usr/sbin:/usr/i686-pc-linux-gnu/gcc-bi
n/3.4.6:/opt/ICAClient:/opt/sun-jdk-1.5.0.06/bin:/opt/sun-jdk-1.5.0.06/jre/b

in:/usr/kde/3.5/bin:/usr/qt/3/bin:/usr/games/bin:/opt/eclipse-sdk-3.2.1

JAVA_HOME

/scratch/anavabi/Harmony/harmony-jre-r450941/bin



I'm on Gentoo 2.6.17.8.

Any ideas what may be going on?



Thanks,

Armand



--

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

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



-
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] VM throws NullPointerException in case java.class.path is not set

2006-10-11 Thread Geir Magnusson Jr.
Well, that's actually an interesting question...  should the VM do it if 
not set, or should the launcher do it?  I think that based on the 
principle of least surprise, it should be launcher.


The user uses the launcher, so the launcher should be nice to the user, 
and current directory really is somewhat of a user-oriented concept, 
and is what the human expects.


Programs use the VM, and I think the VM should be more strict for safety.


geir

Oliver Deakin wrote:

Geir Magnusson Jr. wrote:
Absolutely.  And if not, even the principle of be kind to your users 
dictates that we do something nice for them.


Agreed - being nice to the user where we can is a good thing! Having the
current directory on the classpath is pretty common - giving it to the
user by default costs nothing and saves them having to explicitly set it
in every launcher they write.

Regards,
Oliver



geir

Evgueni Brevnov wrote:

Oliver,

You have provided strong arguments that RI uses current directory by
default. I think it makes sense to be compatible with RI in this
particular case.

Thanks
Evgueni

On 10/10/06, Oliver Deakin [EMAIL PROTECTED] wrote:

I have just tried launching the RI with a simple launcher (very basic -
CreateJavaVM(),
finds and launches a class, then calls DestroyJavaVM()). The launcher
does not
set java.class.path, and executes the main method of the following 
class:


  public class SysInfo {
  public static void main(String[] args) {
  System.getProperties().list(System.out);
  }
  }

The java.class.path value is printed as:

 java.class.path=

So it appears that java.class.path property is left empty by default.
However,
to have found the SysInfo class, the RI must have searched in the 
current

directory. I can also instantiate other classes that are located in the
current
directory. So although the java.class.path is set to an empty string,
internally
there is a default inclusion of the current directory.

IMHO we follow the RI behaviour here, and have an implicit inclusion of
the current directory unless the classpath is explicitly set.

Regards,
Oliver


Evgueni Brevnov wrote:
 It seems for me like pretty specified VM behavior to treat classpath
 absence as take classes from current directory. At least RI does like
 that when you don't specify classpath on command line.

 Evgueni

 On 10/10/06, Mikhail Fursov [EMAIL PROTECTED] wrote:
 Another solution could be a simple shutdown with the valid error
 message.
 Sometimes the error message is better than hidden behaviour.
 So the alternative is to check all properties VM needs before 
running

 real
 startup and fail if some of the properties are not found.


 On 10/10/06, Evgueni Brevnov [EMAIL PROTECTED] wrote:
 
  Hi All,
 
  Currently DRLVM starts with help of the launcher. The launcher 
does a
  lot of stuff required to create VM instatnce. As a part of its 
job it
  sets up java.class.path property. And this is good. What is not 
good

  that DRLVM crashes (actually throws NullPointerException in
  initalization stage) if java.class.path is not set. I believe 
it makes

  sense to point java.class.path to current directory inside VM if
  launcher doesn't set it.
 
  What do u think?
 
  Thanks
  Evgueni
 
  
-

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

 
 


 --
 Mikhail Fursov



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



-
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] DRLVM build on Windows

2006-10-11 Thread Geir Magnusson Jr.
what would be ideal is a patch for the website, so there's a pointer 
from the website to this content.


Salikh Zakirov wrote:

Oliver Deakin wrote:

This should be listed somewhere under Gotchas while building DRLVM.
It would be useful to have these helpful tips stored for future Harmony
contributors. I see there are already some useful DRLVM docs on the
website - perhaps some kind of build troubleshooting section would
also be good?


I've started a wiki page DRLVM Build Troubleshooting to collect such recipes.

http://wiki.apache.org/harmony/DrlvmBuildTroubleshooting


-
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][launcher]shall we handle the parameter -version and -showversion in launcher or vm?

2006-10-11 Thread Geir Magnusson Jr.



Tony Wu wrote:

I encounter an error[1] when run java -version with IBM VME today and
it is ok on DRLVM. I wonder how to handle these simple parameters. Is
there any decision
about that?

[1]
[EMAIL PROTECTED]:~/harmony/workspace/trunk/deploy/jdk/jre/bin$ ./java -version
Apache Harmony Launcher : (c) Copyright 1991, 2006 The Apache Software
Foundation or its licensors, as applicable.
JVMJ9VM007E Command-line option unrecognised: -version
HMYEXEL062E Internal VM error: Failed to create Java VM
FAILED to invoke JVM.



Yes, we won't pass -version into the VM, but simply have an expectation 
that the VM will set a property that can be read by the launcher post VM 
init.


geir

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



Re: [drlvm] smoke test : gc PhantomReferenceQueueTest is really unstable

2006-10-11 Thread Geir Magnusson Jr.

fabulous!

Pavel Pervov wrote:

Geir,

sorry for confusion. The bug you are referring to is described in [1].

Regards,
   Pavel.

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



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


I get this more often than not.  Can someone interested take a look?
Happens w/ jitrino :

java:

/home/geir/dev/apache/harmony/enhanced/trunk/working_vm/vm/vmcore/src/class_support/C_Interface.cpp:524: 


const char* class_get_name(Class*):
Assertion `cl' failed.
SIGABRT in VM code.
Stack trace:
addr2line: '[vdso]': No such file
1: ?? (D7^CCA5FEB6A8DCFDA4FFE8E3B6:-1)
java:

/home/geir/dev/apache/harmony/enhanced/trunk/working_vm/vm/vmcore/src/class_support/C_Interface.cpp:524: 


const char* class_get_name(Class*):
Assertion `cl' failed.
SIGABRT in VM code.
Stack trace:
addr2line: '[vdso]': No such file
3: ?? (D7^CCA5FEB6B8C8BABFFFE8E3B6:-1)
2: abort (??:-1)
4: __assert_fail (??:-1)
5: abort (??:-1)
6: __assert_fail (??:-1)
7: class_get_name

(/home/geir/dev/apache/harmony/enhanced/trunk/working_vm/vm/vmcore/src/class_support/C_Interface.cpp:525) 


8: class_get_name

(/home/geir/dev/apache/harmony/enhanced/trunk/working_vm/vm/vmcore/src/class_support/C_Interface.cpp:525) 


9: Jitrino::Jet::is_magic(Class*) (??:-1)
10: Jitrino::Jet::Compiler::gen_magic() (??:-1)
11: Jitrino::Jet::Compiler::handle_inst() (??:-1)
12: Jitrino::Jet::is_magic(Class*) (??:-1)
13: Jitrino::Jet::Compiler::gen_magic() (??:-1)
14: Jitrino::Jet::Compiler::handle_inst() (??:-1)
15: Jitrino::Jet::Compiler::comp_gen_insts(unsigned int,
unsigned int, unsigned int) (??:-1)
16: Jitrino::Jet::Compiler::comp_gen_code_bb(unsigned int) 
(??:-1)

17: Jitrino::Jet::Compiler::comp_gen_insts(unsigned int,
unsigned int, unsigned int) (??:-1)
18: Jitrino::Jet::Compiler::comp_gen_code_bb(unsigned int) 
(??:-1)

19: Jitrino::Jet::Compiler::compile(void*, Method*,
OpenMethodExecutionParams const) (??:-1)
20: Jitrino::Jet::Compiler::compile(void*, Method*,
OpenMethodExecutionParams const) (??:-1)
21: Jitrino::Jet::compile_with_params(void*, void*, Method*,
OpenMethodExecutionParams) (??:-1)
22: Jitrino::Jet::compile_with_params(void*, void*, Method*,
OpenMethodExecutionParams) (??:-1)
23: JIT_compile_method_with_params (??:-1)
24: JIT_compile_method_with_params (??:-1)
25: Dll_JIT::compile_method_with_params(void*, Method*,
OpenMethodExecutionParams)
(/home/geir/dev/apache/harmony/enhanced/trunk/working_v
m/vm/vmcore/include/dll_jit_intf.h:86)
26: compile_do_compilation_jit(Method*, JIT*)

(/home/geir/dev/apache/harmony/enhanced/trunk/working_vm/vm/vmcore/src/jit/compile.cpp:700) 


27: vm_compile_method

(/home/geir/dev/apache/harmony/enhanced/trunk/working_vm/vm/vmcore/src/class_support/C_Interface.cpp:2539) 


28: Dll_JIT::compile_method_with_params(void*, Method*,
OpenMethodExecutionParams)
(/home/geir/dev/apache/harmony/enhanced/trunk/working_v
m/vm/vmcore/include/dll_jit_intf.h:86)
29: compile_do_compilation_jit(Method*, JIT*)

(/home/geir/dev/apache/harmony/enhanced/trunk/working_vm/vm/vmcore/src/jit/compile.cpp:700) 


30: vm_compile_method

(/home/geir/dev/apache/harmony/enhanced/trunk/working_vm/vm/vmcore/src/class_support/C_Interface.cpp:2539) 


31: DrlEMImpl::compileMethod(Method*)

(/home/geir/dev/apache/harmony/enhanced/trunk/working_vm/vm/em/src/DrlEMImpl.cpp:520) 


32: CompileMethod

(/home/geir/dev/apache/harmony/enhanced/trunk/working_vm/vm/em/src/em_intf.cpp:50) 


33: compile_do_compilation

(/home/geir/dev/apache/harmony/enhanced/trunk/working_vm/vm/vmcore/src/jit/compile.cpp:780) 


34: compile_jit_a_method(Method*)

(/home/geir/dev/apache/harmony/enhanced/trunk/working_vm/vm/vmcore/src/jit/compile.cpp:828) 


35: IP is 0xB6891172 native code
36: java/lang/FinalizerThread.wakeupFinalization()V (??:-1)
37: java/lang/FinalizerThread.startFinalization(Z)V (??:-1)
38: vm_invoke_native_array_stub

(/home/geir/dev/apache/harmony/enhanced/trunk/working_vm/vm/vmcore/src/util/ia32/base/invoke_native_stub_i 


a32.asm:41)
39: JIT_execute_method_default(void*, _jmethodID*, jvalue*,
jvalue*)
(/home/geir/dev/apache/harmony/enhanced/trunk/working_vm/vm/vmcore/sr
c/util/ia32/base/ini_iA32.cpp:200)
40: DrlEMImpl::compileMethod(Method*)

(/home/geir/dev/apache/harmony/enhanced/trunk/working_vm/vm/em/src/DrlEMImpl.cpp:520) 


41: CompileMethod

(/home/geir/dev/apache/harmony/enhanced/trunk/working_vm/vm/em/src/em_intf.cpp:50) 


42: compile_do_compilation

(/home/geir/dev/apache/harmony/enhanced/trunk/working_vm/vm/vmcore/src/jit/compile.cpp:780) 


43: compile_jit_a_method(Method*)


Re: [drlvm][jvmti] Last commit of Harmony-1582 brocks JVMTI support for DRLVM.

2006-10-11 Thread Geir Magnusson Jr.

If all agree, please submit your change as a patch to that patch :)

Salikh Zakirov wrote:

Pavel Rebriy wrote:

Fix for Harmony-1582 brocks initialization of JVMTI support. I'm
investigating the problem and going to create fixing JIRA as soon as
possible.



The fix is ready. See http://issues.apache.org/jira/browse/HARMONY-1826


Pavel, I have reviewed the patch in HARMONY-1826, and it looks great!

A couple of minor comments.
The change like this doesn't really move us closer to multi-VM support,
as the jni_env is hardcoded to the emitted code.

-s = mov(s,  M_Base_Opnd(esp_reg, 0),  Imm_Opnd((int)jni_native_intf)) ; // 
o0=jni_native_intf
+s = mov(s,  M_Base_Opnd(esp_reg, 0),  
Imm_Opnd((int)p_TLS_vmthread-jni_env)) ; // o0=jni_native_intf
 



The following change seems to fix unrelated issue ('Fixed Single Step event 
disabling'?),
so I think it would have been better if it filed as a separate JIRA/patch.

-
ti-vm_brpt-release_intf(vm_thread-ss_state-predicted_breakpoints);
-_deallocate((unsigned char *)vm_thread-ss_state);
-vm_thread-ss_state = NULL;
+if( vm_thread-ss_state ) {
+if( vm_thread-ss_state-predicted_breakpoints ) {
+
ti-vm_brpt-release_intf(vm_thread-ss_state-predicted_breakpoints);
+}
+_deallocate((unsigned char *)vm_thread-ss_state);
+vm_thread-ss_state = NULL;
+}


Anyway, I vote for a quick inclusion of this patch.


-
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: Can't get binary to work

2006-10-11 Thread Armand Navabi
Geir Magnusson Jr. wrote:
 I'm ready to install Gentoo to see if I can repeat it...  what version?

Version 2.6.17.8.  I think some people have got it to work on Gentoo. 
I'm not sure what version they had.

Armand
 Armand Navabi wrote:
 Seemed promising, but this patch did not help. 
 I ran java -Xtrace helloworld to see if it even got to the patched
 code,
 but it seems like my code hangs even before getting to that code.

 I'm really not sure what my next step is to try to get the VM up and
 running
 correctly.

 Armand

 -Original Message-
 From: Alexey Varlamov [mailto:[EMAIL PROTECTED] Sent:
 Wednesday, October 11, 2006 1:54 AM
 To: harmony-dev@incubator.apache.org
 Subject: Re: Can't get binary to work

 2006/10/9, Armand Navabi [EMAIL PROTECTED]:
 Yes, I am still having problems.

 Like I said, I am just trying to run the executable currently.  I
 see the
 same problem I was seeing when I built the DRLVM.

 I downloaded the Latest Linux JRE snapshot build, set the JAVA_HOME,
 PATH
 and LD_LIBRARY_PATH environment variables and then tried to run
 helloworld.
 Sometimes the executable will print hello world! and then hang, and
 sometimes it will just hang.  Same thing happens when I download and
 try
 to
 run the Latest Linux HDK with helloworld.

 Armand,

 The symptoms you are describing similar to investigation results of
 HARMONY-1816. It is interesting to see if the patch helps you.

 [0] http://issues.apache.org/jira/browse/HARMONY-1816

 My platform is Linux Gentoo 2.6.17.8.

 Thanks,
 Armand

 -Original Message-
 From: Tim Ellison [mailto:[EMAIL PROTECTED]
 Sent: Sunday, October 08, 2006 6:57 PM
 To: harmony-dev@incubator.apache.org
 Subject: Re: Can't get binary to work

 Are you still having problems Armand?

 Tim

 Armand Navabi wrote:
 I have been unable to figure out why I can't get the drlvm to run
 helloworld.  The classlib with Intel's VM works fine.



 So now I thought I'd just see if I could download the binary and
 execute
 it
 (JRE), but it is behaving the same way (I guess this is to be
 expected,
 but
 I just wanted to make sure it wasn't something in the build process
 that
 was
 causing the trouble).



 When I run java by itself it executes without problem, when I run
 java
 helloworld it just hangs, and java -showversion will print version
 info
 and then hang right after that:



 [EMAIL PROTECTED] /scratch/anavabi/Harmony/harmony-jre-r450941/bin $
 ./java
 -showversion

 Apache Harmony Launcher : (c) Copyright 1991, 2006 The Apache Software
 Foundation or its licensors, as applicable.

 java version 1.5.0

 pre-alpha : not complete or compatible

 svn = r450941, (Sep 28 2006), Linux/ia32/gcc 3.4.6, release build

 http://incubator.apache.org/harmony

 (hangs here)



 Here are the environment variables that I think are relevant:



 LD_LIBRARY_PATH


 /scratch/anavabi/Harmony/harmony-jre-r450941/bin:/scratch/anavabi/Harmony/ha

 rmony-jre-r450941/bin/default/

 PATH


 .:/usr/local/bin:/bin:/usr/bin:/sbin:/usr/sbin:/usr/i686-pc-linux-gnu/gcc-bi

 n/3.4.6:/opt/ICAClient:/opt/sun-jdk-1.5.0.06/bin:/opt/sun-jdk-1.5.0.06/jre/b

 in:/usr/kde/3.5/bin:/usr/qt/3/bin:/usr/games/bin:/opt/eclipse-sdk-3.2.1


 JAVA_HOME

 /scratch/anavabi/Harmony/harmony-jre-r450941/bin



 I'm on Gentoo 2.6.17.8.

 Any ideas what may be going on?



 Thanks,

 Armand


 -- 

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

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



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



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



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


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



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



Re: [drlvm][jvmti] Last commit of Harmony-1582 brocks JVMTI support for DRLVM.

2006-10-11 Thread Salikh Zakirov
Geir Magnusson Jr. wrote:
 If all agree, please submit your change as a patch to that patch :)

Sorry for confusion, 
it wasn't my change, but commented changes from HARMONY-1826.


-
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] 'Patch available' status

2006-10-11 Thread Salikh Zakirov
Geir Magnusson Jr. wrote:
 You can create your own issue navigator and use that, which will show
 patch avail...

I am not sure I understand this completely.

Issue navigator allows me to define my filters and customize column
presence and order. I still do not understand how to get 'patch available' 
information.

There exists 'patch info' column, but somehow it is not shown on the issue list 
page
even if it was enabled on the column configuration page.


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



Re: README.txt patch Was: [drlvm] NPE is thrown when the kernel tests are run on Windows at revision 448448

2006-10-11 Thread Mikhail Fursov

Sveta,
I looked through the README doc. The latest patch looks significantly better
then the first one.
The only item is missed is that we have 3 different GC folders today on the
top level.


On 10/11/06, Konovalova, Svetlana [EMAIL PROTECTED] wrote:




Folks,



I took a close look at the README file and Quick Help pages for users [1]
and developers [2] and created patches for these three docs [JIRA 1730] 
https://issues.apache.org/jira/browse/HARMONY-1730   Taking into
consideration latest changes, I fixed duplication of info and out-dated
content, and tried to improve language in some places.

It would be great if someone can find a chance to look at the patches.
Your feedback is very important!




--
Mikhail Fursov


Re: [DRLVM][JET] write barrier for Java (mmtk)

2006-10-11 Thread Weldon Washburn

hmm we may have version skew going on here.  Mikhail, Robin can we stay
with the July 14 (or there abouts) version that Steve Blackburn posted to
his web page?

On 10/11/06, Mikhail Fursov [EMAIL PROTECTED] wrote:


On 10/11/06, Weldon Washburn [EMAIL PROTECTED] wrote:

 Robin,

 Thanks for helping clarify the issues.  The MMTk code base we are using
is
 what Steve Blackburn supplied us in mid July.


Looks like 'unboxed' package from MMTk has been updated recently too. I've
found 'Address::prefetchNTA()' op today we do not have in our version.




--
Mikhail Fursov





--
Weldon Washburn
Intel Middleware Products Division


Re: [jira] 'Patch available' status

2006-10-11 Thread Geir Magnusson Jr.



Salikh Zakirov wrote:

Geir Magnusson Jr. wrote:

You can create your own issue navigator and use that, which will show
patch avail...


I am not sure I understand this completely.

Issue navigator allows me to define my filters and customize column
presence and order. I still do not understand how to get 'patch available' 
information.


it's one of the possible columns.



There exists 'patch info' column, but somehow it is not shown on the issue list 
page
even if it was enabled on the column configuration page.


I know - that's what I think is a bug...




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



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



[drlvm] -verbose option does nothing

2006-10-11 Thread Jean-frederic Clere

Hi,

I have noted the than java -verbose does not print any information, is 
that normal?


Cheers

Jean-Frederic

PS: It looks is set correctly in vm/vmcore/src/init/parse_arguments.cpp: 
set_threshold(util::CLASS_LOGGER, INFO);


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



Re: [dlrvm] ClassCircularityError in recursive compilation (Was: Re: [drlvm] smoke test : gc PhantomReferenceQueueTest is really unstable)

2006-10-11 Thread Gregory Shimansky
On Wednesday 11 October 2006 16:15 Pavel Pervov wrote:
 (Branching from original thread as this is different problem than in the
 root message.)

Wasn't it the same problem, just happening on classlib initialization? I think 
the scenario is the same.

 The following scenario will fail:

 1) JIT compiles some method and resolves some class A through user
 defined class loader
 2) user define class loader loads class A and triggers compilation of
 some of its methods
 3) this method happens to depend on class A, and, thus, JIT resolves the
 class A through the same class loader

 Voila! We have the described situation.

A synthetic test for drlvm could really help to emphasize the problem. Then we 
can run this test on all other VMs with possible modifications. BTW sun's 
hotspot should compile a method if it is called several times, so user 
defined class loader could do something like calling this method many times 
to trigger its compilation.

-- 
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: Can't get binary to work

2006-10-11 Thread Gregory Shimansky
On Wednesday 11 October 2006 20:36 Geir Magnusson Jr. wrote:
 I'm ready to install Gentoo to see if I can repeat it...  what version?

Gentoo is a strange and weird distribution. It has no version :) It has 
versions for individual packages only.

It has profile version like 2006.1 with compilation flags for some key 
packages. But except for that Gentoo could be used for a very long time and 
the package versions are determined only by the choice of the user.

Armand refers to the kernel version. It is 2.6.17-r8 which is the latest 
stable for x86 and amd64 architectures. But referring just to kernel version 
in Gentoo is not correct. Any package of any version may exist in 
installation, so it is better to specify at least glibc, gcc (with flags 
specified in /etc/make.conf), libstdc++ and binutils versions when referring 
to Gentoo installation.

-- 
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: [drlvm] the big soup of VM properties (HARMONY-1626)

2006-10-11 Thread Gregory Shimansky
On Wednesday 11 October 2006 09:41 Mikhail Fursov wrote:
 +1 to Eugueni and Alexey and -1 to use String type in the intercomponent
 interface. + AFAIK the String type is VM internal type only.

Ok you've convinced me. +1 for const char *

 On 10/11/06, Alexey Varlamov [EMAIL PROTECTED] wrote:
  2006/10/11, Evgueni Brevnov [EMAIL PROTECTED]:
   Gregory,
  
   My 2cents:
  
   1cent) I think we should not integrate property module so tight (by
   using StringPool) with VM internals. Let it be independent enough.
   2cent) I also don't think we should pollute StringPool any further.
   Instead I would like to see if we can get it smaller say by
   splitting into two pools whatever...
 
  Agreed. Besides properties are used in VM almost solely during init,
  no performance gain here. So -1 to using Strings for properties.
 
   Evgueni
  
   On 10/11/06, Gregory Shimansky [EMAIL PROTECTED] wrote:
On Tuesday 10 October 2006 11:36 Geir Magnusson Jr. wrote:
 Inline

 Dmitry Yershov wrote:

 [snip]

 VM properties proposal
 ==
 
  The general purpose of VM Properties subcomponent is to
 
  provide
 
  centralized access to a common properties table. A property is
 
  meant
 
  as a pair of key and value. The properties stored in VM
 
  Properties
 
  table represent configuration settings for a separate component
 
  (such
 
  as VMCore, GC, JIT etc) or for the whole system. Another use case
 
  for
 
  the properties is communication between different components.
 
  Requirements
  
 
  1) The key and value are represented as string (i.e.
 
  char*).
 
 and I propose that on each operation, a copy is made, so that the
 
  caller
 
frees the  string that they got or gave.
   
Hmm... I thought of another type. VM has a String class which
 
  represents an
 
internal strings implementation. String pointers all refer to the
same interned const char * memory location so comparing them is
faster, you
 
  just
 
compare pointers.
   
Would it be better to have key and value be String * instead of const
 
  char *?
 
It would save memory allocation, copying and comparing and lookup in
properties hash table could be done using a pointer.
   
I don't think it is a very performance critical place, properties
 
  aren't
 
accessed very often, but at least it may reduce memory footprint and
 
  will
 
cause less memory leaks when someone forgets to free a returned copy.
   
On the other hand, String storage is global to the whole VM, so there
 
  are tons
 
of strings kept inside of it. Lookup inside of a small hash table
like properties may be much faster than lookup through all the
strings that
 
  VM
 
keeps... Hmm now I am not sure I want to suggest this way, just want
 
  it to be
 
considered.
   
--
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]
  
   -
   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]

-- 
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: [classlib][build]Lacks liblcms.a libpng.a and etc on Linux and recommend to add them to fetch-depends target

2006-10-11 Thread Gregory Shimansky
On Wednesday 11 October 2006 05:28 Leo Li wrote:
 But I cannot find the rpm for liblcms.a and icc34.h in the CD. There is no
 liblcms*.rpm or lcms*.rpm.  And what do you mean official mirror, the
 redhat site?

 Although I admit rpmfind is not a good way, but it really works after I
 installed all the necessary packages and put the required files to the
 appropriate position.

 At least Harmony should gives some hints, for example, which rpm is
 required and where to get them. Since not every body is an expert of rpm,
 and aware of  the relationship between the required files and rpms, as well
 as their versions, as you said, the rpm hell.

Yes I agree that there should be some necessary library requirements for 
building all of the harmony components, and these requirements should be 
described in some place. This was agreed in another branch of this thread.

As to rpm packages, send me a email directly, please write which version of 
redhat you have installed. I am sure I can help you with installing the 
necessary packages.

-- 
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: [drlvm] Using latest linux snapshot[hdk]...

2006-10-11 Thread Gregory Shimansky
On Wednesday 11 October 2006 14:44 Ilya Okomin wrote:
 On 10/11/06, Gregory Shimansky [EMAIL PROTECTED] wrote:
  On Tuesday 10 October 2006 13:02 Ilya Okomin wrote:
   On 10/9/06, Geir Magnusson Jr. [EMAIL PROTECTED] wrote:
Yeah, I would have been surprised it that worked.
   
Why not just install v 6?
  
   I have libstdc++.so.6 on my system.
   Nevertheless I have the same results as Dmitry described:
  
   bash-2.05b$ ./java -version
   Apache Harmony Launcher : (c) Copyright 1991, 2006 The Apache Software
   Foundation or its licensors, as applicable.
   Failed to open JVM DLL:
   /work/Harmony/builds/harmony-jre-latest/bin/default/harmonyvm
   (/lib/ssa/libstdc++.so.6: version `GLIBCXX_3.4' not found (required by
   /work/Harmony/builds/harmony-jre-latest/bin/default/libharmonyvm.so))
  
   I used harmony-jre-r450941 snapshot.
   Should I do anything else to resolve this issue?
 
  It is probably because your custom libstdc++ is still compiled against an
  older glibc version of your distribution. Geir uses more modern version.
  Can
  you run /lib/libc.so.6 and show the output?

 You've asked about libc.so.6 output, here it is:
 
 GNU C Library stable release version 2.3.2, by Roland McGrath et al.
 Copyright (C) 2003 Free Software Foundation, Inc.
 This is free software; see the source for copying conditions.
 There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
 PARTICULAR PURPOSE.
 Compiled by GNU CC version 3.2.3 20030502 (Red Hat Linux 3.2.3-53).
 Compiled on a Linux 2.4.20 system on 2005-09-16.
 Available extensions:
 GNU libio by Per Bothner
 crypt add-on version 2.1 by Michael Glad and others
 linuxthreads-0.10 by Xavier Leroy
 The C stubs add-on version 2.1.2.
 BIND-8.2.3-T5B
 NIS(YP)/NIS+ NSS modules 0.19 by Thorsten Kukuk
 Glibc-2.0 compatibility add-on by Cristian Gafton
 libthread_db work sponsored by Alpha Processor Inc
 Thread-local storage support included.
 For bug reporting instructions, please see:
 http://www.gnu.org/software/libc/bugs.html.
 
 I hope this information will clear some questions.

Well it shows that you have glibc 2.3.x and the more modern version is 2.4 
which I use. If you ask me about why GLIBCXX_3.4 uses version 3, I really 
don't know. But still I think the version numbers for binary builds which 
Geir creates are referring to glibc and running these binaries on the more 
recent Linux installations shouldn't be a problem.

-- 
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: [classlib] [tests] Can anyone explain what these are for?

2006-10-11 Thread Andrew Zhang

On 10/11/06, Alexei Zakharov [EMAIL PROTECTED] wrote:


Some tests for beans contained the code like this:

---
public void testGetArguments() {
   // Covered in the testcases for the constructor
}

public void testGetMethodName() {
   // Covered in the testcases for the constructor
}
---

I just commented it out. I could simply delete it but decided that we
may need it in the future. When we finish with 1.5 and everybody will
have a lot of free time - we can get back to it and think again: do we
need to insert an additional test case here?



Yes. My suggestion is marking these tests with TODO. It's easy for
remindering. Eventually, we'll decide whether removing the TODOs or writing
more test code there.

Thanks!



2006/10/11, Richard Liang [EMAIL PROTECTED]:

On 10/11/06, Nathan Beyer [EMAIL PROTECTED] wrote:
 Perhaps, but there are much better ways of determining that. From just
 reading the test code to code coverage tools.

 From my analysis, these were part of the large test contribution and
 indicated that there wasn't an explicit test for that method. In most
 cases, there were tests for these methods, either in other classes or
 in other methods of the class.

Nathan, I agree ;-)


 -Nathan

 On 10/10/06, Richard Liang [EMAIL PROTECTED] wrote:
  On 10/11/06, Nathan Beyer [EMAIL PROTECTED] wrote:
   I've seen a few and I've deleted any that I've come across. I would
   say feel free to delete them too. I've also been deleting empty

setup

   and teardown methods too.
 
  Please do not simply delete them. Maybe that means we are lack of the
  test for some methods, for example getInetAddress.
 
  
   -Nathan
  
   On 10/10/06, Alexey Petrenko [EMAIL PROTECTED] wrote:
These could be a result of copy/paste tests creation.
And I'm curious why it was written for the first time. :)
   
SY, Alexey
   
2006/10/10, Mark Hindess [EMAIL PROTECTED]:

 I've come across a couple of tests with things like:

 public void test_getInetAddress() {
 assertTrue(Used to test, true);
 }

 Can anyone explain why we have these?


--
Alexei Zakharov,
Intel Middleware Product Division

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





--
Best regards,
Andrew Zhang


Re: [classlib][util.prefs] Implementation should be compatible with RI

2006-10-11 Thread Nathan Beyer

Can you provide a patch for the test case that correctly asserts the
specification's contract and passes on the RI? This may help for
someone to provide a fix for the issue.

-Nathan

On 10/11/06, Elena Semukhina [EMAIL PROTECTED] wrote:

Hi all,

org.apache.harmony.prefs.tests.java.util.prefs.PreferencesTest fails on some
machines when there are restrictions in access to system registry.
https://issues.apache.org/jira/browse/HARMONY-1751 describes the issue. It
looks like Harmony implementation does not follow spec for
Preferences.systemNodeForPackage(). Besides, the test is incorrect as well
because it does not expect java.util.prefs.BackingStoreException on
Preferences.childrenNames() and fails on RI.

Could anyone look into the issue?

--
Thanks,
Elena




-
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]Do we need an instruction of trying HDK on applications?

2006-10-11 Thread Richard Liang

On 10/11/06, Tony Wu [EMAIL PROTECTED] wrote:

Hi all,
I have not found a guideline or instruction for trying hdk on
applications. And I think something like how to try harmony on
applications will do some help for those who have interest in this
job. These days I'm struggling on running Apache Ant on Harmony and
get some experience. Let me post these points as a start :)
Please correct me if I am wrong.

Download the application code, record its revision.(If a stable
version is preferred here?)
Verify latest hdk via,
1. If there are tests of the application, run the tests on RI and
Harmony and record the difference.
2. If there are examples supplied, try to get them working on harmony
to see if there is unexpected behavior.
3. Do some simple trial like real customer following the application's
installation/user-guide.
Post what and how you did on harmony wiki,
http://wiki.apache.org/harmony/ClassLibrary
Dive into the result to find if it is a bug of Harmony. Raise JIRA or
post on mailing list if necessary.

something needs attention,
1.Make sure you are running right JDK.
2.Record any special settingssteps on harmony wiki.

Suggestions? Comments? Additions?


IMHO, it should be very helpful to users. ;-)



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



[classlib]Self-host of Derby

2006-10-11 Thread Leo Li

Hi, all:
I now plan to make the self-host of Derby on Harmony.
Is there anyone interested in this topic?

Here is what I encountered in the process. Hope it will be helpful to
anybody who is interested in it.

At first, the testcases even fails on RI both on windows and ubuntu and
the result are different.???
After some struggiling, I have successfully passed the provided
testcases on RI after I rebuild the source on my machine.
But there still remains a problem:
The derby team kindly rewrite the launcher for testcases in order to
treat J9 vm differently if the property java.vm.name starts with j9. But
the j9 vm used in Harmony has been customized thus is different from
traditional j9 vm that is expected by derby. This leads to failure to launch
tests.
I will talk on Derby's mailing list to find a solution.

--
Leo Li
China Software Development Lab, IBM


RE: Can't get binary to work

2006-10-11 Thread Armand Navabi
Gentoo version information:

Glibc: 2.3.6

[EMAIL PROTECTED] /usr/lib/libstdc++-v3 $ /lib/libc.so.6 
GNU C Library stable release version 2.3.6, by Roland McGrath et al.
Copyright (C) 2005 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Compiled by GNU CC version 3.4.5 (Gentoo 3.4.5-r1, ssp-3.4.5-1.0,
pie-8.7.9).
Compiled on a Linux 2.6.11 system on 2006-05-03.
Available extensions:
GNU libio by Per Bothner
crypt add-on version 2.1 by Michael Glad and others
linuxthreads-0.10 by Xavier Leroy
The C stubs add-on version 2.1.2.
GNU Libidn by Simon Josefsson
BIND-8.2.3-T5B
libthread_db work sponsored by Alpha Processor Inc
NIS(YP)/NIS+ NSS modules 0.19 by Thorsten Kukuk
Thread-local storage support included.
For bug reporting instructions, please see:
http://www.gnu.org/software/libc/bugs.html.

gcc version
[EMAIL PROTECTED] /usr/lib/libstdc++-v3 $ gcc -v
Reading specs from /usr/lib/gcc/i686-pc-linux-gnu/3.4.6/specs
Configured with:
/scratch/portage/tmp/portage/gcc-3.4.6-r1/work/gcc-3.4.6/configure
--prefix=/usr --bindir=/usr/i686-pc-linux-gnu/gcc-bin/3.4.6
--includedir=/usr/lib/gcc/i686-pc-linux-gnu/3.4.6/include
--datadir=/usr/share/gcc-data/i686-pc-linux-gnu/3.4.6
--mandir=/usr/share/gcc-data/i686-pc-linux-gnu/3.4.6/man
--infodir=/usr/share/gcc-data/i686-pc-linux-gnu/3.4.6/info
--with-gxx-include-dir=/usr/lib/gcc/i686-pc-linux-gnu/3.4.6/include/g++-v3
--host=i686-pc-linux-gnu --build=i686-pc-linux-gnu --disable-altivec
--disable-nls --with-system-zlib --disable-checking --disable-werror
--disable-libunwind-exceptions --disable-multilib --enable-java-awt=gtk
--enable-languages=c,c++,java,f77 --enable-shared --enable-threads=posix
--enable-__cxa_atexit --enable-clocale=gnu
Thread model: posix
gcc version 3.4.6 (Gentoo 3.4.6-r1, ssp-3.4.5-1.0, pie-8.7.9)

/etc/make.conf:
# this file was generated by /p/portage/20060616/sbin/genmakeconf

CFLAGS=-pipe -O2 -march=pentium4 -mfpmath=sse
CHOST=i686-pc-linux-gnu
CLEAN_DELAY=0
CXXFLAGS=${CFLAGS}
DISTDIR=/p/portage/distfiles
FEATURES=buildpkg
GENTOO_MIRRORS=ftp://csociety-ftp.ecn.purdue.edu/pub/gentoo;
MAKEOPTS=-j2
PKGDIR=/p/portage/20060616/packages/x86/pentium4
PORTAGE_TMPDIR=/scratch/portage/tmp
PORTDIR_OVERLAY=/p/portage/20060616/overlay
#PORT_LOGDIR=/scratch/portage/log
SYNC=rsync://rsync25.us.gentoo.org/gentoo-portage
USE=sse sse2

libstdc++ version
[EMAIL PROTECTED] /usr/lib/libstdc++-v3 $ ls
libstdc++.so.5  libstdc++.so.5.0.6

Let me know if you need any other information.


Thanks,
Armand

-Original Message-
From: Gregory Shimansky [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, October 11, 2006 7:39 PM
To: harmony-dev@incubator.apache.org
Subject: Re: Can't get binary to work

On Wednesday 11 October 2006 20:36 Geir Magnusson Jr. wrote:
 I'm ready to install Gentoo to see if I can repeat it...  what version?

Gentoo is a strange and weird distribution. It has no version :) It has 
versions for individual packages only.

It has profile version like 2006.1 with compilation flags for some key 
packages. But except for that Gentoo could be used for a very long time and 
the package versions are determined only by the choice of the user.

Armand refers to the kernel version. It is 2.6.17-r8 which is the latest 
stable for x86 and amd64 architectures. But referring just to kernel version

in Gentoo is not correct. Any package of any version may exist in 
installation, so it is better to specify at least glibc, gcc (with flags 
specified in /etc/make.conf), libstdc++ and binutils versions when referring

to Gentoo installation.

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



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



  1   2   >