← 목록
기타 2026-07-12 6KB 읽기 6분

RPN 정본화 배치 4 — 잔여 22파일 (크라우니워드프로세서)

개요

crowny-word 도구/연결 잔여 22개 파일에 대해 고수준(.한선) → RPN(.rpn.한선) 정본화 변환 및 검증 수행. 변환기: tools/high2rpn.sh 3차 수술 반영판(7/12 15:43 빌드, _SEEN_LIBS[@] bash 3.2 언바운드 수정 + 멀티라인 배열리터럴 지원 포함). 절차: ①hanseonc_high로 원본 컴파일+실행(perl alarm 20s) 기준치 채취 ②tools/high2rpn.sh 변환(perl alarm 120s, 내부 컴파일게이트 포함) ③hanseonc_rpn 컴파일 ④crownyc run(20s 가드) ⑤"검사: PASS n/n" 수치 문자열 정확 비교. 실패 1회 재시도(단, 연결/ 임포트 카테고리는 1회만).

결과: 15/22 PASS (68.2%)

PASS (15) — 도구/

파일검사
도구/문서파일.rpn.한선PASS 14/14
도구/키맵명령.rpn.한선PASS 28/28
도구/한글입력조합.rpn.한선PASS 25/25
도구/선택하이라이트.rpn.한선PASS 33/33
도구/스크롤뷰포트확장.rpn.한선PASS 34/34
도구/머리글바닥글.rpn.한선PASS 30/30
도구/주석변경추적.rpn.한선PASS 27/27
도구/수식표현.rpn.한선PASS 39/39
도구/RTF내보내기.rpn.한선PASS 35/35 (구버전 high2rpn.sh에서 이스케이프 브레이스 미인식 37건으로 실패했던 파일 — 3차 수술 이후 정상 변환 확인)
도구/마크다운왕복.rpn.한선PASS 40/40
도구/텍스트가져오기.rpn.한선PASS 25/25
도구/메일머지.rpn.한선PASS 32/32
도구/매크로기록.rpn.한선PASS 33/33 (구버전에서 다중행 배열리터럴 미지원으로 실패했던 파일 — 3차 수술 이후 정상 변환 확인)
도구/찾기고급.rpn.한선PASS 36/36 (구버전 미인식단어 6건으로 실패했던 파일 — 3차 수술 이후 정상 변환 확인)
도구/버전비교.rpn.한선PASS 33/33 (구버전 미인식단어 6건으로 실패했던 파일 — 3차 수술 이후 정상 변환 확인)

FAIL (7) — 원인별

1) RPN 컴파일러(hanseonc_rpn) float 리터럴 정밀도 결함 (1건)

  • 도구/PDF텍스트 — 자체시험 36건 중 MM을PT_A4폭 1건만 불일치(실제=420, 기대=595). 원본 함수 MM을PT(mm){ 반환 mm * 2.834645669 }가 RPN에서는 210 2.834645669 곱해로 정확히 변환됐으나(high2rpn.sh 변환 자체는 정상), hanseonc_rpn 실행 결과가 210×2=420이 나옴 — 소수점 리터럴 2.834645669가 정수 2로 절단 파싱되는 것으로 추정(hanseonc_rpn.c에 strtod/atof 계열 float 리터럴 파서 부재 확인, 2>&1류 truncation과 유사한 RPN 계산코어 한계). 1회 재시도 동일 결과. hanseonc_high(원본 고수준 경로)는 정상 계산(595). 산출물(PDF텍스트.rpn.한선)은 가드레일에 따라 삭제.
2) 변환기 불가 판정 — 연결/ 전체, 가져오기 "셀코어" 임포트 (6건)
  • 연결/도구레지스트리, 연결/명령셀라우터, 연결/입력셀상태기계, 연결/서식셀규칙, 연결/문서셀검증, 연결/워드셀통합 — 전부 가져오기 "셀코어" 1건씩 사용. 이전 배치(2026-07-12-RPN정본화-배치3)에서 발견된 _SEEN_LIBS[@] bash 3.2 언바운드 버그는 3차 수술로 해소됐으나, 임포트 자체가 여전히 근본적으로 실패: 셀코어.한선(1414줄 대형 라이브러리)을 인라인 변환하는 과정에서 미인식 단어 750~794건 + 기타[오류] 111~189건(파일당)이 쏟아짐(=, 없나, 없음 등 라이브러리 내부 구문이 단일라인 정규식 기반 변환기 처리범위를 초과). 6개 파일 전부 100% 동일 실패 패턴(모두 셀코어 임포트 1건씩만 있고 나머지 구조는 상이한데도 동일 규모로 실패) 확인 → 가드레일 지시대로 파일당 1회만 시도하고 사유를 "변환기 불가 판정"으로 명기. 원본/변환기 모두 미수정.
가드레일에 따라 변환기(tools/high2rpn.sh, hanseonc_rpn)와 원본 .한선은 수정하지 않음.

관련 파일

  • 신규 생성 .rpn.한선 (15개): /Users/ef/crowny-word/도구/{문서파일,키맵명령,한글입력조합,선택하이라이트,스크롤뷰포트확장,머리글바닥글,주석변경추적,수식표현,RTF내보내기,마크다운왕복,텍스트가져오기,메일머지,매크로기록,찾기고급,버전비교}.rpn.한선
  • 변환기: /Users/ef/CrownyOS/crownyc/tools/high2rpn.sh (미수정, 3차 수술 반영판 그대로 사용)
  • 컴파일러: /Users/ef/CrownyOS/crownyc/hanseonc_rpn(.c), /Users/ef/CrownyOS/crownyc/hanseonc_high, /Users/ef/CrownyOS/crownyc/crownyc

잔여 이슈 (다음 세션 조치 필요)

  1. hanseonc_rpn float 리터럴 파싱 결함hanseonc_rpn.c에 strtod 계열 소수점 파서가 없는 것으로 보임(정수부만 파싱해 절단). 2.8346456692. PDF텍스트뿐 아니라 소수 리터럴을 쓰는 모든 RPN 변환 대상에 잠재 영향. 별도 세션에서 hanseonc_rpn.c 렉서 수정 필요(이번 배치 가드레일 밖).
  2. 가져오기 임포트 지원 자체가 high2rpn.sh 아키텍처 한계 — 셀코어처럼 큰 라이브러리를 가져오는 파일은 단일라인 정규식 변환기로 근본적으로 불가. 별도 세션에서 (a) 임포트 파일은 변환 대상에서 제외하고 라이브러리 경로만 RPN 문자열로 유지하는 방식, 또는 (b) high2rpn.sh에 멀티라인/구조체 파싱기를 별도로 얹는 방식 검토 필요.

참고

  • 동일 세션 스크래치패드에 이전(다른 세션) 배치 결과 잔재(batch_results.psv 등, DOCX조각/CWD포맷v2/HTML왕복/각주미주/개요문서지도 대상, 7/12 12:48 시각, 현재 high2rpn.sh보다 이전 버전)가 있었으나 이번 22파일 대상과 겹치는 건 없어(RTF내보내기·PDF텍스트만 이름이 겹쳤고 실제로는 이번 3차 수술판으로 재검증) 무시하고 전량 신규 실측함.