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

    TPZ5099: Runtime guard could not complete

    Explains the runtime guard diagnostic and how to identify its operation and cause.

    Identity and meaning

    Link

    Runtime guard could not complete

    Family
    topaz
    Phase
    run
    Code
    TPZ5099

    Availability

    Included by default: Pending

    The relevant runtime operation and std.lispex host boundary must be active.

    The guard definition, product decoder, and selected producer branches are source reviewed. Installed-product exposure and default-distribution availability remain Pending.

    Source evidence

    Cause and conditions

    The reviewed std.lispex boundary produces TPZ5099 for a host refusal that reaches its fallback, a response for the wrong operation, an out-of-range limit or artifact length, a completed settlement missing its result, or an unknown operational-fault code.

    Response

    Retain the full message, operation, compiler version, target, and package context. For a host refusal, check the relevant std.lispex activation and operation contract. A wrong-operation response or missing required result warrants a runtime defect-candidate report if reproduced. There is no verified source rewrite that resolves every producer of this code.

    Source evidence

    TPZ5099 covers several runtime conditions. Use the accompanying message and operation to identify the cause; the code alone does not identify a particular unsupported language construct.

    Producer conditions

    Link
    Ruletopaz.rule.runtime-guard.observed-conditions

    Runtime guard conditions

    The reviewed std.lispex boundary produces TPZ5099 for a host refusal that reaches its fallback, a response for the wrong operation, an out-of-range limit or artifact length, a completed settlement missing its result, or an unknown operational-fault code.

    Why

    Host replies must match the requested operation and fit the expected value ranges. Guards prevent invalid replies from becoming successful API results.

    Source evidence

    Ordinary operational faults returned by Evaluate or EvaluateWithEvidence are handled separately as result values before the fallback. They do not all become TPZ5099. These source branches do not enumerate every producer or phase in the repository.

    Ruletopaz.rule.runtime-guard.value-conversion

    Canonical values do not require a factory handle

    A valid canonical value conversion does not require an unrelated rule factory call.

    The paired public 5.21.3 examples check host selection with the 5.21 conversion signature. Topaz 6.0 takes an admitted package, bytes, and host limits under Lispex values. The exact-value round trip specifies that conversion.

    Why

    A rule factory selects a prepared program. Converting a value does not select or evaluate a program.

    Source evidence

    Response

    Link

    Retain the full message, operation, compiler version, target, and package context. For a host refusal, check the relevant std.lispex activation and operation contract. A wrong-operation response or missing required result warrants a runtime defect-candidate report if reproduced. There is no verified source rewrite that resolves every producer of this code.

    Host selection and canonical conversion

    Link

    Convert canonical input without a factory call

    Link
    src/main.tpzConvert canonical input without a factory callOpen in Playground
    1. import std.io
    2. import std.test
    3. import std.lispex { valueFromCanonical }
    4. let bytes = test.assertOk(Bytes.fromArray([0]))
    5. let value = test.assertOk(valueFromCanonical(bytes))
    6. io.writeLine("canonical-ok")
    Expected outputexit 0
    canonical-ok
    
    $ topaz run src/main.tpz --compiler self · target product 5.21.3
    Expected result

    Expected result

    Execution completes. Exit code 0.

    Expected stdout
    1. canonical-ok

    This public 5.21.3 example checks host selection with the 5.21 one-argument conversion. Use the maintained application package and unchanged lock.

    Source evidence

    Convert canonical input after an explicit factory call

    Link
    src/main.tpzConvert canonical input after an explicit factory callOpen in Playground
    1. import std.io
    2. import std.test
    3. import std.lispex { valueFromCanonical }
    4. import std.lispex.rules { approve }
    5. let rule = approve()
    6. let bytes = test.assertOk(Bytes.fromArray([0]))
    7. let value = test.assertOk(valueFromCanonical(bytes))
    8. io.writeLine("canonical-ok")
    Expected outputexit 0
    canonical-ok
    
    $ topaz run src/main.tpz --compiler self · target product 5.21.3
    Expected result

    Expected result

    Execution completes. Exit code 0.

    Expected stdout
    1. canonical-ok

    This public 5.21.3 example checks host selection with the 5.21 one-argument conversion. Use the maintained application package and unchanged lock.

    Source evidence

    Verification

    Link

    Menu

    Download