← 목록
기타 2026-04-25 3KB 읽기 3분

CrownyTVM std/ 컴파일 오류 수정 — 최종 보고

개요

/Users/ef/Downloads/CrownyTVM/std/ 디렉토리의 79개 .han 파일 중 54개가 hanseonc_high로 컴파일 실패했음. 2세션에 걸쳐 50개 수정 완료, 4개 수정 불가.

수정 결과

수정 완료 (50개)

7개 카테고리로 분류하여 수정:

카테고리 1-2 (15개) — 이전 세션

  • JSON키목록 인라인 정의, 파라미터명 충돌
카테고리 3 (8개) — 이전 세션
  • 상수변수, __내장__ → 내장함수, 배열 설정 패턴
카테고리 4+ (27개) — 이번 세션 포함
  • 각각 X 에서 Y동안 루프
  • __내장__(30, x)길이(x) / 글자수(x)
  • __내장__(37, s, t)포함(s, t)
  • __내장__(33, x)문자열변환(x)
  • __내장__(50, x)숫자변환(x)
  • __내장__(10)현재시각()
  • __sys__("파일쓰기", p, c)쓰기(p, c)
  • __sys__("파일읽기", p)읽기(p)
  • arr[i] = valarr = 설정(arr, i, val)
  • {"key": val} dict 리터럴 → [val, ...] 배열
  • obj.fieldobj[N] 배열 인덱스
  • ///거짓/0
  • 맵키목록(m) → 배열 형태로 변환
  • 현재시간()현재시각()
  • 파일읽어()읽기()
이번 세션 주요 수정 파일:
  • 엔진.han — 전면 재작성 (의도추출+셀넷 엔진)
  • 추론엔진.han가져오기 "엔진" 추가
  • 추론체인.han가져오기 "엔진" 추가
  • sys.han__sys__ 래퍼를 내장함수로 교체
  • 문자열.han__내장__ 래퍼를 내장함수로 교체
  • 크라우니코드.han맵키목록 → 배열 변환
  • 크라우니코드_대화.han맵키목록 3곳 + 196줄 배열 변환
  • 한선기계어.han__내장__(30) + __sys__ 수정
  • tri.hanarr[i] = val 6곳 수정
  • 시드생성.han__내장__ + __sys__ + arr[i]=val 전면 수정

수정 불가 (4개)

VM 구현 파일로 스택 배열에 대한 pervasive한 인덱스 대입이 수백 곳에 분포:
  • 크라우니VM.han — 255개 에러 (스택 VM)
  • isa729코드젠.han — 255개 에러 (ISA729 코드젠)
  • 한선VM.han — 84개 에러 (한선씨 VM)
  • isa729vm.han — 66개 에러 (ISA729 VM)
근본 원인: 스택[sp] = val, 레지스터[n] = val 등 VM 레지스터/스택 패턴은 모든 인스트럭션 처리 루프에 산재해 있어 설정() 변환이 실질적으로 불가능. (각 명령 처리마다 스택 = 설정(스택, sp, val) 로 재할당해야 하나 변수 스코프 문제)

관련 파일 경로

  • 소스: /Users/ef/Downloads/CrownyTVM/std/*.han (79개)
  • 컴파일러: /Users/ef/CrownyOS/crownyc/hanseonc_high

잔여 이슈

4개 VM 파일은 hanseonc_high에서 지원하지 않는 배열 인덱스 대입(arr[i] = val)을 VM 핵심 루프에서 광범위하게 사용하므로 구조적 재작성 없이는 수정 불가. 향후 hanseonc_high에서 arr[i] = val 직접 대입을 지원하거나, VM 파일을 RPN(hanseonc_std) 방식으로 유지하는 방안을 검토 필요.