Vérifier le runtime Tcl et évaluer un script borné

Lisez les descripteurs du runtime Tcl et l’enregistrement de disponibilité signé, puis évaluez un script borné depuis stdin et vérifiez son reçu.

Utilisez Altifigence CLI 0.1.9 sous Linux pour lire les descripteurs du runtime Tcl installé, confirmer l’enregistrement de disponibilité signé du runtime et évaluer un script Tcl borné avec l’exécuteur installé.

Lire les descripteurs du runtime

Exécutez les commandes avec votre compte utilisateur habituel. Chaque interrogation répond à partir des descripteurs alti-tcl fournis et affiche du JSON.

alti tcl capabilities
alti tcl environment
alti tcl commands

alti tcl commands répertorie les commandes produit enregistrées et la disponibilité de chacune. Conservez sa sortie avec vos scripts.

Vérifier le runtime signé

Lisez l’enregistrement de disponibilité signé du runtime. Cette interrogation n’exécute pas Tcl.

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

Vérifiez que le code de sortie est 0 et ces valeurs avant d’évaluer un script :

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

Évaluer un script

Transmettez le script sur stdin et enregistrez le reçu :

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"

Vérifiez que le code de sortie est 0. Les champs sélectionnés du reçu sont :

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

Le reçu contient aussi inputSha256, jobSha256, resultArtifactSha256 et provenance. Dans provenance, resolved_placement vaut local, resolved_device_class vaut cpu et backend_id vaut embedded-tcl.

Sans --json, la commande écrit le résultat sur stdout et une ligne de résumé sur stderr :

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

Chaque exécution lit un script d’au plus 4194304 octets. La CLI l’écrit dans un espace de travail privé sous /tmp, l’exécute comme job CPU local avec 1 slot CPU, 536870912 octets de mémoire et une limite de temps réel de 5000 ms, relit le résultat depuis l’exécuteur et supprime l’espace de travail.

Reprendre après un échec d’évaluation

Avec --json, lisez failure.code et failure.message dans le reçu. Sans cette option, stderr affiche Tcl evaluation failed: suivi du code.

TCL_INPUT_EMPTY avec Tcl input must not be empty. se termine avec le code de sortie 2. Envoyez un script non vide par un tube et relancez la commande.

TCL_INPUT_TOO_LARGE avec Tcl input exceeds the 4194304-byte limit. se termine avec le code de sortie 2. Limitez le script à 4194304 octets.

status failed avec failure.code eda-tcl.local-runner.unsupported-command et le message local Tcl evaluation failed within the requested boundary entraîne un code de sortie 1. Pour les commandes produit, choisissez une entrée avec availability available dans alti tcl commands, par exemple ::alti::echo ou ::alti::capabilities.

TCL_INSTALLED_RUNNER_UNAVAILABLE avec The installed qualified Tcl runner is unavailable. se termine avec le code de sortie 127. Exécutez le alti installé par le bootstrap 0.1.9, puis vérifiez de nouveau alti tcl readiness.

Commandes CLI des moteurs