Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/yjmade/rpython
Automatically exported from code.google.com/p/rpython
https://github.com/yjmade/rpython
Last synced: 9 days ago
JSON representation
Automatically exported from code.google.com/p/rpython
- Host: GitHub
- URL: https://github.com/yjmade/rpython
- Owner: yjmade
- Created: 2015-04-28T10:55:46.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2015-04-28T10:58:18.000Z (over 9 years ago)
- Last Synced: 2023-08-04T00:23:07.299Z (over 1 year ago)
- Language: Python
- Size: 1.04 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.txt
Awesome Lists containing this project
README
Notes: this project is very experimental and a playground to learn LLVM.
This projects aims to provide efficient and fast code generation for restricted python (RPython).
RPython is subset of python that is statically typed. A valid RPython is a valid python programm. The concept of RPython was created by the PyPy project (http://codespeak.net/pypy/dist/pypy/doc/) and is developped in the following paper:
http://www.disi.unige.it/person/AnconaD/papers/Recent_abstracts.html#AACM-DLS07The translation is done by analysis python bytecode of the function object provided as entry point. This means that the full power/dynamism of python can be use to generate the code (generate class methods...)
Python bindings for LLVM are used to generate the code (http://mdevan.nfshost.com/llvm-py/examples.html).
Requirement:
============- Latest SVN version of llvm-py python module. Precompiled version for windows available for download on http://code.google.com/p/rpython/downloads/list.
If you are on Windows, just decompress the archive into the directory containing this README file. The env.bat script will automatically add it to the paths.
- Python 3.1 (Object model clean-up and byte/string separation simplify type analysis)Running tests:
==============Setup PATH and RPY_HOME:
env.batLaunch the unit tests (compile python functions to "RPython" LLVM JIT and check execution result)
cd test\rpytest
python __init__.pyRunning a specific unit test:
python class.py TestClass.test_class_method