Skip to content

Commit 6644f99

Browse files
committed
계획: 완료된 03 memoryJudgment 폴더를 회수한다
mainPlan/03_memoryJudgment를 삭제하고 실행 순서, 의존 관계, 입장 조건을 갱신했다. 09의 구현 계약 1번(스냅샷 SAB 회수)은 03에서 이미 처리했으므로 그 사실과 커밋을 09 문서에 적었다: 판정을 세우면서 그 판정이 RED인 채로 남지 않게 당겨온 항목이다. 검증: npm test 3207 passed 0 failed
1 parent 1b84511 commit 6644f99

3 files changed

Lines changed: 9 additions & 108 deletions

File tree

mainPlan/03_memoryJudgment/README.md

Lines changed: 0 additions & 101 deletions
This file was deleted.

mainPlan/09_heapReclaim/README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -63,9 +63,9 @@
6363

6464
## 구현 계약
6565

66-
1. `PyProc.terminate()``this._snapshot = null`을 더한다. `MachineContainer`도 같이. `_replace`
67-
`!!this._snapshot`을 읽으므로 terminate 후 respawn은 콜드가 되는데, terminate된 풀에서 respawn하지 않는
68-
계약상 무해하다.
66+
1. **03에서 완료(1b84511).** `PyProc.terminate()``MachineContainer.terminate()`가 스냅샷 SAB를 놓고,
67+
브라우저 게이트가 그 회수를 단정한다. 메모리 판정을 세우면서 그 단정이 RED인 채로 남지 않도록
68+
당겨왔다(실측: 회수 전 30MB가 풀 핸들 수명 내내 남았다).
6969
2. `_makeSnapshot`을 전용 워커에서 돌린다. 스냅샷 바이트를 transfer로 커널에 넘긴 뒤 SAB에 한 번만 싣는다.
7070
메인스레드 long task와 전역 오염이 함께 사라진다. **선결**: 메인에서 만든 스냅샷과 워커에서 만든
7171
스냅샷이 바이트 동일한지 attempts probe로 확인한다(`worker.js:10-12`가 메인과 워커의 리플레이는 바이트가

mainPlan/README.md

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,27 +49,29 @@
4949
스폰되는 워커의 자산 매니페스트 누락. 셋 다 게이트를 함께 냈고 음성 시험으로 이빨을 봤다.
5050
자산 그래프가 23파일에서 59파일로 늘었다(그 차이가 그동안 SRI preflight 밖이던 범위다).
5151

52+
- **03 memoryJudgment 완료(2026-08-03)**: 다섯 축 중 판정이 0이던 메모리 축에 예산을 세웠다.
53+
bootHeapBytes/reactiveTotalMb/journalPackMb/forkDeltaMb/sessionDeltaMb + 설치 레인 machineMB.
54+
pruneTo가 바이트를 돌려주는지, terminate가 스냅샷 SAB를 놓는지 단정한다. 음성 시험 3종 통과.
55+
5256
- **02 gateTeeth 완료(2026-08-03)**: 브라우저 러너 5개의 판정을 `harness.judgeReport` 한 곳으로 모으고
5357
예제 레인 하한 10개를 등재했다. 법 전처리를 `stripComments`로 수렴하고(네 법이 URL 담긴 줄에 눈이
5458
멀어 있었다) 메타 법으로 잠갔다. state 순수 집합을 등재 강제로 바꿔 `bundleFormat.js`의 침묵을 끝냈다.
5559
ESM 파스 게이트를 신설하고 `pre-push`에 타입 게이트를 더했다. `npm test` 11.0초, 푸시 11.6초.
5660

5761
| 순서 | 덩어리 | 주 축 | 선정 근거 | 입장 조건 |
5862
|---:|---|---|---|---|
59-
| 03 | [memoryJudgment](03_memoryJudgment/README.md) | 메모리 | 다섯 축 중 유일하게 기계 판정이 0인 축. 09와 10의 측정 도구 | 충족(02 완료) |
6063
| 04 | [legacySunset](04_legacySunset/README.md) | 클린코드 | 죽은 포맷 리더 두 벌이 05의 대상 파일을 두 배로 만든다 | 충족(02 완료) |
61-
| 05 | [commitIncremental](05_commitIncremental/README.md) | 속도, 메모리 | 계약을 안 바꾸고 여는 최대 항목. 커밋 비용이 누적 델타에 비례한다 | 04, 03의 메모리 예산 |
64+
| 05 | [commitIncremental](05_commitIncremental/README.md) | 속도, 메모리 | 계약을 안 바꾸고 여는 최대 항목. 커밋 비용이 누적 델타에 비례한다 | 04 (03은 완료) |
6265
| 06 | [moduleBoundaries](06_moduleBoundaries/README.md) | 모듈화, 폴더구조 | 타입 그래프가 값 그래프와 반대로 흐르고, 순수 집합이 손유지 목록이다 | 충족(02 완료) |
6366
| 07 | [bootPath](07_bootPath/README.md) | 속도, 클린코드 | 기본 부팅이 탭 전역으로 직렬화된다. 01의 patchScope 수리가 여는 자리 | 충족(01 완료) |
6467
| 08 | [kernelDecomposition](08_kernelDecomposition/README.md) | 클린코드 | 최대 파일에서 커밋 정책이 이미 두 벌로 갈렸다 | 04, 05 |
65-
| 09 | [heapReclaim](09_heapReclaim/README.md) | 메모리 | 워커당 힙 사본 1벌이 프로세스 OS의 지배적 비용이다. h0와 무관 | 03 |
68+
| 09 | [heapReclaim](09_heapReclaim/README.md) | 메모리 | 워커당 힙 사본 1벌이 프로세스 OS의 지배적 비용이다. h0와 무관 | 충족(03 완료) |
6669
| 10 | [h0Break](10_h0Break/README.md) | 속도, 메모리 | h0 지문에 닿는 것 전부. 브레이킹을 한 번으로 모은다 | 명시 릴리즈 지시 + attempts 실측 |
6770
| 11 | [attemptsSunset](11_attemptsSunset/README.md) | 폴더구조 | attempts 15폴더가 전부 살아 있다. 증식 금지 규칙의 미집행 부채 | 없음(언제든 병렬) |
6871

6972
## 의존 관계
7073

7174
```text
72-
03 -> 05, 09, 10 (메모리 예산 없이는 회수를 증명할 수 없다)
7375
04 -> 05 -> 08 (legacy 분리가 _liveKeys 교차점을 없앤 뒤 증분화, 그 뒤 분해)
7476
10 == 05(rebase) (h0 브레이킹은 한 커밋에 모은다. 나누면 두 번 깨진다)
7577
11 (독립)

0 commit comments

Comments
 (0)