aboutsummaryrefslogtreecommitdiffstats
path: root/docs/research/057-portable-native-terminal-check.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/research/057-portable-native-terminal-check.md')
-rw-r--r--docs/research/057-portable-native-terminal-check.md45
1 files changed, 45 insertions, 0 deletions
diff --git a/docs/research/057-portable-native-terminal-check.md b/docs/research/057-portable-native-terminal-check.md
new file mode 100644
index 0000000..116339e
--- /dev/null
+++ b/docs/research/057-portable-native-terminal-check.md
@@ -0,0 +1,45 @@
+# 057 — 같은 네이티브 문서 TUI의 휴대형 PTY 검증 경로
+
+첫 공개 체크포인트는 사용자가 주로 쓰는 Apple Silicon macOS에서 네이티브
+앱이 실행되어야 한다. 지금 작업 호스트는 Linux AArch64라서 macOS 실행을
+증명할 수 없다. 기존 `check-portable`은 C 단위 동작만 검사했고, 실제
+TUI 검사는 Linux `/proc` RSS를 반드시 읽었다. 이에 동일한 TUI 시나리오를
+유지하되 `/proc` 수치를 명시적으로 제외하는 `check-portable-tui` 경로를
+추가했다. 고정 정의와 소스 정의 TUI를 모두 실제 PTY에서 실행한다.
+
+```sh
+make -C prototypes/connections check-portable
+make -C prototypes/connections check-portable-tui
+```
+
+검사기는 설치된 UTF-8 로케일을 골라 자식 터미널에 지정한다. 휴대형 모드의
+RSS 필드는 `null`, 상한은 0이며 결과에 `portable: true`를 기록한다.
+기존 Linux 검사에서는 `/proc` 피크와 4,096 KiB 상한을 그대로 확인한다.
+
+| Linux AArch64에서 실제 실행한 경로 | 확인한 내용 |
+|---|---|
+| [고정 TUI 휴대형 PTY](../../prototypes/connections/results/2026-09-24-portable-tui/fixed-linux-aarch64.json) | 입력·다른 문서·한글 이동·크기 변경·충돌·1 MiB 편집·1,024개 목록·종료 후 터미널 복구 |
+| [소스 TUI 휴대형 PTY](../../prototypes/connections/results/2026-09-24-portable-tui/source-linux-aarch64.json) | 위 작업과 잘못된 정의 거부, `.pure` 필드 배치를 바꾼 뒤의 실제 편집 |
+| [고정 TUI Linux RSS 회귀](../../prototypes/connections/results/2026-09-24-portable-tui/fixed-linux-rss-regression.json) | 1 MiB 작업 피크 3,168 KiB, 기존 코드·메모리 상한 통과 |
+| [소스 TUI Linux RSS 회귀](../../prototypes/connections/results/2026-09-24-portable-tui/source-linux-rss-regression.json) | 1 MiB 작업 피크 3,664 KiB, 기존 코드·메모리 상한 통과 |
+
+새 [소스 묶음](../../prototypes/connections/results/2026-09-24-portable-source/pure-source-preview.tar.gz)은
+165개 파일, 압축 321,399B다. SHA-256은
+`5f1766fefe2c319d86c3ff57c881638a9d1ee24374dea33c614e25577d087814`이며
+다른 출력 경로에 다시 만든 묶음과 일치했다. [깨끗한 디렉터리 검사](../../prototypes/connections/results/2026-09-24-portable-source/source-check-linux-aarch64.json)는
+manifest의 모든 파일 해시, C17 검사, 고정·소스 TUI PTY 작업, 실제 문서
+작성·규칙 변경, Linux 릴리스 크기·RSS 검사를 통과했다.
+321,399B는 개발용 소스 배포 크기이며 실행물 크기나 상주 메모리가 아니다.
+이번 변경은 Python 검사기·Make·문서에 한정되어 C 런타임 실행 경로를
+키우지 않았다. 기본 코어와 선택형 TUI의 코드·RSS 상한은 각각 기존
+`check-release`, `check-tui`, `check-source-tui`로 분리해 검사한다.
+
+macOS에서 검증할 때는 이 소스 묶음을 풀어 위 두 `make` 명령을 실행해야
+한다. `check-portable-tui`가 macOS에서 통과했다는 결과는 **아직 없다**.
+PTY 시나리오도 IME 조합 입력이나 GUI 접근성 검사가 아니다. macOS 저장소의
+실제 APFS 동작과 전원 장애 내구성 역시 별도로 검증해야 한다. 현재 저장
+어댑터는 파일·디렉터리에 `fsync`를 사용한다. Apple의
+[fsync(2) 설명](https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/fsync.2.html)은
+드라이브 캐시까지 포함한 강한 쓰기 순서를 보장하려면 `F_FULLFSYNC`를
+구분해야 한다고 설명한다. 따라서 이 Linux 검사를 macOS의 강한 영속성
+증거로 해석하지 않는다.