docs: 감사 4라운드 반영 — ROADMAP의 'Brand.luau 트리에 없음' 정정, lifecycle-pattern의 'base가 Relate로 직접 구현' 옛 서술 정정

Co-authored-by: qwreey <me@qwreey.moe>
This commit is contained in:
qwreey 2026-08-28 18:32:22 +09:00
parent c427c9c143
commit 197ea881ed
Signed by: qwreey
GPG key ID: D28DB79297A214BD
2 changed files with 12 additions and 6 deletions

View file

@ -732,10 +732,15 @@ quad-roblox 구현 단계에서 실측 확인 대상 — 문제가 되면 gcconn
이건 `base/dispatch-core-plan.md`의 "핸들러 내부 상태 저장" 유틸(`Relate` 이건 `base/dispatch-core-plan.md`의 "핸들러 내부 상태 저장" 유틸(`Relate`
직접 사용)과 짝을 이루는 별도 유틸 — 하나는 "상태를 어디에 저장할지" 직접 사용)과 짝을 이루는 별도 유틸 — 하나는 "상태를 어디에 저장할지"
(`Relate:SetStrong`/`:SetWeak`), 다른 하나는 "언제까지 실행되어도 되는지" (`Relate:SetStrong`/`:SetWeak`), 다른 하나는 "언제까지 실행되어도 되는지"
(`bindLifetime` + `canBound`/`canExecute`)를 다룸. 후자는 내부적으로 전자가 제공하는 (`bindLifetime` + `canBound`/`canExecute`)를 다룸. 후자의 **실 구현**은 전자가
같은 `Relate` 프리미티브 위에 얹혀 구현됨(위 절) — 별도 저장 메커니즘을 제공하는 같은 `Relate` 프리미티브 위에 얹힘(위 절) — 별도 저장 메커니즘을
새로 만든 게 아니라 `Relate` 하나를 두 용도로 재사용. 둘 다 base가 제공하는 새로 만든 게 아니라 `Relate` 하나를 두 용도로 재사용. **[2026-08-28 정정, M2
범용 유틸로 확정. 첫 단위]** 다만 그 실 구현을 갖는 건 base가 아니라 **백엔드**다 — quad-base의
`LifetimeHandle.luau``InitLifetimeHandle(module)`이 에러 스텁 4종을 모듈
인스턴스에 설치하는 인터페이스뿐이고 `Relate`를 require하지 않는다(아래
"base가 인터페이스로만 내보내는 것" 절, `base/architecture.md` 소스 트리).
여기 한때 *"둘 다 base가 제공하는 범용 유틸로 확정"*이라 적혀 있었으나 그건
`Relate` 쪽에만 맞는 말이다.
**교차검증(2026-08-04 4차 라운드)**: 사용자가 공유해준 실제 참고 코드 **교차검증(2026-08-04 4차 라운드)**: 사용자가 공유해준 실제 참고 코드
(`.claude/initreq/artworks/EventDrivenProgramming/`, PA님 작성)는 GC-native가 (`.claude/initreq/artworks/EventDrivenProgramming/`, PA님 작성)는 GC-native가

View file

@ -766,8 +766,9 @@ Luau 코드로 부딪혀본 적 없는 세 가지**를 던지는 코드로 검
(`NoneHandler` + `NilHandler`)** — `None`은 modifier 전용 값이 아니라 (`NoneHandler` + `NilHandler`)** — `None`은 modifier 전용 값이 아니라
디스패치 배관이라 여기 소속(`architecture.md`의 소스 트리에 있는 건 디스패치 배관이라 여기 소속(`architecture.md`의 소스 트리에 있는 건
핸들러 쪽 `Dispatch/None.luau`뿐 — **[2026-08-22] 탑레벨 센티널 핸들러 쪽 `Dispatch/None.luau`뿐 — **[2026-08-22] 탑레벨 센티널
`None.luau``Brand.luau`는 그 트리에 아직 줄이 없다**, M3 구현 시 `None.luau`는 그 트리에 아직 줄이 없다**, M3 구현 시 트리도 같이
트리도 같이 채울 것). 채울 것. **[2026-08-28]** 여기 같이 적혀 있던 `Brand.luau`는 M2 첫
단위에서 줄이 생겼다).
`NoneHandler`는 배열/해시 구분 없이 `Dispatch.process(inst,k,nil,index+1)` `NoneHandler`는 배열/해시 구분 없이 `Dispatch.process(inst,k,nil,index+1)`
**재귀만** 하고(선행 `retractFrom` 없음 — 하강 diff), 실제 정리는 **재귀만** 하고(선행 `retractFrom` 없음 — 하강 diff), 실제 정리는
`NilHandler`(`isHandlable`이 `type(k) == "number" and v == nil`일 때만 `NilHandler`(`isHandlable`이 `type(k) == "number" and v == nil`일 때만