Select a compiler
링크Run topaz compiler status - to inspect the installed compiler before choosing an implementation. Run topaz version to identify the product release.
An explicit - selects SELF. An explicit - selects the reference compiler for verification. When the selector is absent, compiler-bearing commands use SELF. A rejected operation does not silently switch to the reference compiler.
Default selection source · Selection validation source
Compiler selection and artifact selection answer different questions. - chooses an implementation. emit - requests Rust source. A native build target can use SELF. Read the command reference for the supported combinations.
Select the language mode
링크For an entry-file invocation, the current language mode is used when - is absent. The public 5.21.x CLI accepts the current 5.21 mode. A product patch version such as 5. identifies a release, not a separate language mode.
Language selector source
During package-mode compilation, [package]. in topaz. supplies the language mode before entry-source loading. An explicit language selector must agree with the manifest. A different manifest mode or a conflicting selector is rejected.
Package selection source
Keep the selected package root consistent across check, run, and build invocations. An entry operand normally selects an entry-file route. The test command also preserves package context when its selected root contains a manifest.
Command scope
링크Compiler selection applies to parse, dump-, check, run, test, fmt, lsp, emit, build, doc, bench, and compiler observe.
Compiler-bearing command source
Package management, storage, embedded Lispex, lookup, metadata, and compiler inspection commands use their own command contracts. They reject an explicit - selector. This includes compiler preview, compiler status, compiler validate, and compiler compare.
Selector applicability source
compiler preview selects its producer through its preview options. Combining - with - or - is rejected. Producer selection does not change the default used by a later check or build invocation.
Confirm the selection
링크Add - to a compiler-bearing invocation to report the selected compiler on standard error. The report distinguishes an explicit choice from the current default with explicit and current-.
Selection report source
An LSP session may receive its package root during initialize. Its compiler selection is reported after the workspace supplies the language mode.
topaz compiler status - returns installed compiler identity, the default and reference selectors, and command support conditions. Read that inventory alongside the command's options and conflicts. Status output describes the installed tool. A successful status request is not a successful check or build.
Status output source
Usage profiles
링크A check usage profile adds checks for an intended use. The check contract defines its inputs, diagnostics, and reports. Installed profile availability remains a distribution evidence question.
Type checking without a mode flag
링크Type checking without a mode flag
Use topaz check <entry> for type checking. - is rejected during command validation.
이유
The check command performs type checking with or without the ineffective flag. Both spellings request the same operation, so the flag has no separate intent to preserve.
Type checking without a mode flag rejection
- 계열
- topaz-cli
- 단계
- command
- 연산
- argument-validation
- 분류
- types-option
원인과 조건
Use topaz check <entry> for type checking. - is rejected during command validation.
대응
Run topaz check <entry> without -.
Type checking without a mode flag examples
링크Reject the unused types option
링크let value = 1
표준 출력 없음.기대 결과
Check with the canonical command
링크let value = 1
표준 출력 없음.기대 결과
기대 결과
검사가 프로그램을 받아들입니다. 종료 코드 0.
Named metadata commands and long options
링크Named metadata commands and long options
Use topaz version for the installed release report. topaz - and topaz - are rejected during command validation.
Use - for additional command details. - is rejected during command validation.
이유
The version aliases request the same installed release report as the version command. The short verbosity alias requests the same additional detail as the verbose option. Neither alias expresses a different intent.
Named metadata commands and long options rejection
- 계열
- topaz-cli
- 단계
- command
- 연산
- argument-validation
- 분류
- metadata-spellings
원인과 조건
Use topaz version for the installed release report. topaz - and topaz - are rejected during command validation.
Use - for additional command details. - is rejected during command validation.
Use topaz version for the installed release report. topaz - and topaz - are rejected during command validation.
Use - for additional command details. - is rejected during command validation.
대응
Use topaz version and add - when a detailed report is needed.
Named metadata commands and long options examples
링크Reject the version flag alias
링크let value = 1
표준 출력 없음.기대 결과
기대 결과
거절 단계 command. 종료 코드 1.
Named metadata commands and long options rejection→tools-unknown-option
Reject the short version alias
링크let value = 1
표준 출력 없음.기대 결과
기대 결과
거절 단계 command. 종료 코드 1.
Named metadata commands and long options rejection→tools-unknown-option
Reject the short detail alias
링크let value = 1
표준 출력 없음.기대 결과
기대 결과
거절 단계 command. 종료 코드 1.
Named metadata commands and long options rejection→tools-unknown-option
Read the installed release
링크let value = 1
Topaz 5.21.3
기대 결과
기대 결과
검사가 프로그램을 받아들입니다. 종료 코드 0.
Topaz 5.21.3
Request the detailed release report
링크let value = 1
기대 결과
기대 결과
검사가 프로그램을 받아들입니다. 종료 코드 0.
Separate option values
링크Separate option values
An option and its value occupy separate arguments, as in -. The - form is rejected during command validation.
This rule applies to CLI options. Arguments after - are program data and preserve their spelling.
이유
The joined and separate forms supply the same value to the same option. A separate argument preserves that intent with one spelling and matches the command synopsis.
Separate option values rejection
- 계열
- topaz-cli
- 단계
- command
- 연산
- argument-validation
- 분류
- value-separator
원인과 조건
An option and its value occupy separate arguments, as in -. The - form is rejected during command validation.
대응
Pass each option and its value as separate arguments, such as -.
Separate option values examples
링크Reject an equals format value
링크let value = 1
표준 출력 없음.기대 결과
Reject an equals language value
링크let value = 1
표준 출력 없음.기대 결과
Pass values as separate arguments
링크let value = 1
표준 출력 없음.기대 결과
기대 결과
검사가 프로그램을 받아들입니다. 종료 코드 0.
One occurrence of each option
링크One occurrence of each option
An option appears at most once in an invocation. Repeated occurrences are rejected even when their values agree. The order of conflicting values does not select a winner.
Repeated options are rejected as unexpected arguments. This rule does not reinterpret program arguments after -.
이유
Each option selects one value or behavior. Rejecting repeated selectors prevents argument order from changing that choice and applies equally when the values agree.
One occurrence of each option rejection
- 계열
- topaz-cli
- 단계
- command
- 연산
- argument-validation
- 분류
- option-occurrence
원인과 조건
An option appears at most once in an invocation. Repeated occurrences are rejected even when their values agree. The order of conflicting values does not select a winner.
관련 규칙 · One occurrence of each option →대응
Give each CLI option once and resolve conflicting choices before invoking Topaz.
One occurrence of each option examples
링크Reject a repeated language selector
링크let value = 1
표준 출력 없음.기대 결과
Reject conflicting formats in one order
링크let value = 1
표준 출력 없음.기대 결과
Reject conflicting formats in the other order
링크let value = 1
표준 출력 없음.기대 결과
Give each option once
링크let value = 1
표준 출력 없음.기대 결과
기대 결과
검사가 프로그램을 받아들입니다. 종료 코드 0.
Reject a repeated boolean option
링크let value = 1
표준 출력 없음.기대 결과
One JSON format selector
링크One JSON format selector
Use - for JSON output from check, compiler status, explain, bench, lispex embed info. - is rejected during command validation. lispex embed info requires - and does not accept a human output format. Each command retains its own output fields and streams.
The format selector changes the representation of a command result. It does not merge the different records. check writes its diagnostic JSON to standard error. The other listed commands write one report to standard output. lispex embed info requires JSON. The other listed commands retain their human output format. Timing values vary between benchmark executions.
이유
The old JSON switch and the format selector request the same report representation. The shared selector preserves that intent while each command retains its own report. Export inspection and diagnostic reporting remain distinct operations.
One JSON format selector rejection
- 계열
- topaz-cli
- 단계
- command
- 연산
- argument-validation
- 분류
- json-format
원인과 조건
Use - for JSON output from check, compiler status, explain, bench, lispex embed info. - is rejected during command validation. lispex embed info requires - and does not accept a human output format. Each command retains its own output fields and streams.
대응
Use - with a CLI that implements the Topaz 6.0 output selector.
One JSON format selector examples
링크Reject --json for compiler status
링크let value = 1
표준 출력 없음.기대 결과
Select JSON for compiler status
링크let value = 1
기대 결과
기대 결과
검사가 프로그램을 받아들입니다. 종료 코드 0.
표준 출력은 JSON 객체입니다. 전체 스키마는 미정입니다.
Reject --json for diagnostic explanation
링크let value = 1
표준 출력 없음.기대 결과
Select JSON for diagnostic explanation
링크let value = 1
기대 결과
기대 결과
검사가 프로그램을 받아들입니다. 종료 코드 0.
표준 출력은 JSON 객체입니다. 전체 스키마는 미정입니다.
Reject --json for benchmark report
링크let value = 1
표준 출력 없음.기대 결과
Benchmark JSON with --format json
링크function identity<T>(value: T) -> T {value}
기대 결과
기대 결과
검사가 프로그램을 받아들입니다. 종료 코드 0.
표준 출력은 JSON 객체입니다. 전체 스키마는 미정입니다.
The benchmark checks the fixture without running it and writes a JSON report. Timing values vary between executions.
Reject --json for embedded component report
링크let value = 1
표준 출력 없음.기대 결과
Select JSON for embedded component report
링크let value = 1
기대 결과
기대 결과
검사가 프로그램을 받아들입니다. 종료 코드 0.
표준 출력은 JSON 객체입니다. 전체 스키마는 미정입니다.
Keep the check diagnostic format
링크let value = 1
표준 출력 없음.기대 결과
기대 결과
검사가 프로그램을 받아들입니다. 종료 코드 0.
A command is required
링크Name the help command
Use topaz help for command and option help. topaz is rejected during command validation.
An invocation must name a command. A missing command is a usage error with exit status 1 and empty standard output. The CLI reports the missing command on standard error and directs the user to topaz help. This textual failure has no TPZ code or source location.
이유
An explicit help command requests the command reference. An omitted command supplies no operation and can result from a missing script argument. Requiring an explicit request keeps that mistake observable.
Missing command
- 계열
- topaz-cli
- 단계
- command
- 연산
- argument-validation
- 분류
- missing-command
원인과 조건
Use topaz help for command and option help. topaz is rejected during command validation.
대응
Supply the command to run. Use topaz help to read the command and option help.
Request help explicitly
링크Reject an invocation without a command
링크let value = 1
표준 출력 없음.기대 결과
Request help by name
링크let value = 1
기대 결과
기대 결과
검사가 프로그램을 받아들입니다. 종료 코드 0.
topaz help prints the installed command and option help. Its wording and command inventory can grow. This example checks successful completion and an empty standard error stream.