From b1ce1927022d374198441afafeb27199fc8a052a Mon Sep 17 00:00:00 2001 From: eunhhu Date: Thu, 24 Sep 2026 17:14:54 +0100 Subject: Establish native micro runtime checkpoint --- .../research/057-portable-native-terminal-check.md | 45 ++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 docs/research/057-portable-native-terminal-check.md (limited to 'docs/research/057-portable-native-terminal-check.md') 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의 강한 영속성 +증거로 해석하지 않는다. -- cgit v1.2.3