PatchSet 7353 Date: 2006/07/16 13:50:37 Author: robilad Branch: HEAD Tag: (none) Log: purged unused org.kaffe.io classes and moved AccessibleBAOStream over to kaffe awt implementation
2006-07-16 Dalibor Topic <[EMAIL PROTECTED]> * libraries/javalib/vmspecific/org/kaffe/io/AccessibleBAOStream.java, libraries/javalib/vmspecific/org/kaffe/io/NullOutputStream.java, libraries/javalib/vmspecific/org/kaffe/io/StdErrorStream.java, libraries/javalib/vmspecific/org/kaffe/io/StdInputStream.java, libraries/javalib/vmspecific/org/kaffe/io/StdOutputStream.java: Removed. * libraries/javalib/awt-implementations/kaffe/Makefile.am: Added org/kaffe/io/AccessibleBAOStream.java. * libraries/javalib/awt-implementations/kaffe/org/kaffe/io/AccessibleBAOStream.java: Moved over here from libraries/javalib/vmspecific/org/kaffe/io/AccessibleBAOStream.java. Members: ChangeLog:1.4856->1.4857 libraries/javalib/Makefile.am:1.439->1.440 libraries/javalib/Makefile.in:1.552->1.553 libraries/javalib/awt-implementations/kaffe/Makefile.am:1.18->1.19 libraries/javalib/awt-implementations/kaffe/Makefile.in:1.70->1.71 libraries/javalib/awt-implementations/kaffe/org/kaffe/io/AccessibleBAOStream.java:INITIAL->1.1 libraries/javalib/vmspecific/org/kaffe/io/AccessibleBAOStream.java:1.1->1.2(DEAD) libraries/javalib/vmspecific/org/kaffe/io/NullOutputStream.java:1.1->1.2(DEAD) libraries/javalib/vmspecific/org/kaffe/io/StdErrorStream.java:1.1->1.2(DEAD) libraries/javalib/vmspecific/org/kaffe/io/StdInputStream.java:1.1->1.2(DEAD) libraries/javalib/vmspecific/org/kaffe/io/StdOutputStream.java:1.1->1.2(DEAD) Index: kaffe/ChangeLog diff -u kaffe/ChangeLog:1.4856 kaffe/ChangeLog:1.4857 --- kaffe/ChangeLog:1.4856 Sun Jul 16 13:32:20 2006 +++ kaffe/ChangeLog Sun Jul 16 13:50:37 2006 @@ -1,5 +1,20 @@ 2006-07-16 Dalibor Topic <[EMAIL PROTECTED]> + * libraries/javalib/vmspecific/org/kaffe/io/AccessibleBAOStream.java, + libraries/javalib/vmspecific/org/kaffe/io/NullOutputStream.java, + libraries/javalib/vmspecific/org/kaffe/io/StdErrorStream.java, + libraries/javalib/vmspecific/org/kaffe/io/StdInputStream.java, + libraries/javalib/vmspecific/org/kaffe/io/StdOutputStream.java: + Removed. + + * libraries/javalib/awt-implementations/kaffe/Makefile.am: + Added org/kaffe/io/AccessibleBAOStream.java. + + * libraries/javalib/awt-implementations/kaffe/org/kaffe/io/AccessibleBAOStream.java: + Moved over here from libraries/javalib/vmspecific/org/kaffe/io/AccessibleBAOStream.java. + +2006-07-16 Dalibor Topic <[EMAIL PROTECTED]> + * developers/README.unicode, developers/unicode.pl, libraries/javalib/vmspecific/org/kaffe/lang/unicode.idx, Index: kaffe/libraries/javalib/Makefile.am diff -u kaffe/libraries/javalib/Makefile.am:1.439 kaffe/libraries/javalib/Makefile.am:1.440 --- kaffe/libraries/javalib/Makefile.am:1.439 Sun Jul 16 13:32:39 2006 +++ kaffe/libraries/javalib/Makefile.am Sun Jul 16 13:50:51 2006 @@ -270,11 +270,6 @@ vmspecific/java/util/zip/ZipFile.java \ vmspecific/java/util/zip/ZipInputStream.java \ vmspecific/java/util/zip/ZipOutputStream.java \ - vmspecific/org/kaffe/io/AccessibleBAOStream.java \ - vmspecific/org/kaffe/io/NullOutputStream.java \ - vmspecific/org/kaffe/io/StdErrorStream.java \ - vmspecific/org/kaffe/io/StdInputStream.java \ - vmspecific/org/kaffe/io/StdOutputStream.java \ vmspecific/org/kaffe/jar/ExecJar.java \ vmspecific/org/kaffe/jar/ExecJarName.java \ vmspecific/org/kaffe/lang/ClassPathReader.java \ Index: kaffe/libraries/javalib/Makefile.in diff -u kaffe/libraries/javalib/Makefile.in:1.552 kaffe/libraries/javalib/Makefile.in:1.553 --- kaffe/libraries/javalib/Makefile.in:1.552 Sun Jul 16 13:32:41 2006 +++ kaffe/libraries/javalib/Makefile.in Sun Jul 16 13:50:53 2006 @@ -585,11 +585,6 @@ vmspecific/java/util/zip/ZipFile.java \ vmspecific/java/util/zip/ZipInputStream.java \ vmspecific/java/util/zip/ZipOutputStream.java \ - vmspecific/org/kaffe/io/AccessibleBAOStream.java \ - vmspecific/org/kaffe/io/NullOutputStream.java \ - vmspecific/org/kaffe/io/StdErrorStream.java \ - vmspecific/org/kaffe/io/StdInputStream.java \ - vmspecific/org/kaffe/io/StdOutputStream.java \ vmspecific/org/kaffe/jar/ExecJar.java \ vmspecific/org/kaffe/jar/ExecJarName.java \ vmspecific/org/kaffe/lang/ClassPathReader.java \ @@ -1096,7 +1091,7 @@ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) - $(mkdir_p) $(distdir)/vmspecific/META-INF $(distdir)/vmspecific/META-INF/services $(distdir)/vmspecific/gnu/bytecodecvssnap $(distdir)/vmspecific/gnu/classpath $(distdir)/vmspecific/gnu/classpath/jdwp $(distdir)/vmspecific/gnu/getopt $(distdir)/vmspecific/gnu/inet/comsat $(distdir)/vmspecific/gnu/inet/finger $(distdir)/vmspecific/gnu/inet/gopher $(distdir)/vmspecific/gnu/inet/imap $(distdir)/vmspecific/gnu/inet/ldap $(distdir)/vmspecific/gnu/inet/nntp $(distdir)/vmspecific/gnu/inet/pop3 $(distdir)/vmspecific/gnu/inet/smtp $(distdir)/vmspecific/gnu/inet/util $(distdir)/vmspecific/gnu/java/lang $(distdir)/vmspecific/gnu/java/lang/management $(distdir)/vmspecific/gnu/java/net $(distdir)/vmspecific/gnu/java/nio $(distdir)/vmspecific/java/io $(distdir)/vmspecific/java/lang $(distdir)/vmspecific/java/lang/management $(distdir)/vmspecific/java/lang/ref $(distdir)/vmspecific/java/lang/reflect $(distdir)/vmspecific/java/net $(distdir)/vmspecific/java/nio $(distdir)/vmspecific/java/nio/channels $(distdir)/vmspecific/java/security $(distdir)/vmspecific/java/util $(distdir)/vmspecific/java/util/mime $(distdir)/vmspecific/java/util/zip $(distdir)/vmspecific/org/kaffe/io $(distdir)/vmspecific/org/kaffe/jar $(distdir)/vmspecific/org/kaffe/lang $(distdir)/vmspecific/org/kaffe/management $(distdir)/vmspecific/org/kaffe/security $(distdir)/vmspecific/org/kaffe/security/provider $(distdir)/vmspecific/org/kaffe/util $(distdir)/vmspecific/org/kaffe/util/zip $(distdir)/vmspecific/org/objectweb/asm153 $(distdir)/vmspecific/org/tritonus/core $(distdir)/vmspecific/org/tritonus/lowlevel/alsa $(distdir)/vmspecific/org/tritonus/lowlevel/esd $(distdir)/vmspecific/org/tritonus/midi/device/alsa $(distdir)/vmspecific/org/tritonus/midi/file $(distdir)/vmspecific/org/tritonus/sampled/convert $(distdir)/vmspecific/org/tritonus/sampled/file $(distdir)/vmspecific/org/tritonus/sampled/mixer/alsa $(distdir)/vmspecific/org/tritonus/sampled/mixer/esd $(distdir)/vmspecific/org/tritonus/share $(distdir)/vmspecific/org/tritonus/share/midi $(distdir)/vmspecific/org/tritonus/share/sampled $(distdir)/vmspecific/org/tritonus/share/sampled/convert $(distdir)/vmspecific/org/tritonus/share/sampled/file $(distdir)/vmspecific/org/tritonus/share/sampled/mixer $(distdir)/vmspecific/org/xbill/DNS $(distdir)/vmspecific/org/xbill/DNS/security $(distdir)/vmspecific/org/xbill/DNS/utils + $(mkdir_p) $(distdir)/vmspecific/META-INF $(distdir)/vmspecific/META-INF/services $(distdir)/vmspecific/gnu/bytecodecvssnap $(distdir)/vmspecific/gnu/classpath $(distdir)/vmspecific/gnu/classpath/jdwp $(distdir)/vmspecific/gnu/getopt $(distdir)/vmspecific/gnu/inet/comsat $(distdir)/vmspecific/gnu/inet/finger $(distdir)/vmspecific/gnu/inet/gopher $(distdir)/vmspecific/gnu/inet/imap $(distdir)/vmspecific/gnu/inet/ldap $(distdir)/vmspecific/gnu/inet/nntp $(distdir)/vmspecific/gnu/inet/pop3 $(distdir)/vmspecific/gnu/inet/smtp $(distdir)/vmspecific/gnu/inet/util $(distdir)/vmspecific/gnu/java/lang $(distdir)/vmspecific/gnu/java/lang/management $(distdir)/vmspecific/gnu/java/net $(distdir)/vmspecific/gnu/java/nio $(distdir)/vmspecific/java/io $(distdir)/vmspecific/java/lang $(distdir)/vmspecific/java/lang/management $(distdir)/vmspecific/java/lang/ref $(distdir)/vmspecific/java/lang/reflect $(distdir)/vmspecific/java/net $(distdir)/vmspecific/java/nio $(distdir)/vmspecific/java/nio/channels $(distdir)/vmspecific/java/security $(distdir)/vmspecific/java/util $(distdir)/vmspecific/java/util/mime $(distdir)/vmspecific/java/util/zip $(distdir)/vmspecific/org/kaffe/jar $(distdir)/vmspecific/org/kaffe/lang $(distdir)/vmspecific/org/kaffe/management $(distdir)/vmspecific/org/kaffe/security $(distdir)/vmspecific/org/kaffe/security/provider $(distdir)/vmspecific/org/kaffe/util $(distdir)/vmspecific/org/kaffe/util/zip $(distdir)/vmspecific/org/objectweb/asm153 $(distdir)/vmspecific/org/tritonus/core $(distdir)/vmspecific/org/tritonus/lowlevel/alsa $(distdir)/vmspecific/org/tritonus/lowlevel/esd $(distdir)/vmspecific/org/tritonus/midi/device/alsa $(distdir)/vmspecific/org/tritonus/midi/file $(distdir)/vmspecific/org/tritonus/sampled/convert $(distdir)/vmspecific/org/tritonus/sampled/file $(distdir)/vmspecific/org/tritonus/sampled/mixer/alsa $(distdir)/vmspecific/org/tritonus/sampled/mixer/esd $(distdir)/vmspecific/org/tritonus/share $(distdir)/vmspecific/org/tritonus/share/midi $(distdir)/vmspecific/org/tritonus/share/sampled $(distdir)/vmspecific/org/tritonus/share/sampled/convert $(distdir)/vmspecific/org/tritonus/share/sampled/file $(distdir)/vmspecific/org/tritonus/share/sampled/mixer $(distdir)/vmspecific/org/xbill/DNS $(distdir)/vmspecific/org/xbill/DNS/security $(distdir)/vmspecific/org/xbill/DNS/utils @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ Index: kaffe/libraries/javalib/awt-implementations/kaffe/Makefile.am diff -u kaffe/libraries/javalib/awt-implementations/kaffe/Makefile.am:1.18 kaffe/libraries/javalib/awt-implementations/kaffe/Makefile.am:1.19 --- kaffe/libraries/javalib/awt-implementations/kaffe/Makefile.am:1.18 Fri May 5 23:26:15 2006 +++ kaffe/libraries/javalib/awt-implementations/kaffe/Makefile.am Sun Jul 16 13:50:57 2006 @@ -25,6 +25,7 @@ $(java_awt_image_renderable_SRCS) \ $(org_kaffe_applet_SRCS) \ $(org_kaffe_awt_SRCS) \ + $(org_kaffe_io_SRCS) \ $(org_kaffe_util_log_SRCS) java_applet_SRCS = \ java/applet/AppletContext.java \ @@ -314,6 +315,8 @@ org/kaffe/awt/ObjectSelection.java \ org/kaffe/awt/OpaqueComponent.java \ org/kaffe/awt/SerializerConverter.java +org_kaffe_io_SRCS = \ + org/kaffe/io/AccessibleBAOStream.java org_kaffe_util_log_SRCS = \ org/kaffe/util/log/LogClient.java \ org/kaffe/util/log/LogStream.java \ Index: kaffe/libraries/javalib/awt-implementations/kaffe/Makefile.in diff -u kaffe/libraries/javalib/awt-implementations/kaffe/Makefile.in:1.70 kaffe/libraries/javalib/awt-implementations/kaffe/Makefile.in:1.71 --- kaffe/libraries/javalib/awt-implementations/kaffe/Makefile.in:1.70 Thu Jul 13 20:24:05 2006 +++ kaffe/libraries/javalib/awt-implementations/kaffe/Makefile.in Sun Jul 16 13:50:58 2006 @@ -369,6 +369,7 @@ $(java_awt_image_renderable_SRCS) \ $(org_kaffe_applet_SRCS) \ $(org_kaffe_awt_SRCS) \ + $(org_kaffe_io_SRCS) \ $(org_kaffe_util_log_SRCS) java_applet_SRCS = \ @@ -671,6 +672,9 @@ org/kaffe/awt/OpaqueComponent.java \ org/kaffe/awt/SerializerConverter.java +org_kaffe_io_SRCS = \ + org/kaffe/io/AccessibleBAOStream.java + org_kaffe_util_log_SRCS = \ org/kaffe/util/log/LogClient.java \ org/kaffe/util/log/LogStream.java \ @@ -750,7 +754,7 @@ distdir: $(DISTFILES) - $(mkdir_p) $(distdir)/java/applet $(distdir)/java/awt $(distdir)/java/awt/color $(distdir)/java/awt/datatransfer $(distdir)/java/awt/event $(distdir)/java/awt/font $(distdir)/java/awt/geom $(distdir)/java/awt/im $(distdir)/java/awt/image $(distdir)/java/awt/image/renderable $(distdir)/org/kaffe/applet $(distdir)/org/kaffe/awt $(distdir)/org/kaffe/util/log + $(mkdir_p) $(distdir)/java/applet $(distdir)/java/awt $(distdir)/java/awt/color $(distdir)/java/awt/datatransfer $(distdir)/java/awt/event $(distdir)/java/awt/font $(distdir)/java/awt/geom $(distdir)/java/awt/im $(distdir)/java/awt/image $(distdir)/java/awt/image/renderable $(distdir)/org/kaffe/applet $(distdir)/org/kaffe/awt $(distdir)/org/kaffe/io $(distdir)/org/kaffe/util/log @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ =================================================================== Checking out kaffe/libraries/javalib/awt-implementations/kaffe/org/kaffe/io/AccessibleBAOStream.java RCS: /home/cvs/kaffe/kaffe/libraries/javalib/awt-implementations/kaffe/org/kaffe/io/AccessibleBAOStream.java,v VERS: 1.1 *************** --- /dev/null Sun Aug 4 19:57:58 2002 +++ kaffe/libraries/javalib/awt-implementations/kaffe/org/kaffe/io/AccessibleBAOStream.java Sun Jul 16 14:44:52 2006 @@ -0,0 +1,76 @@ +/* + * kaffe.io.AccessibleBAOStream - accessible ByteArrayOutputStream + * + * The sole reason ot this class is to provide access (to set or get to + * the stream buffer. There are a number of cases where data has to be + * stored "temporarily" in memory, to be later processed as a byte array. + * Some of these cases can produce large data chunks (e.g. image processing), + * and copying these chunks by means of toByteArray() (just to pass on the + * data) can simply consume too much memory. + * + * Copyright (c) 1998 + * Transvirtual Technologies, Inc. All rights reserved. + * + * See the file "license.terms" for information on usage and redistribution + * of this file. + * + */ + +package org.kaffe.io; + +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.InputStream; + +public class AccessibleBAOStream + extends ByteArrayOutputStream +{ +public AccessibleBAOStream ( byte[] buf ) { + this.buf = buf; +} + +public AccessibleBAOStream ( byte[] buf, int offset ) { + this.buf = buf; + this.count = offset; + if ( offset > buf.length ) { + throw new IllegalArgumentException( "offset too large"); + } +} + +public AccessibleBAOStream ( int size ) { + super( size); +} + +public byte[] getBuffer() { + return buf; +} + +public void readFrom(InputStream in) { + int remain; + int r; + + for (;;) { + remain = buf.length - count; + if (remain <= 0) { + byte oldBuf[] = buf; + buf = new byte[oldBuf.length + 1024]; + System.arraycopy(oldBuf, 0, buf, 0, oldBuf.length); + remain = buf.length - count; + } + if (remain > 1024) { + remain = 1024; + } + try { + r = in.read(buf, count, remain); + } + catch (IOException _) { + break; + } + if (r <= 0) { + break; + } + count += r; + } +} + +} =================================================================== Checking out kaffe/libraries/javalib/vmspecific/org/kaffe/io/AccessibleBAOStream.java RCS: /home/cvs/kaffe/kaffe/libraries/javalib/vmspecific/org/kaffe/io/Attic/AccessibleBAOStream.java,v VERS: 1.1 *************** --- kaffe/libraries/javalib/vmspecific/org/kaffe/io/AccessibleBAOStream.java Sun Jul 16 14:44:53 2006 +++ /dev/null Sun Aug 4 19:57:58 2002 @@ -1,76 +0,0 @@ -/* - * kaffe.io.AccessibleBAOStream - accessible ByteArrayOutputStream - * - * The sole reason ot this class is to provide access (to set or get to - * the stream buffer. There are a number of cases where data has to be - * stored "temporarily" in memory, to be later processed as a byte array. - * Some of these cases can produce large data chunks (e.g. image processing), - * and copying these chunks by means of toByteArray() (just to pass on the - * data) can simply consume too much memory. - * - * Copyright (c) 1998 - * Transvirtual Technologies, Inc. All rights reserved. - * - * See the file "license.terms" for information on usage and redistribution - * of this file. - * - */ - -package org.kaffe.io; - -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.io.InputStream; - -public class AccessibleBAOStream - extends ByteArrayOutputStream -{ -public AccessibleBAOStream ( byte[] buf ) { - this.buf = buf; -} - -public AccessibleBAOStream ( byte[] buf, int offset ) { - this.buf = buf; - this.count = offset; - if ( offset > buf.length ) { - throw new IllegalArgumentException( "offset too large"); - } -} - -public AccessibleBAOStream ( int size ) { - super( size); -} - -public byte[] getBuffer() { - return buf; -} - -public void readFrom(InputStream in) { - int remain; - int r; - - for (;;) { - remain = buf.length - count; - if (remain <= 0) { - byte oldBuf[] = buf; - buf = new byte[oldBuf.length + 1024]; - System.arraycopy(oldBuf, 0, buf, 0, oldBuf.length); - remain = buf.length - count; - } - if (remain > 1024) { - remain = 1024; - } - try { - r = in.read(buf, count, remain); - } - catch (IOException _) { - break; - } - if (r <= 0) { - break; - } - count += r; - } -} - -} =================================================================== Checking out kaffe/libraries/javalib/vmspecific/org/kaffe/io/NullOutputStream.java RCS: /home/cvs/kaffe/kaffe/libraries/javalib/vmspecific/org/kaffe/io/Attic/NullOutputStream.java,v VERS: 1.1 *************** --- kaffe/libraries/javalib/vmspecific/org/kaffe/io/NullOutputStream.java Sun Jul 16 14:44:53 2006 +++ /dev/null Sun Aug 4 19:57:58 2002 @@ -1,32 +0,0 @@ -/** - * NullOutputStream - an OutputStream without any side effects (the most - * clean thing) - * - * Copyright (c) 1999 - * Transvirtual Technologies, Inc. All rights reserved. - * - * See the file "license.terms" for information on usage and redistribution - * of this file. - * - */ - -package org.kaffe.io; - -import java.io.OutputStream; - -public class NullOutputStream - extends OutputStream -{ - public static NullOutputStream singleton; - -static { - singleton = new NullOutputStream(); -} - -public NullOutputStream () { -} - -public void write ( int b ) { - // the big black hole.. -} -} =================================================================== Checking out kaffe/libraries/javalib/vmspecific/org/kaffe/io/StdErrorStream.java RCS: /home/cvs/kaffe/kaffe/libraries/javalib/vmspecific/org/kaffe/io/Attic/StdErrorStream.java,v VERS: 1.1 *************** --- kaffe/libraries/javalib/vmspecific/org/kaffe/io/StdErrorStream.java Sun Jul 16 14:44:53 2006 +++ /dev/null Sun Aug 4 19:57:58 2002 @@ -1,28 +0,0 @@ -/* - * Java core library component. - * - * Copyright (c) 1997, 1998 - * Transvirtual Technologies, Inc. All rights reserved. - * - * See the file "license.terms" for information on usage and redistribution - * of this file. - */ - -package org.kaffe.io; - -import java.io.IOException; -import java.io.OutputStream; - -public class StdErrorStream - extends OutputStream { - -static { - System.loadLibrary("javaio"); -} - -public StdErrorStream() { -} - -native public void write(int b) throws IOException; - -} =================================================================== Checking out kaffe/libraries/javalib/vmspecific/org/kaffe/io/StdInputStream.java RCS: /home/cvs/kaffe/kaffe/libraries/javalib/vmspecific/org/kaffe/io/Attic/StdInputStream.java,v VERS: 1.1 *************** --- kaffe/libraries/javalib/vmspecific/org/kaffe/io/StdInputStream.java Sun Jul 16 14:44:54 2006 +++ /dev/null Sun Aug 4 19:57:58 2002 @@ -1,28 +0,0 @@ -/* - * Java core library component. - * - * Copyright (c) 1997, 1998 - * Transvirtual Technologies, Inc. All rights reserved. - * - * See the file "license.terms" for information on usage and redistribution - * of this file. - */ - -package org.kaffe.io; - -import java.io.IOException; -import java.io.InputStream; - -public class StdInputStream - extends InputStream { - -static { - System.loadLibrary("javaio"); -} - -public StdInputStream() { -} - -native public int read() throws IOException; - -} =================================================================== Checking out kaffe/libraries/javalib/vmspecific/org/kaffe/io/StdOutputStream.java RCS: /home/cvs/kaffe/kaffe/libraries/javalib/vmspecific/org/kaffe/io/Attic/StdOutputStream.java,v VERS: 1.1 *************** --- kaffe/libraries/javalib/vmspecific/org/kaffe/io/StdOutputStream.java Sun Jul 16 14:44:54 2006 +++ /dev/null Sun Aug 4 19:57:58 2002 @@ -1,28 +0,0 @@ -/* - * Java core library component. - * - * Copyright (c) 1997, 1998 - * Transvirtual Technologies, Inc. All rights reserved. - * - * See the file "license.terms" for information on usage and redistribution - * of this file. - */ - -package org.kaffe.io; - -import java.io.IOException; -import java.io.OutputStream; - -public class StdOutputStream - extends OutputStream { - -static { - System.loadLibrary("javaio"); -} - -public StdOutputStream() { -} - -native public void write(int b) throws IOException; - -} _______________________________________________ kaffe mailing list kaffe@kaffe.org http://kaffe.org/cgi-bin/mailman/listinfo/kaffe