Moved and updated LLPython (formerly LLNumba) documentation from Numba repository.

This commit is contained in:
Jon Riehl 2012-11-08 15:51:14 -06:00
commit 22d8e0048b
19 changed files with 169 additions and 1 deletions

View file

@ -0,0 +1,10 @@
LLPython Articles
=================
.. toctree::
:titlesonly:
:maxdepth: 1
intro_llpython.rst
nobitey_dev.rst
ctmp_in_llpython.rst

View file

@ -0,0 +1,5 @@
Compile-time Metaprogramming in LLPython
========================================
In this article, we discuss how LLPython supports compile-time
metaprogramming.

View file

@ -0,0 +1,9 @@
LLPython Documentation
======================
.. toctree::
:titlesonly:
:maxdepth: 2
articles.rst
reference.rst

View file

@ -0,0 +1,46 @@
====================
Introducing LLPython
====================
In this article, we introduce the llpython package. The primary goal
of the llpython package is to provide a Python dialect/subset that
maps directly to LLVM code. LLPython differs from its originating
LLVM translator, Numba, in the following aspects:
* LLPython code is not intended to work in Python if not translated
and wrapped.
* The LLPython translator only uses LLVM types.
* LLPython is explicitly typed, and does not support type inference.
LLPython does not support implicit casts, all casts must be explicit.
* LLPython supports code that directly calls the C API, the Python C
API, and the llvm.core.Builder methods.
Additionally, we designed the sub-package to have the following
engineering properties:
* Usable from Python 2.7, and 3.X. At the time of writing, we plan
to support Python 2.6.
* Clean from Numba dependencies (other than llvmpy), and can be used
as a standalone code generator without a full Numba installation.
* Provides a series of Python bytecode passes that can be easily
used by other projects.
LLPython Origins
================
We developed LLPython with the initial goal of simplifying writing
LLVM code.
LLPython Internals
==================
In this section, we describe the various passes performed by the
LLPython translator.
Conclusions
===========
LLPython is neat.

View file

@ -0,0 +1,6 @@
=====================
llpython.byte_control
=====================
.. automodule:: llpython.byte_control
:members:

View file

@ -0,0 +1,6 @@
==================
llpython.byte_flow
==================
.. automodule:: llpython.byte_flow
:members:

View file

@ -0,0 +1,6 @@
========================
llpython.byte_translator
========================
.. automodule:: llpython.byte_translator
:members:

View file

@ -0,0 +1,6 @@
=========================
llpython.bytecode_visitor
=========================
.. automodule:: llpython.bytecode_visitor
:members:

View file

@ -0,0 +1,6 @@
=================
llpython.bytetype
=================
.. automodule:: llpython.bytetype
:members:

View file

@ -0,0 +1,6 @@
=====================
llpython.control_flow
=====================
.. automodule:: llpython.control_flow
:members:

View file

@ -0,0 +1,6 @@
=============================
llpython.gen_bytecode_visitor
=============================
.. automodule:: llpython.gen_bytecode_visitor
:members:

View file

@ -0,0 +1,6 @@
================
llpython.nobitey
================
.. automodule:: llpython.nobitey
:members:

View file

@ -0,0 +1,6 @@
====================
llpython.opcode_util
====================
.. automodule:: llpython.opcode_util
:members:

View file

@ -0,0 +1,6 @@
=====================
llpython.phi_injector
=====================
.. automodule:: llpython.phi_injector
:members:

View file

@ -0,0 +1,6 @@
==================
llpython.pyaddfunc
==================
.. automodule:: llpython.pyaddfunc
:members:

View file

@ -0,0 +1,6 @@
========
llpython
========
.. automodule:: llpython
:members:

View file

@ -0,0 +1,5 @@
nobitey: Using ctypes and llvmpy to Bypass ctypes
=================================================
In this article, we show how nobitey uses llvmpy to eliminate the
ctypes call overhead.

View file

@ -0,0 +1,21 @@
LLPython Module Reference
=========================
Contents:
.. toctree::
:titlesonly:
:maxdepth: 2
llpython.rst
llpython.bytecode_visitor.rst
llpython.byte_control.rst
llpython.byte_flow.rst
llpython.byte_translator.rst
llpython.bytetype.rst
llpython.control_flow.rst
llpython.gen_bytecode_visitor.rst
llpython.nobitey.rst
llpython.opcode_util.rst
llpython.phi_injector.rst
llpython.pyaddfunc.rst