diff options
| author | Cliff Click <cliffc@acm.org> | 2026-10-23 09:33:11 -0700 |
|---|---|---|
| committer | Cliff Click <cliffc@acm.org> | 2026-10-23 09:33:11 -0700 |
| commit | 2a7ed6bda01f028cf13f803d89b10908d7ea7937 (patch) | |
| tree | 24d21b102ec7c92f8c5117e4dbf9695a9a302c49 /skills | |
| parent | deafd9a6fa34938c0c8c9589097e8c84e39bfa1b (diff) | |
| download | Simple-2a7ed6bda01f028cf13f803d89b10908d7ea7937.tar.gz Simple-2a7ed6bda01f028cf13f803d89b10908d7ea7937.zip | |
Split out escape analysis chaptermain
Diffstat (limited to 'skills')
| -rw-r--r-- | skills/chapter25-codex-notes.md | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/skills/chapter25-codex-notes.md b/skills/chapter25-codex-notes.md index 5084ab63..7fe2724c 100644 --- a/skills/chapter25-codex-notes.md +++ b/skills/chapter25-codex-notes.md @@ -16,7 +16,8 @@ count changes. Cliff approved starting with both proposed boundaries and wants to review/play with construction versus escape after the snapshots run. Keep that border open to refinement. Revisit 17a/17b when choosing final names or numbers. The first extracted snapshots are chapter-sccp, -chapter-interprocedural-sccp, chapter-incomplete-types, and chapter-construction; numbered 24/25 +chapter-interprocedural-sccp, chapter-incomplete-types, chapter-construction, +and chapter-escape; numbered 24/25 remain comparison baselines. For shared viewer work, read [the graph viewer notes](graph-viewer-codex-notes.md). @@ -81,6 +82,16 @@ For shared viewer work, read [the graph viewer notes](graph-viewer-codex-notes.m Construction privacy follows language rules; global escape discovery is a separate topic, with no required teaching order between them. +- The escape snapshot carries function/alias exposure sets in TypeMem. Stop + feeds externally visible results/memory back to Start; SCCP restores unknown + callers only for exposed function identities. Their parameters use declared + bounds, never the narrower values inferred from known calls. External callers + already hold their object arguments, so writes through them expose addresses. + Native calls are exposure roots even when their path has no live Return. + FinalizeIR freezes this feedback before replacing call edges with emission + roots; the analysis cycle is not runtime CFG. Keep construction's local SSA + representation and early-self restrictions for the planned boundary review. + - Native function addresses in AMD64 ELF use low-address tail-jump thunks. Static fields and computed addresses must name the same weak entry across objects; direct calls can still use the native PLT. A native FunPtr has no |
