[Top][All Lists]

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

Re: eclipse status (summary: it looks nice)

From: Mark Wielaard
Subject: Re: eclipse status (summary: it looks nice)
Date: 24 Dec 2002 01:58:13 +0100


On Mon, 2002-12-23 at 05:07, Anthony Green wrote:
> On Sun, 2002-12-22 at 19:32, Anthony Green wrote:
> > On Sun, 2002-12-22 at 17:10, Mark Wielaard wrote:
> > > There are still some big showstoppers. You will need to disable the
> > > Garbage Collecter or you will get the attached exception while starting
> > > up. 
> > 
> > Try this...
> > 
> > 2002-12-22  Anthony Green  <address@hidden>
> > 
> >     * (_Jv_MarkObj): Mark the protectionDomain of a class.
> Yes, that was it!

Very nice. I am using your extended patch now and don't get any out of
memory issues anymore and it feels faster (since it is not trashing all
the time). But I do get lockups now and then (mostly when trying to use
the new project wizard). Do those happen to you?

> I'm running Eclipse right now.  It's surprisingly usable on my 2.4GHz
> P4.

Yes, our interpreter isn't that bad and it certainly helps that the core
classes are precompiled and that we use a widget library based on native
GTK+. It seems that most of the slowness comes from the actual loading
of the classes into memory. Part of this is caused by the fact that the
VMClassLoader keeps tries to load new classes first by first trying to
open the files. But since there are no natively
compiled classes it keeps falling back to the interpreter. We must cache
the result of Runtime.(internal)loadLibrary() somewhere.

> In addition to this fix, I had to disable class verification.  Perhaps
> the version of Eclipse you're running doesn't have the problematic
> bytecode sequence my version has (which is a Red Hat-internal version).

I had to do this also. The below is the text version of the installation
part of Step 4 is the disabling
of the verifier. Is your version of Eclipse based on 2.0.2 or 2.1-M4?




What do you need

   If you want to run it yourself you should be familiar with compiling
   gcj from source (either current mainline or the gcc-3_3-branch) and
   you will need to apply the following patches.
     * [3]Patch: platform usleep function.
     * [4]URLClassLoader fix for getCanonicalFileURL fix.
     * [5]StringBuffer patch.
     * Comment out the body of the _Jv_VerifyMethod method in the file.

   These patches (except the change) should be applied to CVS
   soon so you might not need them.

   When you have build and installed the new GCC you will need to make
   the following changes to the install.
     * Go inside the bin directory of the new GCC install and make a java
       symlink to the gij program. (Eclipse expects a binary called java,
       you can give the -vm gij option, but then it won't autodetect gcj
       as Standard VM.)
     * Copy the share/java/libgcj.jar file to lib/rt.jar. Then create a
       directory jre/lib/ and make another copy of the rt.jar here. (Note
       that these cannot be symlinks.)
     * Make a directory src and copy the gnu, java, javax and org
       directories from the libjava source directory in it. Then create a file which contains this src directory. Put this
       file in the parent directory of the dir you installed the new GCC
       in. So if you installed in /usr/local/gcc34/, then put the
       in /usr/local/ (This is needed for extra WOW! in the code editing

   This is all needed because eclipse expects a tradition java
   environment. It should be easy to hack
   [6]org/eclipse/jdt/internal/launching/ to recognize
   gcj by default.

   Disable the garbage collector by export GC_DONT_GC=1. If you don't do
   this eclipse will not startup properly and you will find a stacktrace
   in the workspace/.metadata/.log file mentioning a
   InvocationTargetException caused by a NullPointerException.

   Finally get the [7]latest stable Eclipse build (you want the It will create a directory eclipse and
   comes with all the sources (and a precompiled binary and the classes
   in jar files).


reply via email to

[Prev in Thread] Current Thread [Next in Thread]