RPN 정본화 배치 3/3 (크라우니워드프로세서)
개요
crowny-word 도구/연결/앱 20개 파일에 대해 고수준(.한선) → RPN(.rpn.한선) 정본화 변환 및 검증 수행.
절차: ①hanseonc_high 컴파일+실행 기준치 채취 ②tools/high2rpn.sh 변환 ③hanseonc_rpn 컴파일 ④crownyc run(20s 타임아웃) ⑤수치 비교.
결과: 11/20 합격 (55%)
PASS (11)
| 파일 | 검사 |
|---|
| 도구/문서통계확장.rpn.한선 | PASS 21/21 |
| 도구/다단계목록.rpn.한선 | PASS 46/46 |
| 도구/필드자동.rpn.한선 | PASS 28/28 |
| 도구/문서보호.rpn.한선 | PASS 22/22 |
| 도구/인용참고문헌.rpn.한선 | PASS 34/34 |
| 도구/색인생성.rpn.한선 | PASS 31/31 |
| 도구/워터마크배경.rpn.한선 | PASS 30/30 |
| 도구/표스타일.rpn.한선 | PASS 29/29 |
| 도구/문서템플릿.rpn.한선 | PASS 30/30 |
| 도구/접근성언어.rpn.한선 | PASS 42/42 |
| 앱/워드벡터앱.rpn.한선 | PASS 37/37 (변환에 30s+ 소요 — 시스템 부하로 1차 30s 타임아웃 컷, 180s 재시도로 성공. 실제 변환기 결함 아님) |
FAIL (9) — 원인별
1) 다중행 배열 리터럴 미지원 (1건)
도구/매크로기록 — 반환 ["삽입", "백스페이스", ... ]가 2줄에 걸쳐 있어 high2rpn.sh의 배열리터럴 정규식(단일라인 전제)이 인식 못함. 미인식 단어 10건.
2) 기타 미인식 단어/컴파일게이트 실패 (2건)
도구/찾기고급 — 미인식 단어 6건 + 기타[오류] 2건("스" 등), tr: Illegal byte sequence 부수 경고.
도구/버전비교 — 미인식 단어 6건: 전체/통과/아니면/{/=/} (else-if 체인 또는 유사 구조 관련 변환 누락 추정).
3) 변환기 자체 버그 — bash 3.2 배열 unbound variable (6건, 연결/ 전체)
./tools/high2rpn.sh: line 156: _SEEN_LIBS[@]: unbound variable
- 근본원인: macOS 기본
/bin/bash가 3.2.57(구버전)이며, set -u 하에서 "${_SEEN_LIBS[@]}"(빈 배열) 순회 시 unbound variable 에러 발생(bash 3.2 알려진 결함, bash 4.4+에서는 정상). 스크립트 자체 주석(66행)이 이 패턴을 "절대 쓰지 말라"고 명시하는데도 _SEEN_LIBS 처리(176~184행, import 중복방지 BFS)에서 그대로 사용됨.
- 트리거 조건: 소스에
가져오기 "..." 문이 하나라도 있으면 100% 재현. 실측: 도구/ 13개 파일은 전부 가져오기 0건이라 우회, 연결/ 6개 파일은 전부 가져오기 "셀코어" 1건씩 있어 전부 실패.
- 해당 실패 파일:
연결/도구레지스트리, 연결/명령셀라우터, 연결/입력셀상태기계, 연결/서식셀규칙, 연결/문서셀검증, 연결/워드셀통합 (전부 baseline만 정상 확인, 33~37 PASS 등, 변환 단계에서 전량 컷).
가드레일에 따라 변환기(tools/high2rpn.sh)와 원본 .한선은 수정하지 않음. 1회 재시도 후 동일 실패 확인하고 기록.
관련 파일
- 신규 생성 .rpn.한선 (11개):
/Users/ef/crowny-word/도구/{다단계목록,필드자동,문서보호,인용참고문헌,색인생성,워터마크배경,표스타일,문서템플릿,접근성언어,문서통계확장}.rpn.한선, /Users/ef/crowny-word/앱/워드벡터앱.rpn.한선
- 변환기:
/Users/ef/CrownyOS/crownyc/tools/high2rpn.sh (미수정, 버그 관찰만)
- 컴파일러:
/Users/ef/CrownyOS/crownyc/hanseonc_rpn, /Users/ef/CrownyOS/crownyc/hanseonc_high, /Users/ef/CrownyOS/crownyc/crownyc
잔여 이슈 (다음 세션 조치 필요)
- high2rpn.sh
_SEEN_LIBS[@] bash 3.2 버그 수정 — for s in "${_SEEN_LIBS[@]}" → (( ${#_SEEN_LIBS[@]} > 0 )) 가드 추가 또는 ${_SEEN_LIBS[@]:-} 형태로 방어. 이 한 줄 수정이면 연결/ 6개 파일 전부(그리고 가져오기를 쓰는 모든 미래 파일) 일괄 해소 가능 — 우선순위 높음.
- 다중행 배열 리터럴 지원 —
도구/매크로기록처럼 개행 포함 배열 리터럴 파싱 로직 보강 필요.
- 찾기고급/버전비교 미인식 단어 원인 조사 — else-if 체인/특정 토큰 조합 관련 변환 누락 추정, 개별 라인 단위 재현 필요.
- 위 수정은 변환기(tools/high2rpn.sh) 자체 수정이 필요해 이번 배치 가드레일(변환기 수정 금지) 밖 — 별도 세션/승인 하에 처리.
참고
- 시스템 부하: 세션 실행 중
ps aux로 확인 시 crownyc/high2rpn.sh 프로세스 다수 동시 실행 중(다른 배치 세션들, 도형글상자/한글입력조합 등) — 워드벡터앱 1차 실패는 이 부하로 인한 30s 스크립트 타임아웃(진짜 변환 실패 아님, 180s 재시도로 확인 PASS).