CrownyBrowser v2.1 전체 컴파일 성공
개요
크라우니브라우저 v2.1.0 — 34개 한선씨 모듈, 48,835줄 — hanseonc_high 컴파일러로 전체 빌드 성공. 961,727 큐브 (26MB TOAU 바이너리). 44개 라이브러리 import, 305,174 토큰.
작업 내역
1. 표준 라이브러리 생성/변환
RPN → 고수준 한선씨 변환:
문자열.한선— 21개 함수, 359줄 (RPN 백업:문자열_rpn.한선)JSON.한선— 566줄, 재귀 하강 파서 (백업:JSON_rpn.한선)프로세스.한선,날짜.한선,바이트버퍼.한선,네트워크.한선— 모두 변환
맵.한선— 10개 함수 (맵크기, 맵있나, 맵삭제, 맵값목록 등)배열.한선— 12개 함수 (배열뒤집기, 배열찾기, 배열필터 등)
셀코어.한선— libs/ 경로에 RPN 버전이 있었음. TVM/std/의 고수준 버전으로 교체 (백업:셀코어_rpn.한선)수학.한선— TVM/std/수학.han을 libs/수학.한선으로 복사
2. 브라우저 모듈 수정 (34개)
5개 카테고리의 컴파일 오류 수정:
- 예약어 충돌:
계속→진행중,선택→선택됨/셀렉션,메서드→HTTP메서드/요청방식,함수→변환함수,반복→반복수,신호→취소신호 - 인라인
;주석 버그: 한선씨 렉서가;뒤 내용을 토큰화. 18개 모듈에서 제거///로 전환 혹시단독 사용:만약/아니면블록으로 재구조화 (셀코어브라우저.한선 40+ 건)- chained array access:
분리(x, " ")[0]→ 임시 변수 + 인덱싱으로 분리 - 기타:
맥넣어→맵넣어오타,16진수변환→십육진수변환,가져오기 "맵생성.한선"→"맵.한선"
3. 컴파일러 수정 (hanseonc_high.c)
bare 반환 버그 수정: parse_return()이 값 없는 반환에서 다음 } 토큰을 소비. } 또는 EOF 체크 후 OP_PUSH_ZERO 방출하도록 수정.
버퍼 제한 증가 (브라우저 풀빌드용):
| 제한 | 이전 | 이후 | 이유 |
|---|---|---|---|
| MAX_TOKENS | 131,072 | 524,288 | 305K 토큰 (버퍼 오버플로우→파서 오류) |
| MAX_FUNCS | 2,048 | 8,192 | 2,857 함수 (SIGBUS 크래시) |
| MAX_VARS | 4,096 | 16,384 | 9,663 변수 선언 |
| MAX_STRLITS | 4,096 | 32,768 | 18,639 문자열 리터럴 |
| MAX_CODE | 524,288 | 2,097,152 | 961K 큐브 |
| MAX_FIXUPS | 16,384 | 65,536 | 비례 증가 |
4. 진행 기록
- 시작: 2/34 개별 컴파일 성공
- 라이브러리 변환 후: 15/34
- 에이전트 배치 1: 24/34
- 에이전트 배치 2: 32/34
- 셀코어 교체 + 탭검색엔진 수정: 33/34
- 컴파일러 제한 증가: 34/34 + 풀빌드 성공
관련 파일
- 브라우저 소스:
/Users/ef/CrownyBrowser/src/v2/(34개 .한선) - 표준 라이브러리:
/Users/ef/CrownyOS/crownyc/libs/ - 컴파일러:
/Users/ef/CrownyOS/crownyc/hanseonc_high.c - 빌드 출력:
./hanseonc_high 크라우니브라우저v2.한선 > browser.toau
잔여 이슈
- 함수명 충돌 경고 62건 — 여러 모듈이 같은 이름의 함수를 정의 (캐시조회, 세션저장 등). 네임스페이스 도입 시 해결 가능
문자열.한선의;주석을//로 변환함 — 다른 라이브러리도 일괄 전환 권장- 런타임 테스트 미완 — TOAU 실행 시 VM 메모리 제한(배열 1023, 문자열 32KB 등) 확인 필요