aboutsummaryrefslogtreecommitdiffstats
path: root/docs/research/070-micro-default-build.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/070-micro-default-build.md
parentd34f9426d5317a1948f12f229439946728bc342a (diff)
downloadpure-b1ce1927022d374198441afafeb27199fc8a052a.tar.gz
pure-b1ce1927022d374198441afafeb27199fc8a052a.zip
Establish native micro runtime checkpoint
Diffstat (limited to 'docs/research/070-micro-default-build.md')
-rw-r--r--docs/research/070-micro-default-build.md31
1 files changed, 31 insertions, 0 deletions
diff --git a/docs/research/070-micro-default-build.md b/docs/research/070-micro-default-build.md
new file mode 100644
index 0000000..33b8408
--- /dev/null
+++ b/docs/research/070-micro-default-build.md
@@ -0,0 +1,31 @@
+# 070 — 기본 빌드의 비용 경계
+
+2026-09-24. Linux AArch64, GCC 14.2, C17 `-O2`. 마이크로 런타임의 기본 빌드가
+선택형 기능을 실수로 끌어오지 않도록 `make all`을 코어와 고정 정의 CLI로 제한했다.
+`editor.pure`를 빌드할 때 준비하는 작은 컴파일러 실행물도 생성되지만, 완성된
+CLI에는 링크하거나 배포하지 않는다. 실행 중 `.pure`를 읽고 바꾸는 CLI는
+`make editor`, HTTP는 `make server`, TUI와 인증 피어도 각각 명시적 선택이다.
+
+깨끗한 소스에서 기본 `make`를 실행했을 때 빌드 디렉터리에는
+`runtime.o`, `libpure-execution.a`, `pure-compile`, `embedded-plan.h`,
+`pure-edit-fixed`만 있었다. 새 [소스 묶음](../../prototypes/connections/results/2026-09-24-micro-default/pure-source-preview.tar.gz)을
+다른 디렉터리에 풀어 같은 목록을 검사하고, CLI·TUI의 실제 PTY 작업,
+1 MiB 문서 RSS, 소스 정의 수정, Linux 릴리스 검사를 다시 실행했다.
+[추출 검사 결과](../../prototypes/connections/results/2026-09-24-micro-default/source-package-check.json)에
+재현 경로를 기록했다.
+
+| 비용 | 기본 고정 실행 경로 | 소스 읽기 선택 경로 |
+|---|---:|---:|
+| 코어 `text` | 4,632 B | 동일 |
+| 문서 CLI 링크 `text` | 19,268 B | 36,135 B |
+| 1 MiB 문서 편집 피크 RSS | 2,112 KiB | 2,080 KiB |
+
+이 변경은 링크 코드와 기본 의존성 선택을 줄였으며, RSS 개선을 입증한 것은 아니다.
+측정된 RSS는 오히려 고정 CLI 쪽이 32 KiB 높았고 실행·페이지 배치의 변동과
+분리할 근거가 없다. 코어 `text`와 120 B 유휴 영역, 216 B 작업 슬롯은
+변하지 않았다. 두 CLI의 직접 동적 라이브러리 의존성은 이 호스트에서 libc 하나다.
+빌드용 컴파일러, libc, 스택과 저장 파일 비용을 코어 수치에 포함하지 않았다.
+
+이후 앱 기능은 기본 코어에 넣기 전에 필수 의미론인지 확인하고, 선택한
+실행물의 링크 코드·실제 전체 메모리·배포 묶음 비용을 별도로 검사한다.
+선택형 어댑터의 기능을 기본 빌드에 추가할 때는 같은 검사를 다시 통과해야 한다.