No description
  • C 76.2%
  • TeX 7.2%
  • Yacc 5.3%
  • Pascal 3.7%
  • Ruby 3.1%
  • Other 4.5%
Find a file
2012-11-06 17:13:21 +03:00
config Move declaration of obsolete opcodes to a separate include file. 2012-01-22 11:50:25 +01:00
doc Remove jit_malloc_exec() and friends from public API. 2012-10-12 23:53:03 +04:00
dpas Fix a memory leak in dpas. 2012-11-06 17:13:21 +03:00
include Restore the ability to allocate memory for recompiled functions. 2012-11-06 03:52:32 +03:00
jit Restore the ability to allocate memory for recompiled functions. 2012-11-06 03:52:32 +03:00
jitdynamic update .gitignore files 2009-06-10 04:03:50 +07:00
jitplus Free function signature upon function creation in jitplus. 2012-11-05 12:27:51 +03:00
jitruby add Paul Brannan's ruby-libjit 2008-12-12 11:30:57 +00:00
samples Add a sample program that demonstrates a simple VM based 2004-09-05 09:50:57 +00:00
tests Add support for some of the new opcodes for x86. 2010-08-08 18:37:52 +02:00
tools Refactor function cache allocation API. 2012-07-29 11:01:29 +04:00
tutorial Free function signatures in samples. 2012-11-05 12:24:12 +03:00
.gitignore rename .cvsimport to .gitimport 2009-06-06 11:15:09 +02:00
AUTHORS Initial revision 2004-04-30 23:29:28 +00:00
auto_gen.sh restore auto_gen.sh 2008-02-06 10:03:11 +00:00
ChangeLog Fix a memory leak in dpas. 2012-11-06 17:13:21 +03:00
configure.ac Add m4 dir and ar check in configure.ac. 2012-10-18 03:11:44 +04:00
COPYING update the COPYING file to the latest edition of GPLv2 (new FSF address and minor formatting changes) 2008-01-19 03:27:46 +00:00
COPYING.LESSER add LGPL v2.1 file 2008-01-22 06:44:10 +00:00
Makefile.am Add m4 dir and ar check in configure.ac. 2012-10-18 03:11:44 +04:00
NEWS *** empty log message *** 2008-12-11 04:14:50 +00:00
README use LGPL 2.1 for libjit 2008-01-24 20:12:48 +00:00
README.alpha Initial commit of the alpha port. 2006-07-12 03:06:49 +00:00
TODO update 0.1.4 plans 2008-12-19 14:03:32 +00:00

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 proprietry 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
---------------

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

        ./configure
        make
        make install

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 "rweather@southern-storm.com.au".

The latest version of libjit will always be available from the Southern
Storm Web site:

        http://www.southern-storm.com.au/libjit/

Discussions about libjit can be carried out on the DotGNU Portable.NET
mailing list, "pnet-developers@dotgnu.org".  Visit "www.dotgnu.org"
for details on how to subscribe to this list.  A separate mailing list
will be created if there is demand for it.