Commit f911ba98 by Tom Tromey

Initial revision

From-SVN: r102074
parent 6f4434b3

Too many changes to show.

To preserve performance only 1000 of 1000+ files are displayed.

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry excluding="compat/|examples/|external/|gnu/javax/swing/plaf/|test/|testsuite/|vm/reference/" kind="src" path="">
<attributes>
</attributes>
</classpathentry>
<classpathentry kind="src" path="vm/reference">
<attributes>
</attributes>
</classpathentry>
<classpathentry kind="src" path="external/sax">
<attributes>
</attributes>
</classpathentry>
<classpathentry kind="src" path="external/w3c_dom">
<attributes>
</attributes>
</classpathentry>
<classpathentry kind="src" path="examples">
<attributes>
</attributes>
</classpathentry>
<classpathentry kind="output" path="bin"/>
</classpath>
aclocal.m4
compile
configure
config.guess
config.log
config.cache
config.status
config.sub
config.h.in
config.h
libtool
ltmain.sh
Makefile
Makefile.in
stamp-h
stamp-h.in
autom4te*.cache
<?xml version="1.0" encoding="UTF-8"?>
<launchConfiguration type="org.eclipse.ui.externaltools.ProgramBuilderLaunchConfigurationType">
<booleanAttribute key="org.eclipse.debug.ui.ATTR_LAUNCH_IN_BACKGROUND" value="false"/>
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_TOOL_ARGUMENTS" value="./autogen.sh"/>
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_RUN_BUILD_KINDS" value="full,incremental,"/>
<stringAttribute key="org.eclipse.debug.core.ATTR_REFRESH_SCOPE" value="${project}"/>
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_WORKING_DIRECTORY" value="${build_project}"/>
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="/bin/sh"/>
<booleanAttribute key="org.eclipse.ui.externaltools.ATTR_TRIGGERS_CONFIGURED" value="true"/>
<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
</launchConfiguration>
<?xml version="1.0" encoding="UTF-8"?>
<launchConfiguration type="org.eclipse.ui.externaltools.ProgramBuilderLaunchConfigurationType">
<booleanAttribute key="org.eclipse.debug.ui.ATTR_LAUNCH_IN_BACKGROUND" value="false"/>
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_RUN_BUILD_KINDS" value="full,incremental,"/>
<stringAttribute key="org.eclipse.debug.core.ATTR_REFRESH_SCOPE" value="${project}"/>
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_WORKING_DIRECTORY" value="${build_project}"/>
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="${build_project}/configure"/>
<booleanAttribute key="org.eclipse.ui.externaltools.ATTR_TRIGGERS_CONFIGURED" value="true"/>
<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
</launchConfiguration>
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>classpath</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
<triggers>full,incremental,</triggers>
<arguments>
<dictionary>
<key>LaunchConfigHandle</key>
<value>&lt;project&gt;/.externalToolBuilders/Autogen.launch</value>
</dictionary>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
<triggers>full,incremental,</triggers>
<arguments>
<dictionary>
<key>LaunchConfigHandle</key>
<value>&lt;project&gt;/.externalToolBuilders/Configure.launch</value>
</dictionary>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>
#Mon Sep 20 12:53:19 MDT 2004
eclipse.preferences.version=1
encoding/ChangeLog=ISO-8859-1
#Mon Apr 25 21:37:39 MDT 2005
eclipse.preferences.version=1
formatter_settings_version=8
org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?>\n<templates/>
The following have made major contributions to the Classpath
project. See also the THANKYOU file, which lists people who have
caught bugs or submitted minor patches. If your name does not appear
on either list, but should, let us know. Please keep this list in
alphabetic order.
Stuart Ballard (stuart.ballard@mcmail.com)
Mark Benvenuto (mcb54@columbia.edu)
Geoff Berry (gcb@gnu.org)
James E. Blair (corvus@gnu.org)
Eric Blake (ebb9@email.byu.edu)
Sascha Brawer (brawer@acm.org)
Nic Ferrier (nferrier@tapsellferrier.co.uk)
Paul Fisher (rao@gnu.org)
Anthony Green (green@redhat.com)
Jochen Hoenicke (Jochen.Hoenicke@Informatik.Uni-Oldenburg.de)
Brian Jones (cbj@gnu.org)
Roman Kennke (roman@kennke.org)
Michael Koch (konqueror@gmx.de)
John Keiser (jkeiser@iname.com)
John Leuner (jewel@debian.org)
Warren Levy (warrenl@cygnus.com)
Bryce McKinlay (bryce@waitaki.otago.ac.nz)
Audrius Meskauskas (audriusa@Bioinformatics.org)
Aaron M. Renn (arenn@urbanophile.com)
Andrew Selkirk (aselkirk@sympatico.ca)
Tom Tromey (tromey@cygnus.com)
Ronald Veldema (rveldema@cs.vu.nl)
Mark Wielaard (mark@klomp.org)
Jon A. Zeppieri (jon@eease.com)
This package is still in the early development phase. That means too
early to start listing bugs in a file like this one!
Report bugs to classpath@gnu.org or much better via Savannah at this
URL: http://savannah.gnu.org/bugs/?group=classpath
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This is an historic file listing changes from the old GNU JAXP project.
GNU JAXP is now part of GNU Classpath. New changes to these files are
listed in the main ChangeLog file or documented in the external
subdirectories for the w3c dom and sax sources.
2004-12-22 Chris Burdess <dog@gnu.org>
* Makefile.am: Generate META-INF/services factory configuration files.
2004-12-17 Mark Wielaard <mark@klomp.org>
* css,html2: Updated APIs to final versions of W3C specifications
(DOM Level 2).
2004-12-15 Mark Wielaard <mark@klomp.org>
* GnomeNodeIterator.java: Renamed to DomNodeIterator.java.
2004-12-10 Chris Burdess <dog@gnu.org>
* org/xml/sax: Updated version of SAX API to sax2r3 final.
2004-12-04 Chris Burdess <dog@gnu.org>
* README,INSTALL,AUTHORS: Updated documentation.
2004-12-03 Andrew Overholt <overholt@redhat.com>
* autogen.sh: New file.
2004-11-27 Chris Burdess <dog@gnu.org>
* Makefile.am: Removed redundant 'sources' and 'classes' makefile
variables. Added -W-no-long-long to libxmlj compilation flags.
2004-11-26 Andrew Overholt <overholt@redhat.com>
* Makefile.am: Update for gcj.
* configure.ac: Likewise.
* Makefile.in: Update generated.
* aclocal.m4: Likewise.
* configure: Likewise.
* config/config.guess: Likewise.
* config/config.sub: Likewise.
* config/ltmain.sh: Likewise.
2004-10-06 Chris Burdess <dog@gnu.org>
* Makefile.am: Fixes to permit gcj compilation.
2004-10-27 Chris Burdess <dog@gnu.org>
* parsers, transform, dom, sax, stream: API rewritten from
scratch to satisfy copyright assignment.
2004-10-13 Arnaud Vandyck <avdyk@gnu.org>
Reported by John Kristian <jk2004@engineer.com>:
* manifest.mf: added Implementation Version field.
2004-10-06 Chris Burdess <dog@gnu.org>
* Makefile.am: Make invocation of javadoc gjdoc-compatible.
2004-09-03 Chris Burdess <dog@gnu.org>
* all: Replaced GPL exception with new exception text.
2004-09-01 Chris Burdess <dog@gnu.org>
* all: Reassigned David Brownell's copyright to FSF.
2004-05-12 Chris Burdess <dog@gnu.org>
* (dom): Updated to DOM Level 3 Core and L&S interfaces.
* GnomeDocumentBuilder.java: Fixed stream retrieval bug.
2004-05-05 Chris Burdess <dog@gnu.org>
* Makefile.am, acinclude.m4: Added gcjh detection. Makefile will now
rebuild out of date JNI headers and gnujaxp.jar.
2004-04-22 Arnaud Vandyck <avdyk@ressource-toi.org>
* source: sources directory has been moved to source directory,
src has been deleted. Sorry for the inconvenience.
2004-04-20 Arnaud Vandyck <avdyk@ressource-toi.org>
Reported by Maarten Coene <MacBelgium@toughguy.net>:
* src/gnu/xml/aelfred2/JAXPFactory.java (getFeature): throws a
NullPointerException if you check for a feature that hasn't been
set at the factory level.
2004-04-19 Arnaud Vandyck <avdyk@ressource-toi.org>
* src/xmlj_io.h, src/xmlj_io.c, src/xmlj_error.h,
src/xmlj_error.c, src/libxsltj.c,
src/gnu/xml/libxmlj/transform/URIResolverProxy.java,
src/gnu/xml/libxmlj/transform/TransformerImpl.java,
src/gnu/xml/libxmlj/transform/TransformerFactoryImpl.java,
src/gnu/xml/libxmlj/transform/TransformTest.java,
src/gnu/xml/libxmlj/transform/TemplatesImpl.java,
src/gnu/xml/libxmlj/transform/SourceWrapper.java,
src/gnu/xml/libxmlj/transform/SourceLocatorImpl.java,
src/gnu/xml/libxmlj/transform/LibxsltStylesheet.java,
src/gnu/xml/libxmlj/transform/LibxmlDocument.java,
src/gnu/xml/libxmlj/transform/JavaContext.java,
src/gnu/xml/libxmlj/transform/IOToolkit.java,
src/gnu/xml/libxmlj/transform/ErrorListenerProxy.java,
src/gnu/xml/libxmlj/transform/DefaultURIResolverImpl.java,
src/gnu/xml/libxmlj/transform/DefaultErrorListenerImpl.java:
changed the copyright holder to FSF and changed the license to
GPL+linking exception, many thanks to Julian Scheid who wrote the
code and accepted to donate his code to the FSF and change the
license to GPL + linking exception.
* README: updated (added the libxmlj README comments)
* AUTHORS: added Julian.
* INSTALL: updated to match the current scheme (new dependency,
new build system)
2004-04-15 Arnaud Vandyck <avdyk@ressource-toi.org>
* src/gnu/xml/aelfred2/SAXDriver.java (SAXDriver): removed the
comparison choice because an org.xml.sax.SAXNotSupportedException
must be caught, so it'll slow the benefit of the interned strings!
* src/gnu/xml/pipeline/WellFormednessFilter.java (startDTD)
(notationDecl, unparsedEntityDecl): reverted the '==' comparison
between String's because they are internaled and there is no way
to choose if the comparison must use '==' or 'equals'
* src/gnu/xml/pipeline/ValidationConsumer.java: reverted the '=='
comparison between String's because they are internaled and there
is no way to choose if the comparison must use '==' or 'equals'
* src/gnu/xml/pipeline/DomConsumer.java:
(populateAttributes): using equals because I'm not sure "" is
interned?
* src/gnu/xml/aelfred2/XmlParser.java (parseAttribute)
(parseAttDef, readAttType, parseDefault)
(setInternalEntity, pushURL): if string-interning use the '=='
comparison, else, use 'equals'
* src/gnu/xml/aelfred2/SAXDriver.java (attribute, startElement)
(getType): if string-interning use the '==' comparison, else, use
'equals'
2004-04-14 Arnaud Vandyck <avdyk@ressource-toi.org>
* src/gnu/xml/aelfred2/SAXDriver.java (getFeature):
http://xml.org/sax/features/string-interning can now be set to
false so comparison if perform using equals (if true, comparison
is performed with '==').
* src/gnu/xml/util/XCat.java (startElement): reverted the '=='
comparison between String's because they are internaled and there
is no way to choose if the comparison must use '==' or 'equals'
* src/javax/xml/transform/sax/SAXResult.java, SAXSource.java,
SAXTransformerFactory.java, TemplatesHandler.java,
TransformerHandler.java,
src/javax/xml/transform/stream/StreamResult.java,
StreamSource.java, src/javax/xml/transform/dom/DOMLocator.java,
DOMResult.java, DOMSource.java,
src/javax/xml/parsers/ClassStuff.java, DocumentBuilder.java,
DocumentBuilderFactory.java, FactoryConfigurationError.java,
ParserConfigurationException.java, SAXParser.java,
SAXParserFactory.java, src/javax/xml/transform/ClassStuff.java,
ErrorListener.java, OutputKeys.java, Result.java, Source.java,
Templates.java, Transformer.java,
TransformerConfigurationException.java, TransformerException.java,
TransformerFactory.java,
TransformerFactoryConfigurationError.java,
src/gnu/xml/libxmlj/transform/DefaultErrorListenerImpl.java,
DefaultURIResolverImpl.java, ErrorListenerProxy.java,
IOToolkit.java, JavaContext.java, LibxmlDocument.java,
SourceLocatorImpl.java, SourceWrapper.java, TemplatesImpl.java,
TransformTest.java, TransformerImpl.java,
TransformerFactoryImpl.java, URIResolverProxy.java: removed the id
cvs tag to ease integration in other cvs repositories
2004-04-08 Arnaud Vandyck <avdyk@ressource-toi.org>
* NEWS: initial commit
* INSTALL: initial commit
* src: sources directory has been moved to src directory
* configure.ac, Makefile.am: now build jaxp and libxmlj together
* Makefile.aj, automakejar, configure.in: removed, no more used.
2004-02-05 Arnaud Vandyck <avdyk@users.sourceforge.net>
* ChangeLog.libxmlj, source/*.c, source/*h,
source/gnu/xml/libxmlj/transform/*.*: imported from libxmlj
* ChangeLog.gnujaxp: added to have some history of the project
This is an historic file listing changes from the old GNU JAXP and libxmlj
projects. Both are now part of GNU Classpath. New changes to these files
are listed in the main ChangeLog file or documented in the external
subdirectories for the w3c dom and sax sources.
2004-12-30 Chris Burdess <dog@gnu.org>
* GnomeDocument.java,GnomeXPathNSResolver: Fixed XPathNSResolver
implementation.
2004-11-26 Chris Burdess <dog@gnu.org>
* xmlj_util.c: Check for exception in xmljNewString.
2004-11-17 Chris Burdess <dog@gnu.org>
* dom: DOM Level 3 Core conformance testing.
2004-11-12 Chris Burdess <dog@gnu.org>
* GnomeTransformerFactory.java: Implemented getAssociatedStylesheet.
2004-11-01 Chris Burdess <dog@gnu.org>
* xmlj_sax.c: Fixed segfault with external entities in transform.
2004-10-06 Chris Burdess <dog@gnu.org>
* RawData.java, RawData32.java, RawData64.java: Added copyright.
2004-10-25 Chris Burdess <dog@gnu.org>
* xmlj_transform.c: Experimental code to load external entities
(xsl:import, xsl:include, and document()) from Java URL.
* configure.ac: Minimum version of libxslt is 1.1.11.
2004-10-08 Chris Burdess <dog@gnu.org>
* xmlj_util.c: String caching only by setting macro.
* acinclude.m4,configure.ac,Makefile.am: automake 1.8 patch by
Michael Koch; fixes to compile in subdirectory.
2004-10-06 Chris Burdess <dog@gnu.org>
* xmlj_util.c,xmlj_error.c: Call fflush after fprintf.
2004-08-10 Chris Burdess <dog@gnu.org>
* transform: Fixed imports.
2004-07-30 Chris Burdess <dog@gnu.org>
* transform: Added support for DOMSource and DOMResult transforms
to/from GnomeDocument nodes.
2004-07-27 Chris Burdess <dog@gnu.org>
* GnomeElement: getAttribute(NS) returns empty strings instead of
null.
* sax: Cached java.lang.String class.
2004-07-21 Chris Burdess <dog@gnu.org>
* GnomeTransformerFactory.java: getFeature supports stream features.
* dom: Added traversal function.
2004-07-12 Chris Burdess <dog@gnu.org>
* dom: Entities and notations NamedNodeMaps.
2004-07-06 Chris Burdess <dog@gnu.org>
* xpath: Permit wildcards in getElementsByTagName[NS].
2004-07-04 Chris Burdess <dog@gnu.org>
* dom: Skeleton DOMConfiguration implementation.
2004-07-03 Chris Burdess <dog@gnu.org>
* dom: Corrected GnomeElement attribute methods and isEqualNode.
2004-07-01 Chris Burdess <dog@gnu.org>
* dom: Corrected implementation of getElementsByTagName.
2004-06-29 Chris Burdess <dog@gnu.org>
* dom: Added implementation of DOMImplementationSource.
2004-06-28 Chris Burdess <dog@gnu.org>
* dom: Fixed name matching.
2004-06-26 Chris Burdess <dog@gnu.org>
* dom: Added GnomeTypeInfo.
2004-06-25 Chris Burdess <dog@gnu.org>
* xmlj_sax.c: Revert to calling ignorableWhitespace.
2004-06-23 Chris Burdess <dog@gnu.org>
* all: Use RawData for native pointers.
* xmlj_sax.c: Fixed entity resolution.
* xmlj_io.c: Fixed race condition closing input stream context.
2004-06-03 Chris Burdess <dog@gnu.org>
* all: Use longs for native pointers.
* dom: Added dom.xpath interfaces.
2004-06-02 Chris Burdess <dog@gnu.org>
* GnomeNode.java et al, xmlj_dom.c: Implementation of some DOM Level 3
methods.
2004-06-01 Chris Burdess <dog@gnu.org>
* GnomeNode.java et al: Applied Dalibor's #3080 patch for missing
imports.
2004-05-27 Chris Burdess <dog@gnu.org>
* GnomeXMLReader.java, GnomeDocumentBuilder.java, JavaContext.java:
Correct handling of zero-length documents.
2004-05-24 Chris Burdess <dog@gnu.org>
* all: Refactoring for Gnome* naming scheme. All modules now use
common parsing framework.
2004-05-11 Chris Burdess <dog@gnu.org>
* GnomeXMLReader.java,xmlj_sax.x,xmlj_io.c: Provide selective
callbacks, based on the registered callback listeners.
2004-05-04 Chris Burdess <dog@gnu.org>
* xmlj_sax.c: Fixed document locators.
2004-05-02 Chris Burdess <dog@gnu.org>
* xmlj_sax.c: Implement DeclHandler and LexicalHandler callbacks.
* GnomeXMLReader.java: Fixed feature/property handling.
2004-04-29 Chris Burdess <dog@gnu.org>
* xmlj_[dom,io].c: Use Java streams for DOM input.
2004-04-28 Chris Burdess <dog@gnu.org>
* xmlj_node.c et al: Implemented node cache (task #3289).
2004-04-27 Chris Burdess <dog@gnu.org>
* all: Added SAX and DOM libxmlj implementation.
* Makefile.am: Moved JNI sources and headers to jni subdirectory.
* acinclude.m4: Fixed compatibility handling of libxml2 version.
2003-03-07 Julian Scheid <jscheid@sektor37.de>
* Makefile.am: Fixed build inconsistency.
* all: Added caching, fixed memory leaks.
2003-02-10 Julian Scheid <jscheid@sektor37.de>
* all: First development release
abies:'Artur Biesiadowski <abies@pg.gda.pl>'
alexl:'Alex Lancaster <alexl@gnu.org>'
anwalt:'Andy Walter <anwalt_pop@aicas.com>'
aph:'Andrew Haley <aph@redhat.com>'
archie172:'Archie Cobbs <archie@dellroad.org>'
arenn:'Aaron M. Renn <arenn@urbanophile.com>'
aselkirk:'Andrew Selkirk <aselkirk@sympatico.ca>'
audriusa:'Audrius Meskauskas <audriusa@Bioinformatics.org>'
avdyk:'Arnaud Vandyck <arnaud.vandyck@ulg.ac.be>'
brawer:'Sascha Brawer <brawer@dandelis.ch>'
bryce:'Bryce McKinlay <mckinlay@redhat.com>'
cbj:'Brian Jones <cbj@gnu.org>'
corvus:'James E. Blair <corvus@gnu.org>'
craig:'Craig Black <craig.black@aonix.com>'
daryllee:'Daryl Lee <dlee@altaregos.com>'
djee:'David Jee <djee@redhat.com>'
dog:'Chris Burdess <dog@bluezoo.org>'
egagnon:'Etienne M. Gagnon <etienne.gagnon@uqam.ca>'
ericb:'Eric Blake <ebb9@byu.net>'
fitzsim:'Thomas Fitzsimmons <fitzsim@redhat.com>'
fnasser:'Fernando Nasser <fnasser@redhat.com>'
gadek:'Grzegorz B. Prokopski <gadek@debian.org>'
gcb:'Geoff Berry <gcb@gnu.org>'
glavaux:'Guilhem Lavaux <guilhem@kaffe.org>'
gnu_andrew:'Andrew John Hughes <gnu_andrew@member.fsf.org>'
graydon:'graydon hoare <graydon@pobox.com>'
green:'Anthony Green <green@redhat.com>'
iproetel:'Ingo Proetel <proetel@aicas.com>'
jaz:'Jon A. Zeppieri <jon@eease.com>'
jewel:'John Leuner <jewel@pixie.co.za>'
jfrijters:'Jeroen Frijters <jeroen@sumatra.nl>'
jgeorgal:'Giannis Georgalis <jgeorgal@csd.uoc.gr>'
jochen:'Jochen Hoenicke <jochen@gnu.org>'
joey:'Joseph C. Lesh <joey@gnu.org>'
jsturm:'Jeff Sturm <jsturm@one-point.com>'
julian:'Julian Scheid <scheid@sektor37.de>'
kho:'Kim Ho <kho@redhat.com>'
mark:'Mark Wielaard <mark@klomp.org>'
mcb:'Mark Benvenuto <mcb54@columbia.edu>'
mkoch:'Michael Koch <konqueror@gmx.de>'
nferrier:'Nic Ferrier <nferrier@gnu.org>'
noa:'Noa Resare <noa@resare.com>'
overholt:'Andrew Overholt <overholt@redhat.com>'
patrik_reali:'Patrik Reali <patrik@reali.ch>'
rabbit78:'Roman Kennke <roman@kennke.org>'
raif:'Raif S. Naffah <raif@swiftdsl.com.au>'
rao:'Paul Fisher <rao@gnu.org>'
robilad:'Dalibor Topic <robilad@yahoo.com>'
rodimina:'Olga Rodimina <rodimina@redhat.com>'
rschuster:'Robert Schuster <theBohemian@gmx.net>'
rsdio:'Casey Marshall <csm@gnu.org>'
rupp:'Torsten Rupp <rupp@aicas.com>'
rveldema:'Ronald Veldema <rveldema@cs.vu.nl>'
saugart:'Steven Augart <augart@watson.ibm.com>'
shalom:'John Keiser <shalom@gnu.org>'
siebert:'Fridtjof Siebert <siebert@aicas.com>'
smarothy:'Sven de Marothy <sven@physto.se>'
stuart:'Stuart Ballard <stuart.ballard@mcmail.com>'
tromey:'Tom Tromey <tromey@redhat.com>'
warrenl:'Warren Levy <warrenl@redhat.com>'
HACKING GNU Classpath - Last updated: April 2, 2004
Please read the README and INSTALL files first.
You only need the information in this file when working on non-released (CVS)
versions of GNU Classpath. Installation information for released versions
of GNU Classpath can be found in the INSTALL file.
Everything you ever wanted to know about hacking on GNU Classpath and
how to obtain CVS checkouts can be found in doc/hacking.texi and/or
on the website http://www.gnu.org/software/classpath/docs/hacking.html
If you have any questions, suggestions, etc., send them to
classpath@gnu.org.
Installing GNU Classpath - Last updated: January 6, 2005
First, this is a development release only! Unless you are interested in
active development and debugging, or just like running random alpha code,
this release is probably not for you. Please see the README file for a
list of VMs that work with GNU Classpath.
Note that if you are building from a non-released (CVS) version of GNU
classpath, installation instructions are found in the doc/hacking.texi
file. Or at http://www.gnu.org/software/classpath/docs/hacking.html
------------------------------------------------------------------
Suggested Software
------------------------------------------------------------------
GNU make ("gmake") is required for building Classpath.
For any build environment involving native libraries, these
new versions of autoconf, automake, and libtool are required
if changes are made that require rebuilding configure, Makefile.in,
aclocal.m4, or config.h.in.
- GNU autoconf 2.59+
- GNU automake 1.9+
- GNU libtool 1.5+
When working from CVS you can run the above tools by executing
./autogen.sh in the source directory.
For building the Java bytecode (.class files), one of these
compilers are required. You can select which compiler using
--with-jikes, --with-gcj or --with-kjc as argument to
configure; the present default is gcj.
- GCJ 3.3+ (part of the GNU GCC package).
- IBM jikes 1.19+.
- The kjc compiler is supported with configure but we have
been unable to successfully compile with it.
For building the gtk+ AWT peer JNI native libraries, the following
are required unless --disable-gtk-peer is used as an argument to
configure.
- GTK+ 2.4.x (or higher)
- gdk-pixbuf
- XTest Extension (libXtst) for GdkRobot support in java.awt.
For building the Cairo GdkGraphics2D backend you need at least
Cairo 0.5.0.
For building the xmlj JAXP implementation (dsabled by default, use
configure --enable-xmlj) you need the following installed:
- The XML C library for Gnome (libxml2)
http://www.xmlsoft.org/
Minimum version of libxml2 required: 2.6.8
- The XSLT C library for Gnome (libxslt)
http://www.xmlsoft.org/XSLT/
Minimum version of libxslt required: 1.1.11
For building the documentation you will need
- texinfo 4.2 or higher.
This package was designed to use the GNU standard for configuration
and makefiles. To build and install do the following:
1). Run the "configure" script to configure the package. There are
various options you might want to pass to configure to control how the
package is built. Consider the following options, "configure --help"
gives a complete list.
--enable-java compile Java source default=yes
--enable-jni compile JNI source default=yes
--enable-gtk-peer compile GTK native peers default=yes
--enable-gtk-cairo compile cairo based Graphics2D default=no
--enable-load-library enable to use JNI native methods default=yes
--with-jikes to compile the class library using jikes
the default is to use gcj
--with-glibj define what to install (zip|flat|both|none)
default=zip
--enable-Werror whether to compile C code with -Werror which turns
any compiler warning into a compilation failure
default=no
--enable-xmlj compile native libxml/xslt library default=no
--with-gjdoc generate documentation using gjdoc default=no
--with-jay Regenerate the parsers with jay must be given the
path to the jay executable
For more flags run configure --help.
2). Type "gmake" to build the package. There is no longer a
dependency problem and we aim to keep it that way.
3). Type "gmake install" to install everything. This may require
being the superuser. The default install path is /usr/local/classpath
you may change it by giving configure the --prefix=<path> option.
Report bugs to classpath@gnu.org or much better via Savannah at this
URL: http://savannah.gnu.org/support/?func=addsupport&group=classpath
Happy Hacking!
Once installed, GNU Classpath is ready to be used by any VM that supports
using the official version of GNU Classpath. Simply ensure that
/usr/local/classpath/share/classpath is in your $CLASSPATH environment
variable. You'll also have to set your LD_LIBRARY_PATH
variable (or similar system configuration) to include the Classpath
native libraries in /usr/local/classpath/lib/classpath.
*NOTE* All example paths assume the default prefix is used with configure.
If you don't know what this means then the examples are correct.
LD_LIBRARY_PATH=/usr/local/classpath/lib/classpath
CLASSPATH=/usr/local/classpath/share/classpath/glibj.zip:.
export LD_LIBRARY_PATH CLASSPATH
More information about the VMs that use GNU Classpath can be found in the
README file.
------------------------------------------------------------------
Misc. Notes
------------------------------------------------------------------
Compilation is accomplished using a compiler's @file syntax. For our
part, we avoid placing make style dependencies as rules upon the
compilation of a particular class file and leave this up to the Java
compiler instead.
The --enable-maintainer-mode option to configure currently does very
little and shouldn't be used by ordinary developers or users anyway.
On Windows machines, the native libraries do not currently build, but
the Java bytecode library will. Gcj trunk is beginning to work under
Cygwin. The mingw32 version of jikes cannot follow symbolic links, you
must use a cygwin build of jikes to access this limited functionality.
## Input file for automake to generate the Makefile.in used by configure
# lib first, to compile .class files before native code, last examples
SUBDIRS = lib doc external include native resource scripts $(EXAMPLESDIR)
DIST_SUBDIRS = lib doc external include native resource scripts examples
native: lib
EXTRA_DIST = HACKING BUGS THANKYOU mauve-classpath LICENSE \
ChangeLog-2003 ChangeLog-2004 \
ChangeLog.gnujaxp.1 ChangeLog.gnujaxp.2 ChangeLog.libxmlj
#DISTCHECK_CONFIGURE_FLAGS = --enable-gjdoc
dist-hook:
-$(mkinstalldirs) $(distdir)/include
-cp -f $(top_srcdir)/include/*.in $(distdir)/include
-cp -f $(top_srcdir)/include/*.h $(distdir)/include
ChangeLog:
cvs2cl.pl -b --gmt --log-opts "-d'1998-06-30< now'" --window 7200 --usermap ChangeLog.usermap --ignore ChangeLog --fsf
GNU Classpath README - Last updated: Jul 9, 2004
GNU Classpath, Essential Libraries for Java is a project to create a
free software implementation of the core class libraries for the java
programming language.
Additionally GNU Classpath includes a sub-project called GNU Classpath
Tools whose goal is to provide a number of free replacements for
standard Java development tools like javadoc, javap, javah, and
others. And a sub-project called GNU Inetlib, an extension library to
provide extra network protocol support (ftp, finger, gopher) for GNU
Classpath, but it can also standalone to ease adding http, imap, pop3
and smtp client support to applictions. These subprojects are normally
released independent from the core libraries.
This is a development snapshot release only and is not for general
purpose use. GNU Classpath needs to be combine with a proper
development environments to be useable for end users. Eventually,
these essential libraries for java will work with as many free
compilers and runtimes as possible.
Complete development environments known to be based on GNU Classpath
include (recommended for end users):
* GCC with GCJ (http://gcc.gnu.org/java/)
* Kaffe (http://www.kaffe.org/)
Smaller environments (runtime only, no compilers, no tools) which work
with this GNU Classpath releases include
(tested by and recommended for GNU Classpath hackers):
* JamVM (http://jamvm.sourceforge.net/)
* Jikes RVM (http://www.ibm.com/developerworks/oss/jikesrvm/)
* Kissme (http://kissme.sourceforge.net/)
In general the latest releases of the above VMs will work out of the box
with the latest GNU Classpath release (and in most cases directly with the
development sources from CVS).
Besides combining GNU Classpath with the runtimes and compilers above
you might want to add support for encryption libraries as provided by
GNU Crypto (http://www.gnu.org/software/gnu-crypto/).
And for additional extension libraries (mail, xml, activation, infobus,
servlet) check out GNU ClasspathX (http://www.gnu.org/software/classpathx).
Some tools come with their own customized version of GNU Classpath.
Please check if there is a customised version available for the tool you
use before trying the bare bones GNU Classpath release. We are working with
the tool creators to keep the differences between the core classes as small
as possible. Please tell us if you make GNU Classpath work with a new tool.
Active projects which use modified versions of the Classpath libraries
some of which synchronizes with the Classpath CVS head every couple of weeks:
* IKVM.NET (http://www.ikvm.net/)
* JC (http://jcvm.sourceforge.net/)
* JNode (http://jnode.sourceforge.net/)
* SableVM (http://www.sablevm.org)
See for a more complete list of GNU Classpath based projects the
GNU Classpath website: http://www.gnu.org/software/classpath/stories.html
See the file INSTALL for details on installing GNU Classpath.
See the file NEWS for details on what is included in this release.
See the file TODO for the latest to do list.
See the file HACKING for working on (non-released) CVS development versions.
Homepage: http://www.gnu.org/software/classpath/
General Mailing List: classpath@gnu.org
--> Bugs and patches can be reported via Savannah if you have a browser
or via this address otherwise.
--> To subscribe send email to classpath-request@gnu.org with a
subject and body of "subscribe". To unsubscribe do the same,
only with a body and subject of "unsubscribe". This is a
smartlist managed mailing list.
CVS Commit, Bugs and Patches List: commit-classpath@gnu.org
--> To subscribe send email to commit-classpath-request@gnu.org with a
subject and body of "subscribe". To unsubscribe do the same,
only with a body and subject of "unsubscribe". This is a
smartlist managed mailing list.
Anonymous CVS:
--> export CVS_RSH="ssh"
--> cvs -z3 -d:ext:anoncvs@savannah.gnu.org:/cvsroot/classpath co classpath
--> More detailed instructions available on the Savannah project website.
http://savannah.gnu.org/projects/classpath/
Happy Hacking!
The following have made minor contributions to the Classpath
project, such as testing, bug submission, or minor patches. See also
the AUTHORS file, which lists people who have submitted major
patches. If your name does not appear on either list, but should, let
us know. Please keep this list in alphabetic order.
C. Scott Ananian (cananian@lesser-magoo.lcs.mit.edu)
Xuan Baldauf (entwicklung--classpath--gnu.org@medium.net)
Artur Biesiadowski (abies@pg.gda.pl)
Per Bothner (per@bothner.com)
Carlos Cavanna (cdcavanna@yahoo.com)
Archie Cobbs (archie@precisionio.com)
Stephen Crawley (crawley@dstc.edu.au)
Moses DeJong (dejong@cs.umn.edu)
Patrick Doyle (doylep@eecg.toronto.edu)
Julian Dolby (dolby@us.ibm.com)
Raimar Falke (hawk@hawk.shef.ac.uk)
Philip Fong (pwlfong@users.sourceforge.net)
Jeroen Frijters (jeroen@sumatra.nl)
Etienne M. Gagnon (etienne.gagnon@uqam.ca)
Brian Gough (bjg@network-theory.com)
Fred Gray (fegray@npl.uiuc.edu)
Christian Grothoff <grothoff@cs.purdue.edu>
David P. Grove (groved@us.ibm.com)
Andrew Haley (aph@redhat.com)
Steven Hugg (hugg@pobox.com)
jockey@aromasoft.com
Isaac Jones (ijones@cis.ohio-state.edu)
Oskar Liljeblad (osk@hem.passagen.se)
Casey Marshall (rsdio@metastatic.org)
Steve Mayer (SMayer@dynamicsoft.com)
Matt Mucklo (mmucklo@jumpsmart.com)
Joseph S. Myers (jsm28@cam.ac.uk)
Raif S. Naffah (raif@fl.net.au)
Shane Nay (shane@minirl.com)
Takashi Okamoto (tora@debian.org)
Alexandre Oliva (oliva@dcc.unicamp.br)
Daniel Rall(dlr@west.net)
Patrik Reali (reali@inf.ethz.ch)
Petter Reinholdtsen (pere@hungry.com)
Julian Scheid (julian.scheid@sektor37.de)
Martin Schrder (ms@artcom-gmbh.de)
Gaute Smaaland (gs@sevenmountains.no)
Michael Smith (msmith@spinnakernet.com)
J. Russell Smyth (drfish@uswest.net)
Ian D. Stewart (idstewart@softhome.net)
Jeff Sturm (jsturm@one-point.com)
Sreenivas Subramoney (sreenivas.subramoney@intel.com)
Chris Toshok (toshok@hungry.com)
Weldon Washburn (weldon.washburn@intel.com)
Adam Welc (welc@cs.purdue.edu)
Gansha Wu (gansha.wu@intel.com)
Shuhua Zhang (Shuhua.Zhang@echostar.com)
See also http://www.gnu.org/software/classpath/tasks.html
Which is updated more often then this file.
The Classpath TODO list as of 2002/05/05
-- Write Mauve (http://sourceware.cygnus.com/mauve/) tests for those
classes that don't have them.
-- Write Java 2 packages not currently included or improve existing
ones.
-- Modify ClassLoader.getSystemResource() to support loading classes
from zip files in the CLASSPATH. This requires java.util.zip to
be integrated first. Jar files can probably be treated as zip
files for now.
-- Continue comparison and merge of classes between Classpath and GCJ.
Current status: http://gcc.gnu.org/java/libgcj-classpath-compare.html
Please keep in mind that Red Hat wishes to continue to use CNI
as their preferred native interface. See:
http://sourceware.cygnus.com/java/papers/cni/t1.html
-- No resolution was identified for generating JNI compatible code from
CNI source. The simple solution has been adopted to include
both in GNU Classpath if and only if another JVM chooses to use CNI.
Provisions for compiling CNI correctly need to be implemented.
-- Update the GNU Classpath Hacker's Guide. There is a master texinfo
file in the doc/ directory in Classpath CVS.
-- Audit the code to identify methods that do not have Javadoc comments
and/or comments that are incomplete. All input parameters, return
values, etc should be documentes. Also look for Javadoc comments on
variables that are serializable.
See http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#tag
for details of what should be where in comments.
-- Figure out a way to generate a hardcopy manual for the Java class
library from the embedded Javadocs. This probably involves writing
a custom doclet and probably some supplementary documentation
files into which the extracted Javadoc files are included.
-- Audit the code to ensure that all variable declarations are consistent
with the "Serialized Form" in the JDK. That is, all serialized
variables in the JDK should be included in Classpath and all Classpath
instance variables that are not part of the JDK docs should be marked
transient. Please be sure to use the online version of the Javadocs
for this and do not accept any "clickwrap" licenses from Sun in order
to download the JDK 1.2 Javadocs, which is where this information is
stored.
-- Audit code similar to above to determine where Sun uses readObject()
and writeObject() for serialization and determine what Classpath
needs to do for compatibility.
-- Audit code to ensure that every class that should be serializable
actually implementst java.io.Serializable and has the correct
serialVersionUID private static variable that is identical to the
JDK 1.1 version. You can obtain that variable value using the
serialver command.
-- Do real life serialization compatibility tests of our code vs
the JDK using serialcompat from Japitools.
-- Audit code for thread safety.
-- Audit Java code for proper Security implementation.
-- Audit native code for security, memory handling, etc.
-- Bug reports are always welcome. They are double welcome if they
are accompanied by a Mauve test that reproduces the bug.
#!/bin/sh
# Run this to generate all the initial makefiles, etc.
srcdir=`dirname $0`
test -z "$srcdir" && srcdir=.
ORIGDIR=`pwd`
cd $srcdir
PROJECT=classpath
TEST_TYPE=-f
FILE=java/lang/Object.java
DIE=0
case `uname -s` in
Darwin)
LIBTOOLIZE=glibtoolize
;;
*)
LIBTOOLIZE=libtoolize
;;
esac
have_libtool=true
if ${LIBTOOLIZE} --version < /dev/null > /dev/null 2>&1 ; then
libtool_version=`${LIBTOOLIZE} --version | sed 's/^[^0-9]*\([0-9.][0-9.]*\).*/\1/'`
case $libtool_version in
1.5*)
have_libtool=true
;;
esac
fi
if $have_libtool ; then : ; else
echo
echo "You must have libtool 1.5 installed to compile $PROJECT."
echo "Install the appropriate package for your distribution,"
echo "or get the source tarball at http://ftp.gnu.org/gnu/libtool/"
DIE=1
fi
have_autoconf=false
if autoconf --version < /dev/null > /dev/null 2>&1 ; then
autoconf_version=`autoconf --version | sed 's/^[^0-9]*\([0-9.][0-9.]*\).*/\1/'`
case $autoconf_version in
2.59*)
have_autoconf=true
;;
esac
fi
if $have_autoconf ; then : ; else
echo
echo "You must have autoconf 2.59 installed to compile $PROJECT."
echo "Install the appropriate package for your distribution,"
echo "or get the source tarball at http://ftp.gnu.org/gnu/autoconf/"
DIE=1
fi
have_automake=false
# We know each 1.9.x version works
if automake-1.9 --version < /dev/null > /dev/null 2>&1 ; then
AUTOMAKE=automake-1.9
ACLOCAL=aclocal-1.9
have_automake=true
elif automake --version < /dev/null > /dev/null 2>&1 ; then
AUTOMAKE=automake
ACLOCAL=aclocal
automake_version=`automake --version | sed 's/^[^0-9]*\([0-9.][0-9.]*\).*/\1/'`
case $automake_version in
1.9*)
have_automake=true
;;
esac
fi
if $have_automake ; then : ; else
echo
echo "You must have automake 1.9 installed to compile $PROJECT."
echo "Install the appropriate package for your distribution,"
echo "or get the source tarball at http://ftp.gnu.org/gnu/automake/"
DIE=1
fi
if test "$DIE" -eq 1; then
exit 1
fi
test $TEST_TYPE $FILE || {
echo "You must run this script in the top-level $PROJECT directory"
exit 1
}
if test "x$AUTOGEN_SUBDIR_MODE" = "xyes"; then
if test -z "$*"; then
echo "I am going to run ./configure with no arguments - if you wish "
echo "to pass any to it, please specify them on the $0 command line."
fi
fi
if test -z "$ACLOCAL_FLAGS"; then
acdir=`$ACLOCAL --print-ac-dir`
m4list="glib-2.0.m4 glib-gettext.m4"
for file in $m4list
do
if [ ! -f "$acdir/$file" ]; then
echo "WARNING: aclocal's directory is $acdir, but..."
echo " no file $acdir/$file"
echo " You may see fatal macro warnings below."
echo " If these files are installed in /some/dir, set the ACLOCAL_FLAGS "
echo " environment variable to \"-I /some/dir\", or install"
echo " $acdir/$file."
echo ""
fi
done
fi
# Use the "-I m4 flag in order to include pkg.m4 and other .m4 files.
$ACLOCAL -I m4 $ACLOCAL_FLAGS || exit $?
${LIBTOOLIZE} --force || exit $?
autoheader || exit $?
$AUTOMAKE --add-missing || exit $?
autoconf || exit $?
cd $ORIGDIR || exit $?
if test "x$AUTOGEN_SUBDIR_MODE" = "xyes"; then
$srcdir/configure --enable-maintainer-mode $AUTOGEN_CONFIGURE_ARGS "$@" || exit $?
echo
echo "Now type 'make' to compile $PROJECT."
fi
## Input file for automake to generate the Makefile.in used by configure
SUBDIRS = java.net
// Class to identify socket option constants.
import java.io.*;
import java.net.*;
public class GetSocketOptionInfo extends Socket implements SocketImplFactory
{
public SocketImpl
createSocketImpl()
{
return(new PlainSocketImpl());
}
public static void
main(String[] argv) throws IOException
{
Socket.setSocketImplFactory(new GetSocketOptionInfo());
Socket s = new Socket();
System.err.println("Setting TCP_NODELAY on");
s.setTcpNoDelay(true);
System.err.println("Setting TCP_NODELAY off");
s.setTcpNoDelay(false);
System.err.println("Setting SO_LINGER on");
s.setSoLinger(true, 10);
System.err.println("Setting SO_LINGER off");
s.setSoLinger(false, 1);
System.err.println("Setting SO_TIMEOUT to 15");
s.setSoTimeout(15);
System.err.println("Setting SO_TIMEOUT to 0");
s.setSoTimeout(0);
}
}
## Input file for automake to generate the Makefile.in used by configure
# Hmm.. This doesn't seem to work
#noinst_JAVA = GetSocketOptionInfo.java PlainSocketImpl.java
JAVAROOT = .
compatdir = $(datadir)/compat/java.net
compat_JAVA = GetSocketOptionInfo.java PlainSocketImpl.java
EXTRA_DIST = README
/* PlainSocketImpl.java -- Default socket implementation
Copyright (c) 1998 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
import java.net.*;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.IOException;
/**
* Unless the application installs its own SocketImplFactory, this is the
* default socket implemetation that will be used. It simply uses a
* combination of Java and native routines to implement standard BSD
* style sockets of family AF_INET and types SOCK_STREAM and SOCK_DGRAM
*
* @version 0.1
*
* @author Aaron M. Renn (arenn@urbanophile.com)
*/
class PlainSocketImpl extends SocketImpl
{
/*************************************************************************/
/*
* Static Variables
*/
/*
// Static initializer to load native library
static
{
System.loadLibrary("javanet");
}
*/
/*************************************************************************/
/*
* Instance Variables
*/
/**
* This is the native file descriptor for this socket
*/
protected int native_fd = -1;
/*************************************************************************/
/**
* Default do nothing constructor
*/
public
PlainSocketImpl()
{
;
}
/*************************************************************************/
/**
* Accepts a new connection on this socket and returns in in the
* passed in SocketImpl.
*
* @param impl The SocketImpl object to accept this connection.
*/
protected native void
accept(SocketImpl impl) throws IOException;
/*************************************************************************/
/**
* Returns the number of bytes that the caller can read from this socket
* without blocking. //*****Figure out if we can do something here
*
* @return The number of readable bytes before blocking
*
* @exception IOException If an error occurs
*/
protected int
available() throws IOException
{
return(0);
}
/*************************************************************************/
/**
* Binds to the specified port on the specified addr. Note that this addr
* must represent a local IP address. **** How bind to INADDR_ANY? ****
*
* @param addr The address to bind to
* @param port The port number to bind to
*
* @exception IOException If an error occurs
*/
protected native void
bind(InetAddress addr, int port) throws IOException;
/*************************************************************************/
/**
* Closes the socket. This will cause any InputStream or OutputStream
* objects for this Socket to be closed as well.
* <p>
* Note that if the SO_LINGER option is set on this socket, then the
* operation could block.
*
* @exception IOException If an error occurs
*/
protected native void
close() throws IOException;
/*************************************************************************/
/**
* Connects to the remote address and port specified as arguments.
*
* @param addr The remote address to connect to
* @param port The remote port to connect to
*
* @exception IOException If an error occurs
*/
protected void
connect(InetAddress addr, int port) throws IOException
{
return;
}
/*************************************************************************/
/**
* Connects to the remote hostname and port specified as arguments.
*
* @param hostname The remote hostname to connect to
* @param port The remote port to connect to
*
* @exception IOException If an error occurs
*/
protected void
connect(String hostname, int port) throws IOException
{
InetAddress addr = InetAddress.getByName(hostname);
connect(addr, port);
}
/*************************************************************************/
/**
* Creates a new socket that is not bound to any local address/port and
* is not connected to any remote address/port. This will be created as
* a stream socket if the stream parameter is true, or a datagram socket
* if the stream parameter is false.
*
* @param stream true for a stream socket, false for a datagram socket
*/
protected native void
create(boolean stream) throws IOException;
/*************************************************************************/
/**
* Starts listening for connections on a socket. The queuelen parameter
* is how many pending connections will queue up waiting to be serviced
* before being accept'ed. If the queue of pending requests exceeds this
* number, additional connections will be refused.
*
* @param queuelen The length of the pending connection queue
*
* @exception IOException If an error occurs
*/
protected native void
listen(int queuelen) throws IOException;
/*************************************************************************/
/**
* Sets the specified option on a socket to the passed in object. For
* options that take an integer argument, the passed in object is an
* Integer. The option_id parameter is one of the defined constants in
* this interface.
*
* @param option_id The identifier of the option
* @param val The value to set the option to
*
* @exception SocketException If an error occurs
*/
public void
setOption(int option_id, Object val) throws SocketException
{
//*** Do non-native for now
System.err.println("Option Id=" + option_id);
System.err.println("Object is: " + val.getClass().getName());
System.err.println("Object value is: " + val);
}
/*************************************************************************/
/**
* Returns the current setting of the specified option. The Object returned
* will be an Integer for options that have integer values. The option_id
* is one of the defined constants in this interface.
*
* @param option_id The option identifier
*
* @return The current value of the option
*
* @exception SocketException If an error occurs
*/
public Object
getOption(int option_id) throws SocketException
{
//**** Do non-native for now
System.err.println("Option Id=" + option_id);
return(null);
}
/*************************************************************************/
/**
* Returns an InputStream object for reading from this socket. This will
* be an instance of SocketInputStream.
*
* @return An InputStream
*
* @exception IOException If an error occurs
*/
protected InputStream
getInputStream() throws IOException
{
return(null);
}
/*************************************************************************/
/**
* Returns an OutputStream object for writing to this socket. This will
* be an instance of SocketOutputStream.
*
* @return An OutputStream
*
* @exception IOException If an error occurs
*/
protected OutputStream
getOutputStream() throws IOException
{
return(null);
}
} // class PlainSocketImpl
This directory contains various "experiment" programs used to determine
the behavior of the java.net class where such behavior is not sufficiently
documented by Sun in order to write an implementation from docs alone.
Some key findings:
The setOption/getOption methods are discussed in the "Networking Enhancements"
document for Java 1.1 but are not in the javadocs. However, the SocketImpl
class is shown implementing a SocketOptions interface that is not documented.
We assume this is a non-public interface which contains abstract declarations
of the get/setOption methods as well as contants for the option_id's.
TCP_NODELAY:
The option id of this option is 1. The Object passed to setOption is
a Boolean indicating whether this option should be on (true) or off (false).
SO_LINGER:
The option id of this option is 128. When SO_LINGER is to be disabled,
the Object passed to setOption is Boolean with a value of false. When
SO_LINGER is to be enabled, the Object passed to setOption is an Integer
set to the linger value.
SO_TIMEOUT:
The option id of this option is 4102. The Object passed to setOption is
an Integer that is the new timeout value (0 to disable).
Makefile
Makefile.in
*.info
*.aux
*.cp
*.dvi
*.fn
*.ky
*.log
*.pg
*.toc
*.tp
*.vr
SUBDIRS = api
EXTRA_DIST = README.jaxp
info_TEXINFOS = hacking.texinfo vmintegration.texinfo
%.dvi : %.texinfo
texi2dvi $<
%.ps : %.dvi
dvips -o $@ $<
docs: hacking.ps vmintegration.ps
This file describes the jaxp (xml processing) implementation of GNU Classpath.
GNU Classpath includes interfaces and implementations for basic XML processing
in in the java programming language, some general purpose SAX2 utilities, and
transformation.
These classes used to be maintained as part of an external project GNU JAXP
but are now integrated with the rest of the core class library provided by
GNU Classpath.
PACKAGES
. javax.xml.* ... JAXP 1.3 interfaces
. gnu.xml.aelfred2.* ... SAX2 parser + validator
. gnu.xml.dom.* ... DOM Level 3 Core, Traversal, XPath implementation
. gnu.xml.dom.ls.* ... DOM Level 3 Load & Save implementation
. gnu.xml.xpath.* ... JAXP XPath implementation
. gnu.xml.transform.* ... JAXP XSL transformer implementation
. gnu.xml.pipeline.* ... SAX2 event pipeline support
. gnu.xml.util.* ... various XML utility classes
. gnu.xml.libxmlj.dom.* ... libxmlj DOM Level 3 Core and XPath
. gnu.xml.libxmlj.sax.* ... libxmlj SAX parser
. gnu.xml.libxmlj.transform.* ... libxmlj XSL transformer
. gnu.xml.libxmlj.util.* ... libxmlj utility classes
In the external directory you can find the following packages.
They are not maintained as part of GNU Classpath, but are used by the
classes in the above packages.
. org.xml.sax.* ... SAX2 interfaces
. org.w3c.dom.* ... DOM Level 3 interfaces
CONFORMANCE
The primary test resources are at http://xmlconf.sourceforge.net
and include:
SAX2/XML conformance tests
That the "xml.testing.Driver" addresses the core XML 1.0
specification requirements, which closely correspond to the
functionality SAX1 provides. The driver uses SAX2 APIs to
test that functionality It is used with a bugfixed version of
the NIST/OASIS XML conformance test cases.
The AElfred2 parser is highly conformant, though it still takes
a few implementation shortcuts. See its package documentation
for information about known XML conformance issues in AElfred2.
The primary issue is using Unicode character tables, rather than
those in the XML specification, for determining what names are
valid. Most applications won't notice the difference, and this
solution is smaller and faster than the alternative.
For validation, a secondary issue is that issues relating to
entity modularity are not validated; they can't all be cleanly
layered. For example, validity constraints related to standalone
declarations and PE nesting are not checked.
The current implementation has also been tested against Elliotte
Rusty Harold's SAXTest test suite (http://www.cafeconleche.org/SAXTest)
and achieves approximately 93% conformance to the SAX specification
according to these tests, higher than any other current Java parser.
SAX2
SAX2 API conformance currently has a minimal JUNIT (0.2) test suite,
which can be accessed at the xmlconf site listed above. It does
not cover namespaces or LexicalHandler and Declhandler extensions
anywhere as exhaustively as the SAX1 level functionality is
tested by the "xml.testing.Driver". However:
- Applying the DOM unit tests to this implementation gives
the LexicalHandler (comments, and boundaries of DTDs,
CDATA sections, and general entities) a workout, and
does the same for DeclHandler entity declarations.
- The pipeline package's layered validator demands that
element and attribute declarations are reported correctly.
By those metrics, SAX2 conformance for AElfred2 is also strong.
DOM Level 3 Core Tests
The DOM implementation has been tested against the W3C DOM Level 3
Core conformance test suite (http://www.w3.org/DOM/Test/). Current
conformance according to these tests is 72.3%. Many of the test
failures are due to the fact that GNU JAXP does not currently
provide any W3C XML Schema support.
XSL transformation
The transformer and XPath implementation have been tested against
the OASIS XSLT and XPath TC test suite. Conformance against the
Xalan tests is currently 77%.
libxmlj
========================================================================
libxmlj is an effort to create a 100% JAXP-compatible Java wrapper for
libxml2 and libxslt. JAXP is the Java API for XML processing, libxml2
is the XML C library for Gnome, and libxslt is the XSLT C library for
Gnome.
libxmlj currently supports most of the DOM Level 3 Core, Traversal, and
XPath APIs, SAX2, and XSLT transformations. There is no W3C XML Schema
support yet.
libxmlj can parse and transform XML documents extremely quickly in
comparison to Java-based JAXP implementations. DOM manipulations, however,
involve JNI overhead, so the speed of DOM tree construction and traversal
can be slower than the Java implementation.
libxmlj is highly experimental, doesn't always conform to the DOM
specification correctly, and may leak memory. Production use is not advised.
The implementation can be found in gnu/xml/libxmlj and native/jni/xmlj.
See the INSTALL file for the required versions of libxml2 and libxslt.
configure --enable-xmlj will build it.
Usage
------------------------------------------------------------------------
To enable the various GNU JAXP factories, set the following system properties
(command-line version shown, but they can equally be set programmatically):
AElfred2:
-Djavax.xml.parsers.SAXParserFactory=gnu.xml.aelfred2.JAXPFactory
GNU DOM (using DOM Level 3 Load & Save):
-Djavax.xml.parsers.DocumentBuilderFactory=gnu.xml.dom.DomDocumentBuilderFactory
GNU DOM (using AElfred-only pipeline classes):
-Djavax.xml.parsers.DocumentBuilderFactory=gnu.xml.dom.JAXPFactory
GNU XSL transformer:
-Djavax.xml.transform.TransformerFactory=gnu.xml.transform.TransformerFactoryImpl
libxmlj SAX:
-Djavax.xml.parsers.SAXParserFactory=gnu.xml.libxmlj.sax.GnomeSAXParserFactory
libxmlj DOM:
-Djavax.xml.parsers.DocumentBuilderFactory=gnu.xml.libxmlj.dom.GnomeDocumentBuilderFactory
libxmlj XSL transformer:
-Djavax.xml.transform.TransformerFactory=gnu.xml.libxmlj.transform.GnomeTransformerFactory
When using libxmlj, the libxmlj shared library must be available.
In general it is picked up by the runtime using GNU Classpath. If not you
might want to try adding the directory where libxmlj.so is installed
(by default ${prefix}/lib/classpath/) with ldconfig or specifing in the
LD_LIBRARY_PATH environment variable. Additionally, you may need to specify
the location of your shared libraries to the runtime environment using the
java.library.path system property.
Missing (libxmlj) Features
------------------------------------------------------------------------
See BUGS in native/jni/xmlj for known bugs in the libxmlj native bindings.
This implementation should be thread-safe, but currently all
transformation requests are queued via Java synchronization, which
means that it effectively performs single-threaded. Long story short,
both libxml2 and libxslt are not fully reentrant.
Update: it may be possible to make libxmlj thread-safe nonetheless
using thread context variables.
Update: thread context variables have been introduced. This is very
untested though, libxmll therefore still has the single thread
bottleneck.
if CREATE_API_DOCS
noinst_DATA = html
endif
sourcepath = $(top_builddir):$(top_srcdir):$(top_srcdir)/vm/reference:$(top_srcdir)/external/w3c_dom:$(top_srcdir)/external/sax
classpathbox = "<span class='logo'><a href='http://www.gnu.org/software/classpath' target='_top'>GNU Classpath</a> ($(VERSION))"
install-data-local:
$(mkinstalldirs) $(DESTDIR)$(pkgdatadir)/api
@list='$(htmllist)'; for p in $$list; do \
f="`echo $$p | sed -e 's|^.*/||'`"; \
if test -f "$$p"; then \
echo " $(INSTALL_DATA) $$p $(DESTDIR)$(pkgdatadir)/api/$$f"; \
$(INSTALL_DATA) $$p $(DESTDIR)$(pkgdatadir)/api/$$f; \
elif test -d "$$p"; then \
$(mkinstalldirs) $(DESTDIR)$(pkgdatadir)/api/$$f; \
fi; \
done
uninstall-local:
@list='$(htmllist)'; for p in $$list; do \
f="`echo $$p | sed -e 's|^.*/||'`"; \
if test -f "$$p"; then \
echo " rm -f $(DESTDIR)$(pkgdatadir)/api/$$f"; \
rm -f $(DESTDIR)$(pkgdatadir)/api/$$f; \
fi; \
done
html: create_html
clean-local:
-rm -rf html create_html gjdoc_rawcomment.cache
create_html:
-$(MKDIR) html > /dev/null 2>&1
$(GJDOC) \
-use \
-sourcepath "$(sourcepath)" \
-encoding UTF-8 \
-breakiterator \
-licensetext \
-linksource \
-splitindex \
-d html \
-doctitle "GNU Classpath $(VERSION)" \
-windowtitle "GNU Classpath $(VERSION) Documentation" \
-header $(classpathbox) -footer $(classpathbox) \
-subpackages java:javax:org
touch create_html
GNU Classpath Native State API - Version 0.99.1
Written by Paul Fisher (rao@gnu.org)
For all function calls, if an error occurs, such that `NULL' or a
negative value is returned, it's very possible that an exception has
been thrown from within the function. The exception is not cleared,
and you are responsible for dealing with the thrown exception.
High level API:
For using the highlevel API, in all cases, OBJ must contain a `final
int' field called "native_state", which has been previously set to the
value of java.lang.System.identityHashCode(OBJ).
Function: struct state_table * init_state_table (JNIEnv *ENV,
jclass CLAZZ)
Creates a state table of default size. Returns `NULL' on error.
Function: struct state_table * init_state_table_with_size (JNIEnv *ENV,
jclass CLAZZ,
jint SIZE)
Creates a state table, with a tablesize of SIZE. SIZE should
always be prime. Returns `NULL' on error.
Function: jint set_state (JNIEnv *ENV, jobject OBJ,
struct state_table *TABLE, void *STATE)
Associates STATE with OBJ, in TABLE. Returns 0 on success, and a
negative value on failure. STATE must not be `NULL'. set_state is
reentrant, and calls to set_state/get_state/remove_state_slot may be
made at the same time.
Function: void * get_state (JNIEnv *ENV, jobject OBJ,
struct state_table *TABLE)
Retrieves the state associated with OBJ, in TABLE. Returns `NULL'
if no value is associated with OBJ, or if a failure occurs.
get_state is reentrant, and calls to
get_state/set_state/remove_state_slot may be made at the same time.
Function: void * remove_state_slot (JNIEnv *ENV, jobject OBJ,
struct state_table *TABLE)
Removes the internal slot associated with OBJ, in TABLE. Returns a
pointer to the C state if a state was associated with OBJ,
otherwise, `NULL' is returned. After `remove_state' is called,
`get_state' passing OBJ, will result in `NULL' being returned. This
function is generally called in the `finalize' method of a class.
remove_state_slot is reentrant, and calls to
get_state/set_state/remove_state_slot may be made at the same time.
Low level API:
Function: void set_state_oid (JNIEnv *ENV, jobject LOCK,
struct state_table *TABLE,
jint OBJECT_ID, void *STATE)
Associates STATE with OBJECT_ID, in TABLE. STATE must not be
`NULL'. On entering, a lock is obtained on LOCK. On exiting, the
lock is released.
Function: void * get_state_oid (JNIEnv *ENV, jobject LOCK,
struct state_table *TABLE,
jint OBJECT_ID)
Retrieves the state associated with OBJECT_ID, in TABLE. Returns
`NULL' if no value is associated with OBJECT_ID. On entering, a
lock is obtained on LOCK. On exiting, the lock is released.
Function: void * remove_state_oid (JNIEnv *ENV, jobject LOCK,
struct state_table *TABLE,
jint OBJECT_ID)
Removes the value associated with OBJECT_ID, in TABLE. Returns a
pointer to the C state if a state was associated with OBJECT_ID,
otherwise, `NULL' is returned. After `remove_state_oid' is called,
`get_state_oid' passing OBJECT_ID, will result in `NULL' being
returned. On entering, a lock is obtained on LOCK. On exiting, the
lock is released.
Guile Testing Framework for GNU Classpath
Written by Paul Fisher (rao@gnu.org)
GNU Classpath tests are written in Java. Guile is responsible for
executing the tests and organizing the results. Guile and Java
communicate through JNI. If JNI is unavailable, see the section on
modifying the framework to allow for an alternate means of
communication. [This has not been written. -PF]
All tests must implement gnu.test.Test. gnu.test.Test contains two
methods:
1. String getName()
2. Result test()
When getName() is called, your test should return the name of the
test. When test() is called, your test should be performed. Upon
completion of the test (either through success or failure), a Result
object is returned. test() may throw runtime exceptions and errors --
if this happens, an implicit error result is returned.
There are seven predefined result types, including the POSIX 1003.3
result codes. All result objects may optionally be constructed with a
single String argument specifying additional information about the
result.
gnu.test.Pass : Test passed and was excepted to pass.
gnu.test.XPass : Test passed but was expected to fail.
gnu.test.Fail : Test failed but was expected to pass.
gnu.test.XFail : Test failed and was expected to fail.
gnu.test.Unresolved : Test produced indeterminate results.
gnu.test.Untested : Test was not run -- a placeholder.
gnu.test.Unsupported : Test does not have the required support to run.
(Error is also a valid result type, but only in Guile/JNI code.)
System.out and System.err are used for directing additional
information about the running test. System.out should be used to send
status messages when tests are expected to take large amounts of time.
System.err should be used to send messages which are logged to the
verbose log.
Example test:
import gnu.test.*;
public class StringCharAtZeroTest implements Test
{
public getName() {
return "java.lang.String.charAt(0)";
}
public Result test() {
char ch = "foobar".charAt(0);
if (ch == 'f')
return new Pass();
else
return new Fail("zero index of \"foobar\" is '" + ch + "'");
}
}
It's often desirable to group multiple tests together into one file.
In this case, inner classes should be used. There's also the added
benefit that tests can easily share data through static variables in
the parent class.
For example:
import gnu.test.*;
public class TestContainer {
public static class test1 implements Test {
String getName() {
return "test1";
}
Result test() {
// test1 ...
}
}
public static class test2 implements Test {
String getName() {
return "test2";
}
Result test() {
// test2 ...
}
}
}
The testsuite contains a file known as "tests.to.run" which contains a
newline delimited listing of all tests to be executed. Just add the
name of the new test to the file and it'll be included in future runs
of the testsuite.
Running the testsuite:
guile-jvm -s test.scm tests.to.run
(It would be more natural for the testsuite to read from standard in
if a file was not specified, but read-line in Guile 1.3a is broken.)
Classes are located via the environmental variable CLASSPATH.
Results are sent to two log files -- one summary (classpath.sum) and
one verbose (classpath.log).
This source diff could not be displayed because it is too large. You can view the blob instead.
# Start Code; End Code; Block Name
0000; 007F; Basic Latin
0080; 00FF; Latin-1 Supplement
0100; 017F; Latin Extended-A
0180; 024F; Latin Extended-B
0250; 02AF; IPA Extensions
02B0; 02FF; Spacing Modifier Letters
0300; 036F; Combining Diacritical Marks
0370; 03FF; Greek
0400; 04FF; Cyrillic
0530; 058F; Armenian
0590; 05FF; Hebrew
0600; 06FF; Arabic
0700; 074F; Syriac
0780; 07BF; Thaana
0900; 097F; Devanagari
0980; 09FF; Bengali
0A00; 0A7F; Gurmukhi
0A80; 0AFF; Gujarati
0B00; 0B7F; Oriya
0B80; 0BFF; Tamil
0C00; 0C7F; Telugu
0C80; 0CFF; Kannada
0D00; 0D7F; Malayalam
0D80; 0DFF; Sinhala
0E00; 0E7F; Thai
0E80; 0EFF; Lao
0F00; 0FFF; Tibetan
1000; 109F; Myanmar
10A0; 10FF; Georgian
1100; 11FF; Hangul Jamo
1200; 137F; Ethiopic
13A0; 13FF; Cherokee
1400; 167F; Unified Canadian Aboriginal Syllabics
1680; 169F; Ogham
16A0; 16FF; Runic
1780; 17FF; Khmer
1800; 18AF; Mongolian
1E00; 1EFF; Latin Extended Additional
1F00; 1FFF; Greek Extended
2000; 206F; General Punctuation
2070; 209F; Superscripts and Subscripts
20A0; 20CF; Currency Symbols
20D0; 20FF; Combining Marks for Symbols
2100; 214F; Letterlike Symbols
2150; 218F; Number Forms
2190; 21FF; Arrows
2200; 22FF; Mathematical Operators
2300; 23FF; Miscellaneous Technical
2400; 243F; Control Pictures
2440; 245F; Optical Character Recognition
2460; 24FF; Enclosed Alphanumerics
2500; 257F; Box Drawing
2580; 259F; Block Elements
25A0; 25FF; Geometric Shapes
2600; 26FF; Miscellaneous Symbols
2700; 27BF; Dingbats
2800; 28FF; Braille Patterns
2E80; 2EFF; CJK Radicals Supplement
2F00; 2FDF; Kangxi Radicals
2FF0; 2FFF; Ideographic Description Characters
3000; 303F; CJK Symbols and Punctuation
3040; 309F; Hiragana
30A0; 30FF; Katakana
3100; 312F; Bopomofo
3130; 318F; Hangul Compatibility Jamo
3190; 319F; Kanbun
31A0; 31BF; Bopomofo Extended
3200; 32FF; Enclosed CJK Letters and Months
3300; 33FF; CJK Compatibility
3400; 4DB5; CJK Unified Ideographs Extension A
4E00; 9FFF; CJK Unified Ideographs
A000; A48F; Yi Syllables
A490; A4CF; Yi Radicals
AC00; D7A3; Hangul Syllables
D800; DB7F; High Surrogates
DB80; DBFF; High Private Use Surrogates
DC00; DFFF; Low Surrogates
E000; F8FF; Private Use
F900; FAFF; CJK Compatibility Ideographs
FB00; FB4F; Alphabetic Presentation Forms
FB50; FDFF; Arabic Presentation Forms-A
FE20; FE2F; Combining Half Marks
FE30; FE4F; CJK Compatibility Forms
FE50; FE6F; Small Form Variants
FE70; FEFE; Arabic Presentation Forms-B
FEFF; FEFF; Specials
FF00; FFEF; Halfwidth and Fullwidth Forms
FFF0; FFFD; Specials
# Start Code; End Code; Block Name
0000; 007F; Basic Latin
0080; 00FF; Latin-1 Supplement
0100; 017F; Latin Extended-A
0180; 024F; Latin Extended-B
0250; 02AF; IPA Extensions
02B0; 02FF; Spacing Modifier Letters
0300; 036F; Combining Diacritical Marks
0370; 03FF; Greek
0400; 04FF; Cyrillic
0530; 058F; Armenian
0590; 05FF; Hebrew
0600; 06FF; Arabic
0700; 074F; Syriac
0780; 07BF; Thaana
0900; 097F; Devanagari
0980; 09FF; Bengali
0A00; 0A7F; Gurmukhi
0A80; 0AFF; Gujarati
0B00; 0B7F; Oriya
0B80; 0BFF; Tamil
0C00; 0C7F; Telugu
0C80; 0CFF; Kannada
0D00; 0D7F; Malayalam
0D80; 0DFF; Sinhala
0E00; 0E7F; Thai
0E80; 0EFF; Lao
0F00; 0FFF; Tibetan
1000; 109F; Myanmar
10A0; 10FF; Georgian
1100; 11FF; Hangul Jamo
1200; 137F; Ethiopic
13A0; 13FF; Cherokee
1400; 167F; Unified Canadian Aboriginal Syllabics
1680; 169F; Ogham
16A0; 16FF; Runic
1780; 17FF; Khmer
1800; 18AF; Mongolian
1E00; 1EFF; Latin Extended Additional
1F00; 1FFF; Greek Extended
2000; 206F; General Punctuation
2070; 209F; Superscripts and Subscripts
20A0; 20CF; Currency Symbols
20D0; 20FF; Combining Marks for Symbols
2100; 214F; Letterlike Symbols
2150; 218F; Number Forms
2190; 21FF; Arrows
2200; 22FF; Mathematical Operators
2300; 23FF; Miscellaneous Technical
2400; 243F; Control Pictures
2440; 245F; Optical Character Recognition
2460; 24FF; Enclosed Alphanumerics
2500; 257F; Box Drawing
2580; 259F; Block Elements
25A0; 25FF; Geometric Shapes
2600; 26FF; Miscellaneous Symbols
2700; 27BF; Dingbats
2800; 28FF; Braille Patterns
2E80; 2EFF; CJK Radicals Supplement
2F00; 2FDF; Kangxi Radicals
2FF0; 2FFF; Ideographic Description Characters
3000; 303F; CJK Symbols and Punctuation
3040; 309F; Hiragana
30A0; 30FF; Katakana
3100; 312F; Bopomofo
3130; 318F; Hangul Compatibility Jamo
3190; 319F; Kanbun
31A0; 31BF; Bopomofo Extended
3200; 32FF; Enclosed CJK Letters and Months
3300; 33FF; CJK Compatibility
3400; 4DB5; CJK Unified Ideographs Extension A
4E00; 9FFF; CJK Unified Ideographs
A000; A48F; Yi Syllables
A490; A4CF; Yi Radicals
AC00; D7A3; Hangul Syllables
D800; DB7F; High Surrogates
DB80; DBFF; High Private Use Surrogates
DC00; DFFF; Low Surrogates
E000; F8FF; Private Use
F900; FAFF; CJK Compatibility Ideographs
FB00; FB4F; Alphabetic Presentation Forms
FB50; FDFF; Arabic Presentation Forms-A
FE20; FE2F; Combining Half Marks
FE30; FE4F; CJK Compatibility Forms
FE50; FE6F; Small Form Variants
FE70; FEFE; Arabic Presentation Forms-B
FEFF; FEFF; Specials
FF00; FFEF; Halfwidth and Fullwidth Forms
FFF0; FFFD; Specials
June 23, 1999
This directory contains the initial release for Unicode 3.0.
This release consists of corrections and additions to the
Unicode Character Database, to match the publication of
The Unicode Standard, Version 3.0.
Detailed documentation of the files constituting the
Unicode Character Database (contributory data files for
the standard itself) can now be found in
UnicodeCharacterDatabase.html.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
"http://www.w3.org/TR/REC-html40/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Content-Language" content="en-us">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<link rel="stylesheet" href="http://www.unicode.org/unicode.css" type="text/css">
<title>Unicode Character Database</title>
</head>
<body>
<h1>UNICODE CHARACTER DATABASE<br>
Version 3.0.0</h1>
<table border="1" cellspacing="2" cellpadding="0" height="87" width="100%">
<tr>
<td valign="TOP" width="144">Revision</td>
<td valign="TOP">3.0.0</td>
</tr>
<tr>
<td valign="TOP" width="144">Authors</td>
<td valign="TOP">Mark Davis and Ken Whistler</td>
</tr>
<tr>
<td valign="TOP" width="144">Date</td>
<td valign="TOP">1999-09-11</td>
</tr>
<tr>
<td valign="TOP" width="144">This Version</td>
<td valign="TOP"><a href="ftp://ftp.unicode.org/Public/3.0-Update/UnicodeCharacterDatabase-3.0.0.html">ftp://ftp.unicode.org/Public/3.0-Update/UnicodeCharacterDatabase-3.0.0.html</a></td>
</tr>
<tr>
<td valign="TOP" width="144">Previous Version</td>
<td valign="TOP">n/a</td>
</tr>
<tr>
<td valign="TOP" width="144">Latest Version</td>
<td valign="TOP"><a href="ftp://ftp.unicode.org/Public/3.0-Update/UnicodeCharacterDatabase-3.0.0.html">ftp://ftp.unicode.org/Public/3.0-Update/UnicodeCharacterDatabase-3.0.0.html</a></td>
</tr>
</table>
<p align="center">Copyright © 1995-1999 Unicode, Inc. All Rights reserved.</p>
<h2>Disclaimer</h2>
<p>The Unicode Character Database is provided as is by Unicode, Inc. No claims
are made as to fitness for any particular purpose. No warranties of any kind are
expressed or implied. The recipient agrees to determine applicability of
information provided. If this file has been purchased on magnetic or optical
media from Unicode, Inc., the sole remedy for any claim will be exchange of
defective media within 90 days of receipt.</p>
<p>This disclaimer is applicable for all other data files accompanying the
Unicode Character Database, some of which have been compiled by the Unicode
Consortium, and some of which have been supplied by other sources.</p>
<h2>Limitations on Rights to Redistribute This Data</h2>
<p>Recipient is granted the right to make copies in any form for internal
distribution and to freely use the information supplied in the creation of
products supporting the Unicode<sup>TM</sup> Standard. The files in the Unicode
Character Database can be redistributed to third parties or other organizations
(whether for profit or not) as long as this notice and the disclaimer notice are
retained. Information can be extracted from these files and used in
documentation or programs, as long as there is an accompanying notice indicating
the source.</p>
<h2>Introduction</h2>
<p>The Unicode Character Database is a set of files that define the Unicode
character properties and internal mappings. For more information about character
properties and mappings, see <i><a href="http://www.unicode.org/unicode/uni2book/u2.html">The
Unicode Standard</a></i>.</p>
<p>The Unicode Character Database has been updated to reflect Version 3.0 of the
Unicode Standard, with many characters added to those published in Version 2.0.
A number of corrections have also been made to case mappings or other errors in
the database noted since the publication of Version 2.0. Normative bidirectional
properties have also been modified to reflect decisions of the Unicode Technical
Committee.</p>
<p>For more information on versions of the Unicode Standard and how to reference
them, see <a href="http://www.unicode.org/unicode/standard/versions/">http://www.unicode.org/unicode/standard/versions/</a>.</p>
<h2>Conformance</h2>
<p>Character properties may be either normative or informative. <i>Normative</i>
means that implementations that claim conformance to the Unicode Standard (at a
particular version) and which make use of a particular property or field must
follow the specifications of the standard for that property or field in order to
be conformant. The term <i>normative</i> when applied to a property or field of
the Unicode Character Database, does <i>not</i> mean that the value of that
field will never change. Corrections and extensions to the standard in the
future may require minor changes to normative values, even though the Unicode
Technical Committee strives to minimize such changes. An<i> informative </i>property
or field is strongly recommended, but a conformant implementation is free to use
or change such values as it may require while still being conformant to the
standard. Particular implementations may choose to override the properties and
mappings that are not normative. In that case, it is up to the implementer to
establish a protocol to convey that information.</p>
<h2>Files</h2>
<p>The following summarizes the files in the Unicode Character Database. &nbsp;For
more information about these files, see the referenced technical report or
section of Unicode Standard, Version 3.0.</p>
<p><b>UnicodeData.txt (Chapter 4)</b>
<ul>
<li>The main file in the Unicode Character Database.</li>
<li>For detailed information on the format, see <a href="UnicodeData.html">UnicodeData.html</a>.
This file also characterizes which properties are normative and which are
informative.</li>
</ul>
<p><b>PropList.txt (Chapter 4)</b>
<ul>
<li>Additional informative properties list: <i>Alphabetic, Ideographic,</i>
and <i>Mathematical</i>, among others.</li>
</ul>
<p><b>SpecialCasing.txt (Chapter 4)</b>
<ul>
<li>List of informative special casing properties, including one-to-many
mappings such as SHARP S =&gt; &quot;SS&quot;, and locale-specific mappings,
such as for Turkish <i>dotless i</i>.</li>
</ul>
<p><b>Blocks.txt (Chapter 14)</b>
<ul>
<li>List of normative block names.</li>
</ul>
<p><b>Jamo.txt (Chapter 4)</b>
<ul>
<li>List of normative Jamo short names, used in deriving HANGUL SYLLABLE names
algorithmically.</li>
</ul>
<p><b>ArabicShaping.txt (Section 8.2)</b>
<ul>
<li>Basic Arabic and Syriac character shaping properties, such as initial,
medial and final shapes. These properties are normative for minimal shaping
of Arabic and Syriac. </li>
</ul>
<p><b>NamesList.txt (Chapter 14)</b>
<ul>
<li>This file duplicates some of the material in the UnicodeData file, and
adds informative annotations uses in the character charts, as printed in the
Unicode Standard. </li>
<li><b>Note: </b>The information in NamesList.txt and Index.txt files matches
the appropriate version of the book. Changes in the Unicode Character
Database since then may not be reflected in these files, since they are
primarily of archival interest.</li>
</ul>
<p><b>Index.txt (Chapter 14)</b>
<ul>
<li>Informative index to Unicode characters, as printed in the Unicode
Standard</li>
<li><b>Note: </b>The information in NamesList.txt and Index.txt files matches
the appropriate version of the book. Changes in the Unicode Character
Database since then may not be reflected in these files, since they are
primarily of archival interest.</li>
</ul>
<p><b>CompositionExclusions.txt (<a href="http://www.unicode.org/unicode/reports/tr15/">UTR#15
Unicode Normalization Forms</a>)</b>
<ul>
<li>Normative properties for normalization.</li>
</ul>
<p><b>LineBreak.txt (<a href="http://www.unicode.org/unicode/reports/tr14/">UTR
#14: Line Breaking Properties</a>)</b>
<ul>
<li>Normative and informative properties for line breaking. To see which
properties are informative and which are normative, consult UTR#14.</li>
</ul>
<p><b>EastAsianWidth.txt (<a href="http://www.unicode.org/unicode/reports/tr11/">UTR
#11: East Asian Character Width</a>)</b>
<ul>
<li>Informative properties for determining the choice of wide vs. narrow
glyphs in East Asian contexts.</li>
</ul>
<p><b>diffXvY.txt</b>
<ul>
<li>Mechanically-generated informative files containing accumulated
differences between successive versions of UnicodeData.txt</li>
</ul>
</body>
</html>
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
SUBDIRS := announce downloads docs faq events cp-tools
ifndef WMK
export WMK=wmk
endif
ifndef WML
export WML=wml
endif
WML_SRC = $(wildcard *.wml)
WML_OBJS = $(patsubst %.wml,%.html,$(WML_SRC))
all : $(WML_OBJS) subdirs
%.texinfo :
cp ../$(notdir $(@)) docs
# home and news html includes newsitems.txt so we list that here explicitly
home.html: home.wml include/macros.wml include/layout.wml newsitems.txt
$(WML) -o $@ $<
news.html: news.wml include/macros.wml include/layout.wml newsitems.txt
$(WML) -o $@ $<
%.html: %.wml include/macros.wml include/layout.wml
$(WML) -o $@ $<
.PHONY : clean
clean :
$(foreach dir, $(SUBDIRS), sh -c "cd $(dir) && $(MAKE) clean";)
-rm -f *.html
.PHONY : subdirs
subdirs :
$(foreach dir, $(SUBDIRS), sh -c "cd $(dir) && $(MAKE)";)
.PHONY : publish
publish :
@sh -c "if [ "$(CLASSPATH_WEBROOT)x" = x ]; then echo 'You must set CLASSPATH_WEBROOT in your environment first'; exit 1; fi"
@sh -c "if [ ! -d $(CLASSPATH_WEBROOT) ]; then echo 'You must set CLASSPATH_WEBROOT in your environment first'; exit 1; fi"
$(foreach dir, $(SUBDIRS), \
sh -c "mkdir -p $(CLASSPATH_WEBROOT)/$(dir);\
cd $(dir) && $(MAKE) publish";)
-cp -f *.html $(CLASSPATH_WEBROOT)
-cp -f *.css $(CLASSPATH_WEBROOT)
# -cp -f *.jpg $(CLASSPATH_WEBROOT)
All HTML files are generated from WML source.
If you wish to generate/view the HTML files locally, you'll need to
have wml and texi2html installed. To make the HTML files, just
type "make".
Quick and dirty "How To"
How to create a webpage:
1. When working in a subdirectory, begin the page with:
#!wml --include=..
2. Add:
#include "include/layout.wml"
3. Add <subject "page title">
this will set the page title to:
"page title - GNU Project -Free Software Foundation (FSF)"
4. Write your contents. Use the following pattern:
<box>
<boxtitle>...section title...</boxtitle>
<boxitem>...section contents...</boxitem>
<boxtitle>...section title...</boxtitle>
<boxitem>...section contents...</boxitem>
</box>
5. To change the menu entries, edit include/layout.wml
6. Call make to build the pages.
7. Set "CLASSPATH_WEBROOT" to a directory before calling "make publish"
to deploy the pages locally
A few useful tags (defined in layout.wml)
* <createlink name="name" url="url>
creates a <a href="url">name</a> entry
Some pages define their own tags (e.g. faq.wml, tools.wml, downloads.wml)
to organize their content.
Guide to the custom-defined tags
--------------------------------
Links
Description:
creates a <a href="url">name</a> entry; if name is missing, uses the url
as name
Availability:
everywhere (defined in macros.wml)
Format:
<createlink name="name" url="url>
<createlink url="url>
Commented code
Description:
creates a commented code example
Availability:
everywhere (defined in macros.wml)
Format:
<commented-code>
<code-line code="1st code-line">comment to 1st line of code</code-line>
<code-line code="2nd code-line">comment to 2nd line of code</code-line>
<code-line code="3rd code-line" />
</commented-code>
FAQ-Lists
<faq-section name="section name">
<faq question="1st question">
1st answer
</faq>
<faq question="2nd question">
2nd answer
</faq>
</faq-section>
<faq-section name="section name">
<faq question="1st question">
1st answer
</faq>
</faq-section>
Project Tables
Description:
Define a project in a project table
Example:
stories.wml
Availability:
everywhere (defined in macros.wml)
Format:
<project-list>
<project name="proj name" url="proj url">
project description
</project>
<project name="proj name" url="proj url">
project description
</project>
</project-list>
I am pleased to announce the first development release of GNU Classpath,
a project to create a free software replacement for Sun's proprietary
Java class libraries. The project is initially providing class library
support for the Japhar JVM.
Here are the answers to some questions you might have about this project
and this release.
1). Where can I get it?
GNU Classpath 0.00 can be downloaded from:
ftp://alpha.gnu.ai.mit.edu/pub/gnu/classpath-0.00.tar.gz
2). What is included?
The following java packages are supported:
-- java.beans
-- java.io
-- java.lang
-- java.lang.reflect
-- java.math
-- java.net
-- java.security (partial and non-functioning)
-- java.security.acl
-- java.security.interfaces
-- java.util
This is enough to run many non-awt programs. Not all classes and methods
are implemented in this release, but most are. The major missing piece
of core functionality is java.text. Many of the implemented classes are
already up to the Java 1.2 spec.
3). What is required to build/install/run?
GNU Classpath requires that Japhar 0.07 be installed. Information on
obtaining Japhar is available from http://www.japhar.org/. A working
C compiler is also required. You will need the Sun JDK installed if you
elect to recompile the Java classes.
4). What platforms are supported?
GNU/Linux is the only platform that has been tested. We plan to
eventually support many others.
5). Who should use this software?
This is a development release only. You should only install it if you
are interested in Classpath development or reporting bugs. We appreciate
both. You might also be interested if you enjoy installing random alpha
software.
6). Where do I go for more information?
The project has a web page at
http://www.classpath.org/
and
http://www.gnu.org/software/classpath/classpath.html
Information on our mailing list is available at the web site.
#!wml --include=..
#use wml::std::page
#use wml::std::lang
#use wml::fmt::isolatin
#use wml::std::case global=upper
<lang:new id=en short>
<lang:star:slice:>
<set-var last-modified-author="cbj">
#include <include/macros.wml>
<header title="<en>GNU Classpath Annoucement (1999-02-06)</en>">
<p>
<en>
I am pleased to announce the first development release of GNU Classpath,
a project to create a free software replacement for Sun's proprietary
Java class libraries. The project is initially providing class library
support for the Japhar JVM.
</en>
</p>
<p>
<en>
Here are the answers to some questions you might have about this project
and this release.
</en>
</p>
<p>
<en>
1). Where can I get it?
</en>
</p>
<p>
<en>
GNU Classpath 0.00 can be downloaded from:
<createlink url="ftp://alpha.gnu.org/pub/gnu/classpath/classpath-0.00.tar.gz"
name="ftp://alpha.gnu.org/pub/gnu/classpath/classpath-0.00.tar.gz">
</en>
</p>
<p>
<en>
2). What is included?
</en>
</p>
<p>
<en>
The following java packages are supported:
</en>
</p>
<UL>
<LI>java.beans</LI>
<LI>java.io</LI>
<LI>java.lang</LI>
<LI>java.lang.reflect</LI>
<LI>java.math</LI>
<LI>java.net</LI>
<LI>java.security (partial and non-functioning)</LI>
<LI>java.security.acl</LI>
<LI>java.security.interfaces</LI>
<LI>java.util</LI>
</UL>
<p>
<en>
This is enough to run many non-awt programs. Not all classes and methods
are implemented in this release, but most are. The major missing piece
of core functionality is java.text. Many of the implemented classes are
already up to the Java 1.2 spec.
</en>
</p>
<p>
<en>
3). What is required to build/install/run?
</en>
</p>
<p>
<en>
GNU Classpath requires that Japhar 0.07 be installed. Information on
obtaining Japhar is available from <createlink url="http://www.hungry.com/old-hungry/products/japhar/"
name="http://www.hungry.com/old-hungry/products/japhar/">. A working C compiler is also required. You
will need the Sun JDK installed if you elect to recompile the Java
classes.
</en>
</p>
<p>
<en>
4). What platforms are supported?
</en>
</p>
<p>
<en>
GNU/Linux is the only platform that has been tested. We plan to
eventually support many others.
</en>
</p>
<p>
<en>
5). Who should use this software?
</en>
</p>
<p>
<en>
This is a development release only. You should only install it if you
are interested in Classpath development or reporting bugs. We appreciate
both. You might also be interested if you enjoy installing random alpha
software.
</en>
</p>
<p>
<en>
6). Where do I go for more information?
</en>
</p>
<p>
<en>
The project has a web page at
<createlink url="http://www.classpath.org/" name="http://www.classpath.org/">
and
<createlink url="http://www.gnu.org/software/classpath/classpath.html"
name="http://www.gnu.org/software/classpath/classpath.html">
Information on our mailing list is available at the web site.
</en>
</p>
<footer>
#!wml --include=..
#use wml::std::page
#use wml::std::lang
#use wml::fmt::isolatin
#use wml::std::case global=upper
<lang:new id=en short>
<lang:star:slice:>
<set-var last-modified-author="cbj">
#include <include/macros.wml>
<header title="<en>GNU Classpath Annoucement (2000-11-20)</en>">
<p>
<en>
I am pleased to announce a new development release of GNU Classpath,
a project to create a free software replacement for Sun's proprietary
Java class libraries. The project is initially providing class library
support for the Japhar JVM. There are a few other JVMs which have taken
the project libraries and used them in their own projects as well.
</en>
</p>
<p>
<en>
Here are the answers to some questions you might have about this project
and this release.
</en>
</p>
<p>
<en>
1). Where can I get it?
</en>
</p>
<p>
<en>
GNU Classpath 0.01 can be downloaded from:
<createlink url="ftp://alpha.gnu.org/pub/gnu/classpath/classpath-0.01.tar.gz"
name="ftp://alpha.gnu.org/pub/gnu/classpath/classpath-0.01.tar.gz">
</en>
</p>
<p>
<en>
2). What is included?
</en>
</p>
<p>
<en>
The following java packages are supported:
</en>
</p>
<UL>
<LI>java.beans</LI>
<LI>java.io</LI>
<LI>java.lang</LI>
<LI>java.lang.reflect</LI>
<LI>java.math</LI>
<LI>java.net</LI>
<LI>java.security (partial and non-functioning)</LI>
<LI>java.security.acl</LI>
<LI>java.security.interfaces</LI>
<LI>java.util</LI>
</UL>
<p>
<en>
This is enough to run many non-awt programs. Not all classes and
methods are implemented in this release, but most are. Many of the
implemented classes are already up to the Java 1.2 spec.
</en>
</p>
<p>
<en>
3). What is required to build/install/run?
</en>
</p>
<p>
<en>
GNU Classpath requires that Japhar 0.09 be installed. Information on
obtaining Japhar is available from <createlink url="http://www.hungry.com/old-hungry/products/japhar/"
name="http://www.hungry.com/old-hungry/products/japhar/">. A working C compiler is also required. You
will need IBM's Jikes Java compiler installed if you elect to
recompile the Java classes and Sun's 1.1.8 JDK javah installed to
create native header files. RPMs compatible with Red Hat 7 have been
created of Japhar, NSPR, a cross platform thread library Japhar uses,
and GNU Classpath. Installing onto a Gnome workstation should
provide the rest of the required libraries automatically. Otherwise,
you may need to install libart and other packages detailed more
precisely in the HACKING file.
</en>
</p>
<p>
<en>
4). What platforms are supported?
</en>
</p>
<p>
<en>
GNU/Linux is the only platform that has been tested. We plan to
eventually support many others.
</en>
<p>
<p>
<en>
5). Who should use this software?
</en>
</p>
<p>
<en>
This is a development release only. You should only install it if you
are interested in Classpath development or reporting bugs. We appreciate
both. You might also be interested if you enjoy installing random alpha
software.
</en>
</p>
<p>
<en>
6). Where do I go for more information?
</en>
</p>
<p>
<en>
The project has a web page at
<createlink url="http://www.classpath.org/" name="http://www.classpath.org/">
and
<createlink url="http://www.gnu.org/software/classpath/classpath.html"
name="http://www.gnu.org/software/classpath/classpath.html">
Information on our mailing list is available at the web site.
</en>
</p>
<footer>
#!wml --include=..
#use wml::std::page
#use wml::std::lang
#use wml::fmt::isolatin
#use wml::std::case global=upper
<lang:new id=en short>
<lang:star:slice:>
<set-var last-modified-author="cbj">
#include <include/macros.wml>
<header title="<en>GNU Classpath Annoucement (2001-01-05)</en>">
<p>
<en>
I am pleased to announce a new development
release of GNU Classpath, a project to create a free software
replacement for Sun's proprietary Java class libraries. The project
is initially providing class library support for the Japhar JVM, but
will soon provide out of the box support SableVM, Intel's ORP, and
Kaffe. The major improvements for this release are the addition of a
correct security policy file and exception stack traces are now
printed when using Japhar.
</en>
</p>
<p>
<en>
Here are the answers to some questions you might have about this project
and this release.
</en>
</p>
<p>
<en>
1). Where can I get it?
</en>
</p>
<p>
<en>
GNU Classpath 0.02 can be downloaded from:
<createlink url="ftp://alpha.gnu.org/pub/gnu/classpath/classpath-0.02.tar.gz"
name="ftp://alpha.gnu.org/pub/gnu/classpath/classpath-0.02.tar.gz">
</en>
</p>
<p>
<en>
2). What is included?
</en>
</p>
<p>
<en>
The following java packages are supported:
</en>
</p>
<UL>
<LI>java.beans</LI>
<LI>java.io</LI>
<LI>java.lang</LI>
<LI>java.lang.reflect</LI>
<LI>java.math</LI>
<LI>java.net</LI>
<LI>java.security (partially functioning)</LI>
<LI>java.security.acl</LI>
<LI>java.security.interfaces</LI>
<LI>java.util</LI>
</UL>
<p>
<en>
This is enough to run many non-awt programs. Not all classes and
methods are implemented in this release, but most are. Many of the
implemented classes are already up to the Java 1.2 spec.
</en>
</p>
<p>
<en>
3). What is required to build/install/run?
</en>
</p>
<p>
<en>
GNU Classpath requires that Japhar 0.09 be installed along with a
single patch to Japhar 0.09 included with the release. Information on
obtaining Japhar is available from <createlink url="http://www.hungry.com/old-hungry/products/japhar/"
name="http://www.hungry.com/old-hungry/products/japhar/">. A working C compiler is also required. You
will need IBM's Jikes Java compiler installed if you elect to
recompile the Java classes and Sun's 1.1.8 JDK javah installed to
create native header files. RPMs compatible with Red Hat 7 have been
created of Japhar, NSPR, a cross platform thread library Japhar uses,
and GNU Classpath. Installing onto a Gnome workstation should provide
the rest of the required libraries automatically. Otherwise, you may
need to install libart and other packages detailed more precisely in
the HACKING file.
</en>
</p>
<p>
<en>
4). What platforms are supported?
</en>
</p>
<p>
<en>
GNU/Linux is the only platform that has been tested. We plan to
eventually support many others.
</en>
</p>
<p>
<en>
5). Who should use this software?
</en>
</p>
<p>
<en>
This is a development release only. You should only install it if you
are interested in Classpath development or reporting bugs. We appreciate
both. You might also be interested if you enjoy installing random alpha
software.
</en>
</p>
<p>
<en>
6). Where do I go for more information?
</en>
</p>
<p>
<en>
The project has a web page at
<createlink url="http://www.classpath.org/" name="http://www.classpath.org/">
and
<createlink url="http://www.gnu.org/software/classpath/classpath.html"
name="http://www.gnu.org/software/classpath/classpath.html">
Information on our mailing list is available at the web site.
</en>
</p>
<footer>
#!wml --include=..
#use wml::std::page
#use wml::std::lang
#use wml::fmt::isolatin
#use wml::std::case global=upper
<lang:new id=en short>
<lang:star:slice:>
<set-var last-modified-author="mjw">
#include <include/macros.wml>
<header title="<en>GNU Classpath 0.03 Announcement (2002-02-08)</en>">
<p>
<en>
We are pleased to announce a new development release of GNU Classpath.
GNU Classpath, Essential Libraries for Java, is a project to create free
core class libraries for use with virtual machines and compilers for the
Java language.
</en>
</p>
<p>
<en>
New in this release are the addition of java.util.zip and java.rmi
packages, VM independent jni.h, more flexible build environment to
separate class and native code generation, out of the box support for
the ORP VM, and lots of bug fixes and updates to make GNU Classpath more
compliant with the 1.2, 1.3 and 1.4 API specification. The copyleft
has been clarified and all code in the library is now distributed under
the same terms.
</en>
</p>
<p>
<en>
Here are the answers to some questions you might have about this project
and this release.
</en>
</p>
<p>
<en>
1). Where can I get it?
</en>
</p>
<p>
<en>
GNU Classpath 0.03 can be downloaded from:
<createlink url="ftp://alpha.gnu.org/pub/gnu/classpath/classpath-0.03.tar.gz"
name="ftp://alpha.gnu.org/pub/gnu/classpath/classpath-0.03.tar.gz">
</en>
</p>
<p>
<en>
2). What is included?
</en>
</p>
<p>
<en>
The following packages (some with subpackages) are supported:
</en>
</p>
<UL>
<LI>java.applet (untested)</LI>
<LI>java.awt (very experimental)</LI>
<LI>java.beans</LI>
<LI>java.io</LI>
<LI>java.lang</LI>
<LI>java.math</LI>
<LI>java.net</LI>
<LI>java.rmi</LI>
<LI>java.security (partially functioning)</LI>
<LI>java.sql</LI>
<LI>java.text (untested)</LI>
<LI>java.util</LI>
<LI>java.util.jar</LI>
<LI>java.util.zip</LI>
</UL>
<p>
<en>
This is enough to run many non-awt programs. Not all classes and
methods are implemented in this release, but most are. Many of the
implemented classes are already up to the 1.2 API spec. Some are
already compliant with the 1.3 and (preliminary) 1.4 API specification.
More information on the current status of each package can be found at
<createlink url="http://www.gnu.org/software/classpath/status.html"
name="http://www.gnu.org/software/classpath/status.html">
</en>
</p>
<p>
<en>
3). What is required to build/install/run?
</en>
</p>
<p>
<en>
GNU Classpath requires a working GNU build environment and a byte code
compiler such as jikes, gcj or kjc. When creating native code you will
also need a working C compiler and up to date Gnome development libraries
(gtk+, libart and gdk-pixbuf). More information on the precise version
numbers for the tools and libraries can be found in the INSTALL file.
</en>
</p>
<p>
<en>
4). What platforms and VMs are supported?
</en>
</p>
<p>
<en>
GNU/Linux is the only platform that has been tested. We plan to
eventually support many others.
</en>
</p>
<p>
<en>
This release support ORP 1.0.9 out of the box. But other compilers and
virtual machines such as gcj, Kissme, SableVM, Jupiter and Jaos also work
with slightly customized versions of GNU Classpath. Please check if there
is a customized version available for the VM you use before trying the bare
bones GNU Classpath release. We are working with the VM creators to keep
the differences between the core classes as small as possible.
</en>
</p>
<p>
<en>
5). Who should use this software?
</en>
</p>
<p>
<en>
Although it is already capable of supporting many Java applications,
this is a development release. As such, there are still many unfinished
components, and some problems are to be expected. You should install it
if you are interested in Classpath development or reporting bugs. We
appreciate both.
</en>
</p>
<p>
<en>
6). Where do I go for more information?
</en>
</p>
<p>
<en>
The project home page with information on our mailing list can be found at
<createlink url="http://www.classpath.org/" name="http://www.classpath.org/">
or
<createlink url="http://www.gnu.org/software/classpath/classpath.html"
name="http://www.gnu.org/software/classpath/classpath.html">
</en>
</p>
<p>
<en>
The bug database, CVS, task-manager and latest news can be found on Savannah at
<createlink url="http://savannah.gnu.org/projects/classpath/"
name="http://savannah.gnu.org/projects/classpath/">
</en>
</p>
<footer>
#!wml --include=..
#use wml::std::page
#use wml::std::lang
#use wml::fmt::isolatin
#use wml::std::case global=upper
<lang:new id=en short>
<lang:star:slice:>
<set-var last-modified-author="prr">
#include <include/macros.wml>
<header title="<en>GNU Classpath 0.08 Announcement (2004-03-15)</en>">
<pre>
We are pleased to announce a new development release of GNU Classpath.
GNU Classpath, Essential Libraries for Java, is a project to create free
core class libraries for use with virtual machines and compilers for the
java programming language.
GNU Classpath 0.08 can be downloaded from
ftp://ftp.gnu.org/pub/gnu/classpath/
or one of the ftp.gnu.org mirrors
http://www.gnu.org/order/ftp.html
File: classpath-0.08.tar.gz<br>
MD5sum: 17f200744c31f36fdbe15347745562fb
New in GNU Classpath 0.08:
* java.util.regexp implementation through gnu.regexp wrappers.
* java.net.URI implementation.
* Working implementation of javax.swing.undo.
* java.awt.geom.CubicCurve2D/QuadCurve2D: Can now solve cubic and
quadratic equations; implementation adapted from the GNU Scientific
Library.
* Lots of java.awt and gtk+ peer improvements. Also more Swing work.
Start of EmbeddedWindow support.
* BufferedReader speed improvements.
* Improved useabilty of java.text implementation for several
applications.
* ObjectInputStream is much faster and more compatible with other
implementations.
* Fix handling of alias methods, where a method has been deprecated in
favour of a new one with the same funtion but a different name.
(See Deprecated Methods section in the GNU Classpath Hacking Guide.)
* javax.print.attribute.standard added.
* Lots of java.nio, java.net, java.io fixes and updates.
* Depend on autoconf 2.59+ and automake 1.7+, GCJ 3.3+, jikes 1.18+.
VM Interface changes:
* Split native methods in java.lang.Runtime into java.lang.VMRuntime.
* Resources are now also loaded/needed through the bootstrap classloader
(gnu.regexp needs MessageBundle included in glibj.zip
Fixed Classpath bugs:
#6095 java.awt.geom.QuadCurve2D.solveQuadratic sometimes gives
wrong results
#7099 EventListenerList.getListenerCount should accept null argument
#7104 EventListenerList.add does not work
#7105 EventListenerList.remove does not work
#7107 DefaultBoundedRangeModel.setValue and friends should not throw
And lots more.
Here are answers to some questions you might have about this project and
this release.
1). What is required to build/install/run?
GNU Classpath requires a working GNU build environment and a byte code
compiler such as jikes, gcj or kjc. When creating native code you will
also need a working C compiler and up to date Gnome development
libraries (gtk+, libart and gdk-pixbuf). More information on the
precise version numbers for the tools and libraries can be found in
the INSTALL file.
A list of virtual machines and compilers known to work with GNU
Classpath can be found at our website:
http://www.gnu.org/software/classpath/stories.htm
2). What platforms are supported?
GNU/Linux is the only platform that has been tested.
We plan to eventually support many others.
3). Who should use this software?
Although GNU Classpath is already capable of supporting many
applications written in the java programming language, this is a
development release. As such, there are still some unfinished
components, and some problems are to be expected. You should install it
if you are interested in GNU Classpath development or reporting bugs.
We appreciate both.
A good overview of the current status can be found on the GNU Classpath
at FOSDEM'04 page which describes the last GNU Classpath hacker meeting.
It includes reports and presentations on the current status and future
plans: http://www.gnu.org/software/classpath/events/fosdem04.html
4). Where do I go for more information?
The project home page with information on our mailing list can be
found http://www.gnu.org/software/classpath/.
</pre>
<footer>
#!wml --include=..
#use wml::std::page
#use wml::std::lang
#use wml::fmt::isolatin
#use wml::std::case global=upper
<lang:new id=en short>
<lang:star:slice:>
<set-var last-modified-author="prr">
#include <include/macros.wml>
<header title="<en>GNU Classpath 0.09 Announcement (2004-05-02)</en>">
<pre>
We are pleased to announce a new development release of GNU Classpath.
GNU Classpath, Essential Libraries for Java, is a project to create free
core class libraries for use with virtual machines and compilers for the
java programming language.
GNU Classpath 0.09 can be downloaded from
ftp://ftp.gnu.org/pub/gnu/classpath/
or one of the ftp.gnu.org mirrors
http://www.gnu.org/order/ftp.html
File: classpath-0.09.tar.gz
MD5sum: 1c4bcf2e6b5201c6496ba55ee8aac04d
New in GNU Classpath 0.09:
* Includes updated GNU JAXP version from 2004-02-01.
* Native C code is now -ansi -pedantic (C89) clean and (almost) -Wall clean.
* java.io is now implemented by delegating most tasks directly to java.nio.
* Reworked/Optimized implementations of java.nio.Buffer and subclasses.
* New javax.print, javax.print.attribute[.standard] and javax.print.event
packages and classes.
* java.text attributed iterators support.
* New javax.imageio, javax.imageio.event and javax.imageio.spi packages and
classes.
* GNU Classpath can now load service providers that are described via
META-INF/services/* resources in extension JARs. This is useful for
implementing the various APIs that are supposed to be extensible via
custom plugins. For details, please see the documentation of
gnu.classpath.ServiceFactory.
Application developers are strongly discouraged from calling glibj
internal packages. Instead, they might want invoke the newly implemented
javax.imageio.spi.ServiceRegistry.lookupProviders, which is a standard
method for loading plug-ins.
* New developers wanting to help the GNU Classpath project might want to
review the greatly expanded Hacker Guide included in the doc directory
or online at http://www.gnu.org/software/classpath/docs/hacking.html
Also the FAQ has been expanded. And when working from CVS you can now use
a simple autogen.sh script to get all autotools magic done automagically.
* New configure option --with-glibj which defines how to install the glibj
class files as zip, as flat directory files or both (zip|flat|both)
[default=zip]. When working with multiple runtimes some of which might
not support bootstrap classes in zip files the --with-glibj=both option
is recommended (this does take extra disc space).
* Two big code drops from the libgcj gui branch updating various java.awt
and javax.swing classes.
* Multiple java.net.InetAdress fixes and java.rmi fixes.
* ServerSocket.accept() now restarts listening when system call interrupted.
* Much cleanups to make standard API doc valid XHTML (not completed yet).
* A scan for unused variables and non-static invocation of static methods
turned up a couple of subtle bugs which have now all been fixed.
* The Mauve testsuite has been cleaned up considerable and lots of issues
in the GNU Classpath core class implementation have been fixed.
VM Interface changes:
* java.lang.Class/VMClass interface was changed. The interface now no
longer requires an instance of VMClass for each Class instance. Instead
the field vmdata in Class is now of type Object.
* GNU Classpath now assumes that JNI calls SetXField can modify final
fields. This was previously used silently for System.in/out/err and should
be considered as a feature now.
* A new VMProcess and a sample JNI C implementation are now provided to
make Runtime.exec() work out of the box on some systems. This requires
a small change to VMRuntime.exec() when a runtime wants to use it as the
default java.lang.Process implementation.
* The implementation of most of java.io through java.nio moved serveral
runtime specific I/O methods. Most methods do have a generic default native
C JNI implementation in native/jni/java-nio.
* Runtime support methods for java.io.File have been moved to VMFile which
also comes with a default JNI C implementation.
* To support the new service provider mechanism runtimes must make sure that
extension JARs are made accessible via the default context class loader.
Here are answers to some questions you might have about this project and
this release.
1). What is required to build/install/run?
GNU Classpath requires a working GNU build environment and a byte code
compiler such as jikes, gcj or kjc. When creating native code you will
also need a working C compiler and up to date Gnome development
libraries (gtk+, libart and gdk-pixbuf). More information on the
precise version numbers for the tools and libraries can be found in
the INSTALL file.
A list of virtual machines and compilers known to work with GNU
Classpath can be found at our website:
http://www.gnu.org/software/classpath/stories.htm
2). What platforms are supported?
GNU/Linux is the only platform that has been tested.
We plan to eventually support many others.
3). Who should use this software?
Although GNU Classpath is already capable of supporting many
applications written in the java programming language, this is a
development release. As such, there are still some unfinished
components, and some problems are to be expected. You should install it
if you are interested in GNU Classpath development or reporting bugs.
We appreciate both.
A good overview of the current status can be found on the GNU Classpath
at FOSDEM'04 page which describes the last GNU Classpath hacker meeting.
It includes reports and presentations on the current status and future
plans: http://www.gnu.org/software/classpath/events/fosdem04.html
4). Where do I go for more information?
The project home page with information on our mailing list can be
found http://www.gnu.org/software/classpath/.
</pre>
<footer>
#!wml --include=..
#use wml::std::page
#use wml::std::lang
#use wml::fmt::isolatin
#use wml::std::case global=upper
<lang:star:slice:>
<set-var last-modified-author="prr">
#include <include/macros.wml>
<header title="GNU Classpath 0.10 Announcement (2004-07-09)">
<pre>
We are pleased to announce a new development release of GNU Classpath.
GNU Classpath, Essential Libraries for Java, is a project to create free
core class libraries for use with virtual machines and compilers for the
java programming language.
GNU Classpath 0.10 can be downloaded from
ftp://ftp.gnu.org/pub/gnu/classpath/
or one of the ftp.gnu.org mirrors
http://www.gnu.org/order/ftp.html
File: classpath-0.10.tar.gz
MD5sum: a59a5040f9c1237dbf27bfc668919943
New in release 0.10 (Jul 9, 2004)
* java.net.URL now uses application classloader to load URLStreamHandlers
and reuses URLStreamHandlers when URL is reset (but protocol isn't changed).
* java.io.File.deleteOnExit() implementation.
* java.text multiple new features and bug fixes
(only 2 out of the 1000+ java.text Mauve tests now fail).
* Better (non-black) default AWT System colors.
* AWT lists use GTK treeviews.
* Proper AWT focus management has been implemented.
* Swing menus and scrollpanes are beginning to work.
* Swing splitpanes, dialogs and internal frames were added.
* Swing repainting / double buffering was redone.
* Font management and Pango DPI conversion fixes.
* A lot of AWT imaging and event bugs have been picked out.
* More of javax.swing.text has been implemented.
* javax.swing.Timer has been reimplemented.
* java.security.AccessController has been implemented
(see runtime section).
* The default java.lang.SecurityManager now uses AccessController.
* New java.beans.Statement and Expression implementations.
* Small FileChannel implementation speed improvement for traditional
JNI based systems.
* Regenerated all included JNI header files with gcjh (3.5 CVS),
removes extra extern modifier and allows stricter compiler warning.
* More C code cleanups (-Wmissing-declarations, -Wmissing-prototypes and
-Wstring-prototypes) and jni.h fixes (a few funtion prototype fixes,
made it compilable with C++ compilers and jni.h got renamed from jni.h.in).
* Double.toString() and Float.toString() now work properly on 64-bit
PowerPC systems.
* PPC Darwin, arm, x86-64 and s/390 JNI C code compilation fixes.
* Build system refactored and removed old Japhar specific support.
* The gnu.java.awt.EmbeddedWindow class has been improved, and now
supports embedding AWT windows in other top-level X windows.
This functionality is required by gcjwebplugin.
* gcjwebplugin, an applet viewer that can be embedded into several web
browsers, has been extensively tested with this release of classpath.
(See http://www.nongnu.org/gcjwebplugin/)
* Runtime environments based on GNU Classpath 0.10 should be able to
start up Eclipse 3.0 out of the box now.
Runtime interface Changes:
* VMProcess.destroy() default implementation fixes.
* Fixed the "portable native sync" code; it had been broken since
Classpath release 0.06, when we upgraded to GTK+2.
Classpath's AWT peers use GTK+. GTK+ uses GLIB. GLIB by default uses
the platform's native threading model -- pthreads in most cases.
If the Java runtime doesn't use the native threading model, then you should
specify --portable-native-sync when configuring Classpath, so that GLIB will
use the Java threading primitives instead. (For a superior alternative,
see below.)
* The VM can set the system property
gnu.classpath.awt.gtk.portable.native.sync instead of using the
--portable-native-sync configure-type option.
See doc/vmintegration.texinfo for details.
* We intend that the next release of GNU Classpath will require the VM
to provide JNI 1.2. Classpath currently uses only JNI 1.1, except for
one JNI 1.2 function: GetEnv(), in the JNI Invocation API.
If this poses problems, please raise them on the classpath mailing list.
* The reference implementation of VMThread.holdsLock(Object) now has
a default implementation written in java. For efficiency and to
prevent spurious wakeups a real 'native' runtime version can be supplied.
* There is a new java.security.VMAccessController class that runtimes need
to implement to properly support SecurityManagers. The default
implementation that comes with GNU Classpath makes sure that ANY attempt
to access a protected resource is denied when a SecurityManager is
installed. Which is pretty secure, but also no very useful.
Please see the documentation in
vm/reference/java/security/VMAccessController.java,
and please give feedback on the GNU Classpath mailinglist whether or not
the current AccessController framework is flexible enough.
Here are answers to some questions you might have about this project and
this release.
1). What is required to build/install/run?
GNU Classpath requires a working GNU build environment and a byte code
compiler such as jikes, gcj or kjc. When creating native code you will
also need a working C compiler and up to date Gnome development
libraries (gtk+, libart and gdk-pixbuf). More information on the
precise version numbers for the tools and libraries can be found in
the INSTALL file.
You will also need a runtime environment. The following environments
have been tested to work out of the box with this release:
* JamVM (http://jamvm.sourceforge.net/)
* Jikes RVM (http://www.ibm.com/developerworks/oss/jikesrvm/)
* Kissme (http://kissme.sourceforge.net/)
For other environments that might need modified version of the current
release see the README file. A complete list of virtual machines and
compilers known to be based on GNU Classpath can be found at our
website: http://www.gnu.org/software/classpath/stories.html
2). What platforms are supported?
GNU/Linux is the only platform that has been tested.
We plan to eventually support many others.
3). Who should use this software?
Although GNU Classpath is already capable of supporting many
applications written in the java programming language, this is a
development release. As such, there are still some unfinished
components, and some problems are to be expected. You should install it
if you are interested in GNU Classpath development or reporting bugs.
We appreciate both.
For end users we recommend to use one of the development environments
based on GNU Classpath which combine the core libraries with compilers
and other tools needed for creating applications and libraries.
* GCC with GCJ (http://gcc.gnu.org/java/)
* Kaffe (http://www.kaffe.org/)
4). Where do I go for more information?
The project home page with information on our mailing list can be
found http://www.gnu.org/software/classpath/.
A good overview of the current status can be found on the GNU Classpath
at FOSDEM'04 page which describes the last GNU Classpath hacker meeting.
It includes reports and presentations on the current status and future
plans: http://www.gnu.org/software/classpath/events/fosdem04.html
</pre>
<footer>
#!wml --include=..
#use wml::std::page
#use wml::std::lang
#use wml::fmt::isolatin
#use wml::std::case global=upper
<lang:star:slice:>
<set-var last-modified-author="prr">
#include <include/macros.wml>
<header title="GNU Classpatchy 0.17 Announcement (2005-07-15)">
<pre>
GNU Classpatchy 0.17 released.
We are pleased to announce a new developer snapshot of GNU Classpath.
GNU Classpath, essential libraries for java, is a project to create free
core class libraries for use with runtimes, compilers and tools for the
java programming language.
The GNU Classpath developer snapshot releases are not directly aimed
at the end user but are meant to be integrated into larger development
platforms. For example the GCC (gcj) and Kaffe projects will use the
developer snapshots as a base for future versions.
This is mainly a bug fix release for issues found with eclipse 3.1 and
Free Swing applications just after our 0.16 release. But it also
includes some exciting new features.
Some highlights of changes in this release (more extensive list below):
XML DOM, XPATH and XSL fixes. Free Swing is much more responsive.
JInternalFram, JTree, JMenu, JTable, JButton and JFileChooser fixes.
FileChannel lock and force implementations added. The logging
FileHandler now rotates files. Clean locking and namespace for gtkpeer
library. System call interrupts and timeouts are now handled correctly
for net and nio. Corba bug fixes. Lots of documentation updates. The
VM Integration Guide now comes with a full section on the VM/Classpath
hooks. GNU Classpath Examples now includes a Tree World demo.
21 people actively contributed code to this release and made 171 CVS
commits during the two weeks of development. diffstat since 0.16:
3638 files changed, 25798 insertions(+), 15596 deletions(-)
More details about the various changes and contributions below.
This release passes 29508 out of 30320 Mauve core library tests.
Conformance reports for the included jaxp support can be found in the
doc/README.jaxp file.
GNU Classpath 0.17 can be downloaded from
ftp://ftp.gnu.org/pub/gnu/classpath/
or one of the ftp.gnu.org mirrors
http://www.gnu.org/order/ftp.html
File: classpath-0.17.tar.gz
MD5sum: eb620987422878e05ea889d5e7496c63
SHA1sum: 3b47cb37c91803fbc9d0426d97e1faa6a993615a
The GNU Classpath developers site http://developer.classpath.org/
provides detailed information on how to start with helping the GNU
Classpath project and gives an overview of the core class library
packages currently provided. For each snapshot release generated
documentation is provided through the GNU Classpath Tools gjdoc
project. A documentation generation framework for java source files
used by the GNU project. Full documentation on the currently
implementated packages and classes can be found at:
http://developer.classpath.org/doc/
New in release 0.17 (Jul 15, 2005)
(See the ChangeLog file for a full list of changes.)
* gnu.xml fix for nodes created outside a namespace context.
* Add support for output indenting and cdata-section-elements output
instruction in xml.transform.
* xml.xpath corrections for cases where elements/attributes might have
been created in non-namespace-aware mode. Corrections to handling of
XSL variables and minor conformance updates.
* DefaultMutableTreeNode preorder, postorder, depthFirst and breadthFirst
traversal enumerations implemented.
* JInternalFrame colors and titlebar draw properly.
* JTree is working up to par (icons, selection and keyboard traversal).
* JMenus were made more compatible in visual and programmatic behavior.
* JTable changeSelection and multiple selections implemented.
* JButton and JToggleButton change states work properly now.
* JFileChooser fixes.
* revalidate and repaint fixes which make Free Swing much more responsive.
* Correctly handle system call interrupts and timeouts in native nio
and net functions.
* MetalIconFactory implemented.
* Handle image loading errors correctly for gdkpixbuf and MediaTracker.
* Added Tree World to GNU Classpath examples Free Swing demo.
* FileChannel.lock() and FileChannel.force() implemented.
* java.util.logging.FileHandler now rotates files.
* Better handle GDK lock. Properly prefix gtkpeer native functions (cp_gtk).
* Corba bug fixes and documentation updates.
* Updated gcj build infrastructure.
* Documentation fixes all over the place.
See http://developer.classpath.org/doc/
* VM Integration Guide updates with a full section on VM/Classpath hooks.
The following people helped with this release:
Aaron Luchko (JDWP updates and documentation fixes)
Andrew John Hughes (VMIntegration guide update)
Anthony Balkissoon (Lots of Free Swing updates)
Archie Cobbs (build and URLClassLoader updates)
Audrius Meskauskas (Corba and text and html parser fixes)
Casey Marshall (FileChannel lock, SystemLogger and FileHandler rotate impl.)
Chris Burdess (Lots of gnu.xml and http protocol fixes)
Dalibor Topic (Better DEBUG support)
Daniel Bonniot (Serialization fixes)
David Gilbert (Lots of documentation and MetalIconFactory implementation)
Guilhem Lavaux (Logger bug fixes)
Jeroen Frijters (Serialization fixes)
Lillian Angel (Lots of Free Swing updates)
Mark Wielaard (System call interrupts, timeouts and packaging)
Robert Schuster (TreeNode enumerations and ActionCommand and various fixes)
Roman Kennke (Lots of Free Swing updates)
Sven de Marothy (GtkImage fixes)
Thomas Fitzsimmons (gtk peer updates and restructuring)
Simon Kitching (String cleanups and optimization suggestions)
Tom Tromey (gcj build update)
Ziga Mahkovec (build fixes)
We would also like to thank the numerous bug reporters and testers!
</pre>
<footer>
ifndef WMK
export WMK=wmk
endif
ifndef WML
export WML=wml
endif
WML_SRC = $(wildcard *.wml)
WML_OBJS = $(patsubst %.wml,%.html,$(WML_SRC))
%.html: %.wml ../include/macros.wml
$(WML) -o $@ $<
# -rm -f $(patsubst %.wml,%.html,$<)
all : $(WML_OBJS) subdirs
.PHONY : clean
clean :
$(foreach dir, $(SUBDIRS), sh -c "cd $(dir) && $(MAKE) clean";)
-rm -f *.html
.PHONY : subdirs
subdirs :
$(foreach dir, $(SUBDIRS), sh -c "cd $(dir) && $(MAKE)";)
.PHONY : publish
publish :
@sh -c "if [ "$(CLASSPATH_WEBROOT)x" = x ]; then echo 'You must set CLASSPATH_WEBROOT in your environment first'; exit 1; fi"
@sh -c "if [ ! -d $(CLASSPATH_WEBROOT) ]; then echo 'You must set CLASSPATH_WEBROOT in your environment first'; exit 1; fi"
$(foreach dir, $(SUBDIRS), sh -c "cd $(dir) && $(MAKE) publish";)
-cp -f *.html $(CLASSPATH_WEBROOT)/announce/
#!wml --include=..
#use wml::std::page
#use wml::std::lang
#use wml::fmt::isolatin
#use wml::std::case global=upper
<lang:new id=en short>
<lang:star:slice:>
<set-var last-modified-author="cbj">
#include <include/macros.wml>
<header title="<en>GNU Classpath Annoucements</en>">
<H4><en>Announcements</en></H4>
<UL>
<LI><createlink url="/software/classpath/announce/20020208.html" name="GNU Classpath Version 0.03"> (2002-02-08)</LI>
<LI><createlink url="/software/classpath/announce/20010106.html" name="GNU Classpath Version 0.02"> (2001-01-06)</LI>
<LI><createlink url="/software/classpath/announce/20001120.html" name="GNU Classpath Version 0.01"> (2000-11-20)</LI>
<LI><createlink url="/software/classpath/announce/19990206.html" name="GNU Classpath Version 0.00"> (1999-02-06)</LI>
</UL>
<footer>
#include "include/layout.wml"
<set-var last-modified-author="prk">
<subject "GNU Classpath Test and Benchmark Page">
<box>
<boxtitle><a name="testing">Classpath::Testing</a></boxtitle>
<boxitem>
<p>
The test framework for GNU Classpath is called
<createlink url="http://sources.redhat.com/mauve/" name="Mauve">. There
are instructions within the Mauve website on how to download and use Mauve.
Writing Mauve tests is the most important thing GNU Classpath developers
could do for the project at this time.
</p>
<p>
Java API compatibility testing can be performed using
<createlink url="http://www.kaffe.org/~stuart/japi/"
name="japitools">. Japitools already does
full API comparisons but it doesn't have the capability to extract
APIs from the documentation - instead, the "japize" tool uses the
jode.bytecode library to identify the public members of a given set of
packages from the binary jars or zips. But japitools does separate the
API-inspection phase ("japize") from the compatibility-testing phase
("japicompat") so it would be easy to offer an alternative to japize
that worked on API documentation.
</p>
<p>
Another method of API compatibility testing is to use <createlink
url="http://majestix.ucnet.uoc.gr/~jgeorgal/pub/jdiff.sh"
name="jdiff.sh">, at least until this functionality is merged into
japitools.
</boxitem>
<boxtitle><a name="benchmarks">Classpath::Benchmarks</a></boxtitle>
<boxitem>
Many free benchmarks are available. Benchmarks are a good way to test the functionality of a VM and at the same time get results that can be compared.
<table border="0">
<tr>
<th>Name</th><th>Description</th>
</tr>
<tr>
<td><createlink name="Ashes" url="http://www.sable.mcgill.ca/ashes/"></td>
<td>The Ashes benchmark</td>
</tr>
</table>
</boxitem>
</box>
ifndef WMK
export WMK=wmk
endif
ifndef WML
export WML=wml
endif
WML_SRC = $(wildcard *.wml)
WML_OBJS = $(patsubst %.wml,%.html,$(WML_SRC))
%.html: %.wml ../include/macros.wml ../include/layout.wml
$(WML) -o $@ $<
# -rm -f $(patsubst %.wml,%.html,$<)
all : $(WML_OBJS) subdirs
.PHONY : clean
clean :
$(foreach dir, $(SUBDIRS), sh -c "cd $(dir) && $(MAKE) clean";)
-rm -f *.html
.PHONY : subdirs
subdirs :
$(foreach dir, $(SUBDIRS), sh -c "cd $(dir) && $(MAKE)";)
.PHONY : publish
publish :
@sh -c "if [ "$(CLASSPATH_WEBROOT)x" = x ]; then echo 'You must set CLASSPATH_WEBROOT in your environment first'; exit 1; fi"
@sh -c "if [ ! -d $(CLASSPATH_WEBROOT) ]; then echo 'You must set CLASSPATH_WEBROOT in your environment first'; exit 1; fi"
$(foreach dir, $(SUBDIRS), sh -c "cd $(dir) && $(MAKE) publish";)
-cp -f *.html $(CLASSPATH_WEBROOT)/cp-tools/
#!wml --include=..
#include "include/layout.wml"
<set-var last-modified-author="mjw">
<subject "GNU Classpath Tools">
<box>
<boxtitle><a name="Tools">GNU Classpath::Tools</a></boxtitle>
<boxitem>
GNU Classpath Tools is a collection of tools for programmers using the
GNU Classpath library including a byte code disassembler, a JNI C header
file generator, serial version uid calculator, character converter, remote
method invocation tools and a documentation generation framework for java
source files. Plus tools specific to GNU Classpath development for generating
locale, currency and timezone information.
</boxitem>
</box>
<box>
<boxtitle><a name="Programs">GNU Classpath::Tools::Programs</a></boxtitle>
<boxitem>
GNU Classpath Tools contains the following tools. Some have their own
page describing them in more detail:
<ul>
<li><b>gjdoc</b>
A documentation generation framework for java source files.</li>
<li><b><createlink url="cp-tools/texidoclet.html" name="texidoclet"/></b>
A "doclet" for converting comments into GNU TexInfo source.</li>
<li>RMI tools such as rmic and rmiregistry.</li>
<li>Miscellaneous tools such as javap, javah, serialver and native2ascii/</a>
<li>GNU Classpath specific tools localgen and currencygen.</li>
</lu>
</boxitem>
</box>
<box>
<boxtitle><a name="Development">GNU Classpath::Tools::Development</a></boxtitle>
<boxitem>
GNU Classpath Tools is part of the GNU Classpath project which is hosted at
Savannah. The project page is
<createlink url="http://savannah.gnu.org/projects/classpath/"/>.
From there you can submit bug reports, check the latest news, find tasks
yet to be done, and most importantly submit patches!
<p>
There is one general discussion list for Classpath-tools. You may
<createlink url="" name="subscribe"/> to the mailing list via the web.
However, you may also just send an email message with a subject of "subscribe"
to <createlink url="mailto:cp-tools-discuss-request@gnu.org"/>.
You may <createlink url="" name="unsubscribe"/> from the mailing list via the
web as well.
</boxitem>
<boxtitle><a name="License">GNU Classpath::Tools::Distribution Terms</a></boxtitle>
<boxitem>
All GNU Classpath Tools are distributed under the terms of the
<createlink url="/copyleft/gpl.html" name="GNU General Public License">.
</boxitem>
</box>
SUBDIRS=
ifndef WMK
export WMK=wmk
endif
ifndef WML
export WML=wml
endif
TEXI_SRC := $(wildcard ../../*.texinfo)
VPATH = ../..
WML_SRC = $(patsubst ../../%, %, $(TEXI_SRC:.texinfo=.html)) $(wildcard *.wml)
WML_OBJS = $(patsubst %.wml,%.html,$(WML_SRC))
%.html : %.texinfo
texi2html -monolithic --ifinfo --ifhtml $<
# texi2html -monolithic $<;
# cp $< $@
# echo '#!wml --include=..' > $@
# sed -e 's/<HTML>/\^\#use wml::std::lang\^\#use wml::fmt::isolatin\^\#use wml::std::case global=upper\^<lang:new id=en short>\^<lang:star:slice:>\^\#include <include\/macros.wml>\^<HTML>/' -e 's/<BODY>/<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#1F00FF" ALINK="#FF0000" VLINK="#9900DD">/' -e 's/<\/BODY>/<footer>\^<\/BODY>/' $(subst .wml,.html,$(@)) > $@.sed;
# tr "\\^" "\n" < $@.sed >> $@
# -rm -f $(subst .wml,.html,$(@)) $@.sed
%.html: %.wml ../include/macros.wml ../include/layout.wml
$(WML) -o $@ $<
# -rm -f $(patsubst %.wml,%.html,$<)
.PHONY : all
all : $(WML_OBJS) subdirs
.PHONY : clean
clean :
$(foreach dir, $(SUBDIRS), sh -c "cd $(dir) && $(MAKE) clean";)
-rm -f *.html
-rm -f hacking.wml vmintegration.wml
.PHONY : subdirs
subdirs :
$(foreach dir, $(SUBDIRS), sh -c "cd $(dir) && $(MAKE)";)
.PHONY : publish
publish :
@sh -c "if [ "$(CLASSPATH_WEBROOT)x" = x ]; then echo 'You must set CLASSPATH_WEBROOT in your environment first'; exit 1; fi"
@sh -c "if [ ! -d $(CLASSPATH_WEBROOT) ]; then echo 'You must set CLASSPATH_WEBROOT in your environment first'; exit 1; fi"
$(foreach dir, $(SUBDIRS), sh -c "cd $(dir) && $(MAKE) publish";)
-cp -f *.html $(CLASSPATH_WEBROOT)/docs/
#!wml --include=..
#include "include/layout.wml"
<subject "GNU Classpath Documentation">
<box>
<boxtitle>Classpath::Legal Information</boxtitle>
<boxitem>
<blockquote>
<createlink url="license.html#documentation" name="Documentation Redistribution Policy"><br/>
<createlink url="license.html" name="Copyright and License Terms"><br/>
</blockquote>
</boxitem>
<boxtitle>Classpath::API & Language Documentation</boxtitle>
<boxitem>
<blockquote>
<createlink url="http://developer.classpath.org/doc/" name="GNU Classpath API Specification">
</blockquote>
</boxitem>
<boxtitle>Classpath::Developer's Documentation</boxtitle>
<boxitem>
<blockquote>
<createlink url="docs/hacking.html" name="GNU Classpath Hacker's Guide"><br/>
<createlink url="docs/vmintegration.html" name="Virtual Machine Integration Guide"><br/>
<createlink url="http://developer.classpath.org/mediation/" name="GNU Classpath Wiki"><br/>
</blockquote>
</boxitem>
</box>
#!wml --include=..
#use wml::std::page
#use wml::std::lang
#use wml::fmt::isolatin
#use wml::std::case global=upper
<lang:new id=en short>
<lang:star:slice:>
<set-var last-modified-author="<mjw>">
#include <include/macros.wml>
<header title="GNU Classpath and Jikes RVM">
<en>
<p>
</p>
<H4>Steps to use Jikes RVM and GNU Classpath on GNU/Linux</H4>
<OL>
<LI>
Install jikes-1.18 on your machine, if you do not already have it.
Jikes can be retrieved from <createlink url="http://oss.software.ibm.com/developerworks/opensource/jikes/" name="http://oss.software.ibm.com/developerworks/opensource/jikes/">
</LI>
<LI>
Check out the GNU Classpath head into some directory (hereinafter
called &lt;classpathdir&gt;)
<UL>
<LI>CVS root for GNU Classpath is :psevser:anoncvs@subversions.gnu.org:/cvsroot/classpath</LI>
<LI>Given that root, in &lt;classpathdir&gt; do `cvs checkout classpath'</LI>
</UL>
</LI>
<LI>
Build and configure GNU Classpath
<UL>
<LI>Do the aclocal; autoheader; automake; autoconf thing in &lt;classpathdir&gt;/classpath (see HACKING for details)</LI>
<LI>Make a directory '&lt;classpathdir&gt;i686' (i.e. &lt;classpathdir&gt; now contains a 'classpath' and a 'i686')</LI>
<LI>In i686, do a '../classpath/configure --enable-jni --with-jikes'</LI>
<LI>In i686, do 'make'</LI>
</UL>
<p>
You can, of course, use your own classpath tree if you have one.
But you must make an 'i686' directory parallel to the top of your tree,
and do configure there as specified above.
</p>
</LI>
<LI>Download Jikes RVM into some directory (hereinafter &lt;rvmroot&gt;)
<UL>
<LI>:pserver:anoncvs@www-124.ibm.com:/usr/cvs/jikesrvm</LI>
<LI>Given that root, in &lt;rvmroot&gt;, do 'cvs checkout rvm'</LI>
</UL>
</LI>
<LI>
Edit &lt;rvmroot&gt;/rvm/config/i686-pc-linux.eb to reflect your system.
Everything should be fine, except CLASSPATH_SRC, which should become
&lt;classpathdir&gt;
</LI>
<LI>
Set the following environment variables (bash style below,
mutatis mutandum)<br>
<pre>
export RVM_ROOT=&lt;rvmroot&gt;
export RVM_HOST_CONFIG=&lt;rvmroot&gt;/rvm/config/i686-pc-linux.eb
export RVM_TARGET_CONFIG=&lt;rvmroot&gt;/rvm/config/i686-pc-linux.eb
export RVM_BUILD=&lt;some directory that can be trashed or created&gt;
export PATH=&lt;rvmroot&gt;/rvm/bin:${PATH}
</pre>
</LI>
<LI>
Build Jikes RVM
<UL>
<LI>jconfigure -D RVM_WITH_GNU_CLASSPATH=1 BaseBaseSemiSpace</LI>
<LI>cd $RVM_BUILD</LI>
<LI>./jbuild</LI>
</UL>
</LI>
</OL>
<p>
Many variations are possible. Be warned that BaseBaseSemiSpace instructs
jconfigure to prepare a version of JikesRVM that is slow to run but quick
to build. After verifying that that works, you may want to try
FastAdaptiveSemiSpace instead (just change the last argument to jconfigure;
you will probably want to change RVM_BUILD so that the FastAdaptive image
does not destroy the BaseBase one). That will prepare a Jikes RVM version
that takes much longer to build (~25 minutes on a fast machine) but will run
programs much faster. Also be warned that you currently need rather a
lot of memory to build the FastAdaptiveSemiSpace image; recommended at least
512MB.
</p>
<p>
If you have problems, refer to specific install documentation for each
project. Thank you to Julian Dolby for providing these instructions.
</p>
<ul>
<li><createlink url="http://www-124.ibm.com/developerWorks/opensource/jikesrvm/" name="Jikes RVM"></li>
</ul>
</en>
<footer>
#!wml --include=..
#use wml::std::page
#use wml::std::lang
#use wml::fmt::isolatin
#use wml::std::case global=upper
<lang:new id=en short>
<lang:star:slice:>
<set-var last-modified-author="<mjw>">
#include <include/macros.wml>
<header title="GNU Classpath and ORP">
<en>
<p>
The Open Runtime Platform (<link
url="http://orp.sourceforge.net/" name="ORP">) provides a
covenient and simple platform for both using and testing GNU
Classpath. With the release of ORP 1.0.9, GNU Classpath's native
libraries are supported out of the box.
</p>
<H4>Steps to use ORP+GNU Classpath on GNU/Linux</H4>
<p>
Example assumes ORP 1.0.9, see above. In the example, GNU Classpath sources
are in ~/src/classpath/.
</p>
<UL>
<LI>Obtain <createlink url="http://sourceforge.net/projects/orp/"
name="ORP"> from the Sourceforge project page</LI>
<OL>
<LI><tt>wget
http://prdownloads.sourceforge.net/orp/orp-1.0.9.tgz</tt></LI>
<LI><tt>tar -xzvf orp-1.0.9.tgz</tt></LI>
</OL>
<LI>On some systems you might need to apply a patch to work around
gcc compile problems</LI>
<OL>
<LI><tt>cd orp-1.0.9</tt></LI>
<LI><tt>patch -p1 < ~/src/classpath/resource/orp-1.0.9.patch</tt></LI>
</OL>
<LI>Build ORP</LI>
<OL>
<LI><tt>make NON_ORP_NATIVE_LIBS=-DNON_ORP_NATIVE_LIBS dbg</tt></LI>
</OL>
</UL>
<p>
ORP should now be built and ready, orp-1.0.9/mains/orp/Linux/dbg/orp.
</p>
<H4>Using ORP+GNU Classpath on GNU/Linux</H4>
<p>
ORP needs to load shared libraries and the class library bytecode.
The recommended method is to use the environment variable
LD_LIBRARY_PATH to provide a colon separated list of directories in
which to look for GNU Classpath's shared libraries. The example below
assumes the user built and installed GNU Classpath without modifing
the default prefix.
</p>
<UL>
<LI>Set the LD_LIBRARY_PATH variable (assumes Bash shell)</LI>
<OL>
<LI><tt>export LD_LIBRARY_PATH=/usr/local/classpath/lib/classpath</tt></LI>
</OL>
</UL>
<UL>
<LI>Set the CLASSPATH variable (ORP doesn't yet use this but it
makes the command line easier).</LI>
<OL>
<LI><tt>export CLASSPATH=/usr/local/classpath/share/classpath/:.</tt></LI>
</OL>
</UL>
<UL>
<LI>Running HelloWorld with ORP</LI>
<OL>
<LI>Create a <tt>HelloWorld.java</tt> file and compile to a class file
with <tt>jikes</tt> or <tt>gcj -C</tt></LI>
<LI><tt>orp-1.0.9/mains/orp/Linux/dbg/orp -swapjit 0 1 -classpath
$CLASSPATH HelloWorld</tt></LI>
</OL>
</UL>
<p>
ORP contains two JITs at this time. By default ORP uses a
so-called JIT 3 and for some things it appears to have more problems
than when using JIT 1. This is the reasoning behind adding the
-swapjit 0 1 argument to ORP. ORP does not have the ability at this
time to execute raw bytecode and must use one of these two JIT
compilers.
</p>
</en>
<footer>
#!wml --include=..
<set-var last-modified-author="cbj">
##
# Ignore <en> tags without removing them (may be used in future)
#
<define-tag en endtag=required>
%body
</define-tag>
#include <include/layout.wml>
<subject "GNU Classpath 0.00 Annoucement (1999-02-06)">
<h1>GNU Classpath 0.00 Annoucement (1999-02-06)</h1>
<p>
<en>
I am pleased to announce the first development release of GNU Classpath,
a project to create a free software replacement for Sun's proprietary
Java class libraries. The project is initially providing class library
support for the Japhar JVM.
</en>
</p>
<p>
<en>
Here are the answers to some questions you might have about this project
and this release.
</en>
</p>
<p>
<en>
1). Where can I get it?
</en>
</p>
<p>
<en>
GNU Classpath 0.00 can be downloaded from:
<createlink url="ftp://alpha.gnu.org/pub/gnu/classpath/classpath-0.00.tar.gz"
name="ftp://alpha.gnu.org/pub/gnu/classpath/classpath-0.00.tar.gz">
</en>
</p>
<p>
<en>
2). What is included?
</en>
</p>
<p>
<en>
The following java packages are supported:
</en>
</p>
<UL>
<LI>java.beans</LI>
<LI>java.io</LI>
<LI>java.lang</LI>
<LI>java.lang.reflect</LI>
<LI>java.math</LI>
<LI>java.net</LI>
<LI>java.security (partial and non-functioning)</LI>
<LI>java.security.acl</LI>
<LI>java.security.interfaces</LI>
<LI>java.util</LI>
</UL>
<p>
<en>
This is enough to run many non-awt programs. Not all classes and methods
are implemented in this release, but most are. The major missing piece
of core functionality is java.text. Many of the implemented classes are
already up to the Java 1.2 spec.
</en>
</p>
<p>
<en>
3). What is required to build/install/run?
</en>
</p>
<p>
<en>
GNU Classpath requires that Japhar 0.07 be installed. Information on
obtaining Japhar is available from <createlink url="http://www.hungry.com/old-hungry/products/japhar/"
name="http://www.hungry.com/old-hungry/products/japhar/">. A working C compiler is also required. You
will need the Sun JDK installed if you elect to recompile the Java
classes.
</en>
</p>
<p>
<en>
4). What platforms are supported?
</en>
</p>
<p>
<en>
GNU/Linux is the only platform that has been tested. We plan to
eventually support many others.
</en>
</p>
<p>
<en>
5). Who should use this software?
</en>
</p>
<p>
<en>
This is a development release only. You should only install it if you
are interested in Classpath development or reporting bugs. We appreciate
both. You might also be interested if you enjoy installing random alpha
software.
</en>
</p>
<p>
<en>
6). Where do I go for more information?
</en>
</p>
<p>
<en>
The project has a web page at
<createlink url="http://www.classpath.org/" name="http://www.classpath.org/">
and
<createlink url="http://www.gnu.org/software/classpath/classpath.html"
name="http://www.gnu.org/software/classpath/classpath.html">
Information on our mailing list is available at the web site.
</en>
</p>
#!wml --include=..
<set-var last-modified-author="cbj">
##
# Ignore <en> tags without removing them (may be used in future)
#
<define-tag en endtag=required>
%body
</define-tag>
#include <include/layout.wml>
<subject "GNU Classpath 0.01 Annoucement (2000-11-20)">
<h1>GNU Classpath 0.01 Annoucement (2000-11-20)</h1>
<p>
<en>
I am pleased to announce a new development release of GNU Classpath,
a project to create a free software replacement for Sun's proprietary
Java class libraries. The project is initially providing class library
support for the Japhar JVM. There are a few other JVMs which have taken
the project libraries and used them in their own projects as well.
</en>
</p>
<p>
<en>
Here are the answers to some questions you might have about this project
and this release.
</en>
</p>
<p>
<en>
1). Where can I get it?
</en>
</p>
<p>
<en>
GNU Classpath 0.01 can be downloaded from:
<createlink url="ftp://alpha.gnu.org/pub/gnu/classpath/classpath-0.01.tar.gz"
name="ftp://alpha.gnu.org/pub/gnu/classpath/classpath-0.01.tar.gz">
</en>
</p>
<p>
<en>
2). What is included?
</en>
</p>
<p>
<en>
The following java packages are supported:
</en>
</p>
<UL>
<LI>java.beans</LI>
<LI>java.io</LI>
<LI>java.lang</LI>
<LI>java.lang.reflect</LI>
<LI>java.math</LI>
<LI>java.net</LI>
<LI>java.security (partial and non-functioning)</LI>
<LI>java.security.acl</LI>
<LI>java.security.interfaces</LI>
<LI>java.util</LI>
</UL>
<p>
<en>
This is enough to run many non-awt programs. Not all classes and
methods are implemented in this release, but most are. Many of the
implemented classes are already up to the Java 1.2 spec.
</en>
</p>
<p>
<en>
3). What is required to build/install/run?
</en>
</p>
<p>
<en>
GNU Classpath requires that Japhar 0.09 be installed. Information on
obtaining Japhar is available from <createlink url="http://www.hungry.com/old-hungry/products/japhar/"
name="http://www.hungry.com/old-hungry/products/japhar/">. A working C compiler is also required. You
will need IBM's Jikes Java compiler installed if you elect to
recompile the Java classes and Sun's 1.1.8 JDK javah installed to
create native header files. RPMs compatible with Red Hat 7 have been
created of Japhar, NSPR, a cross platform thread library Japhar uses,
and GNU Classpath. Installing onto a Gnome workstation should
provide the rest of the required libraries automatically. Otherwise,
you may need to install libart and other packages detailed more
precisely in the HACKING file.
</en>
</p>
<p>
<en>
4). What platforms are supported?
</en>
</p>
<p>
<en>
GNU/Linux is the only platform that has been tested. We plan to
eventually support many others.
</en>
<p>
<p>
<en>
5). Who should use this software?
</en>
</p>
<p>
<en>
This is a development release only. You should only install it if you
are interested in Classpath development or reporting bugs. We appreciate
both. You might also be interested if you enjoy installing random alpha
software.
</en>
</p>
<p>
<en>
6). Where do I go for more information?
</en>
</p>
<p>
<en>
The project has a web page at
<createlink url="http://www.classpath.org/" name="http://www.classpath.org/">
and
<createlink url="http://www.gnu.org/software/classpath/classpath.html"
name="http://www.gnu.org/software/classpath/classpath.html">
Information on our mailing list is available at the web site.
</en>
</p>
#!wml --include=..
<set-var last-modified-author="cbj">
##
# Ignore <en> tags without removing them (may be used in future)
#
<define-tag en endtag=required>
%body
</define-tag>
#include <include/layout.wml>
<subject "GNU Classpath 0.02 Annoucement (2001-01-05)">
<h1>GNU Classpath 0.02 Annoucement (2001-01-05)</h1>
<p>
<en>
I am pleased to announce a new development
release of GNU Classpath, a project to create a free software
replacement for Sun's proprietary Java class libraries. The project
is initially providing class library support for the Japhar JVM, but
will soon provide out of the box support SableVM, Intel's ORP, and
Kaffe. The major improvements for this release are the addition of a
correct security policy file and exception stack traces are now
printed when using Japhar.
</en>
</p>
<p>
<en>
Here are the answers to some questions you might have about this project
and this release.
</en>
</p>
<p>
<en>
1). Where can I get it?
</en>
</p>
<p>
<en>
GNU Classpath 0.02 can be downloaded from:
<createlink url="ftp://alpha.gnu.org/pub/gnu/classpath/classpath-0.02.tar.gz"
name="ftp://alpha.gnu.org/pub/gnu/classpath/classpath-0.02.tar.gz">
</en>
</p>
<p>
<en>
2). What is included?
</en>
</p>
<p>
<en>
The following java packages are supported:
</en>
</p>
<UL>
<LI>java.beans</LI>
<LI>java.io</LI>
<LI>java.lang</LI>
<LI>java.lang.reflect</LI>
<LI>java.math</LI>
<LI>java.net</LI>
<LI>java.security (partially functioning)</LI>
<LI>java.security.acl</LI>
<LI>java.security.interfaces</LI>
<LI>java.util</LI>
</UL>
<p>
<en>
This is enough to run many non-awt programs. Not all classes and
methods are implemented in this release, but most are. Many of the
implemented classes are already up to the Java 1.2 spec.
</en>
</p>
<p>
<en>
3). What is required to build/install/run?
</en>
</p>
<p>
<en>
GNU Classpath requires that Japhar 0.09 be installed along with a
single patch to Japhar 0.09 included with the release. Information on
obtaining Japhar is available from <createlink url="http://www.hungry.com/old-hungry/products/japhar/"
name="http://www.hungry.com/old-hungry/products/japhar/">. A working C compiler is also required. You
will need IBM's Jikes Java compiler installed if you elect to
recompile the Java classes and Sun's 1.1.8 JDK javah installed to
create native header files. RPMs compatible with Red Hat 7 have been
created of Japhar, NSPR, a cross platform thread library Japhar uses,
and GNU Classpath. Installing onto a Gnome workstation should provide
the rest of the required libraries automatically. Otherwise, you may
need to install libart and other packages detailed more precisely in
the HACKING file.
</en>
</p>
<p>
<en>
4). What platforms are supported?
</en>
</p>
<p>
<en>
GNU/Linux is the only platform that has been tested. We plan to
eventually support many others.
</en>
</p>
<p>
<en>
5). Who should use this software?
</en>
</p>
<p>
<en>
This is a development release only. You should only install it if you
are interested in Classpath development or reporting bugs. We appreciate
both. You might also be interested if you enjoy installing random alpha
software.
</en>
</p>
<p>
<en>
6). Where do I go for more information?
</en>
</p>
<p>
<en>
The project has a web page at
<createlink url="http://www.classpath.org/" name="http://www.classpath.org/">
and
<createlink url="http://www.gnu.org/software/classpath/classpath.html"
name="http://www.gnu.org/software/classpath/classpath.html">
Information on our mailing list is available at the web site.
</en>
</p>
#!wml --include=..
<set-var last-modified-author="mjw">
##
# Ignore <en> tags without removing them (may be used in future)
#
<define-tag en endtag=required>
%body
</define-tag>
#include <include/layout.wml>
<subject "GNU Classpath 0.03 Announcement (2002-02-08)">
<h1>GNU Classpath 0.03 Announcement (2002-02-08)</h1>
<p>
<en>
We are pleased to announce a new development release of GNU Classpath.
GNU Classpath, Essential Libraries for Java, is a project to create free
core class libraries for use with virtual machines and compilers for the
Java language.
</en>
</p>
<p>
<en>
New in this release are the addition of java.util.zip and java.rmi
packages, VM independent jni.h, more flexible build environment to
separate class and native code generation, out of the box support for
the ORP VM, and lots of bug fixes and updates to make GNU Classpath more
compliant with the 1.2, 1.3 and 1.4 API specification. The copyleft
has been clarified and all code in the library is now distributed under
the same terms.
</en>
</p>
<p>
<en>
Here are the answers to some questions you might have about this project
and this release.
</en>
</p>
<p>
<en>
1). Where can I get it?
</en>
</p>
<p>
<en>
GNU Classpath 0.03 can be downloaded from:
<createlink url="ftp://alpha.gnu.org/pub/gnu/classpath/classpath-0.03.tar.gz"
name="ftp://alpha.gnu.org/pub/gnu/classpath/classpath-0.03.tar.gz">
</en>
</p>
<p>
<en>
2). What is included?
</en>
</p>
<p>
<en>
The following packages (some with subpackages) are supported:
</en>
</p>
<UL>
<LI>java.applet (untested)</LI>
<LI>java.awt (very experimental)</LI>
<LI>java.beans</LI>
<LI>java.io</LI>
<LI>java.lang</LI>
<LI>java.math</LI>
<LI>java.net</LI>
<LI>java.rmi</LI>
<LI>java.security (partially functioning)</LI>
<LI>java.sql</LI>
<LI>java.text (untested)</LI>
<LI>java.util</LI>
<LI>java.util.jar</LI>
<LI>java.util.zip</LI>
</UL>
<p>
<en>
This is enough to run many non-awt programs. Not all classes and
methods are implemented in this release, but most are. Many of the
implemented classes are already up to the 1.2 API spec. Some are
already compliant with the 1.3 and (preliminary) 1.4 API specification.
More information on the current status of each package can be found at
<createlink url="http://www.gnu.org/software/classpath/status.html"
name="http://www.gnu.org/software/classpath/status.html">
</en>
</p>
<p>
<en>
3). What is required to build/install/run?
</en>
</p>
<p>
<en>
GNU Classpath requires a working GNU build environment and a byte code
compiler such as jikes, gcj or kjc. When creating native code you will
also need a working C compiler and up to date Gnome development libraries
(gtk+, libart and gdk-pixbuf). More information on the precise version
numbers for the tools and libraries can be found in the INSTALL file.
</en>
</p>
<p>
<en>
4). What platforms and VMs are supported?
</en>
</p>
<p>
<en>
GNU/Linux is the only platform that has been tested. We plan to
eventually support many others.
</en>
</p>
<p>
<en>
This release support ORP 1.0.9 out of the box. But other compilers and
virtual machines such as gcj, Kissme, SableVM, Jupiter and Jaos also work
with slightly customized versions of GNU Classpath. Please check if there
is a customized version available for the VM you use before trying the bare
bones GNU Classpath release. We are working with the VM creators to keep
the differences between the core classes as small as possible.
</en>
</p>
<p>
<en>
5). Who should use this software?
</en>
</p>
<p>
<en>
Although it is already capable of supporting many Java applications,
this is a development release. As such, there are still many unfinished
components, and some problems are to be expected. You should install it
if you are interested in Classpath development or reporting bugs. We
appreciate both.
</en>
</p>
<p>
<en>
6). Where do I go for more information?
</en>
</p>
<p>
<en>
The project home page with information on our mailing list can be found at
<createlink url="http://www.classpath.org/" name="http://www.classpath.org/">
or
<createlink url="http://www.gnu.org/software/classpath/classpath.html"
name="http://www.gnu.org/software/classpath/classpath.html">
</en>
</p>
<p>
<en>
The bug database, CVS, task-manager and latest news can be found on Savannah at
<createlink url="http://savannah.gnu.org/projects/classpath/"
name="http://savannah.gnu.org/projects/classpath/">
</en>
</p>
This source diff could not be displayed because it is too large. You can view the blob instead.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment