Armazenar, listar e reabrir resultados locais do XLS
Execute uma solicitação XLS nativa para o armazenamento de resultados do projeto, liste os resultados armazenados e reabra um deles pelo ID de conteúdo.
Use o Altifigence CLI 0.1.9 no Linux para guardar resultados XLS nativos em um projeto local. Cada resultado armazenado é verificado reproduzindo na CPU a solicitação incluída nele quando é armazenado, listado e reaberto.
Armazenar um resultado
Use um caminho absoluto para seu projeto local. Este exemplo usa $HOME/alti-projects/demo-project. Salve uma solicitação de operação nativa:
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 executa a operação nomeada na solicitação, reproduz o resultado e o salva. Exija o status de saída 0. Os campos de referência selecionados são:
{
"schema": "altifigence.xls.artifact-ref.v1",
"result_schema": "altifigence.xls.operation-result.v1",
"replay_verified": true
}id e sha256 têm o mesmo valor: o SHA-256 do resultado armazenado, com 64 caracteres hexadecimais em minúsculas. O resultado é salvo como .altifigence/xls/artifacts/<id>.json dentro da pasta indicada por --project. Sem --project, a pasta atual é usada. As solicitações optimize e codegen armazenam resultados altifigence.xls.operation-result.v2 que incluem compilation. Armazenar a mesma solicitação novamente retorna o mesmo id.
Listar resultados armazenados
alti xls artifact list --project "$PROJECT" > "$WORK/list.json"
jq '{schema, limit, replay_verified, ids}' "$WORK/list.json"ids contém os IDs armazenados em ordem. Antes de listar, cada resultado armazenado é verificado em relação ao seu ID e reproduzido. A lista abrange até 256 entradas. Um projeto sem resultados armazenados retorna um array ids vazio. Os resultados publicados por alti xls run ficam no mesmo armazenamento e aparecem na mesma lista.
Reabrir um resultado
alti xls artifact show --project "$PROJECT" "$ID" > "$WORK/result.json"
jq '{schema, status, outputs}' "$WORK/result.json"Após o status de saída 0, os campos selecionados são:
{
"schema": "altifigence.xls.operation-result.v1",
"status": "succeeded",
"outputs": [
"bits[8]:0x3"
]
}show retorna o resultado armazenado completo, incluindo request, source_sha256, request_sha256 e parameters. Primeiro ele verifica se o SHA-256 do arquivo é igual ao ID e se o arquivo está dentro de 65536 bytes; depois, reproduz a solicitação incluída e compara todos os campos.
Resolver erros
Quando o mecanismo XLS rejeita uma operação store, o comando termina com o status de saída 2 e grava um objeto altifigence.xls.error.v1 na saída padrão. Leia o código e a mensagem dele:
alti xls artifact show --project "$PROJECT" "$ID" > "$WORK/show.json" || true
jq -r '.error.code + ": " + .error.message' "$WORK/show.json"A CLI informa XLS artifact id must be 64 lowercase hexadecimal characters no erro padrão com o prefixo error: e termina com o status de saída 1 antes de executar o mecanismo. Leia essa mensagem no erro padrão. Copie o id de store ou de ids em list sem alterações.
Para artifact-not-found: XLS store does not exist, passe o mesmo --project que você usou com store.
Para artifact-io: cannot access local XLS artifact store vindo de show, execute list com o mesmo --project e use um ID de ids.
Para resource-limit: store listing exceeds 256 entries; use artifact-show with a known id, reabra os resultados com show e os IDs salvos de store.