← 목록
브라우저 2026-05-19 3KB 읽기 3분

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_TOKENS131,072524,288305K 토큰 (버퍼 오버플로우→파서 오류)
MAX_FUNCS2,0488,1922,857 함수 (SIGBUS 크래시)
MAX_VARS4,09616,3849,663 변수 선언
MAX_STRLITS4,09632,76818,639 문자열 리터럴
MAX_CODE524,2882,097,152961K 큐브
MAX_FIXUPS16,38465,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 등) 확인 필요