빌드와 배포

도구 모음 상태

현재 토파즈 제품 식별자, 사용할 수 있는 배포 제품과 선택에 필요한 제한을 설명합니다.

토파즈 5.11.0이 현재 공개 제품입니다. 현재 언어 모드는 topaz-5.11입니다.

다음 명령으로 설치 상태를 확인합니다.

BASH
topaz version --verbose

이 명령은 컴파일러, 언어 모드, 런타임과 Rust 백엔드 식별자를 보여 줍니다. 설치 문제를 보고할 때 출력 전체를 함께 제공하세요.

사용할 수 있는 제품 경로

  • CLI는 파일이나 패키지의 서식을 맞추고 검사하고 테스트하고 실행하고 생성 소스를 내보내며 제품을 빌드합니다.
  • 네이티브 빌드는 플랫폼 전용 실행 파일을 만듭니다.
  • Python 빌드는 program.pytopaz_py_rt.py를 만들며 실행할 때 Python 3.11 이상이 필요합니다.
  • Raw Web과 Web Worker는 기존 JavaScript 호스트용 WASM 패키지를 만듭니다.
  • Web 애플리케이션은 완전한 관리형 정적 브라우저 제품을 만듭니다.
  • 제한형 HTTP 서비스는 리스너, 요청, 대기열, 마감 시간, 로그와 종료 설정이 유한한 관리형 네이티브 HTTP/1.1 프로세스를 만듭니다.
  • 패키지 명령은 매니페스트, 잠금 파일, 경로 의존성과 검증된 로컬 벤더 의존성을 사용합니다.
  • 브라우저 플레이그라운드는 네이티브 CLI 설치 없이 제한된 검사와 인터프리터 실행을 제공합니다.

컴파일러 관찰 자료 살펴보기

설치된 CLI는 현재 검사 컴파일러 파이프라인을 생성 Rust 소스 단계까지 하나의 정규 관리형 번들로 기록할 수 있습니다.

BASH
topaz compiler observe --root my-app --locked --out-dir compiler-observation
topaz compiler validate compiler-observation

출력은 my-app 바깥에 두세요. 패키지 안에 두면 다음 관찰에서 관리형 출력 디렉터리 자체가 패키지 디렉터리 사실로 보일 수 있습니다. 번들에는 정확한 소스 바이트와 소스 집합, 원시·레이아웃 토큰, AST, 이름 해석, 구조화된 타입, 호출, 클로저 캡처, 소스 비의존 하강, 런타임 연산, 생성 Rust, 진단, 요청, 응답과 출처 정보가 들어갑니다. 소스 패키지와 같은 수준으로 보호하세요.

validate는 읽기 전용입니다. 다시 컴파일하거나 원래 소스 트리를 읽지 않고 정규 인코딩, 스키마, 순서, 상호 참조, 완전성, 크기와 해시를 검사합니다. 출처 정보는 생성자를 Rust Stage 0으로 명시합니다. 관찰 번들을 만들었다고 해서 컴파일러 단계가 이미 토파즈로 작성되었다는 뜻은 아닙니다.

답하려는 질문에 맞는 경계를 골라 두 개의 완전한 관찰 번들을 비교할 수 있습니다.

BASH
topaz compiler compare --layer semantic observation-a observation-b
topaz compiler compare --layer generated-source observation-a observation-b
topaz compiler compare --layer provenance observation-a observation-b
topaz compiler compare --layer native-binary program-a program-b

명령은 크기가 제한된 정규 JSON 레코드 하나를 출력하며 선택한 계층이 다르면 실패 상태로 끝납니다. 의미 비교는 처음 달라진 컴파일러 단계에서 멈춥니다. 생성 소스와 출처 정보는 서로 독립적이므로 생성자 식별자가 달라졌다는 사실만으로 언어 의미 불일치가 되지는 않습니다.

Rust Stage 0 기준점 복구

자기 호스팅 자격을 갖춘 릴리스에는 일반 플랫폼 바이너리 다섯 개와 별도로 복구 매니페스트와 결정적 소스 아카이브가 들어갑니다. 아카이브는 Rust 컴파일러 소스, 잠금 파일, 벤더 의존성과 라이선스, 런타임 템플릿, 프로토콜 스키마, 컴파일러 작업 부하와 재구성 도구를 고정합니다. 같은 입력으로 두 번 만들면 아카이브 바이트가 일치합니다.

복구 세트는 Rust 도구 모음 자체를 포함하지 않습니다. 고정된 Rust 도구 모음이 이미 설치되어 있어야 하며, 이후 아카이브 안의 벤더 디렉터리만으로 오프라인 빌드합니다. 이는 독립적인 복구·출처 확인 경로이지 일반 설치 경로가 아니며, 컴파일러 단계가 이미 토파즈로 작성되었다는 주장도 아닙니다.

부트스트랩에 적합한 컴파일러 소스 검사

Bootstrap Profile은 컴파일러 커널 소스를 위해 현재 언어의 사용 범위를 기계 판독 가능하게 제한합니다. 새 문법이나 방언을 추가하지 않습니다. 잠긴 결정적 패키지가 주변 호스트 권한, extern 모듈, 부동소수점, 동시성, 리소스, 테스트 API와 그 밖의 호스트 의존 연산을 사용하지 않을 때만 통과합니다.

BASH
topaz check --profile bootstrap --locked --root compiler-kernel

사람용 진단에는 안정적인 bootstrap/* 규칙이 표시됩니다. --format json을 사용하면 stderr에는 기계 판독 가능한 프로필 진단이, stdout에는 요약 하나가 나옵니다. 로컬 값은 철자가 아니라 해석된 식별자로 판정하므로 사용자가 만든 함수의 이름이 print여도 호스트 연산이 되지 않습니다. 반대로 금지된 호스트 연산은 이름을 바꾸거나 별칭을 붙여도 숨길 수 없습니다.

선택에 필요한 제한

모든 대상은 파싱, 모듈 해석과 정적 검사를 공유하지만 호스트에 의존하는 연산을 모든 곳에서 사용할 수 있는 것은 아닙니다. 연산을 보존할 수 없는 대상은 제품을 쓰기 전에 이를 거부해야 합니다. 특히 생성 Python은 현재 fixed-Huffman DEFLATE, 고정 zlib과 RS(255,223) 도우미를 지원하지 않으며 생성 단계에서 명시적으로 실패합니다. 바이너리 미디어 작업의 대상을 고르기 전에 백엔드 페이지를 확인하세요.

HTTP 제품은 의도적으로 제한됩니다. TLS, HTTP/2, WebSocket, 아웃바운드 네트워크 접근, 주변 환경 권한, 공유 가변 토파즈 상태나 범용 Web 프레임워크를 추가하지 않습니다.

Web 애플리케이션 호스트는 선언한 브라우저 권한만 노출합니다. Raw Web과 Worker 제품은 기존 JavaScript 호스트가 필요합니다. 플레이그라운드 실행은 소스 실험이지 배포 증거가 아닙니다.

동시 작업의 실행 순서는 정하지 않습니다. 특정 인터리빙에 의존하면 안 됩니다.

LIT는 제한된 Lispex 도그푸딩·통합 경계로 유지됩니다. 출하되는 토파즈 백엔드가 아니며 전체 언어 동등성을 확립하지 않습니다.

권장 작업 순서

fmt --check, check, test로 시작하세요. 명령형 애플리케이션은 run, Web 애플리케이션이나 HTTP 서비스는 dev로 확인합니다. 실제 배포할 대상만 빌드하고 관리되는 디렉터리 전체를 복사하세요.

관련 문서