[kaffe] Free Java @ FOSDEM 2011 - CFP extended to 17 December!

2010-12-09 Thread Mark Wielaard
All:

We already have some awesome proposals... but we want MORE!
So we're giving you a little more time to get those talk proposals in. 

We have reserved some slots for quick lightning talks (5 min), these can
be done spontaneously at the event, but please do let us know if you are
attending and will likely want to do one, even if you are not 100% sure
yet. That way we can better schedule the time slots.

If you don't want to give a talk, but want to support speakers attending
the Free Java devroom at FOSDEM 2011, please see our sponsoring
campaign: http://pledgie.com/campaigns/14110

Original announcement with adjusted dates follows:

Join us at FOSDEM 2011 to be part of our sessions where
we'll discuss the state of Free Java!

http://wiki.debian.org/Java/DevJam/2011/Fosdem

  Our theme is Java Sans Frontières
* Why Free Java technology is awesome
* Standing on the Shoulders of Free Java
* The future of Free Java

The Call For Participation is OPEN NOW, but closes on the 17th of
December... So send in a talk proposal today and join us in Brussels
5-6 February!

  Why FOSDEM?
* Engage in scintillating discussions with smart hackers over
  world famous Belgian Beer
* Join the Web of Trust by getting your strong new key signed
* Indulge in exquisite chocolate
* Visit historic Brussels within walking distance

  Why the Free Java DevJam?
* This is the most significant non-commercial, neutral
  environment for Java developers to meet
* Learn how to get involved in technical Free Java projects
* We will not shy away from politics (especially this year)!
* We will get together for an awesome dinner
* You will meet historic hackers in the evolution of Free Java

Please join the freejava-devr...@lists.fosdem.org list for general
discussion about the event.
http://lists.fosdem.org/mailman/listinfo/freejava-devroom

To submit a formal Talk Proposal follow the guidelines at
http://wiki.debian.org/Java/DevJam/2011/Fosdem/CallForParticipation

Respectfully,

Andrew Haley
  GCJ Maintainer, GNU Classpath, IcedTea  OpenJDK Developer.

Andrew John Hughes
  IcedTea Maintainer, GNU Classpath Maintainer, OpenJDK  GCJ Developer

Christian Thalinger
  OpenJDK developer, former CACAO Maintainer

Mark Wielaard
  GNU Classpath Maintainer, GCJ, IcedTea  OpenJDK contributor.

Tom Marble
  Java Libre hacker, Former OpenJDK Ambassador



___
kaffe mailing list
kaffe@kaffe.org
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe


[kaffe] CFP Free Java @ FOSDEM 2011 - ends this week

2010-11-29 Thread Mark Wielaard
All:

The CFP will end this week. So please submit your ideas for
Free Java @ FOSDEM 2011 to fos...@developer.classpath.org ASAP.

Join us at FOSDEM 2011 to be part of our sessions where
we'll discuss the state of Free Java!

http://wiki.debian.org/Java/DevJam/2011/Fosdem

  Our theme is Java Sans Frontières
* Why Free Java technology is awesome
* Standing on the Shoulders of Free Java
* The future of Free Java

The Call For Participation is OPEN NOW, but closes on the 3rd of December...
So send in a talk proposal today and join us in Brussels 5-6 February!

  Why FOSDEM?
* Engage in scintillating discussions with smart hackers over
  world famous Belgian Beer
* Join the Web of Trust by getting your strong new key signed
* Indulge in exquisite chocolate
* Visit historic Brussels within walking distance

  Why the Free Java DevJam?
* This is the most significant non-commercial, neutral
  environment for Java developers to meet
* Learn how to get involved in technical Free Java projects
* We will not shy away from politics (especially this year)!
* We will get together for an awesome dinner
* You will meet historic hackers in the evolution of Free Java

Please join the freejava-devr...@lists.fosdem.org list for general discussion 
about
the event. http://lists.fosdem.org/mailman/listinfo/freejava-devroom

To submit a formal Talk Proposal follow the guidelines at
http://wiki.debian.org/Java/DevJam/2011/Fosdem/CallForParticipation

Respectfully,

Andrew Haley
  GCJ Maintainer, GNU Classpath, IcedTea  OpenJDK Developer.

Andrew John Hughes
  IcedTea Maintainer, GNU Classpath Maintainer, OpenJDK  GCJ Developer

Christian Thalinger
  OpenJDK developer, former CACAO Maintainer

Mark Wielaard
  GNU Classpath Maintainer, GCJ, IcedTea  OpenJDK contributor.

Tom Marble
  Java Libre hacker, Former OpenJDK Ambassador


___
kaffe mailing list
kaffe@kaffe.org
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe


Re: [kaffe] Free Java @ FOSDEM 2011 DevRoom Proposal

2010-10-27 Thread Mark Wielaard
On Mon, 2010-10-11 at 14:08 +0200, Mark Wielaard wrote:
 Hi Libre Java Hackers,
 
 We are trying to organize a meeting for all free java hackers at Fosdem
 in Brussels, Belgium on Saturday 5 and Sunday 6 February 2011)
 http://fosdem.org/2011/
 
 We have applied for a developer room, but we don't know yet if there
 will be enough free space this year (Fosdem is getting very popular).

The FOSDEM organization has granted us a developer room! We will do an
official call for participation soon. But feel free to propose ideas
already to fos...@developer.classpath.org. And see if you can make it
the first weekend in February to Brussels. The event itself will be free
(as in beer). See http://fosdem.org/

Sincerely,

Andrew Haley,
Andrew John Hughes,
Christian Thalinger,
Mark Wielaard,
and Tom Marble


___
kaffe mailing list
kaffe@kaffe.org
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe


[kaffe] Free Java @ FOSDEM 2011 DevRoom Proposal

2010-10-11 Thread Mark Wielaard
Hi Libre Java Hackers,

We are trying to organize a meeting for all free java hackers at Fosdem
in Brussels, Belgium on Saturday 5 and Sunday 6 February 2011)
http://fosdem.org/2011/

We have applied for a developer room, but we don't know yet if there
will be enough free space this year (Fosdem is getting very popular).

Every request will receive an email around 2010-10-23 with an approval
 or reject of your Developer Room proposal. Details on further
 proceedings will then be communicated swiftly.

So we will know for sure in two weeks. For those that want to start
thinking about attending, or even submitting a talk proposal, here are
the details of the devroom proposal.

The organisation committee can also be reached at
fos...@developer.classpath.org

devroom name: Free Java developer room

The Libre Java community goes well beyond a single project. In this
devroom, we intend to provide a forum for many related core java
projects to exchange ideas and plan for the future of implementations of
Free Java on GNU/Linux and other free operating systems. This coming
year, with JDK 7 due to make an appearance, our goal is to provide a
venue for the developers and users of the Free Java projects (listed
below) to collaborate and discuss on a range of topics from virtual
machines through to deployment on FOSS operating systems.

While our main focus is traditionally on the JDK, we are excited about
hearing from new and exciting Free Java projects from across the
spectrum. In particular we would love to see submissions about porting
Java to small spaces or different architectures (e.g. ARM, MIPS, etc)
and how to implement alternate languages on the JVM (e.g. Clojure,
JRuby, Scala, etc.).

The Libre Java developer room will be a collaboration between:
  - OpenJDK http://openjdk.java.net/
  - IcedTea http://icedtea.classpath.org/
  - GNU Classpath http://www.gnu.org/software/classpath
  - GCJ http://gcc.gnu.org/java/
And other projects around Free Java.

preferred day: Saturday from 12:00 to 18:00

comments/remarks:
Over the past several years, we have used FOSDEM as a unifying
conference to bring the various communities around Free Java closer
together, and it has become a central point in our calendar for us to
meet, share ideas and plan for the future. We are very grateful for the
opportunity that FOSDEM gives us to unite our respective projects and
work towards a Free Java for everyone. Over the years, our developer
room has proved very popular, among both developers and interested users
alike, across both days of the conference and if possible, we would like
to come together again at FOSDEM and have a gathering in a developer
room.

Organisers:
- Andrew Haley a...@redhat.com
  GCJ Maintainer, GNU Classpath, IcedTea  OpenJDK Developer.
- Andrew John Hughes gnu_and...@member.fsf.org / ahug...@redhat.com
  IcedTea Maintainer, GNU Classpath Maintainer, OpenJDK  GCJ Developer
- Christian Thalinger christian.thalin...@oracle.com
  OpenJDK developer, former CACAO Maintainer
- Mark Wielaard m...@klomp.org
  GNU Classpath Maintainer, GCJ, IcedTea  OpenJDK contributor.
- Tom Marble tmar...@info9.net
  Java Libre hacker, Former OpenJDK Ambassador


___
kaffe mailing list
kaffe@kaffe.org
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe


[kaffe] Final Program Free Java Meeting at Fosdem - Brussels, Belgium on 7 and 8 February 2009

2009-01-26 Thread Mark Wielaard
Hi all,

In less than 2 weeks our little big event will take place!

The program for our libre java meeting at Fosdem has been finalized.
There are posters with a summary of the talks to print out at:
http://www.klomp.org/mark/classpath/fosdem09/poster_09.odg
http://www.klomp.org/mark/classpath/fosdem09/poster_09.pdf

Talk abstracts and bios of the speakers can be found at:
http://fosdem.org/2009/schedule/devroom/freejava

The wiki has some pointers to extra activities:
http://wiki.debian.org/Java/DevJam/2009/Fosdem
Including a dinner on Saturday night. Please add yourself if you want to
attend before Wednesday, January 28th

Hoping to see you all there, your friendly ad hoc Fosdem meeting
committee,

Dalibor Topic,
Andrew John Hughes,
Andrew Haley,
David Herron
and Mark Wielaard


___
kaffe mailing list
kaffe@kaffe.org
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe


[kaffe] Program Free Java Meeting at Fosdem - Brussels, Belgium on 7 and 8 February 2009

2009-01-13 Thread Mark Wielaard
Hi all,

We finally have a preliminary program for our libre java meeting at
Fosdem. There were a lot of submissions and we tried to do our best to
make an interesting schedule to discuss the wide spectrum of work that
is being done. Hope you like it:

Preliminarily Fosdem Libre-Java developer room program
--

Fosdem 2009, Brussels, Belgium
ULB Campus Solbosh - room AW1.120

Saturday, 7 February:

12:15 - 13:45 - OpenJDK status and future (1.5 hours, 30 min/talk)
Mark Reinhold  Joe Darcy
- The state of OpenJDK, OpenJDK6
- Project Jigsaw
- Small Language Changes

(15 minute break)

14:00 - 15:30 - IcedTea, Plugin and Jalimo (1.5 hours, 30 min/talk)
Lillian Angel, Deepak Bhole, Robert Schuster
- The state of IcedTea
- The IcedTea Plugin
- Jalimo: Cross-compiling OpenJDK using IcedTea and OpenEmbedded

(15 minute break)

15:45 - 17:45 - Graphics  Sound (2 hours, 30 min/talk)
Roman Kennke and Mario Torre, Guillaume Legris,
Clemens Eisserer, Karl Helgason
- Caciocavallo
- OpenGL ES to boost embedded Java
- XRender Java2D Pipeline
- Gervill Software Synthesizer

Sunday, 8 February:

10:00 - 11:30 VM Rumble (1.5 hours, 20 min/talk)
Guennadi Liakhovetski, Nicolas Geoffray,
Ian Rogers, Terrence Barr
- Porting a Java VM to a Hardware Accelerator
- VMKit
- Jikes RVM 3
- PhoneME CLDC and CDC VMs

(15 minute break)

11:45 - 13:15 It ain't Java (yet) (1.5 hours, 30 min/talk)
Matthias Schmidt, Remi Forax, Alex Buckley
- Groovy Grails for NetBeans
- JSR292 - Supporting Dynamically Typed Languages
- Towards a Universal VM

(45 minute lunch break)

14:00 - 15:30 - VMRumble continued (1.5 hours, 20 min/talk)
Robert Lougher, Michael Starzinger,
Levente Santha, Gary Benson
- JamVM
- Cacao
- JNode
- Zero/Shark

(15 minute break)

15:45 - 17:00 Distros/Community/Infra/Legal (1.25 hours, 24 min/talk)
Petteri Raty, Ray Gans, Terrance Barr
- Recruiting people to FOSS Java projects (distros/Gentoo)
- OpenJDK Community Priorities
- Pure GPL - Is it still up to date


We will soon publish the full final program with the abstracts of each
talk. Hoping to see you all there, your friendly ad hoc Fosdem meeting
committee,

Dalibor Topic,
Andrew John Hughes,
Andrew Haley,
David Herron
and Mark Wielaard


___
kaffe mailing list
kaffe@kaffe.org
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe


[kaffe] Free Java Meeting at Fosdem - Brussels, Belgium on 7 and 8 February 2009

2009-01-05 Thread Mark Wielaard
Hi all,

Our Fosdem meeting is approaching quickly.
http://fosdem.org/2009/ - February 7 and 8 in Brussels, Belgium.
DEADLINE FOR SUBMITTING TALKS IS END OF THIS WEEK (see below).

This is what will be at our disposal:

- the room AW1.120 with a capacity of 74 seats (in the building AW),
  - on Saturday 2009-02-07 from 12:00 to 18:00
  and
  - on Sunday 2009-02-08 from 09:00 to 17:00
- a video projector with VGA cable
- Internet connectivity (wifi A and B only, no wired)

This is what we need from you:

- Talk proposals and abstracts for activities.
  Please submit these BEFORE Saturday January 10!
  Either by emailing the Fosdem meeting committee at:
  fosdem2...@developer.classpath.org
  Or adding your proposal to the wiki:
  http://wiki.debian.org/Java/DevJam/2009/Fosdem

Hoping to see you all there, you friendly ad hoc Fosdem meeting committee,

Dalibor Topic,
Andrew John Hughes,
Andrew Haley,
David Herron
and Mark Wielaard


___
kaffe mailing list
kaffe@kaffe.org
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe


Re: [kaffe] Free Java Meeting at Fosdem - Brussels, Belgium on 7 and 8 February 2009

2008-12-01 Thread Mark Wielaard
Hi all,

On Mon, 2008-11-17 at 19:53 +0100, Mark Wielaard wrote:
 Since we always have so much fun meeting each other at Fosdem we have
 again applied for a Developer Room at Fosdem early next year. This year
 Fosdem will be taking place in Brussels, Belgium on Saturday 7 and
 Sunday 8 February 2009. FOSDEM '09 is a free and non-commercial event
 organized by the community, for the community. Its goal is to provide
 Free and Open Source developers a place to meet. http://fosdem.org/2009/
 
 We should know early next week if a developer room is available. If so
 we will start collecting ideas for activities. If there isn't a
 developer room available we will figure out something else.

There were a lot of submissions this year, so it took the Fosdem
organisation some time to go through them all. But I am happy to
announce:

The Free Java devroom request for FOSDEM 2009 (7+8 February) has
been accepted.

Details will follow (deadline for schedule, information we need
for the schedule, room capacity, etc...).

Welcome aboard, and thanks for your participation in FOSDEM
2009 :)

 Hope to see you there, you friendly ad hoc Fosdem meeting committee,
 
 Dalibor Topic,
 Andrew John Hughes,
 Andrew Haley,
 David Herron
 and Mark Wielaard


___
kaffe mailing list
kaffe@kaffe.org
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe


[kaffe] Free Java Meeting at Fosdem - Brussels, Belgium on 7 and 8 February 2009

2008-11-17 Thread Mark Wielaard
Hi all,

Since we always have so much fun meeting each other at Fosdem we have
again applied for a Developer Room at Fosdem early next year. This year
Fosdem will be taking place in Brussels, Belgium on Saturday 7 and
Sunday 8 February 2009. FOSDEM '09 is a free and non-commercial event
organized by the community, for the community. Its goal is to provide
Free and Open Source developers a place to meet. http://fosdem.org/2009/

We should know early next week if a developer room is available. If so
we will start collecting ideas for activities. If there isn't a
developer room available we will figure out something else.

Hope to see you there, you friendly ad hoc Fosdem meeting committee,

Dalibor Topic,
Andrew John Hughes,
Andrew Haley,
David Herron
and Mark Wielaard


___
kaffe mailing list
kaffe@kaffe.org
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe


Re: [kaffe] Removed GMP math?

2008-02-29 Thread Mark Wielaard
Hi Dalibor,

On Thu, 2008-02-28 at 14:16 +0100, Dalibor Topic wrote:
 I removed them myself, so I offer to produce a patch for you against the 
 1.1.9 source tarball, that adds Kaffe's GMP code back in, rather then 
 reverting the commit.

If you could post that somewhere that would be nice. Then people can
compare that with what is in GNU Classpath and possibly suggest
improvements for the classpath version.

Thanks,

Mark


___
kaffe mailing list
kaffe@kaffe.org
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe


[kaffe] Get ready for Fosdem - Free Java Meeting

2008-02-08 Thread Mark Wielaard
In just two weeks, 22 and 23 February, the Free Java Meeting will take
place during Fosdem in Brussels, Belgium.

There is a dynamic program with lots of (short) talks and space for
discussions on the state of the various free java projects, mobile java,
the VM and the Distro Rumble, the free java factory, cool stuff,
freedom, compatibility, community and planning all the exciting stuff we
are going to do together in the next year.

So if you are interested in Debian-java, GNU Classpath, OpenJDK,
JikesRVM, Fedora-java, IKVM.NET, JamVM, Jalimo, MobileEmbedded, Kaffe,
Gentoo-java, IcedTea, JNode, MIDPath, FBToolkit, Brandweg, Duchess,
IcePick, HotSpot, Zero, Ubuntu-java, and much, much more. Then please
come and join us.

More information on the program, who will be there and other activities
at http://fosdem.org/2008/schedule/devroom/freejava and
http://wiki.debian.org/Java/DevJam/2008/Fosdem

Best of all, it is all free.
You only have to pay the beer yourself *)

Hope to see you all there!


*) FOSDEM '08 is a free and non-commercial event organized by the
community, for the community. Its goal is to provide Free Software and
Open Source developers a place to meet. http://fosdem.org/


___
kaffe mailing list
kaffe@kaffe.org
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe


[kaffe] Free Java Meeting @ FOSDEM 2008 - Confirmed

2007-11-29 Thread Mark Wielaard
Hi All,

We got confirmation of the Fosdem organizers and they granted us a
developer room during Fosdem 2008! http://fosdem.org/2008/
Saturday and Sunday 23-24 February in Brussels, Belgium.

Note that to add your name or ideas for the program to 
http://wiki.debian.org/Java/DevJam/2008/ you will need to register on
the Debian wiki as a user first http://wiki.debian.org/UserPreferences
before you are allowed to edit the page.

Cheers,

Mark
---BeginMessage---
All:

It's time to finalize our proposal for FOSDEM 2008.  What
was previously known as the Escape the Java Trap event and
last year we called the GNU Classpath+OpenJDK DevJam will
this year be the Free Java Meeting.

Each project should have an introduction, but it may make most
sense to organize the sessions around topics with cross-project
interest (e.g. Virtual Machines, Architectures + Porting, Modularity,
Packaging, etc.)

Please add/correct/elaborate on the ideas for the Program here:
http://wiki.debian.org/Java/DevJam/2008/Fosdem#Program

Sponsorship is still to be determined, but it was very useful
last year to have everyone that is planning to attend sign up
so we have a sense of size/interests, etc.  Please sign up now!

On Wednesday this week (at the latest) we'll submit the formal
proposal for a DevRoom (and then try to define specific time blocks).

Thanks!

--Tom


---End Message---
___
kaffe mailing list
kaffe@kaffe.org
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe


Re: kaffe + classpath 0.95 (Was: Re: kaffe 1.1.8 (Was: Re: [kaffe] Future directions for Kaffe))

2007-06-14 Thread Mark Wielaard
Hi Dalibor,

On Wed, 2007-06-13 at 23:49 +0200, Dalibor Topic wrote:
 Unfortuntely, there is one VM Interface change that (I assume) makes it 
 hard to support both 0.93 and 0.95 (VMTimezone), so I think we should 
 stay with 0.93 for the 1.1.8 release, and kick out a 1.1.9 soon 
 afterwards. Meanwhile, it wouldn't hurt to get Kaffe added to 
 builder.classpath.org, now that it supports the 'separate classpath' 
 feature that JamVM  Cacao support. Mark, can you take care of that?

Very cool! Yes, I can take care of that, but it will take a couple of
days, so ping me again next week if it isn't done yet. Or you could look
at the builder scripts in CVS yourself:
http://sources.redhat.com/cgi-bin/cvsweb.cgi/builder/scripts/?cvsroot=mauve

Cheers,

Mark


signature.asc
Description: This is a digitally signed message part
___
kaffe mailing list
kaffe@kaffe.org
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe


Re: [kaffe] ./configure not finding X

2007-05-31 Thread Mark Wielaard
Hi Steve,

On Wed, 2007-05-30 at 16:53 -0400, Stephen Winiecki wrote:
 checking for X... no
 configure: error: GTK+ peers requested but no X library available
 configure: error: /bin/sh './configure' failed for 
 libraries/javalib/external/classpath
 
 Can anyone surmise why the check for X would be failing - or things to 
 look for?

The config.log file might have more clues about which check was run and
how it failed.

Cheers,

Mark


___
kaffe mailing list
kaffe@kaffe.org
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe


Re: [kaffe] Re: Who made Open Source Java real

2006-12-06 Thread Mark Wielaard
On Thu, 2006-11-16 at 17:08 +0100, Dalibor Topic wrote: 
 I largely blame Mark Wielaard's efforts
 to bring the different efforts together under one umbrella, and reach 
 out to everyone else working on this. :)
 
 He's just plain awesome, and I'm glad to know him as a friend.

Thanks :) You are awesome and a great friend too!

And lets not forget all those people who are just happily hacking away
on kaffe but don't yell and scream so much. The real heros are down in
all those ChangeLog files that come with Kaffe!

Cheers,

Mark


___
kaffe mailing list
kaffe@kaffe.org
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe


[kaffe] Re: F/OSS Java mini-talks during JavaOne

2006-05-16 Thread Mark Wielaard
Hi Fernando,

On Mon, 2006-05-15 at 05:03 -0200, [EMAIL PROTECTED] wrote:
 If you happen to be at JavaOne this year, please drop by the java.net
 community corner. This year we'll have some mini-talks about JPackage,
 Kaffe, Classpath and other free Java stuff, besides some
 Sun-sponsored talks.
 
 If people see there's interest from the community in Free Software
 Java projects, next years there'll be more space for us at the
 conference, and this will help more developers escape the Java
 trap.

Wish I was there. But currently I am trapped in old-Europe. Audrius
and I gave presentations in Zwitserland and Germany this month. Audrius
setup a page on our wiki where you can find those and some other
presentation/promotion material that you should feel free to reuse:
http://developer.classpath.org/mediation/ClasspathPresentations

There is also our support document which, although a bit dated, is nice
because the PDF version can be printed as a 3 page handout and shows how
important Compatibility, Correctness and Completeness is for our efforts
(something which seems to always be a big theme with the JavaOne crowd):
http://developer.classpath.org/support/

And I recently wrote a paper on the current state and GNU/Linux
packaging challenges which you can find at:
http://www.klomp.org/mark/classpath/lt2006/paper.html

Hope some of that material is useful.

And GNU Classpath 0.91 One for All, All for One was release yesterday:
http://www.gnu.org/software/classpath/announce/20060515.html
It is already included in Debian unstable and OpenSuse will hopefully
follow today. To give a quick demo you can also just install a recent
Ubuntu or Fedora release and show native gcj compiled eclipse, tomcat,
openoffice, etc.

Have fun,

Mark

-- 
Escape the Java Trap with GNU Classpath!
http://www.gnu.org/philosophy/java-trap.html

Join the community at http://planet.classpath.org/


___
kaffe mailing list
kaffe@kaffe.org
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe


Re: [kaffe] ppc: mouse keyboard problems with kaffe 1.1.7rc1

2006-03-17 Thread Mark Wielaard
Hi Bernhard,

On Thu, 2006-03-16 at 20:05 +0100, Bernhard Reiter wrote:
 Am Mittwoch, 15. März 2006 20:47 schrieb Mark Wielaard:
  Thanks. I see no key event is ever received by the Frame (this is on x86
  for me). I have filed this as bug #26703
  http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26703
 
 thanks for testing and filing the bug.

We still haven't fixed it, but I believe we understand the issue now.
See the bug report for some additional comments on where the problem is.

  Do you happen to know if this ever worked with kaffe in the past?
 
 To give you my full history:
 First I have tried:
 a) Mandriva (ia586) with their cooker kaffe package, probably
 Kaffe CVS from CVS (20060204) worked fine for me on the games.yahoo.com/go 
 applets, I believe that this will use the classpath implementation of swing.

Nice! I didn't know those worked already. But I am unable to try it
against gcjwebplugin since it seems to demand some sort of yahoo id.

 Next I wanted this on powerpc and tried
 
 b) kaffe-1.1.7rc1 (my Debian backport on ppc):
 The go applet did display fine, but did not receive mouse or key events.
 Out of curiousiy I went deeper into the problem and thought it might be
 a ppc related problem, because it seemed to work on ia586 with seemingly
 the same version.

It would be nice if some kaffe hacker could explain the relation between
these versions. Which came before the other and what is the default awt
implementation for both?

 Now I was looking at 
 c) running example applications from www.javabuch.de
 using awt and swing on Debian. I found out that mouse and keyboard
 events did not work with the default setting, but worked 
 using kaffe's other awt implementation;  
 e.g. with kaffe -Xkaffe-xlib-awt TestKeyEvents  .

That does make sense. In the GNU Classpath gtk-peer awt implementation a
lot of work has been done to support lightweight components (like Free
Swing). This is less developed in the old style kaffe xlib-awt
framework. But in a couple of places we seem to forgot to check that
old-style heavyweight (aka plain awt components) still got the events
if the lightweights didn't handle them.

 Trying to report the presumatley ppc related bug I have now learned:
 d) There seems to be generic event bugs in classpath for kaffe.

Yes, as far as I can see they are not platform specific. The mouse
events issue seems to be solved now in a generic way. See:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26641

 And know looking closer I also see
 e) Mandriva has probably packages a CVS version after 1.1.7rc1 of Kaffe.
 
 
 Conclusion: next steps for me would be, 
 i) try to test another version of classpath. I am unsure how to do this with 
 kaffe without a new Debian version, so I might try jamvm, if this is easier 
 on Debian.

Or we can try to get kaffe to make a new release! :)
Including at least the patch from PR26641.

 ii) Retest my two testcases for Mandriva.

Thanks for all the testing. It (and the testcases) are really helpful.

Mark


signature.asc
Description: This is a digitally signed message part
___
kaffe mailing list
kaffe@kaffe.org
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe


Re: [kaffe] ppc: mouse keyboard problems with kaffe 1.1.7rc1

2006-03-15 Thread Mark Wielaard
Hi Bernhard,

On Wed, 2006-03-15 at 15:42 +0100, Bernhard Reiter wrote:
  On Wed, 2006-03-15 at 11:35 +0100, Bernhard Reiter wrote:
  Yes. If you have a small testcase for the keyboard issue that would be
  appreciated. 
 
 I have attached a smal test application.
 It shows the problem here.

Thanks. I see no key event is ever received by the Frame (this is on x86
for me). I have filed this as bug #26703
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26703

Do you happen to know if this ever worked with kaffe in the past?

Thanks,

Mark


signature.asc
Description: This is a digitally signed message part
___
kaffe mailing list
kaffe@kaffe.org
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe


[kaffe] GNU Classpath friends meeting during Fosdem 2006

2006-01-01 Thread Mark Wielaard
GNU Classpath  friends meeting during Fosdem 2006.

The various free software library, runtimes, compiler and tool
projects around GNU Classpath will meet in Brussel to discuss what has
happened in the last year in the Free Software community and what the
next year will bring us during Fosdem.

The 6th edition of FOSDEM (Free and Opensource Software Developers'
European Meeting) will take place on February 25+26 2006 in Brussels
(Belgium), at the Solbosch Campus of the ULB (Free University of
Brussels). FOSDEM is a free and non-commercial event for the community
and organized by the community. See http://www.fosdem.org/

The program will be as follows:

- Saturday from 13:00 to 17:30 - End-User talks

  Presentations that show what cool stuff can be done with the Free
  Stack right now.

  - Putting the 'Free' into JFreeChart
Dave Gilbert, JFreeChart Project Leader

A review of the efforts to make JFreeChart work with GNU
Classpath-based runtimes, including a brief history, a demonstration
of the current state (using the java bindings for Cairo), and an
overview of the work that remains to be done.

  - Using Eclipse for GNU Classpath development
Tom Tromey

Learn how to setup a fully working development environment based
on GNU Classpath in Eclipse that can be used to bootstrap the full
free toolchain (and can be used to run Eclipse itself) in just 10
minutes. 

  - Eclipse RCP and GCJ/GIJ
Wayne Beaton

Eclipse Rich Client Platform (RCP) is a runtime platform for
delivering your Java applications on multiple platforms. RCP is far
more than just a windowing toolkit; it is rich client middleware
that provides a comprehensive framework for building and deploying
applications that are modular, extensible, and updatable. The kinds
of applications you can build with Eclipse RCP are limited only by
your imagination. During this talk, we will discuss how the Eclipse
RCP can be used in conjunction with the Eclipse Eco-system and
GCJ/GIJ to build high quality applications.

  If there is time at the end of the day we would like to do a
  Show-And-Tell where people do quick Demos of applications running on a
  completely free stack. Ideas and suggestions welcome.

- Sunday from 09:00 to 13:00 - Developer talks

  Presentations of (core) libraries and runtimes that are in progress,
  made a lot of progress in the last year and are in active development.

  - Free Swing, past, present and future
Roman Kennke

An overview of that state of Free Swing one year ago, what has been
done in the meantime, what still must be done and which applications
work now.

  - The Free CORBA comes
Dr Audrius Meskauskas

If the Free world does not want to step back in the battle, we need
a complete set of the Free tools for advanced communication over
the network. For our CORBA implementation we needed:

1. Free. No classes with restricted license.
2. Fully workable, interoperable and pass tests, recognized by
   the CORBA user community as serious (we needed to find a well
   known Free testing suite).
3. Properly commented, being ready for the long life in the Free
   world.
4. No pressure to use the outdated approaches.
   CORBA 3.0.3 and jdk 1.5.

To reach these goals, we have chosen for implementing a clean room 
implementation, using the published standard specifications only.
During the recent year of the GNU Classpath development, this goal
is in large degree achieved. The important directions of future
development could be providing features that are outside the scope
of the both CORBA standard and Sun API, but included in the near all
proprietary implementations (SSH, HTTP and other bridges, get rid of
rmic code generator for RMI/IIOP, fault tolerant behavior, reduced
the footprint and others).

  - The JamVM runtime
Robert Lougher

An overview of the JamVM virtual machine, with comparisons to other
GNU Classpath runtimes, and a section on the VM interface.

  - Integrating Vmgen-based interpreters
Christian Thalinger
  
Vmgen is a tool for writing efficient interpreters. The Cacao
runtime recently added a Vmgen based interpreter in addition to
the JIT engine.

- Sunday from 14:00 to 17:30 - The Future

  Interactive technical hacker discussions on how to integrate
  the projects more and move forward in the next year.

  - State of the world, beyond japi
Mark Wielaard, GNU Classpath Maintainer

After a short overview of the various free stacks, libraries,
compilers, tools and runtimes this session is mostly open discussion
about what work remains to be done and how to integrate the various
efforts better. Ideas for work items welcome.

We hope to see you in Brussels on February 25 and 26 2006, If you have
suggestions or ideas for the demos and discussion sessions please
contact us at [EMAIL PROTECTED

[kaffe] Re: gcj 4.1.x issue

2005-12-22 Thread Mark Wielaard
Hi Hanno,

On Thu, 2005-12-22 at 13:45 +0100, Hanno Meyer-Thurow wrote:
 Hi list!
 First time I send to this list so please be kind! ;)

Welcome. This message can almost not be an coincidence. So I am sharing
it with that other free runtime initiative kaffe. (See CC.)

 I try to build apache-ant 1.6.2 with gcj 4.1.0-20051216 with some patches
 from fedora cvs for pr24899 pr25121 pr25432.
 
 The source compiles but executing gij with the class files breaks.
 I narrowed down the error to a testcase I would say.
 Java file is attached.
 
 # gcj -C DemuxOutputStream.java
 # gij -cp . DemuxOutputStream
 Exception in thread main java.lang.IllegalAccessError: DemuxOutputStream: 
 DemuxOutputStream$BufferInfo.buffer
at DemuxOutputStream.main (DemuxOutputStream.java:18)

The kaffe hackers are tracking something that looks very similar. See
the thread starting at:
http://pogo.kaffe.org/pipermail/kaffe/2005-December/103649.html

There is a strange interplay between the class access modifiers which
are emitted by the compiler and how they are (supposed) to be
interpreted between the outclass and the inner class.

It seems only the outer class access flags should matter during runtime,
but the compiler should interpret and emit access flags for the inner
class attributes.

I have looked a bit around, but don't have a clear picture in my head
yet. There is also the following eclipse compiler bug (showing that
different compilers output different access flags and/or accessor
methods):
https://bugs.eclipse.org/bugs/show_bug.cgi?id=77473

Does someone have a complete clear picture? And can we add some shared
tests to mauve and/or jacks? This might actually be a little tricky
since it seems to interplay with the actual byte code compiler used to
emit the class files. So maybe we need a new module based on jasmin (can
the verify module help here?)

Cheers,

Mark
import java.io.ByteArrayOutputStream;

public class DemuxOutputStream {

/**
 * A data class to store information about a buffer. Such information
 * is stored on a per-thread basis.
 */
private static class BufferInfo {
/**
 * The per-thread output stream.
 */
private ByteArrayOutputStream buffer;
}

public static void main (String[] args) {
	BufferInfo test = new BufferInfo();
	test.buffer = new ByteArrayOutputStream();
}
}


signature.asc
Description: This is a digitally signed message part
___
kaffe mailing list
kaffe@kaffe.org
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe


[kaffe] Re: gcj 4.1.x issue

2005-12-22 Thread Mark Wielaard
Hi Hanno,

On Thu, 2005-12-22 at 16:48 +0100, Mark Wielaard wrote:
  The source compiles but executing gij with the class files breaks.
  I narrowed down the error to a testcase I would say.
  Java file is attached.
  
  # gcj -C DemuxOutputStream.java
  # gij -cp . DemuxOutputStream
  Exception in thread main java.lang.IllegalAccessError: DemuxOutputStream: 
  DemuxOutputStream$BufferInfo.buffer
 at DemuxOutputStream.main (DemuxOutputStream.java:18)

In this case it really does seem a bug in gcj -C byte code generation.
Since this is a static inner class it should create an (package private)
accessor method for the private ByteArrayOutputStream buffer field.
(jikes does this correctly btw.) A workaround is to just remove the
private flag from the buffer field in this case.

Cheers,

Mark


signature.asc
Description: This is a digitally signed message part
___
kaffe mailing list
kaffe@kaffe.org
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe


[kaffe] Re: gcj 4.1.x issue

2005-12-22 Thread Mark Wielaard
Hi Tom,

On Thu, 2005-12-22 at 09:23 -0700, Tom Tromey wrote:
 This was PR 19870.  We thought it was fixed but perhaps this is a new
 instance of it.

Indeed it is. I added a slight variant of the original example to the
bug report and reopened it.

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19870

Cheers,

Mark


signature.asc
Description: This is a digitally signed message part
___
kaffe mailing list
kaffe@kaffe.org
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe


[kaffe] GNU Classpath hacker room at FOSDEM 2006

2005-11-14 Thread Mark Wielaard
Hi all,

Like the last couple of years we want to come together with all the
projects around GNU Classpath and the various free runtimes, compiler
and tool projects to discuss what has happened in the last year in the
Free Software community and what the next year will bring us during
FOSDEM.

The 6th edition of FOSDEM (Free and Opensource Software Developers'
European Meeting) will take place on February 25+26 2006 in Brussels
(Belgium), at the Solbosch Campus of the ULB (Free University of
Brussels). FOSDEM is a free and non-commercial event for the community
and organized by the community. See http://www.fosdem.org/

We were thinking of the following setup:

- Saturday from 13:00 to 17:30 - End-User talks presentations to
promote what we all build together to a wider audience that might have
heard of what we do, but haven't actually seen it in action/put
together. We might also want to have a lightning hour with lots of
quick Demos of applications running on a completely free stack (5 - 10
minutes per demo).

- Sunday from 09:00 to 12:30 - Developer talks presentations of things
that are in progress and that people want to explain in more depth to
get developers of the other projects to join in a share the fun.

- Sunday from 13:00 to 17:30 - The Future hard core interactive
technical hacker discussions on how to integrate the projects more and
move forward in the next year.

Arnaud Vandyck, Dalibor Topic, Mark Wielaard, Michael Koch and and Tom
Tromey will be our program committee this year. If you would like to
present something, have an idea for a demo or discussion topic please
let us know at fosdem-at-developer.classpath.org Please mention the
title, a little abstract, which track and whether you want to do a quick
demo, a short 30 min talk or full hour talk (we prefer 30 minute talks
to give everybody a chance to present something). Deadline for proposals
is December 18, so you have a month to think of something cool. Then we
make sure to have some kind of formal program at the start of January.

Examples of presentations and reports from previous years:
http://www.gnu.org/software/classpath/events/escape_fosdem05.html
http://www.gnu.org/software/classpath/events/fosdem04.html

Some ideas for interesting topics:
- Free Swing - The Demo!
- Your GNU/Linux distro and the free runtimes - package overview.
- From 0 to 100 in 15 Minutes: Getting started with GNU Classpath 
  development using Eclipse, JamVM, Mauve, and the ChangeLog plugin!
- Integrating with Objectweb through native-(gcj)-JOnAS
- Writing OpenOffice.org plugins using a free software stack.
- Using GNU Classpath/gcj/kaffe for games
- Using free runtimes on Wine and other win32 environments
- Embedding GNU Classpath in web browsers and support for JNLP
  - Security Auditing!
- 1.5 language support in GNU Classpath, gcjx and the free runtimes
- GNU Classpath/OSGi/J2ME/Library splitting and trimming
- Harmony through interfacing.
- Beyond JAPI: what is needed to really finish GNU Classpath
  Or, Beyond Java -- what we can do when we finish 1.5.
  Or more generally some kind of presentation about development
  metrics: bug rates, rates of change in japi/lines of code/tests,
  email volume, stuff like that.
- Debugging, JDWP development efforts.
- etc.

Hope to see you in Brussels on February 25 and 26 2006,

Arnaud, Dalibor, Mark, Michael and Tom

-- 
Escape the Java Trap with GNU Classpath!
http://www.gnu.org/philosophy/java-trap.html

Join the community at http://planet.classpath.org/
-- 
Escape the Java Trap with GNU Classpath!
http://www.gnu.org/philosophy/java-trap.html

Join the community at http://planet.classpath.org/


signature.asc
Description: This is a digitally signed message part
___
kaffe mailing list
kaffe@kaffe.org
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe


[kaffe] Adler32

2005-09-01 Thread Mark Wielaard
Hi,

Just created some Adler32 tests for mauve.
It seems there are two bugs in the default kaffe (zlib based) Adler32
implementation. The checksum starts at 1, not 0. And the checksum is an
unsigned int returned as long:

2005-09-01  Mark Wielaard  [EMAIL PROTECTED]

* libraries/javalib/java/util/zip/Adler32.java
(Adler32): Set adler to 1.
(reset): Likewise.
(getValue): Return unsigned int value.

With this all the new mauve tests pass.
But please check carefully since I didn't find any official adler32 test
vectors.

Cheers,

Mark

-- 
Escape the Java Trap with GNU Classpath!
http://www.gnu.org/philosophy/java-trap.html

Join the community at http://planet.classpath.org/


signature.asc
Description: This is a digitally signed message part
___
kaffe mailing list
kaffe@kaffe.org
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe


[kaffe] Quick mauve test

2005-04-03 Thread Mark Wielaard
Hi,

Since kaffe 1.1.5-rc and gcj/gij 4.0-cvs should now be more or less
comparable with respect to the core classes used from GNU Classpath I
ran some quick tests against mauve (cvs) for both.

In general kaffe wins :)
26843 PASSes against 25875 for gij.
This is because kaffe does actually have more recent class libraries in
CVS at the moment. Especially the locales support helps the numbers in
favor of kaffe.

Some failures people might want to look into are reported below.
All these tests pass with gij, but FAIL with kaffe. None are probably
release stoppers, but in the long run they should be fixed.

FAIL: gnu.testlet.java.lang.reflect.Method.invoke: invoke package-private 
method (number 1)
FAIL: gnu.testlet.java.lang.reflect.Field.promotion: byte (number 18)
FAIL: gnu.testlet.java.lang.reflect.Field.promotion: int (number 4)
FAIL: gnu.testlet.java.lang.reflect.Field.promotion: float (number 4)
FAIL: gnu.testlet.java.lang.reflect.Field.promotion: long (number 4)
FAIL: gnu.testlet.java.lang.reflect.Field.promotion: double (number 4)
FAIL: gnu.testlet.java.io.ObjectStreamClass.Test: getSerialVersionUID (number 3)
FAIL: gnu.testlet.java.io.Utf8Encoding.mojo: Surrogate Pairs (number 1)
FAIL: gnu.testlet.java.io.Utf8Encoding.mojo: Surrogate Pairs (number 2)
FAIL: gnu.testlet.java.io.Utf8Encoding.mojo: Surrogate Pairs (number 3)
FAIL: gnu.testlet.java.io.Utf8Encoding.mojo: Surrogate Pairs (number 4)
FAIL: gnu.testlet.java.io.Utf8Encoding.mojo: Surrogate Pairs (number 5)
FAIL: gnu.testlet.java.lang.Class.ClassTest: test_forName (number 10)
(In general kaffe seems better to do better with
 gnu.testlet.java.lang.Class.ClassTest then gij, except for this one.)
FAIL: gnu.testlet.java.lang.Integer.getInteger (number 19)
FAIL: gnu.testlet.java.lang.Math.max (number 3)
FAIL: gnu.testlet.java.lang.Math.max (number 19)
FAIL: gnu.testlet.java.lang.Math.min: Small doubles (number 3)
FAIL: gnu.testlet.java.lang.Math.min: Small floats (number 3)
FAIL: gnu.testlet.java.lang.Math.sin (number 1)
FAIL: gnu.testlet.java.lang.Package.getPackage: checking package for 
'java.lang' (number 1)
FAIL: gnu.testlet.java.lang.String.surrogate (number 1)
FAIL: gnu.testlet.java.lang.String.surrogate (number 2)
FAIL: gnu.testlet.java.lang.String.surrogate (number 3)
FAIL: gnu.testlet.java.lang.Thread.sleep abnormal termination 142 CRASH or 
TIMEOUT
(This hang disappears when run mauve is ran with -verbose...)
The gnu.testlet.java.lang.Thread.security10 test seems really bad.
20 of 20 tests failed
FAIL: gnu.testlet.java.lang.ref.WeakReference.weakref: contents of weak 
reference (number 1)
gnu.testlet.java.lang.reflect.ReflectAccess has lots of failures, with gij 
there are none.
FAIL: gnu.testlet.java.net.Socket.jdk13 abnormal termination 142 CRASH or 
TIMEOUT
Timeout. Caused by:
gnu.testlet.java.net.Socket.jdk13
java.net.SocketException: Unknown socket option
   at gnu.java.net.PlainSocketImpl.getOption (PlainSocketImpl.java:249)
   at java.net.Socket.getKeepAlive (Socket.java:1006)
FAIL: gnu.testlet.java.nio.ByteBuffer.putDouble (number 1)
FAIL: gnu.testlet.java.security.SecureRandom.SHA1PRNG: instances generate same 
bytes when similarly seeded (number 1)
FAIL: gnu.testlet.java.security.SecureRandom.SHA1PRNG: instances generate same 
bytes when similarly seeded (number 2)

I haven't actually looked into why any of the above really fails.
But hopefully someone is intrigued by these failures and will
investigate a bit more.

Cheers,

Mark

-- 
Escape the Java Trap with GNU Classpath!
http://www.gnu.org/philosophy/java-trap.html

Join the community at http://planet.classpath.org/


signature.asc
Description: This is a digitally signed message part
___
kaffe mailing list
kaffe@kaffe.org
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe


Re: [kaffe] NumberFormat.getInstance fails

2005-01-24 Thread Mark Wielaard
Hi,

On Mon, 2005-01-24 at 22:32 +, Ito Kazumitsu wrote:
 In message [kaffe] NumberFormat.getInstance fails
 on 05/01/21, Seo Sanghyeon [EMAIL PROTECTED] writes:
  : == Seo Sanghyeon [EMAIL PROTECTED] writes:
 
 : java.lang.IllegalArgumentException: The specified country code is invalid
 :at java.util.Currency.init (Currency.java:171)
 :at java.util.Currency.getInstance (Currency.java:262)
 :at java.text.DecimalFormatSymbols.init (DecimalFormatSymbols.java:151)
 :at java.text.NumberFormat.computeInstance (NumberFormat.java:327)
 :at java.text.NumberFormat.getNumberInstance (NumberFormat.java:456)
 :at java.text.NumberFormat.getInstance (NumberFormat.java:381)
 
 This seems to be the same problem that was reported in
 
 http://www.kaffe.org/pipermail/kaffe/2005-January/101287.html

This should already been fixed in GNU Classpath CVS.
Could one of you try to merge in this change?
http://developer.classpath.org/compare/classpath-kaffe/compare/java.text.DecimalFormatSymbols.diff

Cheers,

Mark


signature.asc
Description: This is a digitally signed message part
___
kaffe mailing list
kaffe@kaffe.org
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe


Re: [kaffe] CVS kaffe (robilad): Fixed synchronization problems when opening ZipFiles

2005-01-05 Thread Mark Wielaard
Hi,

On Wed, 2005-01-05 at 14:49 -0800, Kaffe CVS wrote:
  public ZipFile(String fname) throws IOException
  {
   name = fname;
 - zip = openZipFile0(fname);
 + /* only have one thread at a time attempt to open the zip file */
 + synchronized(fname) {
 + zip = openZipFile0(fname);
 + }

Note that strings don't have to be unique objects. You might want to do
a fname = fname.intern() first to be sure. And depending on how
openZipFile0 works (I haven't actually checked) you might want to make
sure that it recognizes different paths to the same file correctly.
The safest would be to just synchronize on ZipFile.class

Cheers,

Mark


signature.asc
Description: This is a digitally signed message part
___
kaffe mailing list
kaffe@kaffe.org
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe


Re: [kaffe] [gump] NPE using Jar files w/o manifest

2004-12-25 Thread Mark Wielaard
On Fri, 2004-12-24 at 15:02 -0600, Adam Heath wrote:
 Ah, simple.  If we can't find the named entry, return null for the input
 stream.  Fix in cvs.

hehe. Simple he calls that. For the GNU Classpath implementation we had
a lot of debate before we made this change. And basically the only
reason to make such a change was for how ant was relying on this
behaviour. See this comment in the source code:

   * This implementation returns null if the requested entry does not
   * exist.  This decision is not obviously correct, however, it does
   * appear to mirror Sun's implementation, and it is consistant with
   * their javadoc.  On the other hand, the old JCL book, 2nd Edition,
   * claims that this should return a non-null ZIP entry.  We have
   * chosen for now ignore the old book, as modern versions of Ant (an
   * important application) depend on this behaviour.  See discussion
   * in this thread:
   * http://gcc.gnu.org/ml/java-patches/2004-q2/msg00602.html

BTW. Maybe it would be a good idea for kaffe to adopt the GNU Classpath
java.util.zip implementation. We encountered a lot of subtle issues in
this package. Sharing this kind of bugs/fixes with kaffe would be
beneficial to both projects.

Cheers,

Mark


signature.asc
Description: This is a digitally signed message part
___
kaffe mailing list
kaffe@kaffe.org
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe


Re: [kaffe] CVS kaffe (robilad): Use pure java XSLT engine by default

2004-12-08 Thread Mark Wielaard
Hi,

On Tue, 2004-12-07 at 21:35, Mark Wielaard wrote:
 First patch is for GNU JAXP.
 Handles the case were ReaderInputStream has too much characters.

Here is a new patch. This one is a little bit more efficient if off  0.
We used to read just len - off chars in read(byte[] b, int off, int
len). But we don't have to be that conservative now. No observable
change in behaviour for my tests.

The other patch for kaffe is still necessary (since it actually doesn't
have anything to do with encoding issues).

Cheers,

Mark
Index: libraries/javalib/gnu/xml/dom/ls/ReaderInputStream.java
===
RCS file: /cvs/kaffe/kaffe/libraries/javalib/gnu/xml/dom/ls/ReaderInputStream.java,v
retrieving revision 1.3
diff -u -r1.3 ReaderInputStream.java
--- libraries/javalib/gnu/xml/dom/ls/ReaderInputStream.java	6 Dec 2004 09:02:52 -	1.3
+++ libraries/javalib/gnu/xml/dom/ls/ReaderInputStream.java	8 Dec 2004 08:35:26 -
@@ -1,6 +1,6 @@
 /*
  * ReaderInputStream.java
- * Copyright (C) 1999,2000,2001 The Free Software Foundation
+ * Copyright (C) 1999, 2000, 2001, 2004 The Free Software Foundation
  * 
  * This file is part of GNU JAXP, a library.
  *
@@ -54,10 +54,17 @@
   private Reader reader;
   private String encoding;
 
+  // Holds extra spillover data if necessary
+  private byte extra[];
+  private int pos;
+
+  private byte extra_marked[];
+  private int pos_marked;
+
   public ReaderInputStream(Reader reader)
   {
 this.reader = reader;
-encoding = UTF-8;
+this.encoding = UTF-8;
   }
 
   void setEncoding(String encoding)
@@ -68,6 +75,14 @@
   public int read()
 throws IOException
   {
+if (extra != null)
+  {
+	int result = extra[pos];
+	pos++;
+	if (pos = extra.length)
+	  extra = null;
+	return result;
+  }
 return reader.read();
   }
 
@@ -80,14 +95,40 @@
   public int read(byte[] b, int off, int len)
 throws IOException
   {
-int l = len - off;
-char[] c = new char[l];
-l = reader.read(c, 0, l);
+if (len == 0)
+  return 0;
+
+if (extra != null)
+  {
+	int available = extra.length - pos;
+	int l = available  len ? available : len;
+	System.arraycopy(extra, 0, b, off, l);
+	pos += l;
+	if (pos = extra.length)
+	  extra = null;
+	return l;
+  }
+
+char[] c = new char[len];
+int l = reader.read(c, 0, len);
+if (l == -1)
+  return -1;
+
 String s = new String(c, 0, l);
 byte[] d = s.getBytes(encoding);
-// FIXME d.length may be  len
-System.arraycopy(d, 0, b, off, d.length);
-return d.length;
+
+int available = d.length;
+int more = d.length - len;
+if (more  0)
+  {
+	extra = new byte[more];
+	pos = 0;
+	System.arraycopy(d, len, extra, 0, more);
+	available -= more;
+  }
+	
+System.arraycopy(d, 0, b, off, available);
+return available;
   }
 
   public void close()
@@ -103,29 +144,74 @@
 
   public void mark(int limit)
   {
+if (extra != null)
+  {
+	extra_marked = new byte[extra.length];
+	System.arraycopy(extra, 0, extra_marked, 0, extra.length);
+	pos_marked = pos;
+  }
+else
+  extra_marked = null;
+
 try
   {
-reader.mark(limit);
+	// Note that this might be a bit more than asked for.
+	// Because we might also have the extra_marked bytes.
+	// That is fine (and necessary for reset() to work).
+	reader.mark(limit);
   }
-catch (IOException e)
+catch (IOException ioe)
   {
-throw new RuntimeException(e.getMessage());
+	throw new RuntimeException(ioe);
   }
   }
 
   public void reset()
 throws IOException
   {
+extra = extra_marked;
+pos = pos_marked;
+extra_marked = null;
+
 reader.reset();
   }
 
   public long skip(long n)
 throws IOException
   {
-return reader.skip(n);
+long done = 0;
+if (extra != null)
+  {
+	int available = extra.length - pos;
+	done = available  n ? available : n;
+	pos += done;
+	if (pos = extra.length)
+	  extra = null;
+  }
+
+n -= done;
+if (n  0)
+  return reader.skip(n) + done;
+else
+  return done;
+  }
+
+  /**
+   *  Returns conservative number of bytes available without blocking.
+   *  Actual number of bytes that can be read without blocking might
+   *  be (much) bigger.
+   */
+  public int available() throws IOException
+  {
+if (extra != null)
+  return pos - extra.length;
+
+return reader.ready() ? 1 : 0;
   }
 
-  // TODO available
-  
+  public String toString()
+  {
+return ReaderInputStream[ + reader + ,  + encoding + ];
+  }
 }
 


signature.asc
Description: This is a digitally signed message part
___
kaffe mailing list
[EMAIL PROTECTED]
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe


Re: [kaffe] CVS kaffe (robilad): Use pure java XSLT engine by default

2004-12-07 Thread Mark Wielaard
Hi,

On Tue, 2004-12-07 at 01:58, Kaffe CVS wrote:
 2004-12-06  Dalibor Topic  [EMAIL PROTECTED]
 
 * libraries/javalib/javax/xml/transform/TransformerFactory.java:
 Use gnu.xml.transform.TransformerFactoryImpl as the default
 transformer instead of libxmlj one.
 
 Reported by: Benja Fallenstein [EMAIL PROTECTED]

This is what Chris (CCed) recommends. But unfortunately we now need to
start over with trying to get writing out dom trees to streams working
again (most of my fixes were for the GnomeDocumentBuilder. With this you
will hit something like the following:

gnu.xml.dom.DomEx: The node belongs in another document.
Node Name: #document
   at gnu.xml.dom.DomNode.checkMisc (DomNode.java:334)
   at gnu.xml.dom.DomNode.appendChild (DomNode.java:551)
   at gnu.xml.dom.DomDocument.appendChild (DomDocument.java:324)
   at gnu.xml.transform.TransformerImpl.transform (TransformerImpl.java:205)
   at org.eclipse.ui.XMLMemento.save (XMLMemento.java:413)

Trying to work around this you will at least have to deal with the
Writer problem yet again. Sigh. Patch attached.

After that I am currently stuck unfortunately.
Will try to debug some more tonight.

Cheers,

Mark
Index: libraries/javalib/gnu/xml/transform/TransformerImpl.java
===
RCS file: /cvs/kaffe/kaffe/libraries/javalib/gnu/xml/transform/TransformerImpl.java,v
retrieving revision 1.3
diff -u -r1.3 TransformerImpl.java
--- libraries/javalib/gnu/xml/transform/TransformerImpl.java	4 Dec 2004 21:12:30 -	1.3
+++ libraries/javalib/gnu/xml/transform/TransformerImpl.java	7 Dec 2004 06:55:22 -
@@ -43,6 +43,7 @@
 import java.io.IOException;
 import java.io.OutputStream;
 import java.io.UnsupportedEncodingException;
+import java.io.Writer;
 import java.net.MalformedURLException;
 import java.net.UnknownServiceException;
 import java.net.URL;
@@ -74,9 +75,11 @@
 import org.xml.sax.ext.LexicalHandler;
 import gnu.xml.dom.DomDoctype;
 import gnu.xml.dom.DomDocument;
+import gnu.xml.dom.ls.WriterOutputStream;
 import gnu.xml.xpath.Expr;
 import gnu.xml.xpath.Root;
 
+
 /**
  * The transformation process for a given stylesheet.
  *
@@ -410,6 +413,12 @@
 out = sr.getOutputStream();
 if (out == null)
   {
+	Writer w = sr.getWriter();
+	if (w != null)
+	  out = new WriterOutputStream(w);
+	  }
+	if (out == null)
+	  {
 String systemId = sr.getSystemId();
 try
   {


signature.asc
Description: This is a digitally signed message part
___
kaffe mailing list
[EMAIL PROTECTED]
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe


Re: [kaffe] CVS kaffe (robilad): Use pure java XSLT engine by default

2004-12-07 Thread Mark Wielaard
Hi,

On Tue, 2004-12-07 at 08:59, Mark Wielaard wrote:
 Trying to work around this you will at least have to deal with the
 Writer problem yet again. Sigh. Patch attached.
 
 After that I am currently stuck unfortunately.
 Will try to debug some more tonight.

Chris already made a couple of changes to gnu.xml.dom implementation
(and added the above patch) to GNU JAXP CVS. If you resync with GNU JAXP
and apply the following two patches it starts up again.

First patch is for GNU JAXP.
Handles the case were ReaderInputStream has too much characters.

Second patch is for kaffe.
Eclipse expects a SyncFailedException to have a non-null message,
otherwise their log system just breaks spectacularly.
We probably have a bug here. The SyncFailedException (caused by a
ClosedChannelException) should not be thrown in the first place it
seems.

It is still not perfect. See the ArrayStoreException bug that I posted
earlier and rereading the saved workspace is unfortunately still broken.
But it is already much better then two days ago!

Cheers,

Mark
Index: libraries/javalib/gnu/xml/dom/ls/ReaderInputStream.java
===
RCS file: /cvs/kaffe/kaffe/libraries/javalib/gnu/xml/dom/ls/ReaderInputStream.java,v
retrieving revision 1.3
diff -u -r1.3 ReaderInputStream.java
--- libraries/javalib/gnu/xml/dom/ls/ReaderInputStream.java	6 Dec 2004 09:02:52 -	1.3
+++ libraries/javalib/gnu/xml/dom/ls/ReaderInputStream.java	7 Dec 2004 20:34:57 -
@@ -1,6 +1,6 @@
 /*
  * ReaderInputStream.java
- * Copyright (C) 1999,2000,2001 The Free Software Foundation
+ * Copyright (C) 1999, 2000, 2001, 2004 The Free Software Foundation
  * 
  * This file is part of GNU JAXP, a library.
  *
@@ -54,10 +54,17 @@
   private Reader reader;
   private String encoding;
 
+  // Holds extra spillover data if necessary
+  private byte extra[];
+  private int pos;
+
+  private byte extra_marked[];
+  private int pos_marked;
+
   public ReaderInputStream(Reader reader)
   {
 this.reader = reader;
-encoding = UTF-8;
+this.encoding = UTF-8;
   }
 
   void setEncoding(String encoding)
@@ -68,6 +75,14 @@
   public int read()
 throws IOException
   {
+if (extra != null)
+  {
+	int result = extra[pos];
+	pos++;
+	if (pos = extra.length)
+	  extra = null;
+	return result;
+  }
 return reader.read();
   }
 
@@ -81,13 +96,40 @@
 throws IOException
   {
 int l = len - off;
+if (l == 0)
+  return 0;
+
+if (extra != null)
+  {
+	int available = extra.length - pos;
+	l = available  len ? available : len;
+	System.arraycopy(extra, 0, b, off, l);
+	pos += l;
+	if (pos = extra.length)
+	  extra = null;
+	return l;
+  }
+
 char[] c = new char[l];
 l = reader.read(c, 0, l);
+if (l == -1)
+  return -1;
+
 String s = new String(c, 0, l);
 byte[] d = s.getBytes(encoding);
-// FIXME d.length may be  len
-System.arraycopy(d, 0, b, off, d.length);
-return d.length;
+
+int available = d.length;
+int more = d.length - len;
+if (more  0)
+  {
+	extra = new byte[more];
+	pos = 0;
+	System.arraycopy(d, len, extra, 0, more);
+	available -= more;
+  }
+	
+System.arraycopy(d, 0, b, off, available);
+return available;
   }
 
   public void close()
@@ -103,29 +145,74 @@
 
   public void mark(int limit)
   {
+if (extra != null)
+  {
+	extra_marked = new byte[extra.length];
+	System.arraycopy(extra, 0, extra_marked, 0, extra.length);
+	pos_marked = pos;
+  }
+else
+  extra_marked = null;
+
 try
   {
-reader.mark(limit);
+	// Note that this might be a bit more than asked for.
+	// Because we might also have the extra_marked bytes.
+	// That is fine (and necessary for reset() to work).
+	reader.mark(limit);
   }
-catch (IOException e)
+catch (IOException ioe)
   {
-throw new RuntimeException(e.getMessage());
+	throw new RuntimeException(ioe);
   }
   }
 
   public void reset()
 throws IOException
   {
+extra = extra_marked;
+pos = pos_marked;
+extra_marked = null;
+
 reader.reset();
   }
 
   public long skip(long n)
 throws IOException
   {
-return reader.skip(n);
+long done = 0;
+if (extra != null)
+  {
+	int available = extra.length - pos;
+	done = available  n ? available : n;
+	pos += done;
+	if (pos = extra.length)
+	  extra = null;
+  }
+
+n -= done;
+if (n  0)
+  return reader.skip(n) + done;
+else
+  return done;
+  }
+
+  /**
+   *  Returns conservative number of bytes available without blocking.
+   *  Actual number of bytes that can be read without blocking might
+   *  be (much) bigger.
+   */
+  public int available() throws IOException
+  {
+if (extra != null)
+  return pos - extra.length;
+
+return reader.ready() ? 1 : 0;
   }
 
-  // TODO available
-  
+  public String toString()
+  {
+return ReaderInputStream[ + reader + ,  + encoding

[kaffe] VMSecurityManager.getClassContext() fixlet

2004-12-05 Thread Mark Wielaard
Hi,

ResourceBundle doesn't work correctly anymore when getBundle() is called
from a user defined class loader Class. This is because
VMSecurityManager.getClassContext() doesn't obey its interface:
Hint: you may need to pop off one or more frames: don't include
SecurityManager or VMSecurityManager.getClassContext in your result.  

This patch fixes that:

2004-12-05  Mark Wielaard  [EMAIL PROTECTED]

* libraries/javalib/java/lang/ClassLoader.java
(setSigners): Don't throw Exception.
* libraries/javalib/java/lang/VMSecurityManager.java
(getClassContext): Cleanup returned stack.

This isn't the most efficient way to handle this for ResourceBundle. We
should probably introduce a VMResourceBundle that gives kaffe the option
to do it the efficient way as Helmer once introduced. But this patch
also fixes other potential bugs in the use of the SecurityManager
getClassContext() method.

It also tries to sneak in the patch to make ClassLoader.setSigners() not
throw exceptions for anything that uses signed jar files (Casey his
patch is way better, but I want to get at least something in to make
kaffe CVS usable again.)

Cheers,

Mark
Index: libraries/javalib/java/lang/ClassLoader.java
===
RCS file: /cvs/kaffe/kaffe/libraries/javalib/java/lang/ClassLoader.java,v
retrieving revision 1.33
diff -u -r1.33 ClassLoader.java
--- libraries/javalib/java/lang/ClassLoader.java	14 Nov 2004 17:07:22 -	1.33
+++ libraries/javalib/java/lang/ClassLoader.java	5 Dec 2004 11:41:42 -
@@ -206,8 +206,6 @@
 }
 
 protected final void setSigners(Class cl, Object signers[]) {
-	throw new kaffe.util.NotImplemented(getClass().getName()
-		+ .setSigners());
 }
 
 protected final Class findLoadedClass(String name) {
Index: libraries/javalib/java/lang/VMSecurityManager.java
===
RCS file: /cvs/kaffe/kaffe/libraries/javalib/java/lang/VMSecurityManager.java,v
retrieving revision 1.2
diff -u -r1.2 VMSecurityManager.java
--- libraries/javalib/java/lang/VMSecurityManager.java	7 Apr 2004 21:11:06 -	1.2
+++ libraries/javalib/java/lang/VMSecurityManager.java	5 Dec 2004 11:41:42 -
@@ -58,7 +58,19 @@
* @return an array of the declaring classes of each stack frame
*/
   static Class[] getClassContext() {
-return (ThreadStack.getClassStack());
+Class[] rawStack = ThreadStack.getClassStack();
+int i = 0;
+while (i  rawStack.length
+	(rawStack[i] == ThreadStack.class
+	   || rawStack[i] == VMSecurityManager.class
+	   || rawStack[i] == SecurityManager.class))
+  i++;
+
+Class[] stack = new Class[rawStack.length - i];
+for (int j = 0; j  stack.length; j++, i++)
+  stack[j] = rawStack[i];
+
+return stack;
   }
 
   /**


signature.asc
Description: This is a digitally signed message part
___
kaffe mailing list
[EMAIL PROTECTED]
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe


Re: [kaffe] Turn exception into warning message for ClassLoader.setSigners()

2004-12-04 Thread Mark Wielaard
Hi,

On Sun, 2004-11-14 at 20:40, Casey Marshall wrote:
 Or, why not implement Class.getSigners and Class.setSigners?

That is a very nice idea! Thanks for writing that patch.
Could this patch please go into CVS?
It is a bit of a pain to keep applying workarounds for testing anything
that uses signed jar files.

Thanks,

Mark
Index: kaffe/kaffevm/classMethod.h
===
RCS file: /cvs/kaffe/kaffe/kaffe/kaffevm/classMethod.h,v
retrieving revision 1.68
diff -u -b -B -r1.68 classMethod.h
--- kaffe/kaffevm/classMethod.h	19 Aug 2004 19:29:02 -	1.68
+++ kaffe/kaffevm/classMethod.h	14 Nov 2004 19:39:20 -
@@ -163,6 +163,9 @@
 	/** Stab type ID. */
 	int stab_id;
 #endif
+
+	/** The array of 'signer' objects; usually Certificates. */
+	HArrayOfObject*		signers;
 };
 
 #ifndef __DEFINED_CLASS
Index: libraries/clib/native/Class.c
===
RCS file: /cvs/kaffe/kaffe/libraries/clib/native/Class.c,v
retrieving revision 1.74
diff -u -b -B -r1.74 Class.c
--- libraries/clib/native/Class.c	5 Jul 2004 16:40:53 -	1.74
+++ libraries/clib/native/Class.c	14 Nov 2004 19:39:20 -
@@ -280,16 +280,16 @@
 	return (this-accflags  (ACC_MASK  ~ACC_SUPER));
 }
 
-HArrayOfObject* NONRETURNING
-java_lang_Class_getSigners(struct Hjava_lang_Class* this UNUSED)
+HArrayOfObject*
+java_lang_Class_getSigners0(struct Hjava_lang_Class* this)
 {
-	unimp(java.lang.Class:getSigners unimplemented);
+	return this-signers;
 }
 
-void NONRETURNING
-java_lang_Class_setSigners(struct Hjava_lang_Class* this UNUSED, HArrayOfObject* sigs UNUSED)
+void
+java_lang_Class_setSigners(struct Hjava_lang_Class* this, HArrayOfObject* sigs)
 {
-	unimp(java.lang.Class:setSigners unimplemented);
+	this-signers = sigs;
 }
 
 /*
Index: libraries/javalib/java/lang/Class.java
===
RCS file: /cvs/kaffe/kaffe/libraries/javalib/java/lang/Class.java,v
retrieving revision 1.49
diff -u -b -B -r1.49 Class.java
--- libraries/javalib/java/lang/Class.java	22 Mar 2004 11:24:46 -	1.49
+++ libraries/javalib/java/lang/Class.java	14 Nov 2004 19:39:20 -
@@ -356,7 +356,14 @@
 	return loader.getResourceAsStream(name);
 }
 
-native public Object[] getSigners();
+public Object[] getSigners()
+{
+Object[] signers = getSigners0();
+return signers == null ? null : (Object[]) signers.clone();
+}
+
+private native Object[] getSigners0();
+
 native void setSigners(Object[] signers);
 
 native public Class getSuperclass();
Index: libraries/javalib/java/lang/ClassLoader.java
===
RCS file: /cvs/kaffe/kaffe/libraries/javalib/java/lang/ClassLoader.java,v
retrieving revision 1.32
diff -u -b -B -r1.32 ClassLoader.java
--- libraries/javalib/java/lang/ClassLoader.java	22 Mar 2004 11:24:46 -	1.32
+++ libraries/javalib/java/lang/ClassLoader.java	14 Nov 2004 19:39:20 -
@@ -201,9 +201,8 @@
 	return parent;
 }
 
-protected final void setSigners(Class cl, Object signers[]) {
-	throw new kaffe.util.NotImplemented(getClass().getName()
-		+ .setSigners());
+protected final void setSigners(Class cl, Object[] signers) {
+cl.setSigners (signers);
 }
 
 protected final Class findLoadedClass(String name) {


signature.asc
Description: This is a digitally signed message part
___
kaffe mailing list
[EMAIL PROTECTED]
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe


[kaffe] Another ClassLoader (protection domain) issue

2004-11-14 Thread Mark Wielaard
Hi,

When ClassLoader.defineClass() gets a null ProtectionDomain is should
use the default protection domain. This just moves the  clutch from the
other defineClass() method (that doesn't take a protection domain) into
the one that takes an explicit ProtectionDomain:

2004-11-13  Mark Wielaard  [EMAIL PROTECTED]

* libraries/javalib/java/lang/ClassLoader.java
(defineClass(String,byte[],int,int)): Move
defaultProtectionDomain initialization to...
(defineClass(String,byte[],int,int,ProtectionDomain)): ...here.

Some of the Eclipse class loaders call defineClass() with a null
ProtectionDomain apparently and you can not store those in a HashTable.

Again, switching to the GNU Classpath ClassLoader implementation might
be a good idea.

Cheers,

Mark
Index: libraries/javalib/java/lang/ClassLoader.java
===
RCS file: /cvs/kaffe/kaffe/libraries/javalib/java/lang/ClassLoader.java,v
retrieving revision 1.32
diff -u -r1.32 ClassLoader.java
--- libraries/javalib/java/lang/ClassLoader.java	22 Mar 2004 11:24:46 -	1.32
+++ libraries/javalib/java/lang/ClassLoader.java	14 Nov 2004 11:52:24 -
@@ -165,11 +165,7 @@
 
 protected final Class defineClass(String name, byte data[], int off, int len)
 		throws ClassFormatError {
-	if (defaultProtectionDomain == null) {
-		// XXX FIXME..
-		defaultProtectionDomain = new ProtectionDomain(null, null);
-	}
-	return defineClass(name, data, off, len, defaultProtectionDomain);
+	return defineClass(name, data, off, len, null);
 }
 
 protected final Class defineClass(String name, byte data[], int off,
@@ -177,13 +173,21 @@
 	if (off  0 || len  0 || off + len  data.length) {
 		throw new IndexOutOfBoundsException();
 	}
-	Class clazz = defineClass0(name, data, off, len);
+	Class clazz = null;
+	clazz = defineClass0(name, data, off, len);
 	if (name != null) {
 		loadedClasses.put(name, clazz);
 	}
 	else {
 		loadedClasses.put(clazz.getName(), clazz);
 	}
+	if (pd == null) {
+		if (defaultProtectionDomain == null) {
+			// XXX FIXME..
+			defaultProtectionDomain = new ProtectionDomain(null, null);
+		}
+		pd = defaultProtectionDomain;
+	}
 	protectionDomains.put(clazz, pd);
 	return (clazz);
 }
 
 protected final Class findLoadedClass(String name) {


signature.asc
Description: This is a digitally signed message part
___
kaffe mailing list
[EMAIL PROTECTED]
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe


[kaffe] Turn nio locks unimplemented exceptions into IOExceptions

2004-11-14 Thread Mark Wielaard
Hi,

Apparently some parts of Eclipse 3 do try to use the new io file locks
even when told not to. If the acquiring of the lock throws an
IOException (as in GNU Classpath) everything works regardless. This
patch makees the Kaffe library implementation behave the same as the GNU
Classpath one:

2004-11-14  Mark Wielaard  [EMAIL PROTECTED]

libraries/clib/nio/FileChannelImpl.c
(Java_gnu_java_nio_channels_FileChannelImpl_lock):
Throw IOException.
(Java_gnu_java_nio_channels_FileChannelImpl_unlock):
Likewise.

With this and the other patches I sent you can start playing with
Eclipse 3. It doesn't work flawlessly yet though. Importing GNU
Classpath from CVS for example works, but as soon as you start to edit
or compile anything it breaks down. Clear error messages are thrown on
the console though, so I hope someone finds that helpful to create
further fixes.

Cheers,

Mark

P.S You want to get eclipse-SDK-3.0.1-linux-gtk.zip from
http://download.eclipse.org/ and xalan-j_2_6_0 from
http://www.apache.org/dist/xml/xalan-j/
Unpack them both (for example in /tmp) and then run:
LD_LIBRARY_PATH=plugins/org.eclipse.core.resources.linux_3.0.0/os/linux/x86:plugins/org.eclipse.swt.gtk_3.0.1/os/linux/x86
 PATH=.:/usr/local/kaffe/bin:$PATH ./eclipse -vm kaffe -debug -consoleLog 
-vmargs -ms512M -mx512M   
-Xbootclasspath/p:/tmp/xalan-j_2_6_0/bin/xercesImpl.jar:/tmp/xalan-j_2_6_0/bin/xalan.jar:/tmp/xalan-j_2_6_0/bin/xml-apis.jar
   -Dosgi.locking=none
Index: libraries/clib/nio/FileChannelImpl.c
===
RCS file: /cvs/kaffe/kaffe/libraries/clib/nio/FileChannelImpl.c,v
retrieving revision 1.7
diff -u -r1.7 FileChannelImpl.c
--- libraries/clib/nio/FileChannelImpl.c	21 Sep 2004 20:22:25 -	1.7
+++ libraries/clib/nio/FileChannelImpl.c	14 Nov 2004 12:08:30 -
@@ -491,7 +491,7 @@
 		jlong size UNUSED, jboolean shared UNUSED, 
 		jboolean wait_lock UNUSED)
 {
-  (*env)-ThrowNew(env, (*env)-FindClass(env, java.lang.UnsupportedOperationException), gnu.java.nio.channels.FileChannelImpl.lock);
+  (*env)-ThrowNew(env, (*env)-FindClass(env, java.io.IOException), java.nio.FileChannelImpl.lock(): not implemented);
   return false;
 }
 
@@ -499,7 +499,7 @@
 Java_gnu_java_nio_channels_FileChannelImpl_unlock(JNIEnv *env UNUSED, jobject filechannel UNUSED, jlong position UNUSED,
 		  jlong size UNUSED)
 {
-  (*env)-ThrowNew(env, (*env)-FindClass(env, java.lang.UnsupportedOperationException), gnu.java.nio.channels.FileChannelImpl.lock);
+  (*env)-ThrowNew(env, (*env)-FindClass(env, java.io.IOException), java.nio.FileChannelImpl.unlock(): not implemented);
 }
 
 /*


signature.asc
Description: This is a digitally signed message part
___
kaffe mailing list
[EMAIL PROTECTED]
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe


[kaffe] ArrayStoreException description messages

2004-11-13 Thread Mark Wielaard
Hi,

I was hunting down a ArrayStoreException and was missing a message
telling what exactly went wrong. The following patch adds a message
wherever an ArrayStoreException is thrown in the vm or native code.

2004-11-13  Mark Wielaard  [EMAIL PROTECTED]

* include/errors.h
(ArrayStoreException): Define to take a message.
* kaffe/kaffevm/soft.c
(soft_checkarraystore): Add message to ArrayStoreException.
* libraries/clib/native/System.c
(java_lang_System_arraycopy): Likewise.

Hope this is useful for others.

Cheers,

Mark
Index: include/errors.h
===
RCS file: /cvs/kaffe/kaffe/include/errors.h,v
retrieving revision 1.14
diff -u -r1.14 errors.h
--- include/errors.h	31 Oct 2004 14:35:32 -	1.14
+++ include/errors.h	13 Nov 2004 20:43:45 -
@@ -101,7 +101,7 @@
 #define IllegalMonitorStateException NEW_LANG_EXCEPTION(IllegalMonitorStateException)
 #define NullPointerException NEW_LANG_EXCEPTION(NullPointerException)
 #define ArrayIndexOutOfBoundsException NEW_LANG_EXCEPTION(ArrayIndexOutOfBoundsException)
-#define ArrayStoreException NEW_LANG_EXCEPTION(ArrayStoreException)
+#define ArrayStoreException(M) NEW_LANG_EXCEPTION_MESSAGE(ArrayStoreException, M)
 #define ArithmeticException NEW_LANG_EXCEPTION(ArithmeticException)
 #define AbstractMethodError(M) NEW_LANG_EXCEPTION_MESSAGE(AbstractMethodError, M)
 #define ThreadDeath NEW_LANG_EXCEPTION(ThreadDeath)
Index: kaffe/kaffevm/soft.c
===
RCS file: /cvs/kaffe/kaffe/kaffe/kaffevm/soft.c,v
retrieving revision 1.67
diff -u -r1.67 soft.c
--- kaffe/kaffevm/soft.c	6 Nov 2004 20:02:07 -	1.67
+++ kaffe/kaffevm/soft.c	13 Nov 2004 20:43:45 -
@@ -584,7 +584,16 @@
 soft_checkarraystore(Hjava_lang_Object* array, Hjava_lang_Object* obj)
 {
 	if (obj != 0  soft_instanceof(CLASS_ELEMENT_TYPE(OBJECT_CLASS(array)), obj) == 0) {
-		throwException(ArrayStoreException);
+		Hjava_lang_Throwable* asexc;
+		const char* f = can't store `%s' in `%s';
+		const char *otype = CLASS_CNAME(OBJECT_CLASS(obj));
+		const char *atype = CLASS_CNAME(OBJECT_CLASS(array));
+		char *b;
+		b = checkPtr(KMALLOC(strlen(otype)+strlen(atype)+strlen(f)));
+		sprintf(b, f, otype, atype);
+		asexc = ArrayStoreException(b);
+		KFREE(b);
+		throwException(asexc);
 	}
 }
 
Index: libraries/clib/native/System.c
===
RCS file: /cvs/kaffe/kaffe/libraries/clib/native/System.c,v
retrieving revision 1.59
diff -u -r1.59 System.c
--- libraries/clib/native/System.c	14 Oct 2004 11:12:10 -	1.59
+++ libraries/clib/native/System.c	13 Nov 2004 20:43:48 -
@@ -519,8 +519,28 @@
 	dclass = OBJECT_CLASS(dst);
 
 	/* Must be arrays */ 	 
-	if (!CLASS_IS_ARRAY(sclass) || !CLASS_IS_ARRAY(dclass)) { 	 
-		throwException (ArrayStoreException);
+	if (!CLASS_IS_ARRAY(sclass)) {
+		Hjava_lang_Throwable* asexc;
+		const char* f = source not an array `%s';
+		const char *type = CLASS_CNAME(sclass);
+		char *b;
+		b = checkPtr(KMALLOC(strlen(type)+strlen(f)));
+		sprintf(b, f, type);
+		asexc = ArrayStoreException(b);
+		KFREE(b);
+		throwException(asexc);
+	}
+
+	if(!CLASS_IS_ARRAY(dclass)) { 	 
+		Hjava_lang_Throwable* asexc;
+		const char* f = destination not an array `%s';
+		const char *type = CLASS_CNAME(dclass);
+		char *b;
+		b = checkPtr(KMALLOC(strlen(type)+strlen(f)));
+		sprintf(b, f, type);
+		asexc = ArrayStoreException(b);
+		KFREE(b);
+		throwException(asexc);
 	} 	 
 
 	/* Make sure we'll keep in the array boundaries */ 	 
@@ -567,13 +587,31 @@
 #endif 	 
 	} else {
 		if (CLASS_IS_PRIMITIVE(sclass) || CLASS_IS_PRIMITIVE(dclass)) {
-			throwException (ArrayStoreException);
+		  Hjava_lang_Throwable* asexc;
+		  const char* f = incompatible array types `%s' and `%s';
+		  const char *stype = CLASS_CNAME(sclass);
+		  const char *dtype = CLASS_CNAME(dclass);
+		  char *b;
+		  b = checkPtr(KMALLOC(strlen(stype)+strlen(dtype)+strlen(f)));
+		  sprintf(b, f, stype, dtype);
+		  asexc = ArrayStoreException(b);
+		  KFREE(b);
+		  throwException(asexc);
 		}
 
 		for (; len  0; len -= sizeof(Hjava_lang_Object*)) { 	 
 			Hjava_lang_Object* val = *(Hjava_lang_Object**)in; 	 
 			if (val != 0  !instanceof(dclass, OBJECT_CLASS(val))) { 	 
-throwException (ArrayStoreException);
+			  Hjava_lang_Throwable* asexc;
+			  const char* f = can't store `%s' in array of type `%s';
+			  const char *vtype = CLASS_CNAME(OBJECT_CLASS(val));
+			  const char *atype = CLASS_CNAME(dclass);
+			  char *b;
+			  b = checkPtr(KMALLOC(strlen(vtype)+strlen(atype)+strlen(f)));
+			  sprintf(b, f, vtype, atype);
+			  asexc = ArrayStoreException(b);
+			  KFREE(b);
+			  throwException(asexc);
 			}
 			*(Hjava_lang_Object**)out = val; 	 
 			in += sizeof(Hjava_lang_Object*); 	 


signature.asc
Description: This is a digitally signed message part

[kaffe] Turn exception into warning message for ClassLoader.setSigners()

2004-11-13 Thread Mark Wielaard
Hi,

As reported on the GNU Classpath mailinglist Eclipse (2) doesn't start
up anymore under kaffe since the URLClassLoader now calls
super.setSigners() for classes loaded from signed jar files.

For people that want to play with this anyway it would be nice to change
the exception into a warning message:

2004-11-13  Mark Wielaard  [EMAIL PROTECTED]

* libraries/javalib/java/lang/ClassLoader.java
(setSigners): Print warning.

With this Eclipse 2.1 starts again, but is not completely usable, while
printing lots of warning messages... (an alternative would be to
actually implement setSigners() by adopting the GNU Classpath
ClassLoader implementation).

Cheers,

Mark
Index: libraries/javalib/java/lang/ClassLoader.java
===
RCS file: /cvs/kaffe/kaffe/libraries/javalib/java/lang/ClassLoader.java,v
retrieving revision 1.32
diff -u -r1.32 ClassLoader.java
--- libraries/javalib/java/lang/ClassLoader.java	22 Mar 2004 11:24:46 -	1.32
+++ libraries/javalib/java/lang/ClassLoader.java	13 Nov 2004 21:02:07 -
@@ -202,8 +202,7 @@
 }
 
 protected final void setSigners(Class cl, Object signers[]) {
-	throw new kaffe.util.NotImplemented(getClass().getName()
-		+ .setSigners());
+	System.err.println(WARNING: ClassLoader.setSigners() not implemented);
 }
 
 protected final Class findLoadedClass(String name) {


signature.asc
Description: This is a digitally signed message part
___
kaffe mailing list
[EMAIL PROTECTED]
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe


Re: Re: [kaffe] Misc. serialization patches

2004-11-06 Thread Mark Wielaard
Hi,

On Tue, 2004-11-02 at 19:44, Mattias Rehnberg wrote:
 Guilhem Lavaux [EMAIL PROTECTED] wrote:
  Thanks. Just one question: I don't remember why we should call 
  defaultWrite/ReadObject in Vector. The logic behind this call is the 
  same as if there would not be any write/readObject. BTW, these two 
  patches concerning the core java library have to go to 
  [EMAIL PROTECTED]   As they are two lined I don't think you'll need 
  paperwork. ;)

 Refering to the document at the URL below, 'classdata' will be writen
 on the form 'wrclass objectAnnotation' if it has a write method
 instead of just 'nowrclass'. Since objectAnnotation is a least an
 endBlockData byte, you'll get that byte when you try to deserialize
 the next object in the stream.
 
 I found this when I tried to deserialize a stream of two Vectors
 written with Sun's Java, the first one deserialized ok, but the second
 one gave me a null reference.
 
 http://java.sun.com/j2se/1.4.2/docs/guide/serialization/spec/protocol.html

Thanks for the bug report, fix and for forwarding to GNU Classpath. It
seems correct. And making the write method serialized is a good point
since Vector should be thread-safe. But I don't think we need an
explicit read method since there is no other thread trying to manipulate
the Vector at the same time (since the object stream has the only
reference to it). And luckily we don't need it, if we apply the follow
fix from Andrew which went into libgcj a little while ago:

2004-11-06  Andrew Haley  [EMAIL PROTECTED]

* java/io/ObjectInputStream.java
(readObject): ENDBLOCKDATA is generated if the class has a write
method, not if it has a read method.

This makes the mauve test pass even though we removed the readObject()
method. (Without this patch, removing the read method, while a class has
write object, doesn't work correctly). So I have also done that:

2004-11-06  Mark Wielaard  [EMAIL PROTECTED]

* java/util/Vector.java (readObject): Removed.

Committed to GNU Classpath.

Cheers,

Mark
Index: java/io/ObjectInputStream.java
===
RCS file: /cvsroot/classpath/classpath/java/io/ObjectInputStream.java,v
retrieving revision 1.47
diff -u -r1.47 ObjectInputStream.java
--- java/io/ObjectInputStream.java	11 Oct 2004 13:11:56 -	1.47
+++ java/io/ObjectInputStream.java	6 Nov 2004 14:54:56 -
@@ -324,6 +324,14 @@
 		  boolean oldmode = setBlockDataMode(true);
 		  callReadMethod(readObjectMethod, this.currentObjectStreamClass.forClass(), obj);
 		  setBlockDataMode(oldmode);
+		}
+		  else
+		{
+		  readFields(obj, currentObjectStreamClass);
+		}
+
+		  if (this.currentObjectStreamClass.hasWriteMethod())
+		{
 		  if(dump) dumpElement(ENDBLOCKDATA? );
 		  try
 			{
@@ -346,10 +354,6 @@
 			  if(dump) dumpElementln(no, got IOException);
 			}
 		}
-		  else
-		{
-		  readFields(obj, currentObjectStreamClass);
-		}
 		}
 
 	  this.currentObject = prevObject;
Index: java/util/Vector.java
===
RCS file: /cvsroot/classpath/classpath/java/util/Vector.java,v
retrieving revision 1.21
diff -u -r1.21 Vector.java
--- java/util/Vector.java	3 Nov 2004 17:40:12 -	1.21
+++ java/util/Vector.java	6 Nov 2004 14:54:56 -
@@ -929,18 +929,4 @@
 s.defaultWriteObject();
   }
 
-  /**
-   * Deserializes this object from the given stream.
-   *
-   * @param s the stream to read from
-   * @throws ClassNotFoundException if the underlying stream fails
-   * @throws IOException if the underlying stream fails
-   * @serialData just calls default read function
-   */
-  private void readObject(ObjectInputStream s)
-throws IOException, ClassNotFoundException
-  {
-s.defaultReadObject();
-  }
-
 }


signature.asc
Description: This is a digitally signed message part
___
kaffe mailing list
[EMAIL PROTECTED]
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe


Re: [kaffe] Internal error: caught an unexpected exception.

2004-10-19 Thread Mark Wielaard
Hi,

On Sun, 2004-10-17 at 16:38, Guilhem Lavaux wrote:
 I've just committed the fix for it.

Thanks. I just updated CVS and my programs always seem to just startup
again. And they even seem a little faster! That might just be my joy of
not having to try 5 times to run a program... :)

Cheers,

Mark


signature.asc
Description: This is a digitally signed message part
___
kaffe mailing list
[EMAIL PROTECTED]
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe


Re: [kaffe] undefined symbol: xmlIsBaseCharGroup in kaffeh with ---enable-libxmlj

2004-10-01 Thread Mark Wielaard
Hi,

On Fri, 2004-10-01 at 15:22, Dalibor Topic wrote:
 It seems that configure is picking up the wrong libxmlj version. Could 
 you post the relevant part of output from config.log?

Hope the relevant part is in the attachement.

Thanks,

Mark
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.

It was created by Kaffe Virtual Machine configure 1.1.x-cvs, which was
generated by GNU Autoconf 2.59.  Invocation command line was

  $ ../kaffe/configure --prefix=/usr/local/kaffe --without-kaffe-qt-awt --with-threads=unix-pthreads --with-jikes --enable-libxmlj

## - ##
## Platform. ##
## - ##

hostname = elsschot
uname -m = i686
uname -r = 2.6.8-1-686-smp
uname -s = Linux
uname -v = #1 SMP Mon Sep 13 23:02:39 EDT 2004

/usr/bin/uname -p = unknown
/bin/uname -X = unknown

/bin/arch  = i686
/usr/bin/arch -k   = unknown
/usr/convex/getsysinfo = unknown
hostinfo   = unknown
/bin/machine   = unknown
/usr/bin/oslevel   = unknown
/bin/universe  = unknown

PATH: /usr/local/bin
PATH: /usr/bin
PATH: /bin
PATH: /usr/bin/X11
PATH: /usr/games

[...]

configure:54698: checking for gmp.h
configure:54703: result: yes
configure:54867: result: Information: Using native math library
configure:54882: checking which extensions to include
configure:54902: result: 
configure:54907: checking if malloc debugging is wanted
configure:54928: result: no
configure:54996: checking for xml2-config
configure:55014: found /usr/bin/xml2-config
configure:55027: result: /usr/bin/xml2-config
configure:55035: checking for libxml - version = 2.5.1
configure:55142: gcc -o conftest -g -O2 -Wno-import -Wchar-subscripts -Wcomment -Wformat=2 -Wimplicit-int -Wmain -Wmissing-braces -Wmultichar -Wparentheses -Wsequence-point -Wreturn-type -Wswitch -Wtrigraphs -Wunused-function -Wunused-label -Wunused-parameter -Wunused-variable -Wunused-value -W -Wfloat-equal -Wundef -Wendif-labels -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wcast-align -Wwrite-strings -Wconversion -Wsign-compare -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wmissing-noreturn -Wmissing-format-attribute -Wpacked -Wredundant-decls -Wnested-externs -Winline -Wlong-long -Wdisabled-optimization -pthread -I/usr/include/libxml2  -D_REENTRANT  conftest.c -L/usr/lib -lxml2 -lz -lpthread -lm   5
conftest.c:217: warning: function declaration isn't a prototype
configure:55145: $? = 0
configure:55147: ./conftest
configure:55150: $? = 0
configure:55169: result: yes (version 2.6.11)
configure:55302: checking for xslt-config
configure:55320: found /usr/bin/xslt-config
configure:55333: result: /usr/bin/xslt-config
configure:55341: checking for libxslt - version = 1.0.24
configure:55475: result: yes (version 1.1.8)
configure:55717: checking pthread.h usability
configure:55729: gcc -c -I/usr/include/libxml2 -g -O2 -Wno-import -Wchar-subscripts -Wcomment -Wformat=2 -Wimplicit-int -Wmain -Wmissing-braces -Wmultichar -Wparentheses -Wsequence-point -Wreturn-type -Wswitch -Wtrigraphs -Wunused-function -Wunused-label -Wunused-parameter -Wunused-variable -Wunused-value -W -Wfloat-equal -Wundef -Wendif-labels -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wcast-align -Wwrite-strings -Wconversion -Wsign-compare -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wmissing-noreturn -Wmissing-format-attribute -Wpacked -Wredundant-decls -Wnested-externs -Winline -Wlong-long -Wdisabled-optimization -pthread -I/usr/include/libxml2  -D_REENTRANT conftest.c 5
configure:55735: $? = 0
configure:55739: test -z 
			 || test ! -s conftest.err
configure:55742: $? = 0
configure:55745: test -s conftest.o
configure:55748: $? = 0
configure:55758: result: yes
configure:55762: checking pthread.h presence
configure:55772: gcc -E -I/usr/include/libxml2  -D_REENTRANT conftest.c
configure:55778: $? = 0
configure:55798: result: yes
configure:55833: checking for pthread.h
configure:55840: result: yes
configure:55864: checking whether binary relocation support should be enabled
configure:55884: result: yes when available
configure:55886: checking for linker mappings at /proc/self/maps
configure:55889: result: yes
configure:55893: checking whether everything is installed to the same prefix
configure:55900: result: yes
configure:56055: checking how to run the C preprocessor
configure:56173: result: gcc -E
configure:56197: gcc -E -I/usr/include/libxml2  -D_REENTRANT conftest.c
configure:56203: $? = 0
configure:56235: gcc -E -I/usr/include/libxml2  -D_REENTRANT conftest.c
conftest.c:211:28: ac_nonexistent.h: No such file or directory
configure:56241: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| 
| #define PACKAGE_NAME Kaffe Virtual Machine
| #define PACKAGE_TARNAME kaffe
| #define PACKAGE_VERSION 1.1.x-cvs
| #define PACKAGE_STRING Kaffe Virtual Machine 1.1.x-cvs
| #define PACKAGE_BUGREPORT [EMAIL 

Re: [kaffe] undefined symbol: xmlIsBaseCharGroup in kaffeh with ---enable-libxmlj

2004-10-01 Thread Mark Wielaard
Hi,

On Fri, 2004-10-01 at 15:45, Mark Wielaard wrote:
 On Fri, 2004-10-01 at 15:22, Dalibor Topic wrote:
  It seems that configure is picking up the wrong libxmlj version. Could 
  you post the relevant part of output from config.log?
 
 Hope the relevant part is in the attachement.

Sigh. It probably is useless since I just build after doing that
configure and it all builds fine now. Sorry for the noise. I am not sure
what went wrong yesterday though.

Cheers,

Mark


signature.asc
Description: This is a digitally signed message part
___
kaffe mailing list
[EMAIL PROTECTED]
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe


[kaffe] undefined symbol: xmlIsBaseCharGroup in kaffeh with ---enable-libxmlj

2004-09-30 Thread Mark Wielaard
Hi,

When configuring with --enable-libxmlj I get:

make[3]: Leaving directory `/home/mark/src/kaffe-obj/kaffe/kaffeh'
../kaffe/kaffeh/kaffeh -classpath ../../kaffe/libraries/javalib/Klasses.jar.bootstrap 
-o java_lang_Object.h java/lang/Object
../kaffe/kaffeh/kaffeh: relocation error: /usr/lib/libxslt.so.1: undefined symbol: 
xmlIsBaseCharGroup

So I am forced to configure with --disable-libxmlj.

Any idea what is happening here?

Thanks,

Mark


signature.asc
Description: This is a digitally signed message part
___
kaffe mailing list
[EMAIL PROTECTED]
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe


[kaffe] Buglet in Jar for -C

2004-08-14 Thread Mark Wielaard
Hi,

When building gcjwebplugin and using kaffe jar I noticed that when -C
was used the first directory name was always stripped of files in
subdirectories of the directory of the -C argument.

The following patch fixes it. This should be an if-else since in the if
branch tmp is made absolute so if the first if statement succeeds the
second if statement also (erronously) succeeds.

Cheers,

Mark

* libraries/javalib/kaffe/tools/jar/Jar.java
(createFileLookupTable): Don't double check File.isAbsolute().

--- libraries/javalib/kaffe/tools/jar/Jar.java  27 Apr 2004 18:25:19
- 1.6
+++ libraries/javalib/kaffe/tools/jar/Jar.java  14 Aug 2004 20:33:07
-
@@ -494,9 +494,7 @@

if (! tmp.isAbsolute()) {
tmp = new XPFile(parent,files[i]);
-   }
-
-   if (tmp.isAbsolute()) {
+   } else {
// Find and remove the first '/' in the short name
String name = files[i];
int index = name.indexOf('/');



signature.asc
Description: This is a digitally signed message part
___
kaffe mailing list
[EMAIL PROTECTED]
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe


Re: [kaffe] kaffe/jikes makes incompatible code for jdk1.3? (was: [Detelin Batchovski] Bug#262897: libservlet2.3-java_4.0-4: Failed start Tomcat4 after upgrade)

2004-08-05 Thread Mark Wielaard
Hi,

On Wed, 2004-08-04 at 23:48, Arnaud Vandyck wrote:
 I built javax.servlet with kaffe/jikes/ant1.6, but when running with
 jre1.3, it seems there is a problem... log is attached.

Seems the runtime that is used doesn't support newer versions of class
file byte code (Unsupported major.minor version 48.0).
You are probably using a modern version of jikes that by default
generates this newer byte code. As far as I know all free runtimes in
main have been updated already to support it. But you can probably
downgrade the class byte code version used by giving jikes a -target 1.2
argument (see the jikes documentation).

 Debian:
 
   If the problem could not be solved soon, it means we'll have to build
   servlet with non-free JDK again!
 
   It means libservlet2.3-java back to contrib!

Why? It isn't a bug with any of the free main runtimes. And it seems a 
upgrade of the non-free proprietary runtime that this person is using
would solve the issue.

 I'll wait two or three days before uploading a servlet compiled with
 non-free jdk back to contrib, hoping kaffe guys can resolve this (but I
 assume it's not trivial!).
 
 Comments?

If you really need to, why not create a new
libservlet2.3-java-nonfree-old-runtime package and keep the current
package in main since it seems to work fine with the free runtimes?

Cheers,

Mark


signature.asc
Description: This is a digitally signed message part
___
kaffe mailing list
[EMAIL PROTECTED]
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe


Re: [kaffe] Swing/AWT merge from GNU Classpath done

2004-07-25 Thread Mark Wielaard
Hi,

On Sun, 2004-07-25 at 02:39, Ito Kazumitsu wrote:
 But another problem that jikes dumps core while compiling library
 files is still there.
 
 My jikes is Version 1.19.  Do we need another version of jikes?
 
 Before the big change around Swing/AWT,  the library files could be
 successfully compiled with jikes 1.19.

The version of jikes that I use is 1.21.
I haven't tried with other versions.

Cheers,

Mark


signature.asc
Description: This is a digitally signed message part
___
kaffe mailing list
[EMAIL PROTECTED]
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe


Re: [kaffe] Swing/AWT merge from GNU Classpath done

2004-07-24 Thread Mark Wielaard
On Fri, 2004-07-23 at 09:05, Guilhem Lavaux wrote:
 Dalibor Topic wrote:
  I've merged in the Swing/AWT code from GNU Classpath (before the last 
  resync they had with gcj java-gui brach, so expect another tiny (600k) 
  patch soon ;)

You guys are awesome!
It now works out of the box for me with:
--with-jikes --without-kaffe-qt-awt --prefix=/usr/local/kaffe

I tried to create a patch for that last tiny diff.

This adds the following files (all.files):
java/awt/image/ByteLookupTable.java
java/awt/image/Kernel.java
java/awt/image/LookupTable.java
java/awt/image/ShortLookupTable.java
javax/swing/Spring.java
javax/swing/SpringLayout.java
javax/swing/plaf/basic/BasicTextFieldUI.java
javax/swing/plaf/basic/BasicToolBarSeparatorUI.java
javax/swing/text/DefaultHighlighter.java
javax/swing/text/FieldView.java
javax/swing/text/Highlighter.java
javax/swing/text/LayeredHighlighter.java
javax/swing/text/PlainView.java
javax/swing/text/TabExpander.java
javax/swing/text/TabableView.java

And remove these two files (all.files):
javax/swing/text/CharacterIterator.java
javax/swing/text/PlainEditorKit.java

I did get it to work for me locally, but that was after a lot of
fighting against the build system... :{

In the end I send the whole patch and ChangeLog to Guilhem hoping he
could properly adapt it to the kaffe build process.

It does seem to work and the latest Swing examples like the
activityboard do look veery nice and kaffe.

  * since classpath's awt need pthreads, pthreads are now the default 
  threading system. That's going to be fun on non-linux systems, I assume.

 *bug queue full please submit later* ;)

Note that GNU Classpath AWT should be able to work with any java-like
threading system when --enable-portable-native-sync is used. This tells
gdk to use a locking mechanism that uses normal Object.wait()/notify()
primitives. This is what the jrvm hackers want to use (although it
doesn't actually work for them yet). See the VM threading Model section
in the GNU Classpath VM Integration Guide:
http://www.gnu.org/software/classpath/docs/vmintegration.html#SEC7

Cheers,

Mark


signature.asc
Description: This is a digitally signed message part
___
kaffe mailing list
[EMAIL PROTECTED]
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe


Re: [kaffe] Swing/AWT merge from GNU Classpath done

2004-07-24 Thread Mark Wielaard
Hi,

On Sun, 2004-07-25 at 00:11, Ito Kazumitsu wrote:
 But the new problem is that, even though I use --without-kaffe-qte-awt,
 configure checks QTDIR and fails.

Note that this configure option got renamed to --without-kaffe-qt-awt

Cheers,

Mark


signature.asc
Description: This is a digitally signed message part
___
kaffe mailing list
[EMAIL PROTECTED]
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe


Re: [kaffe] Swing/AWT merge from GNU Classpath done

2004-07-23 Thread Mark Wielaard
Hi,

On Fri, 2004-07-23 at 00:06, Ito Kazumitsu wrote:
 So I had to explicitly add
  
 --without-classpath-gtk-awt
 --without-kaffe-qte-awt
 
 to get configure working.
 
 And make failed while compiling kaffe/kaffe/main.c:
 
main.c:389: `LIBDIR' undeclared (first use in this function)
 

I had to specify --with-jikes
The default is to use kjc, but that gives:

javax/swing/JDesktopPane.java:87: error:Cannot find class
AccessibleJComponent [JLS 8]

And --without-kaffe-qte-awt otherwise I get:

checking QTDIR... configure: error: *** QTDIR must be defined,
or --with-qtdir option given

I didn't have to give --without-classpath-gtk-awt that just seemed to
work.

But I am now stuck at:

../../../../../kaffe/libraries/clib/awt/qt/tlk.cc:20:28: qapplication.h: No such file 
or directory
../../../../../kaffe/libraries/clib/awt/qt/tlk.cc:23:33: qpaintdevicemetrics.h: No 
such file or directory
In file included from ../../../../../kaffe/libraries/clib/awt/qt/tlk.cc:25:
../../../../../kaffe/libraries/clib/awt/qt/toolkit.h:50: error: syntax error
   before `*' token
../../../../../kaffe/libraries/clib/awt/qt/toolkit.h:51: error: syntax error
   before `*' token
../../../../../kaffe/libraries/clib/awt/qt/toolkit.h:52: error: syntax error
   before `*' token
../../../../../kaffe/libraries/clib/awt/qt/toolkit.h:53: error: syntax error
   before `*' token
../../../../../kaffe/libraries/clib/awt/qt/toolkit.h:207: error: syntax error
   before `*' token
../../../../../kaffe/libraries/clib/awt/qt/toolkit.h:208: error: syntax error
   before `*' token
../../../../../kaffe/libraries/clib/awt/qt/tlk.cc:31: error: syntax error
   before `*' token
../../../../../kaffe/libraries/clib/awt/qt/tlk.cc:49: error: `QtMsgType' was
   not declared in this scope
../../../../../kaffe/libraries/clib/awt/qt/tlk.cc:49: error: parse error before
   `,' token
../../../../../kaffe/libraries/clib/awt/qt/tlk.cc: In function `void
   qtawtMessageOutput(...)':
../../../../../kaffe/libraries/clib/awt/qt/tlk.cc:51: error: `type' undeclared
   (first use this function)
../../../../../kaffe/libraries/clib/awt/qt/tlk.cc:51: error: (Each undeclared
   identifier is reported only once for each function it appears in.)
../../../../../kaffe/libraries/clib/awt/qt/tlk.cc:52: error: `QtDebugMsg'
   undeclared (first use this function)
../../../../../kaffe/libraries/clib/awt/qt/tlk.cc:53: error: `msg' undeclared
   (first use this function)
../../../../../kaffe/libraries/clib/awt/qt/tlk.cc:55: error: `QtWarningMsg'
   undeclared (first use this function)
../../../../../kaffe/libraries/clib/awt/qt/tlk.cc:58: error: `QtFatalMsg'
   undeclared (first use this function)
../../../../../kaffe/libraries/clib/awt/qt/tlk.cc: In function `jboolean
   Java_java_awt_Toolkit_tlkInit(JNIEnv*, _jclass*, _jstring*)':
../../../../../kaffe/libraries/clib/awt/qt/tlk.cc:71: error: `
   qInstallMsgHandler' undeclared (first use this function)
../../../../../kaffe/libraries/clib/awt/qt/tlk.cc:76: error: `qapp' undeclared
   (first use this function)
../../../../../kaffe/libraries/clib/awt/qt/tlk.cc:76: error: parse error before
   `(' token
../../../../../kaffe/libraries/clib/awt/qt/tlk.cc: In function `jint
   Java_java_awt_Toolkit_tlkGetResolution(JNIEnv*, _jclass*)':
../../../../../kaffe/libraries/clib/awt/qt/tlk.cc:115: error: `
   QPaintDeviceMetrics' undeclared (first use this function)

Cheers,

Mark


signature.asc
Description: This is a digitally signed message part
___
kaffe mailing list
[EMAIL PROTECTED]
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe


[kaffe] Re: eclipse-jdt: kaffe cannot be used as a standard VM in eclipse

2004-02-29 Thread Mark Wielaard
Hi,

(CCed [EMAIL PROTECTED] to get this archived since I don't have time at
this moment to work on it.)

On Tue, 2004-02-24 at 15:35, Jens Lehmann wrote:
 Thanks for your information. I immediately compiled kaffe1.1.4 (Debian 
 currently has only 1.1.3) and found out that it works with eclipse 2.1.2 
 without needing to change anything! However it stops working, if I use 
 eclipse 3.0M6 or 3.0M7. See the Debian bug report for some more information:
 
 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=234518

Bah :{ Had the same problem with gcj/gij for newer 3.0 (= M6) builds.
Something must have been changed in the way Eclipse detects JDKs.

 Just to avoid confusion: I don't want to run
 eclipse with (on top of) kaffe, but only add it as an additional JRE in
 eclipse.

Understood. But what Eclipse (= M5 at least) does is actually running
the found 'java' binary on a little program and examining its output to
determine whether or not to accept the location as a standard JDK.
Unfortunately Eclipse doesn't give very good debug output when it finds
something unexpected. I actually had to hack Eclipse to make it more
verbose when trying to make it accept gcj/gij and.or kaffe as standard
JDK.

See Eclipse CVS:
http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/

The JikesRVM hackers told me that they solved this issue by creating a 
customized launcher plugin. That way they do not need to alias stuff to
the name java or anything like that, and they even have a bit of
customization (like optionally choosing RVM_ROOT and RVM_BUILD from
within Eclipse).

It might be nice if someone looks at their plugin as a model for
creating standardized free (GNU Classpath based) VM plugin support for
Eclipse.  It is in the rvm/src/tools/eclipse/plugin2 directory in their
CVS archive, and I believe the relevant classes in Eclipse are stuff
like AbstractVMInstall and AbstractVMInstallType.

Browse CVS at:
http://www-124.ibm.com/developerworks/oss/cvs/jikesrvm/rvm/src/tools/eclipse/plugin2/

Cheers,

Mark


signature.asc
Description: This is a digitally signed message part


Re: [kaffe] [FW] Bug#230132: kaffe: JarException while running jar

2004-02-01 Thread Mark Wielaard
Hi,

On Fri, 2004-01-30 at 17:24, Arnaud Vandyck wrote:
 Is this a known bug?
 [...]
 jar cf ../lib/babel-0.8.8.jar
 gov/llnl/babel/backend/c/ArrayMethods.class [and a ton of other classes]
 java.util.jar.JarException: Attributes cannot be called 'Name'
at java.util.jar.Manifest.write_attribute_entry (Manifest.java:404)

Yep. And fixed by:

2003-12-28  Casey Marshall [EMAIL PROTECTED]

   * libraries/javalib/kaffe/tools/jar/Jar.java
   (createJar): Removed extra Name attribute.

Cheers,

Mark


signature.asc
Description: This is a digitally signed message part


Re: [kaffe] Re: bugwatcher problems

2004-01-31 Thread Mark Wielaard
Hi,

On Thu, 2004-01-29 at 20:42, Dalibor Topic wrote:
 Ean Schuessler wrote:
  As I recall (Dalibor will need to correct me here) forking a process with 
  pthreads just plain doesn't work. The details escape me at this point other 
  than the complexities of managing the relationship between the thread and the 
  forked process hadn't really been worked out. Of course, this is going back 
  to when I talked to Tim Wilkinson about the problem. For all I know, its 
  fixed.
  
  Is it fixed? If not, enabling pthreads will break many, many Ant builds.
 
 Frankly, I don't know, I haven't hacked on kaffe's pthreads threading, 
 so I can't claim to know much about it :(
 
 The last thread on pthreads and kaffe I found [1] mentions that stuff 
 like wait  run works fine with java threads under pthreads. The 
 FAQ.pthreads still says that exec/fork/wait doesn't work, so it may mean 
 Runtime.exec, I guess.

That is easy to check. Attached RuntimeExec test program works fine on
kaffe compiled with either unix-jthreads or unix-pthreads. And I think
we would have noticed if other things were really broken under pthreads.
Since it enables working with any JNI library that does blocking in
native mode (which doesn't work with jthreads) for larger frameworks
like java-gnome or eclipse I think it got at least some testing that it
doesn work for non-trivial things. And enabling it by default would help
us expose anything that might be broken.

 [1] http://www.kaffe.org/pipermail/kaffe/2002-June/039992.html

Cheers,

Mark
import java.io.*;

public class RuntimeExec
{
  public static void main(String[] args) throws Exception
  {
Process p = Runtime.getRuntime().exec(/bin/cat);
OutputStream out = p.getOutputStream();
Writer writer = new OutputStreamWriter(out);
writer.write(Hello World!\n);
writer.write(Have a nice day!\n);
writer.close();
out.close();

InputStream in = p.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
String s = reader.readLine();
while (s != null)
  {
	System.out.println(cat says:  + s);
	s = reader.readLine();
  }
  }
}


signature.asc
Description: This is a digitally signed message part


[kaffe] Re: bugwatcher problems

2004-01-22 Thread Mark Wielaard
Hi,

On Wed, 2004-01-14 at 12:32, Mark Howard wrote:
   I was hoping that some Debian Java experts might be able to help out
 with a couple of problems with bugwatcher (debbuggtk package).
 
 1)
   Bugwatcher works with gij or blackdown java
   My wrapper scripts just call /usr/bin/java, since both of the above
   create this. This has two problems:
   - my programs don't work if java alternative is set to something else

I got it working (more or less, there are some little issues that I have
to look into) with kaffe. But not with the kaffe package from Debian.

The Debian kaffe package is compiled with unix-jthreads, but gtk
(java-gnome) needs pthread support. When you recompile kaffe configured
--with-threads=unix-pthreads then you can play with bugwatcher like you
can with gij. (Thread system unix-pthread is also needed to run e.g.
Eclipse with swt/gtk bindings).

What do the kaffe developers think. Should kaffe default to pthreads on
systems that support it? 

Cheers,

mark


signature.asc
Description: This is a digitally signed message part


[kaffe] java.util.regex patch

2004-01-08 Thread Mark Wielaard
Hi,

I am preparing for inclusion of java.util.regex and gnu.regexp in GNU
Classpath. I just added some test cases to Mauve. I need the following
patches to make them work correctly with kaffe. Hope they make sense.

2004-01-08  Mark Wielaard  [EMAIL PROTECTED]

* java/util/regex/Matcher.java (find): Check whether or not we are
stuck at the same position after a successful match and bump position
of possible.
* java/util/regex/Pattern.java (split(CharSequence, int)): Use
ArrayList, not Vector. Make sure we match at most limit -1 times, when
limit  0. Check whether or not to add emtpty strings.

They are only against the java.util.regex wrappers, I haven't looked at
gnu.regexp proper yet. I have some more Mauve tests that I will check in
later, but gnu.regexp doesn't seem to support octal, hex and unicode
escapes yet so most of them fail.

Cheers,

Mark
Index: libraries/javalib/java/util/regex/Matcher.java
===
RCS file: /cvs/kaffe/kaffe/libraries/javalib/java/util/regex/Matcher.java,v
retrieving revision 1.3
diff -u -r1.3 Matcher.java
--- libraries/javalib/java/util/regex/Matcher.java	13 Oct 2003 03:10:04 -	1.3
+++ libraries/javalib/java/util/regex/Matcher.java	8 Jan 2004 11:17:50 -
@@ -34,7 +34,25 @@
 }
 
 public boolean find() {
-	return find(position);
+	boolean first = (match == null);
+	match = pattern.getRE().getMatch(input, position);
+	if (match != null) {
+	int endIndex = match.getEndIndex();
+	// Are we stuck at the same position?
+	if (!first  endIndex == position) {
+		match = null;
+		// Not at the end of the input yet?
+		if (position  input.length() - 1) {
+		position++;
+		return find(position);
+		} else {
+		return false;
+		}
+	}
+	position = endIndex;
+	return true;
+	}
+	return false;
 }
 
 public boolean find(int start) {
Index: libraries/javalib/java/util/regex/Pattern.java
===
RCS file: /cvs/kaffe/kaffe/libraries/javalib/java/util/regex/Pattern.java,v
retrieving revision 1.3
diff -u -r1.3 Pattern.java
--- libraries/javalib/java/util/regex/Pattern.java	13 Oct 2003 03:10:04 -	1.3
+++ libraries/javalib/java/util/regex/Pattern.java	8 Jan 2004 11:17:50 -
@@ -3,7 +3,7 @@
 import gnu.regexp.RE;
 import gnu.regexp.RESyntax;
 import gnu.regexp.REException;
-import java.util.Vector;
+import java.util.ArrayList;
 
 public final class Pattern implements Serializable {
 
@@ -85,36 +85,58 @@
 
 public String[] split(CharSequence input, int limit) {
 	Matcher matcher = new Matcher(this, input);
-	Vector list = new Vector();
+	ArrayList list = new ArrayList();
+	int empties = 0;
 	int count = 0;
 	int start = 0;
 	int end;
-	while (matcher.find()) {
+	boolean matched;
+	while (matched = matcher.find()  (limit = 0 || count  limit - 1)) {
 	++count;
 	end = matcher.start();
 	if (start == end) {
-		if (limit != 0) {
-		list.addElement();
-		}
+		empties++;
 	} else {
+		while (empties--  0) {
+		list.add();
+		}
 		String text = input.subSequence(start, end).toString();
-		list.addElement(text);
+		list.add(text);
 	}
 	start = matcher.end();
-	if (count == limit) break;
 	}
-	// last token at end
-	if (count != limit) {
-	String text = input.subSequence(start, input.length()).toString();
-	if (!(.equals(text)  (limit == 0))) {
-		list.addElement(text);
+
+	// We matched nothing.
+	if (!matched  count == 0) {
+		return new String[] { input.toString() };
+	}
+
+	// Is the last token empty?
+	boolean emptyLast = (start == input.length());
+
+	// Can/Must we add empties or an extra last token at the end?
+	if (list.size()  limit || limit  0 || (limit == 0  !emptyLast)) {
+	if (limit  list.size()) {
+		int max = limit - list.size();
+		empties = (empties  max) ? max : empties;
+	}
+	while (empties--  0) {
+		list.add();
 	}
 	}
-	if (list.size() == 0) {
-		list.addElement(input.toString());
+
+	// last token at end
+	if (limit != 0 || (limit == 0  !emptyLast)) {
+	String t = input.subSequence(start, input.length()).toString();
+	if (.equals(t)  limit == 0) {
+		// Don't add.
+	} else {
+		list.add(t);
+	}
 	}
+
 	String[] output = new String [list.size()];
-	list.copyInto(output);
+	list.toArray(output);
 	return output;
 }
 }


signature.asc
Description: This is a digitally signed message part


[kaffe] kaffe/kaffeh/support.c patchlet

2004-01-08 Thread Mark Wielaard
Hi,

I had the following in my tree for a long time. I cannot remember
whether it actually fixed something for me, but it looks like a good
idea.

2004-01-08  Mark Wielaard  [EMAIL PROTECTED]

* kaffe/kaffeh/support.c (kaffeh_findClass): Close jar file and
continue when getDataJarFile(0 returns NULL.

Cheers,

Mark
Index: kaffe/kaffeh/support.c
===
RCS file: /cvs/kaffe/kaffe/kaffe/kaffeh/support.c,v
retrieving revision 1.34
diff -u -r1.34 support.c
--- kaffe/kaffeh/support.c	3 Nov 2003 05:57:42 -	1.34
+++ kaffe/kaffeh/support.c	8 Jan 2004 11:04:58 -
@@ -911,6 +911,10 @@
 			}
 
 			buf = getDataJarFile(jfile, jentry);
+if (buf == NULL) {
+closeJarFile(jfile);
+continue;
+}
 
 			classFileInit(hand, buf, jentry-uncompressedSize, CP_ZIPFILE);
 


signature.asc
Description: This is a digitally signed message part


[kaffe] Re: Bug Status of Kaffe

2003-12-27 Thread Mark Wielaard
Hi,

On Thu, 2003-12-25 at 03:12, Ben Burton wrote:
   #210716 jython causes kaffe to fail with assert error
  
   ,
   | Version: 1:1.1.1-1
   |
   |  After removing the JNI lines from jython shell script (see
   |  issue #207998) kaffe dies with kaffe-bin: machine.c:620:
   |  installMethodCode: Assertion `e-start_pc = e-end_pc'
   |  failed.
 [...]
 But this crash is not a debian-specific bug.  The bug here is that jython
 causes kaffe to crash on startup *after* all of the required classes have
 been found - it has nothing to do with the library path.
 [..]
 This is where this crash comes up.  Once you have kaffe finding all of the
 JNI libraries that it should (including the ones used with jython and the
 kaffe bootstrap classes), it then crashes with 'e-start_pc = e-end_pc'
 failed.
 
 So this is definitely a kaffe issue, not a debian-specific issue or a JNI
 path issue.

Seen the same crash when using the CVS view from Eclipse 3.0M4 on kaffe.
http://kaffe.org/pipermail/kaffe/2003-October/044318.html
I just removed the assert.

The problem is actually the byte code generated by the compiler since it
should not generate an exception table entry whose start_pc is smaller
(or equal - the assert is actually wrong) to end_pc.

The attached patch turns the assert into a printf WARNING which can help
debug the byte code. In my eclipse case it says:
WARNING start_pc=164661273 end_pc=164661236 in
org/eclipse/team/internal/core/streams/TimeoutInputStream.runThread(()V)
WARNING start_pc=164661775 end_pc=164661236 in
org/eclipse/team/internal/core/streams/TimeoutInputStream.runThread(()V)
WARNING start_pc=161990681 end_pc=161990644 in
org/eclipse/team/internal/core/streams/TimeoutOutputStream.runThread(()V)
WARNING start_pc=161991183 end_pc=161990644 in
org/eclipse/team/internal/core/streams/TimeoutOutputStream.runThread(()V)

(Also included the other things needed to patch/hack around for eclipse)

Cheers,

Mark

Index: kaffe/kaffevm/jni.c
===
RCS file: /cvs/kaffe/kaffe/kaffe/kaffevm/jni.c,v
retrieving revision 1.97
diff -u -r1.97 jni.c
--- kaffe/kaffevm/jni.c	3 Nov 2003 05:29:31 -	1.97
+++ kaffe/kaffevm/jni.c	27 Dec 2003 20:21:35 -
@@ -3024,6 +3024,12 @@
 	return (ret);
 }
 
+static void*
+Kaffe_GetPrimitiveArrayCritical(JNIEnv* env, jarray arr, jbool* iscopy)
+{
+  return (Kaffe_GetByteArrayElements(env, (jbyteArray)arr, iscopy));
+}
+
 static jchar*
 Kaffe_GetCharArrayElements(JNIEnv* env, jcharArray arr, jbool* iscopy)
 {
@@ -3159,6 +3165,12 @@
 }
 
 static void
+Kaffe_ReleasePrimitiveArrayCritical(JNIEnv* env, jbyteArray arr, jbyte* elems, jint mode)
+{
+  Kaffe_ReleaseByteArrayElements(env, (jbyteArray)arr, (jbyte*)elems, mode);
+}
+
+static void
 Kaffe_ReleaseCharArrayElements(JNIEnv* env, jcharArray arr, jchar* elems, jint mode)
 {
 	BEGIN_EXCEPTION_HANDLING_VOID();
@@ -4425,8 +4437,8 @@
 	Kaffe_GetJavaVM,
 	NULL,
 	NULL,
-	NULL,
-	NULL,
+	Kaffe_GetPrimitiveArrayCritical,
+	Kaffe_ReleasePrimitiveArrayCritical,
 	NULL,
 	NULL,
 	NULL,
Index: kaffe/kaffevm/jit3/machine.c
===
RCS file: /cvs/kaffe/kaffe/kaffe/kaffevm/jit3/machine.c,v
retrieving revision 1.44
diff -u -r1.44 machine.c
--- kaffe/kaffevm/jit3/machine.c	2 Nov 2003 17:51:59 -	1.44
+++ kaffe/kaffevm/jit3/machine.c	27 Dec 2003 20:21:36 -
@@ -611,7 +611,12 @@
 			e-start_pc = getInsnPC(e-start_pc, codeInfo, code) + (uintp)code-code;
 			e-end_pc = getInsnPC(e-end_pc, codeInfo, code) + (uintp)code-code;
 			e-handler_pc = getInsnPC(e-handler_pc, codeInfo, code) + (uintp)code-code;
-			assert (e-start_pc = e-end_pc);
+			if (e-start_pc  e-end_pc)
+			  printf(WARNING start_pc=%d end_pc=%d in %s.%s(%s)\n,
+ e-start_pc, e-end_pc,
+ CLASS_CNAME(meth-class),
+ meth-name-data,
+ METHOD_SIGD(meth));
 		}
 	}
 


Re: [kaffe] Jar files in 1.1.3?

2003-12-27 Thread Mark Wielaard
Hi,

On Thu, 2003-12-11 at 16:18, Casey Marshall wrote:
  Ito == Ito Kazumitsu [EMAIL PROTECTED] writes:
 
 Ito In message Re: [kaffe] Jar files in 1.1.3?  on 03/12/10, Casey
 Ito Marshall [EMAIL PROTECTED] writes:
 
  The problem is with kaffe.tools.jar.Jar. Line 1053.
 
 Ito I have not studied kaffe/tools/jar/Jar.java yet.  But I could
 Ito reproduce the error.  It seems that this error occurs when the
 Ito files to be archived are not directories but ordinary files.
 
 To me, it looks as though Jar.java was written for a different version
 of the java.util.jar classes (Classpath's versions were recently
 merged, right?) and they explictly put the Name attribute.
 
 Classpath's Manifest class writes Name attributes automatically, so
 I think Kaffe's Jar is wrong.
 
 The fix is trivial, and attached.

I believe Casey his analysis is correct. If that doesn't fix the problem
then please let me know (I wrote java.util.jar a long time ago so it
could certainly be a bug in that code, but I believe it is indeed a bug
in the Jar tool).

Cheers,

Mark


signature.asc
Description: This is a digitally signed message part


[kaffe] Re: GregorianCalendar fixes

2003-12-26 Thread Mark Wielaard
Hi,

On Sat, 2003-11-29 at 20:15, Dalibor Topic wrote:
 after the discussion on the Classpath mailing list, I'd say it looks good ;)
 
 Mark, can I check it into Classpath's CVS with an updated ChangeLog entry?

I'll check this in while I am resyncing with kaffe.
There is only one functional change left between kaffe and classpath in
computeFields():

@@ -606,7 +611,7 @@
calculateDay(++day, gregorian);
   }
  
-fields[DAY_OF_WEEK_IN_MONTH] = (fields[DAY_OF_MONTH] + 12) / 7;
+fields[DAY_OF_WEEK_IN_MONTH] = (fields[DAY_OF_MONTH] + 6) / 7;
  
 // which day of the week are we (0..6), relative to getFirstDayOfWeek
 int relativeWeekday = (7 + fields[DAY_OF_WEEK] - getFirstDayOfWeek()) % 7;

Haven't looked at who is right here, so won't merge.

 2003-11-29  Guilhem Lavaux [EMAIL PROTECTED]
 
   * java/util/GregorianCalendar.java (computeTime):
   12:00 midnight is AM and 12:00 noon is PM.
 [...]
  --- java/util/GregorianCalendar.java.orig   Thu Nov 27 15:35:08 2003
  +++ java/util/GregorianCalendar.javaThu Nov 27 15:48:25 2003
  @@ -402,7 +402,11 @@
 {
  hour = fields[HOUR];
   if (isSet[AM_PM]  fields[AM_PM] == PM)
  - hour += 12;
  + if (hour != 12) /* not Noon */
  +hour += 12;
  +   /* Fix the problem of the status of 12:00 AM (midnight). */
  +   if (isSet[AM_PM]  fields[AM_PM] == AM  hour == 12)
  + hour = 0;
 }
   
   int minute = isSet[MINUTE] ? fields[MINUTE] : 0;

Cheers,

Mark


signature.asc
Description: This is a digitally signed message part


[kaffe] gjdoc, libxmlj and kaffe

2003-12-06 Thread Mark Wielaard
Hi,

Played a bit with kaffe, gjdoc and libxmlj.
It works mostly. But is difficult to setup since gjdoc and libxmlj
haven't seen real releases so you have to get them from CVS. But savnnah
is still down so that is kind of hard. For now I have put up my local
copies at http://www.klomp.org/mark/classpath/ so people can play with
it a bit.

Making libxmlj should be easy with just a make  make install (maybe a
configure first).

Dalibor said that he could use the ant build.xml file for gjdoc, but the
Makefile is broken. I just did a:
$ cd src
$ mkdir classes
$ jikes-classpath -d classes `find * -name *.java`
$ cd classes
$ fastjar cf ../../gjdoc.jar *

Then to produce API documentation for all of GNU Classpath do something
like:
$ cd ~/src/classpath
$ find java javax -type d ! -regex .*CVS ! -regex .*doc-files | tr '/' '.' | grep -v 
java.awt.dnd.peer | grep -v java.awt.peer  /tmp/packages
$ cd /tmp
$ mkdir doc
$ cd doc
$ LD_LIBRARY_PATH=/usr/local/libxmlj/lib time kaffe -mx256M -classpath 
/home/mark/src/gjdoc/lib/gjdoc.jar:/home/mark/src/gjdoc/src/resources:/home/mark/src/libxmlj
 gnu.classpath.tools.gjdoc.Main -noemailwarn -sourcepath /home/mark/src/classpath -d . 
`cat /tmp/packages`

Starting out with just one package (like java.lang) will give you
results quicker, see obligatory screenshot:
http://www.klomp.org/mark/classpath/Screenshot-4.png

Doing the whole thing seems to go OK at first. But after two hours of
happily generating HTML files it gives:

Generating HTML Documentation for java.awt.geom.QuadCurve2D...
Generating HTML Documentation for java.awt.geom.QuadCurve2D.Double...
I/O error : flush error
java.lang.ArrayIndexOutOfBoundsException
   at gnu.xml.libxmlj.transform.LibxsltStylesheet.libxsltTransform 
(LibxsltStylesheet.java)
   at gnu.xml.libxmlj.transform.LibxsltStylesheet.transform 
(LibxsltStylesheet.java:112)
   at gnu.xml.libxmlj.transform.TransformerImpl.transform (TransformerImpl.java:235)
   at gnu.classpath.tools.doclets.xmldoclet.doctranslet.DocTranslet.apply 
(DocTranslet.java:198)
   at gnu.classpath.tools.doclets.xmldoclet.Driver.instanceStart (Driver.java:1094)
   at gnu.classpath.tools.doclets.xmldoclet.Driver.start (Driver.java:232)
   at java.lang.reflect.Method.invoke0 (Method.java)
   at java.lang.reflect.Method.invoke (Method.java:255)
   at gnu.classpath.tools.gjdoc.Main.startDoclet (Main.java:408)
   at gnu.classpath.tools.gjdoc.Main.start (Main.java:612)
   at gnu.classpath.tools.gjdoc.Main.main (Main.java:480)
ERROR: java.lang.ArrayIndexOutOfBoundsException
Done.
1068 warnings
7537.15user 26.38system 2:07:27elapsed 98%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (1199major+30340minor)pagefaults 0swaps

Of course just generating api documentation for just this one class or
just the java.awt.geom package works fine. So the only way to reproduce
this seems to be generating the whole thing again and wait another 2
hours. Sigh.

The I/O error : flush error seems to come from kaffe/kaffevm/jar.c
getDataJarFile(). A quick look indicates that the result of this
function is not checked in for example kaffe/kaffeh/support.c, but I
don't know if that is related.

Cheers,

Mark


signature.asc
Description: This is a digitally signed message part


Re: [kaffe] [OffTopic] Savannah has been compromised

2003-12-04 Thread Mark Wielaard
Hi,

On Thu, 2003-12-04 at 00:54, Dalibor Topic wrote:
 since I haven't received any news on this yet, and many people here 
 probably contribute to one project on Savannah or another, I just wanted 
 to spread the news that savannah.gnu,org has been compromised. cracked. 
 broken in. just like debian last week.

Thanks. I tried to send the attached message to the classpath
mailinglist about it. But it didn't arrive so probably the mailinglist
at gnu.org are also down :{

I CCed the gcj mailinglist to make sure most of our contributors know
about this issue. I'll try to keep you up to date when I know more.

Be careful out there.
And please check your machines for any irregularities.

Cheers,

Mark
---BeginMessage---
Hi all,

If you were wondering why CVS doesn't work anymore or why the last
classpath 0.07 release hasn't gone up on the gnu.org servers this is the
reason. From http://savannah.gnu.org/statement.html:

On December 1st, 2003, we discovered that the Savannah system,
which is maintained by the Free Software Foundation and provides
CVS and development services to the GNU project and other Free
Software projects, was compromised at circa November 2nd, 2003.

The compromise seems to be of the same nature as the recent
attacks on Debian project servers; the attacker seemed to
operate identically. However, this incident was distinctly
different from the modus operandi we found in the attacks on our
FTP server in August 2003. We have also confirmed that an
unauthorized party gained root access and installed a root-kit
(SucKIT) on November 2nd, 2003.

In the interest of continuing cooperation and in helping to
improve security for all essential Free Software infrastructure,
and despite important philosophical differences, we are working
closely with Debian project members to find the perpetrators and
to secure essential Free Software infrastructure for the future.
We hope to have future joint announcements that discuss a
unified strategy for addressing these problems.

For the moment, we are installing replacement hardware for the
Savannah system, and we will begin restoring the Savannah
software this week. Initially, there will be some security
related changes which may be inconvenient for our developers. We
will try to ease these as we find secure ways to do so. We are
in particular researching ways to ensure secured authentication
of the source code trees stored on the system.

We will send more detailed announcements about efforts to verify
the authenticity of the source code hosted on Savannah, and how
the community can help in that effort once we've brought the
system back online.

We hope to have at least minimal services back up by Friday 5
December 2003.

[...insert some strong negative statement here, not appropriate for
little children...]

As soon as I have more information I will let you know.

Meanwhile please all check your own machines carefully.
Some help for people running Debian GNU/Linux to do this can be found
at: http://www.wiggy.net/debian/developer-securing/
(It specifically describes what debian developers should do, but is
useful information for everybody.)

Mark


signature.asc
Description: This is a digitally signed message part
---End Message---


[kaffe] Re: GregorianCalendar fixes

2003-11-28 Thread Mark Wielaard
Hi,

On Fri, 2003-11-28 at 04:39, Stephen Crawley wrote:
 Mark Wielaard [EMAIL PROTECTED] wrote:
  On Fri, 2003-11-28 at 02:03, Stephen Crawley wrote:
   The over-arching principle for Mauve testcases is that the behavior of
   Sun's Java implementations is the gold standard for conformance
   testing.
  
  I don't agree. We should not create Mauve tests to validate some
  proprietary library implementation.

 I don't understand what you are saying here.

Sorry, was way past my bedtime. Maybe I should have taken more time
explain. I was mainly disturbed by the suggestion that some proprietary
implementation should be pointed out as the gold standard and that if
that same implementation decides not to fix bugs then it isn't a bug.

There are lots of examples of bugs in some widely used implementations.
Mauve points those out. For example floating point string
representation, or solving the solutions for some quadratic equation and
very possible representations of date and time. I haven't checked Ito
his test yet, but I hope you agree that even though some implementation
might claim say that a certain month has 35 days then it is obviously a
bug and not according to spec. What you seem to want is a list of bugs
in certain implementations according to Mauve and an explanation why
that bug is or isn't solved in that implementation. We don't provide
that. Even though it might be useful for some of our users.

   We are not building Mauve
 tests in order to validate Sun's implementation.  Rather, we are
 building it to check that other implementations (including Classpath)
 conform to the accepted specification for Java.  The ultimate
 specification for Java is (according to Sun) the behaviour of Sun's
 reference implementations.
 
 Are you suggesting that there is a more appropriate or more definitive
 specification of Java?  If so, what is it, and why is it more
 appropriate or definitive?  

No. Since Sun says what Java is and claims trademark on products which
carry that name. It is their definitive specification: The thing that
according to Sun is Java. So by definition Mauve isn't The Java
Testsuite.

But there are publicly published documents and books about the libraries
and what Mauve can claim is that it is a testsuite that follows these
publicly published specification as closely as possible without favoring
any actual implementation.

Mauve is a reference test suite that everybody can use and study and
might even adapt (to better reflect their understanding of the spec) and
publish its own version, which validates differences between core
library implementations. In that sense Mauve is its own specification.

And for our users it is certainly very useful to use Mauve to compare
implementations against the currently dominant proprietary
implementation to see if another implementation can be used to easily
migrate away from the that implementation.

Cheers,

Mark


signature.asc
Description: This is a digitally signed message part


[kaffe] Re: java/text/SimpleDateFormat.java (compileFormat)

2003-11-28 Thread Mark Wielaard
Hi,

On Thu, 2003-11-27 at 23:25, Ito Kazumitsu wrote:

 2003-11-28  Ito Kazumitsu  [EMAIL PROTECTED]
 
   * java/text/SimpleDateFormat.java (compileFormat): 
   isLowerCase and isUpperCase allow too many characters.
   Just use = 'A'  = 'Z' || = 'a'  = 'z'.

Thanks a lot for looking after this.
I have committed it so that it can make the 0.07 release.

BTW about releasing 0.07. I am to tired to roll it now and do all the
checks to make sure it is perfect. So I will take a long sleep first.
Then make the final test release in the morning. Take a walk on the
beach and if nobody complained release it for real in the afternoon.

Michael Koch also had some Socket cleanups that he tested with gcj that
should go in 0.07 if possible.

Cheers,

Mark


signature.asc
Description: This is a digitally signed message part


[kaffe] Re: GregorianCalendar fixes

2003-11-25 Thread Mark Wielaard
Hi,

On Mon, 2003-11-24 at 23:57, Ito Kazumitsu wrote:

 2003-11-25  Ito Kazumitsu  [EMAIL PROTECTED]
 
   * java/util/GregorianCalendar.java (getLinearTime): Avoid counting
   the leap day of the leap year twice.
 (computeFields): First week of month is 1 not 0.

Thanks (I made it real sentences - starting with a capital).
Looked some more at the code and I see now that the the first change was
inside a if (time = gregorianCutover) so it now makes more sense to me.
And the second change seems correct given the above remark.
I'll commit it in Classpath.

Thanks for your work (and patience before it was accepted),

Mark


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


[kaffe] null string concatenation and kjc/kaffe bug

2003-11-22 Thread Mark Wielaard
Hi,

Compiling the following with kjc and then running it with kaffe gives a
NullPointerException. But it should give nulla.

public class Test {
  static String something;
  public static void main(String[] args) throws Exception {
something += 'a';
System.out.println(something);
  }
}

Found by Arnaud while he was debugging gjdoc.
See also
https://savannah.gnu.org/patch/?func=detailpatchpatch_id=2334group_id=508

Cheers,

Mark


signature.asc
Description: This is a digitally signed message part


[kaffe] GregorianCalendar fixes

2003-11-21 Thread Mark Wielaard
Hi,

Since I am not a GregorianCalendar expert I was hoping that someone
could review the following patch which I have in my tree from Ito
Kazumitsu. He and I wrote a couple of mauve test cases which are fixed
by this and I see no new failures. But people didn't seem to be
completely comfortable with it back in Augustus/September. It would be
nice if we could create even more test cases to make sure that nothing
else breaks and to have a ChangeLog entry for this patch (Ito?). Don't
really have have time to learn about Calendars so I am just re-posting
this patch in the hope that someone can review it.

Thanks,

Mark
Index: java/util/GregorianCalendar.java
===
RCS file: /cvsroot/classpath/classpath/java/util/GregorianCalendar.java,v
retrieving revision 1.20
diff -u -r1.20 GregorianCalendar.java
--- java/util/GregorianCalendar.java	12 Aug 2003 13:41:27 -	1.20
+++ java/util/GregorianCalendar.java	21 Nov 2003 16:11:56 -
@@ -1,5 +1,5 @@
 /* java.util.GregorianCalendar
-   Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
+   Copyright (C) 1998, 1999, 2001, 2002, 2003 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -264,8 +264,10 @@
 	//
 	// The additional leap year factor accounts for the fact that
 	// a leap day is not seen on Jan 1 of the leap year.
+	// And on and after the leap day, the leap day has already been
+	// included in dayOfYear. 
 	int gregOffset = (year / 400) - (year / 100) + 2;
-	if (isLeapYear (year, true)  dayOfYear  31 + 29)
+	if (isLeapYear (year, true))
 	  --gregOffset;
 	time += gregOffset * (24 * 60 * 60 * 1000L);
   }
@@ -604,12 +606,12 @@
 	calculateDay(++day, gregorian);
   }
 
-fields[DAY_OF_WEEK_IN_MONTH] = (fields[DAY_OF_MONTH] + 6) / 7;
+fields[DAY_OF_WEEK_IN_MONTH] = (fields[DAY_OF_MONTH] + 12) / 7;
 
 // which day of the week are we (0..6), relative to getFirstDayOfWeek
 int relativeWeekday = (7 + fields[DAY_OF_WEEK] - getFirstDayOfWeek()) % 7;
 
-fields[WEEK_OF_MONTH] = (fields[DAY_OF_MONTH] - relativeWeekday + 6) / 7;
+fields[WEEK_OF_MONTH] = (fields[DAY_OF_MONTH] - relativeWeekday + 12) / 7;
 
 int weekOfYear = (fields[DAY_OF_YEAR] - relativeWeekday + 6) / 7;
 


signature.asc
Description: This is a digitally signed message part


[kaffe] Re: Graphical Algorithm documents

2003-11-19 Thread Mark Wielaard
Hi,

On Mon, 2003-11-17 at 20:16, S. Meslin-Weber wrote:
 I stumbled on some interesting algorithm documents today and thought 
 others implementing low-level primitives in Java (Graphics and/or Java2D) 
 might find them useful. I emailed the author and we are welcome to use the 
 documents at:
 
 http://www.magic-software.com/Documentation/
 
 Hope some other than I will find this useful!

Thanks for that info. It looks very useful.
It is of course OK to read about those algorithms and create an
implementation of them for inclusion in GNU Classpath. But please
contact me before you use/copy any code snippets. The commercial-use
restrictions in their license look confusing to me and when we want to
use it in GNU Classpath (which may be used commercially) we certainly
have to contact the author about it (and check with fsf-licensing).

Thanks,

Mark paranoia maintainer Wielaard


signature.asc
Description: This is a digitally signed message part


[kaffe] Re: Resynced with GNU Classpath

2003-10-30 Thread Mark Wielaard
Hi,

On Sat, 2003-10-25 at 20:32, Kaffe CVS wrote:
 Log:
 Resynced with GNU Classpath
 
 Members: 
   ChangeLog:1.1716-1.1717 
   libraries/javalib/gnu/java/nio/FileLockImpl.java:1.1-1.2 
 [...]
   libraries/javalib/javax/naming/spi/NamingManager.java:1.4-1.5 
 
 Index: kaffe/ChangeLog
 diff -u kaffe/ChangeLog:1.1716 kaffe/ChangeLog:1.1717
 --- kaffe/ChangeLog:1.1716Sat Oct 25 12:52:41 2003
 +++ kaffe/ChangeLog   Sat Oct 25 18:30:20 2003
 @@ -1,3 +1,25 @@
 +2003-10-25  Dalibor Topic [EMAIL PROTECTED]
 +
 + * libraries/javalib/gnu/java/nio/FileLockImpl.java,
 [...]
 +libraries/javalib/javax/naming/spi/NamingManager.java:
 + Resynced with GNU Classpath.

If possible then having the actual ChangeLog entries from the Classpath
ChangeLog file would be nice to have. That makes it much more easy to
see exactly which changes did and didn't go into Kaffe from Classpath.
Or any other method to quickly see exactly which version/date these
files are from would help track differences in the code base.

Cheeers,

Mark


signature.asc
Description: This is a digitally signed message part


[kaffe] Eclipse 3.0M4 on kaffe

2003-10-30 Thread Mark Wielaard
Hi,

The following quick whacky hacks make Eclipse 3.0M4 work on my Debian
GNU/Linux machine with gtk+ 2.2 installed.

You will need eclipse-SDK-3.0M4-linux-gtk.zip from:
http://download2.eclipse.org/downloads/drops/S-3.0M4-200310101454/

First replace java/net/URLen/decode.java with the versions from GNU
Classpath.

The apply the attached quick hack that implements provides two (fake)
implementations for Get/ReleasePrimitiveArrayCritical JNI functions.

Create a kaffe build which is configured with
--with-threads=unix-pthreads

After installation replace the kaffe/bin/java and kaffe/jre/bin/java
scripts with the attached versions.
(Eclipse needs some extra memory, doesn't like the default
java.vm.version=1.3 and uses some strange system property to get at the
bootstrap classes, finally our FileLock isn't implemented yet and throws
an Error but Eclipse looks at the last system property to know whether
or not to use it.)

The unzip the eclipse build you downloaded above.
And start it with something like:
PATH=/usr/local/kaffe/bin:$PATH 
LD_LIBRARY_PATH=/usr/local/kaffe/lib:/tmp/eclipse/plugins/org.eclipse.swt.gtk_3.0.0/os/linux/x86
 ./eclipse

Lots of things work and with the File-New Project and File-New Class
you get some wizard which should guide you through a simple Hello
World type program which you should be able to run with the menu
Run-Run As-Java Application to give you something like:
http://www.klomp.org/mark/classpath/Screenshot-Kaffe-Eclipse3.png

When you are finished playing look into workspace/.metadata/.log to see
what breaks. And then fix it :)

Cheers,

Mark
Index: include/jni.h
===
RCS file: /cvs/kaffe/kaffe/include/jni.h,v
retrieving revision 1.23
diff -u -r1.23 jni.h
--- include/jni.h	25 Oct 2003 12:52:39 -	1.23
+++ include/jni.h	30 Oct 2003 21:25:13 -
@@ -294,8 +294,8 @@
 	
 	void* reserved12; // GetStringRegion
 	void* reserved13; // GetStringUTFRegion
-	void* reserved14; // GetPrimitiveArrayCritical
-	void* reserved15; // ReleasePromitiveArrayCritical
+	void* (*GetPrimitiveArrayCritical)	(JNIEnv*, jarray, jboolean);
+	void  (*ReleasePrimitiveArrayCritical)	(JNIEnv*, jarray, void*, jint);
 	void* reserved16; // GetStringCritical
 	void* reserved17; // ReleaseStringCritical
 	void* reserved18; // NewWeakGlobalRef
Index: kaffe/kaffevm/jni.c
===
RCS file: /cvs/kaffe/kaffe/kaffe/kaffevm/jni.c,v
retrieving revision 1.95
diff -u -r1.95 jni.c
--- kaffe/kaffevm/jni.c	25 Sep 2003 10:06:15 -	1.95
+++ kaffe/kaffevm/jni.c	30 Oct 2003 21:25:14 -
@@ -3024,6 +3024,12 @@
 	return (ret);
 }
 
+static void*
+Kaffe_GetPrimitiveArrayCritical(JNIEnv* env, jarray arr, jbool* iscopy)
+{
+  return (Kaffe_GetByteArrayElements(env, (jbyteArray)arr, iscopy));
+}
+
 static jchar*
 Kaffe_GetCharArrayElements(JNIEnv* env, jcharArray arr, jbool* iscopy)
 {
@@ -3159,6 +3165,12 @@
 }
 
 static void
+Kaffe_ReleasePrimitiveArrayCritical(JNIEnv* env, jbyteArray arr, jbyte* elems, jint mode)
+{
+  Kaffe_ReleaseByteArrayElements(env, (jbyteArray)arr, (jbyte*)elems, mode);
+}
+
+static void
 Kaffe_ReleaseCharArrayElements(JNIEnv* env, jcharArray arr, jchar* elems, jint mode)
 {
 	BEGIN_EXCEPTION_HANDLING_VOID();
@@ -4425,8 +4437,8 @@
 	Kaffe_GetJavaVM,
 	NULL,
 	NULL,
-	NULL,
-	NULL,
+	Kaffe_GetPrimitiveArrayCritical,
+	Kaffe_ReleasePrimitiveArrayCritical,
 	NULL,
 	NULL,
 	NULL,
#! /bin/sh
# Pretend Kaffe is Java
prefix=/usr/local/kaffe
exec_prefix=${prefix}
exec ${exec_prefix}/bin/kaffe -mx 256M -Djava.vm.version=1.3 -Dsun.boot.class.path=/usr/local/kaffe/jre/lib/rt.jar -Dorg.eclipse.core.runtime.ignoreLockFile=true ${1+$@}



signature.asc
Description: This is a digitally signed message part


[kaffe] Some simple java.util.zip changes

2003-10-26 Thread Mark Wielaard
Hi,

Helmer found a nasty bug in the Classpath readManifest() implementation.
Which is now fixed in Classpath and for which there is a new test in
Mauve.

When I make the following simple changes to kaffe java/util/zip then I
can just drop in Classpath java/util/jar and all kaffe tests and the jar
mauve tests succeed with that.

Cheers,

Mark
Index: ChangeLog
===
RCS file: /cvs/kaffe/kaffe/ChangeLog,v
retrieving revision 1.1718
diff -u -r1.1718 ChangeLog
--- ChangeLog	25 Oct 2003 20:00:11 -	1.1718
+++ ChangeLog	26 Oct 2003 15:05:14 -
@@ -1,3 +1,11 @@
+2003-10-26  Mark Wielaard [EMAIL PROTECTED]
+
+	* libraries/javalib/java/util/zip/ZipFile.java
+	(ZipFile(File f, int mode)): New (dummy) method.
+	* libraries/javalib/java/util/zip/ZipInputStream.java
+	(getNextEntry): Use createZipEntry().
+	(createZipEntry): Implement.
+
 2003-10-25  Dalibor Topic [EMAIL PROTECTED]
 
 	* FAQ/FAQ.automake: Recommend autmake 1.7.8.
Index: libraries/javalib/java/util/zip/ZipFile.java
===
RCS file: /cvs/kaffe/kaffe/libraries/javalib/java/util/zip/ZipFile.java,v
retrieving revision 1.11
diff -u -r1.11 ZipFile.java
--- libraries/javalib/java/util/zip/ZipFile.java	29 Sep 2003 23:50:26 -	1.11
+++ libraries/javalib/java/util/zip/ZipFile.java	26 Oct 2003 15:05:14 -
@@ -51,6 +51,12 @@
 	this(f.getPath());
 }
 
+public ZipFile(File f, int mode) throws ZipException, IOException
+{
+	// XXX ignoring mode for now
+	this(f);
+}
+
 public void close() throws IOException
 {
 	if (zip != null) {
Index: libraries/javalib/java/util/zip/ZipInputStream.java
===
RCS file: /cvs/kaffe/kaffe/libraries/javalib/java/util/zip/ZipInputStream.java,v
retrieving revision 1.17
diff -u -r1.17 ZipInputStream.java
--- libraries/javalib/java/util/zip/ZipInputStream.java	24 Oct 2003 16:42:11 -	1.17
+++ libraries/javalib/java/util/zip/ZipInputStream.java	26 Oct 2003 15:05:15 -
@@ -63,7 +63,7 @@
   readFully(extra, 0, extra.length);
 
   // Setup new entry
-  entry = new ZipEntry(UTF8.decode(nameBuf));
+  entry = createZipEntry(UTF8.decode(nameBuf));
   entry.version = get16(zheader, LOCVER);
   entry.flag= get16(zheader, LOCFLG);
 
@@ -211,8 +211,7 @@
   }
 
   protected ZipEntry createZipEntry(String name) {
-	// XXX FIXME what is this supposed to do?
-	return null;
+	return new ZipEntry(name);
   }
 }
 


signature.asc
Description: This is a digitally signed message part


Re: [kaffe] loadClass() vs. loadClass()

2003-09-19 Thread Mark Wielaard
Hi,

On Fri, 2003-09-19 at 16:23, Helmer Krämer wrote:
 Whenever kaffe has to load some class
 using a user defined loader, it invokes the two parameter
 form of loadClass.
 [...]
 The simple and quick fix would be to modify kaffe so
 it calls the loadClass(String) method of a user defined
 class loader instead of the loadClass(String, boolean)
 one. In theory, this should not break existing code since
 loadClass(String) simply calls the other method. I don't
 know whether this is the right way to fix this, though.

I think this is the correct fix. See:
http://java.sun.com/docs/books/vmspec/2nd-edition/html/ConstantPool.doc.html#79448

1 Since JDK release 1.1 the Java virtual machine invokes the
loadClass method of a class loader in order to cause it to load
a class or interface. The argument to loadClass is the name of
the class or interface to be loaded. There is also a
two-argument version of the loadClass method. The second
argument is a boolean that indicates whether the class or
interface is to be linked or not. Only the two-argument version
was supplied in JDK release 1.0.2, and the Java virtual machine
relied on it to link the loaded class or interface. From JDK
release 1.1 onward, the Java virtual machine links the class or
interface directly, without relying on the class loader.

You should also call the one argument ClassLoader.loadClass(String)
method for Class.forName(), but I cannot quickly find where in the spec
this is defined.

Cheers,

Mark


signature.asc
Description: This is a digitally signed message part


Re: [kaffe] Serialization

2003-08-14 Thread Mark Wielaard
Hi,

On Tue, 2003-08-12 at 01:13, Brian Jones wrote:

 Sweet, when could this go into Classpath?

Guilhem already send me a patch and as soon as the paperwork is done it
will almost certainly go immediately (I will review it, but it looks
pretty good). And Guilhem already checked in this new code (the GNU
Classpath ObjectStream classes with his fixes into Kaffe so people can
already play with it if they want.

Cheers,

Mark


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


Re: [kaffe] System.loadLibrary() should look in /lib and /usr/lib

2003-07-27 Thread Mark Wielaard
Hi,

On Sun, 2003-07-27 at 13:15, Dalibor Topic wrote:
 sorry for me taking so long to reply, I'm now going though my mailbiox folder
 with patches and suggestion, and noticed I hadn't replied.

  When doing a System.loadLibrary() kaffe doesn't look into the standard
  /lib and /usr/lib directories for the library. But gives:
  
  java.lang.UnsatisfiedLinkError: libGTKJava: not found
  Adding its directory to LD_LIBRARY_PATH may help.
  
  And indeed adding /usr/lib (where the library is installed) to
  LD_LIBRARY_PATH seems to work, but it would be more convenient if kaffe
  would automatically load standard libraries (from /lib and /usr/lib).
 
 I wrote a test case:
 
 public class LibLoad {
 public static void main(String [] args) {
 String lpath = System.getProperty(java.library.path);
 System.out.println(lpath);
 System.loadLibrary(args[0]);
 }
 }
 
 [...]

 that's the way it works in kaffe, too.
 
 Given that standard library paths are system dependant (i.e. there is no /lib
 on Win32 ;), I think we should keep doing as JDK does, and use LD_LIBRARY_PATH.
 Unfortunately, the Java Class Library books only specify the search order on
 Win32.

Debian has now defined a standard directory for packages containing JNI
libraries: /usr/lib/jni
(see http://www.debian.org/doc/packaging-manuals/java-policy/c36.html).

It is the job of the Debian okage maintainer to make sure that the VM
works that way and the above LD_LIBRARY_PATH trick seems to make it
possible. Haven't checked yet if the new kaffe package in Debian already
does this. But it might be a good idea to see how this works out for
Debian and maybe adopt this policy (searching for JNI libraries in
/usr/lib/jni by default) for systems that have such a directory.

Cheers,

Mark

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


StackTraceElements (Was: [kaffe] Notes on kaffe (GNU Classpathintegration) todo items)

2003-07-14 Thread Mark Wielaard
Hi,

On Mon, 2003-07-14 at 10:19, Helmer Krämer wrote:
 i've got a working version of this in my local tree
 (jetty for jdk 1.4 was working fine with it), but
 somehow didn't get around to commit it :( Could you
 probably post a patch of your implementation so I
 can fix and commit it?

I got rid of the crashes, but there are still some regression test
failures (some are just textual since the output of the stack trace is
different, but some seem real).

The attached patch merges Throwable.java from GNU Classpath which is
used as is and adds a Kaffe specific VMThrowable class that holds the
backtrace and provides the actual StackTraceElements when needed.

I have to admit that I actually did not really design it but just copied
bits and pieces of existing code of kaffevm. And C isn't really my
language of choice. So if you could do a review of what I have now that
would be great.

Here is a ChangeLog entry for the attached (gzipped) patch:

2003-07-14  Mark Wielaard  [EMAIL PROTECTED]

* include/Makefile.am (INSTALL_DERIVED_HDRS): Add
java_lang_VMThrowable.h and java_lang_StackTraceElement.h.
* include/Makefile.in: Regenerated.
* kaffe/kaffevm/baseClasses.h (javaLangVMThrowable): New extern
struct.
(javaLangStackTraceElement): Likewise.
* kaffe/kaffevm/baseClasses.h (javaLangVMThrowable): New base class.
(javaLangVMThrowable): Likewise.
(initBaseClasses): loadStaticClass new base classes.
* kaffe/kaffevm/exception.c (throwException): Get and initialize
vmstate.
(nullException): Create vmstate for exception.
(unhandledException): Use new Throwable-detailedMessage field name.
(floatingException): Create vmstate for exception.
* kaffe/kaffevm/stackTrace.c (getLineNumber): New method.
(getStackTraceElements): New method.
(printStackTrace): Get backtrace from vmState.
* libraries/clib/native/System.c (java_lang_System_debugE): Use new
Throwable-detailedMessage field name.
* libraries/clib/native/Throwable.c
(java_lang_Throwable_fillInStackTrace): Removed.
(java_lang_Throwable_printStackTrace0): Likewise.
(java_lang_VMThrowable_fillInStackTrace): New method.
(java_lang_VMThrowable_getStackTrace): Likewise.
* libraries/javalib/java/lang/Throwable.java: Replaced with Classpath
version.
* libraries/javalib/java/lang/VMThrowable.java: New class.
* libraries/javalib/bootstrap.classlist: Add VMThrowable.
* libraries/javalib/essential.files: Add StackTaceElement and
VMThrowable.
* libraries/javalib/Klasses.jar.bootstrap: Regenerated.

With this patch the attached program gives the following stack trace:

java.lang.NullPointerException
   at Throw.testNull (Throw.java:17)
   at Throw.main (Throw.java:5)
 
java.lang.ArithmeticException
   at Throw.testDivZero (Throw.java:30)
   at Throw.main (Throw.java:7)
 
java.lang.Exception: b confused
   at Throw.a (Throw.java:58)
   at Throw.testChain (Throw.java:42)
   at Throw.main (Throw.java:9)
Caused by: java.lang.Exception: d broken
   at Throw.c (Throw.java:75)
   at Throw.b (Throw.java:64)
   at Throw.a (Throw.java:54)
   ...2 more
Caused by: java.lang.Exception: fatal error
   at Throw.e (Throw.java:86)
   at Throw.d (Throw.java:81)
   at Throw.c (Throw.java:71)
   ...4 more

BTW how do you keep track of copyrights? I added a new copyright header
to every file I changed, but looking through the rest of the sources
this seems not customary.

Cheers,

Mark
public class Throw
{
  public static void main(String[] args)
  {
testNull();
System.out.println();
testDivZero();
System.out.println();
testChain();
  }

  private static void testNull()
  {
try
  {
	Object o = null;
	o.toString();
  }
catch (Throwable t)
  {
	t.printStackTrace();
  }
  }

  private static void testDivZero()
  {
try
  {
	int i = 0;
	int j = 42/i;
  }
catch (Throwable t)
  {
	t.printStackTrace();
  }
  }

  private static void testChain()
  {
try
  {
	a();
  }
catch(Exception e)
  {
	e.printStackTrace();
  }
  }

  static void a() throws Exception
  {
try
  {
	b();
  }
catch(Exception e)
  {
	throw new Exception(b confused, e);
  }
  }

  static void b() throws Exception
  {
   c();
  }

  static void c() throws Exception
  {
try
  {
	d();
  }
catch(Exception e)
  {
	throw new Exception(d broken, e);
  }
  }

  static void d() throws Exception
  {
e();
  }
  
  static void e() throws Exception
  {
throw new Exception(fatal error);
  }
}



throwable.patch.gz
Description: GNU Zip compressed data


[kaffe] Notes on kaffe (GNU Classpath integration) todo items

2003-07-13 Thread Mark Wielaard
Hi,

Dalibor Topic from the Kaffe OpenVM project and me saw each other last
week when we went to the Libre Software Meeting. Attached are the (very
raw) notes I made on what things could be imported from GNU Classpath
into the kaffe library (and some other random notes). They might also be
interesting to the GNU Classpath hackers to see where/how the code ends
up in another free software project.

Cheers,

Mark
Notes LSM meeting, Friday Jul 11, 2003 (Dalibor Topic, Mark Wielaard)

=== Things that could be imported from GNU Classpath into kaffe ===

- Complete GNU Classpath Collection import.
  Importing AbstractMap makes some mauve tests fail.
 - Goal to run japitools.
 - And import even more classpath classes that depend on collection stuff.

- java.util.zip
  How to modularize to allow multiple implementations to coexist?
  (See what classes are different between classpath/gcj)
  Deflater/Inflater...
  Dalibor has still some outstanding bug reports against Classpath
  java.util.zip.
  - Goal automatically use pure java implementation if zlib isn't
 available. (This is currently already done for the BigInteger
 class, kaffe has a native implementation, but falls back to the
 non-native GNU Classpath version if the gmp library is not installed.)

- Serialization ObjectIn/OutputStreams.
  Completely different implementations kaffe/GNU Classpath
  Some Mauve failures with Classpath/gcj code.
  Some other/same failures with current kaffe code.
  See also Eclipse startup stream failures.
  - Goal Jython installer to run.
  - Eclipse installer without ObjectStream failures

- StackTraceElement stuff (pure java Throwable).  Mark has some
  code hacked up. It compiles... but crashes in spectacular ways.
  - Goal log4j (used by either JBOSS or Tomcat) uses XMLized stacktraces
 from StackTraceElements.

- Verifier and security manager checks
  - Classpath seems to have all the proper Permission checks in place.
(But has anybody every really used it? Probably not, because
 AccessController isn't really implemented.)
  - Jar verification/certification handling isn't implemented.
(Neither in Classpath or Kaffe.)
  - Policyfile processor (What to use for it?)
  - Goal savely run applets with appletviewer.

- NIO
  - Only java part in Classpath.
  - gcj has some native (CNI) implementations (not complete)
but JNI is completely stubs at the moment.
  - Talk to Michael Koch. Mark bought a book on NIO stuff and will
probably look at it soon.
  - Goal run Freenet!

=== Some random other stuff ===

- Security/Crypto - Choose default provider
  (kaffe, GNU Classpath and/or GNU Crypto).
  - FAQ combining kaffe and GNU Crypto
(provides javax.crypto and much more algorithms)

- Make gjdoc the default tool to generate API doc.
  - Problem, only really available in CVS, not current packaged version.

- javax.comm stuff
  - Kaffe has incomplete stubs
  - There is the rxtx (sp?) project which has been usable.
(Check kaffe mailinglist archives)
They have ported to lots of platforms
  - Wonka also has a implementation... (Status?)

- Swing (text)
  - Claspath has some implemented stuff, but large parts are just stubs.
  - Start simple with javax.swing.text.html parser stuff.
Some could get going with gnu jaxp giving it correct DTDs
(Dalibor his crazy idea).
Look at JTidy/HTMLTidy.
  - Goal make Appletviewer really parse parse.

- Bugs that poped up when Mark showed various things on his laptop.

  - -Xmx doesn't work (off by one bug), workaround use -mx.
Dalibor quickly hacked up a patch, but the current command line parsing
is broken...
  - gmp replacement configuration is broken when both tests fail.
  - tritonus install goes bad...

[kaffe] Eclipse and strange ClassCastException

2003-07-07 Thread Mark Wielaard
Hi,

Did anybody try eclipse recently?

When trying to run the eclipse-SDK-2.1-linux-gtk release (make sure that
your java.version in System.csays 1.3 otherwise it won't try to run at
all) I get a strange ClassCastException (workspace/.metainfo/.log file):

java.lang.ExceptionInInitializerError: [exception was java.lang.ClassCastException: 
can't cast `org/apache/xerces/parsers/StandardParserConfiguration' to 
`org/apache/xerces/xni/parser/XMLParserConfiguration']
at 
org.eclipse.core.internal.plugins.RegistryLoader.processManifestFile(RegistryLoader.java:89)

The strange thing is that at that point of the code there is no such
cast (the eclipse binary release comes with complete source code). I
tried a kaffe build without the xml and jaxp files but that wasn't it.

The StandardParserConfiguration class implements the
XMLPullParserConfiguration interface which extends the
XMLParserConfiguration interface.

Cheers,

Mark


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


Re: [kaffe] Re: kaffe and java-gnome (it works!)

2003-07-07 Thread Mark Wielaard
Hi,

On Sun, 2003-07-06 at 15:15, Dalibor Topic wrote:
 Could you post a short ChangeLog entry so that I
 can check it in, and mark java-gnome as working on the application
 compatibility web page?

2003-07-07  Mark Wielaard [EMAIL PROTECTED]

* include/jni.h (JNINativeInterface): Mark reserved words which
are used in JNI 1.2/1.4. Add ExceptionCheck slot.
(JavaVMAttachArgs): Mark reserved3 word as future
AttachCurrentThreadAsDaemon.
(JNIEnv_): Add ExceptionCheck.
* include/jni_cpp.h (JNIEnv::CheckException): New inline
function.
* kaffe/kaffevm/jni.c (Kaffe_ExceptionCheck): New function.
(Kaffe_JNINativeInterface): Add Kaffe_ExceptionCheck function
and mark unsupported callbacks with NULL.
* kaffe/kaffevm/external.c (loadNativeLibrary2) Call JNI_OnLoad
function if it exists in the library.

Attached is a patch for the web page. I have been so bold to also add
Snark. BTW nice list!

Cheers,

Mark
Index: compatibility_applications.shtml
===
RCS file: /cvs/kaffe/website/compatibility_applications.shtml,v
retrieving revision 1.24
diff -u -r1.24 compatibility_applications.shtml
--- compatibility_applications.shtml	8 Jun 2003 14:10:36 -	1.24
+++ compatibility_applications.shtml	7 Jul 2003 08:53:15 -
@@ -358,6 +358,14 @@
 
 	  Status: Untested.p
 
+  lia href=http://www.klomp.org/snark/;Snark/ap
+
+	  A program for distributing and sharing files with the
+	  BitTorrent protocol. Has an integrated (tiny) HTTP server
+	  and torrent file tracker and an experimental java-gMon Jul  7 10:56:04 CEST 2003nome
+	  GUI.p
+
+	  Status: Works.p
 /ol
 
 a name=nongraphicalclientapps
@@ -625,6 +633,12 @@
 
 	  Status: Untested.p
 
+  lia href=http://java-gnome.sourceforge.net/;java-gnome/ap
+
+	  A set of Java bindings for the GNOME and GTK libraries.p
+
+	  Status: Works.p
+
 /ol
 
 
@@ -652,7 +666,7 @@
 a href=mailto:[EMAIL PROTECTED]Jim Pick/abr
 !-- Created: Wed Mar 13 19:10:07 PST 2002 --
 !-- hhmts start --
-Last modified: Fri Apr  4 19:04:39 CEST 2003
+Last modified: Mon Jul  7 10:56:04 CEST 2003
 !-- hhmts end --
 /div
 !--#include virtual=bottom.html--


Re: [kaffe] Eclipse and strange ClassCastException

2003-07-07 Thread Mark Wielaard
Hi,

On Mon, 2003-07-07 at 11:25, Helmer Krämer wrote:
 the problem is that 'StandardParserConfiguration' is loaded by a
 PluginClassLoader and 'XMLParserConfiguration' is loaded by the
 PlatformClassLoader (the attached patch includes this info in the
 message of the ClassCastException).

Nice patch. Useful info when you are playing with complex classloader
hierarchies. (If you include it then I would only add the additional
information if the classloaders are actaully different.)

 From what I know about eclipse, I would assume that the
 PlatformClassLoader should not be able to find that class,
 should it? 

Actually it should but it does so in a tricky way and then removes (!)
those classes again from the classloader.
This looks like it might be the same problem that IKVM.NET had:
http://weblog.ikvm.net/PermaLink.aspx/66
The workaround for IKVM.NET was to add the xmlParserAPIs.jar and
xercesImpl.jar to the bootclasspath but that doesn't work for kaffe.

Cheers,

Mark


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


Re: [kaffe] Advogato

2003-07-07 Thread Mark Wielaard
Hi,

On Mon, 2003-07-07 at 22:38, Rob Gonzalez wrote:
 I recently joined Advogato (as gonzo) and was wondering how I would go
 about getting listed as a Contributor or Developer or something for the
 Kaffe Open VM project on that site :)  I figured someone here (Jim?) would
 be the person to know.

Just login on Advogato and go to the kaffe project page:
http://www.advogato.org/proj/Kaffe%20OpenVM/
then you can just add yourself as a developer on the project.

BTW Advogato is a fun place to keep up to date on the latest Free
Software happenings.

Cheers,

Mark


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


[kaffe] Re: kaffe and java-gnome (it works!)

2003-07-05 Thread Mark Wielaard
Hi,

On Sat, 2003-07-05 at 01:35, Mark Wielaard wrote:
 java-gnome uses more JNI 1.2 stuff like ExceptionCheck(). When changing
 those calls in java-gnome to use the less efficient JNI 1.1 method
 ExceptionOccured() my program seems to actually work!

And attached is the complete (admittedly minimal) patch that I use to
get kaffe (configure --with-threads=unix-pthreads) to run an unpatched
java-gnome build.

Cheers,

Mark
Index: include/jni.h
===
RCS file: /cvs/kaffe/kaffe/include/jni.h,v
retrieving revision 1.18
diff -u -r1.18 jni.h
--- include/jni.h	18 May 2003 19:20:58 -	1.18
+++ include/jni.h	5 Jul 2003 08:55:44 -
@@ -75,26 +75,26 @@
 	jint	(*GetVersion)			(JNIEnv*);
 	jclass	(*DefineClass)			(JNIEnv*, jobject, const jbyte*, jsize);
 	jclass	(*FindClass)			(JNIEnv*, const char*);
-	void*	reserved4;
-	void*	reserved5;
-	void*	reserved6;
+	void*	reserved4; // FromReflectedMethod
+	void*	reserved5; // FromReflectedField
+	void*	reserved6; // ToReflectedMethod
 	jclass	(*GetSuperclass)		(JNIEnv*, jclass);
 	jboolean	(*IsAssignableFrom)		(JNIEnv*, jclass, jclass);
-	void*	reserved7;
+	void*	reserved7; // ToReflectedField
 	jint	(*Throw)			(JNIEnv*, jobject);
 	jint	(*ThrowNew)			(JNIEnv*, jclass, const char*);
 	jthrowable (*ExceptionOccurred)		(JNIEnv*);
 	void	(*ExceptionDescribe)		(JNIEnv*);
 	void	(*ExceptionClear)		(JNIEnv*);
 	void	(*FatalError)			(JNIEnv*, const char*);
-	void*	reserved8;
-	void*	reserved9;
+	void*	reserved8; // PushLocalFrame
+	void*	reserved9; // PopLocalFrame
 	jref	(*NewGlobalRef)			(JNIEnv*, jref);
 	void	(*DeleteGlobalRef)		(JNIEnv*, jref);
 	void	(*DeleteLocalRef)		(JNIEnv*, jref);
 	jboolean	(*IsSameObject)			(JNIEnv*, jobject, jobject);
-	void*	reserved10;
-	void*	reserved11;
+	void*	reserved10; // NewLocalRef
+	void*	reserved11; // EnsureLocalCapacity
 	jobject	(*AllocObject)			(JNIEnv*, jclass);
 	jobject	(*NewObject)			(JNIEnv*, jclass, jmethodID, ...);
 	jobject	(*NewObjectV)			(JNIEnv*, jclass, jmethodID, va_list);
@@ -289,6 +289,23 @@
 	jint	(*MonitorExit)			(JNIEnv*, jobject);
 	jint	(*GetJavaVM)			(JNIEnv*, JavaVM**);
 
+	// New JNI 1.2 functions
+	
+	void* reserved12; // GetStringRegion
+	void* reserved13; // GetStringUTFRegion
+	void* reserved14; // GetPrimitiveArrayCritical
+	void* reserved15; // ReleasePromitiveArrayCritical
+	void* reserved16; // GetStringCritical
+	void* reserved17; // ReleaseStringCritical
+	void* reserved18; // NewWeakGlobalRef
+	void* reserved19; // DeleteWeakGlobalRef
+	jboolean	(*ExceptionCheck)	(JNIEnv*);
+
+	// New JNI 1.4 functions
+	
+	void* reserved20; // NewDirectByteBuffer
+	void* reserved21; // GetDirectBufferAddress
+	void* reserved22; // GetDirectBufferCapacity
 };
 
 struct JavaVMAttachArgs {
@@ -309,6 +326,7 @@
 	jint	(*AttachCurrentThread)		(JavaVM*, JNIEnv**, ThreadAttachArgs*);
 	jint	(*DetachCurrentThread)		(JavaVM*);
 	jint	(*GetEnv)			(JavaVM*, void**, jint);
+	void*	reserved3; // AttachCurrentThreadAsDaemon
 };
 
 struct JNIEnv_ {
@@ -522,6 +540,7 @@
 	jint MonitorEnter(jobject);
 	jint MonitorExit(jobject);
 	jint GetJavaVM(JavaVM**);
+	jboolean ExceptionCheck(void);
 #endif
 };
 
Index: include/jni_cpp.h
===
RCS file: /cvs/kaffe/kaffe/include/jni_cpp.h,v
retrieving revision 1.4
diff -u -r1.4 jni_cpp.h
--- include/jni_cpp.h	6 Apr 1999 19:13:56 -	1.4
+++ include/jni_cpp.h	5 Jul 2003 08:55:44 -
@@ -1201,4 +1201,9 @@
 	return (functions-GetJavaVM(this, a));
 }
 
+inline jboolean JNIEnv::CheckException(void)
+{
+	return (functions-CheckException(this));
+}
+
 #endif
Index: kaffe/kaffevm/external.c
===
RCS file: /cvs/kaffe/kaffe/kaffe/kaffevm/external.c,v
retrieving revision 1.46
diff -u -r1.46 external.c
--- kaffe/kaffevm/external.c	11 Jun 2003 16:54:14 -	1.46
+++ kaffe/kaffevm/external.c	5 Jul 2003 08:55:44 -
@@ -115,6 +115,8 @@
 
 extern jint Kaffe_JNI_native(Method*);
 
+extern JavaVM Kaffe_JavaVM;
+
 /*
  * Error stub function.  Point unresolved link errors here to avoid
  * problems.
@@ -316,6 +318,12 @@
 #if defined(KAFFE_FEEDBACK)
 	feedbackLibrary(path, true);
 #endif
+
+	void *func = loadNativeLibrarySym(JNI_OnLoad);
+	if (func != NULL) {
+	JavaVM *jvm = Kaffe_JavaVM;
+	jint vers = ((jint(JNICALL *)(JavaVM *, void *))func)(jvm, NULL);
+	}
 
 	return index;
 }
Index: kaffe/kaffevm/jni.c
===
RCS file: /cvs/kaffe/kaffe/kaffe/kaffevm/jni.c,v
retrieving revision 1.84
diff -u -r1.84 jni.c
--- kaffe/kaffevm/jni.c	30 Jun 2003 19:30:27 -	1.84
+++ kaffe/kaffevm/jni.c	5 Jul 2003 08:55:47 -
@@ -435,6 +435,21 @@
 	return (obj);
 }
 
+static jboolean
+Kaffe_ExceptionCheck(JNIEnv* env)
+{
+	jboolean result;
+	jobject obj;
+
+	BEGIN_EXCEPTION_HANDLING(0);
+
+	obj = unhand(getCurrentThread())-exceptObj;
+	result = (obj == NULL) ? JNI_FALSE

kaffe and java-gnome (Was: [kaffe] System.loadLibrary() shouldlook in /lib and /usr/lib)

2003-07-04 Thread Mark Wielaard
Hi,

On Sun, 2003-06-22 at 15:49, Mark Wielaard wrote:
 On Sun, 2003-06-22 at 14:13, Mark Wielaard wrote:
  And indeed adding /usr/lib (where the library is installed) to
  LD_LIBRARY_PATH seems to work, but it would be more convenient if kaffe
  would automatically load standard libraries (from /lib and /usr/lib).

Note that the latest debian packages store the JNI libraries in
/usr/lib/jni.

 Work is a big word. I am trying to get my application that uses the
 java-gnome libraries working with kaffe (it works with gij) but it
 crashes in spectacular ways. Has someone successfully used java-gnome
 with kaffe?

I played a bit more with it. And as long as I don't use glib timer
callbacks I can play a bit with some windows and widgets.

One of the problem with glib Timer support is that kaffe doesn't
implement JNI_OnLoad() which java-gnome uses to store a pointer to the
JavaVM for use in its own callback funtions.

But even if I work around this I don't get that far when enabling the
glib timer. Often kaffe will say that all threads are deadlocked. This
seems to come from the fact that native method GtkMain() never returns.

Dumping live threads:
`gc' tid 0x825900c, status SUSPENDED flags DONTSTOP
 [EMAIL PROTECTED] (0x825900c-|)
`finaliser' tid 0x825000c, status SUSPENDED flags DONTSTOP
 [EMAIL PROTECTED] (0x825000c-|)
`main' tid 0x8119028, status SUSPENDED flags NOSTACKALLOC DONTSTOP
 [EMAIL PROTECTED] (0x8119028-|)
Deadlock: all threads blocked on internal events
./snark-gnome.sh: line 9: 23839 Aborted ${JAVA} -verifyremote 
-classpath ${CLASSPATH} ${MAINCLASS} $*

Cheers,

Mark


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


Re: kaffe and java-gnome (Was: [kaffe] System.loadLibrary() shouldlook in /lib and /usr/lib)

2003-07-04 Thread Mark Wielaard
Hi Helmer,

On Fri, 2003-07-04 at 23:25, Helmer Krämer wrote:
 seems like you're using the unix-jthreads threading system,
 right? Have you already tried what happens when you're using
 unix-pthreads instead?

Thanks. When configure is given --with-threads=unix-pthreads it works a
bit better. No more blocking threads and my other threads seem to
actually run now. Good.

Attached is my very simple JNI_OnLoad() support patch.

But there is still some problem when the glib timer fires so it might be
a bit bogus even though it seems to call the correct function when the
library is loaded.

Cheers,

Mark
Index: kaffe/kaffevm/external.c
===
RCS file: /cvs/kaffe/kaffe/kaffe/kaffevm/external.c,v
retrieving revision 1.46
diff -u -r1.46 external.c
--- kaffe/kaffevm/external.c	11 Jun 2003 16:54:14 -	1.46
+++ kaffe/kaffevm/external.c	4 Jul 2003 22:43:34 -
@@ -115,6 +115,8 @@
 
 extern jint Kaffe_JNI_native(Method*);
 
+extern JavaVM Kaffe_JavaVM;
+
 /*
  * Error stub function.  Point unresolved link errors here to avoid
  * problems.
@@ -316,6 +318,12 @@
 #if defined(KAFFE_FEEDBACK)
 	feedbackLibrary(path, true);
 #endif
+
+	void *func = loadNativeLibrarySym(JNI_OnLoad);
+	if (func != NULL) {
+	JavaVM *jvm = Kaffe_JavaVM;
+	jint vers = ((jint(JNICALL *)(JavaVM *, void *))func)(jvm, NULL);
+	}
 
 	return index;
 }


Re: [kaffe] The Verifier and Regression Tests

2003-07-03 Thread Mark Wielaard
Hi,

On Mon, 2003-06-30 at 00:05, Rob Gonzalez wrote:
 It would be nice if people would test kaffe with the verifier on whatever
 they're working on.  By default kaffe doesn't not do any verification, but
 if you run it with -verifyremote it will verify everything that's not from
 the bootclasspath (i.e. the standard libraries).

I tried a couple of things and it all seemed to work.

BTW. Do you know about the verifier testsuite from Mauve?
Tom Tromey who wrote the gcj verifier and Jeroen Frijters from the
IKVM.NET project have checked in some tests written in Jasmin.
It is in the verify module of Mauve CVS.
http://sources.redhat.com/cgi-bin/cvsweb.cgi/verify/?cvsroot=mauve

Cheers,

Mark


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


Re: [kaffe] Build system for kjc / external jars + Jetty/JSPsuccess

2003-06-26 Thread Mark Wielaard
Hi,

On Thu, 2003-06-26 at 15:59, Dalibor Topic wrote:
 I'm not sure how it will affect kaffe's status in debian though. Didn't they
 have that weird policy that if we used ant anywhere, kaffe would have to be
 removed from debian-free? Or am I just misremembering last year's big licensing
 thread?

According to http://packages.debian.org/unstable/devel/ant.html
Ant is currently not part of Debian (main). And anything that (build)
depends on something that is not part of Debian can also not be part of
Debian. But I do admit that I am not sure why ant is not in main since
it seems that all dependencies can be satisfied by free software
packages in Debian.

Are there any Debian developers on this list that know how to see what
keeps a package from main (and in particular why Ant is kept out of main
at the moment)?

Cheers,

Mark


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


Re: [kaffe] System.loadLibrary() should look in /lib and /usr/lib

2003-06-22 Thread Mark Wielaard
On Sun, 2003-06-22 at 14:13, Mark Wielaard wrote:
 And indeed adding /usr/lib (where the library is installed) to
 LD_LIBRARY_PATH seems to work, but it would be more convenient if kaffe
 would automatically load standard libraries (from /lib and /usr/lib).

Work is a big word. I am trying to get my application that uses the
java-gnome libraries working with kaffe (it works with gij) but it
crashes in spectacular ways. Has someone successfully used java-gnome
with kaffe?

I always get some warnings during startup:

(??:8927): Gdk-WARNING **: Error converting from UTF-8 to
'ANSI_X3.4-1968': Invalid byte sequence in conversion input

Often the following exception:

java.lang.ExceptionInInitializerError: [exception was
java.lang.NullPointerException]
at java.lang.Class.forName(Class.java:native)
at java.lang.Class.forName(Class.java:45)
at java.net.InetAddress.clinit(InetAddress.java:54)
at java.net.ServerSocket.init(ServerSocket.java:54)
at java.net.ServerSocket.init(ServerSocket.java:31)
at java.net.ServerSocket.init(ServerSocket.java:27)
at org.klomp.snark.Snark.init(Snark.java:204)
at org.klomp.snark.Snark.parseArguments(Snark.java:425)
at org.klomp.snark.SnarkGnome.run(SnarkGnome.java:293)
at java.lang.Thread.run(Thread.java:334)
java.lang.UnsatisfiedLinkError: Cannot find working InetAddressImpl
at java.net.ServerSocket.init(ServerSocket.java:54)
at java.net.ServerSocket.init(ServerSocket.java:31)
at java.net.ServerSocket.init(ServerSocket.java:27)
at org.klomp.snark.Snark.init(Snark.java:204)
at org.klomp.snark.Snark.parseArguments(Snark.java:425)
at org.klomp.snark.SnarkGnome.run(SnarkGnome.java:293)
at java.lang.Thread.run(Thread.java:334)

Sometimes almost immediatly:

Internal error: caught an unexpected exception.
Please check your CLASSPATH and your installation.
java/lang/NullPointerException
at java.lang.Thread.finish(Thread.java:201)
Aborted

Or:

Dumping live threads:
`Thread-0' tid 0x84ca00c, status SUSPENDED flags DONTSTOP
 [EMAIL PROTECTED] (0x84ca00c-|)
`gc' tid 0x825900c, status SUSPENDED flags DONTSTOP
 [EMAIL PROTECTED] (0x825900c-|)
`finaliser' tid 0x825000c, status SUSPENDED flags DONTSTOP
 [EMAIL PROTECTED] (0x825000c-|)
`main' tid 0x8119028, status SUSPENDED flags NOSTACKALLOC DONTSTOP
 [EMAIL PROTECTED] (0x8119028-|)
Deadlock: all threads blocked on internal events



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


Re: [kaffe] Problem with BufferedInputStream [patch]

2003-06-06 Thread Mark Wielaard
Hi,

On Thu, 2003-06-05 at 15:48, Helmer Krämer wrote:
 Just some minor comments, though. If I understand the spec correctly,
 BufferedInputStream.read() should block until data is available and
 read as much of it as possible afterwards (either until the destination
 buffer is full or until further reading from the underlying input
 stream would block again).
 
 IMHO, simply removing the loop would break this, since without the
 loop you will only read as much data as is already buffered in the
 BufferedInputStream itself, you will not take care of data that might
 be available in the underlying input stream and thus could be read
 without blocking.

The Java Class Libraries (second edition, volume 1) isn't that clear on
the subject. But the online java doc (1.4.2) say:

This method implements the general contract of the corresponding
read method of the InputStream class. As an additional
convenience, it attempts to read as many bytes as possible by
repeatedly invoking the read method of the underlying stream.
This iterated read continues until one of the following
conditions becomes true: 

  * The specified number of bytes have been read, 
  * The read method of the underlying stream returns -1,
indicating end-of-file, or 
  * The available method of the underlying stream returns
zero, indicating that further input requests would
block.

 So I would not completely remove the loop, but rather replace it with
 something like do {} while (len0  available()0); dunno whether
 that's really more correct, though...

 What do you think?

Seems that is more correct. But since available() isn't that reliable I
wouldn't implement it that way since it might make the method block much
more then needed. See for example the java.util.ZipInputStream
available() method definition (which says to almost always returns 1!).

Also note that the javadoc say:

Subclasses of this class are encouraged, but not required, to
attempt to read as many bytes as possible in the same fashion.

So users cannot rely on this behaviour anyway.

Cheers,

Mark


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


[kaffe] Problem with BufferedInputStream [patch]

2003-06-05 Thread Mark Wielaard
Hi,

I tried to get my java bittorrent project (http://www.klomp.org/snark/),
working with kaffe and found a problem with BufferedInputStream. The
code contains the following construct (simplified, the real code uses a
Socket InputStream):

public class ReadLineTest
{
  public static void main(String args[]) throws Exception
  {
InputStream in = System.in;
BufferedInputStream bis = new BufferedInputStream(in);
BufferedReader br = new BufferedReader
  (new InputStreamReader(bis, US-ASCII));
String line = br.readLine();
System.out.println(line);
  }
}

The expected behaviour is for the program to read a line and print it.
But readLine() will not return with the first line till at least 2048
characters have been input (which can be multiple lines).

The problem is in BufferedInputStream._read(byte b[], int off, int len).
Which tries to fill the given byte[] with len bytes even if it has
buffered less bytes (so it will keep readingfrom the underlying
InputStream).

The attached patch removes the while (len  0) construct which makes the
above program (and The Hunting of the Snark Project) work correctly.

Mauve and make check results do not show regressions with this change.

Cheers,

Mark
Index: libraries/javalib/java/io/BufferedInputStream.java
===
RCS file: /cvs/kaffe/kaffe/libraries/javalib/java/io/BufferedInputStream.java,v
retrieving revision 1.10
diff -u -r1.10 BufferedInputStream.java
--- libraries/javalib/java/io/BufferedInputStream.java	4 Apr 2003 06:11:41 -	1.10
+++ libraries/javalib/java/io/BufferedInputStream.java	5 Jun 2003 12:22:38 -
@@ -102,44 +102,34 @@
 		return (1);
 	}
 
-	int total = 0;
-	while (len  0) {
-
-		// If buffer fully consumed, invalidate mark  reset buffer
-		if (pos == buf.length) {
-			pos = count = 0;
-			markpos = -1;
-		}
-
-		// Buffer empty?
-		int nread;
-		if (pos == count) {
+	// If buffer fully consumed, invalidate mark  reset buffer
+	if (pos == buf.length) {
+		pos = count = 0;
+		markpos = -1;
+	}
 
-			// If the amount requested is more than the size
-			// of the buffer, we might as well optimize with
-			// a direct read to avoid needless copying of data.
-			if (len = buf.length) {
-if ((nread = super.read(b, off, len)) == -1) {
-	return (total  0) ? total : -1;
-}
-return total + nread;
-			}
+	// Buffer empty?
+	if (pos == count) {
 
-			// Read another buffer's worth of data
-			if (!fillBuffer()) {
-return (total  0) ? total : -1;
-			}
+		// If the amount requested is more than the size
+		// of the buffer, we might as well optimize with
+		// a direct read to avoid needless copying of data.
+		if (len = buf.length) {
+			return super.read(b, off, len);
 		}
 
-		// Copy the next chunk of bytes from our buffer
-		nread = Math.min(count - pos, len);
-		System.arraycopy(buf, pos, b, off, nread);
-		total += nread;
-		pos += nread;
-		off += nread;
-		len -= nread;
+		// Read another buffer's worth of data
+		if (!fillBuffer()) {
+			return -1;
+		}
 	}
-	return total;
+
+	// Copy the next chunk of bytes from our buffer
+	int nread = Math.min(count - pos, len);
+	System.arraycopy(buf, pos, b, off, nread);
+	pos += nread;
+
+	return nread;
 }
 
 public synchronized void reset() throws IOException {


Re: [kaffe] Kaffe and Freenet, round (N+1)

2003-06-03 Thread Mark Wielaard
Hi,

On Tue, 2003-06-03 at 01:36, Greg Wooledge wrote:
 Tech stuff: Freenet build 6043 or 593, Kaffe CVS from 2003-06-02,
 on OpenBSD 3.2 x86.  Kaffe was configured with ./configure
 --with-includes=/usr/local/include --with-libraries=/usr/local/lib
 --with-engine=jit3 --enable-debug.  Freenet was built with jikes 1.14
 on a Debian unstable x86 box.

You might want to try to configure kaffe with --enable-pure-java-math
that will give you another (the GNU Classpath) java.math.BigInteger
implementation (which doesn't use the native libgmp).

Cheers,

Mark


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


Re: jikes 1.17 bug (Was: Re: [kaffe] Some patches to use jikes)

2002-12-06 Thread Mark Wielaard
Hi,

On Fri, 2002-12-06 at 16:56, Hervé Roussain wrote:
 It seems to be a jikes bug. But it is also a gcj bug (after a comment in 
 SocketImpl.java  DatagramSocketImpl.java in classpath's source) that 
 classpath solve by redeclarations of setOption and getOption methods 
 in the 2 mentioned classes.
 If you decide to do the same thing than in GNU Classpath, don't forget 
 the DatagramSocketImpl (it has the same problem but this is not shown 
 with regression tests).

How interesting that this issue suddenly pops up in every VM
implementation at the same time. It is actually a bug in the VM that is
triggered by the fact that older byte code compilers added extra methods
to abstract classes when they implemented interfaces but didn't declare
the methods. It was workaround for old Sun VMs, but since Sun fixed the
bug in their VM the workaround is no longer emitted by compilers.

You can find more info at:

IK.VM.NET:
http://radio.weblogs.com/0109845/2002/11/22.html#a65
http://radio.weblogs.com/0109845/2002/11/25.html#a67

GIJ:
http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=viewdatabase=gccpr=8823

Wonka:
http://wonka.acunia.com/hypermail/hypermail-list008/2002-12/0012.html

And yes, I just tested the Kissme VM and it seems to have the same issue
:{

Cheers,

Mark


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



Re: [kaffe] Merging missing classes from GNU Classpath

2002-10-25 Thread Mark Wielaard
Hi,

(I added the classpath mailinglist to the CC.)

On Fri, 2002-10-25 at 16:02, Dalibor Topic wrote:
 I'd like to know what people think about merging some
 missing parts of the class library from the GNU
 Classpath project. It would extend the range of
 software that can run on kaffe, for example allowing
 Saxon 7.2 to run, as Ito has shown in this mail :
 http://www.kaffe.org/pipermail/kaffe/2002-September/008902.html
 
 If everybody agrees it's a good thing to outsource
 part of the class library development, then I'll
 investigate what could be merged in.

 As it seems that full classpath integration is far
 away, I believe this step would ease the pain for
 those needing to run applications requiring class
 library features not yet supported in kaffe
 (java.util.WeakHashMap anyone?).
 
 I'm interested in your opinions,

I think it is a good idea! And I am only moving very, very slowly
forward with reworking and understanding(!) the VM interface issues. So
I don't think just plugging Classpath into Kaffe will happen anytime
soon.

I have recently been thinking about Kaffe and GNU working more together.

Firstly I think it would be a good idea if you get the following GNU
packages working with Kaffe. This should be easy since it doesn't really
need any real Kaffe integration, just checking that it all works (and
some have nice testsuites). It will make the Kaffe 'product' more
complete:

- GNU Classpath-tools, standard tools
  Not yet released, but important bits, javap, javah, javadoc are here:
  http://savannah.gnu.org/cgi-bin/viewcvs/cp-tools/cp-tools/
  http://savannah.gnu.org/cgi-bin/viewcvs/cp-tools/gjdoc/
- GNU JAXP, Sax and Dom implementations and interfaces.
  http://www.gnu.org/software/classpathx/jaxp.html
- GNU Crypto a crypto library that can also be used as crypto provider.
  http://www.gnu.org/software/gnu-crypto/

- Kawa, the java based Scheme system. Contains lots of utility packages.
  http://www.gnu.org/software/kawa/
- GNU Paperclips, Servlet and JSP engine.
  http://www.gnu.org/software/paperclips/
- gnu.regexp, Regular Expressions for Java
  http://www.cacas.org/java/gnu/regexp/
- GNU Getopt in Java
  http://www.urbanophile.com/arenn/hacking/download.html

Then there is the following list of GNU Classpath 'easy targets'
(meaning, no-brainers, just use the complete package):

- java.awt.color
- java.awt.dnd
- java.awt.geom
- java.awt.im
- java.awt.image.renderable
- java.beans.beancontext
- java.util.logging [1] 
- java.util.prefs [2]
- javax.accessibility
- javax.naming, javax.sql, javax.transaction [3]

[1] Please ask Sascha Brawer ([EMAIL PROTECTED]) about the status.
[2] I wrote this but never used it, it is not completely finished,
missing a real backend. But I have heard some reports from people that
used the MemoryBased backend successfully.
[3] Not completely merged from libgcj, but you can get it from the GCC
distribution. There very limited api doc which is why I don't like to
import it in Classpath yet. I did write some documentation for some of
the classes that were imported but not all. Minimal stuff to support
JDBC3.0 is in Classpath.

There are also a lot of javax.swing stubs, but I don't know how useful
they are except to get more things to compile. And you could also look
at the java.nio stuff but I have never really played with it and don't
know the status.

But how to go from there I don't know precisely. Things you might like
to play with:

- You already mentioned the new collection classes (IdentityHashMap,
LinkedHashMap, LinkedHashSet, WeakHashMap and RandomAccess support).
- java.lang.reflect.Proxy (this might make Jython run)
- Look at the Throwable VM interface and adapt it for Kaffe, this will
give you exception chaining and StackTraceElement.
- See if the pure jave java.util.zip (jazzlib) library is something for
kaffe.
- Likewise for the pure java java.math implementation (said to be faster
then going through JNI).
- Security Permission model is better supported in Classpath then in
Kaffe (but completely untested!)
- Transvirtual donated the java.rmi implementation to the FSF al long
time ago it has seen a couple of fixes and additions (some of the Orp
patches are still waiting to be merged into Classpath). I don't know if
Kaffe kept up to date with this version.
- Michael Koch ([EMAIL PROTECTED]) recently did a lot of java.net 1.4
updates but I don't know if he has JNI support yet (he started with the
libgcj version which uses CNI).

We will have to make sure the we have good Mauve tests so you can see if
replacing things fixes or breaks things in Kaffe so please run and
contribute to Mauve regularly :)

And I would like to ask that improvements to classes that you import are
contributed back to the GNU Classpath project as described at:
http://www.gnu.org/software/classpath/doc/hacking.html#SEC2

Cheers,

Mark


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



Re: [kaffe] KeyEvent - JDK 1.4 patch (And longer explanation;)

2002-10-11 Thread Mark Wielaard
Hi,

On Mon, 2002-10-07 at 22:46, Dalibor Topic wrote:
 SQL interfaces have also changed in 1.4, breaking
 mauve tests, for example. If you check kaffe's sources
 in java/sql/ you'll see that I've left the new methods
 commented out when I updated the interfaces.

I fixed some of this breakage in Mauve this morning.
It would be nice if someone could try a recent checkout
of Mauve with kaffe to see if it works OK now.

  Since our roadmap (And Richard Stallman:)
  currently calls for a
  Kaffe compatible release at the end of the month,
  this is bit tricky
  without tighter Kaffe release schedule or
  work-arounds in XSmiles.
 
 I'd expect RMS to call for a gcj compatible release ;)

I do see the smiley, but I reply anyway to make sure that there is no
miscommunication here. Richard has always asked people that write free
software programs in java to make sure that it works with one of the
free implementations. Since Kaffe is a free implementation that works
for most applications it is only natural to point people to it.

In the past he had also expected that Kaffe would be the free VM that
would be used by the GNU project. And when other projects were launched
like GNU Classpath and gcj he has always asked the developers to work
together with the Kaffe developers. This has sadly not happened very
much in the past. But mostly because it is a lot of work and there is
just so little time.

I still hope to get some work done to make at least Kaffe and GNU
Classpath work together (which should make it easier to get kaffe
working better with gcj compiled native code) but this is a lot of work
and there is much other work to do and so little time...

Cheers,

Mark

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