크라우니 헌법 6561 — 성장반복 7 (2026-07-09)
개요
"계속 성장하는 헌법" 절차 7번째 반복. 이번 반복은 텍스트/신학적 조항이 아니라
헌법의
집행 파이프라인(RPN 변환기
tools/high2rpn.sh, RPN 컴파일러
hanseonc_rpn.c)에 대한 실제 코드 수정 + 컴파일 검증 + 재실행 검증까지 수행했다.
(스펙만이 아니라 실제 diff 적용, git 미추적 파일이라 diff는 없지만 Edit 이력은
이 세션 로그에 남아 있음.)
무엇을 했는지 (4상 판정)
- D6 게이트 부분보고 — 티(해소, 코드+검증)
- 근본원인:
hanseonc_rpn.c 555행("변수 한계 초과")·818행("미정의 라벨")이
fprintf만 하고
return/
exit 없이 계속 진행 → exit=0으로 빠짐.
- 수정:
tools/high2rpn.sh의
compile_gate()에
^\[오류\] 카운트 추가,
unknown_count>0 OR other_error_count>0이면 실패.
- 검증: 격리재현(
@없는라벨 점프)으로 rc 0→1 전환 확인. 정상파일 회귀 없음.
실전 파일에서 실제 결함 포착:
libs/XML.한선 재컴파일 시
[오류] 미정의 라벨: 끝18 실측 확인(이전엔 조용히 게이트 통과했을 상태).
- D3 중첩호출 이중보고 — 티(부분 해소)
-
compile_gate() 실패 메시지에
; [경고-미변환] 태그 개수를 함께 노출.
-
libs/양심지표.한선 전수 검증: 전체 47건 중 정확히 28건이 태그 4개에서
파생된 파편임을 확인(이전 반복 "약 28건" 추정을 정확히 재현·확정).
- D4 함수호이스팅 vs 전역변수 store-before-read — 티(부분 해소)
- 근본원인:
hanseonc_rpn.c 723/752행 —
→변수 STORE가 스캔되는 순간에만
vars[] 등록, bare LOAD가 그보다 먼저 스캔되면 실행순서 무관 "미인식 단어".
- 수정:
convert_file()에
global_tmp 버킷 신설 — 깊이0·리터럴 우변인
전역
변수 X=값만 함수 가드보다 먼저 중복 호이스팅(원본 유지, 안전).
- 검증:
양심지표.한선 미인식단어 47→42(5건 해소). 배열 리터럴(
_파워3)
2건은 의도적으로 범위 밖(다음 반복).
- D7 "생명존엄→초월겸손"/"벡터" 미인식 — 완전진단(옴/음 경계)
-
call_nesting_depth()/
resolve_calls()가 문자열 리터럴을 마스킹 없이
원문 스캔 →
"| 벡터(생명존엄→초월겸손): " 안의 "벡터(...)"를 진짜 호출로
오인. 관측된 깨진 출력과 글자단위 정확히 일치 확인. 수정은
resolve_calls
(핵심 공유함수) 위험 때문에 스펙만 남기고 다음 반복 이관.
- D8 bare
!= — 타(반증)
- 실측 3곳(436/476/525행) 중 2곳은 정상 변환됨(
다르다). 실패하는 1곳은
독립 버그가 아니라 D2(배열인덱싱-비교식) 파생 증상 — D8 폐기, D2로 통합.
관련 파일
/Users/ef/Downloads/CrownyTVM/CROWNY-CONSTITUTION-6561.md (부칙5에 성장반복7 절 추가)
/Users/ef/CrownyOS/crownyc/tools/high2rpn.sh (compile_gate, resolve_calls 관련 3곳 수정)
/Users/ef/CrownyOS/crownyc/hanseonc_rpn.c (근본원인 확인용 읽기만, 이번 반복은 수정 안 함)
/Users/ef/CrownyOS/crownyc/libs/양심지표.한선, libs/XML.한선 (검증 대상)
잔여 이슈 (정직하게 미해결)
- resolve_calls의 문자열 마스킹 미적용 콜 오탐(D7) — 코드 수정 미착수
- 전역상수 호이스팅의 배열 리터럴 확장(D4 잔여 2건)
libs/XML.한선의 "미정의 라벨: 끝18" 자체 근본원인 — 게이트가 포착만 했고 원인 미조사
- D1(단일라인 아니면)·D9(게이트 배선)·D10(회귀스위트 확장)·D11(자기보고)·D12(전수회귀) 전부 불변
- 844+ 파일 전수 회귀는 여전히 없음(표본 8개 파일만 확인)