[admin] Automated Monthly Reminder

2006-11-01 Thread geirm
This is a monthly automated mailing to the Apache Harmony dev list.

The Apache Harmony project welcomes the participation and input of 
anyone interested in open source Java SE, the goal of our project.
For more information about the Apache Harmony project, please see
the project website.

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

The terms of use for the Harmony mail lists can be found here : 

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

and they are

  This forum has been created for public communication about 
  projects of The Apache Software Foundation (the Foundation), 
  a Delaware nonprofit corporation classified as a public charity 
  under 501(c)(3). All communication intentionally submitted to 
  the Foundation on this forum is considered a Contribution to the 
  Foundation unless otherwise noted in the communication. The terms 
  and conditions that apply to your Contributions are defined by 
  either a contributor license agreement (CLA) signed by you and/or 
  your employer or, if no such CLA is on file at the Foundation,
  by the terms and conditions of Contributions as defined by the 
  Apache License, Version 2.0.


Note : 

  * If you do not wish your post to be a Contribution, we would 
prefer that you do not post it. However, in the event that 
you do, please mark as NOT A CONTRIBUTION at the top of 
the posting.
   
  * Do not post any code that is not your original work, or code 
that you do not have clear authorization to contribute.

  * Do not engage in detailed discussion of any implementation 
that you have been exposed to unless such implementation is 
available to everyone under an open source license or is your 
own implementation.

  * Under no circumstances will any committer accept code for 
inclusion in our SVN repository contributed on the mailing 
list unless it is from an Authorized Contributor, as defined here.


If you have any questions, please do not hesitate to ask on either the 
dev list.

If there are any questions that are of a private or sensitive nature, 
please send them to 

 [EMAIL PROTECTED]




Re: [drlvm] How to debug the drlvm with gdb?

2006-11-01 Thread Mikhail Fursov

Thanks Rana!
If you ask me what would I like, the answer is quite simple: as a windows
developer primary (today) I would recommend to other windows developers to
use msvc build (with patch from
HARMONY-1990http://issues.apache.org/jira/browse/HARMONY-1990
).
With this patch you can almost forget about build.bat (it used only to fetch
external components + build Java). Most of the internal components
(vmcore,JIT,interpreter,gc_cc,encoder,em,hythread,jthread..) could be built
and debugged from within MSVC much faster than with build.bat without any
code modification with printf(..) and int3-like breakpoints.

I'll add this information to the site after H1990 is commited.


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


I created a basic debugging  page for debugging with the VS debugger on
windows.
Mikhail and others, make whatever changes you like :-)

Rana


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

 On 24 Oct 2006 22:42:22 +0700, Egor Pasko [EMAIL PROTECTED] wrote:
 
   - Debugging on Windows - Mikhail has been recommended; how's that?
 
  the tip from Rana is also useful there. Who can start the page?
  Mikhail? Rana?
 

 I'll do it right after I finish the current task. I do not mind if
 somebody
 will pass ahead. This is just the question of tasks priorities.

 --
 Mikhail Fursov







--
Mikhail Fursov


Re: [classlib]Harmony passes 100% testcases of Tomcat5.5

2006-11-01 Thread Leo Li

I have not got the precise number. I will try it.:)

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


Good news! However I never believe in 100% :)

You mentioned that startup with Harmony is slower then RI. I measured
Eclipse3.1.1 startup some time ago and DRLVM+classlib was ~50% slower (7
secs against 5 sec with SUN) then RI.
What are your numbers?

On 11/1/06, Leo Li [EMAIL PROTECTED] wrote:

 Hi, all:
   Harmony now has been able to pass 100% testcases on Tomcat5.5. I
ran
 them both on WindowsXP and Unbuntu, with J9 VM and drlvm.
   The detailed information about how to build and run tests have
been
 put on http://wiki.apache.org/harmony/Apache_Tomcat.

 Note:
   1. Harmony launches slower than RI, so I add the interval between
 the
 launch of Tomcat Server and  tests from 8 seconds to 30 seconds to
ensure
 the server has been running.
   2. Runtime.exec fails on linux with J9 vm, as discussed on[1], so
I
 have altered the usage of fork to vfork as a workround despite of the
 possible side-effect of the latter.
 mailing thread
 [1]

http://www.mail-archive.com/harmony-dev@incubator.apache.org/msg16002.html
 --
 Leo Li
 China Software Development Lab, IBM




--
Mikhail Fursov





--
Leo Li
China Software Development Lab, IBM


Re: [drlvm][sablevm] Desing of Class Unloading Support

2006-11-01 Thread Mikhail Fursov

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


Maybe for GC's that don't support pinning, the JIT can compare
object-vtable-class for guarded
devirtiualization, or even not do guarded devirtualization, sort of
support
the GC in downlevel mode



I think this is not a long term solution for a JIT. IMO the best solutions
for a JIT with unpinned vtables would be
1) Short term: turn devirtualization off (As Egor has proposed)
2) Long term: patch devirtualization calls when GC moves object (usual
enumeration routine)

Storing vtable in the object without additional indirection in memory is
important from the performance POV.

--
Mikhail Fursov


Re: [classlib]Harmony passes 100% testcases of Tomcat5.5

2006-11-01 Thread Alexey Petrenko

Great news, Leo!

2006/11/1, Leo Li [EMAIL PROTECTED]:

Hi, all:
  Harmony now has been able to pass 100% testcases on Tomcat5.5. I ran
them both on WindowsXP and Unbuntu, with J9 VM and drlvm.
  The detailed information about how to build and run tests have been
put on http://wiki.apache.org/harmony/Apache_Tomcat.

Note:
  1. Harmony launches slower than RI, so I add the interval between the
launch of Tomcat Server and  tests from 8 seconds to 30 seconds to ensure
the server has been running.
  2. Runtime.exec fails on linux with J9 vm, as discussed on[1], so I
have altered the usage of fork to vfork as a workround despite of the
possible side-effect of the latter.
mailing thread
[1]
http://www.mail-archive.com/harmony-dev@incubator.apache.org/msg16002.html
--
Leo Li
China Software Development Lab, IBM





--
Alexey A. Petrenko
Intel Middleware Products Division


RE: [classlib][swing][test] Excluded tests clean up

2006-11-01 Thread Ivanov, Alexey A
Thank you, Alexey.

Some of them were successfully applied.
Some are in indeterminate state because several tests fail on Mark's
machine. I can't reproduce any of those failures on my machines :(.
Therefore I can't figure out where the problem is and fix them.

You can run tests which were un-excluded and report your results.

Thank you in advance,
Alexey.

P.S. See also this message:
http://thread.gmane.org/gmane.comp.java.harmony.devel/16579/focus=16835


--
Alexey A. Ivanov
Intel Middleware Product Division


-Original Message-
From: Alexey Petrenko [mailto:[EMAIL PROTECTED]
Sent: Wednesday, November 01, 2006 9:40 AM
To: harmony-dev@incubator.apache.org
Subject: Re: [classlib][swing][test] Excluded tests clean up

Alexey,

I'll take a look.

SY, Alexey

2006/10/20, Ivanov, Alexey A [EMAIL PROTECTED]:
 Hello,

 I am working to clean up the excluded list and to make all the tests
 run-able without failures.
 I've created several JIRA issues.

 https://issues.apache.org/jira/browse/HARMONY-1825
 https://issues.apache.org/jira/browse/HARMONY-1866
 https://issues.apache.org/jira/browse/HARMONY-1910

 And https://issues.apache.org/jira/browse/HARMONY-1892 to make all
 Windows users happier. :)


 Can anyone look at them and apply patches to make creation of patches
to
 build.xml easier and less reject-prone?


 Thank you in advance,
 Alexey.

 --
 Alexey A. Ivanov
 Intel Middleware Product Division

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




--
Alexey A. Petrenko
Intel Middleware Products Division


Re: [classlib]Harmony passes 100% testcases of Tomcat5.5

2006-11-01 Thread Leo Li

3754ms on RI versus 5740ms on Harmony to startup Tomcat.
Seems about 50% slower as well.


On 11/1/06, Leo Li [EMAIL PROTECTED] wrote:


 I have not got the precise number. I will try it.:)

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

 Good news! However I never believe in 100% :)

 You mentioned that startup with Harmony is slower then RI. I measured
 Eclipse3.1.1 startup some time ago and DRLVM+classlib was ~50% slower (7
 secs against 5 sec with SUN) then RI.
 What are your numbers?

 On 11/1/06, Leo Li [EMAIL PROTECTED]  wrote:
 
  Hi, all:
Harmony now has been able to pass 100% testcases on Tomcat5.5. I
 ran
  them both on WindowsXP and Unbuntu, with J9 VM and drlvm.
The detailed information about how to build and run tests have
 been
  put on http://wiki.apache.org/harmony/Apache_Tomcat.
 
  Note:
1. Harmony launches slower than RI, so I add the interval
 between
  the
  launch of Tomcat Server and  tests from 8 seconds to 30 seconds to
 ensure
  the server has been running.
2. Runtime.exec fails on linux with J9 vm, as discussed on[1],
 so I
  have altered the usage of fork to vfork as a workround despite of the
  possible side-effect of the latter.
  mailing thread
  [1]
  http://www.mail-archive.com/harmony-dev@incubator.apache.org/msg16002.html

  --
  Leo Li
  China Software Development Lab, IBM
 
 


 --
 Mikhail Fursov




--
Leo Li
China Software Development Lab, IBM





--
Leo Li
China Software Development Lab, IBM


Re: [classlib]Harmony passes 100% testcases of Tomcat5.5

2006-11-01 Thread Mikhail Fursov

Thanks!
AFAIK RI uses interpreter and could use OSR, while we do almost the same
with a simple JIT without any advanced techniques.
Not so bad :) + BEA must be slower than SUN in such tests.

On 11/1/06, Leo Li [EMAIL PROTECTED] wrote:


3754ms on RI versus 5740ms on Harmony to startup Tomcat.
Seems about 50% slower as well.


On 11/1/06, Leo Li [EMAIL PROTECTED] wrote:

  I have not got the precise number. I will try it.:)

 On 11/1/06, Mikhail Fursov [EMAIL PROTECTED] wrote:
 
  Good news! However I never believe in 100% :)
 
  You mentioned that startup with Harmony is slower then RI. I measured
  Eclipse3.1.1 startup some time ago and DRLVM+classlib was ~50% slower
(7
  secs against 5 sec with SUN) then RI.
  What are your numbers?
 
  On 11/1/06, Leo Li [EMAIL PROTECTED]  wrote:
  
   Hi, all:
 Harmony now has been able to pass 100% testcases on Tomcat5.5.
I
  ran
   them both on WindowsXP and Unbuntu, with J9 VM and drlvm.
 The detailed information about how to build and run tests have
  been
   put on http://wiki.apache.org/harmony/Apache_Tomcat.
  
   Note:
 1. Harmony launches slower than RI, so I add the interval
  between
   the
   launch of Tomcat Server and  tests from 8 seconds to 30 seconds to
  ensure
   the server has been running.
 2. Runtime.exec fails on linux with J9 vm, as discussed on[1],
  so I
   have altered the usage of fork to vfork as a workround despite of
the
   possible side-effect of the latter.
   mailing thread
   [1]
  
http://www.mail-archive.com/harmony-dev@incubator.apache.org/msg16002.html
 
   --
   Leo Li
   China Software Development Lab, IBM
  
  
 
 
  --
  Mikhail Fursov
 
 


 --
 Leo Li
 China Software Development Lab, IBM




--
Leo Li
China Software Development Lab, IBM





--
Mikhail Fursov


RE: [testing][support] Where to place xxxTestCase support classes

2006-11-01 Thread Ivanov, Alexey A
Thank you, Nathan, for your reply.

I believe these classes can be put to a support package in the module
rather than java.* and javax.* correspondingly. I need to try it. At the
moment they are along with the tests.

But we can't help use javax.swing.* for swing tests since most of them
are designed to be run on bootclasspath. See also the related message:
http://thread.gmane.org/gmane.comp.java.harmony.devel/16591/focus=16591

Regards,
Alexey.

--
Alexey A. Ivanov
Intel Middleware Product Division


-Original Message-
From: Nathan Beyer [mailto:[EMAIL PROTECTED]
Sent: Wednesday, November 01, 2006 3:15 AM
To: harmony-dev@incubator.apache.org
Subject: Re: [testing][support] Where to place xxxTestCase support
classes

If the support classes aren't used outside of one module, then I would
put them in that module. Like the beans example mentioned.

As for the package name, I would prefer to avoid the java.* and
javax.* package names whenever possible, so we can avoid classpath
issues.

-Nathan

On 10/31/06, Alexei Zakharov [EMAIL PROTECTED] wrote:
 FYI in beans we have the following folders for this purpose:
 src/test/support/java/org/apache/harmony/beans/tests/support
 src/test/support/java/org/apache/harmony/beans/tests/support/mock

 Thanks,

 2006/10/31, Ivanov, Alexey A [EMAIL PROTECTED]:
  Hi all,
 
  Both AWT and Swing modules have testing support classes. Some of
them
  are extensions of junit.framework.TestCase which provide some
utility
  methods for tests. To mention several: AWTTestCase, ShapeTestCase,
  BasicSwingTestCase, SwingTestCase. There are test cases which
extend
  these classes.
  There are also several classes which provide special mock objects,
  fields, for example ViewTestHelpers, DefStyledDoc_Helpers.
 
  The question about support classes was discussed [1] but no
decision
was
  taken.
  The bad thing about these classes is that:
  * some are stored along with tests utilizing these classes
  (modules/awt/src/test/api/java/common/java/awt/),
  * some are stored in support folder
  (support/src/test/java/javax/swing/).
 
 
  I think we should decide where such classes are to be stored. And
move
  them appropriately.
 
  Comments, opinions?
 
  Regards,
  Alexey.
 
 
  [1]
 
http://thread.gmane.org/gmane.comp.java.harmony.devel/9487/focus=9561
 
  P.S. Mikhail, did you add the text from the message above into any
doc?


 --
 Alexei Zakharov,
 Intel Enterprise Solutions Software Division



[general] Motorola to develop ME under ALv2

2006-11-01 Thread Tim Ellison
http://biz.yahoo.com/prnews/061031/cgtu074.html?.v=46

Now *that's* cool :-)

For those of you that are not ME-enabled, Motorola is a major player in
the ME space.  They are deeply involved in advancing the spec and have a
track record of developing and collaborating 'in the open'.

By declaring their intent to use ALv2 and Apache-style governance we can
all look forward to an open and unrestricted exchange with the good folk
at Motorola.

Regards,
Tim

-- 

Tim Ellison ([EMAIL PROTECTED])



Re: [drlvm][iprof] Using Profiling Utility (iprof)

2006-11-01 Thread Egor Pasko
On the 0x213 day of Apache Harmony Armand Navabi wrote:
 Egor mentioned that for profiling at the machine code level there is a
 profiling utility (iprof).  How does one use this profiling tool?  Is
 there command line options to run with profiling and if so what are the
 options and how do I get to the collected information after running a
 profiled application?

Armand,

iprof is the Internal PROFiler in the IA-32 CG (Jitrino.OPT only).
It is able to instrument the code in such way that per-method counters
of _executed_ (not just compiled) instructions can be dumped. 

iprof creates the file iprof.stat (on exit) with various
statistics per method (compiled by OPT). For example, number of calls
executed, most executed basic block number, number of casts, etc.

see the sample of iprof.cfg below. To use it you need to:
* put iprof.cfg in the same dir where you are starting DRLVM
* put extra options: -Djit.arg.codegen.iprof=on -XcleanupOnExit
* find the iprof.stat created :)

On a simple HelloWorld only 2 methods are compiled by OPT in default
mode. So, the iprof.stat is short. See more details in -Xem:opt mode)

we will document iprof in more detail... Nadya, is it on the way or
not yet? :)

--- begin iprof.cfg 
#Use [begin]/[end] tags for EACH counter
#Don't use space character outside comments. This restriction should be 
removed
#Config.PrintBBStats=true
[begin]
#for counting of all instructions you can specify any word as Mnemonic
Counter.Insts.Mnemonic=Any
[end]

[begin]
Counter.NULLPTREXCEPTION=HELPER_CALL
Counter.NULLPTREXCEPTION.RuntimeInfo.HelperID=NullPtrException
[end]

#hardcoded counters with only parameter title
###
[begin]
#Size of java bytecode of a method
Counter.ByteCodeSize
[end]

[begin]
#Number of execution times of the hottest basic block of a method
Counter.MaxBBExec
[end]
[begin]
#ID nuber of the hottest basic block
Counter.HottestBBNum
[end]

[begin]
#Number of exception handlers of a method
Counter.ExcHandlersNum
[end]

[begin]
#Number of calls of a method
Counter.MethodExec
Counter.MethodExec.Title=Number of calls of a method
[end]

[begin]
#Basic block execution count 
Counter.BBExec
[end]
###

#Other counters
[begin]
Counter.CALL.Mnemonic=CALL
[end]
[begin]
Counter.I_HELPER_CALL=CALL
Counter.I_HELPER_CALL.RuntimeInfo.Kind=InternalHelperAddress
[end]
[begin]
Counter.HELPER_CALL=CALL
Counter.HELPER_CALL.RuntimeInfo.Kind=HelperAddress
#Counter.HELPER_CALL.RuntimeInfo.HelperID=LdString
[end]
[begin]
Counter.LDSTRING=HELPER_CALL
Counter.LDSTRING.RuntimeInfo.HelperID=LdString
[end]
[begin]
Counter.NEWOBJ_USINGVTABLE=HELPER_CALL
Counter.NEWOBJ_USINGVTABLE.RuntimeInfo.HelperID=NewObj_UsingVtable
[end]
[begin]
Counter.NEWVECTOR_USINGVTABLE=HELPER_CALL
Counter.NEWVECTOR_USINGVTABLE.RuntimeInfo.HelperID=NewVector_UsingVtable
[end]
[begin]
Counter.NEWOBJ=HELPER_CALL
Counter.NEWOBJ.RuntimeInfo.HelperID=NewObj
[end]
[begin]
Counter.NEWVECTOR=HELPER_CALL
Counter.NEWVECTOR.RuntimeInfo.HelperID=NewVector
[end]
[begin]
Counter.NEWMULTIARRAY=HELPER_CALL
Counter.NEWMULTIARRAY.RuntimeInfo.HelperID=NewMultiArray
[end]
[begin]
Counter.OBJMONITORENTER=HELPER_CALL
Counter.OBJMONITORENTER.RuntimeInfo.HelperID=ObjMonitorEnter
[end]
[begin]
Counter.ObjMonitorExit=HELPER_CALL
Counter.ObjMonitorExit.RuntimeInfo.HelperID=ObjMonitorExit
[end]
[begin]
Counter.TYPEMONITORENTER=HELPER_CALL
Counter.TYPEMONITORENTER.RuntimeInfo.HelperID=TypeMonitorEnter
[end]
[begin]
Counter.TYPEMONITOREXIT=HELPER_CALL
Counter.TYPEMONITOREXIT.RuntimeInfo.HelperID=TypeMonitorExit
[end]
[begin]
Counter.THROW_KEEPSTACKTRACE=HELPER_CALL
Counter.THROW_KEEPSTACKTRACE.RuntimeInfo.HelperID=Throw_KeepStackTrace
[end]
[begin]
Counter.THROW_SETSTACKTRACE=HELPER_CALL
Counter.THROW_SETSTACKTRACE.RuntimeInfo.HelperID=Throw_SetStackTrace
[end]
[begin]
Counter.THROW_LAZY=HELPER_CALL
Counter.THROW_LAZY.RuntimeInfo.HelperID=Throw_Lazy
[end]
[begin]
Counter.ARRAYBOUNDSEXCEPTION=HELPER_CALL
Counter.ARRAYBOUNDSEXCEPTION.RuntimeInfo.HelperID=ArrayBoundsException
[end]
[begin]
Counter.ELEMTYPEEXCEPTION=HELPER_CALL
Counter.ELEMTYPEEXCEPTION.RuntimeInfo.HelperID=ElemTypeException
[end]
[begin]
Counter.DIVIDEBYZEROEXCEPTION=HELPER_CALL
Counter.DIVIDEBYZEROEXCEPTION.RuntimeInfo.HelperID=DivideByZeroException
[end]
[begin]
Counter.THROW_LINKINGEXCEPTION=HELPER_CALL
Counter.THROW_LINKINGEXCEPTION.RuntimeInfo.HelperID=Throw_LinkingException
[end]
[begin]
Counter.DIVI32=HELPER_CALL
Counter.DIVI32.RuntimeInfo.HelperID=DivI32
[end]
[begin]
Counter.DIVU32=HELPER_CALL
Counter.DIVU32.RuntimeInfo.HelperID=DivU32
[end]
[begin]
Counter.DIVI64=HELPER_CALL
Counter.DIVI64.RuntimeInfo.HelperID=DivI64
[end]
[begin]
Counter.DIVU64=HELPER_CALL
Counter.DIVU64.RuntimeInfo.HelperID=DivU64
[end]
[begin]
Counter.DIVSINGLE=HELPER_CALL
Counter.DIVSINGLE.RuntimeInfo.HelperID=DivSingle
[end]
[begin]
Counter.DIVDOUBLE=HELPER_CALL

Re: [classlib]Harmony passes 100% testcases of Tomcat5.5

2006-11-01 Thread Tim Ellison
Mikhail Fursov wrote:
 Good news! However I never believe in 100% :)

Leo was claiming 100% of Tomcat's test cases pass -- that's measurable.
 It's probably the best measure that we have so far for determining that
an application 'works'.

Well done -- everyone!

Regards,
Tim

-- 

Tim Ellison ([EMAIL PROTECTED])



Re: [classlib]Harmony passes 100% testcases of Tomcat5.5

2006-11-01 Thread Tony Wu

congratulation! I really like 100% ;-)

On 11/1/06, Leo Li [EMAIL PROTECTED] wrote:

Hi, all:
 Harmony now has been able to pass 100% testcases on Tomcat5.5. I ran
them both on WindowsXP and Unbuntu, with J9 VM and drlvm.
 The detailed information about how to build and run tests have been
put on http://wiki.apache.org/harmony/Apache_Tomcat.

Note:
 1. Harmony launches slower than RI, so I add the interval between the
launch of Tomcat Server and  tests from 8 seconds to 30 seconds to ensure
the server has been running.
 2. Runtime.exec fails on linux with J9 vm, as discussed on[1], so I
have altered the usage of fork to vfork as a workround despite of the
possible side-effect of the latter.
mailing thread
[1]
http://www.mail-archive.com/harmony-dev@incubator.apache.org/msg16002.html
--
Leo Li
China Software Development Lab, IBM





--
Tony Wu
China Software Development Lab, IBM


Re: [drlvm][sablevm] Desing of Class Unloading Support

2006-11-01 Thread Egor Pasko
On the 0x214 day of Apache Harmony Mikhail Fursov wrote:
 On 11/1/06, Rana Dasgupta [EMAIL PROTECTED] wrote:
 
  Maybe for GC's that don't support pinning, the JIT can compare
  object-vtable-class for guarded
  devirtiualization, or even not do guarded devirtualization, sort of
  support
  the GC in downlevel mode
 
 
 I think this is not a long term solution for a JIT. IMO the best solutions
 for a JIT with unpinned vtables would be
 1) Short term: turn devirtualization off (As Egor has proposed)
 2) Long term: patch devirtualization calls when GC moves object (usual
 enumeration routine)

agreed. not patching .. just reporting 'golden' VTable refs to GC, am
I right?

 Storing vtable in the object without additional indirection in memory is
 important from the performance POV.

-- 
Egor Pasko, Intel Managed Runtime Division



Re: [general] Motorola to develop ME under ALv2

2006-11-01 Thread Mikhail Fursov

AFAIK ME shares a lot of core classes and packages with SE. And we have
these packages implemented.
And now I'm really interesting if Motorola wants to reuse our code or
develop the better one ?

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


http://biz.yahoo.com/prnews/061031/cgtu074.html?.v=46

Now *that's* cool :-)

For those of you that are not ME-enabled, Motorola is a major player in
the ME space.  They are deeply involved in advancing the spec and have a
track record of developing and collaborating 'in the open'.

By declaring their intent to use ALv2 and Apache-style governance we can
all look forward to an open and unrestricted exchange with the good folk
at Motorola.

Regards,
Tim

--

Tim Ellison ([EMAIL PROTECTED])





--
Mikhail Fursov


Re: [drlvm][sablevm] Desing of Class Unloading Support

2006-11-01 Thread Mikhail Fursov

On 01 Nov 2006 15:56:28 +0600, Egor Pasko [EMAIL PROTECTED] wrote:


agreed. not patching .. just reporting 'golden' VTable refs to GC, am
I right?


Yes, and everytime we report it to GC and GC moves an object - it patches
the address we report.


--
Mikhail Fursov


Re: [classlib] Preprocessor - CHECKPOINT

2006-11-01 Thread Tim Ellison
Geir Magnusson Jr. wrote:
 Nathan Beyer wrote:
 What's the concern about just using the prescribed branching pattern
 for SVN? There are some other nice tricks like externals for pulling
 in common files into the working copies of other branches (ala the
 'concurrent' code in 'standard' that's pulled into 'enhanced' on
 checkout). 
 
 Even the authors of SVN warn people away from using externals.

Yeah, and a nightmare when trying to 'tag' code -- copying the link to
HEAD is no help.

 I would propose we at least attempt to go down a path of
 investigating a branching.
 
 We should consider everything, but I'd personally rather keep as few
 codelines as possible.

Agreed.

 Regardless, I think we need to settle on our exact requirement first,
 before spending too much time on looking for a solution. For example,
 if logging is a real requirement, but everyone agrees it can be done
 via instrumentation (AspectJ, java.lang.instrument, etc), then are
 there any other requirements that affect the actual source files
 internally? If not, then could all of the other requirements be
 fulfilled by judicious SCM use?

 So, I would suggest we back up a little and just layout all of the
 requirements first, so we can make sure everyone's in agreement about
 the needs.

Nathan is right -- this is hypothetical now, unless (for example) we
start on Java 6 development now.

 Exactly - we need use cases (and it's not clear that the logging
 problems have been resolved w/ aspects yet...)

You're joking, right?  I tease the aspect people that logging is the
only problem that has been solved(*) g.  There are lots of references
on how to do that, eg:
  http://www.developer.com/java/other/article.php/3109831


(*) it's not true though, there are a number of tasks that are
well-suited to using aspects.  However, I would use them judiciously.

Regards,
Tim

-- 

Tim Ellison ([EMAIL PROTECTED])



Re: [drlvm][sablevm] Desing of Class Unloading Support

2006-11-01 Thread Egor Pasko
On the 0x214 day of Apache Harmony Mikhail Fursov wrote:
 On 01 Nov 2006 15:56:28 +0600, Egor Pasko [EMAIL PROTECTED] wrote:
 
  agreed. not patching .. just reporting 'golden' VTable refs to GC, am
  I right?
 
 Yes, and everytime we report it to GC and GC moves an object - it patches
 the address we report.

so, by saying patching you insist to put immediate operands into
instructions? That's probably worth it, but it extends the JIT-GC
interface. How about making a simple operand (reg/mem) as the first step?

-- 
Egor Pasko, Intel Managed Runtime Division



Re: [drlvm][iprof] Using Profiling Utility (iprof)

2006-11-01 Thread Mikhail Fursov

+ Some usage hints:
1. You can get any stylesheet editor (like Excel), open iprof data and build
graphs from the  colums - and you will have very useful pictures.
2. The disadvantage of iprof is that it counts blocks, insts and helpers
calls and does not count time spent in helpers and blocks. You still need
VTune to get this info.

--
Mikhail Fursov


Re: [general] Motorola to develop ME under ALv2

2006-11-01 Thread Egor Pasko
On the 0x214 day of Apache Harmony Mikhail Fursov wrote:
 AFAIK ME shares a lot of core classes and packages with SE. And we have
 these packages implemented.
 And now I'm really interesting if Motorola wants to reuse our code or
 develop the better one ?

we like to say more free software is not a problem :)

 On 11/1/06, Tim Ellison [EMAIL PROTECTED] wrote:
 
  http://biz.yahoo.com/prnews/061031/cgtu074.html?.v=46
 
  Now *that's* cool :-)
 
  For those of you that are not ME-enabled, Motorola is a major player in
  the ME space.  They are deeply involved in advancing the spec and have a
  track record of developing and collaborating 'in the open'.
 
  By declaring their intent to use ALv2 and Apache-style governance we can
  all look forward to an open and unrestricted exchange with the good folk
  at Motorola.
 
  Regards,
  Tim
 
  --
 
  Tim Ellison ([EMAIL PROTECTED])
 
 
 
 
 -- 
 Mikhail Fursov

-- 
Egor Pasko, Intel Managed Runtime Division



Re: [classlib] Preprocessor - CHECKPOINT

2006-11-01 Thread Tim Ellison
Etienne Gagnon wrote:
 Tim Ellison wrote:
 IMO it's not ideal that the preprocessed source still contains all the
 streams, albeit in comments.  It wouldn't make the source very
 'consumable' to the Mrs. SE or ME developer.
 
 Hmmm...  It's always possible to have a special output mode that puts
 empty (or advertizing, hehe) comments, instead of other stream code
 (thus, preserving line numbers).

Right, but it was the presence of the comments, not the contents of the
comments that I was objecting to.  Using padding comments would be bad
too IMO.

snipped example

 So, J2ME  J2SE end-developers are kept happy.

As I said before, I like the idea to be able to flip the comments
between different processor targets for the benefit of Harmony
developers.  So, for example, you can work with your SE spectacles on,
and I can work with my ME spectacles on, then we both commit to the
repository in a canonical form.  However, for the end-user (Mrs Java
developer) the processor would strip out the irrelevant streams' code
from the canonical form to produce a clean target source code.

 As a bonu$, you can al$o $tart a nice busine$$ $elling advertizing $pace
 in $ource code.  ;-P

LOL -- hey, now you are talking ;-)

Regards,
Tim

-- 

Tim Ellison ([EMAIL PROTECTED])



Re: [testing][support] Where to place xxxTestCase support classes

2006-11-01 Thread Denis Kishenko

Alexey thanks for question, because I'm intereseted in this too

As I understand from your discession, for example suport class
modules\awt\src\test\api\java\common\java\awt\geom\ShapeTestCase.java
should be moved to
modules\awt\src\test\support\java\org\apache\harmony\awt\geom\tests\support\ShapeTestCase.java

Am I right?

2006/11/1, Ivanov, Alexey A [EMAIL PROTECTED]:

Thank you, Nathan, for your reply.

I believe these classes can be put to a support package in the module
rather than java.* and javax.* correspondingly. I need to try it. At the
moment they are along with the tests.

But we can't help use javax.swing.* for swing tests since most of them
are designed to be run on bootclasspath. See also the related message:
http://thread.gmane.org/gmane.comp.java.harmony.devel/16591/focus=16591

Regards,
Alexey.

--
Alexey A. Ivanov
Intel Middleware Product Division


-Original Message-
From: Nathan Beyer [mailto:[EMAIL PROTECTED]
Sent: Wednesday, November 01, 2006 3:15 AM
To: harmony-dev@incubator.apache.org
Subject: Re: [testing][support] Where to place xxxTestCase support
classes

If the support classes aren't used outside of one module, then I would
put them in that module. Like the beans example mentioned.

As for the package name, I would prefer to avoid the java.* and
javax.* package names whenever possible, so we can avoid classpath
issues.

-Nathan

On 10/31/06, Alexei Zakharov [EMAIL PROTECTED] wrote:
 FYI in beans we have the following folders for this purpose:
 src/test/support/java/org/apache/harmony/beans/tests/support
 src/test/support/java/org/apache/harmony/beans/tests/support/mock

 Thanks,

 2006/10/31, Ivanov, Alexey A [EMAIL PROTECTED]:
  Hi all,
 
  Both AWT and Swing modules have testing support classes. Some of
them
  are extensions of junit.framework.TestCase which provide some
utility
  methods for tests. To mention several: AWTTestCase, ShapeTestCase,
  BasicSwingTestCase, SwingTestCase. There are test cases which
extend
  these classes.
  There are also several classes which provide special mock objects,
  fields, for example ViewTestHelpers, DefStyledDoc_Helpers.
 
  The question about support classes was discussed [1] but no
decision
was
  taken.
  The bad thing about these classes is that:
  * some are stored along with tests utilizing these classes
  (modules/awt/src/test/api/java/common/java/awt/),
  * some are stored in support folder
  (support/src/test/java/javax/swing/).
 
 
  I think we should decide where such classes are to be stored. And
move
  them appropriately.
 
  Comments, opinions?
 
  Regards,
  Alexey.
 
 
  [1]
 
http://thread.gmane.org/gmane.comp.java.harmony.devel/9487/focus=9561
 
  P.S. Mikhail, did you add the text from the message above into any
doc?


 --
 Alexei Zakharov,
 Intel Enterprise Solutions Software Division





--
Denis M. Kishenko
Intel Middleware Products Division


Re: [drlvm][iprof] Using Profiling Utility (iprof)

2006-11-01 Thread Egor Pasko
On the 0x214 day of Apache Harmony Mikhail Fursov wrote:
 + Some usage hints:
 1. You can get any stylesheet editor (like Excel), open iprof data and build
 graphs from the  colums - and you will have very useful pictures.

gnuplot :)

 2. The disadvantage of iprof is that it counts blocks, insts and helpers
 calls and does not count time spent in helpers and blocks. You still need
 VTune to get this info.

1 more disadvantage: counters are not synchronized resulting in
somewhat inaccurate data for multithreaded apps

-- 
Egor Pasko, Intel Managed Runtime Division



Re: [general] Motorola to develop ME under ALv2

2006-11-01 Thread Alexey Varlamov

01 Nov 2006 16:08:28 +0600, Egor Pasko [EMAIL PROTECTED]:

On the 0x214 day of Apache Harmony Mikhail Fursov wrote:
 AFAIK ME shares a lot of core classes and packages with SE. And we have
 these packages implemented.
 And now I'm really interesting if Motorola wants to reuse our code or
 develop the better one ?


At least there'll be no stumbling blocks from legal POV, code can flow
freely. Really cool!


we like to say more free software is not a problem :)

 On 11/1/06, Tim Ellison [EMAIL PROTECTED] wrote:
 
  http://biz.yahoo.com/prnews/061031/cgtu074.html?.v=46
 
  Now *that's* cool :-)
 
  For those of you that are not ME-enabled, Motorola is a major player in
  the ME space.  They are deeply involved in advancing the spec and have a
  track record of developing and collaborating 'in the open'.
 
  By declaring their intent to use ALv2 and Apache-style governance we can
  all look forward to an open and unrestricted exchange with the good folk
  at Motorola.
 
  Regards,
  Tim
 
  --
 
  Tim Ellison ([EMAIL PROTECTED])
 
 


 --
 Mikhail Fursov

--
Egor Pasko, Intel Managed Runtime Division




Re: [general] Motorola to develop ME under ALv2

2006-11-01 Thread Tim Ellison
Mikhail Fursov wrote:
 AFAIK ME shares a lot of core classes and packages with SE. And we
 have these packages implemented. And now I'm really interesting if
 Motorola wants to reuse our code or develop the better one ?

You can see the same statement as me, so it would only be speculation to
talk about 'what Motorola want' beyond what they have said already.

The cool part is that by choosing ALv2 Harmony can freely engage and
exchange with their effort.

Regards,
Tim

-- 

Tim Ellison ([EMAIL PROTECTED])



RE: [testing][support] Where to place xxxTestCase support classes

2006-11-01 Thread Ivanov, Alexey A
-Original Message-
From: Denis Kishenko [mailto:[EMAIL PROTECTED]
Sent: Wednesday, November 01, 2006 1:14 PM
To: harmony-dev@incubator.apache.org
Subject: Re: [testing][support] Where to place xxxTestCase support
classes

Alexey thanks for question, because I'm intereseted in this too

As I understand from your discession, for example suport class
modules\awt\src\test\api\java\common\java\awt\geom\ShapeTestCase.java
should be moved to
modules\awt\src\test\support\java\org\apache\harmony\awt\geom\tests\sup
port
\ShapeTestCase.java

Am I right?

Yep.

Regards,
Alexey.


2006/11/1, Ivanov, Alexey A [EMAIL PROTECTED]:
 Thank you, Nathan, for your reply.

 I believe these classes can be put to a support package in the module
 rather than java.* and javax.* correspondingly. I need to try it. At
the
 moment they are along with the tests.

 But we can't help use javax.swing.* for swing tests since most of
them
 are designed to be run on bootclasspath. See also the related
message:

http://thread.gmane.org/gmane.comp.java.harmony.devel/16591/focus=16591

 Regards,
 Alexey.

 --
 Alexey A. Ivanov
 Intel Middleware Product Division


 -Original Message-
 From: Nathan Beyer [mailto:[EMAIL PROTECTED]
 Sent: Wednesday, November 01, 2006 3:15 AM
 To: harmony-dev@incubator.apache.org
 Subject: Re: [testing][support] Where to place xxxTestCase support
 classes
 
 If the support classes aren't used outside of one module, then I
would
 put them in that module. Like the beans example mentioned.
 
 As for the package name, I would prefer to avoid the java.* and
 javax.* package names whenever possible, so we can avoid classpath
 issues.
 
 -Nathan
 
 On 10/31/06, Alexei Zakharov [EMAIL PROTECTED] wrote:
  FYI in beans we have the following folders for this purpose:
  src/test/support/java/org/apache/harmony/beans/tests/support
  src/test/support/java/org/apache/harmony/beans/tests/support/mock
 
  Thanks,
 
  2006/10/31, Ivanov, Alexey A [EMAIL PROTECTED]:
   Hi all,
  
   Both AWT and Swing modules have testing support classes. Some of
 them
   are extensions of junit.framework.TestCase which provide some
 utility
   methods for tests. To mention several: AWTTestCase,
ShapeTestCase,
   BasicSwingTestCase, SwingTestCase. There are test cases which
 extend
   these classes.
   There are also several classes which provide special mock
objects,
   fields, for example ViewTestHelpers, DefStyledDoc_Helpers.
  
   The question about support classes was discussed [1] but no
 decision
 was
   taken.
   The bad thing about these classes is that:
   * some are stored along with tests utilizing these classes
   (modules/awt/src/test/api/java/common/java/awt/),
   * some are stored in support folder
   (support/src/test/java/javax/swing/).
  
  
   I think we should decide where such classes are to be stored.
And
 move
   them appropriately.
  
   Comments, opinions?
  
   Regards,
   Alexey.
  
  
   [1]
  
 http://thread.gmane.org/gmane.comp.java.harmony.devel/9487/focus=9561
  
   P.S. Mikhail, did you add the text from the message above into
any
 doc?
 
 
  --
  Alexei Zakharov,
  Intel Enterprise Solutions Software Division
 



--
Denis M. Kishenko
Intel Middleware Products Division

--
Alexey A. Ivanov
Intel Middleware Product Division


Re: [security][testing] 2 tests failed today

2006-11-01 Thread Tim Ellison
Boris Kuznetsov wrote:
 The tests use tests.support.Support_Exec.execJava2() to perform
 testing on other JVM. This method uses Runtime.getRuntime().exec() to
 run command. You can see command (it looks like java -cp 
 classname) in the test's System.out. It woks OK on Win, but produces
 NoClassDefFoundError on linux.
 Note, the command woks OK in linux sh also.

Yes, I don't think it is the tests for HARMONY-1674 per se that are
failing, but they are exposing a problem in the exec -- which is why I
haven't rolled back that commit.

I'll keep looking at it, let me know if you see the problem.

Regards,
Tim

-- 

Tim Ellison ([EMAIL PROTECTED])



Re: [drlvm][sablevm] Desing of Class Unloading Support

2006-11-01 Thread Mikhail Fursov

On 01 Nov 2006 16:05:41 +0600, Egor Pasko [EMAIL PROTECTED] wrote:


On the 0x214 day of Apache Harmony Mikhail Fursov wrote:
 On 01 Nov 2006 15:56:28 +0600, Egor Pasko [EMAIL PROTECTED] wrote:
 
  agreed. not patching .. just reporting 'golden' VTable refs to GC, am
  I right?
 
 Yes, and everytime we report it to GC and GC moves an object - it
patches
 the address we report.

so, by saying patching you insist to put immediate operands into
instructions? That's probably worth it, but it extends the JIT-GC
interface. How about making a simple operand (reg/mem) as the first step?



Egor, I thinks this is slightly more complicated problem. If vtable object
is moved we must update all devirtualization points in every method compiled
before. It can require an extension of JIT-VM-GC interface.
Another solution I see is to collect info about all devirtualization points
in JIT (code addrs) and report these addresses as enumeration roots. This is
JIT-only solution, and disadvantage is a significant (~hot methods count)
increase of number of objects reported.

On the other hand I see no reasons to unpin vtables in the nearest future
(Let's GC guru correct me). If you use special (freelist-type ?) allocator
in GC the memory fragmentation when unloading pinned vtable objects could be
low.

--
Mikhail Fursov


Re: [classlib][xnet] Problem connecting using SSLSocketImpl

2006-11-01 Thread Alexander Kleymenov

Hi Gerald,

I'm very happy to hear this issue was fixed.
Thank you for your participation in its resolution!

With my latest patch supplied with HARMONY-2029 JIRA report you can
use Harmony VM and JSSE to work with PKCS12 stores.
To adapt your client code for Harmony you should convert JKS trust
store to BKS type (or generate new BKS one), and rewrite the following
lines of your code:

   KeyManagerFactory kmf = KeyManagerFactory.getInstance(
   KeyManagerFactory.getDefaultAlgorithm());

   . . .

   TrustManagerFactory tmf = TrustManagerFactory.getInstance(
   TrustManagerFactory.getDefaultAlgorithm());


Please feel free to ask if you have any problems with it.

Thank You,
Alexander Kleymenov


On 10/26/06, Gerald Jerome [EMAIL PROTECTED] wrote:

Hi Alexander,

Great job!  This latest patch appears to have fixed the connection issue
with SSLSocketImpl and I have started testing renegotiation with our host.
Everything appears to be working as expected with no errors.  Thanks for
hanging in there and getting this fixed.

Regards,
Gerald Jerome
Vnet 262-2375



Re: [drlvm] Class unloading support - tested one approach

2006-11-01 Thread Ivan Volosyuk

+1 for this approach. It will give us some kind of class unloading
without much performance impact on GC.
--
Ivan

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

Actually, just thinking about how I would implement this in JikesRVM, I
would use the reachability based algorithm, but piggyback on the
existing GC mechanisms:

- Allocate a byte (or word) in each vtable for the purpose of tracking
class reachability.
- Periodically, at a time when no GC is running (even the most
aggressive concurrent GC algorithms have these, I believe), zero this
flag across all vtables.  This is the beginning of a class-unloading epoch.
- During each GC, when the GC is fetching the GC map for an object,
*unconditionally* write a value to the class reachability byte.  It may
make sense for this byte to be in either the first cache-line of the
vtable, or the cache line that points to the GC map - just make sure the
mark operation doesn't in general fetch an additional cache line.
- At a point in the sufficiently far future, when all reachable objects
are known to have been traced by the GC, sweep the vtables and check the
reachability of the classloaders.

The features of this approach are:

- Minimal additional work at GC time.  The additional write will cause
some additional memory traffic, but a) it's to memory that is already
guaranteed to be in L1 cache, and b) it's an unconditional independent
write, and c) multiple writes to common classes will be absorbed by the
write buffer.

- Space cost of at most 1 word per vtable.

- This works whether vtables are objects or VM structures

- If the relationship between a class and a vtable is not 1:1, this only
need affect the periodic sweep process, which should be infrequent and
small compared to a GC.

- shouldn't need a stop-the-world at any point.

I've implemented and tested the GC-relevant part of this in JikesRVM,
and the GC time overhead appears to be just under 1% in the MMTk
MarkSweep collector.

cheers,
Robin

--
Ivan
Intel Enterprise Solutions Software Division


Re: [drlvm][sablevm] Desing of Class Unloading Support

2006-11-01 Thread Xiao-Feng Li

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

On 01 Nov 2006 16:05:41 +0600, Egor Pasko [EMAIL PROTECTED] wrote:

 On the 0x214 day of Apache Harmony Mikhail Fursov wrote:
  On 01 Nov 2006 15:56:28 +0600, Egor Pasko [EMAIL PROTECTED] wrote:
  
   agreed. not patching .. just reporting 'golden' VTable refs to GC, am
   I right?
  
  Yes, and everytime we report it to GC and GC moves an object - it
 patches
  the address we report.

 so, by saying patching you insist to put immediate operands into
 instructions? That's probably worth it, but it extends the JIT-GC
 interface. How about making a simple operand (reg/mem) as the first step?


Egor, I thinks this is slightly more complicated problem. If vtable object
is moved we must update all devirtualization points in every method compiled
before. It can require an extension of JIT-VM-GC interface.
Another solution I see is to collect info about all devirtualization points
in JIT (code addrs) and report these addresses as enumeration roots. This is
JIT-only solution, and disadvantage is a significant (~hot methods count)
increase of number of objects reported.

On the other hand I see no reasons to unpin vtables in the nearest future
(Let's GC guru correct me). If you use special (freelist-type ?) allocator
in GC the memory fragmentation when unloading pinned vtable objects could be
low.


Yes, vtable should never be moved except for very weird reason. And
yes, to pin certain amount of objects is not a big performance issue
(in both temporal and spatial wise).

-xiaofeng


--
Mikhail Fursov




[DRLVM][PORT] correct API to retrieve processor number

2006-11-01 Thread Xiao-Feng Li

Hi, I am using port_CPUs_number() for GCv5 to get the processor
number, but my desktop returns one processor with it on Windows
although my processor is dual-core. (port_CPUs_number is defined in
port_sysinfo.h).

I think we need more general form of processor number retrieval API
that can return processor information including that of core and
hyperthreading.

How do you think?

Thanks,
xiaofeng


Re: [classlib]Harmony passes 100% testcases of Tomcat5.5

2006-11-01 Thread Geir Magnusson Jr.

Nice!  Post it on the wiki?

Leo Li wrote:

Hi, all:
 Harmony now has been able to pass 100% testcases on Tomcat5.5. I ran
them both on WindowsXP and Unbuntu, with J9 VM and drlvm.
 The detailed information about how to build and run tests have been
put on http://wiki.apache.org/harmony/Apache_Tomcat.

Note:
 1. Harmony launches slower than RI, so I add the interval between the
launch of Tomcat Server and  tests from 8 seconds to 30 seconds to ensure
the server has been running.
 2. Runtime.exec fails on linux with J9 vm, as discussed on[1], so I
have altered the usage of fork to vfork as a workround despite of the
possible side-effect of the latter.
mailing thread
[1]
http://www.mail-archive.com/harmony-dev@incubator.apache.org/msg16002.html


Re: [general] Motorola to develop ME under ALv2

2006-11-01 Thread Geir Magnusson Jr.
This is about Motorola and their efforts in the ME ecosystem.  The 
Apache style of open governance has shown itself to be very successful 
in creating good software, although there are other models that are 
successful as well (Eclipse Foundation, MySQL).  So seeing Motorola 
embrace that, as well as our license - which gets rid of any license 
interop for whatever they do - is just a great step forward for the 
industry as a whole.


Back to SE... :)

geir


Tim Ellison wrote:

Mikhail Fursov wrote:

AFAIK ME shares a lot of core classes and packages with SE. And we
have these packages implemented. And now I'm really interesting if
Motorola wants to reuse our code or develop the better one ?


You can see the same statement as me, so it would only be speculation to
talk about 'what Motorola want' beyond what they have said already.

The cool part is that by choosing ALv2 Harmony can freely engage and
exchange with their effort.

Regards,
Tim



Re: [classlib]Harmony passes 100% testcases of Tomcat5.5

2006-11-01 Thread Leo Li

Yes, I have posted it on http://wiki.apache.org/harmony/Apache_Tomcat.:)

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


Nice!  Post it on the wiki?

Leo Li wrote:
 Hi, all:
  Harmony now has been able to pass 100% testcases on Tomcat5.5. I
ran
 them both on WindowsXP and Unbuntu, with J9 VM and drlvm.
  The detailed information about how to build and run tests have been
 put on http://wiki.apache.org/harmony/Apache_Tomcat.

 Note:
  1. Harmony launches slower than RI, so I add the interval between
the
 launch of Tomcat Server and  tests from 8 seconds to 30 seconds to
ensure
 the server has been running.
  2. Runtime.exec fails on linux with J9 vm, as discussed on[1], so I
 have altered the usage of fork to vfork as a workround despite of the
 possible side-effect of the latter.
 mailing thread
 [1]

http://www.mail-archive.com/harmony-dev@incubator.apache.org/msg16002.html





--
Leo Li
China Software Development Lab, IBM


Re: [drlvm] How to debug the drlvm with gdb?

2006-11-01 Thread Geir Magnusson Jr.



Mikhail Fursov wrote:

Thanks Rana!
If you ask me what would I like, the answer is quite simple: as a windows
developer primary (today) I would recommend to other windows developers to
use msvc build (with patch from
HARMONY-1990http://issues.apache.org/jira/browse/HARMONY-1990
).
With this patch you can almost forget about build.bat (it used only to 
fetch

external components + build Java). Most of the internal components
(vmcore,JIT,interpreter,gc_cc,encoder,em,hythread,jthread..) could be built
and debugged from within MSVC much faster than with build.bat without any
code modification with printf(..) and int3-like breakpoints.

I'll add this information to the site after H1990 is commited.


Done - please check.  I just committed.

geir




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


I created a basic debugging  page for debugging with the VS debugger on
windows.
Mikhail and others, make whatever changes you like :-)

Rana


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

 On 24 Oct 2006 22:42:22 +0700, Egor Pasko [EMAIL PROTECTED] wrote:
 
   - Debugging on Windows - Mikhail has been recommended; how's that?
 
  the tip from Rana is also useful there. Who can start the page?
  Mikhail? Rana?
 

 I'll do it right after I finish the current task. I do not mind if
 somebody
 will pass ahead. This is just the question of tasks priorities.

 --
 Mikhail Fursov









Re: [DRLVM][PORT] correct API to retrieve processor number

2006-11-01 Thread Mikhail Fursov

I've tried Runtime.getRuntime().availableProcessors() right now and it works
OK to me and reports 2. I have Prescott, 1CPU, 2 hyperthreads, WindowsXP.

JNIEXPORT jint JNICALL
Java_java_lang_VMExecutionEngine_getAvailableProcessors
 (JNIEnv *, jclass)
{
   return port_CPUs_number();
}

So if it's broken for you it's broken in Java too.

On 11/1/06, Xiao-Feng Li [EMAIL PROTECTED] wrote:


Hi, I am using port_CPUs_number() for GCv5 to get the processor
number, but my desktop returns one processor with it on Windows
although my processor is dual-core. (port_CPUs_number is defined in
port_sysinfo.h).

I think we need more general form of processor number retrieval API
that can return processor information including that of core and
hyperthreading.

How do you think?

Thanks,
xiaofeng





--
Mikhail Fursov


Re: [classlib] Preprocessor - CHECKPOINT

2006-11-01 Thread Geir Magnusson Jr.



Tim Ellison wrote:

Geir Magnusson Jr. wrote:

Nathan Beyer wrote:

What's the concern about just using the prescribed branching pattern
for SVN? There are some other nice tricks like externals for pulling
in common files into the working copies of other branches (ala the
'concurrent' code in 'standard' that's pulled into 'enhanced' on
checkout). 

Even the authors of SVN warn people away from using externals.


Yeah, and a nightmare when trying to 'tag' code -- copying the link to
HEAD is no help.


I would propose we at least attempt to go down a path of
investigating a branching.

We should consider everything, but I'd personally rather keep as few
codelines as possible.


Agreed.


Regardless, I think we need to settle on our exact requirement first,
before spending too much time on looking for a solution. For example,
if logging is a real requirement, but everyone agrees it can be done
via instrumentation (AspectJ, java.lang.instrument, etc), then are
there any other requirements that affect the actual source files
internally? If not, then could all of the other requirements be
fulfilled by judicious SCM use?

So, I would suggest we back up a little and just layout all of the
requirements first, so we can make sure everyone's in agreement about
the needs.


Nathan is right -- this is hypothetical now, unless (for example) we
start on Java 6 development now.


Exactly - we need use cases (and it's not clear that the logging
problems have been resolved w/ aspects yet...)


You're joking, right?  I tease the aspect people that logging is the
only problem that has been solved(*) g.  There are lots of references
on how to do that, eg:
  http://www.developer.com/java/other/article.php/3109831


There's caching too, I think.  LogCache4J

What I meant was that it didn't seem like we came to a conclusion on it 
- that if we had a general pre-processing solution, we could use that 
too for logging, rather than have two.


The actual use-cases will help figure this out.

geir





(*) it's not true though, there are a number of tasks that are
well-suited to using aspects.  However, I would use them judiciously.


Like caching :)  (And get your local psychic retainer to tell you what 
the code is doing... ;)



geir



Regards,
Tim



Re: [classlib]Harmony passes 100% testcases of Tomcat5.5

2006-11-01 Thread Paulex Yang

Sigh...you must didn't read into it...;-)

Leo
The detailed information about how to build and run tests have been
put on http://wiki.apache.org/harmony/Apache_Tomcat
/Leo

Geir Magnusson Jr. wrote:

Nice!  Post it on the wiki?

Leo Li wrote:

Hi, all:
 Harmony now has been able to pass 100% testcases on Tomcat5.5. I 
ran

them both on WindowsXP and Unbuntu, with J9 VM and drlvm.
 The detailed information about how to build and run tests have been
put on http://wiki.apache.org/harmony/Apache_Tomcat.

Note:
 1. Harmony launches slower than RI, so I add the interval 
between the
launch of Tomcat Server and  tests from 8 seconds to 30 seconds to 
ensure

the server has been running.
 2. Runtime.exec fails on linux with J9 vm, as discussed on[1], so I
have altered the usage of fork to vfork as a workround despite of the
possible side-effect of the latter.
mailing thread
[1]
http://www.mail-archive.com/harmony-dev@incubator.apache.org/msg16002.html 






--
Paulex Yang
China Software Development Lab
IBM




Re: [drlvm][iprof] Using Profiling Utility (iprof)

2006-11-01 Thread Geir Magnusson Jr.
Is this tuff documented?  Wanna throw it in the wiki or a patch for the 
site?


Egor Pasko wrote:

On the 0x214 day of Apache Harmony Mikhail Fursov wrote:

+ Some usage hints:
1. You can get any stylesheet editor (like Excel), open iprof data and build
graphs from the  colums - and you will have very useful pictures.


gnuplot :)


2. The disadvantage of iprof is that it counts blocks, insts and helpers
calls and does not count time spent in helpers and blocks. You still need
VTune to get this info.


1 more disadvantage: counters are not synchronized resulting in
somewhat inaccurate data for multithreaded apps



Re: [DRLVM][PORT] correct API to retrieve processor number

2006-11-01 Thread Geir Magnusson Jr.



Xiao-Feng Li wrote:

Hi, I am using port_CPUs_number() for GCv5 to get the processor
number, but my desktop returns one processor with it on Windows
although my processor is dual-core. (port_CPUs_number is defined in
port_sysinfo.h).

I think we need more general form of processor number retrieval API
that can return processor information including that of core and
hyperthreading.

How do you think?


I chuckled when I first read this, as if people would disagree - no, I 
don't think we want to have an API to return accurate information about 
hardware capability.


One thing to keep in mind is to ensure that it's extensible so that 
non-intel features can be detected as well.  Easy portability is key.


geir


Re: [classlib]Harmony passes 100% testcases of Tomcat5.5

2006-11-01 Thread Geir Magnusson Jr.
Great!  Does anything link to that page?  IOW, if I started at the top, 
could I find the page using some reasonable path to get there?


geir

Leo Li wrote:

 Yes, I have posted it on http://wiki.apache.org/harmony/Apache_Tomcat.:)

On 11/1/06, *Geir Magnusson Jr.* [EMAIL PROTECTED] 
mailto:[EMAIL PROTECTED] wrote:


Nice!  Post it on the wiki?

Leo Li wrote:
  Hi, all:
   Harmony now has been able to pass 100% testcases on
Tomcat5.5. I ran
  them both on WindowsXP and Unbuntu, with J9 VM and drlvm.
   The detailed information about how to build and run tests
have been
  put on http://wiki.apache.org/harmony/Apache_Tomcat.
 
  Note:
   1. Harmony launches slower than RI, so I add the interval
between the
  launch of Tomcat Server and  tests from 8 seconds to 30 seconds
to ensure
  the server has been running.
   2. Runtime.exec fails on linux with J9 vm, as discussed
on[1], so I
  have altered the usage of fork to vfork as a workround despite of the
  possible side-effect of the latter.
  mailing thread
  [1]
 
http://www.mail-archive.com/harmony-dev@incubator.apache.org/msg16002.html




--
Leo Li
China Software Development Lab, IBM


Re: [DRLVM][PORT] correct API to retrieve processor number

2006-11-01 Thread Xiao-Feng Li

Are you using Linux? Don't know why it doesn't work for my Pentium D.
Actually my Windows seems not show two processors at first, while the
API may depend on OS. My Linux has no problem with this.

On the other hand, even your case is undesirable for Hyperthreading
since we probably want more detailed info about processor(s) since
hyperthreading sometimes wants to be treated differently than real SMP
(or dual-core).  I believe there is such kind of API available
somewhere, at least NUMA support of Linux from SGI has it.

Anyway before a more comprehensive API available, I really hope PORT
can have my Windows + PentiumD give me two processors. Maybe this
question should go to APR mailing list?

Thanks,
xiaofeng

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

I've tried Runtime.getRuntime().availableProcessors() right now and it works
OK to me and reports 2. I have Prescott, 1CPU, 2 hyperthreads, WindowsXP.

JNIEXPORT jint JNICALL
Java_java_lang_VMExecutionEngine_getAvailableProcessors
  (JNIEnv *, jclass)
{
return port_CPUs_number();
}

So if it's broken for you it's broken in Java too.

On 11/1/06, Xiao-Feng Li [EMAIL PROTECTED] wrote:

 Hi, I am using port_CPUs_number() for GCv5 to get the processor
 number, but my desktop returns one processor with it on Windows
 although my processor is dual-core. (port_CPUs_number is defined in
 port_sysinfo.h).

 I think we need more general form of processor number retrieval API
 that can return processor information including that of core and
 hyperthreading.

 How do you think?

 Thanks,
 xiaofeng




--
Mikhail Fursov




Re: [DRLVM][PORT] correct API to retrieve processor number

2006-11-01 Thread Xiao-Feng Li

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



Xiao-Feng Li wrote:
 Hi, I am using port_CPUs_number() for GCv5 to get the processor
 number, but my desktop returns one processor with it on Windows
 although my processor is dual-core. (port_CPUs_number is defined in
 port_sysinfo.h).

 I think we need more general form of processor number retrieval API
 that can return processor information including that of core and
 hyperthreading.

 How do you think?

I chuckled when I first read this, as if people would disagree - no, I
don't think we want to have an API to return accurate information about
hardware capability.

One thing to keep in mind is to ensure that it's extensible so that
non-intel features can be detected as well.  Easy portability is key.


Of course, since this is only an API issue. It will cover the
vendor-specific information underneath. Along with more and more
multi-processor/multi-core/multi-thread platforms available from
almost all major processor vendors, it is time to have a proper API
for the runtime, unless we give the burden to users with command line
options. Well even that, programming-wise we want an API to keep the
command line options.

Thanks,
xiaofeng



geir



Re: [DRLVM][PORT] correct API to retrieve processor number

2006-11-01 Thread Mikhail Fursov

On 11/1/06, Xiao-Feng Li [EMAIL PROTECTED] wrote:


Are you using Linux? Don't know why it doesn't work for my Pentium D.
Actually my Windows seems not show two processors at first, while the
API may depend on OS. My Linux has no problem with this.

On the other hand, even your case is undesirable for Hyperthreading
since we probably want more detailed info about processor(s) since
hyperthreading sometimes wants to be treated differently than real SMP
(or dual-core).  I believe there is such kind of API available
somewhere, at least NUMA support of Linux from SGI has it.



I use WindowsXP and here is more detailed info about CPU:
Number of processors  1
Number of cores  1 per processor
Number of threads  2 (max 2) per processor
Name  Intel Pentium 4 660
Code Name  Prescott
Specification  Intel(R) Pentium(R) 4 CPU 3.60GHz
Package  Socket 775 LGA

And I see 2 CPUs in Windows Task Manager.

Did you tried Runtime.getRuntime().availableProcessors()  ?



--
Mikhail Fursov


Re: [DRLVM][PORT] correct API to retrieve processor number

2006-11-01 Thread Xiao-Feng Li

Yes, both SUN JRE and DRLVM returns 1 for me. Java API has the same
problem. :-) Probably it should introduce an
availableCoresPerProcessor() or something more comprehensive.

Thanks,
xiaofeng

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

On 11/1/06, Xiao-Feng Li [EMAIL PROTECTED] wrote:

 Are you using Linux? Don't know why it doesn't work for my Pentium D.
 Actually my Windows seems not show two processors at first, while the
 API may depend on OS. My Linux has no problem with this.

 On the other hand, even your case is undesirable for Hyperthreading
 since we probably want more detailed info about processor(s) since
 hyperthreading sometimes wants to be treated differently than real SMP
 (or dual-core).  I believe there is such kind of API available
 somewhere, at least NUMA support of Linux from SGI has it.


I use WindowsXP and here is more detailed info about CPU:
Number of processors  1
Number of cores  1 per processor
Number of threads  2 (max 2) per processor
Name  Intel Pentium 4 660
Code Name  Prescott
Specification  Intel(R) Pentium(R) 4 CPU 3.60GHz
Package  Socket 775 LGA

And I see 2 CPUs in Windows Task Manager.

Did you tried Runtime.getRuntime().availableProcessors()  ?



--
Mikhail Fursov




Re: [general] Re: svn commit: r469512 - in /incubator/harmony/standard/site: docs/contributors.html xdocs/contributors.xml

2006-11-01 Thread Alexei Zakharov

Cool, congratulation! BTW, shouldn't this list be ordered somehow?
Looks like it will be long enough pretty soon. Or this is a kind of
historical document? ;)
Just worring about where to put my name when the time (i.e. login) comes.

Regards,

2006/10/31, Alexey Petrenko [EMAIL PROTECTED]:

Yep. Hurray!
It works... finally :)

SY, Alexey

2006/10/31, Tim Ellison [EMAIL PROTECTED]:
 Hurray!

 [EMAIL PROTECTED] wrote:
  Author: apetrenko
  Date: Tue Oct 31 06:57:44 2006
  New Revision: 469512
 
  URL: http://svn.apache.org/viewvc?view=revrev=469512
  Log:
  I've added myself to the list of committers.



--
Alexei Zakharov,
Intel Enterprise Solutions Software Division


Re: [classlib]Harmony passes 100% testcases of Tomcat5.5

2006-11-01 Thread Tim Ellison
Geir Magnusson Jr. wrote:
 Great!  Does anything link to that page?  IOW, if I started at the top,
 could I find the page using some reasonable path to get there?


Front Page  Application Status (in the 'Status' section)

There are a number of apps listed there as people test them.

Regards,
Tim

-- 

Tim Ellison ([EMAIL PROTECTED])



Re: [general] Motorola to develop ME under ALv2

2006-11-01 Thread Geir Magnusson Jr.



Geir Magnusson Jr. wrote:
This is about Motorola and their efforts in the ME ecosystem.  The 
Apache style of open governance has shown itself to be very successful 
in creating good software, although there are other models that are 
successful as well (Eclipse Foundation, MySQL).  So seeing Motorola 
embrace that, as well as our license - which gets rid of any license 
interop for whatever they do - is just a great step forward for the 
industry as a whole.


Back to SE... :)


I re-read this, and I didn't come across right here.   It sounds like 
I'm trying to change the subject - I'm not.   This is a great thing - as 
we all think that the Apache Way (whatever that is) is the bees knees so 
more of it is better.


I don't mean stop talking - we can talk about whatever we want.  What 
I meant was I'm going back to all the stuff I want to do on SE...  :)


geir




geir


Tim Ellison wrote:

Mikhail Fursov wrote:

AFAIK ME shares a lot of core classes and packages with SE. And we
have these packages implemented. And now I'm really interesting if
Motorola wants to reuse our code or develop the better one ?


You can see the same statement as me, so it would only be speculation to
talk about 'what Motorola want' beyond what they have said already.

The cool part is that by choosing ALv2 Harmony can freely engage and
exchange with their effort.

Regards,
Tim





Re: [general] Re: svn commit: r469512 - in /incubator/harmony/standard/site: docs/contributors.html xdocs/contributors.xml

2006-11-01 Thread Alexey Petrenko

I think you should add it to the end... :)

2006/11/1, Alexei Zakharov [EMAIL PROTECTED]:

Cool, congratulation! BTW, shouldn't this list be ordered somehow?
Looks like it will be long enough pretty soon. Or this is a kind of
historical document? ;)
Just worring about where to put my name when the time (i.e. login) comes.

Regards,

2006/10/31, Alexey Petrenko [EMAIL PROTECTED]:
 Yep. Hurray!
 It works... finally :)

 SY, Alexey

 2006/10/31, Tim Ellison [EMAIL PROTECTED]:
  Hurray!
 
  [EMAIL PROTECTED] wrote:
   Author: apetrenko
   Date: Tue Oct 31 06:57:44 2006
   New Revision: 469512
  
   URL: http://svn.apache.org/viewvc?view=revrev=469512
   Log:
   I've added myself to the list of committers.


--
Alexei Zakharov,
Intel Enterprise Solutions Software Division




--
Alexey A. Petrenko
Intel Middleware Products Division


RE: [drlvm][iprof] Using Profiling Utility (iprof)

2006-11-01 Thread Sidelnikov, Nikolay A
I'm going to prepare documentation for iprof for a couple of days

Nikolay A. Sidelnikov,
SSG/MRTD/DRL/DRL JIT software engineer,
Intel Corporation, Novosibirsk
e-mail: [EMAIL PROTECTED]
phone: +7 383 3340950 ext. 2173
 
 

-Original Message-
From: Geir Magnusson Jr. [mailto:[EMAIL PROTECTED]
Sent: Wednesday, November 01, 2006 5:29 PM
To: harmony-dev@incubator.apache.org
Subject: Re: [drlvm][iprof] Using Profiling Utility (iprof)

Is this tuff documented?  Wanna throw it in the wiki or a patch for the
site?

Egor Pasko wrote:
 On the 0x214 day of Apache Harmony Mikhail Fursov wrote:
 + Some usage hints:
 1. You can get any stylesheet editor (like Excel), open iprof data
and build
 graphs from the  colums - and you will have very useful pictures.

 gnuplot :)

 2. The disadvantage of iprof is that it counts blocks, insts and
helpers
 calls and does not count time spent in helpers and blocks. You still
need
 VTune to get this info.

 1 more disadvantage: counters are not synchronized resulting in
 somewhat inaccurate data for multithreaded apps



Re: [DRLVM][PORT] correct API to retrieve processor number

2006-11-01 Thread Alexey Varlamov

Just a wild guess: this may be caused by x86 emulation on em64t
(x86_64). SDK docs advise to use GetNativeSystemInfo() in such case,
instead of currently used GetSystemInfo(). (See
vm\port\src\misc\win\sysinfo.c).


2006/11/1, Xiao-Feng Li [EMAIL PROTECTED]:

Yes, both SUN JRE and DRLVM returns 1 for me. Java API has the same
problem. :-) Probably it should introduce an
availableCoresPerProcessor() or something more comprehensive.

Thanks,
xiaofeng

On 11/1/06, Mikhail Fursov [EMAIL PROTECTED] wrote:
 On 11/1/06, Xiao-Feng Li [EMAIL PROTECTED] wrote:
 
  Are you using Linux? Don't know why it doesn't work for my Pentium D.
  Actually my Windows seems not show two processors at first, while the
  API may depend on OS. My Linux has no problem with this.
 
  On the other hand, even your case is undesirable for Hyperthreading
  since we probably want more detailed info about processor(s) since
  hyperthreading sometimes wants to be treated differently than real SMP
  (or dual-core).  I believe there is such kind of API available
  somewhere, at least NUMA support of Linux from SGI has it.
 

 I use WindowsXP and here is more detailed info about CPU:
 Number of processors  1
 Number of cores  1 per processor
 Number of threads  2 (max 2) per processor
 Name  Intel Pentium 4 660
 Code Name  Prescott
 Specification  Intel(R) Pentium(R) 4 CPU 3.60GHz
 Package  Socket 775 LGA

 And I see 2 CPUs in Windows Task Manager.

 Did you tried Runtime.getRuntime().availableProcessors()  ?



 --
 Mikhail Fursov





Re: [drlvm] Class unloading support - tested one approach

2006-11-01 Thread Etienne Gagnon
Robin Garner wrote:
 - Allocate a byte (or word) in each vtable for the purpose of tracking
 class reachability.

Yep, there's no reason to keep the bits (or words, for performance) in
the class loader, even in the approach I've proposed.  They could be
moved to the vtable.

Etienne

-- 
Etienne M. Gagnon, Ph.D.http://www.info2.uqam.ca/~egagnon/
SableVM:   http://www.sablevm.org/
SableCC:   http://www.sablecc.org/


signature.asc
Description: OpenPGP digital signature


Re: 235 tests are missed at DRLVM test run for Windows

2006-11-01 Thread Anton Luht

Alexei,


2. If I suggested an enhancement, this would be an addition of a test
name filter for comparison results. I mean that if I'm interested in
Bidi tests comparison, I put Bidi into form field (name=Bidi) and see a
comparison for the tests which names contain the specified substring.


Feature request accepted :)


3. When I use Open in a new window for a list of tags, IE opens a copy
of the initial window. When I do a left click, there is no scroll bar at
the pop up window, and the list of tags doesn't fit the window.


Thanks, scrollbars were added.


--
Regards,
Anton Luht,
Intel Java  XML Engineering


Re: 235 tests are missed at DRLVM test run for Windows

2006-11-01 Thread Anton Luht

Alexey,


1) allow to compare by exact id - e.g. I failed to compare #90 and #91
due to missing tags.


First, you can obtain login (ask any registered user to add you) and
tag runs you are interested in.

Second - you can do it if you enter two result ids into URL:

http://harmonytest.org/diff.do?method=viewid=id1id2=id2


2) add filtering by tags on the main page - e.g. to see only drl or
only linux results.


Feature request accepted - I think there will be ~20..30 latest
results on the first page and 'Search' link that will allow to search
by tags, other run properties (like uploader name - old request from
Tony Wu)

--
Regards,
Anton Luht,
Intel Java  XML Engineering


RE: 235 tests are missed at DRLVM test run for Windows

2006-11-01 Thread Fedotov, Alexei A
Tim,

As far as I know IBM has at least four different JVMs. This makes me
think it would be more precise to name JVM exactly. If blue giant guys
like current tags, let's leave the tags as is. I don't really think that
any tag name would be a reason for researchers from the Jikes team not
to join us in using http://harmonytest.org. 

With best regards,
Alexei Fedotov,
Intel Java  XML Engineering

-Original Message-
From: Tim Ellison [mailto:[EMAIL PROTECTED]
Sent: Wednesday, November 01, 2006 2:13 AM
To: harmony-dev@incubator.apache.org
Subject: Re: 235 tests are missed at DRLVM test run for Windows

Fedotov, Alexei A wrote:
 4. I vote for one of the following renamings:
  a) Rename ibm tag to j9
  b) Rename drl tag to intel :-).

That looks like a strange suggestion to me.  I think the tags are fine
as they are.  What is you thinking?

Regards,
Tim

--

Tim Ellison ([EMAIL PROTECTED])


RE: [classlib] Preprocessor - CHECKPOINT

2006-11-01 Thread Fedotov, Alexei A
Regardless, I think we need to settle on our exact requirement first,
before spending too much time on looking for a solution.

+1
This exactly matches my morning metro thoughts. Nathan, thanks for
catching this point.

With best regards,
Alexei Fedotov,
Intel Java  XML Engineering

-Original Message-
From: Nathan Beyer [mailto:[EMAIL PROTECTED]
Sent: Wednesday, November 01, 2006 4:06 AM
To: harmony-dev@incubator.apache.org
Subject: Re: [classlib] Preprocessor - CHECKPOINT

What's the concern about just using the prescribed branching pattern
for SVN? There are some other nice tricks like externals for pulling
in common files into the working copies of other branches (ala the
'concurrent' code in 'standard' that's pulled into 'enhanced' on
checkout). I would propose we at least attempt to go down a path of
investigating a branching.

Regardless, I think we need to settle on our exact requirement first,
before spending too much time on looking for a solution. For example,
if logging is a real requirement, but everyone agrees it can be done
via instrumentation (AspectJ, java.lang.instrument, etc), then are
there any other requirements that affect the actual source files
internally? If not, then could all of the other requirements be
fulfilled by judicious SCM use?

So, I would suggest we back up a little and just layout all of the
requirements first, so we can make sure everyone's in agreement about
the needs.

-Nathan

On 10/31/06, Geir Magnusson Jr. [EMAIL PROTECTED] wrote:
 So we all agree that it's not an ideal solution.

 Can anyone think of anything else?  No one said this was going to be
easy...

 geir



Re: 235 tests are missed at DRLVM test run for Windows

2006-11-01 Thread Geir Magnusson Jr.



Anton Luht wrote:

Alexei,


2. If I suggested an enhancement, this would be an addition of a test
name filter for comparison results. I mean that if I'm interested in
Bidi tests comparison, I put Bidi into form field (name=Bidi) and see a
comparison for the tests which names contain the specified substring.


Feature request accepted :)


3. When I use Open in a new window for a list of tags, IE opens a copy
of the initial window. When I do a left click, there is no scroll bar at
the pop up window, and the list of tags doesn't fit the window.


Thanks, scrollbars were added.



Could the tags be in a  list instead of freely typed?  Let me select 
multiple?




RE: [classlib] Preprocessor - CHECKPOINT

2006-11-01 Thread Fedotov, Alexei A
Etienne,
The example is quite interesting. But the idea of selling comment space
for advertising really rocks! :-)

With best regards,
Alexei Fedotov,
Intel Java  XML Engineering

-Original Message-
From: Etienne Gagnon [mailto:[EMAIL PROTECTED]
Sent: Wednesday, November 01, 2006 2:25 AM
To: harmony-dev@incubator.apache.org
Subject: Re: [classlib] Preprocessor - CHECKPOINT

Tim Ellison wrote:
 IMO it's not ideal that the preprocessed source still contains all
the
 streams, albeit in comments.  It wouldn't make the source very
 'consumable' to the Mrs. SE or ME developer.

Hmmm...  It's always possible to have a special output mode that puts
empty (or advertizing, hehe) comments, instead of other stream code
(thus, preserving line numbers).

To continue on my earlier example:

Java source = j2se end-developer
---


...

//  Download Harmony[tm] from
//
//  http://the.nice.harmony.url/download
//
//  :-)

  @Processor(Not in j2me!)
  int some_field =
some +
  initializing()
code;

...


Or, more likely:

Java source = j2se end-developer
---


...

//  Please  ignore this comment.  It has been
//  intentionally left here to preserve line numbers
//  for bug reporting purpose.
//
//  Please report bugs to http://bugs.of.harmony.url/...

  @Processor(Not in j2me!)
  int some_field =
some +
  initializing()
code;

...


So, J2ME  J2SE end-developers are kept happy.

As a bonu$, you can al$o $tart a nice busine$$ $elling advertizing
$pace
in $ource code.  ;-P

Etienne

--
Etienne M. Gagnon, Ph.D.http://www.info2.uqam.ca/~egagnon/
SableVM:   http://www.sablevm.org/
SableCC:   http://www.sablecc.org/


Re: [drlvm] Class unloading support - tested one approach

2006-11-01 Thread Robin Garner
 Interesting idea!   It seems the real issue is marking and sweeping the
 vtables.  A stab at categorizing the approaches:

 a)
 Force vtables to be as similar to ordinary java objects as possible.  The
 upside: existing GC algorithms will work unaltered.  The downside is
 vtables
 of vtables of vtables...  This has already been discussed at length.

 b)
 Force vtables to live and die in a unique vtable space.  The big
 challenge seems to be building a custom GC algorithm that is simpler and
 less invasive than doing a) above.  Most likely the performance of the
 custom GC algorithm will never be an issue.  Vtables have some very
 interesting properties that may make this doable.  The 4 (or 8) bytes at
 offset K always point to a class structure which, in turn, always has a
 pointer at offset Z back to the vtable.  There are way fewer vtables
 than
 objects.  For practical reasons, it can be assumed that vtables will
 always
 be pinned.  The number of class structs/objects is no greater than the
 number of vtables.

I guess ... the issue of where vtables and other classloader related
structures lives seems to me to be simple engineering.  Whether they are
malloced in the C heap or 'new'ed in an immovable Java heap makes little
difference.  After all they are very very small compared to the rest of
the heap.

 A half-baked scheme that might be good enough:  Partition off 50 megabytes
 as a hard, fixed vtables space.  Then do a word-by-word scan to pick up
 candidate pointers class structs.  Then filter the candidate class struct
 pointers by verifying the back pointers.  Occasionally there might be
 floating garbage with this approach but a valid, live vtable should
 never
 be accidentally freed.  The filtered set are the live vtables.  Next
 scan
 the live vtables looking for members that were never marked by the regular
 GC as mentioned  below.  When found, zero the vtable, link-list on a free
 vtable space list, mark the class struct as vtable-less.  Process the
 vtable-less class struct, etc...

This sounds a bit complicated - i'm sure it could be done by maintaining
linked lists of all the classes loaded by each classloader (pointing to
vtables from there) and traversing it.  Traverse this once, propagating
the mark bits upwards and you are done.

 It seems as long as part of the system is built using garbage collected
 java
 objects and part of the system is built using malloc/free C structs, the
 problem of releasing connected objects/C_structs will be messy and hacky.
 In a sense, this issue is really a motivation for re-writing the whole VM
 in
 Java... hmmm...

Well in Java-in-Java you would hardly want to do a full trace operation
for every vtable pointer - that would be quite costly imo, because in a
full gc you do a test-and-set, then conditionally copy and/or enqueue for
scanning.   So there's a dependent load and conditional store, and the
test to detect the gc policy for the vtable space.

And you really don't want to have moveable vtables.  The cost of updating
the forwarding pointers alone would be a killer, let alone the engineering
difficulties.

There are definitely reasons to write a VM in java, but I don't believe
this is one of them!  As I say below I wouldn't do class unloading on top
of the standard GC mechanism - I would do it in the VM, using a hook from
the GC's tracing.


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

 Actually, just thinking about how I would implement this in JikesRVM, I
 would use the reachability based algorithm, but piggyback on the
 existing GC mechanisms:

 - Allocate a byte (or word) in each vtable for the purpose of tracking
 class reachability.
 - Periodically, at a time when no GC is running (even the most
 aggressive concurrent GC algorithms have these, I believe), zero this
 flag across all vtables.  This is the beginning of a class-unloading
 epoch.
 - During each GC, when the GC is fetching the GC map for an object,
 *unconditionally* write a value to the class reachability byte.  It may
 make sense for this byte to be in either the first cache-line of the
 vtable, or the cache line that points to the GC map - just make sure the
 mark operation doesn't in general fetch an additional cache line.
 - At a point in the sufficiently far future, when all reachable objects
 are known to have been traced by the GC, sweep the vtables and check the
 reachability of the classloaders.

 The features of this approach are:

 - Minimal additional work at GC time.  The additional write will cause
 some additional memory traffic, but a) it's to memory that is already
 guaranteed to be in L1 cache, and b) it's an unconditional independent
 write, and c) multiple writes to common classes will be absorbed by the
 write buffer.

 - Space cost of at most 1 word per vtable.

 - This works whether vtables are objects or VM structures

 - If the relationship between a class and a vtable is not 1:1, this only
 need affect the periodic sweep process, which should be 

RE: [classlib] Preprocessor - CHECKPOINT

2006-11-01 Thread Fedotov, Alexei A
Sorry for spam,
I
bet if you could convince some investor that it was a web2.0 thing, you
could get it funded

I believe I know one investor - just convince G**gle to distribute AJAX
modules for his code search engine which would automatically insert
comments with code sensitive advertisement. 

With best regards,
Alexei Fedotov,
Intel Java  XML Engineering

-Original Message-
From: Geir Magnusson Jr. [mailto:[EMAIL PROTECTED]
Sent: Wednesday, November 01, 2006 4:39 AM
To: harmony-dev@incubator.apache.org
Subject: Re: [classlib] Preprocessor - CHECKPOINT



Etienne Gagnon wrote:
 Tim Ellison wrote:
 IMO it's not ideal that the preprocessed source still contains all
the
 streams, albeit in comments.  It wouldn't make the source very
 'consumable' to the Mrs. SE or ME developer.

 Hmmm...  It's always possible to have a special output mode that puts
 empty (or advertizing, hehe) comments, instead of other stream code
 (thus, preserving line numbers).

 To continue on my earlier example:

 Java source = j2se end-developer
 ---


 ...

 //  Download Harmony[tm] from
 //
 //  http://the.nice.harmony.url/download
 //
 //  :-)

   @Processor(Not in j2me!)
   int some_field =
 some +
   initializing()
 code;

 ...


 Or, more likely:

 Java source = j2se end-developer
 ---


 ...

 //  Please  ignore this comment.  It has been
 //  intentionally left here to preserve line numbers
 //  for bug reporting purpose.
 //
 //  Please report bugs to http://bugs.of.harmony.url/...

   @Processor(Not in j2me!)
   int some_field =
 some +
   initializing()
 code;

 ...


 So, J2ME  J2SE end-developers are kept happy.

I'm still not quite getting the importance of preserving the line
numbers like that if we have some minimal tooling to let us work with
it
in eclipse or IDEA invisibly  users would report bug at line X, and
we'd either look at the transformed code that they are actually using,
and translate backwards, or have a plugin that lets us A/B between
transformed and original.

The key is to play with some examples, I guess.


 As a bonu$, you can al$o $tart a nice busine$$ $elling advertizing
$pace
 in $ource code.  ;-P

It's our idea - you run with it.  let us know how that works out.  (I
bet if you could convince some investor that it was a web2.0 thing, you
could get it funded)



 Etienne



[classlib][portlib] Docs?

2006-11-01 Thread Alexey Petrenko

Guys,

do we have any docs on portlib?

SY, Alexey

--
Alexey A. Petrenko
Intel Middleware Products Division


RE: [classlib][portlib] Docs?

2006-11-01 Thread Morozova, Nadezhda
Not that I know of :( bits of things are in the devguide, maybe. But you
probably won't find that of much notice.
Anyone, please tell me it's not true! 

Thank you, 
Nadya Morozova
 

-Original Message-
From: Alexey Petrenko [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, November 01, 2006 4:15 PM
To: harmony-dev@incubator.apache.org
Subject: [classlib][portlib] Docs?

Guys,

do we have any docs on portlib?

SY, Alexey

-- 
Alexey A. Petrenko
Intel Middleware Products Division


Re: [classlib]Harmony passes 100% testcases of Tomcat5.5

2006-11-01 Thread Paulex Yang

Tim Ellison wrote:

Geir Magnusson Jr. wrote:
  

Great!  Does anything link to that page?  IOW, if I started at the top,
could I find the page using some reasonable path to get there?




Front Page  Application Status (in the 'Status' section)

There are a number of apps listed there as people test them.
  
Yes, and I suggest we always add links to this page when somebody 
creates a wiki page for application test, a few days ago, I just added 
several links to it(IIRC, Eclipse, Tomcat, Log4j...), because I thought 
they should be there but couldn't find...

Regards,
Tim

  



--
Paulex Yang
China Software Development Lab
IBM




Re: [classlib][portlib] Docs?

2006-11-01 Thread Paulex Yang
If you get Doxygen installed, you can create it by running ant 
doxygen-natives in classlib/trunk/doc. There were discussions to move 
the document to somewhere on website, but seems it is still to be done.


Morozova, Nadezhda wrote:

Not that I know of :( bits of things are in the devguide, maybe. But you
probably won't find that of much notice.
Anyone, please tell me it's not true! 

Thank you, 
Nadya Morozova
 


-Original Message-
From: Alexey Petrenko [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, November 01, 2006 4:15 PM

To: harmony-dev@incubator.apache.org
Subject: [classlib][portlib] Docs?

Guys,

do we have any docs on portlib?

SY, Alexey

  



--
Paulex Yang
China Software Development Lab
IBM




[doc] EM minor typos are corrected

2006-11-01 Thread Konovalova, Svetlana

Folks,

Some minor typos were discovered in the Execution Manager Component 
Description. In cooperation with Mikhail Fursov we've created a couple of 
necessary patches [http://issues.apache.org/jira/browse/HARMONY-2036].
Would be great, if someone can find a chance to look at them and apply.

Thanks in advance.

Best regards,
Svetlana Konovalova
 


Re: [doc] No Doxygen reference for code :(

2006-11-01 Thread Paulex Yang

Morozova, Nadezhda wrote:

Hi everyone,

I've noticed that there's no API reference documentation for Harmony
code - generated by Doxygen/Javadoc.  I guess many will agree that
having API reference is very useful and convenient.

 


This issue was discussed a while ago [1] for kernel classes and vmi
interface in classlib. We agreed to store the Doxygen docs on the
website by generating them manually from code and placing there. It
seems that the old version of the docs was removed from SVN but never
made its way to the website, so it's just NOWHERE now :-(. Let's fix it!


AFAIU, we want to have the following:

1.  Ability to generate docs locally from source code as part of
build - need to change existing build files or write new ones.
2.  Ability to see docs on the website - manually copy a local
bundle of docs to the website and add a link. Geir has been planning to
include the website into the next snapshot; supplying ready reference
with it seem nice.

Volunteers? 



I can work on item 2 for sure to get a nice config file and patch the
website to link to our new Doxygen API. Item 1 -fixing the build - might
be more extravagant, so your aid's welcome ;) 
  
It is me that removed the original document in classlib/trunk/doc as we 
discussed before, so seems it should be my responsibility to make the 
work complete:). Sorry for delaying so long. But I still have no strong 
feelings where to put them in standard/site, any suggestions?


You can create all the API document by run ant in classlib/trunk/doc, 
you can get all document created, assuming Doxygen is installed. If you 
kindly provide the patch, I will look at it and merge it into SVN.
 


[1] mail thread
http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200609.mb
ox/[EMAIL PROTECTED] 

 


Thanks,

Nadya Morozova


  



--
Paulex Yang
China Software Development Lab
IBM




Re: [classlib][portlib] Docs?

2006-11-01 Thread Tim Ellison
Morozova, Nadezhda wrote:
 Not that I know of :( bits of things are in the devguide, maybe. But you
 probably won't find that of much notice.
 Anyone, please tell me it's not true! 

The docs are generated directly from the code using Doxygen.  They went
away with that fateful delete of the doc subdir, but can be regenerated.

Regards,
Tim

-- 

Tim Ellison ([EMAIL PROTECTED])



Re: [security][testing] 2 tests failed today

2006-11-01 Thread Mark Hindess

Fixed in r469902.  Turns out the exec was putting double quotes around
the classpath argument (which might make sense if it was going to a
shell) but it doesn't for an exec syscall.  This resulted in classes
being search for in the non-existent directory:

  /path/to/modules/luni/bin/test

rather than:

  /path/to/modules/luni/bin/test

Regards,
 Mark - confused as to why it didn't also fail on windows

On 1 November 2006 at 10:37, Tim Ellison [EMAIL PROTECTED] wrote:
 Boris Kuznetsov wrote:
  The tests use tests.support.Support_Exec.execJava2() to perform
  testing on other JVM. This method uses Runtime.getRuntime().exec() to
  run command. You can see command (it looks like java -cp 
  classname) in the test's System.out. It woks OK on Win, but produces
  NoClassDefFoundError on linux.
  Note, the command woks OK in linux sh also.
 
 Yes, I don't think it is the tests for HARMONY-1674 per se that are
 failing, but they are exposing a problem in the exec -- which is why I
 haven't rolled back that commit.
 
 I'll keep looking at it, let me know if you see the problem.
 
 Regards,
 Tim
 
 -- 
 
 Tim Ellison ([EMAIL PROTECTED])
 




Re: [classlib][portlib] Docs?

2006-11-01 Thread Alexey Petrenko

Having these docs on website will be really good!

SY, Alexey

2006/11/1, Paulex Yang [EMAIL PROTECTED]:

If you get Doxygen installed, you can create it by running ant
doxygen-natives in classlib/trunk/doc. There were discussions to move
the document to somewhere on website, but seems it is still to be done.

Morozova, Nadezhda wrote:
 Not that I know of :( bits of things are in the devguide, maybe. But you
 probably won't find that of much notice.
 Anyone, please tell me it's not true!

 Thank you,
 Nadya Morozova


 -Original Message-
 From: Alexey Petrenko [mailto:[EMAIL PROTECTED]
 Sent: Wednesday, November 01, 2006 4:15 PM
 To: harmony-dev@incubator.apache.org
 Subject: [classlib][portlib] Docs?

 Guys,

 do we have any docs on portlib?

 SY, Alexey




--
Paulex Yang
China Software Development Lab
IBM





RE: [doc] No Doxygen reference for code :(

2006-11-01 Thread Morozova, Nadezhda
About your question

 It is me that removed the original document in classlib/trunk/doc as
we 
 discussed before, so seems it should be my responsibility to make the 
 work complete:). Sorry for delaying so long. But I still have no
strong 
 feelings where to put them in standard/site, any suggestions?

I'd say, we can place classlib docs inside
standard/site/xdocs/subcomponents/classlib/Doxygen. Do you think we'll
need subfolders for classlib modules inside that? 

 You can create all the API document by run ant in
classlib/trunk/doc, 
 you can get all document created, assuming Doxygen is installed. If
you 
 kindly provide the patch, I will look at it and merge it into SVN.

I'd be glad to help. What kind of patch do you need? 
I can build the docs locally and post a JIRA with the archive. I can
also fix the site to have a link to the index.html produced by Doxygen.
Is that what you mean? 

Thank you, 
Nadya Morozova
 

-Original Message-
From: Paulex Yang [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, November 01, 2006 4:33 PM
To: harmony-dev@incubator.apache.org
Subject: Re: [doc] No Doxygen reference for code :(

Morozova, Nadezhda wrote:
 Hi everyone,

 I've noticed that there's no API reference documentation for Harmony
 code - generated by Doxygen/Javadoc.  I guess many will agree that
 having API reference is very useful and convenient.

  

 This issue was discussed a while ago [1] for kernel classes and vmi
 interface in classlib. We agreed to store the Doxygen docs on the
 website by generating them manually from code and placing there. It
 seems that the old version of the docs was removed from SVN but never
 made its way to the website, so it's just NOWHERE now :-(. Let's fix
it!


 AFAIU, we want to have the following:

 1.Ability to generate docs locally from source code as part of
 build - need to change existing build files or write new ones.
 2.Ability to see docs on the website - manually copy a local
 bundle of docs to the website and add a link. Geir has been planning
to
 include the website into the next snapshot; supplying ready reference
 with it seem nice.

 Volunteers? 

 I can work on item 2 for sure to get a nice config file and patch the
 website to link to our new Doxygen API. Item 1 -fixing the build -
might
 be more extravagant, so your aid's welcome ;) 
   
It is me that removed the original document in classlib/trunk/doc as we 
discussed before, so seems it should be my responsibility to make the 
work complete:). Sorry for delaying so long. But I still have no strong 
feelings where to put them in standard/site, any suggestions?

You can create all the API document by run ant in classlib/trunk/doc, 
you can get all document created, assuming Doxygen is installed. If you 
kindly provide the patch, I will look at it and merge it into SVN.
  

 [1] mail thread

http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200609.mb
 ox/[EMAIL PROTECTED] 

  

 Thanks,

 Nadya Morozova


   


-- 
Paulex Yang
China Software Development Lab
IBM


Re: [security][testing] 2 tests failed today

2006-11-01 Thread Alexey Varlamov

2006/11/1, Tim Ellison [EMAIL PROTECTED]:

Mark Hindess wrote:
 Fixed in r469902.  Turns out the exec was putting double quotes around
 the classpath argument (which might make sense if it was going to a
 shell) but it doesn't for an exec syscall.  This resulted in classes
 being search for in the non-existent directory:

   /path/to/modules/luni/bin/test

 rather than:

   /path/to/modules/luni/bin/test

 Regards,
  Mark - confused as to why it didn't also fail on windows

...but, AIUI the code worked ok on Linux with DRLVM.
Can somebody confirm that?


This is true - DRLVM has it's own impl of Process. I'll raise this
issue in a separate thread.



Tim - even more confused

--

Tim Ellison ([EMAIL PROTECTED])




RE: [doc] No Doxygen reference for code :(

2006-11-01 Thread Fedotov, Alexei A
Nadya,

Thanks for answers. You have a nice approach to the requirement
engineering for the documentation build system. It would be great if you
also add priorities for your requirements.

Looking into your original list of requirements, I've noticed I haven't
addressed the second one:
2. Ability to see docs on the website

Yesterday I'd added an archive with documentation to HARMONY-2024
http://issues.apache.org/jira/browse/HARMONY-2024, so committers could
now put documentation to the web site and everyone could contribute to
the documentation quality. 

With best regards,
Alexei Fedotov,
Intel Java  XML Engineering

-Original Message-
From: Morozova, Nadezhda [mailto:[EMAIL PROTECTED]
Sent: Tuesday, October 31, 2006 9:02 PM
To: harmony-dev@incubator.apache.org
Subject: RE: [doc] No Doxygen reference for code :(

Alexei,

Thanks for meaningful and numerous questions, Alexei. I have thought of
some of these, but you give it a systematic touch :)
Others' opinions are welcome, mine in below - marked with [NM].

Related question: do we want to have some version of API doc on the
site
now? I've experimented with building docs, and could produce a working
bundle. We can work to enable the build create API docs locally in
parallel with that.

PS: Geir, there's a specific question for you below.

Thank you,
Nadya Morozova


-Original Message-
From: Fedotov, Alexei A [mailto:[EMAIL PROTECTED]
Sent: Tuesday, October 31, 2006 7:49 PM
To: harmony-dev@incubator.apache.org
Subject: RE: [doc] No Doxygen reference for code :(

Nadya, All,

Suggestion to generate Doxygen from DRLVM code sounds very interesting.
I posted a quick solution for Linux to
http://issues.apache.org/jira/browse/HARMONY-2024

[NM] great news, I'll see if I can do smth similar for Windows.

If you want to have this integrated into build.xml, it would be great
to
define a correct scope. Could you please give more details what do you
expect from the documentation build file?
[NM] I'd give it a try. Please don't expect me to write a design doc
for
you

A volunteer can try doing some things important for you first, and then
add new features gradually.
[NM] yeah, I like the idea of a gradual step-by-step process.

 * Should doxygen build documentation for inter-component interfaces?
[NM] sure, and I guess it's the better-documented part ;)

 * What are components? I assume vm, jit, gc are out of the question.
Is
am execution manager or an interpreter a separate component?
[NM] see dev guide; we've thought components roughly match to top-level
folders:  EM, Interpreter, TM are all components. Not sure what to do
with the three GCs now, though.

 * Should doxygen build documentation for each component like vm, jit,
interpreter, gc?
[NM] It's my dream and very convenient. Getting Doxygen to run for
half-hour and get hung doesn't seem an attractive prospect. However, I
guess we can get some primitive build as a start and add
component-specific build targets later. For me, an ideal list of
targets
for Doxygen would be something like:
all - all headers for DRLVM/classlib (one of two, not both in one
bundle)
inter-component - headers in include/ folder basically. Do we have
any
high-level interfaces in other places? This could show the big
picture
and somehow map to the arch description.
component - headers for the component name specified.
We might concentrate on the first two now for simplicity and smaller
scope.

 * Should we put documentation into doc/component_doc dirs as class
library code does?
[NM] this is a complex issue. I know Geir has wanted to add website to
the snapshot. *Geir*, could you express your view on where to place
docs? I guess separating normal docs and autogenerated docs would
be
good, like the /doc/ folder for all files, with /doc/Doxygen/ subfolder
for API reference. When we are ready to build component-specific
reference, /doc/Doxygen/ can have subfolders for each.

 * Should we use the same formatting as a class library documentation?
[NM] why not? as I've noticed, default formatting is ok, but there are
many options you can enable/disable, e.g. diagram for class hierarchy.

 * We don't need to process .cpp files in DRLVM source tree, do we?
[NM] no, I guess not. A developer that needs explanation in .cpp would
rather look into the code, I guess.

 * Would each of these choices (inter-component documentation,
component
interface documentation) be a separate configuration? If yes, should we
put each result into the separate directory?
 * Should doxygen process .java files in DRLVM source tree?
 * Should the doxygen documentation be integrated with class library
documentation?
[NM] I hope we can have two different bundles. Otherwise, it'd take our
poor Doxygen a day to compile the docs :) we can cross-reference the
two
index.html files.
Can you estimate, how often you'd want to link from a vm header
description into classlib?

 * Do you expect to have inheritance diagrams?
[NM] I don't know. From what I see, you 

Re: [classlib] Preprocessor - CHECKPOINT

2006-11-01 Thread Etienne Gagnon
Geir Magnusson Jr. wrote:
 There's caching too, I think.  LogCache4J
 
 What I meant was that it didn't seem like we came to a conclusion on it
 - that if we had a general pre-processing solution, we could use that
 too for logging, rather than have two.
 
 The actual use-cases will help figure this out.

Here two typical some use cases, and some proposed solutions:

Problem
---
logging, and other situations where you really don't want to put the
additional source code in the main source files

Solution

use aspects  (Plug: you might want to give a look at the optimizing abc
compiler)


Problem
---
supporting a different API specifications/versions, such as j2me and
j2se1.4, in addition to the main version (e.g. j2se1.5)


Solution


This is a trickier problem.  We can divide the problem at two main levels:

1- file/directory level
2- source-code level

At the file/directory level, each version (e.g. j2me, j2se1.4, ...)
might include additional files (relative to the main version), and might
not include some files of the main version.  In other words, j2me might
not contain database APIs.

Managing file inclusion/exclusion can be done in various ways.

 a) ant based:  use distinct ant (sub-)files for each version.

   The problem is that IDEs (e.g. Eclipse) will most likely show some
   of the excluded files in its class/files browser.  This wouldn't be
   very elegant.  It also implies always compiling through ant files.

   Of course, one could develop Eclipse-specific configuration files to
   mimic the inclusion/exclusion of ant files, but then, this opens the
   door for discrepancies between ant vs eclipse inclusion/exclusion
   lists.  I don't like it.

 b) custom-tool based: the custom processing tool I proposed could also
   parse inclusion/exclusion lists, and use these lists to move files
   around, in addition to processing the content of unmoved files.

   For example, if class X of the main version is not part of j2me,
   process(j2me) would move this file to a subdirectory .streams/.

   If a class Y is not in the main version (the one used for svn
   ci), it resides in subdirectory .streams in the trunk.
   process(j2me) moves this file into the normal directory.

   As for IDEs, now you can configure them to automatically exclude
   .stream/ directories.

   Inclusion/exclusion could be managed in two ways:
   1- the processing tool could look for inclusion/exclusion list files,
  such as j2me.inclusion, j2me.exclusion, main.inclusion,
  main.exclusion, etc.

  This would lead to the best performance (for process(X)), yet it
  does require much manual update of inclusion/exclusion lists, with
  all the discrepancies that result from human mistakes while
  updating these files.

   2- (my preferred way), directives, at the beginning of the source
  code would indicate whether a file is included in a version or
  not.  Depending on target, the file would be moved to the
  appropriate directory (normal, .streams).


Of course, there's also the problem of non-source files, i.e.
resources.  IMO, resources could be managed using specific
directories (.main/, .j2me, .j2se1.4) and a .shared/
directory with symbolic links in the specific directories.


As for source-level management, you would use my proposed processing
tool to view the source files with the right spectacles [as Tim said so
elegantly:-)].  For development targets, it is important that:

 revert(process(X, target)) = X

By development target I mean a target that is meant for Harmony
developers in prevision of reverting modified code to a format
suitable for svn ci (i.e. revert to main target).

For comfortable IDE development, one could imagine that the IDE editor
can reduce to one-line visible comments (or better, specially
formatted ones) so that it gives you the impression that you are really
wearing target-specific spectacles.  [I know Eclipse allows for such
things already].

To release code, one would apply:

 process(X, release-target) = Y

Now, it is important to understand that Y, in this case, is NOT suitable
for doing any modification as

 revert(Y) = Kaboom!  (The tool will simply report that it can't do it;
it won't crash.)

Yet, I think that it would be important that the processing tool leaves
markers in Y, so that we could also have a tool to help finding the
canonical source line of a reported bug:

 revertLine(Y, L') = L  (where L' is a line reported by end-developer,
  and L the related line in svn).

Markers would be short single lines comments, so the end-developer
annoyance would be kept minimal.


What do you think?


I am really offering to develop this custom tool.  Just help me identify
various Harmony needs I might have missed!

Of course, this tool is not the best solution to ALL problems, yet, so
far, I think that it seems to best address the problem of supporting
various API 

Re: [doc] No Doxygen reference for code :(

2006-11-01 Thread Alexey Petrenko

I think that we can place the docs here:
http://incubator.apache.org/harmony/subcomponents/classlibrary/index.html

2006/11/1, Paulex Yang [EMAIL PROTECTED]:

Morozova, Nadezhda wrote:
 Hi everyone,

 I've noticed that there's no API reference documentation for Harmony
 code - generated by Doxygen/Javadoc.  I guess many will agree that
 having API reference is very useful and convenient.



 This issue was discussed a while ago [1] for kernel classes and vmi
 interface in classlib. We agreed to store the Doxygen docs on the
 website by generating them manually from code and placing there. It
 seems that the old version of the docs was removed from SVN but never
 made its way to the website, so it's just NOWHERE now :-(. Let's fix it!


 AFAIU, we want to have the following:

 1.Ability to generate docs locally from source code as part of
 build - need to change existing build files or write new ones.
 2.Ability to see docs on the website - manually copy a local
 bundle of docs to the website and add a link. Geir has been planning to
 include the website into the next snapshot; supplying ready reference
 with it seem nice.

 Volunteers?

 I can work on item 2 for sure to get a nice config file and patch the
 website to link to our new Doxygen API. Item 1 -fixing the build - might
 be more extravagant, so your aid's welcome ;)

It is me that removed the original document in classlib/trunk/doc as we
discussed before, so seems it should be my responsibility to make the
work complete:). Sorry for delaying so long. But I still have no strong
feelings where to put them in standard/site, any suggestions?

You can create all the API document by run ant in classlib/trunk/doc,
you can get all document created, assuming Doxygen is installed. If you
kindly provide the patch, I will look at it and merge it into SVN.


 [1] mail thread
 http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200609.mb
 ox/[EMAIL PROTECTED]



 Thanks,

 Nadya Morozova





--
Paulex Yang
China Software Development Lab
IBM





Re: 235 tests are missed at DRLVM test run for Windows

2006-11-01 Thread Alexey Varlamov

2006/11/1, Anton Luht [EMAIL PROTECTED]:

Alexey,

 1) allow to compare by exact id - e.g. I failed to compare #90 and #91
 due to missing tags.

First, you can obtain login (ask any registered user to add you) and
tag runs you are interested in.

Still I have to do extra steps while searching, looking for latest run
among other equally tagged, etc.


Second - you can do it if you enter two result ids into URL:

http://harmonytest.org/diff.do?method=viewid=id1id2=id2

Uhm, I'm not going to rememeber all that urls and parameters. Why not
to provide extra field? Or better yet, provide such field on the main
page:
Compare 2 results [123 125] which accepts common separators (white
spaces and comma).

Thank you in advance :)



 2) add filtering by tags on the main page - e.g. to see only drl or
 only linux results.

Feature request accepted - I think there will be ~20..30 latest
results on the first page and 'Search' link that will allow to search
by tags, other run properties (like uploader name - old request from
Tony Wu)

--
Regards,
Anton Luht,
Intel Java  XML Engineering



RE: [doc] No Doxygen reference for code :(

2006-11-01 Thread Morozova, Nadezhda
Alexei,
One note: I'm *not* writing requirements for engineering on the doc
build system. I'm just sharing my thoughts on an issue that interests
me. Discussion is welcome. Please don't consider my ideas as the way it
should be.

Thank you, 
Nadya Morozova
 

-Original Message-
From: Fedotov, Alexei A [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, November 01, 2006 4:52 PM
To: harmony-dev@incubator.apache.org
Subject: RE: [doc] No Doxygen reference for code :(

Nadya,

Thanks for answers. You have a nice approach to the requirement
engineering for the documentation build system. It would be great if you
also add priorities for your requirements.

Looking into your original list of requirements, I've noticed I haven't
addressed the second one:
2. Ability to see docs on the website

Yesterday I'd added an archive with documentation to HARMONY-2024
http://issues.apache.org/jira/browse/HARMONY-2024, so committers could
now put documentation to the web site and everyone could contribute to
the documentation quality. 

With best regards,
Alexei Fedotov,
Intel Java  XML Engineering

-Original Message-
From: Morozova, Nadezhda [mailto:[EMAIL PROTECTED]
Sent: Tuesday, October 31, 2006 9:02 PM
To: harmony-dev@incubator.apache.org
Subject: RE: [doc] No Doxygen reference for code :(

Alexei,

Thanks for meaningful and numerous questions, Alexei. I have thought of
some of these, but you give it a systematic touch :)
Others' opinions are welcome, mine in below - marked with [NM].

Related question: do we want to have some version of API doc on the
site
now? I've experimented with building docs, and could produce a working
bundle. We can work to enable the build create API docs locally in
parallel with that.

PS: Geir, there's a specific question for you below.

Thank you,
Nadya Morozova


-Original Message-
From: Fedotov, Alexei A [mailto:[EMAIL PROTECTED]
Sent: Tuesday, October 31, 2006 7:49 PM
To: harmony-dev@incubator.apache.org
Subject: RE: [doc] No Doxygen reference for code :(

Nadya, All,

Suggestion to generate Doxygen from DRLVM code sounds very interesting.
I posted a quick solution for Linux to
http://issues.apache.org/jira/browse/HARMONY-2024

[NM] great news, I'll see if I can do smth similar for Windows.

If you want to have this integrated into build.xml, it would be great
to
define a correct scope. Could you please give more details what do you
expect from the documentation build file?
[NM] I'd give it a try. Please don't expect me to write a design doc
for
you

A volunteer can try doing some things important for you first, and then
add new features gradually.
[NM] yeah, I like the idea of a gradual step-by-step process.

 * Should doxygen build documentation for inter-component interfaces?
[NM] sure, and I guess it's the better-documented part ;)

 * What are components? I assume vm, jit, gc are out of the question.
Is
am execution manager or an interpreter a separate component?
[NM] see dev guide; we've thought components roughly match to top-level
folders:  EM, Interpreter, TM are all components. Not sure what to do
with the three GCs now, though.

 * Should doxygen build documentation for each component like vm, jit,
interpreter, gc?
[NM] It's my dream and very convenient. Getting Doxygen to run for
half-hour and get hung doesn't seem an attractive prospect. However, I
guess we can get some primitive build as a start and add
component-specific build targets later. For me, an ideal list of
targets
for Doxygen would be something like:
all - all headers for DRLVM/classlib (one of two, not both in one
bundle)
inter-component - headers in include/ folder basically. Do we have
any
high-level interfaces in other places? This could show the big
picture
and somehow map to the arch description.
component - headers for the component name specified.
We might concentrate on the first two now for simplicity and smaller
scope.

 * Should we put documentation into doc/component_doc dirs as class
library code does?
[NM] this is a complex issue. I know Geir has wanted to add website to
the snapshot. *Geir*, could you express your view on where to place
docs? I guess separating normal docs and autogenerated docs would
be
good, like the /doc/ folder for all files, with /doc/Doxygen/ subfolder
for API reference. When we are ready to build component-specific
reference, /doc/Doxygen/ can have subfolders for each.

 * Should we use the same formatting as a class library documentation?
[NM] why not? as I've noticed, default formatting is ok, but there are
many options you can enable/disable, e.g. diagram for class hierarchy.

 * We don't need to process .cpp files in DRLVM source tree, do we?
[NM] no, I guess not. A developer that needs explanation in .cpp would
rather look into the code, I guess.

 * Would each of these choices (inter-component documentation,
component
interface documentation) be a separate configuration? If yes, should we
put each result into the separate directory?
 * Should doxygen 

[DRLVM] ipf initial support (interpreter mode)

2006-11-01 Thread Ivan Volosyuk

Hi All,

DRLVM now builds and run (interpreter mode) on IPF with HARMONY-2004.
The patch should cause no changes on other architectures.
Currently, in interpreter mode everything works fine but GC. GC fails.
I'm investigating this issue.

--
Ivan
Intel Enterprise Solutions Software Division


RE: [doc] No Doxygen reference for code :(

2006-11-01 Thread Morozova, Nadezhda
+1 my idea exactly

Thank you, 
Nadya Morozova
 

-Original Message-
From: Alexey Petrenko [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, November 01, 2006 4:55 PM
To: harmony-dev@incubator.apache.org
Subject: Re: [doc] No Doxygen reference for code :(

I think that we can place the docs here:
http://incubator.apache.org/harmony/subcomponents/classlibrary/index.htm
l

2006/11/1, Paulex Yang [EMAIL PROTECTED]:
 Morozova, Nadezhda wrote:
  Hi everyone,
 
  I've noticed that there's no API reference documentation for Harmony
  code - generated by Doxygen/Javadoc.  I guess many will agree that
  having API reference is very useful and convenient.
 
 
 
  This issue was discussed a while ago [1] for kernel classes and vmi
  interface in classlib. We agreed to store the Doxygen docs on the
  website by generating them manually from code and placing there. It
  seems that the old version of the docs was removed from SVN but
never
  made its way to the website, so it's just NOWHERE now :-(. Let's fix
it!
 
 
  AFAIU, we want to have the following:
 
  1.Ability to generate docs locally from source code as part of
  build - need to change existing build files or write new ones.
  2.Ability to see docs on the website - manually copy a local
  bundle of docs to the website and add a link. Geir has been planning
to
  include the website into the next snapshot; supplying ready
reference
  with it seem nice.
 
  Volunteers?

  I can work on item 2 for sure to get a nice config file and patch
the
  website to link to our new Doxygen API. Item 1 -fixing the build -
might
  be more extravagant, so your aid's welcome ;)
 
 It is me that removed the original document in classlib/trunk/doc as
we
 discussed before, so seems it should be my responsibility to make the
 work complete:). Sorry for delaying so long. But I still have no
strong
 feelings where to put them in standard/site, any suggestions?

 You can create all the API document by run ant in
classlib/trunk/doc,
 you can get all document created, assuming Doxygen is installed. If
you
 kindly provide the patch, I will look at it and merge it into SVN.
 
 
  [1] mail thread
 
http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200609.mb
  ox/[EMAIL PROTECTED]
 
 
 
  Thanks,
 
  Nadya Morozova
 
 
 


 --
 Paulex Yang
 China Software Development Lab
 IBM





Re: [security][testing] 2 tests failed today

2006-11-01 Thread Tim Ellison
Mark Hindess wrote:
 Fixed in r469902.  Turns out the exec was putting double quotes around
 the classpath argument (which might make sense if it was going to a
 shell) but it doesn't for an exec syscall.  This resulted in classes
 being search for in the non-existent directory:
 
   /path/to/modules/luni/bin/test
 
 rather than:
 
   /path/to/modules/luni/bin/test
 
 Regards,
  Mark - confused as to why it didn't also fail on windows

Looks like we *do* need the quotes on Windows, I get a local failure now.

K0319java.lang.NoClassDefFoundError:
Files\QuickTime\QTSystem\QTJava.zip;C:\Program
FAILED to invoke JVM.

Regards,
Tim

-- 

Tim Ellison ([EMAIL PROTECTED])



Re: [classlib] Preprocessor - CHECKPOINT

2006-11-01 Thread Mikhail Fursov

On 11/1/06, Etienne Gagnon [EMAIL PROTECTED] wrote:


Problem
---
supporting a different API specifications/versions, such as j2me and
j2se1.4, in addition to the main version (e.g. j2se1.5)


Solution


This is a trickier problem.  We can divide the problem at two main levels:

1- file/directory level
2- source-code level

At the file/directory level, each version (e.g. j2me, j2se1.4, ...)
might include additional files (relative to the main version), and might
not include some files of the main version.  In other words, j2me might
not contain database APIs.

Managing file inclusion/exclusion can be done in various ways.



Just my $0.02: IMO it's unreal to support J2SE 1.4  1.5 in the same source.
Too many differences in the language due to generics. This example needs
branches  weekly manual merges (not a big problem imho)


--
Mikhail Fursov


Re: [DRLVM] ipf initial support (interpreter mode)

2006-11-01 Thread Mikhail Fursov

Great news!
The time when x86 changes can affect IPF build is come :)

Ivan, have you tried gcv4?

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


Hi All,

DRLVM now builds and run (interpreter mode) on IPF with HARMONY-2004.
The patch should cause no changes on other architectures.
Currently, in interpreter mode everything works fine but GC. GC fails.
I'm investigating this issue.

--
Ivan
Intel Enterprise Solutions Software Division





--
Mikhail Fursov


[doc]Please help to remove outdated info from the site

2006-11-01 Thread Konovalova, Svetlana
Folks,

You might know that certain Harmony pages are out-of-date and need to be 
modified. 
One of such pages is http://incubator.apache.org/harmony/status.html .
Now I'm working at creating the Build our Own Website Using Ant section for 
this very page.
Would be great, if someone can find a chance to look at it to help me through 
away outdated info.

Thanks in advance!

Best regards,
Sveta Konovalova
 
 


Re: [classlib] Preprocessor - CHECKPOINT

2006-11-01 Thread Etienne Gagnon
Mikhail Fursov wrote:
 At the file/directory level, each version (e.g. j2me, j2se1.4, ...)
...
 Just my $0.02: IMO it's unreal to support J2SE 1.4  1.5 in the same
 source.
 Too many differences in the language due to generics. This example needs
 branches  weekly manual merges (not a big problem imho)

You're absolutely right!  I wasn't thinking about it when I took that
example.  This is really a typical case (j2se 1.4) where using svn
branches is the right solution.

But, for j2me1.5, java for credit cards 1.5 and j2se1.6 (maybe, if they
don't redesign the Java syntax, etc.), I think that a tool along the
lines I was proposing would be best.


Etienne

-- 
Etienne M. Gagnon, Ph.D.http://www.info2.uqam.ca/~egagnon/
SableVM:   http://www.sablevm.org/
SableCC:   http://www.sablecc.org/


signature.asc
Description: OpenPGP digital signature


Re: [classlib][portlib] Docs?

2006-11-01 Thread Geir Magnusson Jr.
yeah - someone generate, and we can hang them on the website.  I'm not 
sure we'd want to check them in though...


I've done this before for API docs...

geir


Alexey Petrenko wrote:

Having these docs on website will be really good!

SY, Alexey

2006/11/1, Paulex Yang [EMAIL PROTECTED]:

If you get Doxygen installed, you can create it by running ant
doxygen-natives in classlib/trunk/doc. There were discussions to move
the document to somewhere on website, but seems it is still to be done.

Morozova, Nadezhda wrote:
 Not that I know of :( bits of things are in the devguide, maybe. But 
you

 probably won't find that of much notice.
 Anyone, please tell me it's not true!

 Thank you,
 Nadya Morozova


 -Original Message-
 From: Alexey Petrenko [mailto:[EMAIL PROTECTED]
 Sent: Wednesday, November 01, 2006 4:15 PM
 To: harmony-dev@incubator.apache.org
 Subject: [classlib][portlib] Docs?

 Guys,

 do we have any docs on portlib?

 SY, Alexey




--
Paulex Yang
China Software Development Lab
IBM







Re: [DRLVM] ipf initial support (interpreter mode)

2006-11-01 Thread Ivan Volosyuk

Mikhail,

Yes, I did. It fails at bootstrap on attempt to pin an object. This
functionality was disabled in GCv4.1 some time ago, because of massive
pin counter overflows detected on classlib/em64t. I going to check
this specific problem at some time in future.

It looks like some code on IPF operates with invalid pointers to java
heap and it leads to heap corruption. We just need to identify such
places and fix them :)
--
Ivan

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

Great news!
The time when x86 changes can affect IPF build is come :)

Ivan, have you tried gcv4?

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

 Hi All,

 DRLVM now builds and run (interpreter mode) on IPF with HARMONY-2004.
 The patch should cause no changes on other architectures.
 Currently, in interpreter mode everything works fine but GC. GC fails.
 I'm investigating this issue.


Re: 235 tests are missed at DRLVM test run for Windows

2006-11-01 Thread Anton Luht

Feature requests from Geir (multiple select for tags) and Alexey
(shortcut to compare two runs from the first page) are accepted and
put in the implemetation queue.

--
Regards,
Anton Luht,
Intel Java  XML Engineering


Re: [classlib] Preprocessor - CHECKPOINT

2006-11-01 Thread Mikhail Fursov

On 11/1/06, Etienne Gagnon [EMAIL PROTECTED] wrote:


For comfortable IDE development, one could imagine that the IDE editor
can reduce to one-line visible comments (or better, specially
formatted ones) so that it gives you the impression that you are really
wearing target-specific spectacles.  [I know Eclipse allows for such
things already].

To release code, one would apply:

process(X, release-target) = Y

Now, it is important to understand that Y, in this case, is NOT suitable
for doing any modification as

revert(Y) = Kaboom!  (The tool will simply report that it can't do it;
it won't crash.)



Etienne,
What is 'comfortable IDE development' if you can't modify the Y? Am I
missing something here?

--
Mikhail Fursov


Re: [DRLVM][PORT] correct API to retrieve processor number

2006-11-01 Thread Xiao-Feng Li

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

Just a wild guess: this may be caused by x86 emulation on em64t
(x86_64). SDK docs advise to use GetNativeSystemInfo() in such case,
instead of currently used GetSystemInfo(). (See
vm\port\src\misc\win\sysinfo.c).



huh, I guess you are right, since my machine is X86-64bit. :-) I will
try the API you pointed.

Thanks,
xiaofeng


2006/11/1, Xiao-Feng Li [EMAIL PROTECTED]:
 Yes, both SUN JRE and DRLVM returns 1 for me. Java API has the same
 problem. :-) Probably it should introduce an
 availableCoresPerProcessor() or something more comprehensive.

 Thanks,
 xiaofeng

 On 11/1/06, Mikhail Fursov [EMAIL PROTECTED] wrote:
  On 11/1/06, Xiao-Feng Li [EMAIL PROTECTED] wrote:
  
   Are you using Linux? Don't know why it doesn't work for my Pentium D.
   Actually my Windows seems not show two processors at first, while the
   API may depend on OS. My Linux has no problem with this.
  
   On the other hand, even your case is undesirable for Hyperthreading
   since we probably want more detailed info about processor(s) since
   hyperthreading sometimes wants to be treated differently than real SMP
   (or dual-core).  I believe there is such kind of API available
   somewhere, at least NUMA support of Linux from SGI has it.
  
 
  I use WindowsXP and here is more detailed info about CPU:
  Number of processors  1
  Number of cores  1 per processor
  Number of threads  2 (max 2) per processor
  Name  Intel Pentium 4 660
  Code Name  Prescott
  Specification  Intel(R) Pentium(R) 4 CPU 3.60GHz
  Package  Socket 775 LGA
 
  And I see 2 CPUs in Windows Task Manager.
 
  Did you tried Runtime.getRuntime().availableProcessors()  ?
 
 
 
  --
  Mikhail Fursov
 
 




Re: [general] Motorola to develop ME under ALv2

2006-11-01 Thread Weldon Washburn

Fantastic!  It will be very tempting to read the [JME][J2SE] blah, blah...
emails on harmony-dev.  But this is actually a good problem to have  :)

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




Geir Magnusson Jr. wrote:
 This is about Motorola and their efforts in the ME ecosystem.  The
 Apache style of open governance has shown itself to be very successful
 in creating good software, although there are other models that are
 successful as well (Eclipse Foundation, MySQL).  So seeing Motorola
 embrace that, as well as our license - which gets rid of any license
 interop for whatever they do - is just a great step forward for the
 industry as a whole.

 Back to SE... :)

I re-read this, and I didn't come across right here.   It sounds like
I'm trying to change the subject - I'm not.   This is a great thing - as
we all think that the Apache Way (whatever that is) is the bees knees so
more of it is better.

I don't mean stop talking - we can talk about whatever we want.  What
I meant was I'm going back to all the stuff I want to do on SE...  :)

geir



 geir


 Tim Ellison wrote:
 Mikhail Fursov wrote:
 AFAIK ME shares a lot of core classes and packages with SE. And we
 have these packages implemented. And now I'm really interesting if
 Motorola wants to reuse our code or develop the better one ?

 You can see the same statement as me, so it would only be speculation
to
 talk about 'what Motorola want' beyond what they have said already.

 The cool part is that by choosing ALv2 Harmony can freely engage and
 exchange with their effort.

 Regards,
 Tim







--
Weldon Washburn
Intel Enterprise Solutions Software Division


Re: [security][testing] 2 tests failed today

2006-11-01 Thread Mark Hindess

On 1 November 2006 at 13:39, Mark Hindess [EMAIL PROTECTED] wrote:
 
 Fixed in r469902.  Turns out the exec was putting double quotes around
 the classpath argument (which might make sense if it was going to a
 shell) but it doesn't for an exec syscall.  This resulted in classes
 being search for in the non-existent directory:
 
   /path/to/modules/luni/bin/test
 
 rather than:
 
   /path/to/modules/luni/bin/test
 
 Regards,
  Mark - confused as to why it didn't also fail on windows

Oops.  Tim mentioned that my fixed breaks things on windows.  I've
checked in a better fix that I hope should be more well-defined on all
platforms.  That is, pass the arguments to Runtime.exec as an array not
a string.

Aside: My tests show that the behaviour we saw with the quotes in the
string being passed directly through to the execve syscall is consistent
with the RI.

Regards,
 Mark.

 On 1 November 2006 at 10:37, Tim Ellison [EMAIL PROTECTED] wrote:
  Boris Kuznetsov wrote:
   The tests use tests.support.Support_Exec.execJava2() to perform
   testing on other JVM. This method uses Runtime.getRuntime().exec() to
   run command. You can see command (it looks like java -cp 
   classname) in the test's System.out. It woks OK on Win, but produces
   NoClassDefFoundError on linux.
   Note, the command woks OK in linux sh also.
  
  Yes, I don't think it is the tests for HARMONY-1674 per se that are
  failing, but they are exposing a problem in the exec -- which is why I
  haven't rolled back that commit.
  
  I'll keep looking at it, let me know if you see the problem.
  
  Regards,
  Tim
  
  -- 
  
  Tim Ellison ([EMAIL PROTECTED])
  
 




Re: [classlib] Preprocessor - CHECKPOINT

2006-11-01 Thread Etienne Gagnon
Mikhail Fursov wrote:
 On 11/1/06, Etienne Gagnon [EMAIL PROTECTED] wrote:
 For comfortable IDE development, one could imagine that the IDE editor
 can reduce to one-line visible comments (or better, specially
 formatted ones) so that it gives you the impression that you are really
 wearing target-specific spectacles.  [I know Eclipse allows for such
 things already].
...
 Etienne,
 What is 'comfortable IDE development' if you can't modify the Y? Am I
 missing something here?

Maybe my text was wrongly formatted...  You looked at the wrong example.
 Comfortable development happens only using development targets.  E.g.

1- process(X, devtarget) - Z

2- edit Z in IDE using comfortable development, where you see a single
   commented line for every hidden stream code chunk, keeping you aware
   that other streams have related code there [you click on the + in
   Eclipse if you want to see the complete chunk].  Of course, you
   should never delete a chunk without consulting other stream
   developers first.
   So:  edit Z - Z'

3- revert(Z') - X'   this works, as long as devtarget is a stream code
  preserving target (a development target).

4- svn ci of X'  :-)


You wouldn't want to do the same with a release target.  A release
target is a target where you want to completely remove other streams
source code from the processor output.  This is so your typical J2SE
end developer that looks at Harmony's source.zip code wouldn't have
lots of non J2SE commented code in his face.  [This was a concern
expressed earlier in this thread].

The output of process(X, releasetarget) should NOT be used for
development, not within, nor outside an IDE.  It's only role is to give
end developers clean source code to look at.  :-)

Etienne
PS:  Note how revert() does not expect a target argument.  So, to
switch from j2me to j2xx development, one must: process(revert(Z),j2xx)
[where Z == process(X,j2me)].  This simplifies quite a few things...


-- 
Etienne M. Gagnon, Ph.D.http://www.info2.uqam.ca/~egagnon/
SableVM:   http://www.sablevm.org/
SableCC:   http://www.sablecc.org/


signature.asc
Description: OpenPGP digital signature


Re: [classlib] Preprocessor - CHECKPOINT

2006-11-01 Thread Mikhail Fursov

On 11/1/06, Etienne Gagnon [EMAIL PROTECTED] wrote:


Comfortable development happens only using development targets.  E.g.

1- process(X, devtarget) - Z

2- edit Z in IDE using comfortable development, where you see a single
   commented line for every hidden stream code chunk, keeping you aware
   that other streams have related code there [you click on the + in
   Eclipse if you want to see the complete chunk].  Of course, you
   should never delete a chunk without consulting other stream
   developers first.
   So:  edit Z - Z'

3- revert(Z') - X'   this works, as long as devtarget is a stream code
  preserving target (a development target).

4- svn ci of X'  :-)



Etienne, thanks! Now I understand  how it works.
Having such a tool seems like a very promising good idea!


--
Mikhail Fursov


Re: 235 tests are missed at DRLVM test run for Windows

2006-11-01 Thread Anton Luht

Hello,

Queue appeared to be a stack :) Both requests are implemented, others
are pending.

On 11/1/06, Anton Luht [EMAIL PROTECTED] wrote:

Feature requests from Geir (multiple select for tags) and Alexey
(shortcut to compare two runs from the first page) are accepted and
put in the implemetation queue.


--
Regards,
Anton Luht,
Intel Java  XML Engineering


Re: [classlib] Preprocessor - CHECKPOINT

2006-11-01 Thread Tim Ellison
Etienne Gagnon wrote:
 Here two typical some use cases, and some proposed solutions:
 
 Problem
 ---
 logging, and other situations where you really don't want to put the
 additional source code in the main source files
 
 Solution
 
 use aspects  (Plug: you might want to give a look at the optimizing abc
 compiler)

+1  and/or 'intrinsic' VM-level tracing of the Java code.

 Problem
 ---
 supporting a different API specifications/versions, such as j2me and
 j2se1.4, in addition to the main version (e.g. j2se1.5)
 
 
 Solution
 
 
 This is a trickier problem.  We can divide the problem at two main levels:
 
 1- file/directory level
 2- source-code level
 
 At the file/directory level, each version (e.g. j2me, j2se1.4, ...)
 might include additional files (relative to the main version), and might
 not include some files of the main version.  In other words, j2me might
 not contain database APIs.
 
 Managing file inclusion/exclusion can be done in various ways.
 
  a) ant based:  use distinct ant (sub-)files for each version.
 
The problem is that IDEs (e.g. Eclipse) will most likely show some
of the excluded files in its class/files browser.  This wouldn't be
very elegant.  It also implies always compiling through ant files.
 
Of course, one could develop Eclipse-specific configuration files to
mimic the inclusion/exclusion of ant files, but then, this opens the
door for discrepancies between ant vs eclipse inclusion/exclusion
lists.  I don't like it.
 
  b) custom-tool based: the custom processing tool I proposed could also
parse inclusion/exclusion lists, and use these lists to move files
around, in addition to processing the content of unmoved files.
 
For example, if class X of the main version is not part of j2me,
process(j2me) would move this file to a subdirectory .streams/.

Why would you move the files rather than exclude them?

I was assuming that the processor would generate a whole new source tree
for each process() target, so that you could work on the original
checked-out file in it's 'canonicalized form' for Big Java work, or
process(jme) into a new location and work in the non-canonical form
your Little Java spectacles on.  That would prevent you accidentally
checking in the Little Java code, since you would need to
reverse-process the code back to replace the checked-out file (with a
test to ensure you are not overwriting changes made to Big Java, or for
extra credit, merging changes in the working copies).  The svn check-in
would then always be in the Big Java canonicalized form.

This idea would loose the ability to check-in directly from the IDE
though for people working with the non-canonicalized source form.

If a class Y is not in the main version (the one used for svn
ci), it resides in subdirectory .streams in the trunk.
process(j2me) moves this file into the normal directory.
 
As for IDEs, now you can configure them to automatically exclude
.stream/ directories.
 
Inclusion/exclusion could be managed in two ways:
1- the processing tool could look for inclusion/exclusion list files,
   such as j2me.inclusion, j2me.exclusion, main.inclusion,
   main.exclusion, etc.
 
   This would lead to the best performance (for process(X)), yet it
   does require much manual update of inclusion/exclusion lists, with
   all the discrepancies that result from human mistakes while
   updating these files.
 
2- (my preferred way), directives, at the beginning of the source
   code would indicate whether a file is included in a version or
   not.  Depending on target, the file would be moved to the
   appropriate directory (normal, .streams).

Agreed. Since we are requiring the source to be processed for any
deliverable target, we might as well keep the mark-up in-line.

 Of course, there's also the problem of non-source files, i.e.
 resources.  IMO, resources could be managed using specific
 directories (.main/, .j2me, .j2se1.4) and a .shared/
 directory with symbolic links in the specific directories.
 
 
 As for source-level management, you would use my proposed processing
 tool to view the source files with the right spectacles [as Tim said so
 elegantly:-)].  For development targets, it is important that:
 
  revert(process(X, target)) = X
 
 By development target I mean a target that is meant for Harmony
 developers in prevision of reverting modified code to a format
 suitable for svn ci (i.e. revert to main target).
 
 For comfortable IDE development, one could imagine that the IDE editor
 can reduce to one-line visible comments (or better, specially
 formatted ones) so that it gives you the impression that you are really
 wearing target-specific spectacles.  [I know Eclipse allows for such
 things already].
 
 To release code, one would apply:
 
  process(X, release-target) = Y
 
 Now, it is important to understand that Y, in this case, is NOT 

RE: [doc] No Doxygen reference for code :(

2006-11-01 Thread Fedotov, Alexei A
Nadya,

Sorry, I supposed to say the same thing. By requirement engineering I
meant a discussion of requirements.

With best regards,
Alexei Fedotov,
Intel Java  XML Engineering

-Original Message-
From: Morozova, Nadezhda [mailto:[EMAIL PROTECTED]
Sent: Wednesday, November 01, 2006 5:09 PM
To: harmony-dev@incubator.apache.org
Subject: RE: [doc] No Doxygen reference for code :(

Alexei,
One note: I'm *not* writing requirements for engineering on the doc
build system. I'm just sharing my thoughts on an issue that interests
me. Discussion is welcome. Please don't consider my ideas as the way
it
should be.

Thank you,
Nadya Morozova


-Original Message-
From: Fedotov, Alexei A [mailto:[EMAIL PROTECTED]
Sent: Wednesday, November 01, 2006 4:52 PM
To: harmony-dev@incubator.apache.org
Subject: RE: [doc] No Doxygen reference for code :(

Nadya,

Thanks for answers. You have a nice approach to the requirement
engineering for the documentation build system. It would be great if
you
also add priorities for your requirements.

Looking into your original list of requirements, I've noticed I haven't
addressed the second one:
2. Ability to see docs on the website

Yesterday I'd added an archive with documentation to HARMONY-2024
http://issues.apache.org/jira/browse/HARMONY-2024, so committers could
now put documentation to the web site and everyone could contribute to
the documentation quality.

With best regards,
Alexei Fedotov,
Intel Java  XML Engineering

-Original Message-
From: Morozova, Nadezhda [mailto:[EMAIL PROTECTED]
Sent: Tuesday, October 31, 2006 9:02 PM
To: harmony-dev@incubator.apache.org
Subject: RE: [doc] No Doxygen reference for code :(

Alexei,

Thanks for meaningful and numerous questions, Alexei. I have thought
of
some of these, but you give it a systematic touch :)
Others' opinions are welcome, mine in below - marked with [NM].

Related question: do we want to have some version of API doc on the
site
now? I've experimented with building docs, and could produce a working
bundle. We can work to enable the build create API docs locally in
parallel with that.

PS: Geir, there's a specific question for you below.

Thank you,
Nadya Morozova


-Original Message-
From: Fedotov, Alexei A [mailto:[EMAIL PROTECTED]
Sent: Tuesday, October 31, 2006 7:49 PM
To: harmony-dev@incubator.apache.org
Subject: RE: [doc] No Doxygen reference for code :(

Nadya, All,

Suggestion to generate Doxygen from DRLVM code sounds very
interesting.
I posted a quick solution for Linux to
http://issues.apache.org/jira/browse/HARMONY-2024

[NM] great news, I'll see if I can do smth similar for Windows.

If you want to have this integrated into build.xml, it would be great
to
define a correct scope. Could you please give more details what do you
expect from the documentation build file?
[NM] I'd give it a try. Please don't expect me to write a design doc
for
you

A volunteer can try doing some things important for you first, and
then
add new features gradually.
[NM] yeah, I like the idea of a gradual step-by-step process.

 * Should doxygen build documentation for inter-component interfaces?
[NM] sure, and I guess it's the better-documented part ;)

 * What are components? I assume vm, jit, gc are out of the question.
Is
am execution manager or an interpreter a separate component?
[NM] see dev guide; we've thought components roughly match to
top-level
folders:  EM, Interpreter, TM are all components. Not sure what to do
with the three GCs now, though.

 * Should doxygen build documentation for each component like vm, jit,
interpreter, gc?
[NM] It's my dream and very convenient. Getting Doxygen to run for
half-hour and get hung doesn't seem an attractive prospect. However, I
guess we can get some primitive build as a start and add
component-specific build targets later. For me, an ideal list of
targets
for Doxygen would be something like:
all - all headers for DRLVM/classlib (one of two, not both in one
bundle)
inter-component - headers in include/ folder basically. Do we have
any
high-level interfaces in other places? This could show the big
picture
and somehow map to the arch description.
component - headers for the component name specified.
We might concentrate on the first two now for simplicity and smaller
scope.

 * Should we put documentation into doc/component_doc dirs as class
library code does?
[NM] this is a complex issue. I know Geir has wanted to add website to
the snapshot. *Geir*, could you express your view on where to place
docs? I guess separating normal docs and autogenerated docs would
be
good, like the /doc/ folder for all files, with /doc/Doxygen/
subfolder
for API reference. When we are ready to build component-specific
reference, /doc/Doxygen/ can have subfolders for each.

 * Should we use the same formatting as a class library documentation?
[NM] why not? as I've noticed, default formatting is ok, but there are
many options you can enable/disable, e.g. diagram for class hierarchy.

Re: [doc] No Doxygen reference for code :(

2006-11-01 Thread Paulex Yang

Alexey Petrenko wrote:

I think that we can place the docs here:
http://incubator.apache.org/harmony/subcomponents/classlibrary/index.html
Yes, that's one of my candidate, another one is here: 
standard/site/docs/documentation/documentation.html, because I think it 
is also a reasonable idea for the user to go for documentation if you 
wanna some API explanation. How about we put the API document in each 
subcomponents(classlib/drlvm/jchevm), but also add their link in 
documentation/documentation.html?


2006/11/1, Paulex Yang [EMAIL PROTECTED]:

Morozova, Nadezhda wrote:
 Hi everyone,

 I've noticed that there's no API reference documentation for Harmony
 code - generated by Doxygen/Javadoc.  I guess many will agree that
 having API reference is very useful and convenient.



 This issue was discussed a while ago [1] for kernel classes and vmi
 interface in classlib. We agreed to store the Doxygen docs on the
 website by generating them manually from code and placing there. It
 seems that the old version of the docs was removed from SVN but never
 made its way to the website, so it's just NOWHERE now :-(. Let's 
fix it!



 AFAIU, we want to have the following:

 1.Ability to generate docs locally from source code as part of
 build - need to change existing build files or write new ones.
 2.Ability to see docs on the website - manually copy a local
 bundle of docs to the website and add a link. Geir has been 
planning to

 include the website into the next snapshot; supplying ready reference
 with it seem nice.

 Volunteers?

 I can work on item 2 for sure to get a nice config file and patch the
 website to link to our new Doxygen API. Item 1 -fixing the build - 
might

 be more extravagant, so your aid's welcome ;)

It is me that removed the original document in classlib/trunk/doc as we
discussed before, so seems it should be my responsibility to make the
work complete:). Sorry for delaying so long. But I still have no strong
feelings where to put them in standard/site, any suggestions?

You can create all the API document by run ant in classlib/trunk/doc,
you can get all document created, assuming Doxygen is installed. If you
kindly provide the patch, I will look at it and merge it into SVN.


 [1] mail thread
 
http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200609.mb

 ox/[EMAIL PROTECTED]



 Thanks,

 Nadya Morozova





--
Paulex Yang
China Software Development Lab
IBM








--
Paulex Yang
China Software Development Lab
IBM




Re: [classlib][portlib] Docs?

2006-11-01 Thread Paulex Yang

Geir Magnusson Jr. wrote:
yeah - someone generate, and we can hang them on the website.  I'm not 
sure we'd want to check them in though...
Is it possible to add documents into website but not to commit them in 
SVN? We removed them from classlib/trunk/doc because the SVN metadata 
get in the way when updating the document.


I've done this before for API docs...

geir


Alexey Petrenko wrote:

Having these docs on website will be really good!

SY, Alexey

2006/11/1, Paulex Yang [EMAIL PROTECTED]:

If you get Doxygen installed, you can create it by running ant
doxygen-natives in classlib/trunk/doc. There were discussions to move
the document to somewhere on website, but seems it is still to be done.

Morozova, Nadezhda wrote:
 Not that I know of :( bits of things are in the devguide, maybe. 
But you

 probably won't find that of much notice.
 Anyone, please tell me it's not true!

 Thank you,
 Nadya Morozova


 -Original Message-
 From: Alexey Petrenko [mailto:[EMAIL PROTECTED]
 Sent: Wednesday, November 01, 2006 4:15 PM
 To: harmony-dev@incubator.apache.org
 Subject: [classlib][portlib] Docs?

 Guys,

 do we have any docs on portlib?

 SY, Alexey




--
Paulex Yang
China Software Development Lab
IBM










--
Paulex Yang
China Software Development Lab
IBM




Re: [doc]Please help to remove outdated info from the site

2006-11-01 Thread Tim Ellison
done.


Konovalova, Svetlana wrote:
 Folks,
 
 You might know that certain Harmony pages are out-of-date and need to be 
 modified. 
 One of such pages is http://incubator.apache.org/harmony/status.html .
 Now I'm working at creating the Build our Own Website Using Ant section for 
 this very page.
 Would be great, if someone can find a chance to look at it to help me through 
 away outdated info.
 
 Thanks in advance!
 
 Best regards,
 Sveta Konovalova
  
  
 

-- 

Tim Ellison ([EMAIL PROTECTED])



RE: [doc] No Doxygen reference for code :(

2006-11-01 Thread Morozova, Nadezhda
+1

Thank you, 
Nadya Morozova
 

-Original Message-
From: Paulex Yang [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, November 01, 2006 7:55 PM
To: harmony-dev@incubator.apache.org
Subject: Re: [doc] No Doxygen reference for code :(

Alexey Petrenko wrote:
 I think that we can place the docs here:

http://incubator.apache.org/harmony/subcomponents/classlibrary/index.htm
l
Yes, that's one of my candidate, another one is here: 
standard/site/docs/documentation/documentation.html, because I think it 
is also a reasonable idea for the user to go for documentation if you 
wanna some API explanation. How about we put the API document in each 
subcomponents(classlib/drlvm/jchevm), but also add their link in 
documentation/documentation.html?

 2006/11/1, Paulex Yang [EMAIL PROTECTED]:
 Morozova, Nadezhda wrote:
  Hi everyone,
 
  I've noticed that there's no API reference documentation for
Harmony
  code - generated by Doxygen/Javadoc.  I guess many will agree that
  having API reference is very useful and convenient.
 
 
 
  This issue was discussed a while ago [1] for kernel classes and vmi
  interface in classlib. We agreed to store the Doxygen docs on the
  website by generating them manually from code and placing there. It
  seems that the old version of the docs was removed from SVN but
never
  made its way to the website, so it's just NOWHERE now :-(. Let's 
 fix it!
 
 
  AFAIU, we want to have the following:
 
  1.Ability to generate docs locally from source code as part of
  build - need to change existing build files or write new ones.
  2.Ability to see docs on the website - manually copy a local
  bundle of docs to the website and add a link. Geir has been 
 planning to
  include the website into the next snapshot; supplying ready
reference
  with it seem nice.
 
  Volunteers?

  I can work on item 2 for sure to get a nice config file and patch
the
  website to link to our new Doxygen API. Item 1 -fixing the build - 
 might
  be more extravagant, so your aid's welcome ;)
 
 It is me that removed the original document in classlib/trunk/doc as
we
 discussed before, so seems it should be my responsibility to make the
 work complete:). Sorry for delaying so long. But I still have no
strong
 feelings where to put them in standard/site, any suggestions?

 You can create all the API document by run ant in
classlib/trunk/doc,
 you can get all document created, assuming Doxygen is installed. If
you
 kindly provide the patch, I will look at it and merge it into SVN.
 
 
  [1] mail thread
  

http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200609.mb
  ox/[EMAIL PROTECTED]
 
 
 
  Thanks,
 
  Nadya Morozova
 
 
 


 -- 
 Paulex Yang
 China Software Development Lab
 IBM






-- 
Paulex Yang
China Software Development Lab
IBM


  1   2   >