흔들리지 않는 중심
리스펙스는 결정 규칙을 위한 작은 언어이고, 입력 하나에는 언제나 답이 하나로 정해집니다. Rust가 레퍼런스 구현이며 추적하는 기본 기능 205행을 모두 지원합니다. 정확한 리스펙스 이미지는 원본 소스 바이트를 그대로 담았다가 그대로 돌려줍니다. 요청 결속 바우치는 묶음이 밝힌 문맥을 인증할 수 있고, 재실행과 로컬 결정 게이트까지 나아가는 것은 네이티브에서 정확한 요청을 밖에서 따로 받았을 때뿐입니다. 그 네이티브 경로는 같은 정확한 소스에서 만든 컴파일 산출물을 명시적으로 더해 검증된 Rust VM의 일치까지 요구할 수 있습니다. VM은 가상 머신으로, 소스를 읽는 대신 미리 준비된 명령을 실행하는 프로그램입니다. 이때도 기존 tree와 Meaning 검사는 그대로 통과해야 합니다. 여기서 tree는 소스를 그대로 읽어 내려가며 실행하는 내장 인터프리터를 뜻합니다.
호스팅 인터프리터의 경계는 계속 명시적입니다. 리스펙스로 쓴 리스펙스 인터프리터인 LIL은 지금 세는 기본 기능 205행을 모두 지원하고, 토파즈로 쓴 리스펙스 인터프리터인 LIT는 205행 가운데 84행을 지원합니다. LIT가 지원하지 않는 행은 호스트 동작을 빌리지 않고 실행을 거부합니다. LIL이 기본 기능을 전부 지원한다는 사실이 언어 전체의 동등성을 뜻하지는 않습니다.
방향을 읽는 법
| 방향 | 중요한 이유 | 실제 완료 신호 | 약속하지 않는 것 |
|---|---|---|---|
| 학습성 | 새 사용자가 첫 규칙을 쓰지 못하면 뛰어난 언어도 쓸모가 없음 | 실행 가능한 수업, 정확한 결과, 자연스러운 한·영·러 문서, 검증된 이동 경로 | 큰 언어, 강의 플랫폼, 숨은 학습 상태 |
| 결정적 제품 사용성 | 하나로 고정된 언어 의미를 설치하고 검사하고 자동화하기 쉬워야 함 | 정확한 로컬 제품, 안정된 진단, 네이티브·npm·WebAssembly·플레이그라운드를 과업 중심으로 안내 | 어디서 실행하든 똑같은 자원 한도 |
| 정확 소스 흐름 | 검토한 소스가 그림으로 옮겨 다녀도 바이트 그대로 살아야 함 | 담긴 바이트가 처음 넣은 바이트와 같다는 증명, 정확한 복원, 명시적 실행, 파일이 상했을 때의 분명한 실패 | 이미지 겉모습에서 얻는 기밀성·서명·출처 기록·권한 |
| 요청 결속 근거 | 인증이 몰래 허가로 바뀌면 안 됨 | 네이티브가 규칙을 다시 실행하고 게이트를 확인하기 전에 소비자가 소스와 입력을 직접 고정 | 신선도·재전송 방지·정책 정당성·외부 행위 허가 |
| 확인 가능한 결정 교환 | 수신자가 런타임이 어떻게 만들어졌는지 몰라도 정확한 결정 기록과 허용된 발급자를 확인할 수 있어야 함 | 언제나 같은 답을 내는 엔진 하나, 누가 발급했는지 확인하는 선택 단계, 수신자가 직접 고정하는 요청, 새로 실행한 결과를 서로 다른 결론으로 보고 | 서명을 신선도·정당성·행동 허가로 해석 |
| 한계를 밝힌 백엔드 성장 | 언어를 얼마나 덮는지 잴 수 있을 때만 다른 구현이 유용함 | 명시적 기능 행, 부정 대조, 어디서 왔는지 적은 기록, 영수증 | 조용히 다른 방식으로 넘어가는 일이나 언어 전체 동등성 주장 |
| 연구 증거 | 비교는 무엇을 셌고 무엇을 가정했는지 밝혀야 함 | 이름 붙인 코퍼스·실행기·관측·불일치·비교 불가 | 시험 개수로 만든 증명이나 릴리스 기한 |
이식 실행 경로를 만드는 순서
아키텍처 결과는 순서대로 진행합니다. 안정된 프로필에서 LIL 기능 지원이 완성됐고, 이제 네이티브는 정규화한 Core 전체를 Core IR로 내립니다. Core IR은 규칙을 검사해 언제나 같은 방식으로 적어 두는 내부 형식이고, 해석된 셀과 명시적 꼬리 위치, 프리미티브 ID, 소스 위치, 비용 식별자, 단 하나의 엄격한 JSON 바이트 표현을 담습니다. 공개 명령은 이 산출물을 실행하거나 권한을 주지 않고 build·validate·inspect합니다.
이제 네이티브는 strict Core IR을 lispex.bytecode/v1로 컴파일합니다. 이
바이트코드도 언제나 같은 방식으로 적힙니다. 잘못된 구조는 실행 전에 거부하고,
검증을 마친 산출물은 제어를 명시적으로 다루는 Rust VM lispex-rust-vm/v1에서
실행합니다. 소스에서 시작하는 경로는 --engine vm을 고를 수 있고, 기본값은
계속 tree이며 VM은 다른 방식으로 넘어가지 않습니다. tree와 VM을 좁혀 비교한
기록은 정확한 중간 식별자와 의미 축을 남기면서 두 경로가 같은 Rust 계보임을
정직하게 표시합니다.
바우치에 결속된 컴파일 실행은 이 순서가 낳은, 한계가 분명한 결과입니다. 인증과
요청 고정을 마친 뒤 소비자의 정확한 소스에서 다시 유도한
lispex.vouch-compiled-artifact/v1만 기존 tree·Meaning 사슬에 현재 검증된 Rust
VM 일치를 더할 수 있습니다. 일반 바이트코드, 어떤 컴파일러가 만들었는지 적은
기록, 산출물, 보고서는 스스로 권한으로 올라서지 못합니다.
이제 macOS ARM64 네이티브는 별도로 정확히 설치한 토파즈 5.11
lispex-topaz-vm/v1 제품도 받아들입니다. 명시적인 토파즈 바이트코드 경로와
compare-vms는 제공 제품과 요청과 결과, 정확한 바이트코드와 입력 식별자, 전체
폭 u64 자원, 대체 실행 0을 결속합니다. 기본 실행기는 계속 Rust이고, 토파즈의
요청이나 결과나 비교는 어떤 바우치 명령에도 넣을 수 없으며, 이 비교는 독립적인
동등성의 증명이 아니라 한계를 밝힌 근거입니다.
macOS ARM64 네이티브에는 정확성을 앞세운 명시적 리스펙스→토파즈 경로도 있습니다. 이 경로는 AOT를 씁니다. AOT는 실행하기 전에 규칙을 프로그램으로 바꿔 두는 것을 뜻합니다. 검증된 정적 제어 그래프에서 읽을 수 있는 토파즈 코드와 소스 맵을 만들고, 정확히 설치한 토파즈 5.11 컴파일러만 사용하며, 소스를 담지 않은 제품을 설치합니다. 그러면서 소스와 Core IR과 바이트코드와 생성 묶음과 산출물과 실행 파일과 자원과 대체 실행 0의 식별자를 모두 결속해 둡니다. 이것은 바우치 밖의 실행 재료이지 새 백엔드 계열이나 동등성 증명이 아닙니다. 이제 네이티브는 요청 하나를 유도해 tree와 Rust VM과 정확한 토파즈 VM과 이에 대응하는 AOT 제품을 진단 영수증 하나에 함께 담을 수 있고, 이 영수증은 기존 기록을 덮어쓰지 않습니다. 의미 축과 비교 가능한 자원 축, 계보, 모든 대체 실행 여부는 그대로 드러납니다. 이 영수증은 권한을 주지 않고 네 경로를 네 독립 증인으로 바꾸지도 않습니다.
안정된 다중 경로 제품은 이제 공개되어 있습니다. 네이티브는 네 실행 경로를 정직하게 나열하고, 로컬 경로를 적지 않는 선택 잠금을 쓰고, 정확한 설치를 진단하고, 밝혀 둔 한계 안에서 측정값을 모아 잠근 경로를 실행할 수 있습니다. 선택 잠금은 어떤 경로를 골랐는지만 적고 그 제품이 내 컴퓨터 어디에 있는지는 적지 않는 작은 파일입니다. 기본값은 계속 Rust tree이며 자동 탐색과 재시도, 조용히 다른 방식으로 넘어가는 일, 토파즈 결과에서 나온 바우치 권한은 없습니다.
이식 가능한 경로 배포에는 이제 언제나 같은 방식으로 적는 카탈로그와 로컬 경로를 적지 않는 설치 영수증, 한계를 정해 둔 오프라인 아카이브 설치기, 제한된 공식 가져오기 경로가 있습니다. 네이티브는 바이너리에 내장된 정확한 항목만 가져옵니다. 현재 카탈로그에는 설치해 실행한 근거가 있는 macOS ARM64 토파즈 VM과 정확한 AOT 컴파일러 동반 제품이 있고, 지원하지 않는 대상은 빠져 있습니다. 설치와 실행은 계속 분리되며, 컴파일러 동반 제품은 빌드할 때 따로 고른 Rust 도구 모음을 요구합니다. Python과 브라우저, WebAssembly 직접 실행, 최적화, 크로스 컴파일을 비롯한 다른 동반 제품 대상은 약속한 날짜가 아니라 근거를 갖춰야 하는 방향으로 남아 있습니다.
설치 제품 여정도 끝까지 닫혔습니다. 같은 명시 제품이 목록과 로컬 경로 없는 선택, 진단, 한계를 밝힌 비교, 잠근 실행, 잠금을 바꾸지 않는 이동을 그대로 통과합니다. 다음 제품 경로를 자동으로 찾거나 더 넓은 대상을 주장하지 않습니다.
네이티브에는 도우미가 표준 입출력으로 이야기하는 로컬 작성 통로도 하나 있습니다. 도우미는 설치된 제품의 정확한 폼과 프로시저를 찾고, 크기와 시간을 제한한 신뢰 소스 예제를 Rust tree에서 실행하고, 진단을 조회하고, tree와 Rust, Rust와 토파즈, 또는 네 경로 전체를 비교하는 고정된 검사 하나를 요청할 수 있습니다. 이 통로는 적대적인 소스를 가두는 격리 상자가 아니며, 게스트가 한 모든 작업이나 논리적 할당을 세지도 않습니다. 소스 트리를 두지 않는 설치 제품 점검 여정은 도구 네 개와 CLI 진단이 정확히 일치하는지, 금지한 호스트 기능, 자원 한도에 따른 종료와 회복, 일치, 정직한 불일치나 사용 불가, 청소를 확인합니다. 이 여정은 경로를 찾거나 답을 고르거나 소스를 보관하거나 원격 서비스를 열거나 바우치 권한을 만들지 않습니다.
정해진 작업량과 메모리 한도 안에서 도는 정확한 평가기는 이제 별도로 보존하는 WebAssembly 컴포넌트로 공개되어 있습니다. 이 컴포넌트는 바깥에서 가져다 쓰는 것이 하나도 없습니다. 평가기는 규칙을 실행하는 프로그램입니다. 네이티브는 그 정확한 바이트를 내장하며 준비와 평가, 결정적 작업량과 논리 할당 한도, 의미 결과와 요청 거부, 운영 중단과 엔진 오류를 구분합니다. 자격이 있는 결정적 결과만 동결된 휴대 코어를 가집니다. 휴대 코어는 규칙과 입력, 한도, 한 번의 실행 결과를 한데 묶어 둔 작은 기록입니다. 평가기에는 호스트 기능도, 자동 탐색도, 다른 방식으로 넘어가는 일도, 원격 전송도 없고, 평가기가 만들어 낸 것은 무엇도 바우치 증거로 올라가지 못합니다.
현재 프로필 전체를 다루는 평가기도 같은 방식으로 한도 안에서 도는 두 번째 별도
컴포넌트로 공개되어 있습니다. 목록에 없는 것은 받아들이지 않는 생성된 권위
하나가 기본 기능 205행을 모두 포괄하고, 전체 계수기는 준비와 평가의 자원을
나눠서 셉니다. 이 계수기는
작업을 하기 전에 먼저 빼고 되돌려주지 않습니다. 네이티브는 명시적인
embed full 명령에서만 이를 노출하며 작업마다 새 인스턴스를 만듭니다. 이는
제한된 컴포넌트의 이름이나 범위를 바꾸지 않고, 자동 탐색과 다른 방식으로
넘어가는 일과 호스트 기능과 바우치 증거 승격과 토파즈 수용을 더하지 않습니다.
확인 가능한 결정 흐름도 공개되어 있습니다. 네이티브 rule run은 검토한 규칙
하나와 엄격한 JSON 입력, 정확한 한도를 받아 소스를 담지 않는 다섯 파일짜리 결정
디렉터리를 만듭니다. 이때 전부 만들거나 하나도 만들지 않습니다. inspect와
verify는 규칙을 실행하지 않습니다. replay는 정확한 평가기의 새 인스턴스를
써서 결과와 휴대 코어가 일치해야만 통과합니다. 이 기록은 확인할 수 있지만 외부
행동 권한은 주지 않습니다.
인증된 결정 교환은 이제 공개 제품입니다. 첫 환불 결정 흐름과 정확한 네이티브
인계는 바뀌지 않은 평가기와 휴대 코어 바깥의 선택형 발급자 봉투로 이어집니다.
수신자 정책과 서명 유효성, 요청 결속, 재실행, 재사용 방지, 외부 권한은 따로
유지합니다. 크기 한도를 정해 두고 언제나 같은 방식으로 적는 일곱 파일짜리
.lpxdecision 묶음 하나가 네이티브 전체 생명주기와, 검사와 인증만 하고 발급은
하지 않는 npm 쪽을 함께 지원합니다. 소스를 두지 않고 설치한 네이티브·npm 점검은
묶음을 옮겨도 새 인스턴스로 다시 실행해도 그대로임을 확인하지만, 묶음을 바우치
증거나 행동 권한으로 만들지는 않습니다.
함부로 움직이지 않는 것
수업이나 백엔드, 산출물을 구현하기 쉽게 만들려고 언어 의미론을 바꾸지 않습니다. 실제 의미 변경은 런타임 명세와 Rust 구현, 시험, 영수증, 공개 설명을 한꺼번에 갱신해야 합니다. 정확한 이미지는 소스를 표현하는 방식일 뿐입니다. 새 자료형도 아니고 컴파일러도 아닙니다. 바우치 산출물은 근거로 남을 뿐 남에게 넘길 수 있는 권한이 아닙니다.
현재 경계
- 로드맵 방향에는 버전, 날짜, 인력 약속이 붙어 있지 않습니다.
- Rust, LIL, LIT는 출처를 따로 표시한 실행 계열입니다. 생성하거나 포장한 변형은 독립 증인이 되지 않습니다.
- 역사적 세 계열 영수증은 검사한 144사례 중 59사례의 전 계열 일치를 기록합니다. 문서에서 이 144라는 수를 늘리면 안 됩니다.
- 미래 백엔드나 기계화 모델도 명시한 언어 범위와 가정만 닫습니다.
다음으로
이 한계를 택한 이유는 철학에서, 실제로 제공된 기능의 정확한 시간 순서는 히스토리에서 확인하세요.