토파즈를 구성하는 각 요소는 서로 다른 질문에 답합니다. 프로그램의 의미는 언어 정의를 기준으로 판단합니다. 소스의 수용 가능 여부는 검사기로 확인합니다. 실제 동작은 지정한 환경에서 얻은 실행 결과를 바탕으로 판단해야 합니다.
무엇을 기준으로 판단해야 하나요?
| 기준 | 직접적인 역할 |
|---|---|
언어 명세 SPEC | 정본 문법, 타입, 의미 규칙과 관찰 가능한 언어 경계를 정의합니다. |
| 검사기 | 소스의 구문·이름·타입과 선택한 용도에서의 수용 여부를 판정합니다. |
| 인터프리터와 출력 타깃 | 직접 실행하거나 선택한 타깃용 아티팩트를 생성하며, 미지원 경로는 산출물 출력 전에 거부합니다. |
| 정본 예제 | 관찰 가능한 결과와 함께 지원 문법과 작업 흐름을 제시합니다. |
| 테스트와 검증 기록 | 지정한 입력·도구·환경·프로필·리소스 한도에서 관찰한 결과를 기록합니다. |
실제 검증 순서
- 현재 언어 문서와 정본 예제에서 필요한 형식을 고르십시오.
topaz check로 구문·이름·타입과 선택한 프로필의 오류를 찾으십시오.- 프로그램과 테스트를 실행하십시오. 주요 출력, 진단 결과, 파일 변경 사항과 종료 상태를 기록하십시오.
- 사용할 출력 타깃을 빌드하십시오. 문서에 적힌 제약을 확인하십시오. 필요한 동작을 보존할 수 없는 타깃은 명확히 실패해야 합니다.
- 테스트 결과나 검사 기록을 인용할 때는 입력과 실행 환경, 제약 조건을 함께 확인하십시오.
기본 명령 순서는 다음과 같습니다.
BASH
topaz check main.tpz
topaz run main.tpz
topaz build main.tpz --out-dir build컴파일러 증거 비교
정본 컴파일러 관찰 자료는 두 실행에서 지정한 경계의 동작과 입력을 비교합니다. 소스 집합부터 진단 내역과 결과 상태까지 순서대로 비교하려면 semantic을 씁니다. 생성된 Rust 소스를 정확히 비교하려면 generated-source, 생성자 식별자를 비교하려면 provenance, 동일 타깃을 위한 실행 파일 바이트를 비교하려면 native-binary를 씁니다. 각 계층은 해당 컴파일러 출력을 기록하며, 워크로드 통과 기록에는 지정한 입력과 환경에서 관찰한 결과가 담깁니다.