Loading...

java@gcc.gnu.org

[Prev] Thread [Next]  |  [Prev] Date [Next]

Re: status of gcj David Daney Wed Sep 17 11:00:43 2008

Johannes Klarenbeek wrote:
2008/9/16 David Daney <[EMAIL PROTECTED]>:
Please keep [EMAIL PROTECTED] CCed.

Johannes Klarenbeek wrote:
2008/9/15 David Daney <[EMAIL PROTECTED]>:

Johannes Klarenbeek wrote:

hi there,

i looked at the excellent gcj project, but was a little confused about
the status of the project. for example...

last gcj news flash is at march 30, 2007
last cni update is october 22, 2000
last classpath update is june 6 of 2008


The GCJ News is not keep very current.  But there is still work being
done
on GCJ and libgcj.

what parts are not very current at the very moment concerning the byte
code implementation of java in gcj?

I was talking about the web site.  I'm not sure what your question was
though.

oh sorry. i was wondering if the compiler (and interpreter)
implementation is up to date with the current java sun implementation.
not referening to the Classpath implementation. for example: does gcj
implement generics (or what are they called ... templates like
c++?)... is the java byte code generation by gcj after source code
compilation equal to the latest java specs etc...



The current (as of 4.3) version no longer generates byte code, nor directly compiles .java source files. Instead we use ecj (Eclipse Compiler for Java) to do the java->class compilation. GCJ then compiles the class files (bytecode) into native code. This give us full java generics support.


 i was reading about the gnu compiler collection on wikipedia and
found that the gnu compiler is separeted in two parts (3 really); a
front-end and a back-end. the front-end parses languages like C, C++,
java, ADA, fortran and more. the back-end should support multiple
processor architectures. i guess that gcj is the front-end part in gcc
isn´t it?


Correct.

ok, how big is the gcj specific front-end part compared to for example
c++... did the developers copy a lot of code from the c++ project and
changed it to fit the java requirements?


GCJ was started many years ago. I don't know how much was borrowed from the C++ compiler, but currently it is completely separate. As for the size, I don't know a good unit to use to measure it.

since the back-end of gcj produces java byte code as well, does that
mean one can write c++ programs and compile it to java byte code?

where is project going too? how is the libgcj doing... is it already
obsolete and replaced by classpath?


For the last several years libgcj has been based on classpath.  So it is
not
being replaced by classpath, for the most part it *is* classpath adapted
to
work with gcj.

is libgcj a library that implements VMObject, VMString and some calls
for AWT for example? so classpath can call the methods on these native
objects whereas libgcj calls methods on the operating system to draw a
windows for example?? if that is true, does libgcj support besides
xlib also win32?


That is the basic idea, but the specifics are slightly different.  For the
case of Object, String, Class, and several other classes in the java.lang
package, libgcj completely replaces the classpath implementation.  For some
of the I/O classes libgcj does implement the VM* interfaces.  The majority
of the code in classpath does not have VM dependencies, so the gcj specific
parts of libgcj are a small percentage of the total code.

sorry, i lost you there... the gcj specific parts of libgcj are a
small percentage of the total code? what do you mean? leaving
Classpath out of the story, the code generated from source by gcj
links to libgcj isn´t it?

The entire java runtime library is quite large. For gcj the runtime library is called libgcj. The amount of gcj specific code in libgcj that differs from the classpath project is small compared to the total amount of classpath code used.

All code compiled by gcj must be linked to libgcj to be useful.


another question, maybe a little off topic since its a classpath
related question. just out of curiousity, can a bsd licensed java
compiler use the classpath library?


Read the classpath license.

David Daney