비교할 엔진에 맞는 보고서를 고르고 어떤 결과가 일치했는지 확인합니다. 런타임 구현은 리스펙스 소스나 컴파일한 명령을 실행하는 프로그램입니다.
리스펙스 엔진 비교 읽기
바이트코드 가이드의 전체 예제를 rule.lspx로 저장하세요.
이 예제는 display와 newline으로 refund를 출력합니다.
네이티브 CLI에서 다음 명령을 실행합니다.
lispex compare-engines --receipt tree-vm.json rule.lspx네이티브는 보고서를 저장하고 다음 요약을 출력하며 종료값 0을 반환합니다.
{
"all_agree": true,
"receipt": "tree-vm.json",
"schema": "lispex.compare-engines-summary/v1",
"semantic_mismatch_axes": []
}두 엔진 모두 stdout에 refund\n을 기록하고 정상 종료했습니다.
all_agree는 이 소스에서 비교한 의미 결과가 일치한다는 뜻입니다.
tree-vm.json을 열면 각 엔진의 결과와 식별자를 읽을 수 있습니다.
보고서 경로는 새로 지정하세요. 파일이 이미 있으면 그대로 두고 종료값 3을 반환합니다.
기록 형식 고르기
| 기록 형식 | 비교하거나 기록하는 내용 | 시작할 곳 |
|---|---|---|
lispex.rust-engine-comparison/v1 | 하나의 Core IR과 바이트코드 파일로 실행한 리스펙스 인터프리터와 리스펙스 VM | 바이트코드 가이드의 compare-engines |
csk.meaning-differential-report/v1 | 선택한 소스에 대한 리스펙스 인터프리터 동작과 의미 환경 v1 | CLI 참조의 meaning-diff |
csk.differential-receipt/v0 | 과거 Rust와 LIL과 LIT 코퍼스의 기록된 사례 | 바우치 영수증 |
sicp-observation/v1 | SICP 실행 한 번의 종료와 값과 stdout과 진단과 경고와 파일 식별자 | SICP 가이드 |
코퍼스는 비교에 쓰는 프로그램들을 이름 붙여 모은 것입니다.
SICP 관측은 실행 한 번을 기록합니다. lispex-trace/v1은 그 실행 단계를 기록합니다.
각 필드는 해당 기록 형식에 따라 읽으세요.
의미 결과와 자원 사용량 구별하기
먼저 완료 상태를 보고, 이어서 보고된 차이를 읽으세요. 보고서에 적힌 소스와 입력, 실행기 식별자, 프로파일, 출력 채널을 확인합니다.
의미 결과의 차이와 자원 사용량의 차이는 따로 읽습니다. 리스펙스 VM은 바이트코드 비용 모델을 쓰고 리스펙스 인터프리터는 자체 깊이 모델을 씁니다. 비교마다 함께 보는 자원 관측은 리스펙스 인터프리터와 리스펙스 VM에 정리되어 있습니다.
런타임 구현 찾기
| 구현 | 실행 방식 | 기록하는 정보 |
|---|---|---|
| 리스펙스 인터프리터 | 네이티브와 WASM의 리스펙스 인터프리터 | 추적하는 기본 연산 205행 중 205행의 지원 결과 |
| 리스펙스 VM | Core IR에서 만든 바이트코드를 검증한 뒤 실행 | 소스와 Core IR과 바이트코드, 결과와 진단과 자원 |
| SICP | 네이티브와 @lispex/sicp WASM의 명시적 프로파일 | sicp-observation/v1과 lispex-trace/v1 |
기본 연산 행은 지원 기능 목록에 있는 연산 하나를 가리킵니다. 각 행의 지원 여부는 해당 구현이 그 연산을 제공하는지 나타냅니다. 위 수치는 이 목록의 행을 센 것입니다. 코퍼스 수는 실제 실행한 프로그램 수입니다. 엔진 비교는 보고서가 식별한 파일과 엔진의 실행 결과를 기록합니다.
LIL과 LIT는 내부 교차검증 역할을 완수했습니다. 앞으로의 유지보수 비용을 줄이기 위해 리스펙스 1.21에서 퇴역했습니다. LIL 205/205와 초기 LIT 84/205는 과거 프로시저 표의 수치입니다. 퇴역 설명과 버전별 기록에 맞춰 읽으세요.
개별 연산은 현재 기능 목록에서 확인하세요. 제품과 구현의 차이는 리스펙스 인터프리터와 리스펙스 VM에서 설명합니다.