선택형 추가 엔진 설치하기

정확한 공식 토파즈 가상 머신이나 미리 컴파일해 두는 컴파일러 컴패니언을 가져오고, 검토한 로컬 아카이브를 설치합니다. 자동 탐색, 대체 실행, 바우치 권한은 허용하지 않습니다.

먼저 일반 실행을 사용하세요

컴패니언이 없어도 리스펙스를 실행할 수 있습니다.

SH
lispex rule.lspx

이 명령은 소스를 그대로 읽어 내려가는 내장 인터프리터를 사용합니다. 이쪽이 기본 실행기이자 의미 레퍼런스이며, 다른 것이 실패했을 때 돌아올 자리입니다. 컴패니언은 정확한 토파즈 가상 머신이나 승인된, 미리 컴파일해 두는 토파즈 컴파일러가 필요할 때만 설치하세요.

공식 컴패니언 가져오기

네이티브에는 바꿀 수 없는 정확한 경로 카탈로그가 들어 있습니다. 지금 카탈로그에는 macOS ARM64 항목이 둘 있습니다. 토파즈 5.11 가상 머신과, 리스펙스가 미리 컴파일할 때 쓰는 정확한 토파즈 5.11 컴파일러입니다. 아직 존재하지 않는 새 절대경로를 고르세요.

SH
lispex routes fetch \
  --route topaz-vm \
  --target aarch64-apple-darwin \
  --out /absolute/tools/lispex-topaz-vm

이 명령은 URL, 미러, 채널, 버전, 레지스트리, 카탈로그 덮어쓰기를 받지 않고 리다이렉트도 따르지 않습니다. 응답 길이와 SHA-256, 허용되는 단 하나의 stored-ZIP 형식, 모든 설치 파일, 닫힌 토파즈 제품 식별자를 확인한 뒤에만 목적지를 공개합니다. 지원하지 않는 대상 플랫폼은 네트워크에 연결하기 전에 거부합니다.

가져오기는 경로를 등록하거나 선택하지 않습니다. 제품을 명시적으로 사용하기로 이동해 /absolute/tools/lispex-topaz-vm/product를 직접 넘기세요.

미리 컴파일해 둔 제품을 만들 때는 컴파일러 컴패니언을 별도로 가져옵니다.

SH
lispex routes fetch \
  --route aot-compiler \
  --target aarch64-apple-darwin \
  --out /absolute/tools/lispex-aot-compiler

닫힌 제품에는 정확한 컴파일러와 릴리스 매니페스트가 들어 있습니다. Rust 도구체인은 들어 있지 않습니다. aot build에는 설치한 컴파일러 실행 파일과 사용자가 고른 별도 Rust 도구 절대경로가 모두 필요합니다.

SH
lispex aot build \
  --source rule.lspx \
  --topaz-compiler /absolute/tools/lispex-aot-compiler/product/bin/topaz-bin \
  --rust-tool-bin /absolute/rust/bin \
  --out /absolute/products/rule-aot

인수인계 아카이브를 오프라인으로 설치하기

같은 제공자 인수인계로 바뀌지 않는 로컬 파일 두 개를 받습니다.

  • 허용되는 형식으로 적은 lispex.route-catalog/v1 파일과 정확한 SHA-256
  • 정확한 경로와 대상 플랫폼 항목이 가리키는 stored-ZIP 아카이브

카탈로그는 닫힌 허용 목록입니다. 제공자 제품, 언어 모드, 매니페스트 해시, 아카이브 해시와 길이, 설치 파일 전체를 기록합니다. 리스펙스는 저장소 사본, PATH, 패키지 레지스트리, 네트워크, 다른 카탈로그를 찾지 않습니다.

정확한 항목 하나 설치하기

아직 존재하지 않는 새 절대경로를 고르세요.

SH
lispex routes install \
  --route topaz-vm \
  --target aarch64-apple-darwin \
  --catalog /absolute/handoff/routes.json \
  --catalog-sha256 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef \
  --archive /absolute/handoff/topaz-vm-aarch64-apple-darwin.zip \
  --out /absolute/tools/lispex-topaz-vm

예시 해시는 정확한 카탈로그와 함께 전달받은 값으로 바꾸세요. 이 명령은 로컬 파일만 읽습니다. 성공하면 표준 출력과 다음 파일에 같은 영수증을 씁니다.

/absolute/tools/lispex-topaz-vm/
├── installation.json
└── product/

installation.json은 허용되는 형식으로 적은 lispex.route-installation/v1 영수증입니다. 안에 절대경로도 시간도 없습니다. 그래서 바이트를 그대로 둔 채 디렉터리를 옮겨도 식별자가 유지됩니다. product/는 기존 정확 제품 검증기가 검사하는 닫힌 루트입니다.

승인된, 미리 컴파일해 두는 컴파일러 아카이브는 --route를 바꿉니다.

SH
lispex routes install \
  --route aot-compiler \
  --target aarch64-apple-darwin \
  --catalog /absolute/handoff/routes.json \
  --catalog-sha256 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef \
  --archive /absolute/handoff/lispex-topaz-aot-compiler-aarch64-apple-darwin.zip \
  --out /absolute/tools/lispex-aot-compiler

설치 제품 검사와 빌드 검사를 모두 통과한 컴파일러 칸은 macOS ARM64 하나뿐입니다. Linux, Windows, macOS Intel용 컴파일러 칸은 제공하지 않습니다. 컴파일러 컴패니언에는 Rust, 링커, 플랫폼 개발 키트, 시스템 라이브러리가 들어 있지 않습니다. 리스펙스가 다른 대상 플랫폼으로 대신 채워 주지도 않습니다.

제품을 명시적으로 사용하기

설치는 경로를 등록하거나 기본값을 바꾸지 않습니다. 닫힌 제품 루트를 다시 넘겨주세요.

SH
lispex routes inventory \
  --topaz-vm /absolute/tools/lispex-topaz-vm/product

그다음 lock을 만들고 진단할 수 있습니다. lock은 어떤 설치 제품을 골랐는지 적어 두는 작은 파일이며, 파일 시스템 경로는 적지 않습니다.

SH
lispex routes lock \
  --route topaz-vm \
  --topaz-vm /absolute/tools/lispex-topaz-vm/product \
  --out topaz-route.json

lispex routes doctor \
  --selection topaz-route.json \
  --topaz-vm /absolute/tools/lispex-topaz-vm/product

설치를 옮겼다면 새 절대 product/ 경로를 넘기세요. lock과 설치 영수증은 파일 시스템 경로를 기억하지 않습니다.

설치부터 이동 후 실행까지

미리 컴파일해 둔 제품을 만든 뒤 두 선택형 엔진을 함께 확인하고 각각 잠급니다.

SH
lispex routes inventory \
  --topaz-vm /absolute/tools/lispex-topaz-vm/product \
  --aot-product /absolute/products/rule-aot

lispex routes lock --route aot \
  --aot-product /absolute/products/rule-aot \
  --out aot-route.json

네 가지 실행 방식을 정해진 한도 아래에서 한 번만 비교하려면 routes measure --samples 1을 쓰세요. 실행할 때는 고른 lock 하나만 지정합니다.

SH
lispex routes run \
  --selection aot-route.json \
  --aot-product /absolute/products/rule-aot \
  --input input.datum \
  rule.lspx

가상 머신 설치본이나 완성된 컴파일 제품을 옮겨도 됩니다. 새 절대 루트를 routes doctorroutes run에 다시 전달하되 lock은 고치지 마세요. Doctor는 새 위치의 바이트를 다시 검사합니다. lock을 그대로 두어도 통과한다는 것은 선택 식별자가 이전 경로에 기대지 않았다는 뜻입니다. 유지되는 이식 경로 전체 예제는 가져오기, 빌드, 목록, 잠금, 진단, 정해진 한도 아래의 측정, 잠금 실행, 이동을 한 흐름으로 보여 줍니다.

허용하는 아카이브

리스펙스는 압축하지 않고 바이트 단위까지 정해진 stored-ZIP 한 가지 형태만 받습니다. 압축, Zip64, 디스크립터, 암호화, 시간값, 여분 필드, 주석, 디렉터리, 중복되거나 정렬되지 않은 이름, 경로 탈출, 절대경로, 역슬래시, 심볼릭 링크, 특수 파일, 제한 초과, 해시 불일치를 모두 거부합니다. 비공개 형제 준비 영역에 쓴 뒤 목적지가 여전히 존재하지 않을 때만 공개합니다.

종료 2는 명령 사용 오류, 1은 식별자나 바이트 형식 계약 거부, 3은 로컬 입출력이나 자원 제한이나 덮어쓰기 방지 실패입니다. 실패해도 다른 항목, 다른 대상 플랫폼, 다른 버전, 다른 경로, 다른 실행 방식으로 재시도하지 않습니다.

보안 경계

유효한 카탈로그와 설치 영수증은 설치 바이트의 정확한 무결성을 확인합니다. 제공자의 신뢰성, 프로그램의 정당성, Rust와의 합의, 외부 행위 허가를 증명하지는 않습니다. 카탈로그, 아카이브, 영수증, 매니페스트, 실행 결과는 바우치 증거나 결정 게이트 입력이 될 수 없습니다. 영수증의 automatic_fallback:false는 다른 엔진으로 재시도하라는 뜻이 아닙니다. 그 동작을 금지한 경계입니다.

다음으로

일반적인 기본 실행 방식은 제품 선택 안내에서 확인하세요. 고급 고정 실행 전 점검은 routes doctor로 합니다.

실행 방식 고르기 · 네이티브 CLI · 미리 컴파일해 둔 제품 만들기