# 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)