mirror of
https://github.com/urbit/ares.git
synced 2024-11-29 22:56:28 +03:00
51 lines
2.0 KiB
Markdown
51 lines
2.0 KiB
Markdown
# 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) |