hanseonc_high 컴파일러 — __내장__ / __sys__ 특수 함수 지원
개요
hanseonc_high 컴파일러에 CrownyTVM 호환 특수 함수 __내장__과 __sys__를 추가하여,
std/ 디렉토리의 4개 VM 파일(660+ 에러)이 전부 컴파일 가능해짐.
무엇을 했는지
1. __내장__(opcode, args...) 지원
- 첫 인자를 opcode 번호로 파싱
- 나머지 인자를 스택에 push
- 해당 opcode를 직접 emit
- 용도:
__내장__(30, x)→ 길이 opcode,__내장__(52, x)→ 문자열변환 opcode
2. __sys__("이름", args...) 지원
- 80+ 시스콜 이름 → opcode 매핑 테이블 (static const)
- 카테고리: 파일(15개), DB(7개), 네트워크(10개), 스레드(6개), 인증(7개), 암호화(6개), 웹소켓(5개), 블록체인(2개) 등
- 트랜잭션은 특수 처리: 이름에서 sub-opcode(0/1/2) 자동 push → opcode 269 emit
- 미지원 이름은 경고 출력 + NOP
3. 결과
- std/ 80개 파일: 80/80 컴파일 성공 (이전 76/80)
- 해결된 파일: 크라우니VM.han(95에러→0), isa729코드젠.han(156→0), isa729vm.han(3→0), 한선VM.han(84→0)
- TOAU 바이너리 정상 생성 (크라우니VM: 455KB, isa729vm: 126KB)
4. 한선씨 동반
한선씨/시스콜테이블.한선— 60+ 시스콜 이름→opcode 매핑 + 트랜잭션 코드 + 테스트- 크라우니코드 학습DB에
컴파일러__내장__지원,컴파일러__sys__지원패턴 등록
관련 파일
/Users/ef/CrownyOS/crownyc/hanseonc_high.c(3434줄 → ~3530줄, +96줄)/Users/ef/CrownyOS/crownyc/한선씨/시스콜테이블.한선(신규)/Users/ef/Downloads/CrownyTVM/std/크라우니VM.han(컴파일 가능해짐)/Users/ef/Downloads/CrownyTVM/std/isa729코드젠.han(컴파일 가능해짐)/Users/ef/Downloads/CrownyTVM/std/isa729vm.han(컴파일 가능해짐)/Users/ef/Downloads/CrownyTVM/std/한선VM.han(컴파일 가능해짐)
잔여 이슈
- libs/ 126개 파일은 RPN 키워드 혼용 문제 — 고수준 재작성 필요 (별도 과제)
__sys__미지원 이름 일부 (쿠키, 일부 HTTP, 지갑 등) — crownyc.c에 opcode 추가 필요