CrownyTVM std/ 컴파일 오류 수정 — 최종 보고
개요
/Users/ef/Downloads/CrownyTVM/std/ 디렉토리의 79개 .han 파일 중 54개가 hanseonc_high로 컴파일 실패했음.
2세션에 걸쳐 50개 수정 완료, 4개 수정 불가.수정 결과
수정 완료 (50개)
7개 카테고리로 분류하여 수정:카테고리 1-2 (15개) — 이전 세션
- JSON키목록 인라인 정의, 파라미터명 충돌
상수→변수,__내장__→ 내장함수, 배열 설정 패턴
각각 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] = val→arr = 설정(arr, i, val){"key": val}dict 리터럴 →[val, ...]배열obj.field→obj[N]배열 인덱스티/타/옴→참/거짓/0맵키목록(m)→ 배열 형태로 변환현재시간()→현재시각()파일읽어()→읽기()
엔진.han— 전면 재작성 (의도추출+셀넷 엔진)추론엔진.han—가져오기 "엔진"추가추론체인.han—가져오기 "엔진"추가sys.han—__sys__래퍼를 내장함수로 교체문자열.han—__내장__래퍼를 내장함수로 교체크라우니코드.han—맵키목록→ 배열 변환크라우니코드_대화.han—맵키목록3곳 + 196줄 배열 변환한선기계어.han—__내장__(30)+__sys__수정tri.han—arr[i] = val6곳 수정시드생성.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) 방식으로 유지하는 방안을 검토 필요.