Skip to content
Topaz6.0 · Before release
Download

Search documentation

Specification 6.0 · Not released · Tested product 5.21.3

Use arrow keys to choose a result. Press Enter to open.

Type an API name, diagnostic number, rule, or project topic.

    Diagnostics

    TPZ5032: Invalid extern replay or sandbox binding

    An extern module is missing a deterministic replay fixture, has invalid replay data, or calls an entry not present in replay.

    Diagnostic and cause

    Link

    Invalid extern replay or sandbox binding

    Family
    topaz
    Phase
    check
    Code
    TPZ5032

    Cause and conditions

    An imported extern module needs a valid deterministic replay binding. Malformed replay data is rejected at the module import.

    Response

    Provide the replay fixture required by the declared extern module. Correct malformed fixture data and add the missing operation entry.

    Source evidence

    Compiler phase: check/package.

    Compiler explanation: An extern module is missing a deterministic replay fixture, has invalid replay data, or calls an entry not present in replay.

    Message templates. The marker ⟨value⟩ stands for text computed for the reported program.

    • extern module ⟨value⟩ has an invalid deterministic replay binding: ⟨value⟩ Source

    An imported extern module needs a valid deterministic replay binding. Malformed replay data is rejected at the module import.

    Rulediagnostics.tpz5032.p5.rule

    Invalid extern replay or sandbox binding

    An imported extern module needs a valid deterministic replay binding. Malformed replay data is rejected at the module import.

    Source evidence

    Response

    Link

    Provide the replay fixture required by the declared extern module. Correct malformed fixture data and add the missing operation entry.

    Reproduction and verification

    Link

    Rejected program

    Link
    main.tpzRejected programOpen in Playground
    1. import host.math { twice }
    2. export function main(args: Array<string>, stdin: string) -> Result<int, string> {
    3. Ok(0)
    4. }
    Expected outputNonzero exit
    No stdout.
    $ topaz check --language-version 5.21 --compiler self · target product 5.21.3
    topaz.tomlRejected programOpen in Playground
    1. [package]
    2. name = "diagnostic_extern"
    3. version = "0.1.0"
    4. language = "5.21"
    5. entry = "main.tpz"
    6. [extern.host.math]
    7. hash = "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
    8. abi_hash = "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
    9. [[extern.host.math.functions]]
    10. name = "twice"
    11. params = ["int"]
    12. result = "int"
    13. [extern.host.math.replay]
    14. fixture = "replay/host-math.jsonl"
    15. [extern.host.math.sandbox]
    16. kind = "replay"
    replay/host-math.jsonlRejected programOpen in Playground
    1. {"module":"host.math","function":"twice","args":"not-array","result":{"$":"int","value":"42"}}
    Expected result

    Expected result

    Rejection during check. Nonzero exit.

    • TPZ5032 diagnostics-invalid-extern-replay at main.tpz:1:8

    This complete package fixture uses invocationArgs without a positional source file.

    Source evidence

    Repaired program

    Link
    main.tpzRepaired programOpen in Playground
    1. import host.math { twice }
    2. export function main(args: Array<string>, stdin: string) -> Result<int, string> {
    3. Ok(0)
    4. }
    Expected outputexit 0
    $ topaz check --language-version 5.21 --compiler self · target product 5.21.3
    topaz.tomlRepaired programOpen in Playground
    1. [package]
    2. name = "diagnostic_extern"
    3. version = "0.1.0"
    4. language = "5.21"
    5. entry = "main.tpz"
    6. [extern.host.math]
    7. hash = "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
    8. abi_hash = "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
    9. [[extern.host.math.functions]]
    10. name = "twice"
    11. params = ["int"]
    12. result = "int"
    13. [extern.host.math.replay]
    14. fixture = "replay/host-math.jsonl"
    15. [extern.host.math.sandbox]
    16. kind = "replay"
    replay/host-math.jsonlRepaired programOpen in Playground
    1. {"module":"host.math","function":"twice","args":[{"$":"int","value":"21"}],"result":{"$":"int","value":"42"}}
    Expected result

    Expected result

    Checking accepts the program. Exit code 0.

    This complete package fixture uses invocationArgs without a positional source file.

    Source evidence

    Menu

    Download