aboutsummaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
authoreunhhu <[email protected]>2026-10-19 10:09:47 +0100
committereunhhu <[email protected]>2026-10-19 10:09:47 +0100
commit6b25d2517464f27ca29ee83de8f1d028c103fdab (patch)
treec2e666c285d5189fdfe070eac246928884ac3f49 /docs
parentdce9dfc09b5a4f16c023e3e94307cf5751fbb7e7 (diff)
downloadpure-6b25d2517464f27ca29ee83de8f1d028c103fdab.tar.gz
pure-6b25d2517464f27ca29ee83de8f1d028c103fdab.zip
029: spreading fns at load is a reason to try, not a result (an early return in a loop's body becomes a branch out of it, unmeasured): ③'s first work settles it
Diffstat (limited to 'docs')
-rw-r--r--docs/design/029-past-one-node.md4
1 files changed, 3 insertions, 1 deletions
diff --git a/docs/design/029-past-one-node.md b/docs/design/029-past-one-node.md
index 0fe0f76..deb8b3e 100644
--- a/docs/design/029-past-one-node.md
+++ b/docs/design/029-past-one-node.md
@@ -49,7 +49,9 @@
**해법의 꼴.**
1. **로드 때 fn을 펼친다(코어).** 재귀가 아닌 fn을 부르는 자리에 그 몸을 펼친 블록을 로드 때 만든다. 검증한 모듈의 뜻은 그대로이고,
계층은 펼친 블록을 받는다. aup에서 했을 때(140의 c3)는 이른 `return`과 "값 위의 고리"에 막혔다. 코어는 스택의 높이와 합류를
- 이미 검증하므로, 펼침을 그 아래에서 할 수 있다. 재귀 fn은 실행기에 남되, 부름 하나의 값(프레임)을 줄인다.
+ 이미 검증하므로 그 아래에서 해 볼 까닭은 있다. 그러나 **될지는 아직 모른다.** 고리 안의 이른 `return`은 고리 밖으로의 갈래가
+ 되고, 묶음 계층이 그것을 받는지 재지 않았다. 그것을 가리는 것이 ③의 첫 일이다. 재귀 fn은 실행기에 남되, 부름 하나의
+ 값(프레임)을 줄인다.
2. **바이트를 열로 본다.** 가변 길이 바이트의 고리(바이트마다 `d[i]`)를 묶음이 읽는 열의 꼴로 다룬다. 바이트 값은 이미 자리로
읽히는 연속 구간이다.
3. **명령 수를 줄인다(aup).** 레코드에 담긴 리스트를 읽을 때마다 레지스터에 다시 묶는 일, 레코드를 받는 작은 fn의 부름 같은 것을