Memeriksa runtime Tcl dan mengevaluasi skrip terbatas

Baca deskriptor runtime Tcl dan catatan kesiapan yang ditandatangani, lalu evaluasi satu skrip terbatas dari stdin dan periksa tanda terimanya.

Gunakan Altifigence CLI 0.1.9 di Linux untuk membaca deskriptor runtime Tcl yang terinstal, memastikan catatan kesiapan runtime yang ditandatangani, dan mengevaluasi satu skrip Tcl terbatas melalui runner terinstal.

Membaca deskriptor runtime

Jalankan perintah sebagai pengguna biasa. Setiap kueri dijawab dari deskriptor alti-tcl yang dikemas dan mencetak JSON.

alti tcl capabilities
alti tcl environment
alti tcl commands

alti tcl commands mencantumkan perintah produk yang terdaftar dan ketersediaan setiap perintah. Simpan outputnya bersama skrip Anda.

Memeriksa runtime yang ditandatangani

Baca catatan kesiapan runtime yang ditandatangani. Kueri ini tidak menjalankan Tcl.

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

Sebelum Anda mengevaluasi skrip, pastikan status keluar adalah 0 dan nilainya sebagai berikut:

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

Mengevaluasi skrip

Berikan skrip melalui stdin dan simpan tanda terimanya:

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"

Pastikan status keluar adalah 0. Kolom tanda terima yang dipilih adalah:

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

Tanda terima juga memiliki inputSha256, jobSha256, resultArtifactSha256, dan provenance. Di dalam provenance, resolved_placement adalah local, resolved_device_class adalah cpu, dan backend_id adalah embedded-tcl.

Tanpa --json, perintah menulis hasil ke stdout dan satu baris ringkasan ke stderr:

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

Setiap eksekusi membaca satu skrip hingga 4194304 byte. CLI menulisnya ke workspace privat di bawah /tmp, menjalankannya sebagai tugas CPU lokal dengan 1 slot CPU, memori 536870912 byte, dan batas wall-time 5000 ms, membaca kembali hasil dari runner, dan menghapus workspace.

Mengatasi evaluasi yang gagal

Dengan --json, baca failure.code dan failure.message di tanda terima. Tanpa itu, stderr menampilkan Tcl evaluation failed: diikuti kode.

TCL_INPUT_EMPTY dengan Tcl input must not be empty. keluar dengan status 2. Salurkan skrip yang tidak kosong melalui pipe lalu jalankan perintah lagi.

TCL_INPUT_TOO_LARGE dengan Tcl input exceeds the 4194304-byte limit. keluar dengan status 2. Batasi skrip hingga 4194304 byte.

status failed dengan failure.code eda-tcl.local-runner.unsupported-command dan pesan local Tcl evaluation failed within the requested boundary keluar dengan status 1. Untuk perintah produk, pilih entri dengan availability available dari alti tcl commands, seperti ::alti::echo atau ::alti::capabilities.

TCL_INSTALLED_RUNNER_UNAVAILABLE dengan The installed qualified Tcl runner is unavailable. keluar dengan status 127. Jalankan alti yang diinstal oleh bootstrap 0.1.9, lalu periksa alti tcl readiness lagi.

Perintah engine CLI