한선씨 정통화 Phase 2 — 3트랙 병행 (대량 변환 + 근본 진단)
날짜: 2026-05-27 원칙: 헌법 정통(RPN=ISA729 1:1), 사람 속도, 크라우니에이전트 규칙 준수 범위: 대량 정통화 인프라 + 가져오기 충돌 근본 진단 + gateway 영역 변환
결과 요약
| 트랙 | 결과 | 산출물 |
|---|---|---|
| A: --batch/--convert 인프라 | ✅ 완료 | 한선컴파일.sh 옵션 2개 추가 |
| B: 가져오기 충돌 근본 진단 | ✅ 완료 | 원인+옵션 4개 (메모리 기록) |
| C: gateway 18개 일괄 변환 | ✅ 완료 | gateway/lib 16개 + scripts 2개 .rpn.한선 |
트랙 A — 한선컴파일.sh 일괄 변환 인프라
scripts/한선컴파일.sh에 두 옵션 추가:
--dry-run <디렉토리>: 모드 분포 통계 + 미보유 고수준 후보 목록--convert <디렉토리>: 일괄 변환 (clike_to_rpn) + 양쪽 컴파일 검증 + 학습DB 자동 등록 + 실패 시 .rpn.한선 자동 삭제
트랙 B — 가져오기 충돌 근본 진단
근본 원인: hanseonc_high.c L596 is_ident_char() 가 0x80+ 모든 바이트를 식별자로 허용. →(E2 86 92)의 첫 바이트 E2가 식별자에 흡수되어 →_시뮬_최대틱 전체가 단일 TOK_IDENT가 됨 → 미정의 변수 오류.
해결 옵션:
- A (단기, 3줄 수정):
is_ident_char에 E2 86 92 분기 →TOK_ARROWemit - B: 가져오기 시 RPN 파일을 hanseonc_std로 사전 컴파일
- C (중기, 헌법 정합): RPN 정본 + 고수준 동반본 분리. 회로방언은 고수준 동반본만 가져오기
- D: preprocess_imports에서 RPN 전역 선언 패턴(
0 →이름)을 고수준 (변수 이름 = 0)으로 정규식 변환
트랙 C — gateway 영역 18개 일괄 변환
--convert 적용 결과:
gateway/lib (19 시도 / 16 성공)
- 성공 16개: 게이트웨이_테스트, proxy, shield, chain-anchor, 에러페이지, middleware, 체인앵커, config, trident, ssl, domain-registry, peers, error-pages, 프록시, 게이트웨이모니터, 트라이던트
- 실패 3개: gateway.한선, 게이트웨이.한선, gateway.han (clike_to_rpn 미지원 패턴 추정)
gateway/scripts (5 시도 / 2 성공)
- 성공 2개: 게이트웨이감시, 존동기화
- 실패 3개: 순도측정, health-monitor, cert-manager
RPN 효율성 실증
| 파일 | 고수준 (B) | RPN (B) | RPN/고수준 |
|---|---|---|---|
| chain-anchor | 146,076 | 62,412 | 43% |
| trident | 336,924 | 154,812 | 46% |
| proxy | 450,912 | 208,516 | 46% |
| 트라이던트 | 159,740 | 55,496 | 35% |
| 체인앵커 | 114,632 | 39,732 | 35% |
| 존동기화 | 100,072 | 27,216 | 27% |
비율 변화
| 시점 | RPN | 고수준 | 전체 | RPN% | gateway RPN% |
|---|---|---|---|---|---|
| 측정 시작 (오늘) | 186 | 1875 | 2068 | 8% | 0% |
| Phase 1 완료 | 187 | 2181 | 2375 | 7% | 0% |
| Phase 2 완료 | 205 | 2260 | 2472 | 8% | 43% |
변경된 파일
/Users/ef/CrownyOS/crownyc/scripts/한선컴파일.sh --dry-run, --convert 추가
/Users/ef/crowny-gateway/lib/*.rpn.한선 16개 신규 (RPN 정본)
/Users/ef/crowny-gateway/scripts/*.rpn.한선 2개 신규
다음 단계 (Phase 3 후보)
- 옵션 A 구현:
hanseonc_high.cL596 토크나이저→분기 (3줄, 회로방언이 RPN 라이브러리 가져오기 가능) - 다른 영역 일괄 변환:
libs/(54개 표준),pkg/libs/(4개 하드웨어),transpile/(39개 변환기) — 수백 개 잠재 - 실패 6개 진단: clike_to_rpn.py 미지원 패턴 식별 → 변환기 개선