리스펙스 기능이 언제 들어왔는지, 프로그램 동작이 어느 버전에서 바뀌었는지 찾을 수 있습니다. 지금 사용할 기능은 제품과 지원 플랫폼에서 확인하세요.
예를 들어 출력과 자원 종료의 변경을 찾으려면 아래의 v1.20.0을 읽습니다. 그 개발 기록인 v1.19.1부터 v1.19.5까지는 공개 릴리스 뒤의 접힌 항목에서 확인합니다.
버전 읽는 법
X.Y.0은 v1.21.0처럼 새 마이너 버전의 첫 릴리스입니다.
Z가 양수인 X.Y.Z 패치 릴리스에는 해당 버전 계열에 반영한 호환 수정이 들어갑니다.
아래의 v1.19.5 같은 개발 체크포인트는 공개 릴리스와 따로 구분합니다.
각 항목은 해당 버전 당시의 기능을 설명합니다. 현재 명령과 플랫폼과 지원 범위는 카탈로그와 CLI 참조를 읽으세요.
변경 내역에 기여하기
확인된 변화는 알게 된 시점에 해당 버전 항목에 반영합니다. v1.21.0 항목에는 기능과 품질 개선, LIL/LIT 퇴역을 모읍니다. 개발 커밋 하나가 곧 패치 릴리스 하나가 되지는 않습니다. 이전 버전 계열에 제공하는 수정은 그 계열에 실제 반영하고 확인한 뒤 해당 변경 내역에 기록합니다.
사용자의 입력과 그 결과, 호환성에 생긴 변화를 설명하세요. 새로운 사실로 과거 설명의 누락이나 오류를 확인하면 그 설명을 고치고 공개된 버전과 원래 파일은 보존합니다. 파일 출시 직전과 직후에는 실제 포함 소스와 동작을 설치 방법, 다운로드, 버전 표시, 변경 내역과 대조합니다. 출시 뒤에도 수정과 세부 사항이 확인되면 관련 문서를 갱신합니다.
기록에 쓰인 용어
| 용어 | 뜻 |
|---|---|
| 네이티브 | 설치해서 쓰는 리스펙스 실행 파일 |
| 리스펙스 인터프리터 / 리스펙스 VM | 현행 소스 인터프리터 / 리스펙스 바이트코드 실행기 |
| Rust tree / Rust VM | 리스펙스 인터프리터 / 리스펙스 VM의 이전 이름이며 원기록에는 당시 이름을 유지 |
| LIL / LIT | 리스펙스 / 토파즈로 작성한 퇴역 인터프리터이며 LIL은 Rust 인터프리터 위에서 실행 |
| 토파즈 VM / AOT | 리스펙스 바이트코드를 실행한 과거 토파즈 실행기 / 토파즈를 거쳐 네이티브 프로그램으로 컴파일하기 |
| Core IR | 각 이름이 어떤 변수를 가리키는지 정한 중간 표현 |
| VM | 미리 준비한 명령어를 실행하는 가상 머신 |
| AOT | 원래 소스 없이 실행할 프로그램을 미리 컴파일하기 |
| ABI | 바이너리 호출 규약 |
| DSSE | Dead Simple Signing Envelope, 서명된 기록 묶음 |
| MCP | 로컬 도구 서버를 연결하는 Model Context Protocol |
| WASM | 브라우저와 내장 런타임에서 쓰는 바이너리 프로그램 형식 |
| 이식 가능한 핵심 기록 | 한 번의 실행 입력과 결과를 묶어 다른 환경에서도 읽는 기록 |
공개 릴리스
v1.21.0 · 실행 경로 정리와 LIL/LIT 퇴역
LIL과 LIT는 내부 교차검증 역할을 완수했으며 앞으로의 유지보수 비용을 줄이기 위해 퇴역했습니다. 소스는 리스펙스 인터프리터로 실행하고 검증한 리스펙스 바이트코드는 리스펙스 VM으로 실행합니다. 이 현행 이름은 LIL/LIT와 옛 토파즈 VM/AOT 동반제품을 구별합니다. 결정 평가기와 전체 평가기는 각각의 프로파일과 ABI와 값 코덱과 취소와 자원 한도를 유지합니다. 바우치와 SICP와 이미지와 토파즈 임베딩도 이 엔진으로 이어집니다. 과거 소스와 연구 기록과 영수증과 산출물과 버전별 문서는 보존합니다.
v1.20.0 · 자원 사용량과 출력
Rust와 LIL에서 다섯 자원 사용량 계수기를 제공합니다. 재귀 안전 한계에 도달하면 자원 종료로 보고합니다. 네이티브와 npm과 WASM과 플레이그라운드는 성공한 형식을 순서대로 출력합니다. 일반 실행 오류는 앞선 출력을 보존합니다. 자원 종료는 빈 출력과 상태 2를 반환합니다. 브라우저 결과에는 output, diagnostics, ok, exit_status가 있습니다. SICP 링크 미리보기 그림도 바뀌었습니다.
v1.19.0 · Meaning Graph v1
Meaning Graph v1과 Meaning Environment v1에서 letrec, 내부 정의, 나머지 인자, set!, define의 공유 변수를 다룹니다. 꼬리 호출과 call/cc를 통한 일회 상향 탈출, dynamic-wind의 바깥쪽 정리 동작을 지원합니다. meaning-diff는 바우치와 별도로 출력과 값과 경고와 오류를 비교합니다.
v1.18.0 · SICP 런타임과 과정
별도 SICP 런타임 @lispex/sicp@1.0.0과 lispex sicp run, sicp.io 과정을 공개합니다. 네이티브와 외부 임포트 없는 WASM에서 고정 자원 한도와 구조화된 실행 기록과 정확한 실행 추적을 제공합니다. 결과를 기억하는 스트림, 변경 가능한 유니코드 문자열, 같은 조건에서 재현되는 실수 계산, 임의 정밀도 수를 지원합니다. 장별 데이터와 파생 문법, 결정적 SVG, 협력적 스케줄 탐색도 제공합니다. 장별 시스템 8개는 메타순환·분석형·지연·amb 평가기, 논리 질의, 레지스터 머신, 명시적 제어 평가기, 컴파일러입니다.
v1.17.0 · 환불 애플리케이션 인계
로컬 키와 수신자 정책과 인증된 결정 교환을 담은 환불 예제를 공개합니다. 이미지 기반 바우치는 환불 입력 두 값과 요청 ID, 행위자, 행동, 만료 시각을 애플리케이션에 전달합니다. 서로 다른 프로토콜을 섞은 입력은 거부합니다.
v1.16.0 · 전체 내장 평가기
lispex-profile-1.5의 프로시저 205개를 모두 지원하는 별도 평가기를 공개합니다. 외부 임포트가 없고 자원 사용량 계수기와 구성요소 식별자를 따로 둡니다. 네이티브에서 prepare, evaluate, inspect, verify, replay를 제공하며 실행에는 새 인스턴스를 씁니다. 배포물에는 이식 가능한 기준 입력과 결과, 재배포 아카이브와 릴리스 의존 관계 기록이 있습니다.
v1.15.0 · 인증된 결정 교환
환불 예제와 네이티브 작성 자료 인계, Ed25519 발급자 기록, 수신자 정책, 정규 .lpxdecision 묶음을 갖춘 결정 교환을 공개합니다. 네이티브는 전체 흐름을, npm은 검사와 인증을 제공합니다.
v1.14.0 · JSON 결정 흐름
JSON 규칙 실행과 개별 한도, 원자적 rule run, 실행 없는 검사와 검증, 새 인스턴스 재실행을 공개합니다. 공통 환불 예제와 라이선스를 포함한 평가기 재배포 아카이브를 제공합니다.
v1.13.0 · 내장 평가기
외부 임포트 없는 평가기와 준비·평가의 개별 한도로 네이티브 lispex embed prepare/evaluate/inspect/verify를 공개합니다. 이 평가기의 언어 프로파일, 자원 계량, 바이너리 호출 규약, 값 코덱, 이식 가능한 기록 형식을 고정합니다. /llms.txt와 현재 문서용 사이트맵을 추가합니다.
v1.12.0 · 로컬 MCP 도구
설치된 참조 조회, 신뢰하는 소스의 크기·시간 한도 평가, 진단 조회, 고정된 실행 비교를 네이티브 MCP 도구로 공개합니다. 표준 입출력으로 연결하며 입문 안내와 도구 설명 정보를 제공합니다.
v1.11.0 · 보조 도구 설치
실행 카탈로그와 무압축 ZIP 설치기, macOS ARM64용 토파즈 가상 머신·AOT 컴파일러의 고정 버전 다운로드를 공개합니다. 설치한 제품은 위치를 옮겨 사용할 수 있습니다.
v1.10.0 · 실행 선택과 진단
네이티브의 목록 조회와 진단과 측정, 로컬 경로를 담지 않는 선택 잠금을 공개합니다. 잠금으로 기준 인터프리터와 Rust 가상 머신과 토파즈 가상 머신과 AOT 실행을 선택합니다.
v1.9.0 · 바이트코드와 컴파일과 학습
입문 과정, LIL의 프로시저 205개 지원, Core IR, 검증된 바이트코드와 Rust 가상 머신을 공개합니다. 소스 포매팅, 요청에 연결한 컴파일 바우치, 토파즈 가상 머신·AOT 실행, 네 실행 방식 비교를 제공합니다.
v1.8.0 · 리스펙스 이미지
같은 Rust 구현으로 네이티브와 npm과 Node·브라우저 WASM과 로컬 플레이그라운드에 리스펙스 이미지를 공개합니다. 정규 이미지는 요청에 연결하는 바우치에 정확한 소스 바이트를 제공합니다.
v1.7.0 · 요청에 연결하는 바우치
요청에 연결하는 바우치를 공개합니다. 사용자는 식별자와 정책과 묶음을 만들고 네이티브나 npm에서 인증합니다. 인증할 때 별도로 제공한 소스와 입력을 비교할 수 있습니다. 네이티브 재실행과 결정 게이트는 그 외부 요청을 사용합니다.
v1.6.0 · 바우치 묶음과 정책
이식 가능한 묶음 v0, 키별 소스 정책 v1, 공통 Rust 소스 식별자와 정책 도구를 제공합니다. 서명된 기록 자체나 묶음을 인증할 수 있습니다.
v1.5.0 · LIL과 LIT
LIL과 LIT에서 각각 프로시저 84/205개를 지원하는 실행을 공개합니다. 세 런타임 구현 계열의 공동 기록과 네이티브·npm·WASM·플레이그라운드 배포를 제공합니다.
v1.4.0 · 런타임과 배포
네이티브와 npm과 WASM과 플레이그라운드의 동작을 맞춥니다. 검사 평가기에 apply와 다중 값 실행을 추가합니다. 실행 기록의 작업량 한도를 설정하고 고정한 네이티브 배포물을 받을 수 있습니다.
v1.3.0 · 결정 기록
검사 언어 프로파일의 결정 기록과 오프라인 검증, 기록된 사례 비교를 공개합니다.
v1.2.0 · 첫 통합 v1
복구 가능한 raise, guard, with-exception-handler 오류 처리와 함께 첫 통합 v1을 공개합니다. 네이티브와 Node·WASM과 플레이그라운드에서 실행합니다. 2026-06-28과 2026-06-29의 초기 작업에서 재현 가능한 소스 읽기, 이름 충돌을 피하는 정규화와 트램펄린 평가를 마련했습니다. 정확한 정수와 유리수, 유한 실수, 일정한 값 표기를 지원합니다. 일회 상향 call/cc, dynamic-wind, 다중 값, 꼬리 호출을 유지하는 apply와 R7RS 계열 프로시저도 제공합니다.
개발 체크포인트
필요한 마이너 번호만 펼쳐 읽으세요. 개발 중의 기록이며 설치할 공개 버전은 위의 공개 릴리스 목록에서 고릅니다.
v1.19.x 개발 기록
v1.19.1부터 v1.19.5까지는 공개 v1.20.0에 포함됐습니다. Meaning Graph와 Meaning Environment는 v1.19.0 공개 전까지 v1.18.0 개발 식별자를 사용했습니다.
| 버전 | 변경 |
|---|---|
| v1.19.5 | Rust와 LIL에서 프런트엔드 전이, 토큰, 정규화 단계, 머신 전이, 출력 바이트의 사용량을 셉니다. 진단 계열을 맞추고 재귀 안전 한계 소진을 non-tail-call-depth로 보고합니다. 네이티브와 npm과 WASM과 플레이그라운드의 전체 소스 출력을 맞춥니다. SICP 링크 미리보기 그림을 갱신합니다. |
| v1.19.4 | 제품 매니페스트에 지원 동작을 기록합니다. 실행 기록에서 스키마 식별자와 계약 식별자를 구분하고 식별 필드를 갖춥니다. LIL의 표준 출력을 Rust와 맞춥니다. 배치 실행은 명시한 출력만 내보내고 전체 소스 CLI는 성공한 최상위 값도 출력합니다. 정규화기 진단은 원래 발생 단계를 유지합니다. |
| v1.19.3 | 정의하지 않은 이름은 실행 중 처음 값이 필요해질 때 원래 소스 위치의 E300 오류를 냅니다. 사용하지 않은 미정의 이름은 허용합니다. 오류 전에 확정한 출력은 보존합니다. |
| v1.19.2 | 빈 소스와 공백만 있는 소스, 주석만 있는 소스, 공백과 주석만 있는 소스를 빈 프로그램으로 받습니다. 값 0개와 빈 출력과 상태 0을 반환합니다. |
| v1.19.1 | 최상위나 내부 정의 문맥에 중첩된 begin을 소스 순서대로 하나의 정의 범위에 펼칩니다. 일반 표현식 문맥의 begin 안에서 쓰는 define은 정적 오류입니다. |
v1.16.x 개발 기록
| 버전 | 변경 |
|---|---|
| v1.16.6 | 설치된 네이티브와 npm 환불 예제를 확인한 개발 기록입니다. |
| v1.16.5 | 최종 애플리케이션 인계와 파일 매니페스트, 26개 파일의 환불 아카이브, 별도 네이티브 아카이브 판독기, 세 언어 실습 안내를 추가합니다. |
| v1.16.4 | 네이티브 workspace status로 26개 파일 목록과 25개 항목의 매니페스트를 확인합니다. 작업 슬롯 여덟 개는 존재 여부를 확인하고 고정된 후보 명령 이름 두 개를 표시합니다. 안내는 결정 교환을 먼저 설명하고 이미지 기반 바우치를 별도로 다룹니다. |
| v1.16.3 | 네이티브와 npm에서 검토한 공개키 하나와 명시적으로 직렬화한 제약 네 개로 수신자 정책을 직접 만들고 검사합니다. 결과 바이트는 기존 디렉터리 기반 정책과 같습니다. 예제 출처 기록은 lispex.recipient-sample-provenance/v1을 씁니다. |
| v1.16.2 | 네이티브는 운영체제의 암호학적 난수원으로 Ed25519 키를 만들어 사용자가 지정한 새 디렉터리에 저장합니다. 네이티브와 npm은 같은 공개 SPKI DER 키에서 결정 발급자 식별자와 바우치 식별자를 따로 표시합니다. |
| v1.16.1 | 환불 작업공간을 핵심 파일 21개와 이전 버전에서 그대로 가져온 파일 5개로 구성합니다. 환불 사실 세 개를 이식 가능한 문자열과 정규 결정에 각각 대응합니다. |
v1.15.x 개발 기록
| 버전 | 변경 |
|---|---|
| v1.15.8 | 이 버전의 전체 평가기 구성요소를 고정하고 토파즈에 구성요소 인계 자료를 제공합니다. LPXART01과 LPXFAR01 형식은 구분합니다. 기준 입력과 결과, 재배포 아카이브, 보존 정보와 릴리스 의존 관계 기록도 함께 제공합니다. |
| v1.15.7 | 외부 임포트 없는 별도 전체 프로파일 WASM 평가기를 추가합니다. 네이티브의 prepare, evaluate, inspect, verify, replay는 실행마다 새 인스턴스를 씁니다. |
| v1.15.6 | 프로시저 205개 모두에 실행 자원 허가를 적용합니다. 비용 분류는 Fixed, Numeric, Text, Collection, Effect, GuestCalling의 여섯 가지입니다. |
| v1.15.5 | 사용자 코드를 호출하는 프로시저 18개에서 스냅샷, 콜백 벡터, 출력 버퍼, 리스트와 벡터와 문자열 생성에 자원을 계량합니다. 할당 실패와 작업량 한도 소진은 진단으로 보고합니다. |
| v1.15.4 | 사용자 코드를 호출하는 프로시저 18개를 가상 머신의 명시적 제어 프레임으로 실행합니다. 정해진 작업량 한도를 적용하고 호스트 재귀 호출을 사용하지 않습니다. |
| v1.15.3 | 프로시저 205개 전체의 자원 비용을 정합니다. 별도의 반복형 결과 인코더가 값 코덱 v1의 모든 이식 가능한 데이터 태그를 지원합니다. |
| v1.15.2 | 생성한 프로시저 등록부 205행 하나에서 설치할 프로시저와 Core IR 식별자를 가져옵니다. |
| v1.15.1 | 전체 평가기의 소스 읽기 규칙과 형식, 명령어, 값, 진단, 프로시저 205개를 정리합니다. 재사용하는 기존 형식도 구분합니다. |
v1.14.x 개발 기록
| 버전 | 변경 |
|---|---|
| v1.14.6 | 설치된 네이티브와 npm의 결정 교환, 설치 위치 이동, 재실행을 확인한 개발 기록입니다. 결과를 제품 보고서에 남겼습니다. |
| v1.14.5 | 파일 일곱 개의 .lpxdecision 묶음을 추가합니다. 네이티브는 발급과 검사와 인증과 재실행을 지원합니다. npm은 검사와 인증을 지원합니다. |
| v1.14.4 | 정확한 이식 가능한 핵심 기록 바이트에 Ed25519 발급자 서명을 더한 별도 기록을 추가합니다. 수신자는 정책을 만들고 검사합니다. 네이티브는 규칙을 실행하지 않고 인증합니다. |
| v1.14.3 | 플레이그라운드에 환불 모드를 추가합니다. 한 번의 선택으로 입력을 바꾸고 소스를 담은 네이티브 작성 자료 세 가지를 받을 수 있습니다. |
| v1.14.2 | 개발 제품, 공개 제품, 문서, 언어 프로파일, 배포 버전 식별자를 구분합니다. 브라우저와 네이티브와 홈과 세 언어 환불 예제는 같은 데이터를 사용합니다. |
| v1.14.1 | 네이티브와 npm과 공개 WASM과 플레이그라운드와 제공 예제의 리스펙스 이미지를 Sunlit Amber v2로 바꿉니다. 이미지와 프로파일과 코드북 형식을 함께 갱신합니다. |
v1.13.x 개발 기록
| 버전 | 변경 |
|---|---|
| v1.13.4 | 제공 환불 규칙과 엄격한 JSON 변환, 원자적 결정 디렉터리, 검사와 검증과 재실행을 설치형 네이티브에서 연결합니다. 설치 위치 이동과 거부·변조 입력도 다룹니다. 홈과 세 언어 문서는 같은 예제를 사용합니다. |
| v1.13.3 | 파일 다섯 개의 결정 디렉터리에 lispex rule inspect, verify, replay를 추가합니다. 준비한 바이트코드와 결과의 연결을 검사합니다. 재실행은 새 인스턴스에서 한 번 수행합니다. |
| v1.13.2 | 네이티브 lispex rule run은 소스 바이트, 엄격한 JSON 입력, 준비·평가의 개별 한도와 내장 평가기를 사용합니다. 결정 디렉터리는 원자적으로 만듭니다. |
| v1.13.1 | 공통 환불 예제와 JSON을 평가기 값으로 바꾸는 기능을 추가합니다. 중복 키와 부정확수는 거부합니다. |
v1.12.x 개발 기록
| 버전 | 변경 |
|---|---|
| v1.12.4 | 이 버전의 평가기 언어 프로파일, 재현 가능한 작업량·논리적 할당 계량, 외부 임포트 없는 WASM 호출 규약, 이식 가능한 핵심 기록 스키마를 고정합니다. |
| v1.12.3 | 외부 임포트 없는 WASM 평가기 하나를 내장해 네이티브 lispex embed prepare, evaluate, inspect, verify를 추가합니다. 준비와 평가는 개별 한도를 씁니다. 작업마다 새 Store와 Instance를 만들며 완료된 평가는 정규 결과값 바이트를 담습니다. |
| v1.12.2 | 재현 가능한 외부 임포트 없는 WASM 평가기 패키지, 값 전용 바이너리 호출 규약과 정규 준비 바이트코드를 추가합니다. 요청마다 실행 상태를 따로 둡니다. 제공 정책 규칙 세 개를 새 Rust 가상 머신 인스턴스에서 실행합니다. |
| v1.12.1 | 포괄적인 단계·할당 한도를 준비 4축과 평가 10축으로 바꿉니다. 후보 핵심 기록에서 사용량을 뺍니다. Node와 Rust의 기준 입력·결과와 정책 예제 세 개를 추가합니다. |
v1.11.x 개발 기록
| 버전 | 변경 |
|---|---|
| v1.11.3 | 설치된 MCP 도구 네 개를 확인한 개발 기록입니다. CLI와의 E100·E303·E321 일치, 호스트 권한 거부, 요청별 격리, 자원 종료와 회복, 비교 결과를 다뤘습니다. |
| v1.11.2 | 비교 집합 tree-rust, rust-topaz, all-four를 쓰는 lispex_compare_routes를 추가합니다. 보조 도구는 시작할 때만 수용합니다. 요청마다 새 AOT 제품을 만들고 일치나 불일치를 명시적으로 보고합니다. |
| v1.11.1 | MCP 2025-11-25를 사용하는 lispex mcp serve를 추가합니다. 네이티브 도구 세 개가 설치된 언어 참조 조회, 신뢰하는 소스의 크기·시간 한도 Rust 평가, 진단 조회를 제공합니다. |
v1.10.x 개발 기록
| 버전 | 변경 |
|---|---|
| v1.10.4 | 보조 도구 두 개의 설치, AOT 빌드, 네 실행 방식의 조회와 측정, 선택 잠금, 진단과 실행을 잇는 예제를 추가합니다. 위치를 옮겨도 같은 VM·AOT 잠금 파일을 씁니다. |
| v1.10.3 | macOS ARM64용 토파즈 5.11 컴파일러의 8파일 패키지를 받는 routes fetch --route aot-compiler를 추가합니다. 불변 릴리스 매니페스트를 검사합니다. 컴파일러는 위치를 옮긴 뒤에도 소스 없이 실행할 재현 가능한 AOT 제품을 만듭니다. |
| v1.10.2 | 네이티브 routes fetch, 내장 공식 카탈로그, aarch64-apple-darwin용 재현 가능한 토파즈 5.11 가상 머신 패키지를 추가합니다. |
| v1.10.1 | 네이티브 routes install, lispex.route-catalog/v1, 로컬 경로 없는 lispex.route-installation/v1을 추가합니다. 토파즈 가상 머신과 AOT 컴파일러 패키지는 정해진 무압축 ZIP 형식을 씁니다. |
v1.9.x 개발 기록
| 버전 | 변경 |
|---|---|
| v1.9.3 | 선택 잠금을 쓰는 routes run과 네 실행 방식의 공통 구조화 결과를 추가합니다. 기준 인터프리터는 호환되는 기본값이자 복구 선택지로 유지합니다. |
| v1.9.2 | 네이티브 routes measure로 기준 인터프리터, Rust 가상 머신, 고정한 토파즈 가상 머신과 AOT를 측정합니다. 측정값은 정규 비교 보고서와 따로 둡니다. |
| v1.9.1 | 네 실행 방식을 위한 네이티브 routes inventory, routes lock, routes doctor를 추가합니다. 잠금 파일을 만들 때 기존 파일을 덮어쓰지 않습니다. |
v1.8.x 개발 기록
| 버전 | 변경 |
|---|---|
| v1.8.20 | 같은 소스와 입력으로 네 실행 방식을 명시적으로 비교하는 네이티브 compare-routes를 추가합니다. 일치하는 AOT 제품을 검사합니다. lispex.route-comparison/v1은 의미와 비교 가능한 자원 차이를 기록하며 기존 보고서를 덮어쓰지 않습니다. AOT 프로시저 호출 비용과 구조화된 자원 오류를 고칩니다. macOS 실행 파일을 재현 가능하게 마무리하며 strip·서명 도구 식별자와 갱신한 토파즈 파일 연결을 기록합니다. |
| v1.8.19 | macOS ARM64 네이티브에 전체 프로파일을 토파즈로 미리 컴파일하는 기능을 추가합니다. 읽을 수 있는 토파즈 코드와 소스 위치 대응표를 만들고 설치된 토파즈·Rust 빌드 도구를 정확히 검사합니다. build, inspect, validate, run은 소스 없는 제품을 다룹니다. 전체 폭 u64 자원값, 진단, 경고와 값이 0인 폴백 계수기 다섯 개를 표시합니다. |
| v1.8.18 | macOS ARM64 네이티브에 설치형 토파즈 5.11 lispex-topaz-vm/v1을 쓰는 bytecode run --engine topaz --topaz-vm을 추가합니다. compare-vms는 검증된 바이트코드 파일 하나의 실행을 비교합니다. 최적화한 네이티브 빌드에서도 Core IR과 바이트코드의 컴파일 기능을 모두 유지합니다. |
| v1.8.17 | 네이티브 lispex fmt, 조용한 --check, 안전한 --write, VS Code·Open VSX의 문서 포매팅 연동을 추가합니다. 주석과 프라그마와 토큰과 리터럴 표기는 보존합니다. |
| v1.8.16 | lispex.vouch-compiled-artifact/v1과 네이티브 vouch compiled build/inspect/validate를 추가합니다. 선택적 vouch verify --reexecute --compiled-artifact는 정확한 소스에서 파일을 다시 도출합니다. 컴파일 로컬 게이트는 현재 기준 인터프리터와 Meaning과 검증된 Rust 가상 머신의 실행 기록 일치를 요구합니다. |
| v1.8.15 | 바이너리 lispex.bytecode/v1, 실행 전 검사기 lispex.bytecode-verifier/v1, 전체 프로파일의 lispex-rust-vm/v1을 추가합니다. 네이티브는 바이트코드 생성과 검사와 검증과 실행, 소스의 --engine vm 실행을 제공합니다. 기준 인터프리터·가상 머신 비교 보고서는 기존 파일을 덮어쓰지 않습니다. |
| v1.8.14 | 전체 프로파일의 lispex.core-ir/v1과 네이티브 core-ir build, validate, inspect를 추가합니다. Core IR은 프로시저 205개의 안정된 ID와 참조를 정한 지역·전역 변수를 기록합니다. 클로저가 포착한 변수, 꼬리 위치, 소스 위치와 Canonical Core 표현도 담습니다. |
| v1.8.13 | LIL에 %, list-first, list-rest와 호환 경고 W330·W331을 추가합니다. 프로시저 지원은 202/205에서 205/205로 늘어납니다. |
| v1.8.12 | LIL에 display, write, newline, println을 추가합니다. 내부 출력 수집기와 고정 출력량 한도를 씁니다. 지원은 198/205에서 202/205로 늘어납니다. |
| v1.8.11 | LIL에서 남은 고차 컬렉션 프로시저 12개를 명시적 연속 프레임으로 실행합니다. 지원은 186/205에서 198/205로, 사용자 코드 호출 프로시저는 6/18에서 18/18로 늘어납니다. |
| v1.8.10 | LIL에 정확한 중간값을 쓰는 나눗셈 연산 9개와 gcd·lcm 누적 계산을 추가합니다. 수치 호스트 커널은 정확한 정수 expt와 값 두 개를 반환하는 exact-integer-sqrt를 제공합니다. 지원은 173/205에서 186/205로 늘어납니다. |
| v1.8.9 | 수치 호스트 커널에서 정확성을 보존하는 floor, ceiling, round, truncate와 정확수·부정확수 변환, 정수 짝홀 판정을 제공합니다. LIL에서 수치 유형을 섞은 min·max를 구현합니다. 지원은 161/205에서 173/205로 늘어납니다. |
| v1.8.8 | LIL의 유니코드 호스트 커널에 문자·문자열 대소문자 판정과 변환, 대소문자 무시 비교 18개를 추가합니다. 지원은 143/205에서 161/205로 늘어납니다. |
| v1.8.7 | LIL에 리스트 복사와 조회, 공유 꼬리 탐색, 리스트·문자열 생성과 문자 단위 문자열·벡터 변환을 추가합니다. 지원은 135/205에서 143/205로 늘어납니다. |
| v1.8.6 | LIL에 유니코드 스칼라값과 사전식 순서에 따른 문자·문자열 연속 비교를 추가합니다. 대소문자를 구분합니다. 지원은 127/205에서 135/205로 늘어납니다. |
| v1.8.5 | LIL에 유한 실수 수치 판정 세 개, 구조적 !=, memv, assoc, assq, assv를 추가합니다. 지원은 119/205에서 127/205로 늘어납니다. |
| v1.8.4 | LIL에서 기존 연산을 조합해 abs, square, 부호·영 판정 세 개, boolean=?, symbol=?를 구현합니다. 지원은 112/205에서 119/205로 늘어납니다. |
| v1.8.3 | LIL에 caar부터 cddddr까지 빠져 있던 합성 쌍 접근자 27개를 모두 추가합니다. 지원은 85/205에서 112/205로 늘어납니다. |
| v1.8.2 | 현재 프로시저 205개를 모두 profile-required로 분류합니다. 호스트 전용 기능과 미래 프로파일 기능은 따로 기록합니다. 과거 실행 쌍 차이 179건에는 각각 주된 원인을 분류합니다. |
| v1.8.1 | 문서를 당시의 4단계 입문 과정, 한눈에 보는 문법, 번호가 붙은 10개 그룹과 영어·한국어·러시아어 53쪽으로 재구성합니다. 다운로드에 버전 확인과 명령 복구, 공식 VS Code·Open VSX 안내를 추가합니다. |
v1.7.x 개발 기록
| 버전 | 변경 |
|---|---|
| v1.7.3 | 정규 리스펙스 이미지로 네이티브 바우치의 식별자 산출, 정책, 발급, 검사, 인증, 재실행과 게이트에 정확한 소스 바이트를 제공합니다. npm은 식별자와 정책과 인증 검증에 이미지를 사용합니다. 환불 기간 예제도 전체 과정에서 이미지를 사용합니다. |
| v1.7.2 | 공통 Rust 이미지 구현을 npm과 Node·브라우저 WASM으로 확장합니다. 플레이그라운드에서 로컬 생성과 열기, 검사한 페이지 이동, 정확한 복원, 다운로드와 별도 명시적 실행을 제공합니다. 단일·다중 페이지 이미지 바이트는 제품 간에 같습니다. |
| v1.7.1 | 네이티브에 정규 리스펙스 이미지를 도입합니다. 소스를 PNG·ZIP으로 인코딩하고 공개 무결성 값을 검사하며 바이트 그대로 복원합니다. 실행하려면 전체 형식 검사를 마치고 사용자가 명시적으로 실행해야 합니다. |
v1.6.x 개발 기록
| 버전 | 변경 |
|---|---|
| v1.6.4 | npm 바우치 검증용 WASM을 변경 없는 소스와 변경한 소스, 위치를 옮긴 소스에서도 같은 바이트로 빌드합니다. 독립 내보내기 검사도 변경 없는 소스에서 실행할 수 있습니다. |
| v1.6.3 | 네이티브 묶음 재실행과 게이트는 일치하는 외부 소스와 입력을 요구합니다. 그 요청의 현재 실행 근거로 통과를 판단합니다. 문서에 /v1.6 경로, 다운로드, 번호형 현재·Classic 메뉴를 추가합니다. 문서 폭과 브라우저 제목과 반응형 제목을 다듬습니다. 한국어 워드마크와 형식·결과·탐색·메뉴의 언어별 표기를 적용합니다. |
| v1.6.2 | 네이티브와 npm에서 고정한 묶음을 먼저 인증한 뒤 별도로 받은 소스와 입력 바이트를 비교합니다. |
| v1.6.1 | 네이티브와 npm에서 공통 Rust 코드로 기존 source-id와 함께 vouch key-id, engine-id, input-id를 제공합니다. |
v1.5.x 개발 기록
| 버전 | 변경 |
|---|---|
| v1.5.8 | 네이티브와 npm의 vouch policy create/check가 공통 Rust 코드로 정규 수신자 신뢰 정책 v1을 만들고 검사합니다. |
| v1.5.7 | 네이티브와 npm의 vouch source-id --source가 공통 Rust 코드로 정확한 소스 바이트의 식별자를 구합니다. 설정한 작업 한도를 적용합니다. |
| v1.5.6 | 신뢰 정책 v1은 서명이 유효해도 선택한 키가 정확한 소스 식별자를 허용해야 수락합니다. |
| v1.5.5 | 서명된 기록과 소스와 입력의 정규 묶음을 추가합니다. 네이티브는 묶음을 만들고 읽습니다. npm은 인증을 위해 읽습니다. |
| v1.5.4 | npm vouch verify가 공통 Rust 검증 빌드로 네이티브 서명 기록과 정확한 소스와 입력과 프로파일을 인증합니다. 보고서 바이트는 네이티브 v0와 같습니다. |
| v1.5.3 | 네이티브 vouch gate --require-decision은 인증과 현재 전체 실행 기록의 일치와 정확한 결정 일치를 확인한 뒤 로컬 통과를 반환합니다. |
| v1.5.2 | vouch 아래에 명령을 모으고 환불 기간 예제를 추가합니다. LIL 지원은 85/205개로 늘어납니다. 네이티브 vouch verify --reexecute는 인증과 현재 실행 일치를 따로 보고합니다. |
| v1.5.1 | 네이티브가 발급 조건을 갖춘 결정 근거를 DSSE 서명된 기록 묶음으로 만들고 서명합니다. 수신자는 자신의 신뢰 정책으로 인증합니다. |
v1.3.x 개발 기록
| 버전 | 변경 |
|---|---|
| v1.3.11 | Bridge 판독기가 정규 보고서 구조와 중첩 필드, 연결 파일과 선택적 기대 문맥을 검사합니다. |
| v1.3.10 | 잘못된 파일 유형을 확인한 개발 기록입니다. 문서에서 파일 일관성 검사와 발급자 인증을 구분했습니다. |
| v1.3.9 | 기록된 결정을 비교할 복지형 사례 12개를 추가합니다. |
| v1.3.8 | 바우치 Bridge 보고서 형식과 오프라인 검사기, 외부 실행 엔진 예제를 추가합니다. |
| v1.3.1-v1.3.7 | 네이티브 실행 기록 생성과 릴리스 빌드 엔진 식별자, 오프라인 검증과 버전별 사례 모음을 추가합니다. 기록의 일관성과 발급자 인증을 구분해 설명합니다. |
v1.2.x 개발 기록
| 버전 | 변경 |
|---|---|
| v1.2.15-v1.2.19 | 실행 기록 판독기를 강화합니다. 개발 기록에는 Scheme 비교와 의미론 예제, 잘못되거나 변조된 파일이 있습니다. |
| v1.2.14 | 검사 결정 프로파일과 예제에 검색과 반올림, any·all 순회와 명시적 오류를 더합니다. 기록된 사례 비교도 더 쉽게 다듬습니다. |
| v1.2.9-v1.2.13 | 검사 프로파일과 내장 이름 연결을 정합니다. 제어·산술 예제와 클로저와 순회, 호스트 입력 연결, npm 오프라인 검증과 기록된 사례 비교를 추가합니다. |
| v1.2.2-v1.2.8 | 버전이 있는 Canonical Core와 실행 기록, 명세 구현 범위 매니페스트를 추가합니다. Meaning Graph 생성과 별도 Meaning Environment 평가기, 차분 비교 보고서 형식을 도입합니다. |
그 밖의 개발 기록
Meaning Graph v1 작업에서는 선택한 사례 61개에서 동작 공백 15개를 해소했습니다.
SICP는 v1.18.0 공개 전까지 v1.17.0 개발 식별자를 사용했습니다.
기록에는 대표 사례 26개와 MIT/GNU Scheme, Racket SICP, Chibi, Gauche를 대상으로 한 외부 측정 104회가 있습니다.
SICP 런타임은 v1.20.0에서도 @lispex/sicp@1.0.0 패키지 식별자를 유지합니다.
언어와 패키지와 파일의 버전
언어와 패키지와 파일 형식의 버전은 각 변경에 맞춰 올라갑니다.
언어 프로파일은 평가 동작을 정의합니다.
이름이 있는 csk 형식과 바우치 형식은 파일 스키마와 호환 식별자를 정의합니다.
런타임 기록에는 지원 프로시저와 호스트 실행 방식, 사례 모음과 실행 기록을 적습니다.