Libjit Save

Unofficial libjit mirror.

Project README

libjit

This library in this distribution implements Just-In-Time compilation functionality. Unlike other JIT's, this one is designed to be independent of any particular virtual machine bytecode format or language. The hope is that Free Software projects can get a leg-up on proprietary VM vendors by using this library rather than spending large amounts of time writing their own JIT from scratch.

This JIT is also designed to be portable to multiple archictures. If you run libjit on a machine for which a native code generator is not yet available, then libjit will fall back to interpreting the code. This way, you don't need to write your own interpreter for your bytecode format if you don't want to.

The library is distributed under the terms of the GNU Lesser General Public License. See the COPYING.LESSER file for details.

The documentation for libjit is in Texinfo format. A general overview is in "doc/libjit.texi" with the remainder of the function documentation in the source files themselves.

Building libjit

To build libjit from a release tarball you will need GNU make, Bison, and Flex, and it is also highly recommended that you use gcc. To configure, build, and install, you would do the following:

    ./configure
    make
    make install

To build libjit from the repository tree you will also need autotools: autoconf, automake, and libtool. These tools let you create ./configure script which is missing in the repository. To run autotools you would just do the following:

./bootstrap

Compiler notes

It is highly recommended that you build libjit with gcc and not some other C compiler, even if you plan to use some other C compiler to access the library. We make use of a number of gcc builtins to assist with stack walking, dynamic function calls, and closures.

It is also recommended that you don't use the "-fomit-frame-pointer" option when compiling programs that use libjit. Otherwise stack walking may not work correctly, leading to problems when throwing exceptions. The configure script for libjit will detect the presence of this option in CFLAGS and remove it when building libjit itself.

Contacting the authors

The primary author is Rhys Weatherley at Southern Storm Software, Pty Ltd. He can be reached via e-mail at "[email protected]". [ This address is probably not valid anymore. ]

A number of other authors have also contributed to libjit. The current libjit maintainer is Aleksey Demakov [email protected].

Currently it is recommended to obtain libjit source tree from its Savannah git repository:

git clone git://git.savannah.gnu.org/libjit.git

The latest released version of libjit is severely out of date and its use is discuraged. Still it can be downloaded from here:

http://ftp.gnu.org/old-gnu/dotgnu/libjit/

Discussions about libjit can be carried out on the libjit mailing list, "[email protected]". For details on how to subscribe to the list visit libjit home page:

http://www.gnu.org/software/libjit/

Open Source Agenda is not affiliated with "Libjit" Project. README Source: ademakov/libjit
Stars
55
Open Issues
2
Last Commit
4 years ago
Repository
License

Open Source Agenda Badge

Open Source Agenda Rating