크라우니 압축기 (Crowny Compressor) — .ccp 포맷 기획서
2026-06-27 · 작성: 총괄집사(Opus 4.8) · 상태: 기획 v0.1 결정: 범용 아카이버 + 설치/배포 포맷 겸용 · Mac Metal 우선 GPU · 무손실 코어 + 미디어는 CAF/CVF 라우팅
1. 개요
.ccp(Crowny Compress Package) = CPU/GPU 병렬로 대용량 파일을 순식간에 압축·해제·설치하는
범용 무손실 압축기. zip/7z를 대체하면서 동시에 크라우니 앱·OS·패키지의 self-extracting 설치 포맷이 된다.
설계 우선순위: ① 속도(압축·해제·설치) > ② 무결성(무손실) > ③ 압축률. 사용자 요구 = "압축률도 좋지만 대용량이 순식간에 압축·해제·설치되는 것."
기존 자산 일반화: CAF7(오디오)·CVF(영상)·CIF(이미지)가 이미 "벡터형 4상균형3진 + 트릿트리 + -0 소멸" 원리로 완성돼 있다. 단 그 코덱들의 압축력은 -0 소멸(손실)에서 나오므로, 일반 파일엔 못 쓴다. .ccp는 같은 원리를 무손실 버전(소멸 게이팅 제거, 반복감지·트릿트리·균형3진 엔트로피만)으로 재설계한다.
2. 핵심 통찰 — 속도의 근원은 "블록 병렬"
GPU 가속 고속 압축의 본질은 파일을 독립 블록으로 쪼개 수천 스레드가 동시 처리하는 것이다. (nvCOMP/GDeflate/LZ4-GPU가 전부 이 구조.) 균형3진 자체가 빠른 게 아니라, 블록 병렬 + GPU가 속도를 만들고 4상균형3진·셀코어는 크라우니 정체성(포맷·모드선택 레이어)을 담당한다. — 이 분리를 정직하게 둔다.
- 파일 → 독립 블록(기본 1~4MB, 튜너블) 분할
- 각 블록 = GPU 1 threadgroup / CPU 1 스레드가 독립 압축 → 임베러싱리 병렬
- 블록 독립성이 곧 시커블 · 부분해제 · 스트리밍 설치를 공짜로 준다
3. 4상 = 블록별 압축 모드 (구조적 정합)
셀코어 룰엔진이 블록 통계(샤논 엔트로피·반복률·바이트 히스토그램·매직바이트)를 보고 4상 중 하나를 블록헤더 1트릿으로 결정. 억지 매핑이 아니라 압축 이론과 그대로 들어맞는다.
| 상 | 모드 | 알고리즘 | 적용 |
|---|---|---|---|
| A (-1, 체이닝) | 벡터형 반복감지 | LZ-family 매치/딕셔너리 (셀코어 룰이 매치 판정) | 텍스트·코드·반복 |
| O (0, 균일) | 런렝스/균일 | 단일값+길이 (CAF "무음구간" 무손실판) | 0패딩·희소·단색 |
| T (+1, 데이터) | 트릿트리 엔트로피 | 균형3진 rANS/range coder | 고엔트로피 일반 |
| U (구분자) | 라우팅/store | 재압축 안함 or CAF/CVF/CIF 위임 | 이미압축·미디어 |
4. 블록당 압축 파이프라인 (무손실)
블록 입력
→ [셀코어 룰엔진] 통계 측정 → 4상 모드 결정 (+ 옵션 델타/MTF 전처리)
→ A상: 벡터 반복감지(LZ) | O상: 런렝스 | T상: 트릿트리 엔트로피 | U상: store/라우팅
→ 균형3진 패킹 (TOAU, 6B/큐브) + 블록 체크섬
→ 압축 블록 출력
- -0 소멸 게이팅 없음 (무손실 보장) — 미디어 라우팅(U상)일 때만 손실코덱 사용
- 셀코어 룰은
규칙저장소.dat에 누적 → 데이터 유형별 모드선택 정확도 학습으로 향상
5. .ccp 파일 포맷 (TOAU 기반)
┌─ 매직 "CCP7" + TOAU 6B/큐브
├─ 헤더 큐브: 버전 · 블록크기 · 블록수 · 원본총크기 · 플래그(gpu/무손실/설치형/스트리밍)
├─ 블록 인덱스 테이블: 블록당 { 오프셋, 압축크기, 원본크기, 모드트릿(4상), CRC }
│ └ → 시커블 · 부분해제 · 병렬설치의 핵심
├─ [블록0 압축데이터][블록1]…[블록N] ← 각각 독립, 임의 순서 해제 가능
└─ 꼬리: 전체 해시_SHA256 · 메타(파일트리/권한/심볼릭/설치스크립트)
- 설치형 플래그: 꼬리 메타에 파일트리·퍼미션·설치스크립트 → 해제 = 설치
- 블록 인덱스가 있으니 다운로드 중인 블록부터 즉시 해제 시작 가능
6. "순식간 설치" 메커니즘
- 스트리밍 해제: 블록 도착 즉시 해제→디스크 기록 (다운로드와 동시 진행)
- 병렬 해제: N블록 동시 GPU/CPU 해제 (블록 독립성 활용)
- self-extracting: .ccp 앞에 소형 런처 스텁 → 더블클릭 설치
- 제로카피: mmap + 블록단위 직접 배치, 임시파일 없음
7. GPU 백엔드 (Mac Metal 우선)
- Metal 컴퓨트 셰이더(1차): 블록당 1 threadgroup. 히스토그램/엔트로피 = 병렬 reduction,
- CUDA(2차): 기존 삼진 CUDA 커널(
project_ternary_cuda_kernels) 재활용, Jetson/Linux. - CPU 폴백(항상): NEON SIMD + 스레드풀. GPU 없거나 소형파일이면 CPU가 더 빠름 → 자동 분기.
- 자동 디스패치: 파일크기·GPU가용성 보고 블록을 GPU/CPU에 분배(하이브리드 스케줄러).
8. 미디어 라우팅 (U상)
매직바이트 감지 → 손실 허용 시 기존 코덱 위임(선택 플래그, 기본 off=무손실 store):
- mp4/mov → CVF · wav/flac/pcm → CAF7 · png/jpg/bmp → CIF
- 이미 압축됨(zip/gz/jpg/mp4) → store(재압축 안함, 최고속)
9. CLI / 도구
bashccp 압축 <경로...> -o out.ccp [--level 1..9] [--gpu|--cpu] [--설치형] [--미디어손실]
ccp 해제 out.ccp [-d 대상디렉토리]
ccp 설치 app.ccp # self-extract + 설치스크립트 실행
ccp 목록 out.ccp # 블록인덱스 · 파일트리
ccp 검증 out.ccp # CRC + SHA256 무결성
10. 단계 로드맵
| Phase | 내용 | 산출 |
|---|---|---|
| 0 | 포맷 스펙 동결 + CPU 단일스레드 레퍼런스(정확성 우선) | CCP포맷.한선, 라운드트립 테스트 |
| 1 | 셀코어 룰엔진 모드선택 + 무손실 파이프라인(A/O/T/U) | CCP압축.한선, CCP모드.한선 |
| 2 | CPU 멀티스레드 + NEON SIMD | 멀티코어 벤치 |
| 3 | Metal GPU 백엔드 + 하이브리드 스케줄러 | .metal 커널 + 하드웨어.한선 동반 |
| 4 | 설치형/스트리밍/self-extract + 미디어 라우팅 | ccp 설치, 스텁런처 |
| 5 | CLI 패키징 + 벤치마크 KPI + 상용화 | README/BENCHMARK/LICENSE |
11. 벤치마크 KPI (CAF7 상용화 패턴 차용)
- 압축속도 GB/s · 해제속도 GB/s · 압축률(vs zip/zstd) · 라운드트립 무결성(100%) · 설치 소요시간
- 회귀 매트릭스: 텍스트·바이너리·이미 압축됨·희소·미디어 5종 코퍼스
12. 정직한 리스크 / 함정
- 균형3진 패킹 오버헤드: 트릿을 바이트로 패킹하면 손실 발생 가능. → 6B/큐브 TOAU 정렬 유지,
- 속도 vs 압축률: 속도 우선이므로 기본 레벨은 zstd-1~3급 목표, --level 9에서만 고압축.
- GPU 작은파일 역효과: 디스패치 오버헤드 > 이득. 임계크기 미만은 CPU 강제(자동).
- 무손실 절대 사수: 일반파일에 -0 소멸 금지. 미디어 손실은 명시 플래그(
--미디어손실)에서만.
13. 관련 파일 / 배치(예정)
- 디렉토리:
/Users/ef/crowny-compressor/(예정) - 포트: 웹 서비스화 시
crowny-ports.sh set compressor.crowny.org <port>로 선언(빌드 시) - 한선씨 동반: CCP포맷.한선 · CCP압축.한선 · CCP모드.한선 · 하드웨어.한선(Metal 시뮬)
- 선행 자산: CAF7(
/Users/ef/crowny-audio) · CVF(video.crowny.org) · CIF · 삼진 CUDA 커널
14. Phase 0 완료 (2026-06-27) ✅
산출물 (/Users/ef/crowny-compressor/):
spec/CCP-FORMAT-v0.md — 포맷 스펙 동결(헤더22B·블록인덱스5B·4상 모드트릿·FNV체크섬)src/ccp.c — CPU 레퍼런스 인코더/디코더 CLI (cc -O2 -o ccp src/ccp.c)ccp c|d <in> <out> 압축/해제, ccp l 블록목록, ccp t 자체검증src/CCP모드.한선 — 셀코어 모드선택 룰 동반(반복률→4상, 교차곱으로 나눗셈함정 회피). 컴파일·실행 OK, 학습DB 등록(압축블록_모드선택_4상).검증 결과 (전부 무손실 라운드트립 + 체크섬 OK):
| 입력 | 원본 | 압축 | 비율 |
|---|---|---|---|
| 자체검증(균일+난수+런 혼합) | 200,000 B | 84,436 B | 42.2% |
| 텍스트(스펙md) | 2,814 B | 2,845 B | 101.1% ⚠️ |
| 바이너리(ccp 실행파일) | 34,144 B | 11,645 B | 34.1% |
| 5MB 0패딩(대용량 균일) | 5,000,000 B | 39,779 B | 0.7% |
- 4상 블록 라우팅 실증: 균일블록→O/RLE, 의사난수블록→U/STORE 자동 선택.
- 대용량 균일 데이터 0.7% 즉시 압축 = "대용량 순식간" 1차 증거.
- 텍스트 101.1% 팽창 = 정직한 Phase 0 한계(RLE 무효+STORE 오버헤드) → Phase 1 A/T 모드가 해결.
15. Phase 1 완료 (2026-06-27) ✅ — 4상 모드 전부 작동
추가 산출물:
ccp.c확장 (337줄): A상 LZ(LZ4식 해시매치,lz_encode/lz_decode) + T상 엔트로피(적응 order-0 Subbotin 레인지코더range_encode/range_decode→ LZ스트림 2단 압축).- 셀코어 룰 = "후보 생성→최소 채택"으로 확장: STORE/RLE/LZ/LZ+엔트로피 중 블록별 최소 선택, 4상 모드트릿 기록.
src/CCP엔트로피.한선— 적응 빈도모델 룰 동반(초기화/누적/갱신/재정규화). 컴파일·실행 OK, 학습DB 등록(압축_엔트로피_적응모델).
| 입력 | 원본 | ccp | 비율 | gzip | ccp/gzip |
|---|---|---|---|---|---|
| 자체검증(혼합) | 200,000 | 7,690 | 3.8% | — | — |
| 텍스트(스펙md) | 2,814 | 1,845 | 65.6% | 1,563 | 1.18x |
| 바이너리(ccp) | 34,144 | 6,380 | 18.7% | 5,812 | 1.09x |
| 5MB 0패딩 | 5,000,000 | 3,098 | 0.1% | 4,900 | 0.63x (이김) |
| 소스(crownyc.c 717KB) | 717,735 | 245,711 | 34.2% | 171,683 | 1.43x |
- 진척: 텍스트 101%(P0)→65.6%(P1), 자체검증 42%→3.8%. 균일/반복 대용량은 gzip 추월.
- 남은 격차(big.c 1.43x): order-0 엔트로피가 LZ 혼합스트림(리터럴/길이/거리)을 한 모델로 처리 → gzip은 컨텍스트 분리 Huffman. Phase 1.5에서 스트림 분리 or order-1 컨텍스트로 격차 축소 가능.
16. Phase 2 (블록 병렬) + 1.5 (레벨/압축률) 완료 (2026-06-28) ✅
Phase 2 — 블록 병렬 (pthread work-steal, 원자 카운터):
- 압축/해제 워커가 블록을 원자적으로 분배, 블록 독립성으로 거의 선형 확장.
- 200MB 혼합 파일 실측 (12코어 M-series):
| 1 스레드 | 12 코어 | 가속 | |
|---|---|---|---|
| 압축 | 512 MB/s | 4,757 MB/s | ~9x |
| 해제 | 923 MB/s | 5,821 MB/s | ~6x |
Phase 1.5 — 압축레벨 (속도 우선 기본, 선택적 고압축):
- order-1 단독은 혼합 LZ스트림에서 무효 확인 → 2-스트림 분리(리터럴 order-1 / 제어 order-0)로 격차 축소.
- T블록 tflag로 두 포맷 공존:
0=단일스트림 order-0(고속),1=2-스트림 분리(최대). - 레벨: L1=고속LZ · L5=기본(order-0, 최속+균형) · L9=최대(분리+order1).
ccp c <in> <out> [1-9].
| 레벨 | big.c(717KB) | 200MB 압축 | vs gzip(big.c) |
|---|---|---|---|
| L1 | 39.4% | 3,837 MB/s | 1.65x |
| L5(기본) | 34.2% | 4,757 MB/s | 1.43x |
| L9 | 31.9% | 3,707 MB/s | 1.34x |
- 자체검증(혼합) L9 = 2.4%. 3레벨 전부 무손실 라운드트립 PASS.
- 정직: 일반 텍스트/코드는 gzip의 1.34~1.65x(엔트로피 컨텍스트 한계), 단 속도가 gzip 대비 수십 배 + 균일/반복 대용량은 gzip 추월. 사용자 1순위(속도)에 최적화.
17. Phase 3 (Metal GPU PoC) 완료 (2026-06-28) ✅
kernels/ccp_metal.m(106줄) — 런타임 셰이더 컴파일(newLibraryWithSource, 오프라인 metal 툴체인 불필요).
clang -fobjc-arc -framework Metal -framework Foundation.
src/CCP하드웨어.한선— GPU 커널의 한선씨 시뮬 동반(플랫폼락 더블작성). 컴파일·실행 OK, 학습 등록.- 실측 (M2 Max, 50MB 균일/반복):
| 방식 | 속도 | 압축률 |
|---|---|---|
| CPU L5 (LZ+엔트로피, 12코어) | 6,434 MB/s | 0.4% |
| GPU RLE (블록 4096) | 15,460 MB/s | 1.0% |
- 정직한 결론: GPU는 단순모드(RLE/통계)에서 2.4x 빠름(15.5 GB/s) 단 LZ+엔트로피 부재로 압축률↓.
18. 현 상태 요약 (Phase 0~3 완료)
완성: 동작하는 무손실 압축기 — 4상 블록 라우팅(U/O/A/T) · 블록 병렬(12코어 4.7GB/s) · 3레벨 · GPU PoC(15.5GB/s). 산출물: ccp.c(491줄, CPU) · ccp_metal.m(106줄, GPU) · 한선씨 동반 3종(모드/엔트로피/하드웨어) · 포맷스펙. 사용자 목표 달성: "대용량 순식간" = 200MB 압축 45ms/해제 36ms, 균일 대용량 GPU 15.5GB/s. 무손실 + 미디어 CAF/CVF 라우팅 설계.
19. Phase 4 (A 하이브리드GPU + B 아카이브/설치 + C 미디어라우팅) 완료 (2026-06-28) ✅
울트라 에이전트 워크플로우로 진행: 병렬 조사(3 Explore) → 통합(메인) → 적대검증(4 병렬).
리팩터: compress/decompress → buffer 코어(ccp_compress_buf/ccp_decompress_buf) + 얇은 파일 래퍼. 아카이브가 인메모리로 코어 재사용.
B — 폴더 아카이브 + 설치(해제=설치):
walk_dir(lstat 재귀, 심볼릭 비추적) → 매니페스트{경로·타입·mode·size·링크} + 데이터 직렬화 → 기존 블록엔진 통과(블록코드 무변경). flags bit1=설치형.ccp a <out.ccp> <경로...>아카이브,ccp x <in.ccp> [대상]추출=설치(3패스: 디렉토리→파일→심볼릭, 권한복원, 원자적 rename, 경로공격 차단 safe_rel).ccp sx <a.ccp> <설치기.command>self-extract — 4KB 셸스텁 + 아카이브 → Finder 더블클릭 설치.- 검증: 폴더(디렉토리/파일/심볼릭/권한 755) 라운드트립
diff -r일치, self-extract 설치 무손실.
detect_compressed()매직바이트표(zip/gz/png/jpg/mp4/mp3/zstd… 19종) → 이미압축/미디어는 STORE 강제(헛수고·역효과 방지, 항상 무손실). gz 파일 100% STORE 검증.ccp m <미디어>손실 라우팅: wav→CAF7(실 바이너리 호출 검증), mp4→CVF(node+ffmpeg). 도구 없으면 rc!=0 폴백. CIF는 서버전용·스텁이라 제외(조사 결론).
src/ccp_gpu.{h,m}GPU 라이브러리(ccp_gpu_init/rle_batch/destroy), ccp.c는 순수 C 유지. 단일 링크 빌드.ccp-gpu g <in> <out>GPU RLE 레인(블록당 1 GPU스레드). GPU 인코드 → CPU 디코더 호환(STORE/RLE 모드만) 라운드트립 무손실.- 정직: GPU 레인=고속·저압축률(50MB 0.8%), CPU L5=고압축률(0.4%). 둘은 별도 레인(사용자/휴리스틱 선택). 블록단위 자동 라우터는 차기.
make(CPU 전기능) · make ccp-gpu(Metal) · make ccp_asan(메모리검증).
한선씨 동반 추가: CCP아카이브.한선(매니페스트 포맷+경로안전, 컴파일·실행·학습 완료). 총 동반 4종.19b. 적대검증 울트라 워크플로우 + 하드닝 (2026-06-28) ✅
4 에이전트 병렬 적대검증(289K 토큰) → GPU레인 16/16·코어 무손실 81건 전수 PASS. 악성/손상입력에서 11개 버그 적발 → 전부 수정 + ASan 클린(유효경로 누수 0):
| 버그 | 내용 | 수정 |
|---|---|---|
| FIFO 행 | 특수파일 아카이브 시 무한블록 | add_path에 !S_ISREG 스킵 |
| SFX 종료코드 | 설치 실패해도 exit 0 | 스텁 exit $RC 전파 |
| 미디어 종료코드 | system() wait status→exit 0 | WEXITSTATUS 정규화 |
| Bug-A blocks과대 | 0xFFFFFFFF→OOB | 인덱스 크기 검증 |
| Bug-B csize과대 | 블록합>본문→OOB | 블록합==본문 검증 |
| Bug-C extract 죽은코드 | get_u32 2B OOB | 죽은 라인 제거+경계검사 |
| Bug-D LZ오프셋 | 잘린스트림 OOB | i+1<cn·off<=o 가드 |
| Bug-E/F TRIT | csize<5·tflag무효 OOB | csize·tflag 가드+memset0 |
| Bug-G count과대 | 거대 malloc NULL deref | count*15<=payload 가드 |
| Bug-H 버전 | 미검증 묵과 | src[4]!=VERSION 거부 |
20b. Phase 5 (SHA256 무결성 v1 + 블록단위 하이브리드 라우터) 완료 (2026-06-28) ✅
① SHA256 무결성 (포맷 v1, FNV 4B → 32B):
- C 스칼라 SHA256 구현(
shasum -a 256과 바이트 일치 검증). VERSION 0→1, 꼬리 4B→32B, 바운드검사 전부 +32 반영. - 병목 발견·해결: 전체파일 단일 SHA256(스칼라 ~233MB/s)이 압축속도(4.7GB/s)를 20배 깎음 → 병렬 머클 루트(
merkle_root: 블록별 SHA256 코어분산 → 루트=SHA256(다이제스트 연접))로 ~1.3GB/s 복구. 암호학적 강도 유지(블록 변경→루트 변경). - 변조 1바이트 → "무결성 불일치" 거부 확인. 손상입력 회귀(v1 32B trailer) ASan 클린.
ccp-gpu h):
- 블록 반복률 ≥0.50 → GPU 레인(RLE), 미만 → CPU 레인(LZ/엔트로피). GPU 스레드(전블록 RLE) ‖ CPU 워커(저반복) 동시가동 후 레인별 결과 조립.
- 200MB 혼합: GPU블록 1152/3200 오프로드, 압축률 32.3%(CPU 32.0%와 동급) 유지, 무손실. 고반복(=CPU LZ가 느린) 블록을 GPU가 병렬 처리.
CCP무결성.한선(머클루트+레인결정, 빌트인 해시_SHA256). 총 동반 5종. ccp.c 832줄.
정직: 머클해싱이 무결성 비용(무결성 없는 FNV 4.7GB/s vs SHA256 1.3GB/s) — 200MB 0.15초로 여전히 "순식간". 추가 가속은 ARM SHA-NI 하드웨어 명령(차기).21. Phase 6 (ARM SHA-NI 하드웨어 무결성 가속) 완료 (2026-06-28) ✅
미션: 전 세계의 압축/해제 시간을 줄여 시간·에너지·공간을 만든다. 병목=무결성 해싱.
- Apple Silicon SHA-NI 명령(
vsha256hq/h2q/su0q/su1q) NEON 변환 추가.__attribute__((target("crypto")))로 크립토 확장 컴파일, arm64 자동 사용 + 스칼라 폴백(CCP_NO_SHANI). - 정확성 검증:
ccp sha(디버그) ==shasum -a 256전부 일치(abc알려진벡터~200MB), HW==스칼라 해시 동일. - 속도: 압축 무결성 비용 20배→1.7배 단축. 200MB L5 ~2,800 MB/s(무결성 포함, 머클=병렬 HW SHA). 스칼라 1.3GB/s → HW 2.8GB/s.
- 전기능 무손실 회귀 + 손상입력 ASan 클린 유지. ccp.c 908줄.
22. Phase 7 (스트리밍 아카이브 + 자기완결 SFX + GPU 무결성 겹침) 완료 (2026-06-28) ✅
① 스트리밍 아카이브 (메모리 O(블록), GB급 폴더):
add_path_stream(데이터 미적재 매니페스트) + 세그먼트 테이블(매니페스트=메모리·파일=디스크) +read_global(이진탐색→pread 온디맨드) +sworker(블록단위 스트리밍 압축, 블록별 SHA). 파일 데이터를 RAM에 안 쌓음.- 200MB 폴더 아카이빙 RSS 143MB(구 메모리적재 ~467MB 대비 3배 절감). 무손실·심볼릭·빈폴더 OK.
ccp a가 스트리밍 사용.
ccp sx2):
- ccp 실행파일 자체에 아카이브 임베드(꼬리=u64 오프셋+"CCPSFX").
_NSGetExecutablePath로 자기 탐지→임베드 추출. 외부 ccp 0 의존. 깨끗한 env에서 설치 무손실, 일반 ccp 오탐 0. (extract→extract_mem리팩터)
- GPU엔 SHA 하드웨어 없음 → Metal 스칼라 SHA 커널은 CPU SHA-NI보다 느림(미채택). 대신 CPU SHA-NI 머클을 GPU RLE 연산과 동시 계산(GPU 도는 동안 노는 CPU 활용,
mr_thread). GPU/하이브리드 레인은 이미 HW SHA-NI 머클 사용.
23. Phase 8 (스트리밍출력 + 이식 + 한선씨 디코더, 병렬) 완료 (2026-06-28) ✅
울트라 병렬: 백그라운드 에이전트(③ 한선씨 디코더, 독립파일) ‖ 메인세션(①② ccp.c).
① 스트리밍 출력: write_ccp_file(블록별 버퍼를 FILE에 순차 기록·즉시 free, 거대 dst 미사용). archive_stream 적용 → 200MB 폴더 RSS 75MB(스트리밍출력 전 143MB, 원래 ~467MB 대비 6배 절감). 입력(pread 온디맨드)+출력(비복사) 양쪽 메모리 O(블록).
② Linux/Windows 이식: get_exe_path(macOS _NSGetExecutablePath + Linux /proc/self/exe)로 SFX 이식. SHA-NI/Metal 가드로 비-arm64/비-macOS는 스칼라·CPU 폴백. -DCCP_NO_SHANI 스칼라 빌드 클린(x86 경로 검증). Windows=GetModuleFileName 포팅 차기.
③ 크라우니브라우저용 한선씨 .ccp 디코더 (src/CCP디코더.한선, 플랫폼락 더블, 서브에이전트 sonnet):
- STORE(U)·RLE(O) 모드 디코드(정수읽기4 곱셈합성으로 나눗셈함정 회피). 헤더파싱·블록순회·재구성·
해제파일. STORE/RLE PASS(cmp 바이트동일) 독립검증. - LZ/TRIT는 레인지코더 나눗셈이 4상균형3진 비호환 → 네이티브
ccp d필요(명시). GPU레인(ccp-gpu g)이 STORE/RLE만 생성하므로 실용적. - 신규 함정 발견: hanseonc_high
2>&1컴파일이 stderr 로그를 toau에 섞어 VM hang →> out.toau(stderr 분리) 필수. 한글1자≈9cubes. [[feedback_hanseon_compile_stderr_trap]] 메모리+가드레일템플릿 기록.
24. Phase 9 (한선씨 디코더 LZ 모드 추가) 완료 (2026-06-28) ✅
검증 가능성 우선 분별: x86 SHA-NI·Windows 포팅은 이 arm64 macOS에서 실행 검증 불가(미검증 크립토=위험) → 보류. 대신 여기서 검증 가능한 한선씨 디코더 확장에 집중.
한선씨 디코더에 LZ(모드2) 추가 (src/CCP디코더.한선 210줄):
고니블/저니블(니블 추출을 뺄셈 루프로 — 나눗셈 함정 회피),LZ해제(Clz_decode1:1 거울: 토큰·리터럴·오프셋·매치복사, 15-확장, off/길이 가드).- STORE·RLE·LZ 3종 PASS — 한선씨 내부 검증 + 셸
cmp독립 교차검증 byte-identical. 큰 LZ파일(소스 레벨1)도 A/LZ 디코드. - 로드 3221 cubes (에이전트가 우려한 ~1900은 하드캡 아님 확인).
- 남은 1모드 TRIT(3): 레인지코더
range/=tot등 무부호 32bit 나눗셈/wraparound이 4상균형3진 VM과 비호환 → 정수 재설계 필요(차기).ccp c -5/-9만 TRIT 사용,-1(LZ)+GPU레인은 한선씨로 완전 해제 가능.
25. 다음 액션 (Phase 10~)
- 한선씨 TRIT 디코드 — 레인지코더 무부호 나눗셈을 정수 routine(뺄셈 long division)으로 재설계
- x86 SHA-NI / Windows 포팅 — x86 테스트 호스트 확보 후 검증과 함께
- 크라우니브라우저 WASM .ccp 디코더(
crowny-wasm로 한선씨→WASM) - TOAU 큐브정렬(6B/큐브) v2 헤더
20. 다음 액션 (구 Phase 5 — 위에서 완료)
- 블록단위 GPU/CPU 자동 라우터(반복률 기반 분배, 동시가동)
- 스트리밍 압축 입력(GB급 폴더 메모리 2배 회피)
- TOAU 큐브정렬 v1 헤더 + SHA256 체크섬
- 압축률: order-2 / 거리·길이 별도 모델
- self-extract 단일바이너리 임베딩(ccp PATH 의존 제거)