← 목록
기타 2026-05-27 4KB 읽기 4분

한선씨 정통화 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.한선 자동 삭제
안전성: 회로방언/이미 .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_ARROW emit
  • B: 가져오기 시 RPN 파일을 hanseonc_std로 사전 컴파일
  • C (중기, 헌법 정합): RPN 정본 + 고수준 동반본 분리. 회로방언은 고수준 동반본만 가져오기
  • D: preprocess_imports에서 RPN 전역 선언 패턴(0 →이름)을 고수준 (변수 이름 = 0)으로 정규식 변환
권장: 단기 A + 중기 C. 트랙 C 변환 결과가 C 방향과 자연스럽게 부합.

트랙 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-anchor146,07662,41243%
trident336,924154,81246%
proxy450,912208,51646%
트라이던트159,74055,49635%
체인앵커114,63239,73235%
존동기화100,07227,21627%
평균 RPN 바이너리 크기는 고수준의 30~50% — 정통의 효율성 실증.

비율 변화

시점RPN고수준전체RPN%gateway RPN%
측정 시작 (오늘)186187520688%0%
Phase 1 완료187218123757%0%
Phase 2 완료205226024728%43%
전체 비율은 다른 세션의 고수준 파일 추가 속도와 경합 중 (시작 후 +404개 추가). gateway 영역에 집중하면 0% → 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 후보)

  1. 옵션 A 구현: hanseonc_high.c L596 토크나이저 분기 (3줄, 회로방언이 RPN 라이브러리 가져오기 가능)
  2. 다른 영역 일괄 변환: libs/ (54개 표준), pkg/libs/ (4개 하드웨어), transpile/ (39개 변환기) — 수백 개 잠재
  3. 실패 6개 진단: clike_to_rpn.py 미지원 패턴 식별 → 변환기 개선