고정 식별자
| 축 | 식별자 |
|---|---|
| 아티팩트 schema | lispex.core-ir/v1 |
| 의미 프로필 | lispex-profile-1.5 |
| primitive registry | lispex.primitive-registry/v1 |
| 비용 모델 | lispex.core-ir-cost/v1 |
| producer 계열 | lispex-rust-core-ir/v1 |
| 아티팩트 해시 도메인 | lispex/core-ir-hash/v1 |
| registry 해시 도메인 | lispex/primitive-registry-hash/v1 |
registry는 실행 가능한 builtin 이름 205개에 안정적인 숫자 ID를 부여합니다. 정규화기가 내부에서 쓰는 primitive는 ID로 직접 가리킵니다. 소스에서 보이는 builtin은 그 ID로 초기화된 일반 mutable global 셀로 남으므로 shadowing과 최상위 재정의의 현재 의미가 유지됩니다.
소스에서 해석된 의미까지
정확한 소스 바이트
→ reader
→ 위생적으로 정규화된 Core
→ binding·closure 해석
→ 정규 Core IR 바이트아티팩트는 표면 문법의 sugar를 제거하고 다음을 기록합니다.
- 이름 검색 대신 lexical·global 셀 식별자
- 고정·rest 매개변수,
let,letrec, 내부 정의, 실행 시 활성화되는 forwarding 정의 셀 - 전이적 캡처를 포함한 공유 mutable closure 캡처
- 소비자가 다시 추론하지 않아도 되는 일반 호출과 꼬리 호출
- 0개·1개·여러 값 문맥
- guard, 예외, continuation, dynamic-wind 제어 경계
- 정규 literal datum과 1부터 시작하는 소스 위치
- 명시적 input requirement
- primitive registry와 비용 모델 식별자
감사 projection은 lowering 전의 정규 Canonical Core 바이트를 정확히 재현해야 합니다. 이는 같은 Rust 계보 안의 보존 근거이지 독립 구현이나 의미 동등성 증명은 아닙니다.
허용되는 인코딩은 하나입니다
아티팩트는 필드 순서가 고정된 정규 UTF-8 JSON입니다. 태그 배열, 최소 10진수 표기, 정확한 Unicode 문자열, 마지막 LF 하나를 사용합니다. global, requirement, capture, binding, function은 결정적인 순서와 연속성 법칙을 따릅니다.
엄격한 reader는 중복·누락·예상 밖·순서가 바뀐 필드, 다른 숫자나 datum 표기, 알 수 없는 태그와 ID, 깨진 참조·캡처·꼬리 위치, 잘못된 소스 위치, 뒤따르는 바이트, 재인코딩 결과가 원본과 다른 아티팩트를 거부합니다.
상한은 제한 없는 작업 전에 확인합니다.
| 항목 | 최대 |
|---|---|
| 입력 소스 | 4 MiB |
| Core IR 아티팩트 | 16 MiB |
| 표현식 node | 100,000 |
| binding | 100,000 |
| function | 100,000 |
| global | 100,000 |
| 구조 깊이 | 1,024 |
source_sha256은 정확한 소스 바이트에 대한 기존 도메인 분리 식별자입니다.
core_ir_sha256은 전체 정규 아티팩트의 도메인 분리 식별자입니다. 일반 파일
SHA-256이나 보기 좋게 만든 inspection JSON의 해시로 대신하면 안 됩니다.
네이티브 명령 보고서
core-ir build는 이름 있는 아티팩트를 쓸 때lispex.core-ir-build/v1을 출력합니다.--out -에서는 아티팩트 바이트만 출력합니다.core-ir validate는 엄격한 읽기와 재인코딩 뒤lispex.core-ir-validation/v1을 출력합니다.core-ir inspect는 식별자, 개수, global, requirement, 읽기 쉬운 normalized root를 담은lispex.core-ir-inspection/v1을 출력합니다.- 사용법 오류는 종료 2, 검증·소스 오류는 종료 1, 상한·입출력·게시 실패는 종료 3입니다.
세 명령은 모두 네이티브 전용이며 실행하지 않습니다. npm, 공개 WASM, 플레이그라운드는 Core IR reader나 명령 표면을 제공하지 않습니다.
Meaning Graph와의 공존
Core IR은 csk.meaning-graph/v0의 새 이름이 아닙니다. Meaning Graph는
lower, eval-graph, diff-receipt가 쓰는 이름 기반 검사 부분집합
형식으로 남습니다. Core IR은 해석된 셀과 closure 정보를 포함해 현재 정규
프로필 전체를 다룹니다. 기존 Meaning Graph 바이트, 해시, 영수증, 주장은
바뀌지 않습니다.
권한 경계
Core IR은 integrity-only 컴파일 재료입니다. 정규 바이트, reader 성공,
inspection 보고서, 일치하는 해시는 저자·출처·신뢰·신선도·요청 의도·실행·
정확성·결정 grant를 증명하지 않습니다. Core IR 명령은 바우치 체인에
들어가지 않으며 보고서가 스스로 바우치 근거나 gate 권한으로 승격될 수도
없습니다.
다음으로
짧은 명령 흐름은 가이드에서, 제품 표면 비교는 런타임 페이지에서 확인하세요.