javaclass

Changelog

(0) -10 +10 +100 tip
15:bd70c69bd9ae
2004-11-09 Paul Boddie changeset files shortlog graph Added local variable usage tracking. Changed the invokespecial implementation, since it probably has very little to do with superclass method invocation specifically. Extended the test program to try and assemble an entire class. Attempted to fix block gymnastics for exceptions.
bytecode.py
14:946dca5710ea
2004-11-09 Paul Boddie changeset files shortlog graph Changed the Python equivalent of <init> to be a special __java_init__ method.
classfile.py
13:5f0832d56165
2004-11-09 Paul Boddie changeset files shortlog graph Added usage of name translation. Added notes on proper exception handling.
bytecode.py
12:61621082e2d4
2004-11-09 Paul Boddie changeset files shortlog graph Added initial name translation support.
classfile.py
11:4184dc282002
2004-11-09 Paul Boddie changeset files shortlog graph Added supposedly improved exception handling in order to use Python VM features. The problem is that the JVM athrow instruction is dynamic and best translates to the Python VM RAISE_VARARGS instruction. However, in order to support RAISE_VARARGS, the SETUP_EXCEPT, SETUP_FINALLY, POP_BLOCK and END_FINALLY instructions are also required, yet the JVM supports try... catch...finally (whereas the Python VM only supports try...except and try...finally), and anticipates finally handling using very low-level subroutine calling and arcane usage of local variables. Changed the result of the translate convenience function and the parameter specification of the translate and disassemble functions. Fixed the get_value method in LazySubValue and the LazyValue portion of the _write_value method in BytecodeWriter.
bytecode.py
10:38c56a357c49
2004-11-09 Paul Boddie changeset files shortlog graph Removed the undesirable conversion to Unicode in NameUtils.get_name.
classfile.py
9:7adb0ed5b58e
2004-11-08 Paul Boddie changeset files shortlog graph Added missing bytecode translations.
bytecode.py
8:60fb5a7b7181
2004-11-08 Paul Boddie changeset files shortlog graph Attempted to provide proper bytecode output with 16-bit operands, special "lazy" subvalues which should be correctly completed for each byte of uncomputed constants. Attempted to make branches perform correctly, presumably needing to involve offsets from the following instruction in the Python VM. Attempted to add support for the jsr/jsr_w/ret mechanism. Note that the usage of RAISE_VARARGS is probably inappropriate. Added convenience methods to get details of the names, constants and stack depth from the BytecodeWriter, although the globals have been removed as a separate mapping and a variable name registry is missing.
bytecode.py
7:91cceb1bd580
2004-11-07 Paul Boddie changeset files shortlog graph Fixed shifting operations, observing operator precedence. Added names support in BytecodeWriter. Reorganised the BytecodeReader class hierarchy to provide disassembling support separate from translation support. Added convenience functions for disassembly and translation. Introduced some additional bytecode writing methods. Improved the classfile module to support easier access to names and descriptors through RefInfo objects.
bytecode.py classfile.py
6:a714f8355910
2004-11-07 Paul Boddie changeset files shortlog graph Added label-based jumping (rather than permitting only simple jumping forward to a single point). Added "lazy" dictionary support for the instruction mapping (from Java to Python bytecodes) along with a class which provides the "lazy" value for each case where the value is not known initially but is provided later. Added more bytecode translations and some Python bytecode sequence methods. Fixed the interpretation of various signed values.
bytecode.py
(0) -10 +10 +100 tip