2.0 KiB
Ares Status Call ~2023.4.19
Executive Summary: Primary work is on Nock code generation. A new approach is being implemented which reverses the order of the linearization and subject knowledge analysis. This solves both a "TMI" problem which led to infinite loops on recursive arms with list-structured accumulators, and the "initialization" problem: which parts of a core do we initialize SKA with at entry points?
Codegen status
The previous approach to code generation encountered two problems. The first was the "initialiation problem" where the performance of the analysis was dependent on proper masking of subject knowledge at the entry point. Such masking required complex additional analysis to properly mask the subject and produce partial knowledge which would still match for future executions.
The second problem was a "TMI" or "too much information" problem: analysis of recursive functions with accumulators could continuously accumulate new cells and thus change the input subject knowledge for each recursive iteration, leading to non-termination of the analysis.
Our new approach begins with the linearization and registerization step, and interleaves subject knowledge analysis to discover directly-invoked formulas. The usage information from the linearization pass is annotated for registers for values used as formulas. This permits us to discover which parts of the entry subject are used as formulas, and use only those components as keys for re-use of generated code.
PMA status
Nothing to report, awaiting contributions.
Other updates
There is an extant PR against the 2stackz arena from Auri at Chorus One. If anyone can put me (Edward) in touch with him, please do.
(Gary sent Auri's email)
Questions
Ted - Example of codegen?
Ted - What about invoking cores from dynamic state and the unhinted nature of that? much technical discussion
David - Go over PMA separately?
Ted - Integration status of PMA? (unintegrated)
Ted - Heap to go along with 2stackz? (Unclear if necessary)