diff options
| author | eunhhu <[email protected]> | 2026-09-24 17:14:54 +0100 |
|---|---|---|
| committer | eunhhu <[email protected]> | 2026-09-24 17:14:54 +0100 |
| commit | b1ce1927022d374198441afafeb27199fc8a052a (patch) | |
| tree | 6021f175f4c67ed03b44240eaa2f90d846f12f6f /docs/research/047-bounded-native-document-browser.md | |
| parent | d34f9426d5317a1948f12f229439946728bc342a (diff) | |
| download | pure-b1ce1927022d374198441afafeb27199fc8a052a.tar.gz pure-b1ce1927022d374198441afafeb27199fc8a052a.zip | |
Establish native micro runtime checkpoint
Diffstat (limited to 'docs/research/047-bounded-native-document-browser.md')
| -rw-r--r-- | docs/research/047-bounded-native-document-browser.md | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/docs/research/047-bounded-native-document-browser.md b/docs/research/047-bounded-native-document-browser.md new file mode 100644 index 0000000..ee6b45e --- /dev/null +++ b/docs/research/047-bounded-native-document-browser.md @@ -0,0 +1,46 @@ +# 047 — 저메모리 네이티브 편집기에서 문서 찾기 + +고정 정의 TUI는 키를 알고 있으면 다른 문서를 열 수 있었지만, 저장된 키를 +찾는 방법이 없었다. 그래서 실제 앱에서 이미 만든 문서를 다시 선택하려면 +외부 파일 목록을 봐야 했다. 편집기의 **Ctrl+L 문서 목록**을 저장소 호스트에 +추가했다. 화살표·Home·End로 이동하고 Enter로 연다. Ctrl+O는 새 키 입력을 +계속 담당한다. 미저장 초안이 있으면 목록으로 전환하지 않는다. + +목록은 저장소 디렉터리의 `obj-KEY` 이름을 한 번 읽어 정렬한 스냅샷이다. +한 키에 65 B를 사용하고 8,192개(최대 532,480 B)에서 멈춘다. 한도를 넘거나 +디렉터리 읽기에 실패하면 불완전한 목록을 보여주지 않고 기존 문서를 유지한다. +목록을 닫으면 배열을 해제한다. 삭제된 키를 선택해도 새 빈 문서로 조용히 +전환하지 않고 오류를 보여준다. 실제 본문을 열 때는 기존 런타임의 검증된 +READ 경로를 통과한다. 코어·저장 형식·작성 언어·고정 실행 계획은 바뀌지 않았다. + +[실제 PTY 검사](../../prototypes/connections/results/2026-09-24-terminal-document-list/tui.json)는 +문서 전환, 초안 보호, 목록 이후 삭제된 키, 1 MiB 편집을 확인한다. 별도 +저장소에 **1,024개 실제 문서**를 CLI로 만들고 TUI의 정렬된 목록에서 마지막 +키를 열었다. 같은 경로의 [ASan·UBSan 실행](../../prototypes/connections/results/2026-09-24-terminal-document-list/sanitized.json)도 +통과했다. LeakSanitizer는 검사 환경의 ptrace 제약으로 껐다. + +| Linux AArch64 / GCC 14 | 앞선 TUI | 문서 목록 포함 TUI | +|---|---:|---:| +| 링크된 `text` | 28,762 B | 31,303 B | +| 링크된 `data` | 988 B | 1,036 B | +| 1 MiB 문서 편집 피크 RSS | 3,168 KiB | 2,832 KiB | +| 1,024키 목록 피크 RSS | 미측정 | 1,856 KiB | +| CLI+TUI 압축 묶음 | 34,216 B | 35,642 B | +| CLI+HTTP+TUI 압축 묶음 | 51,844 B | 53,385 B | + +[TUI 코드 섹션 상한](../../prototypes/connections/results/2026-09-24-terminal-document-list/profile.json)은 +기능을 확인한 뒤 29,696→32,768 B로 검토해 높였다. 결합 묶음의 상한도 +53,248→54,272 B로 높였고 CLI 전용 16,384 B 상한은 유지했다. 이번 +[CLI 전용 묶음](../../prototypes/connections/results/2026-09-24-terminal-document-list/cli-check.json)은 +14,706 B다. 새 [CLI+TUI](../../prototypes/connections/results/2026-09-24-terminal-document-list/cli-tui-check.json)와 +[CLI+HTTP+TUI](../../prototypes/connections/results/2026-09-24-terminal-document-list/cli-http-tui-check.json)는 +모두 다른 위치에 풀어 실제 명령·PTY·HTTP를 실행했다. 이 압축 크기는 libc나 +실행 메모리가 아니다. RSS 값은 서로 다른 한 번의 실행에서 관찰한 값이며 +목록 추가로 1 MiB 편집 메모리가 줄었다는 증거가 아니다. 두 경우 모두 기존 +4 MiB 회귀 상한 안에 있다. + +목록은 편집 중 스토어 변화를 자동 추적하지 않는다. Ctrl+L로 다시 읽을 수 있고, +키를 여는 순간 본문과 버전을 다시 검증한다. 8,192개를 넘는 대형 저장소에는 +페이지 탐색이나 검색 색인이 필요하다. 이 선택 UI의 목록은 그런 범용 색인으로 +주장하지 않는다. `.pure` 정의 작성은 기존 별도 작성 호스트의 책임이므로 +고정 실행 TUI에 파서와 컴파일러를 링크하지 않았다. |
