Core IR 만들고 검사하기

네이티브 CLI로 정확한 리스펙스 소스를 해석된 Core IR로 만듭니다. Core IR은 프로그램이 번역되어 가는 중간 형태입니다. 실행하지 않은 채로 검증하고 살펴볼 수 있습니다.

실행하지 않고 만들기

Core IR은 무언가가 실행되기 전에 프로그램이 번역되어 가는 중간 형태입니다. refund-window.lspx 같은 소스 파일에서 시작합니다.

SH
lispex core-ir build \
  --source refund-window.lspx \
  --out refund-window.lpxir

이 명령은 정확한 소스를 읽어 정규화합니다. 이름을 셀에 연결하고, 꼬리 호출과 클로저 캡처를 기록한 뒤, 허용되는 형식이 하나뿐인 lispex.core-ir/v1 바이트를 씁니다. JSON 보고서는 execution: "not-run"과 소스 해시, Core IR 해시, 프리미티브 registry 해시, 의미 프로필, 정해진 한도 안에 머무는 개수 정보가 들어갑니다.

출력 경로는 새 파일이어야 합니다. 리스펙스는 기존 아티팩트를 덮어쓰지 않습니다. 파이프에서 -는 표준입력이나 표준출력을 뜻합니다.

SH
cat refund-window.lspx |
  lispex core-ir build --source - --out - >refund-window.lpxir

--out -을 쓰면 stdout에는 허용되는 그 하나의 형식으로 된 아티팩트 바이트만 나옵니다. 진단은 stderr에 남습니다.

보관하거나 비교하기 전에 검증하기

SH
lispex core-ir validate --ir refund-window.lpxir

검증은 바이트 상한, JSON 구조, 고정된 schema/profile/registry 식별자, 소스 위치, 해석된 참조, 캡처, 꼬리 위치, 형식이 정해진 datum 텍스트, 순서, 정확한 재인코딩을 확인합니다. 의미가 없어 보이는 공백이나 필드 순서 변경도 거부합니다. 같은 의미 아티팩트에 허용되는 바이트 표현은 하나뿐이기 때문입니다.

해석된 의미 살펴보기

SH
lispex core-ir inspect --ir refund-window.lpxir

검사 보고서에는 다음이 들어갑니다.

  • 정확한 입력 소스 바이트의 source_sha256
  • 아티팩트 전체의 core_ir_sha256
  • global, requirement, root, node, binding, function 개수
  • 해석된 global 셀과 초기 프리미티브 식별자
  • 명시적으로 필요한 호스트 입력
  • 소스 위치를 포함한 읽기 쉬운 정규화된 Core root

보고서에는 execution: "not-run"authority: "integrity-only"가 명시됩니다. 보고서는 검토와 결정적 비교에 사용하고 .lpxir 아티팩트는 바이트코드 컴파일과 실행으로 이어집니다.

검증된 바이트코드로 이어가기

Core IR 자체는 여전히 실행할 수 없습니다. 네이티브가 컴파일된 바이트코드를 대신 실행하게 하려면 엄격히 검증된 아티팩트를 바이트코드로 내리세요.

SH
lispex bytecode build \
  --ir refund-window.lpxir \
  --out refund-window.lpxbc
lispex bytecode validate --bytecode refund-window.lpxbc

별도 lispex.bytecode/v1 아티팩트는 자체 바이너리 식별자, 검증기, 자원 모델, Rust 가상 머신을 가집니다. compiler는 .lpxir 아티팩트를 소비하고 검사 보고서는 사람이 읽는 projection으로 남습니다.

Core IR과 Meaning Graph는 다릅니다

옵션 없는 lispex lower는 계속 이름 기반 csk.meaning-graph/v0을 만들고, diff-receipt는 동결된 v0 영수증 경로를 유지합니다. 명시적인 lower --graph-version v1은 검증된 Core IR을 해소된 csk.meaning-graph/v1으로 투영합니다. eval-graph는 태그에 따라 v0 또는 v1을 선택하고 meaning-diffcsk.meaning-differential-report/v1을 냅니다. Core IR은 해소된 셀과 캡처와 꼬리 위치를 정하는 단일 권위입니다. 투영은 이 식별자를 그대로 보존합니다. v1.19에서는 네이티브가 v1 Meaning 명령을 제공하고 바우치는 compiled artifact 흐름을 이어갑니다.

알맞은 제품 고르기

Core IR과 바이트코드 명령은 네이티브 제품에서 제공합니다. npm과 WebAssembly와 플레이그라운드는 각 문서에 적힌 소스 실행과 이미지와 package API와 바우치 검증 표면을 제공합니다.

제품 역할

일치하는 해시와 유효한 아티팩트가 정규 Core IR 무결성을 성립시킵니다. 서명 봉투가 발급자를 식별하고 수신자 정책이 신뢰를 기록하며 요청 결속이 소스와 입력을 선택합니다. 재실행은 현재 결과를 관측하고 바우치 게이트는 요구한 로컬 결정을 기록합니다.

다음으로

정확한 형식은 계약 레퍼런스에서 확인하세요. 자동화와 종료값 경계는 CLI 레퍼런스가 설명합니다.

검증된 바이트코드 실행하기 · Core IR 계약 · 네이티브 CLI

Core IR 만들고 검사하기 · 리스펙스