/zippy

ZipPy is a Python3 interpreter on top of Truffle framework

Primary LanguagePythonBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

zippy-logo-200-rounded.jpg

ZipPy Build Status

Standard JVM Graal JVM
Linux Ubuntu 14.04.5 Build Status Build Status
Mac OSX 10.12 Build Status Build Status

ZipPy is a fast and lightweight Python 3 implementation built using the Truffle framework. ZipPy leverages the underlying Java JIT compiler and compiles Python programs to highly optimized machine code at runtime.

ZipPy is currently maintained by Secure Systems and Software Laboratory at the ​University of California, Irvine.

Short instructions (Using Standard JDK):

Prerequisites:
  1. Install the most recent JDK 8

Getting ZipPy:

  1. Create a working directory ($ZIPPY_HOME)

  2. Clone mxtool:

     $ cd $ZIPPY_HOME
     $ git clone https://github.com/graalvm/mx.git
    
  3. Append the mx build tool directory to your PATH.

     $ export PATH=$ZIPPY_HOME/mx:$PATH
    
  4. Clone ZipPy:

     $ git clone https://github.com/securesystemslab/zippy.git
    
  5. Get all ZipPy's dependencies:

     $ cd $ZIPPY_HOME/zippy
     $ mx spull
    
  6. Create a file $ZIPPY_HOME/zippy/mx.zippy/env and add JDK path

     JAVA_HOME=/path/to/jdk8
     DEFAULT_VM=server
    

For instructions on using Graal JVM: please visit the ZipPy Wiki.

Build:

$ cd $ZIPPY_HOME/zippy
$ mx build

Run:

$ cd $ZIPPY_HOME/zippy
$ mx python <file.py>

Test:

$ cd $ZIPPY_HOME/zippy
$ mx unittest python.test

For more details and instructions for downloading and building the system, please visit the ZipPy Wiki.