From 197ea881ed2c38381e84b93348ef74a4f3424547 Mon Sep 17 00:00:00 2001 From: qwreey Date: Fri, 28 Aug 2026 18:32:22 +0900 Subject: [PATCH] =?UTF-8?q?docs:=20=EA=B0=90=EC=82=AC=204=EB=9D=BC?= =?UTF-8?q?=EC=9A=B4=EB=93=9C=20=EB=B0=98=EC=98=81=20=E2=80=94=20ROADMAP?= =?UTF-8?q?=EC=9D=98=20'Brand.luau=20=ED=8A=B8=EB=A6=AC=EC=97=90=20?= =?UTF-8?q?=EC=97=86=EC=9D=8C'=20=EC=A0=95=EC=A0=95,=20lifecycle-pattern?= =?UTF-8?q?=EC=9D=98=20'base=EA=B0=80=20Relate=EB=A1=9C=20=EC=A7=81?= =?UTF-8?q?=EC=A0=91=20=EA=B5=AC=ED=98=84'=20=EC=98=9B=20=EC=84=9C?= =?UTF-8?q?=EC=88=A0=20=EC=A0=95=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: qwreey --- .claude/base/lifecycle-pattern.md | 13 +++++++++---- ROADMAP.md | 5 +++-- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/.claude/base/lifecycle-pattern.md b/.claude/base/lifecycle-pattern.md index 336ff69..17ca6cb 100644 --- a/.claude/base/lifecycle-pattern.md +++ b/.claude/base/lifecycle-pattern.md @@ -732,10 +732,15 @@ quad-roblox 구현 단계에서 실측 확인 대상 — 문제가 되면 gcconn 이건 `base/dispatch-core-plan.md`의 "핸들러 내부 상태 저장" 유틸(`Relate` 직접 사용)과 짝을 이루는 별도 유틸 — 하나는 "상태를 어디에 저장할지" (`Relate:SetStrong`/`:SetWeak`), 다른 하나는 "언제까지 실행되어도 되는지" -(`bindLifetime` + `canBound`/`canExecute`)를 다룸. 후자는 내부적으로 전자가 제공하는 -같은 `Relate` 프리미티브 위에 얹혀 구현됨(위 절) — 별도 저장 메커니즘을 -새로 만든 게 아니라 `Relate` 하나를 두 용도로 재사용. 둘 다 base가 제공하는 -범용 유틸로 확정. +(`bindLifetime` + `canBound`/`canExecute`)를 다룸. 후자의 **실 구현**은 전자가 +제공하는 같은 `Relate` 프리미티브 위에 얹힘(위 절) — 별도 저장 메커니즘을 +새로 만든 게 아니라 `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차 라운드)**: 사용자가 공유해준 실제 참고 코드 (`.claude/initreq/artworks/EventDrivenProgramming/`, PA님 작성)는 GC-native가 diff --git a/ROADMAP.md b/ROADMAP.md index 83f6dbf..264a04b 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -766,8 +766,9 @@ Luau 코드로 부딪혀본 적 없는 세 가지**를 던지는 코드로 검 (`NoneHandler` + `NilHandler`)** — `None`은 modifier 전용 값이 아니라 디스패치 배관이라 여기 소속(`architecture.md`의 소스 트리에 있는 건 핸들러 쪽 `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)` **재귀만** 하고(선행 `retractFrom` 없음 — 하강 diff), 실제 정리는 `NilHandler`(`isHandlable`이 `type(k) == "number" and v == nil`일 때만