Tcl 런타임 확인 및 제한된 스크립트 평가하기

Tcl 런타임 디스크립터와 서명된 준비 상태 기록을 읽은 다음, stdin의 제한된 스크립트 하나를 평가하고 영수증을 확인합니다.

Linux에서 Altifigence CLI 0.1.9를 사용해 설치된 Tcl 런타임 디스크립터를 읽고, 서명된 런타임 준비 상태 기록을 확인하고, 설치된 러너로 제한된 Tcl 스크립트 하나를 평가하세요.

런타임 디스크립터 읽기

일반 사용자 계정으로 명령을 실행하세요. 각 조회는 패키지에 포함된 alti-tcl 디스크립터에서 답을 가져와 JSON을 출력합니다.

alti tcl capabilities
alti tcl environment
alti tcl commands

alti tcl commands는 등록된 제품 명령과 각 명령의 사용 가능 여부를 나열합니다. 출력은 스크립트와 함께 보관하세요.

서명된 런타임 확인하기

서명된 런타임 준비 상태 기록을 읽으세요. 이 조회는 Tcl을 실행하지 않습니다.

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

스크립트를 평가하기 전에 종료 상태가 0이고 값이 다음과 같은지 확인하세요:

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

스크립트 평가하기

스크립트를 stdin으로 전달하고 영수증을 저장하세요:

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"

종료 상태가 0인지 확인하세요. 선택한 영수증 필드는 다음과 같습니다:

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

영수증에는 inputSha256, jobSha256, resultArtifactSha256, provenance도 있습니다. provenance에서 resolved_placement는 local, resolved_device_class는 cpu, backend_id는 embedded-tcl입니다.

--json이 없으면 명령은 결과를 stdout에, 요약 줄을 stderr에 씁니다:

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

각 실행은 최대 4194304바이트의 스크립트 하나를 읽습니다. CLI는 스크립트를 /tmp 아래의 비공개 작업 공간에 쓰고, CPU 슬롯 1개, 메모리 536870912바이트, 실제 경과 시간 제한 5000 ms의 로컬 CPU 작업으로 실행한 다음, 러너에서 결과를 다시 읽고 작업 공간을 제거합니다.

실패한 평가 해결하기

--json을 사용하면 영수증의 failure.code와 failure.message를 읽으세요. 사용하지 않으면 stderr에 Tcl evaluation failed: 뒤에 코드가 표시됩니다.

메시지가 Tcl input must not be empty.인 TCL_INPUT_EMPTY는 종료 상태 2로 종료됩니다. 비어 있지 않은 스크립트를 파이프로 전달하고 명령을 다시 실행하세요.

메시지가 Tcl input exceeds the 4194304-byte limit.인 TCL_INPUT_TOO_LARGE는 종료 상태 2로 종료됩니다. 스크립트는 4194304바이트 이내로 유지하세요.

status가 failed이고 failure.code가 eda-tcl.local-runner.unsupported-command이며 메시지가 local Tcl evaluation failed within the requested boundary인 경우 종료 상태 1로 종료됩니다. 제품 명령은 alti tcl commands에서 availability가 available인 항목을 선택하세요. 예를 들면 ::alti::echo 또는 ::alti::capabilities입니다.

메시지가 The installed qualified Tcl runner is unavailable.인 TCL_INSTALLED_RUNNER_UNAVAILABLE은 종료 상태 127로 종료됩니다. 0.1.9 부트스트랩이 설치한 alti를 실행한 다음 alti tcl readiness를 다시 확인하세요.

CLI 엔진 명령어