shudo / shujit

Java Just-in-Time Compiler for x86 processors

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

shuJIT - a JIT compiler for x86
	http://www.shudo.net/jit/
	Kazuyuki Shudo <shudo@computer.org>

* What this is

ShuJIT is a Java Just-in-Time compiler for Sun Microsystems' Classic VM
(i.e. JDK, Java 2 SDK, JRE) and Intel x86 processors.
It supports FreeBSD, Linux and NetBSD.

* Platforms

Working on the following platforms is confirmed.

- FreeBSD
  - JDK 1.3.1 patchlevel 8, GCC 2.95.4 and FreeBSD 4.9-STABLE
  - JDK 1.1.8 (ELF, V1999-11-9), GCC 2.95.4 and FreeBSD 4.9-STABLE

- Linux
  - Blackdown JDK 1.3.1_02b, GCC 3.3.2 20031022, glibc 2.3.2
    and Linux 2.6.0-test9
  - JDK 1.1.8v3, GCC 3.3.2 20031022, glibc 2.3.2 and Linux 2.6.0-test9
  - JDK 1.1.7v1a, egcs 1.1.2, libc 5.4.38 and Linux 2.0.35

* Installation

With Java 2, you have to place the libshujit.so in
jdk1.X.X/jre/lib/i386/ or make a symbolic link in the path.

With JDK 1.1.X, copy the libshujit.so to a path in LD_LIBRARY_PATH
variable or the path on which libjava.so exists
(ex. /usr/local/jdk1.1.8/lib/i686/green_threads/).

* Run Java programs with shuJIT

Type instead of usual java command
  % java -Djava.compiler=shujit ...

or set JAVA_COMPILER variable to `shujit'.
  If you use C shell compatible shells, type
    % setenv JAVA_COMPILER shujit
  If you use bourne shell compatible shells, type
    % export JAVA_COMPILER=shujit

* Compilation

You need the following tools to compile shuJIT.

- JDK 1.3.X, 1.2.X or 1.1.X Classic VM
  ShuJIT works with Sun's Classic VM which these JDKs contain.
  Other JVMs, i.e. IBM JDK and HotSpot VMs, are not supported.
- GCC 3.X, 2.9X or egcs
  You can examine the version number of your GCC with -v option.
    % gcc -v
  GCC 2.7.X cannot compile shuJIT correctly.
- objdump (in GNU binutils)
  Most Linux distributions and ELF FreeBSD systems have this.
- Ruby
  A script which generate some tables is written in Ruby.
  See http://www.ruby-lang.org/
- GNU make

  1. Run configure script.
       % ./configure
     If you want to use SSE2 instructions of Pentium 4 processor, type
       % ./configure --enable-sse2
  2. Type `make'. You will get libshujit.so
       % make
     Or, on FreeBSD systems
       % gmake
     Type `make debug' to obtain libshujit_g.so, which is for debugging.

* Bugs and Problems

Any comments and bug reports are welcome. Please feel easy to write to me.

* Copying

This software is a free software which is copyrighted by Kazuyuki
Shudo. You may redistribute and modify it under the terms of GNU
Lesser General Public License; either version 2.1 of the License, or
any later version. See LGPL.txt for more details.

* Thanks

Thanks all folks around me and especially the following people:

Takuzo O'hara <takuzo at sm.sony.co.jp>                (compilation on FreeBSD)
Hideaki Takahashi <htaka at nalgo.co.jp>                 (bug report and debug)
Keishiro Tanaka <ksr at lp.nm.fujitsu.co.jp>                  (test on FreeBSD)
Ryo Neyama <neyama at jp.ibm.com>                               (test on Linux)
Toshitaka Miura <miura at computer.org>                (preparation of FreeBSD)
Jun'ya Kato <kato at goto.info.waseda.ac.jp>           (preparation of FreeBSD)
Fuyuhiko Maruyama <fuyuhik8 at is.titech.ac.jp>           (discussion and code)
Toshihiko Shimokawa <toshi at csce.kyushu-u.ac.jp>     (preparetion of FreeBSD)
Keizo Maeda <keizo at toolhouse.jp>                                   (porting)
and my deceased wife Mari.


Kazuyuki Shudo/首藤一幸   私をたばねないで あらせいとうの花のように
  shudo at computer.org   http://www.shudo.net/

About

Java Just-in-Time Compiler for x86 processors


Languages

Language:C 74.3%Language:Java 20.2%Language:Ruby 1.8%Language:C++ 1.8%Language:Shell 0.8%Language:Makefile 0.8%Language:Perl 0.3%