public inbox for java-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: Gerald Pfeifer <gerald@pfeifer.com>
To: gcc-patches@gcc.gnu.org, java-patches@gcc.gnu.org
Subject: Re: [wwwdocs] Remove Java
Date: Wed, 28 Dec 2016 00:48:00 -0000	[thread overview]
Message-ID: <alpine.LSU.2.20.1612271705180.2994@anthias.pfeifer.com> (raw)
In-Reply-To: <alpine.LSU.2.20.1612050016020.2333@anthias.pfeifer.com>

On Mon, 5 Dec 2016, Gerald Pfeifer wrote:
> Applied now, and more changes to follow later.

Applied.

Gerald

Remove further GCJ related pages, including how to use GCJ, how to
contribute, how to debug it, references to docs and projects done
with it, and open projects.

Index: java/compile.html
===================================================================
RCS file: java/compile.html
diff -N java/compile.html
--- java/compile.html	31 Oct 2002 14:47:43 -0000	1.6
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,168 +0,0 @@
-<html>
-
-<head>
-<title>Compiling with GCJ</title>
-</head>
-
-<body>
-
-<h1 align="center">Compiling with GCJ</h1>
-
-<h2>Introduction</h2>
-
-    <p>GCJ works in three ways: First GCJ can take .java files as
-      input and compile architecture-specific object files. Second, by
-      using the -C option, GCJ can take .java files as input, and
-      generate .class files. Third, GCJ can take .class files as input
-      to create architecture-specific object files.</p>
-
-    <p>GCJ offers two run-time support libraries, libgcj and libgcjgc.
-      libgcj is a clean-room implementation of the core Java
-      libraries.  libgcjgc is the garbage collector, which is
-      responsible for automatic memory management. This collector is
-      based on the Boehm-Weiser conservative collector, but it scans
-      Java objects precisely and has changes to work with the
-      cooperative threads-package. It uses a basic mark-sweep
-      algorithm to perform the actual collections, stopping all
-      threads as it works.</p>
-
-<h2>Compiling Java Programs</h2>
-
-<p>If you are working with Java, we recommend you use the gcj program
-instead of using GCC directly.</p>
-
-<h3>Java-specific file extensions</h3>
-
-<p>GCJ (GNU Compiler for Java) deals with the following Java-specific
-file extensions, and you can specify any of these as an input file:</p>
-
-<dl>
-      <dt>.java</dt>
-      <dd>A source file in the Java language, consisting of one or more class 
-	definitions.</dd>
-
-      <dt>.class</dt>
-<dd>A binary file containing bytecode instructions and information
-pertaining to a single class. It can be loaded into and executed by a
-Java Virtual Machine. Compiling a .java source file results in one or
-more .class files, one for each class definition in the source
-file. The .class file format was designed as a portable and secure
-representation of Java classes, but there also exist tools for
-compiling program written in other languages (such as Ada, Scheme, and
-ML) into .class files.</dd>
-
-<dt>.zip</dt>
-<dd>The .zip file format is a file archival and compression format popular
-in the PC world. In the Java world it is mainly used to bundle a
-collection of .class files. When specified on the gcj command line,
-gcj compiles all the .class files in the .zip archive. The result is a
-single assembly file, object file, or executable, depending on the
-options you specify.</dd>
-
-<dt>.jar</dt>
-<dd>A .jar (Java ARchive) file is in .zip format, but following
-certainly extra conventions. (Certain extra files should also be
-included.)  GCJ treats it the same as a .zip file.</dd>
-
-</dl>
-
-<h3>GCJ command-line options</h3>
-
-<p>In addition to the normal GCC options, GCJ recognizes the following
-options:</p>
-
-<dl>
-<dt>-C</dt>
-<dd>The input file(s) must all be .java source files. They are compiled
-into portable .class files. No machine code (.o files or executable)
-is generated.</dd>
-
-<dt>--output-class-dir=OUTPUTDIR</dt>
-<dd>When used with -C, specifies which directory the generated .class
-should be written to. A class A.B (whose input file is usually
-A/B.java) would be written to OUTPUTDIR/A/B.class.</dd>
-
-<dt>-d OUTPUTDIR</dt>
-<dd>Synonym for --output-class-directory, for compatibility with Suns
-javac.</dd>
-
-<dt>--bounds-check</dt>
-<dd>When compiling to machine code, emit instructions to check that array
-indexes are within bounds, and to throw an exception if they are
-not. This is the default.</dd>
-
-<dt>--no-bounds-check</dt>
-<dd>When compiling to machine code, do not emit instructions to check that
-array indexes are within bounds.</dd>
-
-<dt>-M</dt>
-<dt>-MM</dt>
-<dt>-MD</dt>
-<dt>-MMD</dt>
-<dd>These options work as with the C compiler. For GCJs purposes, a system
-header is any .zip file installed as part of the compiler system.</dd>
-
-<dt>--main=CLASSNAME</dt>
-<dd>When linking an application, generate a stub so the application starts
-executing with the main method of the class named. (This option is
-ignored if you are only compiling and not linking.)</dd>
-
-</dl>
-
-<h3>Path searching options</h3>
-
-<p>At compile time, GCJ uses a list of paths to search for classes and
-packages that it needs to find. This list is called the
-classpath. Each element of the classpath can be either a directory or
-the name of a .zip or .jar file. In the latter case, GCJ searches the
-contents of the file for the required information.  GCJ has a built-in
-classpath, which includes the directory ., and the system libgcj.zip
-file, which holds classes from the standard Java class libraries, such
-as java.lang.  There are several ways to set or augment the
-classpath.</p>
-
-<dl>
-<dt>-I directory</dt>
-<dd>A directory (or file) specified using -I are prepended to the
-classpath. -I options are never overridden by the other options listed
-below.</dd>
-
-<dt>--classpath=path</dt>
-<dt>-classpath path</dt>
-<dd>If specified, the option to --classpath (or -classpath; the two
-spellings are synonymous) overrides the built-in classpath, and
-suppresses recognition of --CLASSPATH and the CLASSPATH environment
-variable.</dd>
-
-<dt>--CLASSPATH=path
--CLASSPATH path</dt>
-<dd>If specified, the option to --CLASSPATH (or -CLASSPATH; the two
-spellings are synonymous) is appended to the built-in classpath, but
-suppresses recognition of the CLASSPATH environment variable.</dd>
-
-<dt>CLASSPATH</dt>
-<dd>The CLASSPATH environment-variable can be set to a path. This path is
-appended to the compiler-supplied default path.  In the above, a path
-is a colon-separated (on Windows, semicolon-separated) list of
-directories or file names.</dd>
-
-</dl>
-
-
-<p>Here are some other points worth noting:</p>
-
-<ul>
-<li> If there is no -g or -O option (and no options starting with those
-  letters), the default is -g1. This is different from gcc, where the
-  default is -g0.  Making -g1 the default causes line number
-  information to be generated, but not the other information necessary
-  for source-level debugging. The reason for this change is partly for
-  compatibility with Sun's tools, and partly because it is helpful
-  when printing an exceptions stack trace.</li>
-
-<li> When an application is linked, gcj will also link in the standard
-  Java run-time libraries (libgcj, and possibly others).</li>
-</ul>
-
-</body>
-</html>
Index: java/contrib.html
===================================================================
RCS file: java/contrib.html
diff -N java/contrib.html
--- java/contrib.html	28 Jun 2014 11:59:44 -0000	1.38
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,77 +0,0 @@
-<html>
-
-<head>
-<title>GCJ - Contributing</title>
-</head>
-
-<body>
-
-<h1>Contributing to the GCJ Project</h1>
-
-<p>The <a href="../contribute.html">main GCC contribute page</a> contains
-general information; below you will find GCJ-specific details.</p>
-
-
-<h2>Project Ideas</h2>
-
-<p>We've started maintaining a list of <a href="projects.html">useful
-projects</a>.</p>
-
-
-<h2>Coding Standards</h2>
-
-  <p>We follow the <a href="../codingconventions.html">GCC Coding
-  Conventions</a> with some extrapolations concerning Java programming
-  style:</p>
-
-  <ul>
-  <li>Open braces go on a new line (like GNU C style).</li>
-
-  <li>Two space indent for methods and inner classes </li>
-
-  <li><code>if</code>, <code>for</code>, <code>try</code>, and
-    <code>synchronized</code> blocks are indented four spaces (two for
-    the braces, and an additional two for the code).</li>
-
-  <li>The open brace for a method body is indented only as far as the
-    method header.</li>
-  </ul>
-
-
-<h2>Submitting Patches</h2>
-
-  <p>Send libgcj patches to <a
-  href="mailto:java-patches@gcc.gnu.org">java-patches@gcc.gnu.org</a>.
-  This list is <a href="https://gcc.gnu.org/ml/java-patches/">archived</a>.</p>
-
-  <p>Patches to the GCJ front end &mdash; the <code>gcc/java</code>
-  directory &mdash; should be sent to the <a
-  href="mailto:gcc-patches@gcc.gnu.org">gcc-patches</a> list.</p>
-
-
-<h2><a name="Testing">Testing</a></h2>
-
-<p>We're accepting test case patches.</p>
-
-<ul>
-  <li>Put the <tt>.java</tt> file in
-      <tt>libjava/testsuite/libjava.compile</tt>
-      (if it is an expected compiler failure or other compile-time test --
-      run-time tests usually go in <tt>libjava.lang</tt>)</li>
-
-  <li>If the file is "<tt>foo.java</tt>" make a "<tt>foo.xfail</tt>" file.
-      For an expected failure the only thing in there should be
-      "<tt>shouldfail</tt>"</li>
-
-  <li>If the test case matches a Java PR, it is customary to name it after
-      the PR number.</li>
-
-  <li>Send the patch to java-patches and then commit of you're allowed to.</li>
-</ul>
-
-<p>More detailed documentation on <a
-href="https://gcc.gnu.org/install/test.html">how to run tests</a> is
-included in the GCC installation notes.</p>
-
-</body>
-</html>
Index: java/docs.html
===================================================================
RCS file: java/docs.html
diff -N java/docs.html
--- java/docs.html	28 Jun 2014 07:45:14 -0000	1.28
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,113 +0,0 @@
-<html>
-
-<head>
-<title>GCJ - Documentation</title>
-</head>
-
-<body>
-
-<h1>GCJ Documentation</h1>
-
-<h2>General documentation</h2>
-
-    <ul>
-      <li><a href="https://gcc.gnu.org/onlinedocs/gcj/">GCJ Manual</a>.</li>
-      <li><a href="http://developer.classpath.org/doc/">API Documentation</a>.
-	(This is actually the API documentation for GNU Classpath, which is
-	essentially identical to libgcj.  However, there may be
-	differences between the libgcj release you have and the
-	version of Classpath used to generate this page.) </li>
-      <li>General <a href="gcj2.html">gcj</a> information.</li>
-      <li>General <a href="libgcj2.html">runtime</a> information.</li>
-      <li>How to <a href="compile.html">compile</a> a Java program.</li>
-      <li>How to <a href="gdb.html">debug</a> a Java program using GDB.</li>
-      <li><a href="faq.html">Frequently Asked Questions</a>.</li>
-      <li>How to <a href="contrib.html">contribute</a>.</li>
-      <li><a href="https://gcc.gnu.org/onlinedocs/gcj/About-CNI.html">CNI Documentation</a>.</li>
-    </ul>
-
-
-<h2>Porting the GCJ runtime</h2>
-
-<p>We've written three documents on how to port various components of
-GCJ runtime, libgcj, to different target systems.</p>
-
-<ul>
-<li>How to <a href="port-threads.html">port</a> the thread layer.</li>
-<li>How to <a href="port-files.html">port</a> the file handling layer.</li>
-<li>How to <a href="port-signals.html">port</a> the signal handling layer.</li>
-</ul>
-
-
-<h2>Papers describing our work</h2>
-
-<p>The engineers on this project have written a number of papers for
-conferences and magazines.</p>
-
-<ul>
-  <li>
-     <b>January 2003</b>: "<cite>Compiling Java with GCJ</cite>"
-     is an overview article that appeared in the <cite>Linux Journal</cite>.
-      <br />[<a href="http://www.linuxjournal.com/article/4860">HTML</a>]
-      <br />Author: <a href="http://www.bothner.com/">Per Bothner</a>.
-      </li>
-
-  <li><a name="CNI">
-      <b>February 1999</b>: "<cite>The Cygnus Native Interface for C++/Java Integration</cite>".</a>
-       <br />[<a href="papers/cni/t1.html">HTML</a>] 
-             [<a href="papers/cni.sgml">SGML/Docbook source</a>]
-       <br />This is a programmer's manual which explains how to use
-       a Java-aware C++ compiler (G++) to write native methods for Gcj.
-       <br />The CNI design and ideas were proposed in
-       "<cite>Writing native Java methods in natural C++</cite>"
-       (November 1997).
-       </li>
-
-  <li><b>August 1998</b>: "<cite>No Silver Bullet - Garbage Collection for 
-      Java in Embedded Systems</cite>".
-      <br />[<a href="papers/nosb.html">HTML</a>] 
-            [<a href="papers/nosb.ps.gz">PS for presentation slides</a>]
-      <br />Author: Alex Petit-Bianco.
-      </li>
-
-  <li><b>November 1997</b>:  "<cite>Writing native Java methods in natural C++</cite>"
-      discusses interaction between Java and C++.  This is an early design
-      document;  see "<cite>The Cygnus Native Interface for C++/Java 
-      Integration</cite>" (February 1998) for the programmer's manual.
-      <br />[<a href="papers/native++.html">HTML</a>] 
-            [<a href="papers/native++.sgml">SGML/Docbook source</a>]
-      <br />Author: <a href="http://www.bothner.com/">Per Bothner</a>.
-      </li>
-
-  <li><b>October 1997</b>: "<cite>Compiling Java for Embedded
-      Systems</cite>" was presented by Per Bothner at the Embedded
-      Systems Conference West in San Jose.  It provides a technical
-      overview of our strategy and plans at the time.  This is fairly
-      out of date now.
-
-      <br />[<a href="papers/compjava.pdf">PDF</a>] 
-            [<a href="papers/compjava.ps.gz">gzip'd Postscript</a>] 
-            [<a href="papers/esc97.sgml">SGML/Docbook source</a>] 
-            [<a href="papers/esc97w-slides.ps.gz">PS 
-            for presentation slides</a>].
-
-      <br />Author: <a href="http://www.bothner.com/">Per Bothner</a>.
-      </li>
-
-  <li><b>February 1997</b>: "<cite>A Gcc-based Java Implementation</cite>" is an older paper
-      presented by Per Bothner
-      at IEEE Compcon.  
-      <br />[<a href="papers/gcc-java.html">extended
-            abstract (HTML)</a>] 
-            [<a href="papers/gcc-java.ps.gz">complete
-            paper (Postscript)</a>]
-            [(<a href="papers/compcon97.ps.gz">slides 
-            for presentation</a>)]
-
-      <br />Author: <a href="http://www.bothner.com/">Per Bothner</a>.
-      </li>
-
-</ul>
-
-</body>
-</html>
Index: java/done.html
===================================================================
RCS file: java/done.html
diff -N java/done.html
--- java/done.html	28 May 2016 13:08:42 -0000	1.55
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,281 +0,0 @@
-<html>
-
-<head>
-<title>Done with GCJ</title>
-</head>
-
-<body>
-
-      <h1>Done with GCJ</h1>
-
-      <p>This page provides descriptions and links on projects
-      that are using the GCJ runtime and compiler. If you would like
-      your project to be listed here or know about a particular
-      project, please write to the <a
-      href="mailto:java@gcc.gnu.org">java@gcc.gnu.org</a> list.</p>
-
-      <p>Entries are listed in chronological order.</p>
-
-      <table border="0" cellpadding="1" cellspacing="2"
-      rules="all" width="98%">
-
-      <tr bgcolor="#d0d0d0" valign="top">
-        <th>Project</th><th>Description</th><th>Contact</th>
-      </tr>
-
-      <!-- iRate -->
-      <tr valign="top">
-        <td><b>iRATE radio</b></td>
-        <td>iRATE radio is a popular 
-	client/server mp3 player/downloader featuring collaborative filtering: 
-	you rate the tracks and it uses your ratings and other people's to guess 
-	what you'll like. iRATE uses GCJ together with the SWT toolkit to provide 
-	native binaries on multiple platforms, including Windows and GNU/Linux. 
-	iRATE has thousands of users, many of which use iRATE daily, making it 
-	perhaps the most widely distributed GCJ-compiled program to date.
-	</td>
-	<td>
-	<a href="mailto:taras.judge@shaw.ca">Taras</a>
-	</td>
-      </tr>       
-      <!-- End iRate -->      
-      <!-- XWT -->
-      <tr valign="top">
-        <td><b><a href="http://www.xwt.org">XWT</a></b></td>
-
-        <td>XWT is the XML Windowing Toolkit. It lets you write remote
-        applications -- applications that run on a server, yet can
-        "project" their user interface onto any computer, anywhere on
-        the Internet. When built with gcj, it calls directly into the
-        host's graphic routines and can be turned into, for example,
-        an ActiveX control.
-	</td>
-
-	<td>
-	<a href="mailto:gcj@lists.megacz.com">Adam Megacz</a>
-	</td>
-      </tr>       
-      <!-- End XWT -->
-      <!-- Autonomous Haulage -->
-      <tr valign="top">
-        <td><b>Autonomous Haulage</b></td>
-
-        <td>Modular Mining System is using gcj on an embedded
-	    StrongARM processor to control autonomous trucks in mining haulage
-	    systems. Note that they're not using libgcj, but rather an
-	    in-house runtime that they wrote.
-	</td>
-
-      </tr>       
-      <!-- End Autonomous Haulage -->
-      <!-- jUSB/jPhoto -->
-      <tr valign="top">
-        <td><b><a href="http://jusb.sourceforge.net">jUSB</a>/<a href="http://jphoto.sourceforge.net">jPhoto</a></b></td>
-
-	<td>jUSB is an open source Java API for USB, with an
-	    implementation that runs on recent GNU/Linux OS
-	    distributions.
-
-	    jPhoto provides basic command line and library support for
-	    the digital camera protocol on top of jUSB.  The protocol is the
-	    new USB standard for talking to such devices called PTP.
-	</td>
-	<td>
-	<a href="mailto:david-b@pacbell.net">David Brownell</a>
-	</td>
-      </tr>
-      <!-- End jUSB/jPhoto -->
-      <!-- PAL -->
-      <tr valign="top">
-        <td><b>PAL</b></td>
-
-	<td>PAL is a Java library for use in molecular evolution and
-	    phylogenetics.  Basically, PAL includes classes and
-	    methods for computationally intensive statistics that are
-	    useful for the analysis of DNA sequences.<br />
-
-	    PAL 1.0 consists of 111 classes in 12 packages with more than 
-	    20,000 lines of code, all of which compiles nicely into native 
-	    code using GCJ.
-	</td>
-
-	<td>
-	<a href="mailto:strimmer@stat.uni-muenchen.de">Korbinian Strimmer</a>
-	</td>
-      </tr>
-      <!-- End PAL -->
-      <!-- Swarm -->
-      <tr valign="top">
-        <td><b><a href="http://www.swarm.org">Swarm</a></b></td>
-
-	<td>Swarm is a fine-grained distributed discrete event
-	    simulator.  Swarm is mainly used for agent-based
-	    (bottom-up) modeling.  Swarm is not written in Java, but
-	    it has a JNI layer.  It was done with JNI at first for
-	    portability.  And, since the simulator is not implemented
-	    in C++, it wasn't expected to see major benefits from CNI...
-
-	    The tested configuration relies on Kaffe as equipped
-	    with gcj support.  On Intel Debian 2.2, up to 30%
-	    performance gains over Kaffe's jit3 were witnessed.
-	 </td>
-	 <td>
-	 <a href="mailto:mgd@swarm.org">Marcus G. Daniel</a>.
-	 </td>
-      </tr>
-      <!-- End Swarm -->
-      <!-- Tamanoir -->
-      <tr valign="top">
-        <td><b><a
-	href="http://www.ens-lyon.fr/LIP/RESO/Tamanoir/">
-	Tamanoir</a></b></td>
-	<td>Tamanoir system is a complete framework that allows users
-	    to easily deploy and maintain distributed active routers
-	    on wide area networks. In the rapidly expanding field of
-	    active and programmable networks, Tamanoir is designed
-	    around a new kind of architecture dedicated to high
-	    performance active networking. Its implementation features
-	    a multi-threading approach to combine performance and
-	    portability of services. It's written in Java and
-	    standardly built using gcj.
-	</td>
-	<td><a href="mailto:jpgelas@lhpcm.univ-lyon1.fr">Jean Patrick Gelas</a>
-	</td>
-      </tr>
-      <!-- End Tamanoir -->
-      <!-- Fluid Dynamics -->
-      <tr valign="top">
-        <td><b>Fluid Dynamics</b></td>
-	<td>Alejandro Rodr&iacute;guez Gallego, at ICAI University (Spain)
-	    has spent two years developing a Java program to solve
-	    fluid dynamics.  He says:
-
-	    <cite>
-	    I have recently tested my program with GCJ and I have got
-	    an incredible performance increase over HotSpot v2 (JDK 1.3 for
-	    linux). -50% RAM were needed and execution time reduced in -15%.
-	    <br />
-	    GCJ will be the main compiler for my program.
-	    </cite>
-	</td>
-      </tr>
-      <!-- End Fluid Dynamics -->
-      <!-- rhug -->
-      <tr valign="top">
-        <td><b><a href="https://sourceware.org/rhug/">rhug</a></b></td>
-	<td>Anthony Green and friends have set up rhug, a collection
-	    of free software Java packages set up to build with gcj.
-	    Both sources and RPMs are available.
-	</td>
-	<td><a href="mailto:green@redhat.com">Anthony Green</a>
-	</td>
-      </tr>
-      <!-- End rhug -->
-      <!-- WebMiel -->
-      <tr valign="top">
-        <td><b>WebMiel</b></td>
-	<td>Christophe Roux has been working on software for
-	    community communications over http.  This program,
-	    WebMiel, uses Tomcat and has been working with gcj since
-	    mid-2002.  The documentation is in French.
-	</td>
-	<td><a href="mailto:ch_roux@club-internet.fr">Christophe Roux</a>
-	</td>
-      </tr>
-      <!-- End WebMiel -->
-     <!-- Freestyler -->
-      <tr valign="top">
-        <td><b>Freestyler Toolkit</b></td>
-
-	<td>The Freestyler Toolkit facilitates building with GCJ. 
-		It focuses on simplifying the construction of 
-		SWT Graphical User Interfaces and
-		XmlRpc servants that sit before MySQL database
-		backends. 
-	</td>
-	<td><a href="mailto:erik.poupaert@skynet.be">Erik Poupaert</a>
-	</td>
-      </tr>
-
-      <!-- End Freestyler -->
-
-      <!-- Rimfaxe -->
-      <tr valign="top">
-        <td><b>Rimfaxe Web Server</b></td>
-
-	<td>Rimfaxe is a web server featuring compilation of jsp pages
-	to .so libraries with gcj, SEDA-based architecture with
-	non-blocking I/O, servlet 2.3 / JSP 1.2 implementation
-	including filters and taglibs, and caching of static content.
-	</td>
-
-	<td><a href="mailto:lars@rimfaxe.com">Lars Andersen</a></td>
-      </tr>
-      <!-- End Rimfaxe -->
-
-      <!-- JGachine -->
-      <tr valign="top">
-        <td><b><a href="http://jgachine.berlios.de">JGachine</a></b></td>
-
-	<td>JGachine is a networked game engine for 2D multi-player
-	  (networked) games. JGachine is written in Java and C++. The
-	  games themselves are written in pure Java and can be loaded
-	  via network.
-	</td>
-
-	<td><a href="mailto:karme@berlios.de">Jens Thiele</a></td>
-      </tr>
-      <!-- End JGachine -->
-
-      <!-- pdftk -->
-      <tr valign="top">
-        <td><b><a href="https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/">pdftk</a></b></td>
-
-	<td><p>If PDF is electronic paper, then pdftk is an electronic
-	  staple-remover, hole-punch, binder, secret-decoder-ring, and
-	  X-Ray-glasses. Pdftk is a useful tool for handling PDF
-	  documents. Every PDF user should have one in the top drawer
-	  of his/her desktop.</p>
-
-	    <p>Pdftk is also an example of how to use a library of Java
-	    classes in a stand-alone C++ program. Specifically, it
-	    demonstrates how GCJ and CNI allows C++ code to use
-	    iText's (itext-paulo) Java classes.</p>
-	</td>
-
-	<td><a href="mailto:ssteward@accesspdf.com">Sid Steward</a></td>
-      </tr>
-      <!-- End pdftk -->
-
-      <!-- gcjwebplugin -->
-      <tr valign="top">
-        <td><b><a href="http://www.nongnu.org/gcjwebplugin/">gcjwebplugin</a></b></td>
-
-	<td>gcjwebplugin is a web browser plugin to execute Java (tm) applets.
-	It supports Firefox, Galeon, Mozilla, Opera and many more browsers.
-	</td>
-
-	<td><a href="mailto:konqueror@gmx.de">Michael Koch</a></td>
-      </tr>
-      <!-- End gcjwebplugin -->
-
-      <!-- H2 Database Engine -->
-      <tr valign="top">
-        <td><b><a href="http://www.h2database.com/">H2 Database Engine</a></b></td>
-
-	<td>H2 is a Java database engine. Apart from the usual features such as
-SQL, transactions, JDBC API, referential integrity, the database also
-supports clustering, views, subqueries, encryption, trigger and stored
-procedures. As HSQLDB, database can be operated in the embedded and
-server mode, with data kept in-memory or on disk. It is available as a
-native executable (using GCJ) and as a Java library.
-	</td>
-
-	<td><a href="mailto:dbsupport@h2database.com">H2 maintainers</a></td>
-      </tr>
-      <!-- End H2 Database Engine -->
-
-      </table>
-
-</body>
-</html>
Index: java/gcj2.html
===================================================================
RCS file: java/gcj2.html
diff -N java/gcj2.html
--- java/gcj2.html	30 Jun 2014 09:20:15 -0000	1.11
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,97 +0,0 @@
-<html>
-
-<head>
-<title>The GCJ home page</title>
-</head>
-
-<body>
-
-<h1>The GCJ home page</h1>
-
-<h2>What is it?</h2>
-
-<p>We've written a front end to the GCC compiler which can natively
-compile both Java<sup><a href="#javatm">tm</a></sup> source and
-bytecode files.  The compiler can also generate class files.  This new
-front end is integrated into GCC.</p>
-
-
-<h2>What you get</h2>
-
-<p>The currently available code consists of several programs:</p>
-
-<dl>
-
-<dt><tt>gcj</tt></dt>
-<dd>
-   A front end to gcc which is able to read Java ``.class'' files and
-   generate assembly code.  gcj is also a convenient front end to
-   jvgenmain.  Finally, gcj can read ``.java'' files and generate
-   assembly code or Java bytecode.
-</dd>
-
-<dt><tt>jvgenmain</tt></dt>
-<dd> 
-   A small program to generate an appropriate ``main'' for a Java class.
-</dd>
-
-<dt><tt>gcjh</tt></dt>
-<dd>
-   A program to generate C++ header files corresponding to Java 
-   .class files.
-</dd>
-
-<dt><tt>jcf-dump</tt></dt>
-<dd>
-   Reads a ``.class'' file and prints out all sorts of useful
-   information.
-</dd>
-
-<dt><tt>jv-scan</tt></dt>
-<dd>
-   Reads a ``.java'' file and prints some useful information.
-   For instance, it can tell you which classes are defined in that file.
-</dd>
-
-</dl>
-
-<h2>Making executables</h2>
-
-    <p>In order to make full executables, you'll need to link the
-    output of gcj with the appropriate runtime code.  See <a
-    href="libgcj2.html">the libgcj page</a> for details on the runtime.</p>
-
-    <p>There are also <a href="compile.html">more detailed
-	instructions</a> on compiling Java programs.</p>
-
-<h2>How to get it</h2>
-
-<p>The new Java front end is very easy to download and install.  Since
-it is it fully integrated into GCC, you can simply follow the
-GCC download and build instructions.
-Note that you'll want to configure GCC to use the
-appropriate threads system; see <a
-href="libgcj2.html">the libgcj page</a> for details.</p>
-
-<h2>How to try it</h2>
-
-<p>Once you've downloaded and installed gcj and libgcj, it is very
-easy to try a small Java program of your own:</p>
-      <pre>
-	gcj --main=HelloWorld -o HelloWorld HelloWorld.java
-	./HelloWorld
-      </pre>
-
-
-<p><a href=""><b>Return to main page</b></a></p>
-<hr />
-
-<blockquote>
-  <a name="javatm">Java</a> and all Java-based marks are trademarks or
-  registered trademarks of Sun Microsystems, Inc. in the United States
-  and other countries. The Free Software Foundation, Cygnus Solutions, 
-  and Red Hat are independent of Sun Microsystems, Inc.
-</blockquote>
-
-</body>
-</html>
Index: java/gdb.html
===================================================================
RCS file: java/gdb.html
diff -N java/gdb.html
--- java/gdb.html	25 Mar 2002 20:50:21 -0000	1.7
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,159 +0,0 @@
-<html>
-<head>
-<title>Java Debugging with gdb</title>
-</head>
-
-<body>
-<h1>Java Debugging with <tt>gdb</tt></h1>
-
-<p>
-It is possible to debug Java programs compiled with GCJ using GDB.
-To do this, you need a recent version of GDB. A CVS snapshot version of GDB
-is recommended: GDB 5.0 and earlier are not able to demangle the symbol names
-generated by GCC 3.x's new C++/Java ABI. Alternatively, it should also be 
-possible to rebuild GDB 5.0 with an updated libiberty directory. GDB 5.1 will
-include support for the new ABI. 
-</p>
-
-<p>
-When debugging GCJ-compiled Java programs, you may need to 
-tell GDB to ignore the <tt>SIGPWR</tt> and <tt>SIGXCPU</tt> signals
-(which are used by the garbage collector). This can be done with the
-GDB commands:
-</p>
-<blockquote>
-<tt>
-handle SIGPWR nostop noprint<br />
-handle SIGXCPU nostop noprint<br />
-</tt>
-</blockquote>
-<p>
-Alternately you can place these two lines in the file <tt>.gdbinit</tt> 
-in $HOME or the directory where you're running GDB.
-</p>
-
-<p>
-Remember that some optimizations performed by the compiler can make debugging
-results unpredictable. When debugging libgcj itself, it is often useful to 
-build a non-optimized library by using `make GCJFLAGS="-g"'.
-</p>
-
-<p>
-Here is an example of debugging a simple test program (which uses multiple
-Java threads) in GDB:
-</p>
-
-<blockquote>
-<tt>
-$ <b>javac TestT.java</b><br />
-$ <b>gcj -g --main=TestT -o TestT TestT.class</b><br />
-$ <b>gdb TestT</b><br />
-GNU gdb 4.18<br />
-Copyright 1998 Free Software Foundation, Inc.<br />
-GDB is free software, covered by the GNU General Public License, and you are<br />
-welcome to change it and/or distribute copies of it under certain conditions.<br />
-Type "show copying" to see the conditions.<br />
-There is absolutely no warranty for GDB.  Type "show warranty" for details.<br />
-This GDB was configured as "i386-redhat-linux"...<br />
-(gdb) <b>handle SIGPWR nostop noprint</b><br />
-</tt>
-</blockquote>
-<pre>
-Signal        Stop      Print   Pass to program Description
-SIGPWR        No        No      Yes             Power fail/restart
-</pre>
-<blockquote>
-<tt>
-(gdb) <b>handle SIGXCPU nostop noprint</b><br />
-</tt>
-</blockquote>
-<pre>
-Signal        Stop      Print   Pass to program Description
-SIGXCPU       No        No      Yes             CPU time limit exceeded
-</pre>
-<blockquote>
-<tt>
-(gdb) <b>break TestT.main</b><br />
-Breakpoint 1 at 0x8049fa2: file TestT.java, line 64.<br />
-(gdb) <b>run</b><br />
-</tt>
-</blockquote>
-<pre>
-Starting program: /disks/now/grad/mdw/src/ninja/test/mdw/TestT 
-[New Thread 16843 (manager thread)]
-[New Thread 16835 (initial thread)]
-[New Thread 16844]
-[Switching to Thread 16844]
-
-Breakpoint 1, TestT.main (args=@806cff0) at TestT.java:64
-64          TestT a1 = new TestT(1,false);
-</pre>
-<blockquote>
-<tt>
-(gdb) <b>where</b><br />
-</tt>
-</blockquote>
-<pre>
-(gdb) where 
-#0  TestT.main (args=@806cff0) at TestT.java:64
-#1  0x4011033a in java::lang::FirstThread::run (this=@8064f90)
-    at /home/cs/mdw/disks/enclave1/libgcj-991104/libjava/java/lang/natFirstThread.cc:52
-#2  0x400ccdfa in java.lang.Thread.run_ (this=@8064f90)
-    at /home/cs/mdw/disks/enclave1/libgcj-991104/libjava/java/lang/Thread.java:119
-#3  0x4011554a in java::lang::Thread::run__ (obj=@8064f90)
-    at /home/cs/mdw/disks/enclave1/libgcj-991104/libjava/java/lang/natThread.cc:286
-#4  0x4012524a in really_start (x=@805fef0)
-    at /home/cs/mdw/disks/enclave1/libgcj-991104/libjava/posix-threads.cc:316
-#5  0x401d7ba6 in GC_start_routine (arg=@807ffe0)
-    at /home/cs/mdw/disks/enclave1/libgcj-991104/boehm-gc/linux_threads.c:533
-#6  0x401eece9 in pthread_start_thread (arg=@bf7ffe7c) at manager.c:204
-</pre>
-
-<p>
-Note that the stack trace includes both Java code and the native methods
-in the libgcj runtime library!
-</p>
-
-<p>
-You can examine threads using the <tt>info threads</tt> and
-<tt>thread</tt> commands:
-</p>
-
-<blockquote>
-<tt>
-(gdb) <b>info threads</b><br />
-</tt>
-</blockquote>
-<pre>
-* 3 Thread 16844  TestT.main (args=@806cff0) at TestT.java:64
-  2 Thread 16835 (initial thread)  0x4022a1bb in __sigsuspend (set=0xbffff4f4)
-    at ../sysdeps/unix/sysv/linux/sigsuspend.c:48
-  1 Thread 16843 (manager thread)  0x402b37d0 in __poll (fds=0x808fef0, 
-    nfds=1, timeout=2000) at ../sysdeps/unix/sysv/linux/poll.c:45
-</pre>
-<blockquote>
-<tt>
-(gdb) <b>thread 2</b><br />
-</tt>
-</blockquote>
-<pre>
-[Switching to thread 2 (Thread 16835 (initial thread))]
-#0  0x4022a1bb in __sigsuspend (set=0xbffff4f4)
-    at ../sysdeps/unix/sysv/linux/sigsuspend.c:48
-48      ../sysdeps/unix/sysv/linux/sigsuspend.c: No such file or directory.
-Current language:  auto; currently c
-</pre>
-<blockquote>
-<tt>
-(gdb)
-</tt>
-</blockquote>
-
-<hr />
-<address>
-Page written by
-<a href="mailto:mdw@cs.berkeley.edu">Matt Welsh</a>
-</address>
-
-</body>
-</html>
Index: java/projects.html
===================================================================
RCS file: java/projects.html
diff -N java/projects.html
--- java/projects.html	13 May 2011 10:27:18 -0000	1.35
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,148 +0,0 @@
-<html>
-<head>
-<title>The GCJ Projects List</title>
-</head>
-
-<body>
-
-<h1>The GCJ Projects List</h1>
-
-<p>
-What follows is a list of projects that the GCJ community would love
-to see someone pick up and run with.  If you're interested in any of
-these, be sure to send a note with your questions, ideas or intentions
-to the <a
-href="mailto:java@gcc.gnu.org">java</a>
-mailing list.  Similarly, if you would like to see a project listed
-here that isn't, send a patch for this HTML file to the <a
-href="mailto:java-patches@gcc.gnu.org">java-patches</a> list.
-</p>
-
-
-<h2>jar support</h2>
-
-<p>
-Modify gcj to obey the constraints layed out by the jar file
-manifest file.
-</p>
-
-
-<h2>Benchmark infrastructure</h2>
-
-<p>
-Measuring performance is tricky business.  We currently do all our
-performance measurements in an ad hoc manner.  What is needed is some
-infrastructure we can use to track performance regressions and
-identify opportunities for improvement.
-</p>
-<p>
-<a href="mailto:bryce@albatross.co.nz">Bryce McKinlay</a> has put
-together a list of some benchmarks that run on GCJ.
-Building some infrastructure around these would be incredibly useful.
-</p>
-
-
-<h2>Performance improvements</h2>
-
-<p>There are a few concrete performance improvements that we already know
-we want:</p>
-
-	<ul>
-	  <li><p>If an object or array is allocated in static code that is
-          executed at most once (i.e. not in a loop or in a non-private
-	  method), then we have the option of pre-allocating the object
-	  or array in the static data or bss segment.  This is most
-	  obviously the right thing to do when the expression is an array
-	  brace initializer whose elements are compile-time constants, since
-	  then we can initialize the array statically.  (This is already
-	  implemented.)  It also makes sense for array elements that
-          are initialized to link-time constants, such as references
-	  to other statically allocated objects, as you might get
-	  from a multi-dimensional array brace-initializer.
-	  </p><p>
-	  It may also make sense to pre-allocate a non-array object.
-	  It makes most sense when the object constructor is inlined,
-	  especially if it turns out that most or all of the fields get
-	  initialized to constants.  Even if the constructor is not inlined,
-	  it may still make sense to pre-allocate the object if it is
-	  being assigned to a static final field:  The tradeoff is that
-	  you save the space needed for the call to allocate the object, but
-	  you use more space if it turns out the class is never initialized.
-	  </p><p>
-	  Note that if a statically allocated object contains
-          pointer fields then the gc has to know about the object.
-          The cleanest way is to make sure the object header has
-	  appropriate flags so that the gc recognizes that the object is
-	  static but has pointer fields.  There is no need to register the
-	  static object with the gc, since if it is live, it will get
-	  traversed anyway (typically via the fields table of the declaring
-          class).
-	  </p></li>
-	</ul>
-
-
-<h2>Compiler improvements</h2>
-
-	  <ul>
-            <li>Once we have tree-level inlining, we can use it to
-            sometimes eliminate unnecessary synchronizations.
-            Combined with a simple "no escape" flag, this could also
-            let us further optimize string concatenation without
-            having to introduce a new class in the runtime.</li>
-
-	    <li>When compiling from bytecode, GCJ generates tree nodes
-	    as long as it is within a single "statement" - i.e. no branching
-	    or side effects.  However, any branching or other complications
-	    causes RTL to be emitted.  This is similar to the historical
-	    way the C and C++ front-ends were implemented.  Gcc now has support
-	    for representing an entire method body as a tree node, and g++
-	    has been converted to do that, because it makes certain
-	    optimizations more practical.  Gcj already represents an entire
-	    method body as a single tree structure when compiling from
-	    Java source;  we should do the same
-	    when compiling from bytecode.  To begin with, we can represent
-	    control flow using <code>GOTO_EXPR</code>.  However, if would
-	    be better if we can deduce higher-level structure.  I.e. it is
-	    easy to generate
-	    <code>(COND_EXPR TEST (GOTO_EXPR L1) (GOTO_EXPR L2))</code>, but it
-	    would be better though harder to simplify that to a
-	    <code>COND_EXPR</code> that does not use <code>GOTO_EXPR</code>.
-	    The simplification is probably best done after we have generated
-	    a correct but <code>GOTO</code>-based tree representation.
-	    For example, if a label is only used once, we can move its code
-	    to where the unique <code>GOTO</code> is.</li>
-
-	    <li>Add hooks to gcj and g++ to generate write barriers.
-	    This would let us write a precise collector.</li>
-
-	    <li>Do escape analysis to detect method-local and
-	    thread-local objects.  This can yield a significant
-	    performance improvement in some cases.</li>
-
-            <li>Extend the existing null-pointer patch (for PR 2) to
-            optionally enable it for all method calls and field
-            dereferences.  This will let gcj-compiled code work
-            correctly on systems without an MMU.</li>
-
-	    <li>The structure of <code>expand_byte_code</code> in
-	    <code>expr.c</code> uses macros in a way that in retrospect
-	    looks like a mistake.  It should be re-written to be a simple
-	    switch statement based on the structure of
-	    <code>verify_jvm_instructions</code> in <code>verify.c</code>.
-            (There are actually two switch statements using the magic macros
-	    in <code>expr.c</code> - look for the includes of
-	    <code>"javaop.def"</code>.  They should both be re-written, but
-	    second one is higher priority.)</li>
-	  </ul>
-
-
-<h2>Runtime improvements</h2>
-
-	  <ul>
-	    <li>Write a program to convert existing locale data into a
-	    format we can use.</li>
-	  </ul>
-
-</body>
-</html>
-
Index: java/tm.html
===================================================================
RCS file: java/tm.html
diff -N java/tm.html
--- java/tm.html	31 Oct 2002 14:47:43 -0000	1.14
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,13 +0,0 @@
-<html>
-<head>
-<title>GCJ - About</title>
-</head>
-<body>
-
-<p>Java and all Java-based marks are trademarks or registered trademarks
-of Sun Microsystems, Inc. in the United States and other countries.
-The Free Software Foundation, Cygnus Solutions and Red Hat are
-independent of Sun Microsystems, Inc.</p>
-
-</body>
-</html>

  parent reply	other threads:[~2016-12-28  0:48 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-12-04 23:20 Gerald Pfeifer
2016-12-04 23:35 ` Gerald Pfeifer
2016-12-11 17:43 ` Gerald Pfeifer
2016-12-28  0:48 ` Gerald Pfeifer [this message]
2016-12-30 14:50 ` Gerald Pfeifer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=alpine.LSU.2.20.1612271705180.2994@anthias.pfeifer.com \
    --to=gerald@pfeifer.com \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=java-patches@gcc.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).