ravi - Ravi Programming Language is a derivative of Lua 5

  •        20

Ravi is a derivative/dialect of Lua 5.3 with limited optional static typing and features LLVM and Eclipse OMR powered JIT compilers. The name Ravi comes from the Sanskrit word for the Sun. Interestingly a precursor to Lua was Sol which had support for static types; Sol means the Sun in Portugese. Lua is perfect as a small embeddable dynamic language so why a derivative? Ravi extends Lua with static typing for greater performance under JIT compilation. However, the static typing is optional and therefore Lua programs are also valid Ravi programs.




Related Projects

omr - Eclipse OMR™ Cross platform components for building reliable, high performance language runtimes

  •    C++

The Eclipse OMR project is a set of open source C and C++ components that can be used to build robust language runtimes that support many different hardware and operating system platforms.The long term goal for the Eclipse OMR project is to foster an open ecosystem of language runtime developers to collaborate and collectively innovate with hardware platform designers, operating system developers, as well as tool and framework developers and to provide a robust runtime technology platform so that language implementers can much more quickly and easily create more fully featured languages to enrich the options available to programmers.

kaleidoscope - Haskell LLVM JIT Compiler Tutorial

  •    Haskell

A short guide to building a tiny programming language in Haskell with LLVM. You will need GHC 7.8 or newer as well as LLVM 4.0. For information on installing LLVM 4.0 (not 3.9 or earlier) on your platform of choice, take a look at the instructions posted by the llvm-hs maintainers.


  •    Perl

This is a program/framework written in C with embebbed tcl, capable of doing Optical Mark Recognition, of scanned forms. The new repository is at: http://fideo.no-ip.info/cgi-bin/viewcvs.cgi/omr/

gocaml - :camel: Practical statically typed functional programming language implementation with Go and LLVM

  •    Go

GoCaml is subset of OCaml in Go based on MinCaml using LLVM. GoCaml adds many features to original MinCaml. MinCaml is a minimal subset of OCaml for educational purpose. It is statically-typed and compiled into a binary. This project aims incremental compiler development for my own programming language. Type inference, closure transform, mid-level IR are implemented.

llvmlite - A lightweight LLVM python binding for writing JIT compilers

  •    Python

The old llvmpy binding exposes a lot of LLVM APIs but the mapping of C++-style memory management to Python is error prone. Numba and many JIT compilers do not need a full LLVM API. Only the IR builder, optimizer, and JIT compiler APIs are necessary. The llvmlite.llvmpy namespace provides a minimal llvmpy compatibility layer.

decomp - Components of a decompilation pipeline.

  •    Go

The aim of this project is to implement a decompilation pipeline composed of independent components interacting through well-defined interfaces, as further described in the design documents of the project. From a high-level perspective, the components of the decompilation pipeline are conceptually grouped into three modules. Firstly, the front-end translates a source language (e.g. x86 assembly) into LLVM IR; a platform-independent low-level intermediate representation. Secondly, the middle-end structures the LLVM IR by identifying high-level control flow primitives (e.g. pre-test loops, 2-way conditionals). Lastly, the back-end translates the structured LLVM IR into a high-level target programming language (e.g. Go).

llrb - LLVM-based JIT Compiler for Ruby

  •    C

LLRB is a LLVM-based JIT compiler for Ruby. I'm currently working on another JIT approach: YARV-MJIT.

terra - Terra is a low-level system programming language that is embedded in and meta-programmed by the Lua programming language

  •    C++

Terra is a new low-level system programming language that is designed to interoperate seamlessly with the Lua programming language. It is also backwards compatible with (and embeddable in) existing C code. Like C, Terra is a monomorphic, statically-typed, compiled language with manual memory management. But unlike C, it is designed to make interaction with Lua easy. Terra code shares Lua's syntax and control-flow constructs. It is easy to call Lua functions from Terra (or Terra functions from Lua). Furthermore, you can use Lua to meta-program Terra code. The Lua meta-program handles details like conditional compilation, namespaces, and templating in Terra code that are normally special constructs in low-level languages. This coupling additionally enables more powerful features like function specialization, lisp-style macros, and manually controlled JIT compilation. Since Terra's compiler is also available at runtime, it makes it easy for libraries or embedded languages to generate low-level code dynamically.

dragonffi - C Foreign Function Interface and JIT using Clang/LLVM

  •    C++

DragonFFI is a C Foreign Function Interface (FFI) library written in C++ and based on Clang/LLVM. It allows any language to call C functions throught the provided APIs and bindings. For now, only python bindings and a C++ API are provided.


  •    PHP

queXF, a CADE (Computer Assisted Data Entry) Tool, processes filled paper forms that were created in queXML, such as survey questionnaires. queXF can be used as a web based, Open Source alternative to programs such as Cardiff Teleform and Remark OMR.


  •    C

Library (driver) to control LOHS Family of OMR(Optical Mark Reader) Devices.

OMR FileManager


This project is fully ajax based file manager

OMR Table Data Syncronizer - Only Data


This tools compare and syncronize table data. No schema syncronizing included on this project. Data comparition is fastest! 1,000,000 data compare time is: ~200 ms.

Shared Questionnaire System

  •    Java

Shared Questionnaire System(SQS) is a full-functional Optical Mark Reader(OMR) form processing system implemented in Java-Swing, XSL-FO and AJAX with straightforward GUIs. It is aimed at developing social platform to share knowledge about questionnaire.

Sherpa - hiking information

  •    PHP

English: System made to let hiking associations represent information on cabins and routes. Norwegian: Hensikten er ? lage et web-system som lar DNT og medlemsforeninger tilknyttet DNT presentere informasjon om egen aktivitet og fjellomr?der omr?der.

xtext - Eclipse Xtext™ is a language development framework


Eclipse Xtext is a framework for development of programming languages and domain specific languages. It covers all aspects of a complete language infrastructure, from parsers, over linker, compiler or interpreter to fully-blown top-notch IDE integration for Eclipse, IntelliJ and Web-based IDEs. Further, languages developed with Xtext can be integrated into editors supporting the Language Server Protocol (e.g. VS Code, Eclipse Che). Xtext comes with great defaults for all these aspects, which at the same time can be easily tailored to your individual needs.Please check the individual repositories for instructions for building and contributing.

pyston - An open-source Python implementation using JIT techniques.

  •    Python

Pyston is a performance-oriented Python implementation built using LLVM and modern JIT techniques. For a high-level description of how it works, please check out our technical overview or our FAQ for some more details.We have a small website pyston.org, which for now just hosts the blog. We have two mailing lists: pyston-dev@ for development-related discussions, and pyston-announce@ which is for wider announcements (new releases, major project changes). We also have a gitter chat room where most discussion takes place.

vmir - Virtual Machine for Intermediate Representation

  •    C

Optionally it can generate machine code (JIT) to speed up execution significantly. JIT is currently only supported on 32 bit ARM. VMIR is licensed under the MIT license. See LICENSE.

llilc - This repo contains LLILC, an LLVM based compiler for

  •    C++

LLILC is an LLVM based MSIL Compiler - we pronounce it 'lilac' - with a goal of producing a set of cross-platform .NET code generation tools. Today LLILC is being developed against dotnet/CoreCLR for use as a JIT, as well as an cross platform platform object emitter and disassembler that is used by CoreRT as well as other dotnet utilites.See the documentation for more information. It has a more complete discussion of our background and goals as well as "getting started" details and developer information.

groovy-eclipse - Groovy-Eclipse

  •    Java

This project provides Eclipse and Maven tooling support for the Apache Groovy programming language. More information, including how to use and install is available on the wiki.