로컬 XLS 결과 저장, 목록 조회 및 다시 열기

네이티브 XLS 요청을 프로젝트의 결과 저장소로 실행하고, 저장된 결과의 목록을 확인하고, 콘텐츠 ID로 결과 하나를 다시 엽니다.

Linux에서 Altifigence CLI 0.1.9를 사용해 네이티브 XLS 결과를 로컬 프로젝트에 보관하세요. 저장된 각 결과는 저장, 목록 조회, 다시 열기 시점마다 포함된 요청을 CPU에서 재실행해 검증됩니다.

결과 저장하기

로컬 프로젝트의 절대 경로를 사용하세요. 이 예제에서는 $HOME/alti-projects/demo-project를 사용합니다. 네이티브 작업 요청을 저장하세요:

set -euo pipefail
PROJECT="$(cd "$HOME/alti-projects/demo-project" && pwd -P)"
WORK="$(mktemp -d)"
cat > "$WORK/eval.json" <<'JSON'
{
  "schema": "altifigence.xls.operation-request.v1",
  "operation": "eval",
  "input_kind": "dslx",
  "source": "fn compute(x: u8, y: u8) -> u8 { x + y }",
  "top": "compute",
  "backend": "cpu",
  "vectors": [["1", "2"]]
}
JSON
alti xls artifact store --project "$PROJECT" --request "$WORK/eval.json" > "$WORK/ref.json"
jq '{schema, result_schema, replay_verified}' "$WORK/ref.json"
ID="$(jq -r .id "$WORK/ref.json")"

store는 요청에 지정된 작업을 실행하고, 결과를 재실행한 뒤 저장합니다. 종료 상태가 0인지 확인하세요. 선택한 참조 필드는 다음과 같습니다:

{
  "schema": "altifigence.xls.artifact-ref.v1",
  "result_schema": "altifigence.xls.operation-result.v1",
  "replay_verified": true
}

id와 sha256은 같은 값을 가집니다. 이 값은 저장된 결과의 SHA-256이며, 소문자 십육진수 문자 64개입니다. 결과는 --project로 지정한 폴더 안에 .altifigence/xls/artifacts/<id>.json으로 저장됩니다. --project가 없으면 현재 폴더를 사용합니다. Optimize 및 codegen 요청은 compilation이 포함된 altifigence.xls.operation-result.v2 결과를 저장합니다. 같은 요청을 다시 저장하면 같은 id가 반환됩니다.

저장된 결과 목록 보기

alti xls artifact list --project "$PROJECT" > "$WORK/list.json"
jq '{schema, limit, replay_verified, ids}' "$WORK/list.json"

ids에는 저장된 ID가 정렬된 순서로 들어 있습니다. 목록을 보여 주기 전에 저장된 모든 결과가 해당 ID와 대조되고 재실행됩니다. 목록은 최대 256개의 항목을 다룹니다. 저장된 결과가 없는 프로젝트는 빈 ids 배열을 반환합니다. alti xls run이 게시한 결과는 같은 저장소에 보관되며 같은 목록에 나타납니다.

결과 다시 열기

alti xls artifact show --project "$PROJECT" "$ID" > "$WORK/result.json"
jq '{schema, status, outputs}' "$WORK/result.json"

종료 상태가 0이면 선택한 필드는 다음과 같습니다:

{
  "schema": "altifigence.xls.operation-result.v1",
  "status": "succeeded",
  "outputs": [
    "bits[8]:0x3"
  ]
}

show는 request, source_sha256, request_sha256, parameters가 포함된 저장된 전체 결과를 반환합니다. 먼저 파일의 SHA-256이 ID와 같은지, 파일이 65536바이트 이내인지 확인한 다음, 포함된 요청을 재실행하고 모든 필드를 비교합니다.

오류 해결하기

XLS 엔진이 저장소 작업을 거부하면 명령은 종료 상태 2로 종료하고 altifigence.xls.error.v1 객체를 표준 출력에 씁니다. 코드와 메시지를 읽으세요:

alti xls artifact show --project "$PROJECT" "$ID" > "$WORK/show.json" || true
jq -r '.error.code + ": " + .error.message' "$WORK/show.json"

CLI는 표준 오류에 error: 접두사를 붙여 XLS artifact id must be 64 lowercase hexadecimal characters를 보고하고 엔진을 실행하기 전에 종료 상태 1로 종료합니다. 표준 오류에서 이 메시지를 읽으세요. store 또는 list의 ids에서 id를 변경하지 말고 그대로 복사하세요.

artifact-not-found: XLS store does not exist가 표시되면 store에서 사용한 것과 같은 --project를 전달하세요.

show에서 artifact-io: cannot access local XLS artifact store가 표시되면 같은 --project로 list를 실행하고 ids의 ID를 사용하세요.

resource-limit: store listing exceeds 256 entries; use artifact-show with a known id가 표시되면 store에서 저장해 둔 ID로 show를 사용해 결과를 다시 여세요.

네이티브 XLS로 검사, 평가 및 RTL 생성하기