← 목록
한선씨 2026-04-16 6KB 읽기 6분

한선씨 구현능력 고도화 — Phase 1/2/3/7 완료

개요

한선씨(Hanseonsi)의 구현 능력 7개 영역 중 기반 4개(시스템 IPC, WebSocket, DOM, 에이전트 키워드) 고도화 완료. 반복작업 방지 목적 — opcode 기반이 먼저 완성되어야 그 위 예제/패턴이 의미를 가짐.

감사 결과 (시작 전 상태)

자산수량
VM 내장함수318개
CrownyOS libs/106개 .한선
CrownyTVM std/73개 .한선
크라우니코드 패턴DB2,836,918줄
학습DB3,914 패턴
에이전트 키워드8,947 엔트리
약점 (opcode 수준):
  • 시스템 IPC/fork/signal/PTY: 0개
  • WebSocket: 라이브러리만 (opcode 없음)
  • DOM 라이브: 정적 HTML 생성만

Phase 1: 시스템 IPC opcode (760~779)

crownyc.c에 POSIX 시스템 프로그래밍 20개 opcode 신규 추가.

opcode한선씨 키워드POSIX 대응
760포크fork()
761프로세스실행system()
762프로세스대기waitpid()
763프로세스킬kill()
764내PIDgetpid()
765프로세스나감_exit()
766시그널등록signal()
767시그널보내raise()
768시그널마스크sigprocmask()
769파이프생성pipe()
770파이프읽기read(fd)
771파이프쓰기write(fd)
772파이프닫기close(fd)
773PTY열기forkpty()
774PTY읽기read(마스터fd)
775PTY쓰기write(마스터fd)
776PTY크기ioctl(TIOCSWINSZ)
777프로세스띄워fork+execl
778프로세스상태waitpid(WNOHANG)
779환경설정setenv()
프로세스.한선 v2 (기존 shell 기반 유지 + 네이티브 API 11개 추가): 내아이디, 띄우기, 기다림, 상태확인, 신호보내, 정상종료, 즉시종료, 시그널무시, 시그널기본, 환경변수쓰기

Phase 2: WebSocket 네이티브 (780~787)

RFC 6455 프레이밍 및 핸드셰이크를 VM 네이티브로 구현.

opcode키워드기능
780WS업그레이드HTTP Upgrade → WebSocket 전환
781WS읽기프레임 디코딩 + 마스킹 해제
782WS쓰기텍스트 프레임 인코딩
783WS닫기Close 프레임
784WS핑 / 785 WS퐁Keepalive
786WS바이너리Binary frame
787WS상태poll 기반 연결 상태
이전: 웹소켓.한선이 순수 한선씨로 TCP 위 프레이밍 구현 → 느림 이후: VM opcode 8개로 네이티브 처리 → C 속도

Phase 3: DOM 라이브 바인딩 (790~799)

opcode키워드브라우저 DOM API
790DOM생성document.createElement
791DOM텍스트createTextNode
792DOM붙이기appendChild
793DOM속성setAttribute
794DOM조회getElementById
795DOM이벤트addEventListener
796DOM삭제element.remove
797DOM텍스트설정textContent
798DOMHTMLinnerHTML
799DOM질의querySelector
파생 파일:
  • crownyc/crowny-dom-host.js (172줄) — WASM 모듈용 JS glue 호스트
  • crownyc/libs/DOM.한선 v2 — 라이브 API 11개 추가 (라이브요소, 라이브텍스트, 라이브붙이기 등)
  • crownyc/examples/dom_demo.html — 브라우저 작동 데모
VM 네이티브: 가상 노드 ID 추적 (테스트/검증용). 실제 DOM 조작은 WASM+브라우저에서.

Phase 7: 에이전트 키워드 + 패턴 확장

키워드 추가: 52개 (8,947 → 8,999)

  • 시스템 프로그래밍: 프로세스포크, 포크, 자식프로세스, SIGTERM, IPC, PTY 등
  • WebSocket: WS핸드셰이크, WS프레임읽기, 실시간채팅 등
  • DOM: DOM조작, 라이브DOM, 요소생성, getElementById 등
패턴 등록: 8개 실전 예제 학습DB에 추가
  • hanseon_proc_spawn, hanseon_proc_fork, hanseon_signal_handle
  • hanseon_pipe_create, hanseon_ws_server
  • hanseon_dom_create, hanseon_dom_event, hanseon_pty_open

능력 변화

영역감사 시완료 후
시스템 IPC/fork/signal/PTY★☆☆☆☆★★★★☆
WebSocket 저수준★★☆☆☆★★★★☆
브라우저 DOM 바인딩★☆☆☆☆★★★★☆
에이전트 키워드·패턴★★★★☆★★★★★

관련 파일

  • /Users/ef/CrownyOS/crownyc/crownyc.c (11036~11349줄 신규 opcode)
  • /Users/ef/CrownyOS/crownyc/hanseonc_high.c (신규 키워드 39개 매핑)
  • /Users/ef/CrownyOS/crownyc/libs/프로세스.한선 (v2 API 11개 추가)
  • /Users/ef/CrownyOS/crownyc/libs/DOM.한선 (라이브 API 11개 추가)
  • /Users/ef/CrownyOS/crownyc/crowny-dom-host.js (신규)
  • /Users/ef/CrownyOS/crownyc/examples/dom_demo.html (신규)
  • /Users/ef/Downloads/CrownyTVM/crownycode-agent/intent/keywords.dat (52개 추가)

잔여 이슈

  1. VM DOM 스텁 버그: VM 네이티브 모드에서 DOM생성이 -1 반환 (브라우저에서는 WASM+JS glue로 정상 동작). 원인 추적 필요.
  2. wasm_emit.c 확장: DOM import 10개를 WASM 섹션에 추가 (섹션 크기 재계산 필요). 현재 JS glue만 완성.
  3. SHA1+Base64: WS 핸드셰이크의 Sec-WebSocket-Accept가 에코 방식. RFC 6455 준수 위해 SHA1 필요.

다음 단계 (Phase 4~6)

opcode 기반 완성 → 예제/패턴 작성 단계:

  • Phase 4: 내장함수 318개 → 346개 그룹별 심화 예제
  • Phase 5: 셀코어 고급(추론체인/인과/의미벡터) 팔란티어급 시나리오
  • Phase 6: 서버 7종 조합 실전 앱 (미들웨어+인증+라우터+블록체인 연동)