Kiểm tra runtime Tcl và đánh giá một tập lệnh có giới hạn

Đọc các descriptor runtime Tcl và bản ghi sẵn sàng đã ký, rồi đánh giá một tập lệnh có giới hạn từ stdin và kiểm tra biên nhận của nó.

Dùng Altifigence CLI 0.1.9 trên Linux để đọc các descriptor runtime Tcl đã cài đặt, xác nhận bản ghi sẵn sàng runtime đã ký và đánh giá một tập lệnh Tcl có giới hạn thông qua trình chạy đã cài đặt.

Đọc các descriptor runtime

Chạy các lệnh bằng tài khoản người dùng thông thường. Mỗi truy vấn trả lời từ các descriptor alti-tcl đóng gói sẵn và in JSON.

alti tcl capabilities
alti tcl environment
alti tcl commands

alti tcl commands liệt kê các lệnh sản phẩm đã đăng ký và tính khả dụng của từng lệnh. Giữ đầu ra của nó cùng với các tập lệnh của bạn.

Kiểm tra runtime đã ký

Đọc bản ghi sẵn sàng runtime đã ký. Truy vấn này không chạy Tcl.

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

Xác nhận trạng thái thoát là 0 và các giá trị sau trước khi đánh giá tập lệnh:

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

Đánh giá một tập lệnh

Truyền tập lệnh qua stdin và lưu biên nhận:

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"

Xác nhận trạng thái thoát là 0. Các trường biên nhận được chọn là:

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

Biên nhận cũng có inputSha256, jobSha256, resultArtifactSha256 và provenance. Trong provenance, resolved_placement là local, resolved_device_class là cpu và backend_id là embedded-tcl.

Khi không có --json, lệnh ghi kết quả ra stdout và một dòng tóm tắt ra stderr:

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

Mỗi lần chạy đọc một tập lệnh tối đa 4194304 byte. CLI ghi nó vào một không gian làm việc riêng dưới /tmp, chạy nó như một công việc CPU cục bộ với 1 slot CPU, 536870912 byte bộ nhớ và giới hạn thời gian thực 5000 ms, đọc lại kết quả từ trình chạy và xóa không gian làm việc.

Xử lý khi đánh giá thất bại

Với --json, hãy đọc failure.code và failure.message trong biên nhận. Khi không có, stderr hiển thị Tcl evaluation failed: theo sau là mã.

TCL_INPUT_EMPTY với Tcl input must not be empty. thoát với trạng thái 2. Hãy đưa vào một tập lệnh không rỗng qua pipe và chạy lại lệnh.

TCL_INPUT_TOO_LARGE với Tcl input exceeds the 4194304-byte limit. thoát với trạng thái 2. Giữ tập lệnh trong giới hạn 4194304 byte.

status failed với failure.code eda-tcl.local-runner.unsupported-command và thông báo local Tcl evaluation failed within the requested boundary thoát với trạng thái 1. Với các lệnh sản phẩm, hãy chọn một mục có availability là available từ alti tcl commands, chẳng hạn ::alti::echo hoặc ::alti::capabilities.

TCL_INSTALLED_RUNNER_UNAVAILABLE với The installed qualified Tcl runner is unavailable. thoát với trạng thái 127. Chạy alti mà bootstrap 0.1.9 đã cài đặt, rồi kiểm tra lại alti tcl readiness.

Các lệnh engine của CLI