aboutsummaryrefslogtreecommitdiffstats
path: root/docs/research/070-micro-default-build.md
blob: 33b84086a2aef941f069adfd06d0e9eff04934af (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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, 스택과 저장 파일 비용을 코어 수치에 포함하지 않았다.

이후 앱 기능은 기본 코어에 넣기 전에 필수 의미론인지 확인하고, 선택한
실행물의 링크 코드·실제 전체 메모리·배포 묶음 비용을 별도로 검사한다.
선택형 어댑터의 기능을 기본 빌드에 추가할 때는 같은 검사를 다시 통과해야 한다.