CHANGELOG and documentation
Matt Welsh
mdw@cs.berkeley.edu
Sat Apr 1 00:00:00 GMT 2000
Hello all,
Can I make a few suggestions that might help make the status of gcj
development more obvious to newcomers? Even though I follow these mailing
lists closely, I often have problems keeping track of all of the activity.
Also, I'd rather not download and build the latest and greatest gcj
snapshots all the time, since I'm essentially doing deep hacking within
the gcj runtime and this exposes me to instabilities in the code.
First, I keep seeing references to various nice features of later versions of
gcj, however, as someone doing ongoing development using gcj it's hard for
me to track what's changing from release to release. Would it be possible
to post the CHANGELOG for both the 2.95.1 branch and the snapshot branch
somewhere on the website?
Another question I have is about gij. I tried unsuccessfully to use this
a couple of months ago, and I remember it being significant work to get
to the point where I had a gij-enabled build and test environment. At the
time gij didn't appear to work at all; it would simply crash.
Although I've asked before, I'm still quite unclear on what gij does and
how it works. Does it impose a performance hit? Does it allow dynamic
class loading? Is all code interpreted or only some "bootstrap" code?
Is there documentation anywhere? If not, would it be possible for
someone with the appropriate experience to write it up and post it?
I like the informal nature of the FAQ and how it's been updated with some
postings to this list; that's good. Still, it would be nice to have a more
comprehensive list of missing features from gcj and libgcj. Such a list
would help newcomers know in advance what they're getting into -- and
also encourage those who want to do some hacking by pointing out the major
areas that need work. Right now it's very hard to tell what works with gcj
and what doesn't. Perhaps someone should also post their positive gcj
experiences so we can demonstrate that gcj really does work. As it is now
gcj's a real "black box" until you've spent some time playing with it!
Here's the start of such a list - feel free to put this on the website and
invite contributions. For each of these bullets there should probably be
an explanatory note as to why the feature is missing and what it would take.
GCJ and libgcj missing features (1/18/2000):
* Inner classes - only when compiling from source. Compiling inner
classes from bytecode works. [Is that true?]
* Reflection (java.lang.reflect.*). [Can someone elaborate?]
* Object serialization (java.io.ObjectInputStream and
java.io.ObjectOutputStream classes). There are several free
implementations of this which could be incorporated.
* Remote Method Invocation (RMI). A full RMI implemention relies
upon reflection, serialization, as well as a set of other libraries.
See FAQ section 2.6 for details.
* Java Native Interface (JNI). GCJ uses its own native interface,
CNI, which is easier to use and to debug. However, JNI support
should probably be added eventually. See FAQ sections 2.2 and 2.3.
* Dynamic class loading. [What are the issues here? Does gij
effectively solve this problem? If so is there a performance hit?]
* AWT. There are free AWT implementations, but they depend upon
JNI. See FAQ section 2.4.
* Swing. This depends upon AWT. Since Swing is implemented
entirely in Java, it should be possible to use it once AWT is
there, however, there are licensing issues. See FAQ section 2.5.
* [Others?]
Of course, the web page should mention that volunteers are sought to work on
these missing features!
Do others think that some of the above things would help?
Cheers,
Matt Welsh
More information about the Java
mailing list