23:cdfdf58bec4c
|
2004-11-10 |
Paul Boddie |
changeset
files
shortlog
graph
|
Changed get_name to get_python_name in most remaining places of relevance.
Fixed invokespecial to get the method's class directly rather than
erroneously use self.__classes__.
Added simple base class definition. |
|
|
bytecode.py
|
|
22:50db0817ceeb
|
2004-11-10 |
Paul Boddie |
changeset
files
shortlog
graph
|
Reverted the ret instruction's implementation to use return addresses.
Introduced finally handler detection to produce END_FINALLY rather than
RAISE_VARARGS from athrow instructions.
Fixed invokevirtual.
Changed new and invokespecial to work better with the Python initialisation
model, removing the __java_init__ method. Now, the new instruction yields a
class reference which is then used accordingly by invokespecial. However,
invokespecial is made aware of whether it is operating within an <init>
method, although this may need further examination.
Changed the translate, disassemble and BytecodeReader.process signatures to
work on methods rather than separate code and exception table objects. |
|
|
bytecode.py
|
|
21:e28c3a721661
|
2004-11-10 |
Paul Boddie |
changeset
files
shortlog
graph
|
Reverted to the proper initialisation method name. |
|
|
classfile.py
|
|
20:5cf60a47f251
|
2004-11-10 |
Paul Boddie |
changeset
files
shortlog
graph
|
Expanded the exception test.
Added construction of values in the value test.
Added a test of subclass initialisation. |
|
|
tests/ExceptionTest.java tests/Value.java tests/ValueSubclass.java
|
|
19:83643c18d613
|
2004-11-09 |
Paul Boddie |
changeset
files
shortlog
graph
|
Added a test of try...finally. Note that this exposes issues with revision
1.10 of bytecode.py, since the exception is not re-raised. |
|
|
tests/ExceptionTest.java
|
|
18:2a50b70c772b
|
2004-11-09 |
Paul Boddie |
changeset
files
shortlog
graph
|
Fixed comparison plus branch (if_acmp*) by removing the comparison result
from the operand stack.
Added stack top duplication before RAISE_VARARGS so that the appropriate
handlers can save the value. Changed the value stored in the load_const_ret
method so that None is stored (although this may need verifying). When the
translated ret instruction (END_FINALLY in the Python VM, again requiring
verification) is executed, the value loaded just prior to its execution
should be the same as that saved at the beginning of the handler, and this
should be None or a raised exception.
NOTE: The load_const_ret translation should arguably retrieve the saved
NOTE: value from the beginning of any active handler instead of just
NOTE: loading None. This may be assured in try...finally constructs
NOTE: (without catch sections), however.
Rearranged Python VM instruction insertion for exceptions.
Changed some load_global(None) usage to load_const(None).
Added instruction positions in the disassembly output. |
|
|
bytecode.py
|
|
17:aa56bc8693a9
|
2004-11-09 |
Paul Boddie |
changeset
files
shortlog
graph
|
Added more test methods. |
|
|
tests/Value.java
|
|
16:eb6e8da8c28e
|
2004-11-09 |
Paul Boddie |
changeset
files
shortlog
graph
|
Added some test cases. |
|
|
tests/ExceptionTest.java tests/Value.java
|
|
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
|
|