micropython

Changelog

(0) -100 -10 +10 +100 +300 tip
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
135:eb01c567dfeb
2008-08-27 Paul Boddie changeset files shortlog graph Added descendants (and self) to the collection of attributes for each class, stored in the object table. Switched the "validator" stored in the tables to be the attribute index as opposed to the offset - this might help when eventually trying to encode and store such data in low memory environments. Employed a slightly better approach to populating the displacement lists generated for tables by adding rows in descending order of utilisation (ie. with most gaps or empty entries last). Added a simple visualisation function in the test program for viewing raw table data.
micropython/__init__.py micropython/data.py micropython/table.py rsvp.py test.py
134:12c97a4d751c
2008-08-25 Paul Boddie changeset files shortlog graph Proposed the replacement of the class table by special attributes in the object table. Fixed the object header representations in the RSVP implementation.
docs/structures.txt micropython/__init__.py micropython/ast.py micropython/table.py rsvp.py test.py tests/call_method2.py
133:ff0d31fbd387
2008-08-24 Paul Boddie changeset files shortlog graph Fixed temporary storage and local usage.
micropython/ast.py micropython/data.py
132:dff32649a6d4
2008-08-24 Paul Boddie changeset files shortlog graph Changed context loading conditions to depend on the target instead of a context of None (since this may occur for identified functions). Added source instruction tracking in order to provide an optimisation around intermediate source storage. Added ExtendFrame for temporary storage allocation. Added specific classes for the different table and list types. Provided more RSVP instruction implementations. Added a callable register to the RSVP implementation.
docs/structures.txt micropython/__init__.py micropython/ast.py micropython/rsvp.py micropython/table.py rsvp.py
131:b62d613c3ca1
2008-08-23 Paul Boddie changeset files shortlog graph Fixed known_target optimisation. Simplified the binary operator method invocation code slightly.
micropython/ast.py tests/compare.py tests/compare2.py
130:8ee002746854
2008-08-23 Paul Boddie changeset files shortlog graph Fixed temp allocation, hopefully. Changed usage of _generateTestBoolean to involve a pre-allocated temporary storage slot. This also helps to resolve issues with logical operations, since the current value was previously being implicitly used to communicate the result of such operations. Split the logical test program into two.
micropython/ast.py tests/logical.py tests/logical2.py
(0) -100 -10 +10 +100 +300 tip