지금 할 일에 맞는 명령을 찾고, 진단을 읽어 고칠 파일을 확인하세요. 각 절에서 명령이 성공하면 무엇이 달라지는지 설명합니다.
첫 프로그램을 따라 topaz를 설치하세요. 아래 단일 파일 명령은 그 문서의 first-program.tpz를 사용합니다. 패키지 명령은 첫 애플리케이션에서 완성한 study-plan 폴더에서 실행하세요.
검사 전에 서식 맞추기
topaz fmt --check --root .
topaz fmt --root .fmt --check는 토파즈 서식과 다른 파일을 알리고 0이 아닌 코드로 끝납니다. 파일은 바꾸지 않습니다. 두 번째 명령으로 서식을 적용하세요. 첫 명령을 다시 실행해 종료 코드 0을 확인합니다. 패키지 서식을 맞출 때는 벤더링한 의존성과 빌드 결과를 건너뜁니다.
실행 없이 검사하기
입력에 맞는 명령을 고르세요. 첫 번째와 세 번째는 파일을 사용합니다. 두 번째는 topaz.toml에서 패키지 진입 파일을 읽습니다.
topaz check first-program.tpz
topaz check --root . --locked
topaz check --format json first-program.tpz검사가 성공하면 종료 코드는 0입니다. 사용자 코드를 실행하거나 배포 결과물을 만들지는 않습니다. 진단에는 소스 위치, 고정된 TPZ#### 코드, 요약과 필요한 상세 정보가 나옵니다. 도구에서 진단을 읽을 때는 JSON 모드를 사용하세요.
topaz explain TPZ5021
topaz explain TPZ5021 --json두 명령은 TPZ5021의 설명을 텍스트나 JSON으로 출력하며 소스를 바꾸지 않습니다. 첫 오류를 고친 뒤 check를 다시 실행하세요. 뒤의 오류는 첫 오류 때문에 생겼을 수 있습니다.
import 오류라면 모듈과 가시성에서 파일 경로, 지정한 루트, 공개한 이름을 확인하세요. 잠금 불일치는 패키지와 배포의 복구 방법을 따르세요.
사용 프로필 검사하기
사용 프로필은 코드 용도에 맞는 규칙을 추가합니다. 단일 파일에는 첫 명령을, 학습 계획 패키지 안에서는 두 번째 명령을 실행하세요.
topaz check --profile agent-pack first-program.tpz
topaz check --profile test-profile tests/plan.tpz --root .| 구문 | agent-pack | test-profile |
|---|---|---|
내장 assert 호출과 함수 값으로 쓰는 참조 | 거부 | 허용 |
std.test import와 Test.* 멤버 | 거부 | 거부 |
>> 함수 합성 | 거부 | 거부 |
사용자가 만든 assert 함수 | 애플리케이션 코드로 검사 | 애플리케이션 코드로 검사 |
프로필 검사가 성공하면 종료 코드는 0입니다. 거부한 구문에는 TPZ5801과 agent-pack/no-composition 같은 규칙 표시가 나옵니다. 학습 계획 테스트는 내장 assert를 사용하며 test-profile을 통과합니다.
--format json을 지정하면 표준 오류(stderr)에 진단별 topaz.profile-diagnostic/v1 객체가 나옵니다. 표준 출력(stdout)에는 topaz.profile-check/v1 요약이 나옵니다. --profile은 현재 모드의 토파즈 문법으로 작성한 코드를 check할 때 사용하세요. --exports-json과 함께 지정할 수 없습니다.
컴파일러 커널용 Bootstrap Profile은 툴체인 상태에서 설명합니다.
테스트하고 실행하기
학습 계획 패키지 안에서 테스트 파일을 지정한 뒤 애플리케이션을 실행하세요.
topaz test tests/plan.tpz --root . --locked
topaz run --root . --locked테스트가 성공하면 test-ok가 나옵니다. 프로그램은 tasks=2, remaining=25 minutes를 출력합니다. test는 검사한 코드를 결정론적 테스트 호스트에서 실행합니다. 단언 실패, 정적 오류, 실행 오류가 있으면 0이 아닌 코드로 끝납니다. --root와 함께 테스트 파일을 지정하면 패키지의 매니페스트·잠금 파일·모듈·의존성을 그대로 사용합니다.
파일 인수가 없는 test --root .는 매니페스트의 진입 파일을 선택합니다. 각 테스트 파일을 실행하려면 경로를 직접 지정하세요.
run은 검사한 진입 파일을 인터프리터로 실행합니다. 프로그램 인수는 topaz run --root . --locked -- arg1 arg2처럼 -- 뒤에 두세요. main의 인수 배열로 전달됩니다. 학습 계획 프로그램은 이 인수를 사용하지 않으므로 그대로 tasks=2, remaining=25 minutes를 출력합니다.
배포할 결과물 빌드하기
첫 명령은 단일 파일을, 두 번째는 학습 계획 패키지를 빌드합니다.
topaz build first-program.tpz --out-dir native-product
topaz build --root . --locked --release --out-dir productbuild는 지정한 폴더에 실행할 결과물과 topaz-artifact.json을 만듭니다. 네이티브와 Web 빌드는 대상용으로 설치한 Rust 툴체인을 사용합니다. 소스는 실행하거나 아티팩트를 생성하기 전에 검사합니다. 정적 오류가 있으면 실행 가능한 아티팩트를 만들기 전에 멈춥니다.
외부 도구 오류도 0이 아닌 코드로 끝납니다. 출력된 툴체인 오류를 따라 수정하세요. 출력 폴더에 다른 대상의 파일, 잘못된 매니페스트, 변경된 생성 파일이 있으면 토파즈가 멈춥니다. 해당 폴더를 보존하고 비어 있는 새 --out-dir을 고르세요.