Giter VIP home page Giter VIP logo

sierra-zero / moonjit Goto Github PK

View Code? Open in Web Editor NEW

This project forked from moonjit/moonjit

0.0 1.0 0.0 9.72 MB

Just-In-Time Compiler for the Lua Programming language. Fork of LuaJIT to continue development. This project does not have an active maintainer, see https://twitter.com/siddhesh_p/status/1308594269502885889?s=20 for more detail.

License: Other

Makefile 0.90% C 65.89% Lua 24.71% Roff 0.06% C++ 1.04% Batchfile 0.46% Shell 0.01% CSS 0.21% HTML 6.72%

moonjit's Introduction

This code base does not have an active maintainer anymore, please read this Twitter thread to know more. If you are an existing contributor (or otherwise have an interest in maintaining this project actively) then please email me using the email address in my Twitter profile.

moonjit

Moonjit is a Just-In-Time Compiler (JIT) for the Lua programming language. Lua is a powerful, dynamic and light-weight programming language. It may be embedded or used as a general-purpose, stand-alone language.

Moonjit is a fork of the inactive LuaJIT project and aims to provide a way forward for existing users of LuaJIT looking for continuity in development and maintenance.

Documentation

Here is an index of the documentation for moonjit. Old documentation for LuaJIT is unmaintained in doc.luajit and is only there as a historical record.

Current Status

Moonjit ought to run all Lua 5.1-compatible source code just fine. It is considered a serious bug if the VM crashes or produces unexpected results โ€” please report this. Lua 5.2 support is in two parts; the backward compatible elements are built in by default whereas features that break compatibility have to be enabled using the -DLUAJIT_ENABLE_LUA52COMPAT flag. The installation instructions have more details.

Contributing

Please note the branches

  • Fork the moonjit repo on github
  • Clone your fork and make changes in a separate topic branch
    git clone [email protected]:<your-username-here>/moonjit.git
    git checkout my-changes
  • Make your changes and test them:
    make
    make check
    
  • Commit your changes using the -s flag to sign off your commit and then push it to your branch.
    git commit -a -s
    git push origin my-changes
    
  • Write a detailed commit log message describing the issue you're fixing so that the information is retained for future reference. If you're fixing an issue, please mention the issue number as fixed using the annothation Fixes: #NUM in the body of the commit log.
  • Create a Pull Request on GitHub.

Testing

moonjit has a built-in testsuite that can be exercised by running the following command:

make check

There is also a benchmark suite that can be run as follows:

make bench

If you're fixing a bug in moonjit, make sure you add a test case to exercise the bug so that it does not regress. test/README.md has more details on how to execute and update the testsuite.

Branches

The project repository on github has the following main branches:

  • master: This is the active development branch for moonjit and it is where all new features and targets will be incorporated.
  • v2.1: This is a bug fix branch for v2.1.x releases of moonjit. This branch aims to remain compatible with the LuaJIT v2.1 branch.
  • v2.0: This remains a bug fix branch that tracks the v2.0 branch of upstream LuaJIT. This branch currently does not have a maintainer.

Release Process

The following steps need to be performed before tagging a moonjit release:

  • Update RELVER to the new version number and set PREREL to an empty string in Makefile
  • Update etc/luajit.pc with the new version
  • Update LUA_LJDIR in src/luaconf.h
  • Update LUAJIT_VERSION, LUAJIT_VERSION_NUM and LUAJIT_VERSION_SYM in src/luajit.h
  • Update version check assertions in scripts in src/jit. They are of the form: assert(jit.version_num == xxxxxx, "moonjit core/library version mismatch") where xxxxxx is the value of LUAJIT_VERSION_NUM.
  • Update the source package name in INSTALL.md.
  • File a PR with these changes.
  • Draft release notes based on changes between HEAD and the last tag in a PR comment and update it based on feedback.
  • On PR approval, Tag release and put in release notes on GitHub.
  • Update PREREL in [Makefile(Makefile) to -dev to indicate that development is now open.
  • Announce.
  • Hack on next release.

moonjit's People

Contributors

mundaym avatar siddhesh avatar niravthakkar avatar ketank-new avatar fperrad avatar girish946 avatar agentzh avatar fsfod avatar joe-92 avatar bmwiedemann avatar pgalizia-qdt avatar thibaultcha avatar badger9 avatar grooverdan avatar walbon avatar iii-i avatar jdesgats avatar lblasc avatar lukego avatar tarnyko avatar seth-priya avatar stefan-sf-ibm avatar wohlstand avatar bubuabu avatar vcunat avatar mraleph avatar abhay1722 avatar doujiang24 avatar izarif avatar mcclure avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.