145:7bdf1b4636b8
|
2008-09-07 |
Paul Boddie |
changeset
files
shortlog
graph
|
Tidied up the exception code generation to ensure that referenced exceptions are
obtained.
Fixed the exception handling in the RSVP implementation to test exceptions using
the isinstance-like testing employed by the CheckSelf instruction.
Introduced additional stacks to ensure that frames and return addresses are
properly discarded.
Added an "isinstance" flag to the object header details in order to support
CheckFrame - this would be efficiently encoded, perhaps in the classcode field,
in any low-level implementation. |
|
|
micropython/ast.py micropython/rsvp.py micropython/table.py rsvp.py test.py tests/exception.py
|
|
144:1c6a86066472
|
2008-09-07 |
Paul Boddie |
changeset
files
shortlog
graph
|
Changed the frame usage calculations. |
|
|
micropython/ast.py micropython/data.py
|
|
143:2548cd0c4008
|
2008-09-07 |
Paul Boddie |
changeset
files
shortlog
graph
|
Removed the source storage optimisation, since it can effectively be replaced by
a suitably chosen temporary storage substitute under the appropriate conditions.
Made temporary storage substitution possible for assignment expressions and
other source values when used immediately.
Added missing unused result optimisation test.
Added frame extension at the module level.
Added temporary storage erasure after each statement.
Made each AST Module node refer to the inspected module object.
Added an initial frame to the RSVP machine. |
|
|
docs/optimisations.txt micropython/ast.py micropython/inspect.py rsvp.py
|
|
142:4cb6ccaaf758
|
2008-09-07 |
Paul Boddie |
changeset
files
shortlog
graph
|
Removed the superfluous temporary storage optimisation since it could never work
as implemented (and would be mostly equivalent to the source storage
optimisation). |
|
|
docs/optimisations.txt micropython/ast.py
|
|
141:bd6baced90ab
|
2008-09-07 |
Paul Boddie |
changeset
files
shortlog
graph
|
Added a summary of current optimisations. |
|
|
docs/optimisations.txt
|
|
140:a36ce78d98d4
|
2008-09-07 |
Paul Boddie |
changeset
files
shortlog
graph
|
Separated the optimisation methods out into a distinct class.
Moved various class attributes around. |
|
|
micropython/__init__.py micropython/ast.py micropython/rsvp.py
|
|
139:29103989ca36
|
2008-09-05 |
Paul Boddie |
changeset
files
shortlog
graph
|
Added the final Return instruction to generated images.
Fixed the For node processing to store assigned values before visiting
assignment nodes.
Changed source processing to not use temporary storage optimisations, since the
conditions for such optimisations are not met in general when processing
assignments.
Adopted a list to hold sources (assignment expression values), since list and
tuple assignment act on a hierarchy of such values.
Added elementary support and tests for list assignment. |
|
|
micropython/__init__.py micropython/ast.py micropython/inspect.py tests/list_assign.py tests/list_assign2.py
|
|
138:4c95794770e6
|
2008-09-04 |
Paul Boddie |
changeset
files
shortlog
graph
|
Made object construction through MakeObject use details of a supplied class,
reserving an extra location for type information.
Changed some LoadAddress usage to LoadConst in order to feed instructions which
require a value, not the type information of an object (which is what
LoadAddress acting on a reference to an object, as opposed to an attribute,
would provide).
Added parameter default details to raw class and function information, although
further default details are required.
Added convenience methods to the RSVPMachine class for inspecting and stepping
through execution of a program.
Changed various RSVP implementations, fixing stack manipulation and returning
from subroutines.
Made the test of lists wider in scope. |
|
|
micropython/ast.py micropython/rsvp.py micropython/table.py rsvp.py test.py tests/list.py
|
|
137:f660fe1aac5c
|
2008-09-01 |
Paul Boddie |
changeset
files
shortlog
graph
|
Added notes about calling initialisers and instantiators, adopting a strategy
where instantiation detected at compile-time is performed using an initialiser
directly, whereas that detected at run-time is done using an instantiator whose
code is now generated in the image.
Added a finalise method to the Importer in order to set attribute locations
before code generation, since some code (use of initialisers) requires details
of a different program unit's locals (although this is actually unnecessary, but
done because Attr instances are employed in the generated code).
Changed class invocation at compile-time to acquire the new object reference
from the frame of an already invoked initialiser just before dropping the frame.
Added some support for raw image encoding of classes and functions.
Changed JumpWithFrame usage to involve the current callable, not the current
value.
Added RecoverFrame and AdjustFrame instructions.
Improved the tests around instantiation. |
|
|
docs/invocation.txt docs/structures.txt lib/builtins.py micropython/__init__.py micropython/ast.py micropython/data.py micropython/rsvp.py micropython/table.py rsvp.py test.py ...
|
|
136:9fdd2c13dbac
|
2008-08-27 |
Paul Boddie |
changeset
files
shortlog
graph
|
Added another test of method invocation, explicitly testing instance/class
compatibility for supplied contexts. |
|
|
tests/call_method3.py
|
|