한선씨 설치 프로그램 4종 — ccp 고속고압축 패키징
개요
사장님 지시(2026-07-07): "npm으로 실행하는 게 아니라 한선씨 프로그램으로 실행. 맥용·윈도우용·리눅스용·하드웨어직접용 한선씨 설치프로그램으로 패키징. .ccp 고속고압축 압축도구 활용."
/Users/ef/crowny-compressor/ccp(크라우니 압축기)를 이용해 4개 플랫폼용
.ccp 설치 아카이브 + macOS self-extract .command를 만들고,
설치 로직 자체는 한선씨(설치기.한선)로 작성했다. hansunc.crowny.org
download.html에 배선 완료.
산출물
/Users/ef/crowny-hanseon-dist/설치/ (원본), /Users/ef/crowny-hansunc/public/dist/ (배포):
| 파일 | 크기 | 상태 |
|---|---|---|
한선씨설치-macos-arm64.ccp | 540K | 정본 3바이너리+libs 47종, 라운드트립 검증 완료 |
한선씨설치-macos-arm64.command | 600K | self-extract, E2E 실행 검증 완료(아래) |
한선씨설치-linux-x64.ccp | 2.1M | 기존 linux dist 재패키징(2026-06-21 빌드, 구버전 명시) |
한선씨설치-windows-x86.ccp | 968K | 소스+빌드안내(VM 바이너리 미포함 — 아래 블로커) |
한선씨설치-hardware-raspberrypi.ccp | 716K | 소스+네이티브 빌드 스크립트(aarch64 크로스빌드 검증) |
한선씨설치-hardware-orinnx.ccp | 716K | 소스+네이티브 빌드 스크립트(aarch64 크로스빌드 검증) |
.ccp/.command에 .sha256 동반.설치기.한선 (설치 로직 본체 — 한선씨로 작성)
/Users/ef/crowny-hanseon-dist/설치기.한선 (→ 설치기.toau, hanseonc_high로 컴파일,
모든 패키지에 동일 바이트코드 재사용 — TOAU는 플랫폼 독립).
내용: 산술(더하기/곱하기) 스모크, 문자열 결합 스모크, 3진 Kleene 논리(참&&모름=모름)
스모크, 설치 위치 출력(현재경로()), 실행 예시 안내. ccp가 파일 배치를 끝낸 뒤
번들된 crownyc가 이 .toau를 실행해 검증한다.
macOS 패키징 — 기술적 결정 (sx2 vs sx)
ccp sx(스텁이 ccp x를 호출)는 대상 머신에 ccp가 이미 설치돼 있어야
동작 — 새 사용자 배포에는 부적합. 대신 ccp sx2(ccp 바이너리 자체를 임베드,
외부 의존 0)를 사용하고, 그 위에 얇은 셸 스텁을 한 겹 더 씌워
"추출 → 성공 시 번들 crownyc로 설치기.toau 실행"까지 체이닝했다
(ccp sx2가 자체 프로세스를 exit()로 종료해버려 체이닝 지점이 없으므로
바깥에서 한 겹 더 감쌈). 최종 구조:
[셸 스텁 8192B 고정크기, tail -c로 내부 바이너리 추출·실행·체이닝]
[ccp sx2 산출물: ccp 바이너리 + .ccp 아카이브 + 14B 트레일러]
E2E 검증 (macOS, 스크래치 디렉토리)
/private/tmp/claude-501/.../scratchpad/e2e-install 로 설치대상 오버라이드(시스템 /usr/local 안 건드림)
$ ./한선씨설치-macos-arm64.command $SCRATCH/e2e-install
CCP 자가추출 설치기 → .../e2e-install/
설치: → .../e2e-install/ (디렉토리 2, 파일 54, 심볼릭 0)
[검증] 산술(더하기) OK: 3 + 7 = 10
[검증] 산술(곱하기) OK: 3 * 7 = 21
[검증] 문자열: 한선씨 설치 검증 문자열 결합 OK
[검증] 3진논리 OK: 참 && 모름 = 모름 (Kleene)
한선씨 설치 완료: .../e2e-install
EXIT=0
설치된 bin/crownyc로 재실행해도 동일 정상 동작 확인. 전 플랫폼 .ccp
라운드트립(ccp a → ccp x) 무결성도 개별 검증(파일수/바이너리 매직 보존).Linux 패키징
기존 /Users/ef/crowny-hanseon-dist/linux/{bin,std} 그대로 재사용
(2026-06-21 빌드, ELF x86-64 정적링크, STR_HANDLE_BASE/STR_ID_MAX 최신패치
미포함 — 기존 README-버전주의.md 경고를 패키지 README에도 명시).
std/ 113개 라이브러리 그대로 포함(전례 커레이션 존중, 47종 화이트리스트로
재축소하지 않음).
Windows 패키징 — mingw 시도 결과 (중요 발견)
x86_64-w64-mingw32-gcc 15.2.0(Homebrew mingw-w64) 존재 확인, 실제 빌드 시도:
hanseonc_high.exe,toau_pack.exe— 빌드 성공(경고만, 에러 0). 실행은
crownyc.exe(VM 런타임) — 빌드 실패. 정확한 원인 4가지를 진단(공유 정본
crownyc.c:37,89 — usleep/ftruncate 매크로가 #include <unistd.h>
(110행)보다 먼저 정의되어 mingw unistd.h의 실제 선언과 충돌
(매크로를 unistd.h 인클루드 뒤로 옮기거나, ifdef 블록 안에 `#include
<unistd.h>` 한 줄 선행 추가하면 해결).
2. crownyc.c:168 #include "crownyc_jit.c" — JIT 모듈이 <dlfcn.h>,
<spawn.h>를 무조건 include(POSIX 전용). JIT는 아직 인터프리터
디스패치에 배선 안 됨(v0, "핫 디스패치는 항상 BAIL") → Windows에서
#ifndef _WIN32로 통째로 비활성해도 기능 손실 없음. 단 외부 호출부
crownyc.c:7552 cj_note_call((int)fn) 한 곳도 같이 가드 필요.
3. setsockopt() 콜사이트 6곳(9843,9928,10076,11816,11821,11843) —
Winsock은 4번째 인자가 const char*인데 POSIX 스타일 void* 그대로
전달해 타입 불일치.
4. SO_REUSEPORT(11821) — Windows 소켓에 없는 옵션, 무조건 참조.
crownyc.c는 건드리지 않음.
- 패키지는 소스 전체 + libs 47종 + 위 블로커 상세 + 재빌드 안내로 구성.
하드웨어 직접(Raspberry Pi / Jetson Orin NX)
/Users/ef/crowny-downloads/public/platforms/{raspberrypi,orinnx}/는
베어메탈 CrownyOS 부팅(리눅스 커널 없이 crownyc가 직접 SD 부팅) 전례로,
이번 패키지의 용도(Linux가 이미 올라간 보드 위에 한선씨 툴체인 설치)와는
달라 재사용하지 않고 별도 구성했다(단, 전례 문서는 전례참조/에 참고용으로 동봉).
aarch64-linux-musl-gcc크로스컴파일로crownyc.c,hanseonc_high.c경고/
- 다만 musl 링크라 glibc 기반 Raspberry Pi OS/L4T에서 그대로 실행 안 될 수
build-native.sh, cc -O2)로
설정. 실기 미보유로 실행은 미검증.download.html 배선
/Users/ef/crowny-hansunc/public/download.html(명시 위임된 유일한 수정 허용
파일)에 "ccp 설치판(권장)" 섹션 신규 추가, 기존 install.sh 원라이너 섹션은
그대로 유지. /Users/ef/crowny-hansunc/public/dist/에 6개 산출물 + sha256
복사 배치, curl 200 확인(로컬 :9763, https://hansunc.crowny.org 양쪽).
HTML 파서로 신규 마크업 파싱 오류 없음 확인.
크라우니코드
crownycode-learn.sh search "설치 검증 스모크" → 0건(신규 패턴) →
add "한선씨_설치검증_스모크테스트"로 학습 완료.
크라우니코드: lookup HIT 0 / MISS 1 / learn 1
잔여 이슈
- Windows crownyc.exe 미완성 — 위 4개 블로커 수정(추정 1일) 후 재빌드 필요.
crownyc.c에 적용해야 다른 세션에도 이득 — 별도 작업으로
분리 권장.
- Linux/하드웨어 실행 미검증 — 이 맥에는 Linux 실기·Raspberry Pi·Orin NX가
- macOS
.commandFinder 더블클릭 자체는 미검증 — 터미널에서 직접 실행한
- Linux 바이너리는 2026-06-21 스냅샷(최신 STR 패치 2건 미포함) — 재배포 전
관련 파일
- 설치 로직:
/Users/ef/crowny-hanseon-dist/설치기.한선,.toau - 스테이징:
/Users/ef/crowny-hanseon-dist/staging/{macos-arm64,linux-x64,windows-x86,hardware-raspberrypi,hardware-orinnx}/ - 산출물 원본:
/Users/ef/crowny-hanseon-dist/설치/ - 배포:
/Users/ef/crowny-hansunc/public/dist/,/Users/ef/crowny-hansunc/public/download.html - Windows 크로스빌드 진단: 위 패키지 내
README.md(staging/windows-x86)