[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: GCJ Thought Balloon

>>>>> "PB" == Per Bothner <per@bothner.com> writes:

    Me> I wonder if there would be any value to having some kind of way
    Me> to -automatically- GCJ-compile Java packages at installation
    Me> time, if the package is GCJ-compatible and if GCJ is installed.

    PB> It should be the package builder's job to compile into a .so
    PB> file.  The package's configure script should have a --with-gcj
    PB> option to enable/disable building a .so file; the default is
    PB> either --without-gcj or it is autodetected.

Uh... with all due respect: hunh? I'm talking about Debian (.deb)
packages. Is that what you're talking about? Or are you talking about
tarballs with autoconf information?

    PB> I think trying to compile at installation time is a bad idea.

Debian Emacs lisp packages are auto-compiled at install time for the
different Emacs implementations (XEmacs 20, 21, etc., Gnu Emacs 19,
20, 21, etc.). Admittedly, compiling to Emacs bytecode is somewhat
simpler and less time-consuming than compiling Java, but there is some

Other time-consuming stuff happens at install time for Debian
packages, like indexing for tex and man pages.

If I am not mistaken, it's possible to use GCJ to compile .class files
as well as raw .java files. So a package could ship with .class files
and, if GCJ is available, compile them into an .so.

The nice part about this is that there is one (1) version of a Java
package, which gets "adapted" to the Java environment of the local
machine at install time.

    PB> For installation, I see two choices

    PB> (1) The .so file is always installed, as is the .jat file.
    PB> (2) The .so file is in a separate dependent package.

    PB> I think (1) is simpler, and I suspect the size of a .so isn't
    PB> enough to worry about.

For Freenet the compiled .so is about 3Mb, so this would actually be
quite enough to worry about on my side. 


Evan Prodromou

Reply to: