bytecode instead of on these mechanical issues. |
bytecode instead of on these mechanical issues. |
|
|
In addition to a low-level opcode-oriented API for directly generating specific |
In addition to a low-level opcode-oriented API for directly generating specific |
bytecodes, the module also offers an extensible mini-AST framework for |
bytecodes, this module also offers an extensible mini-AST framework for |
generating code from high-level specifications. This framework does most of |
generating code from high-level specifications. This framework does most of |
the work needed to transform tree-like structures into linear bytecode |
the work needed to transform tree-like structures into linear bytecode |
instructions, and includes the ability to do compile-time constant folding. |
instructions, and includes the ability to do compile-time constant folding. |
|
|
|
There are a few features that aren't tested yet, and not all opcodes may be |
|
fully supported. Notably, the following features are NOT reliably supported |
|
yet: |
|
|
|
* Wide jump addressing (for generated bytecode>64K in size) |
|
|
|
* The ``dis()`` module in Python 2.3 has a bug that makes it show incorrect |
|
line numbers when the difference between two adjacent line numbers is |
|
greater than 255. This causes two shallow failures in the current test |
|
suite when it's run under Python 2.3. |
|
|
|
If you find any other issues, please let me know. |
|
|
|
|
.. contents:: Table of Contents |
.. contents:: Table of Contents |
|
|