Lichen

Graph

(0) -100 -60 +60 +100 +300 tip
Added support files for exception handling, along with a __NULL macro.
Do not short-circuit dependency registration for built-in names, even if they
Fixed static object loading and added initial support for boolean tests.
Renamed the bool class to boolean, adding a bool function to test objects.
Use the parent of an method attribute's origin as its context.
Retain target references when generating __invoke call arguments.
Convert resolved names to attributes where static references are identified.
Added constant generation and support for internal data.
Added predefined constant instances. Introduced __data__ for internal data.
Store special implicit object references in the cache.
Fixed parameter list positions again because the previous "elegant" solution
Added parameter table code and position constant generation.
Introduced an encoder function for special type attributes.
More elegantly allocated the context parameter for all callables.
Propagate resolved invocations amongst function defaults to the importer.
Tidied up statement spacing and simple attribute access presentation.
Fixed output label.
Re-introduced support for the generation of program structures.
Account for the context position in parameter lists and table entries.
Fixed assignment value propagation for attribute chains.
Removed redundant attribute.
Simplified and expanded invocation argument handling, making use of special
Introduced the special get_using function.
Attempt to work around argument sequence type mismatches when serialising.
Do not attempt to remove self from the parameters when defining instantiators.
Added some more support for generating invocation code, distinguishing between
Support invocation recording in attribute access modifiers.
Improved output indentation.
Fixed importer function locals population from cached data.
Added some more test cases including one featuring a "broken" attribute chain.
Re-introduced support for the translation of programs.
Distinguish between only and final attribute assignment when mutating objects.
Retain redundant accessor details to retain assignment details for the deducer.
Track assignment and invocation within attribute chains more thoroughly.
Make function parameters available via the importer.
Prevent traversal of references.
Track attribute assignment in attribute usage in order to restrict accessors.
Updated the description of the cached output to reflect current practices.
Updated docstring to describe invocation constraints on attributes.
Store the accessor and context for possible subsequent multiple referencing.
Adopted a function call structure to emitted instructions.
Refined accessor and provider computation in order to provide context testing
Added a method providing the parent of any reference alias.
Support an explicitly unset context identification type.
Fixed context identification.
Added proper support for general attribute assignment.
Fixed optimiser access to the deducer's access plans.
Introduced access mode information for unambiguously-traversed attributes so
Fixed instruction plan test operations, optimised the initial accessor to avoid
Distinguished between first and final access methods.
Renamed some values in the attribute access plans.
Introduced the optimiser module again, changing attribute access output to
Modified and made use of the get_attrname_from_location function, also tidying
Added some support for eliminating accessor class types where the provided
Moved a generic method into the common module as a function.
Combined attribute invocation information with attribute usage.
Fixed/improved exception raising.
Added an origin parent retrieval method, also fixing the ancestors method.
Moved a general path-making function to the common module.
Produce an error when attempting to access an attribute on an unrecognised name.
(0) -100 -60 +60 +100 +300 tip