토파즈는 두 가지 리스펙스 표면을 제공합니다. topaz lispex embed run은 패키지 설정이나 빌드 없이 규칙 하나를 평가하고 결과를 기록합니다. Lispex-in-Topaz의 약어인 LIT는 토파즈로 작성한 인터프리터 소스를 직접 실행, 생성 Rust, 생성 Python, Web 경로에서 구동하는 리스펙스 테스트·통합 표면입니다.
리스펙스란
리스펙스는 의사결정 규칙에 특화된 리스프이며 스킴에 가깝게 설계되었습니다. 입력 하나에 결정론적인 답 하나가 나옵니다. 같은 규칙과 같은 입력이면 결과가 늘 같습니다.
요청은 이름 붙은 필드의 목록으로 들어오고, 거부를 포함한 모든 답도 목록으로 나옵니다. 토파즈와는 별개의 언어이며 자체 문서와 자체 버전 체계를 가집니다. 자세한 내용은 리스펙스 사이트에 있습니다.
목적에 맞는 경로 고르기
- 개발 중인 애플리케이션 내에 리스펙스 규칙을 포함하려면 리스펙스 규칙 실행하기 문서를 참고하세요.
- 별도의 패키지 구성 없이 단일 규칙만 평가하려면
topaz lispex embed run명령을 사용하세요. - 토파즈 애플리케이션을 배포할 때는 지원 대상 출력 타깃 중 하나를 선택하세요.
- LIT는 통합 검증 증거로 기능합니다. 대규모 리스펙스 프로그램을 활용해 토파즈 툴체인의 여러 구성 요소를 동시에 검증하는 용도로 사용됩니다.
- 리스펙스 제품을 사용하는 경우 관련 제품 문서의 안내를 따르세요. 본 문서는 토파즈 연동 경계를 다룹니다.
리소스 한도를 선언하고 요청 하나 실행하기
기본 리스펙스 규칙 파일, 정본 lispex.embed-value/v1 입력 파일, 닫힌 자원 제한 설정 파일을 준비한 후 결과를 저장할 새 출력 디렉터리를 지정합니다.
topaz lispex embed run \
--source rule.lspx \
--input value.lpxvalue \
--limits limits.json \
--output lispex-result자원 제한 정의 문서는 아래 스키마 구성을 유지해야 합니다. 설정값은 낮출 수 있으나 필드를 추가하거나 삭제할 수는 없습니다.
{
"schema": "topaz.lispex-embed-limits/v1",
"prepare": {
"raw_source_bytes": 4096,
"prepare_work": 1000000,
"logical_allocation": 1000000,
"syntax_depth": 64
},
"evaluate": {
"canonical_input_bytes": 4096,
"eval_work": 1000000,
"logical_allocation": 1000000,
"semantic_frames": 1000,
"traversal_depth": 256,
"output_bytes": 1000000,
"diagnostic_bytes": 1000000,
"transcript_bytes": 1000000,
"transcript_events": 100,
"result_bytes": 1000000
}
}실행이 성공하면 lispex-result 디렉터리에 result.lpxvalue 파일과 report.json 파일이 생성됩니다. 결정론적 시맨틱 오류나 자원 한계 초과가 발생한 경우에는 리포트 파일만 생성됩니다. 요청이 거부되거나 엔진 내부 오류가 발생하는 경우 출력 디렉터리가 생성되지 않습니다. 고정 구성 요소 및 폴백 미적용 정책은 다음 명령으로 점검할 수 있습니다.
topaz lispex embed info --json이 명령은 고정된 구성 요소·프로필·런타임·경로 동작을 사용하며 구성 요소 탐색, 다운로드, 콜백, 폴백을 수행하지 않습니다. 보고서에는 토파즈 실행과 수용 결과가 기록되고, 리스펙스 형식의 이식 가능 코어는 애플리케이션 아티팩트 API에서 생성합니다.
LIT 검증 결과가 뜻하는 것
LIT의 단일 정본 소스 계보를 직접 실행, 생성된 Rust, 생성된 Python, Web 실행 경로에서 각각 검사합니다. 이 검증용 프로그램은 검사 단계, 코드 생성, 런타임 동작, 호스트 경계 등에서 발생하는 결함을 감지하는 역할을 합니다.
LIT 통과 기록에는 프로그램, 실행 경로, 입력, 관찰 결과가 명시됩니다. 미지원 연산은 명확한 오류를 반환합니다. 네 실행 경로는 하나의 소스 계보를 공유하며, 검사·낮추기·런타임·호스트 경계의 회귀를 경로별로 드러냅니다.
제품 경계
설치 평가기는 topaz lispex embed를 통해 문서에 지정된 구성 요소, 프로필, 파일 입력, 리소스 한도, 출력 계약을 처리합니다. 토파즈 출력 타깃 선택은 별도 표면이며 --target lispex와 --target lit는 산출물 출력 전에 거부됩니다. LIT는 설치 패키지와 구분되는 저장소 테스트·통합 시스템에 속합니다.
토파즈 애플리케이션에서 리스펙스 사용하기
패키지는 명명된 리스펙스 규칙을 완전한 현재 프로필 평가기, 소스, 리소스 한도, 내장 구성 요소와 연결합니다. 락 파일 기반 빌드는 각 규칙을 한 번 준비한 뒤 std.lispex와 std.lispex.rules를 생성합니다. 토파즈 코드는 원시 Wasm 핸들 대신 불투명한 규칙·값 타입을 참조합니다. 게스트 메모리, 전역 상태, 계량기, 트랜스크립트 버퍼는 평가마다 새로 생성되며, 애플리케이션 전역 한도·취소·정리 규칙이 호출 한도를 감쌉니다.
타입이 지정된 결과만 필요한 경우 evaluate를 사용하세요. 이식 가능한 실행 기록이 함께 요구되는 결정론적 결과 산출에는 evaluateWithEvidence를 사용하세요. consumerArtifactBytes는 저장용 실행 기록을 바이트 형태로 내보내며, consumerArtifactFromBytes는 검증된 바이트 데이터만 다시 수용합니다. inspectConsumerArtifact와 verifyConsumerArtifact는 안정된 식별성을 검증하며, portableCoreBytes는 코어 데이터가 존재할 때 정교한 리스펙스 규격의 바이트를 추출합니다. freshReplay는 기록에 지정된 한도를 적용해 동일한 규칙과 입력을 새 게스트 인스턴스에서 평가하며, 전체 기록이 동일할 때만 성공합니다.
코어 및 외부 기록은 컨슈머가 생성한 미인증 데이터입니다. 발행자 정보, 공급자 승인, 서명 권한, 구성 요소 승인, 외부 작업 권한 등을 포함하지 않습니다. 로컬 사전 거부, 취소, 큐 거부, 안전 한도 선점, 엔진 결함 발생 시에는 이식 가능한 코어가 생성되지 않습니다.
완전한 현재 프로필 애플리케이션은 인터프리터와 다섯 네이티브 릴리스 타깃의 생성 제품에서 실행됩니다. 설치 패키지는 npm 설치, 소스·컴파일러 제거, 실행 파일 이관, 다중 입력 실행, 리소스 한도 거부, 타임아웃 복구, 아티팩트 검증, 새 인스턴스 재실행을 지원합니다. Python, Web, HTTP 서비스, no-capability, 빈 구성 요소 MCP 경로는 산출물 출력이나 실행 전에 거부됩니다. 토파즈 5.18 호환 경로는 자체 구성 요소·프로필·계약·준비 아티팩트 식별자를 지닌 embedded-core 호환 프로필로 유지됩니다.
매니페스트, 규칙, 리소스 한도, 락, 빌드, 실행, 아티팩트, 재실행 워크플로는 리스펙스 규칙 실행하기 문서를 따르세요. LIT는 테스트·통합 표면이며, 안내 문서는 완전한 현재 프로필 리스펙스 결정 애플리케이션을 구축합니다.