계약 집합
| 계약 | 식별자 |
|---|---|
| 결정 프로파일 | lispex/r7rs-rule-embedded-core/1 |
| 작업·논리 할당 모델 | lispex-vm-meter/1 |
| 전체 언어 프로파일 | lispex/r7rs-rule-current-profile-bounded/1 |
| 전체 작업 모델 | lispex-full-vm-meter/1 |
| 값 코덱 | lispex.embed-value/v1 |
| transcript | lispex.embed-transcript/v1 |
| WebAssembly 인터페이스 | lispex.embed-wasm-abi/v1 |
| 휴대 코어 | lispex.embed-receipt-core/v1 |
bundle manifest는 정확한 WebAssembly SHA-256으로 provider를 식별합니다. 이 식별자가 release archive와 소비자 사이에서 같은 바이트를 연결합니다.
두 평가기 구성요소
결정 구성요소는 bundle에 기록된 폐쇄형 연산 집합을 실행합니다. Full
구성요소는 lispex-evaluator/rust-vm-current-profile/1 식별자로 생성된
primitive 205행을 Deferred 0행 상태에서 모두 실행합니다. Full 아티팩트는
LPXFAR01, 결정 아티팩트는 LPXART01 봉투를 사용합니다.
두 구성요소는 같은 v1 인터페이스와 값 코덱과 transcript와 휴대 코어 계약을
유지합니다. 네이티브는 명시적 embed full 명령으로 Full 구성요소를
선택합니다.
인터페이스와 생명주기
모듈은 import 0개와 초기 18 page, 최대 256 page인 memory 하나를 사용합니다. allocation, deallocation, interface-version, prepare, evaluate 함수와 표준 memory boundary global을 export합니다. 요청은 length-delimited big-endian field와 호출자가 선언한 바이트 값을 사용합니다.
모든 작업은 새 Wasmtime Store, Instance, memory, allocator, guest heap, interner, cell, continuation, work counter, transcript, result buffer를 만듭니다. immutable compiled Module은 정확한 WebAssembly 식별자로 공유할 수 있습니다.
자원 영역
준비 단계는 raw_source_bytes, prepare_work, prepare_logical_allocation,
syntax_depth를 소유합니다. 평가 단계는 canonical_input_bytes, eval_work,
eval_logical_allocation, semantic_frames, traversal_depth, output_bytes,
diagnostic_bytes, transcript_bytes, transcript_events, result_bytes를
소유합니다.
작업량은 버전된 결정적 tariff를 사용하고 논리 할당은 모델이 정의한 단위를
사용합니다. 비용은 효과보다 먼저 부과되고 full u64를 쓰며 선택한 값을 넘는
첫 예약에서 멈춥니다. 올바른 꼬리 호출은 현재 의미 continuation을 다시
사용합니다.
식별자와 결과
휴대 코어는 정확한 제출 소스, 정규 소스, 의미 규칙, 정규 입력, 자원 계약,
요청, 평가기 아티팩트, 평가, transcript, 결과를
lispex.evaluation-identity/v1 length-delimited SHA-256 구성으로 묶습니다.
| 종료 분류 | 제품 기록 |
|---|---|
| 결정적 의미 결과 | 결과, transcript, 휴대 코어 |
| 결정적 요청 거부 | 거부, transcript, 휴대 코어 |
| 운영 중단 | 엔진 종료 상태 |
| 엔진 결함 | 엔진 종료 상태와 진단 |
발급자는 결정 교환과 바우치 흐름에서 완성된 휴대 코어 바이트에 서명할 수 있습니다.
네이티브 결정 디렉터리
네이티브 흐름은 다음과 같습니다.
rule run -> inspect -> verify -> replayrule run은 정확한 소스와 엄격한 JSON 파일, 서로 분리한 준비·평가 값을
받습니다. JSON object는 record, array는 vector, string과 boolean과 exact
integer는 각 값 종류를 유지하고 null은 빈 list가 됩니다.
완료된 실행은 새 출력 디렉터리에 파일 다섯 개를 만듭니다.
| 구성원 | 역할 |
|---|---|
prepared.lpxembed | 정확한 준비 규칙 아티팩트 |
canonical-input.lpxvalue | 정규 입력 |
result.lpxembed | 결정적 결과와 요청 결속 |
receipt-core.lpxreceipt | 휴대 코어 |
summary.json | 정규 구성원의 사람이 읽는 projection |
inspect는 디렉터리를 요약하고 verify는 구성원 집합과 바이트 결속을
검사합니다. replay는 기록한 요청을 새 인스턴스에서 평가하고 결과와 휴대
코어를 맞춥니다.
배포와 제품 소유 영역
네이티브는 정확한 provider 바이트를 포함합니다. 릴리스는 WebAssembly bundle, manifest, vector, verifier 자료, 소프트웨어 자재 명세, dependency disposition, safety evidence, append-only release DAG 기록도 제공합니다. 보존한 provider 바이트로 과거 영수증을 계속 읽을 수 있습니다.
호스트 애플리케이션은 소스 보관, 네트워크 접근, 업무 정책, 유효 시점, 중복 사용 방지, 외부 행동을 소유합니다. 결정 교환은 발급자 봉투와 수신자 정책을 소유하고 바우치는 서명된 근거와 로컬 결정 게이트를 소유합니다. 토파즈 구성요소는 별도 compiler와 admission 식별자를 유지합니다.
다음으로
네이티브 흐름은 리스펙스 Embed에서 따라 하세요.