micropython

Graph

(0) -100 -60 +60 +100 +300 tip
Moved block expansion into the micropython.rsvp module's raw processing
Added methods to convert from blocks to code sequences.
Introduced code blocks in place of labels, potentially leading to increased
Added the raw form of Module objects.
Fixed unary operator frame preparation.
Re-ordered the methods according to corresponding node type.
Introduced immediate usage assessment for AssList/AssTuple, along with separate
Tidied up the optimiser by removing unnecessary translator/translation
Split the attributes2 test into smaller pieces.
Tidied the optimisations, moving the work done in the self access optimisation
Made the constant attribute accessor optimisation explicit.
Moved the Optimiser class into its own module, taking the responsibility for
Moved some documentation to separate files in the docs directory, updating some
Attempt to remove excessive temporary storage usage for the results of
Added some support for augmented assignment.
Apply the simple case immediate assignment optimisation to attribute assignment.
Moved graph definition production to a separate module.
Added notes about related projects.
Added a simple graph function producing Graphviz output.
Added exception conditions for various RSVP instructions using AttributeError
Tidied up the exception code generation to ensure that referenced exceptions are
Changed the frame usage calculations.
Removed the source storage optimisation, since it can effectively be replaced by
Removed the superfluous temporary storage optimisation since it could never work
Added a summary of current optimisations.
Separated the optimisation methods out into a distinct class.
Added the final Return instruction to generated images.
Made object construction through MakeObject use details of a supplied class,
Added notes about calling initialisers and instantiators, adopting a strategy
Added another test of method invocation, explicitly testing instance/class
Added descendants (and self) to the collection of attributes for each class,
Proposed the replacement of the class table by special attributes in the object
Fixed temporary storage and local usage.
Changed context loading conditions to depend on the target instead of a context
Fixed known_target optimisation.
Fixed temp allocation, hopefully.
Removed various RSVP instructions, introducing generated code for LoadBoolean
Added an ordered list of modules whose code can then be executed in order, thus
Added more support for LoadAttr and LoadAttrIndex in the RSVP implementation.
Added raw table generation, at least for object tables.
Remove trace statement.
Fix class table preparation.
Added a class table which should provide run-time support for class
Introduced the active_value attribute in order to track instructions which
Added tests of attribute binding and comparisons.
Changed context definition when storing attributes in order to better support
Attempted to define the RSVP instructions more thoroughly.
Added tables to the initialiser, although these will ultimately be positioned in
Changed local_usage to include parameters (ie. all_locals).
Changed the treatment of boolean status (for tests and conditional jumps) such
Made the test work with the current code generator.
Changed temporary storage management to use a set of allocated positions.
Removed LoadResult from the temporary storage compatible instructions.
Fixed CheckFrame production, employing the proper argument count.
Added frame size estimation based on the number of arguments used and parameter
Added notes about handling default parameter values at run-time.
Moved parts of the documentation into the docs directory.
Added some support for lambda.
Made LoadResult a suitable temporary storage access replacement.
Made module and class attribute storage forbidden via attribute access on
(0) -100 -60 +60 +100 +300 tip