Re: [kaffe] java.lang.reflect.Method virtual method call bug (CVS)

2002-12-28 Thread Benja Fallenstein

Hi--

Helmer Krämer wrote:


On Sat, 28 Dec 2002 00:55:45 +0100
Benja Fallenstein [EMAIL PROTECTED] wrote:

 

It fixes the previous issue-- thanks!
   


Cool. So we've got jython working with kaffe, then?



I guess yes. But I can't really say: Before, the interpreter started up 
but would give these strange errors on some method calls sometimes. It 
still starts up, and the method call issue seems to be fixed, but that's 
not to say more bugs will not turn up, of course :-) But then, of course 
you can never know whether there's another bug. I'll tell if we stumble 
over one...

Gzz still doesn't start; I get a 
java.lang.VerifyError: No code attribute for 
gzz/client/GraphicsAPI.startUpdateManager. Obviously, since the code 
never progressed this far before, I have no idea what's causing this, 
yet. We'll see.
   


Well, there had to be something wrong with my
patch ;)



:-)


Your patched kaffe/kaffevm/support.c should contain
a function called findMethodFunc.

If you modify this function like this:
...
 

does gzz work then?


Not completely; it starts up, but something in our call hierarchy eats 
simple key events like single characters, spaces or returns; more 
complex things like function keys, Tab or PgUp/PgDn are processed 
correctly. We do recieve the events, apparently, but something eats 
them. I haven't seen this on the proprietary JVMs, so I guess there must 
be some kind of incompatibility (trying to process key events across 
Javas is **icky**). I'll tell if I find out what's causing this.

- Benja


___
kaffe mailing list
[EMAIL PROTECTED]
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe


Re: [kaffe] java.lang.reflect.Method virtual method call bug (CVS)

2002-12-28 Thread Dan Kegel
Benja Fallenstein wrote:

Cool. So we've got jython working with kaffe, then?


I guess yes. But I can't really say: Before, the interpreter started up 
but would give these strange errors on some method calls sometimes. It 
still starts up, and the method call issue seems to be fixed, but that's 
not to say more bugs will not turn up, of course :-) But then, of course 
you can never know whether there's another bug.

I don't suppose there's a Python regression test suite...
that would sure help flush out any bugs.
- Dan

--
Dan Kegel
Linux User #78045
http://www.kegel.com


___
kaffe mailing list
[EMAIL PROTECTED]
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe



[kaffe] Benchmarking kaffe using Ashes

2002-12-28 Thread Dalibor Topic
Hi,

attached you'll find my attempt at writing a FAQ entry
for using the Ashes benchmark suite to test the
performance of kaffe. I hope this helps people without
access to (or need for) SPEC JVM 98 evaluate kaffe's
performance better, and helps us get more reproducible
numbers for decisions regarding performance. Of
course, if someone could put up a nightly performance
test server that fires off a mail to me with the
results, I'd be very happy ;)

best regards,

dalibor topic

__
Do you Yahoo!?
Yahoo! Mail Plus - Powerful. Affordable. Sign up now.
http://mailplus.yahoo.com
Benchmarking Kaffe using Ashes
==
Author: Dalibor Topic [EMAIL PROTECTED]

Introduction


Q: What is Ashes ?

A: Ashes is a freely redistributable collection of Java benchmarks and
shell scripts. 

Q: Where can I get it ?

A: Ashes is available for download at:
http://www.sable.mcgill.ca/software

Installation


You'll need to download ashesBase-21Mar2000.tar.gz and
ashesSuiteCollection.tar.gz and unpack them in a directory.

Then you need to set a few environment variables. How you set
environment variables depends on your shell. It's export VAR=value in
bash. Use absolute paths because some Ashes scripts will fail when you
use relative paths.

ASHES_SUITE_COLLECTION=/absolute-path-to/ashesSuiteCollection
CLASSPATH=/absolute-path-to/ashesBase/classes/
ASHES_JDK_CLASSES=/abolute-path-to-installed/kaffe/jre/rt
ASHES_PDS=:
PATH=$PATH:/absolute-path-to/ashesBase/bin

Read the file index.html in the ashesBase directory for more
information on installing and using Ashes.

Benchmarking


Before you start, you need to make sure that the java command actually
invokes kaffe on your system. If it doesn't, set

PATH=/absolute-path-to-installed/kaffe/bin:$PATH

You need to copy a benchmark from the Ashes suite collection to the
current directory first. I'll use achesEasyTestSuite in this
example. Look into ashesSuiteCollection/suites for more test suites.

refreshSuite ashesEasyTestSuite

You should have an ashesEasyTestSuite directory in your current
directory now.

applyCmdOnSuite executeBenchmark ashesEasyTestSuite

runs each benchmark exactly once. You can check if your checkout works
that way. You should not get any 

*** Warning: Benchmark ran incorrectly! ***

messages. If you do, please make sure that java invokes kaffe.  java
-fullversion will give you information on kaffe.

Now that you've got the benchmark set up, you can do some real
benchmarking. timeBenchmark runs a benchmark ten times and prints the
results.

applyCmdOnSuite timeBenchmark ashesEasyTestSuite  results.txt



Re: [kaffe] java.lang.reflect.Method virtual method call bug (CVS)

2002-12-28 Thread Benja Fallenstein
Dan Kegel wrote:


Benja Fallenstein wrote:


Cool. So we've got jython working with kaffe, then?



I guess yes. But I can't really say: Before, the interpreter started 
up but would give these strange errors on some method calls 
sometimes. It still starts up, and the method call issue seems to be 
fixed, but that's not to say more bugs will not turn up, of course 
:-) But then, of course you can never know whether there's another bug.


I don't suppose there's a Python regression test suite...
that would sure help flush out any bugs. 


I have absolutely no idea :-) -- there might be.
-b.


___
kaffe mailing list
[EMAIL PROTECTED]
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe



Re: [kaffe] memory leak in jit3 ?

2002-12-28 Thread Timothy Stack

On Saturday, December 28, 2002, at 11:03  AM, Dalibor Topic wrote:


Hi,

I've taken a second look at the pure java zip from GNU
Classpath.
I compared memory consumption using -verbosemem on
i386-linux with
jit3. I saw a big difference between jit-temp-data for
the pure java
zip and native zip version.

Here are the stats for the pure java version:
The funny thing is that the jit-temp-data doesn't go
away after a
while, as the name temp-data implies. My question is
: how can I
figure out if this is a memory leak?


Most of the temp allocations are actually kept around across
runs of the jitter.  The seq/label/constpool infrastructure just make
lists of objects and resize them when more are needed.  However,
it does seem unlikely they would be keeping 3 megs of objects
around.  So, you might want to start there and make sure that the
lists aren't being broken and objects lost.  What test case are you
using?

There is actually a leak in the jitter, but as far as i know, it only
happens on an error condition, which seems unlikely in this
case.  The offending line is a malloc around machine.c:676, it
should either be changed to a realloc or the codeblock variable
should be freed somewhere besides finishInsnSequence().


I've also looked at the JanosVM 0.8 sources for jit3
and found that
they are using a resetConst call to reset the constant
pool. There is
no such thing in current kaffe sources. Could merging
in the JanosVM
jit3 changes have a positive result on jit-temp-data
usage ?


Possibly, i can run a test case on our current internal version
and report the results...


best regards,

dalibor topic


tim stack


___
kaffe mailing list
[EMAIL PROTECTED]
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe



Re-used event objects (was: Re: [kaffe] java.lang.reflect.Methodvirtual method call bug (CVS))

2002-12-28 Thread Benja Fallenstein
Benja Fallenstein wrote:


Not completely; it starts up, but something in our call hierarchy eats 
simple key events like single characters, spaces or returns; more 
complex things like function keys, Tab or PgUp/PgDn are processed 
correctly. We do recieve the events, apparently, but something eats 
them. I haven't seen this on the proprietary JVMs, so I guess there 
must be some kind of incompatibility (trying to process key events 
across Javas is **icky**). I'll tell if I find out what's causing this.


I have isolated the incompatibility: Kaffe re-uses KeyEvent objects; 
after issuing a KEY_PRESSED event, it issues a KEY_TYPED event which is 
the same object, with a field value changed inside. Interestingly, the 
KEY_RELEASED events seem to be separate objects. Gzz implements its own 
event queue to coordinate event processing with animation; this is 
implemented by putting the KeyEvent objects in a LinkedList. As it 
happens, Gzz by default only reacts to KEY_TYPED events, and as it 
happens, all three KEY_* events are usually queued before any of them is 
processed. This means that at the time we get around to processing the 
key events, we have two KEY_TYPED and one KEY_RELEASED event in the 
queue (because the original KEY_PRESSED event was changed to KEY_TYPED 
by Kaffe).

Gzz might be able to work around this, but I suggest that Kaffe not 
re-use KeyEvent objects, as code like the above works fine on the 
proprietary Javas and breaks on Kaffe in nonobvious ways. (Caching by 
using weak references might be an option, but I wouldn't think it's 
worth it...)

- Benja


___
kaffe mailing list
[EMAIL PROTECTED]
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe


[kaffe] Re: GNU Classpath java.util.zip patch - To Merge Or Not To Merge

2002-12-28 Thread Mark and Janice Juszczec
Hello all,

Dalibor wrote:


What conclusions should we draw? Here are mine:

* pro:
- fixes large bunch of cygwin problems
- works without much slowdown on i386-linux-jit3

* contra:
- delays program startup on arm-linux-jit by at least
30 seconds.
- delays program startup on arm-linux-intrp by more
than a minute.
- uses more memory than native zip solution, between
2~6 MB.

...snip...


If you're an embedded or cygwin developer/user, I'd
like to hear your opinion.



Won't hurt anything on x86.

I can't use it for my mipsel-linux pda.  Even 2Mb is way to much memory for 
me to sacrifice.

Bear in mind I'm on a Helio, a lower end pda from a few years ago.  I'm not 
sure what current platforms have available.

Mark

_
The new MSN 8: smart spam protection and 3 months FREE*.  
http://join.msn.com/?page=features/junkmailxAPID=42PS=47575PI=7324DI=7474SU= 
http://www.hotmail.msn.com/cgi-bin/getmsgHL=1216hotmailtaglines_smartspamprotection_3mf


___
kaffe mailing list
[EMAIL PROTECTED]
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe


Re: Re-used event objects (was: Re: [kaffe] java.lang.reflect.Methodvirtual method call bug (CVS))

2002-12-28 Thread Benja Fallenstein

Reading java/awt/KeyEvt.java, it seems like only events in the 
java.awt.Defaults.RecycleEvents bitmap should be re-used, but I can't 
see anything in the Kaffe source that would set RecycleEvents to 
anything but zero. What's going on?

Thanks,
- Benja


Benja Fallenstein wrote:

Benja Fallenstein wrote:


Not completely; it starts up, but something in our call hierarchy 
eats simple key events like single characters, spaces or returns; 
more complex things like function keys, Tab or PgUp/PgDn are 
processed correctly. We do recieve the events, apparently, but 
something eats them. I haven't seen this on the proprietary JVMs, so 
I guess there must be some kind of incompatibility (trying to process 
key events across Javas is **icky**). I'll tell if I find out what's 
causing this.



I have isolated the incompatibility: Kaffe re-uses KeyEvent objects; 
after issuing a KEY_PRESSED event, it issues a KEY_TYPED event which 
is the same object, with a field value changed inside. Interestingly, 
the KEY_RELEASED events seem to be separate objects. Gzz implements 
its own event queue to coordinate event processing with animation; 
this is implemented by putting the KeyEvent objects in a LinkedList. 
As it happens, Gzz by default only reacts to KEY_TYPED events, and as 
it happens, all three KEY_* events are usually queued before any of 
them is processed. This means that at the time we get around to 
processing the key events, we have two KEY_TYPED and one KEY_RELEASED 
event in the queue (because the original KEY_PRESSED event was changed 
to KEY_TYPED by Kaffe).

Gzz might be able to work around this, but I suggest that Kaffe not 
re-use KeyEvent objects, as code like the above works fine on the 
proprietary Javas and breaks on Kaffe in nonobvious ways. (Caching by 
using weak references might be an option, but I wouldn't think it's 
worth it...)

- Benja




___
kaffe mailing list
[EMAIL PROTECTED]
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe