[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 
  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] Some slides from the Free Java Meeting at Fosdem

2009-02-13 Thread Mark Wielaard
Hi all,

Hope everybody recovered from the meeting. It was really fun to meet
everybody and to hear about all the cool stuff people are working on.
The presentations were really informative so we collected some of the
presentation slides for those that couldn't make it or for those that
want to go over them again. See the full list below.

Dalibor linked them all from the wiki and when there are more
presentations available we will add them (if you gave a presentation and
also want to link to your slides please do add them or ping one of us to
upload them for you): http://wiki.debian.org/Java/DevJam/2009/Fosdem

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

Thanks for a great event!
your friendly ad hoc Fosdem meeting committee,

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

Presentations Free Java Meeting, Fosdem:

Caciocavallo, Roman Kennke & Mario Torre
http://www.limasoftware.net/neugens/downloads/classpath/caciocavallo/Cacio_Presentation_2.pdf

XRender Java2D Pipeline, Clemens Eisserer 
http://wiki.debian.org/Java/DevJam/2009/Fosdem?action=AttachFile&do=get&target=Clemens-XRender.odp

Gervill Software Synthesizer, Karl Helgason 
https://gervill.dev.java.net/files/documents/7973/126418/fosdem2009-gervill.pdf

Cacao, Michael Starzinger 
http://wiki.debian.org/Java/DevJam/2009/Fosdem?action=AttachFile&do=get&target=Michael-Cacao.pdf

VMKit, Nicolas Geoffray 
http://wiki.debian.org/Java/DevJam/2009/Fosdem?action=AttachFile&do=get&target=Nicolas-VMKit.pdf

Groovy Grails for NetBeans, Matthias Schmidt 
http://wiki.debian.org/Java/DevJam/2009/Fosdem?action=AttachFile&do=get&target=Matthias-Groovy-Tooling.pdf

Towards a Universal VM, Alex Buckley 
http://blogs.sun.com/abuckley/resource/FOSDEM2009-TowardsAUniversalVM.pdf

JSR292 - Supporting Dynamically Typed Languages, Remi Forax 
http://wiki.debian.org/Java/DevJam/2009/Fosdem?action=AttachFile&do=get&target=Remi-JSR292.pdf

JamVM, Robert Lougher 
http://wiki.debian.org/Java/DevJam/2009/Fosdem?action=AttachFile&do=get&target=Robert-JamVM.pdf

JNode, Peter Barth 
http://wiki.debian.org/Java/DevJam/2009/Fosdem?action=AttachFile&do=get&target=Peter-JNode.pdf

Zero/Shark, Gary Benson 
http://gbenson.net/wp-content/uploads/2009/02/fosdem-2009.pdf


___
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, Mobile&Embedded, 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
--- Begin Message ---
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-27 Thread Mark Wielaard
On Sat, 2006-03-25 at 16:56 +0100, Dalibor Topic wrote:
> On Tue, 2006-03-21 at 21:50 +0100, Bernhard Reiter wrote:
> > > 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
> > 
> > > > 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.
> > 
> > A test with jamvm and classpath 0.90 (Debian package) plus the patch,
> > makes the testcase work and the yahoo go applet receive mouse events.
> 
> I've just tried it out again, and it works with rc2 now. I don't know if
> the KeyEvent issue was fixed in GNU Classpath as well. Mark?

Sorry, that issue is still not fixed. It is tracked as:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26703

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


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

2006-03-15 Thread Mark Wielaard
On Sun, 2006-03-12 at 18:17 +0100, Bernhard Reiter wrote:
> Am Samstag, 11. März 2006 13:50 schrieb Dalibor Topic:
> > It turns out that GNU Classpath has a bug that prevents any
> > events from being shown. I'll file your test case in the Classpath bug
> > tracker and CC: you on it. Once that regression is resolved, we can see
> > if the event passing bug on ppc-linux still exists.
> 
> Thanks!

This was http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26641
Which has been checked into classpath CVS now.
If you could try that out, or someone could resync classpath cvs with
kaffe cvs, to see if that fixes the issue also for you that would be
appreciated.

Thanks,

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] ppc: mouse keyboard problems with kaffe 1.1.7rc1

2006-03-15 Thread Mark Wielaard
Hi Bernhard,

On Wed, 2006-03-15 at 11:35 +0100, Bernhard Reiter wrote:
> From looking at the diff I believe that this would not affect keyboard events,
> so the keyboard bug might still be in there.

Yes. If you have a small testcase for the keyboard issue that would be
appreciated. Your TestMouse code was very helpful. Thanks.

> Also it does not look like it would be a big endian related problem.

No, it was a general heavyweight/lightweight Container problem in the
general awt code.

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 & 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 th

[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] 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 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] 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] [Fwd: Proposal: Weekly Classpath meetings on irc (Thu 17:00 UTC)]

2005-10-05 Thread Mark Wielaard
Hi all,

For those that integrate GNU Classpath into the various development
frameworks the following might be interesting. Normally you should feel
free to bring up any integration issue on the mailinglist. But if you
wish to ask a a quick status update question please join us on irc.

Cheers,

Mark

P.S. As a result of the DevJam meeting in Oldenburg where different
groups around GNU Classpath saw each other in real life there is now
also a special list for "Coordination of integration and packaging
efforts around GNU Classpath". This is a low volume mailinglist where
people can post announcements and discuss things that are interesting to
the larger community (like this message). See the mailman interface:
http://developer.classpath.org/mailman/listinfo/devjam
Or send email to [EMAIL PROTECTED]

--- Begin Message ---
Hi all,

We are developing things at an incredible pace. And it seems most things
go pretty smoothly even though the pool of people hacking on GNU
Classpath and the number of packages we implement keep increasing. Also
the different distributions seem to be packaging more and more stuff now
that gcc and kaffe are regularly merging in the core libraries. But it
is sometimes hard to keep an overview of who is working on what or who
is blocked on something that someone else needs to do or has promised to
do. Some of us are on irc from time to time to make communication easy.
But even then not everybody is and not everybody is there at the same
time. So I would like to propose a short weekly get together on
irc.gnu.org channel #classpath each week to keep each other more up to
date on each others progress. Just something short, say 15 min. Just to
see whether everybody is still going forward. Big items should of course
be discussed on the mailinglist. And we should always sent and summary
of the irc meeting to the list for those that couldn't make it.

I propose a first meeting on Thursday 6 October at 17:00 UTC on
irc.gnu.org #classpath. I'll make a short agenda, but nothing formal,
just to get things started. BTW That is 19:00 in Amsterdam, 1:00 PM in
Boston or 18:00 in London. More times at:
http://www.timeanddate.com/worldclock/fixedtime.html?year=2005&month=10&day=6&hour=17&min=0&sec=0

Hope to see you at the "meeting"!

Any volunteers for making meeting notes that can be sent to the
mailinglist afterwards?

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
___
Classpath mailing list
Classpath@gnu.org
http://lists.gnu.org/mailman/listinfo/classpath
--- End Message ---


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

2005-10-01 Thread Mark Wielaard
Hi all,

The GNU Classpath distro DevJam was a great success. It seems we brought
some harmony into the hearts and minds of the different distributions
(Ubuntu, SkoleLinux, Debian, Fedora, Suse, Gentoo, OpenEmbedded) that
participated. And being able to talk and debug some issues with several
of the upstream projects involved (GNU Classpath, kaffe, gcj, Cacao) was
definitely inspirational and productive.

Here is a list of other summaries and notes of the meeting:

- SkoleLinux summaries and pictures:
http://skolelinux.de/wiki/FreeJava/Meeting050923
- OpenEmbedded ARM TODO list:
http://www.informatik.uni-bremen.de/cgi-bin/cgiwrap/rwagner/pyblosxom.cgi/computers/freejava/gcj-on-arm.html
- GCJ maintainer/Fedora impressions by Andrew Haley:
http://www.advogato.org/person/aph/diary.html?start=0
- Gentoo DevJam braindump by Petteri Räty (plus presentation)
http://article.gmane.org/gmane.linux.gentoo.java/598
http://dev.gentoo.org/~betelgeuse/show.pdf
- DevJam Arrival and Schedule/Discussion notes:
http://gnu.wildebeest.org/diary/index.php?p=116
- Debian Project leader notes:
http://necrotic.deadbeast.net/~branden/blog/exuberance/Debian/destination_oldenburg.html
- LWN article about the meeting that is currently being published for
subscribers (please support LWN it is a great magazine):
http://lwn.net/Articles/153450/
Next week it will be free for all.

(Please send me, or the devjam mailing-list, updates and additions.)

On request of several of the participants I have setup a mailing-list so
people can keep in touch and coordinate cross-distro/packaging/project
things.
If you are interested please send an email to
[EMAIL PROTECTED]
The mailing-list has a public archive accessible through:
http://developer.classpath.org/mailman/listinfo/devjam

And if you are interested in participating or helping out with a
followup meeting please see the wiki about DevJam++:
http://java.debian.net/index.php/DevJam++

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

2005-09-01 Thread Mark Wielaard
On Thu, 2005-09-01 at 19:27 +0200, Mark Wielaard wrote:
> 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.

It would probably help if I attached the patch...
Index: libraries/javalib/java/util/zip/Adler32.java
===
RCS file: /cvs/kaffe/kaffe/libraries/javalib/java/util/zip/Adler32.java,v
retrieving revision 1.1
diff -u -r1.1 Adler32.java
--- libraries/javalib/java/util/zip/Adler32.java	14 Jul 1998 17:02:10 -	1.1
+++ libraries/javalib/java/util/zip/Adler32.java	1 Sep 2005 17:37:57 -
@@ -20,7 +20,7 @@
 
   public Adler32()
   {
-adler = 0;
+adler = 1;
   }
 
   public void update(int b)
@@ -35,12 +35,12 @@
 
   public void reset()
   {
-adler = 0;
+adler = 1;
   }
 
   public long getValue()
   {
-return (adler);
+return (adler & 0xL);
   }
 
   public native void update(byte[] buf, int from, int len);


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. (Currency.java:171)
> :>at java.util.Currency.getInstance (Currency.java:262)
> :>at java.text.DecimalFormatSymbols. (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 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 Strin

[kaffe] BUG: ArrayStoreException when storing arrays in multi-dimensional arrays

2004-12-07 Thread Mark Wielaard
Hi,

The following program:

public class Test
{
  static final char[] initCharArray =
  new char[] {'\u', '\u', '\u', '\u', '\u',
'\u'};
  public static final char[][][][] charArray_length =
  new char[1][1][1][];

  public static void main(String[] args)
  {
charArray_length[0][0][0] = initCharArray;
  }
}

gives:

java.lang.ArrayStoreException: can't store `[C' in `[[[C'
   at Test.main (Test.java:10)

But this is a perfectly valid store.

Hope someone immediately knows where in the source this array store is
done.

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


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


[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_Ob

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


[kaffe] Internal error: caught an unexpected exception.

2004-10-15 Thread Mark Wielaard
Hi,

Sometimes, but not always, I get:

Internal error: caught an unexpected exception.
Please check your CLASSPATH and your installation.
java/lang/NullPointerException

It seems to mostly happen when my machine is doing lots of disk
activity. If I wait till the machine is completely idle before starting
an app it works fine.

Anyone seen that before?

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


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_BUGRE

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


Re: [kaffe] CVS kaffe (dalibor): Fixed build with sparc jit

2004-07-13 Thread Mark Wielaard
Hi,

On Tue, 2004-07-13 at 17:04, Kaffe CVS wrote:
> @@ -899,16 +899,16 @@
>  
>   /* Align data onto relevant boundary */
>   if (l->size == 2 && ((uintp)CODEPC) % 8 != 0) {
> - LOUT = 0;
> + LOUT(0;
>   }

Missing closing bracket there?

Cheers,

Mark


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


Re: [kaffe] Problem with String.split(String)

2004-06-10 Thread Mark Wielaard
Hi,

On Thu, 2004-06-10 at 07:30, Guilhem Lavaux wrote:
> There seems to be some missing file properties in kaffe. Dalibor could 
> you import it from GNU Regexp ?

It looks like CVS at least contains gnu/regexp/MessagesBundle.properties
which should be picked up when everything else fails. The test program
also fails for me with the kaffe CVS version, but works correctly with
the debian kaffe 1.1.4 and 1.1.5-pre packages (ChangeLog head:
2004-04-30  Guilhem Lavaux <[EMAIL PROTECTED]>). So maybe it is a recent
regression?

Cheers,

Mark


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


[kaffe] Re: Current unsynced patches between kaffe and GNU Classpath

2004-03-08 Thread Mark Wielaard
Hi Dalibor,

On Mon, 2004-03-08 at 15:54, Dalibor Topic wrote:
> That's about it. I'll check in some small stuff (n, m, g, f). The text 
> changes should be synchronized between Michael Koch and Guilhem, the 
> networking changes may need more work before they are ready for GNU 
> Classpath.

Thanks for the list! Please check in the small stuff you mentioned (I am
embarrassed to see one of my own patches not being in GNU Classpath...)
But please CC me the patch/diff when you do. And please send me an email
when you are done. The classpath mailinglist seems to have a delay of
48+ hours so it is not very useful for coordinating the release. I do
finally want to make a test-release tonight though.

Cheers,

Mark


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


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

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));
 		}
 	}
 


[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 01:15, Michael Franz wrote:
> --- Dalibor Topic <[EMAIL PROTECTED]> wrote:
> > important philosophical differences
> 
> What are the philosophical differences?

Mainly about whether or not to promote and advertise non-free software.
As you probably know the FSF and the GNU project have a very strong
opinion about that. Debian takes the approach that offering and
supporting a non-free package archive isn't a real problem. Some people
disagree. (Just compare the very poor support for most of the free
software packages written in the java-language to work out of the box
with free VMs compared to other distributions who strongly supports only
using Free Software. e.g. Red Hat with rhug, naoko and native-eclipse.)

Although it is important to stress these philosophical differences,
don't let that distract you from the immediate problem of what to do
about these compromises of our free software collaboration
infrastructure and checking your machines for things that might not be
as they are supposed to be.

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
--- Begin Message ---
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: 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-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: GregorianCalendar fixes

2003-11-27 Thread Mark Wielaard
Hi,

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.

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=detailpatch&patch_id=2334&group_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


Re: [kaffe] Eclipse 3.0M4 on kaffe

2003-10-31 Thread Mark Wielaard
Hi all,

On Thu, 2003-10-30 at 22:34, Mark Wielaard wrote:
> You will need eclipse-SDK-3.0M4-linux-gtk.zip from:
> http://download2.eclipse.org/downloads/drops/S-3.0M4-200310101454/

The same setup also works for the older eclipse-SDK-2.1.1-linux-gtk.zip.

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

This isn't necessary since I was using an "old" kaffe from CVS. In
recent CVS this and this has already been merged. (I was only 4 days
behind, but lots has changed and eclipse feels much more stable!).

> 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

And with one more patch to remove an assert() you can also get the
Windows->Open Perspective->CVS Repository Exploring working.

diff -u -r1.43 machine.c
--- kaffe/kaffevm/jit3/machine.c11 Oct 2003 20:45:50 -  1.43
+++ kaffe/kaffevm/jit3/machine.c31 Oct 2003 09:17:31 -
@@ -618,7 +618,7 @@
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);
+   // assert (e->start_pc <= e->end_pc);
}
}

This patch is also probably not a good idea, but hey, we want
screenshots!. And Tada, new screeny, actual checkout of kaffe inside
Eclipse with "visual compare" function:
http://www.klomp.org/mark/classpath/Screenshot-Kaffe-Eclipse3-cvs.png

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

A quick look doesn't show that much spectacular things (which
corresponds with the general feeling that most things just work!). It
seems that the JNI swt bindings use some other things which are not
implemented/produce NullPointerExceptions, but strangely this does not
really impact usability.

The interesting one is:

java.io.UTFDataFormatException: byte #5 invalid
   at kaffe.util.UTF8.decode (UTF8.java:87)
   at java.io.DataInputStream.readUTF (DataInputStream.java:175)
   at java.io.DataInputStream.readUTF (DataInputStream.java:171)
   at java.io.ObjectInputStream.readClassDescriptor (ObjectInputStream.java:424)   at 
java.io.ObjectInputStream.readObject (ObjectInputStream.java:226)
   at java.io.ObjectInputStream.readObject (ObjectInputStream.java:272)
   at org.eclipse.core.internal.runtime.AuthorizationDatabase.load 
(AuthorizationDatabase.java:270)
   [...]

This is probably kaffe serializing something to a file and beig unable
to deserialize it from that same file. Either writing or reading is
broken.

There are also some problems when running Ant on a project, but since
Ant almost immediatly cries that it cannot find tools.jar I have ignored
it.

Cheers,

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


[kaffe] Re: Bug Report: unexpected IllegalArgumentException from java.text.DecimalFormat

2003-10-23 Thread Mark Wielaard
Hi,

On Wed, 2003-10-22 at 18:33, Tom Tromey wrote:
> I'd like to get you (and the other kaffe developers) direct
> cvs write access, so that we can lower the barriers to getting these
> fixes checked in.  Assuming this is ok with Mark and everybody else,
> of course.  Otherwise, send me a ChangeLog entry and I'll check this
> in.

Just for the record. I would be OK with this and Ito has filed paperwork
with the FSF so there should be no holdup on any of his patches anymore.

As always I am asking people that want to contribute to GNU Classpath to
carefully read the following so we all agree on how these things are
handled: http://www.gnu.org/software/classpath/docs/hacking.html#SEC2

I apologize for the sometimes much to large delay between Kaffe hackers
submitting bug reports (with patches!) and importing them into
Classpath. My only defense is that the Kaffe Hackers are incredibly fast
in adopting GNU Classpath as their library and found so many little and
big issues already (yeah! kaffe regression testsuite) it is almost
embarrassing.

Cheers,

Mark


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


[kaffe] Workshop/BoF: Graphics in GNU Classpath

2003-09-18 Thread Mark Wielaard
Hi all,

As you might already know Sascha Brawer convinced the nice people of
Linux Kongress 2003 to let us have a GNU Classpath developers workshop
about graphics support. It will take place on Tuesday Oct 14th in
Saarbrücken, Germany. And attending the workshop will be free. Much
thanks go to the Linux Kongress organizers! (*).

We now have two speakers. Jean-Daniel Fekete will give a talk about the
Agile2D OpenGL Renderer. And Mark Wielaard will talk about the GNU
Classpath VM interface issues. There is room for more presentations so
if you would like to give a presentation during the workshop or have
ideas for topics to discuss, please contact Sascha Brawer
([EMAIL PROTECTED]).

More details (and some papers to discuss) can be found at:
http://www.linux-kongress.org/2003/bofs/index.html#classpath

Hope to see some of you there.

Cheers,

Mark

(*) The official 10th International Linux System Technology Conference
program costs money but the program is really nice. There will be onde
day of tutorials, two days of talks, a keysigning party, a social event
and a keynote by Red Hat's CTO Michael Tiemann. So you are encouraged to
participate. See: http://www.linux-kongress.org/2003/


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


[kaffe] s/CheckException/ExceptionCheck/

2003-08-09 Thread Mark Wielaard
Hi,

It seems I made a typo when adding the new JNI 1.2 method.

2003-08-08 Mark Wielaard  <[EMAIL PROTECTED]>

* include/jni_cpp.h (JNIEnv::CheckException): Change to
ExceptionCheck.

Thanks to Chris Halls for finding this.
I believe he now has some other small JNI 1.2 thingies that he would
like to see added to kaffe :)

Cheers,

Mark
Index: include/jni_cpp.h
===
RCS file: /cvs/kaffe/kaffe/include/jni_cpp.h,v
retrieving revision 1.5
diff -u -r1.5 jni_cpp.h
--- include/jni_cpp.h	7 Jul 2003 18:02:16 -	1.5
+++ include/jni_cpp.h	8 Aug 2003 17:01:37 -
@@ -1201,9 +1201,9 @@
 	return (functions->GetJavaVM(this, a));
 }
 
-inline jboolean JNIEnv::CheckException(void)
+inline jboolean JNIEnv::ExceptionCheck(void)
 {
-	return (functions->CheckException(this));
+	return (functions->ExceptionCheck(this));
 }
 
 #endif


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

2003-07-27 Thread Mark Wielaard
Hi,

On Tue, 2003-07-15 at 00:58, Mark Wielaard wrote:
> 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.

Would someone like to go over the patch?
Some hints on what/why things should be improved with the patch as it
currently is (I am sure that I misunderstood some of the
esential/bootstrap file entries) would be greatly appreciated.

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

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


Re: [kaffe] Eclipse and strange ClassCastException

2003-07-07 Thread Mark Wielaard
Hi Helmer,

On Mon, 2003-07-07 at 19:32, Helmer Krämer wrote:
> > Next problem is a failure in System.arraycopy() 
> 
> I've just commited a fix for this one.
> 
> If I start eclipse with this command line:
> 
> LD_LIBRARY_PATH=plugins/org.eclipse.swt.gtk_2.1.0/os/linux/x86 ./eclipse -debug -vm 
> /usr/local/kaffe/bin/java
> 
> it's running for some time, then complains
> that the workspace layout could not be restored
> and finally quits with an OutOfMemoryError

But, but, but,... If you do have enough memory you get
>http://www.klomp.org/mark/kaffe-eclipse.html>
As you can see I wasn't actually able to create a real Hello World
application but that it actually starts up and let me try these things
out is really, really nice.

Helmer, I think you actually did it!

Cheers,

Mark


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


Re: [kaffe] Eclipse and strange ClassCastException

2003-07-07 Thread Mark Wielaard
Hi,

On Mon, 2003-07-07 at 12:39, Mark Wielaard wrote:
> The workaround for IKVM.NET was to add the xmlParserAPIs.jar and
> xercesImpl.jar to the bootclasspath but that doesn't work for kaffe.

O, spoke to soon... It does work. I can see BOTH the Eclipse splash
screens now! Admittedly it crashes soon after that, but this means that
it actually finishes the installation process and tries to actually
start the real application now. Joy!

Attached is the small patch that I made to the source.
And the workspace/.metadata/.log file which shows the errors while
running.

The following is my command line and the console output:

$ 
BOOTCLASSPATH=plugins/org.apache.xerces_4.0.7/xmlParserAPIs.jar:plugins/org.apache.xerces_4.0.7/xercesImpl.jar
 ./eclipse -debug
Start VM: /usr/local/kaffe/bin/java
-cp /tmp/eclipse/./startup.jar org.eclipse.core.launcher.Main
-os linux
-ws gtk
-arch x86
-showsplash /tmp/eclipse/./eclipse -showsplash 600
-debug
Startup: unable to load configuration
java.io.FileNotFoundException: /tmp/eclipse/.config/platform.cfg: No such file or 
directory
Boot URL:
file:/tmp/eclipse/plugins/org.eclipse.core.boot_2.1.0/boot.jar
Startup: splash path = /tmp/eclipse/plugins/org.eclipse.core.boot_2.1.0/splash.bmp
Workspace location:
   /tmp/eclipse/workspace
Debug-Options:
file:/tmp/eclipse/.options
Install URL:
file:/tmp/eclipse/
Start VM: /usr/local/kaffe/bin/java
-cp /tmp/eclipse/./startup.jar org.eclipse.core.launcher.Main
-os linux
-ws gtk
-arch x86
-showsplash /tmp/eclipse/./eclipse -showsplash 600
-debug
Startup: using configuration file:/tmp/eclipse/workspace/.metadata/.config/platform.cfg
Boot URL: file:/tmp/eclipse/plugins/org.eclipse.core.boot_2.1.0/boot.jar
Startup: splash path = /tmp/eclipse/plugins/org.eclipse.platform_2.1.0/splash.bmp
Workspace location:
   /tmp/eclipse/workspace
Debug-Options:
file:/tmp/eclipse/.options
Install URL:
file:/tmp/eclipse/


Cheers,

Mark
Index: libraries/clib/native/System.c
===
RCS file: /cvs/kaffe/kaffe/libraries/clib/native/System.c,v
retrieving revision 1.35
diff -u -r1.35 System.c
--- libraries/clib/native/System.c	11 Jun 2003 16:08:56 -	1.35
+++ libraries/clib/native/System.c	7 Jul 2003 11:02:21 -
@@ -234,7 +234,7 @@
 	 *
 	 */
 
-	setProperty(p, "java.version", kaffe_version);
+	setProperty(p, "java.version", "1.3");
 	setProperty(p, "java.vendor", kaffe_vendor);
 	setProperty(p, "java.vendor.url", kaffe_vendor_url);
 	setProperty(p, "java.vendor.url.bug", kaffe_vendor_url_bug);
Index: libraries/javalib/java/net/URL.java
===
RCS file: /cvs/kaffe/kaffe/libraries/javalib/java/net/URL.java,v
retrieving revision 1.30
diff -u -r1.30 URL.java
--- libraries/javalib/java/net/URL.java	11 May 2003 16:26:23 -	1.30
+++ libraries/javalib/java/net/URL.java	7 Jul 2003 11:02:21 -
@@ -205,6 +205,16 @@
 	return (file);
 }
 
+public String getPath() {
+	int query = file.indexOf('?');
+	return query == -1 ? file : file.substring(0, query);
+}
+
+public String getQuery() {
+	int query = file.indexOf('?');
+	return query == -1 ? null : file.substring(query + 1);
+}
+
 public String getHost() {
 	return (host);
 }
!SESSION Jul 07, 2003 11:01:50.387 -
java.version=1.3
java.vendor=Kaffe.org project
BootLoader constants: OS=linux, ARCH=x86, WS=gtk, NL=en_US
Command-line arguments: -os linux -ws gtk -arch x86 -debug -install file:/tmp/eclipse/
!ENTRY org.eclipse.core.runtime 4 4 Jul 07, 2003 11:01:50.395
!MESSAGE Unable to read authorization database: 
/tmp/eclipse/workspace/.metadata/.keyring.
!STACK 0
java.io.StreamCorruptedException: bad magic in stream header (-14967, expected -21267)
at java.lang.Throwable.fillInStackTrace(Throwable.java:native)
at java.lang.Throwable.(Throwable.java:44)
at java.lang.Exception.(Exception.java:24)
at java.io.IOException.(IOException.java:24)
at java.io.ObjectStreamException.(ObjectStreamException.java:23)
at java.io.StreamCorruptedException.(StreamCorruptedException.java:21)
at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:298)
at java.io.ObjectInputStream.(ObjectInputStream.java:185)
at 
org.eclipse.core.internal.runtime.AuthorizationDatabase.load(AuthorizationDatabase.java:268)
at 
org.eclipse.core.internal.runtime.AuthorizationDatabase.load(AuthorizationDatabase.java:252)
at 
org.eclipse.core.internal.runtime.AuthorizationDatabase.(AuthorizationDatabase.java:77)
at 
org.eclipse.core.internal.runtime.InternalPlatform.loadKeyring(InternalPlatform.java:618)
at 
org.eclipse.core.internal.runtime.InternalPlatform.loaderStartup(InternalPlatform.java:591)
at java.lang.reflect.Method.invoke0

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] 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.
 
+  http://www.klomp.org/snark/";>Snark
+
+	  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.
+
+	  Status: Works.
 
 
 
@@ -625,6 +633,12 @@
 
 	  Status: Untested.
 
+  http://java-gnome.sourceforge.net/";>java-gnome
+
+	  A set of Java bindings for the GNOME and GTK libraries.
+
+	  Status: Works.
+
 
 
 
@@ -652,7 +666,7 @@
 mailto:[EMAIL PROTECTED]">Jim Pick
 
 
-Last modified: Fri Apr  4 19:04:39 CEST 2003
+Last modified: Mon Jul  7 10:56:04 CEST 2003
 
 
 


[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


[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())->ex

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

2003-07-04 Thread Mark Wielaard
Hi,

On Sat, 2003-07-05 at 00:48, Mark Wielaard wrote:
> 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.

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!

Yeah! Now I can finally go to sleep :)

Good night,

Mark


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


  1   2   >