micropython

Graph

(0) -100 -60 +60 +100 +300 tip
Fix unused objects optimisation for Attr instances with no predictable
Moved InspectError usage into the inspect module.
Make unused name and object removal more conservative, avoiding issues of
Insist on Const instances as keys for the constants dictionary, ensuring that
Separated functionality in Importer into distinct Importer and Program classes.
Added some support for constant data.
Moved raw code production into the Importer class.
Moved method name information into the common module.
Added status flags to the Importer, ensuring that certain operations (vacuum and
Upheld the class/function restrictions on removing objects.
Added name accounting.
Moved constant accounting to the Importer class.
Moved optimisations onto instances of the Importer class, using such instances
Add name retrieval method for checking raw output and ensuring that each object
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
(0) -100 -60 +60 +100 +300 tip