aboutsummaryrefslogtreecommitdiffstats
path: root/docs/research/067-work-slot-layout.md
diff options
context:
space:
mode:
authoreunhhu <[email protected]>2026-09-24 17:14:54 +0100
committereunhhu <[email protected]>2026-09-24 17:14:54 +0100
commitb1ce1927022d374198441afafeb27199fc8a052a (patch)
tree6021f175f4c67ed03b44240eaa2f90d846f12f6f /docs/research/067-work-slot-layout.md
parentd34f9426d5317a1948f12f229439946728bc342a (diff)
downloadpure-b1ce1927022d374198441afafeb27199fc8a052a.tar.gz
pure-b1ce1927022d374198441afafeb27199fc8a052a.zip
Establish native micro runtime checkpoint
Diffstat (limited to 'docs/research/067-work-slot-layout.md')
-rw-r--r--docs/research/067-work-slot-layout.md46
1 files changed, 46 insertions, 0 deletions
diff --git a/docs/research/067-work-slot-layout.md b/docs/research/067-work-slot-layout.md
new file mode 100644
index 0000000..55097be
--- /dev/null
+++ b/docs/research/067-work-slot-layout.md
@@ -0,0 +1,46 @@
+# 067 — 작업 슬롯 8 B 절감, 실행 코드 증가 없음
+
+2026-09-24. Linux AArch64, GCC 14.2, C17 `-O2`; 첫 공개 체크포인트의
+반복 메모리 경계 수정이다. 현재 `PureWork`는 내부 저장 구조이며 ABI나
+디스크·네트워크 형식이 아니다.
+
+64 B 이름과 종단 NUL, 수명 티켓, 자원·결과·예산 필드를 그대로 둔 채
+필드 순서를 바꿨다. 같은 64비트 호스트에서 `sizeof(PureWork)`는
+**224→216 B**다. 1,024개 동시 작업 슬롯의 정적 배열이라면 정확히
+8,192 B를 덜 예약한다. 실제 서비스 RSS가 8,192 B 줄었다고 주장하지
+않는다. 유휴 앱은 이미 작업 슬롯을 분리하므로 이득은 활성 슬롯에만 있다.
+64비트 C 호스트에는 슬롯 216 B, 기본 영역 128 B, 계측 영역 200 B의
+컴파일 시 검사를 추가했다. 크기 상한 JSON도 216 B로 낮췄다.
+
+| Linux AArch64 결과 | 이전 | 현재 |
+|---|---:|---:|
+| 기본 코어 오브젝트 `text` | 5,980 B | 5,980 B |
+| 선택형 비동기 코어 오브젝트 `text` | 7,372 B | 7,328 B |
+| 기본 영역 / 활성 작업 슬롯 | 128 / 224 B | 128 / 216 B |
+| 소스 CLI / HTTP 링크 `text` | 35,863 / 43,978 B | 35,855 / 43,826 B |
+| 고정 CLI / HTTP 링크 `text` | 19,324 / 26,589 B | 19,316 / 26,437 B |
+| 고정 / 소스 TUI 링크 `text` | 32,079 / 48,684 B | 32,071 / 48,676 B |
+
+계측 프로필은 이 필드 배치에서 코어 오브젝트 `text` 5,968 B,
+영역 200 B다. 기본 코어보다 코드 섹션이 12 B 작게 나온 것은 이
+컴파일러의 코드 생성 결과일 뿐 계측 비용이 없다는 뜻이 아니다.
+기본 앱의 실제 1 MiB 편집 피크 RSS는 이번 Linux 검사에서 소스 CLI
+2,080 KiB, 고정 CLI 2,112 KiB, 고정/소스 TUI 3,168/3,200 KiB였다.
+이전 측정과의 인과적 RSS 차이는 주장하지 않는다.
+
+`make check-release`, `check-async`, `check-async-server`, `check-mirror`,
+`check-tui`, `check-source-tui`, `check-portable`을 통과했다. C 호스트를
+현재 소스와 기존 동일 해시의 Zig scalar 라이브러리로 다시 링크해
+작성 앱의 세 인스턴스 입력·상태·저장·복원·정의 교체도 통과했다.
+이 검사는 Zig 라이브러리를 새로 빌드한 증거가 아니다.
+
+[새 소스 묶음](../../prototypes/connections/results/2026-09-24-work-slot/pure-source-preview.tar.gz)은
+171개 파일, 334,267 B이고, [깨끗한 추출 검사](../../prototypes/connections/results/2026-09-24-work-slot/source-package-check.json)는
+C·실제 TUI·문서 RSS·수정한 정의·영역 간 1 MiB 전달·페이지 형식
+내보내기·선택형 TUI 패키지·Linux 릴리스 경로를 재실행했다.
+[소스 CLI](../../prototypes/connections/results/2026-09-24-work-slot/pure-document-source-cli-linux-aarch64.tar.gz),
+[고정 CLI](../../prototypes/connections/results/2026-09-24-work-slot/pure-document-fixed-cli-linux-aarch64.tar.gz),
+[고정 CLI+TUI](../../prototypes/connections/results/2026-09-24-work-slot/pure-document-fixed-cli-tui-linux-aarch64.tar.gz),
+[소스 CLI+TUI](../../prototypes/connections/results/2026-09-24-work-slot/pure-document-source-cli-tui-linux-aarch64.tar.gz)는
+각각 이동 후 실제 문서 작업을 통과했다. 압축 크기는 차례로 22,784,
+12,972, 32,119, 51,167 B다. macOS arm64 실행은 여전히 미검증이다.