CrownyCode 오프라인 자율 성장 엔진 + 배포 번들
개요
인터넷 없는 환경(개발도상국, Pi Zero, 학교 컴퓨터)에서 CrownyCode가 영구히 스스로 성장하는 엔진 구축. 단일 tarball (30MB)로 배포.
핵심 산출물
1. 배포 번들 v1.0.0 (30MB tarball)
- 위치:
/Users/ef/Downloads/crownycode-bundle/dist/crownycode-v1.0.0.tar.gz - 설치:
tar xzf ... && cd crownycode && ./install.sh - 컴파일러 (C 소스 + macOS bin), 라이브러리 179개, 에이전트, 패턴DB (gzip 28MB), 예제 30개
2. 예제 30개 (전부 컴파일 OK)
01-hello~15-guessing-game(기초 문법)16-tcp-echo~30-timer(네트워크, 자료구조, 알고리즘)- 이중 언어 주석 (한국어 + 영어)
3. i18n 에러 메시지
hanseonc_high.c27개 전부 한/영 이중화crownyc.c핵심 10개 (메모리, 배열범위, 타입, 런타임)- 예:
줄(line) 5: 미정의 함수 (undefined function) 'foo'
4. 자율 성장 엔진 (3개 스크립트)
pattern-index.sh — 103MB 패턴DB를 4초에 인덱싱
- 산출:
patterns.idx,han.intents,missing.intents - O(1) lookup (기존 grow.sh의 O(n²) grep 제거)
- $HOME 재귀 스캔 → hanseonc_high 컴파일 검증 → 함수 단위 분해 → 패턴DB 등록
- md5 해시 중복 방지
- 성과: 첫 수확 +525 함수, 학습DB 3,900 → 4,450
- 인덱스 → 수확 → grow → 인덱스 갱신
*/30 * * * *30분 주기 추천
- 3개 검증: 크기 80B+, 한선씨 키워드 3+, 크라우니 에러 없음
- 현실적 성공률: ~0% (단순 sed 변환의 한계)
- Python/Go의 복잡한 구문은 자동 변환 불가 → 사람이 쓴 코드가 필요
핵심 발견
자동 변환은 한계가 있다. Python→한선씨 sed 치환은 거의 항상 실패. 진짜 성장 엔진은 사람이 작성한 .한선 코드에서 패턴을 추출하는 것. 배포 후 학생들이 코드를 쓰면 → local-harvest가 자동 수확 → 다음 세대가 더 편하게 코딩.
현재 상태
| 지표 | 값 |
|---|---|
| 한선씨 커버리지 | 1,192/1,404 intent (84%) |
| 패턴DB | 103MB (25K intent, 87K 한선씨 패턴) |
| 학습DB | 4,450건 |
| LLM 의존 | 22% (목표 <10%) |
| 번들 크기 | 30MB (gzip) |
| 예제 | 30개 (전부 컴파일 OK) |
잔여 이슈
- grow-v2 변환 품질: sed 규칙으론 한계. AST 기반 변환기 필요 (장기)
- libs 수확 실패: 가져오기 의존성으로 단독 컴파일 불가. 의존성 해결 로직 필요
- Pi Zero 부트 이미지: 스크립트만 준비, 실제 .img 생성은 Linux 필요
- 현지어 문서: 영어까지 완료, 스와힐리어/힌디어는 미착수
관련 파일
/Users/ef/Downloads/crownycode-bundle/— 번들 빌드 디렉토리/Users/ef/Downloads/CrownyTVM/crownycode-agent/pattern-index.sh— 인덱서/Users/ef/Downloads/CrownyTVM/crownycode-agent/local-harvest.sh— 로컬 수확/Users/ef/Downloads/CrownyTVM/crownycode-agent/autonomous-loop.sh— 자율 루프/Users/ef/Downloads/CrownyTVM/crownycode-agent/grow-v2.sh— 성장 엔진 v2/Users/ef/CrownyOS/crownyc/hanseonc_high.c— 이중 언어 에러 메시지/Users/ef/CrownyOS/crownyc/crownyc.c— 이중 언어 런타임 에러