Verificare il runtime Tcl e valutare uno script limitato

Leggi i descrittori del runtime Tcl e il record di prontezza firmato, quindi valuta uno script limitato da stdin e controlla la sua ricevuta.

Utilizza Altifigence CLI 0.1.9 su Linux per leggere i descrittori del runtime Tcl installato, confermare il record di prontezza firmato del runtime e valutare uno script Tcl limitato tramite il runner installato.

Leggere i descrittori del runtime

Esegui i comandi con il tuo normale account utente. Ogni query risponde dai descrittori alti-tcl inclusi nel pacchetto e stampa JSON.

alti tcl capabilities
alti tcl environment
alti tcl commands

alti tcl commands elenca i comandi di prodotto registrati e la disponibilità di ciascun comando. Conserva l’output insieme ai tuoi script.

Verificare il runtime firmato

Leggi il record di prontezza firmato del runtime. Questa query non esegue Tcl.

set -euo pipefail
WORK="$(mktemp -d)"
alti tcl readiness > "$WORK/readiness.json"
jq '{schemaVersion, installedQualified, cryptographicVerifierLinked, blocker}' \
  "$WORK/readiness.json"

Prima di valutare uno script, verifica che il codice di uscita sia 0 e che i valori siano questi:

{
  "schemaVersion": "altifigence.eda-tcl-runtime-component-readiness.v1",
  "installedQualified": true,
  "cryptographicVerifierLinked": true,
  "blocker": null
}

Valutare uno script

Passa lo script da stdin e salva la ricevuta:

printf '%s' 'expr {6 * 7}' | alti --json tcl evaluate > "$WORK/tcl-evaluate.json"
jq '{schema, status, inputBytes, result, resultBytes, resultArtifactId, failure}' \
  "$WORK/tcl-evaluate.json"

Verifica che il codice di uscita sia 0. I campi selezionati della ricevuta sono:

{
  "schema": "altifigence.cli.tcl-evaluation.v1",
  "status": "succeeded",
  "inputBytes": 12,
  "result": "42",
  "resultBytes": 2,
  "resultArtifactId": "tcl-evaluation",
  "failure": null
}

La ricevuta contiene anche inputSha256, jobSha256, resultArtifactSha256 e provenance. In provenance, resolved_placement è local, resolved_device_class è cpu e backend_id è embedded-tcl.

Senza --json, il comando scrive il risultato su stdout e una riga di riepilogo su stderr:

printf '%s' 'expr {6 * 7}' | alti tcl evaluate
42
[succeeded] tcl.evaluate input=12 sha256=e96de7a3a920d7cd5aafa8c86630028d97a0fb0dc260da2f089de12ea4214a6f artifact=tcl-evaluation

Ogni esecuzione legge uno script di al massimo 4194304 byte. La CLI lo scrive in un workspace privato sotto /tmp, lo esegue come job CPU locale con 1 slot CPU, 536870912 byte di memoria e un limite di 5000 ms di tempo reale, rilegge il risultato dal runner e rimuove il workspace.

Riprendere dopo una valutazione non riuscita

Con --json, leggi failure.code e failure.message nella ricevuta. Senza di esso, stderr mostra Tcl evaluation failed: seguito dal codice.

TCL_INPUT_EMPTY con Tcl input must not be empty. termina con codice di uscita 2. Passa tramite pipe uno script non vuoto ed esegui di nuovo il comando.

TCL_INPUT_TOO_LARGE con Tcl input exceeds the 4194304-byte limit. termina con codice di uscita 2. Mantieni lo script entro 4194304 byte.

status failed con failure.code eda-tcl.local-runner.unsupported-command e il messaggio local Tcl evaluation failed within the requested boundary termina con codice di uscita 1. Per i comandi di prodotto, scegli una voce con availability available da alti tcl commands, ad esempio ::alti::echo o ::alti::capabilities.

TCL_INSTALLED_RUNNER_UNAVAILABLE con The installed qualified Tcl runner is unavailable. termina con codice di uscita 127. Esegui l’alti installato dal bootstrap 0.1.9, quindi controlla di nuovo alti tcl readiness.

Comandi dei motori CLI