Сохранение, просмотр списка и повторное открытие локальных результатов XLS
Запустите нативный запрос XLS с сохранением результата в хранилище проекта, выведите список сохранённых результатов и повторно откройте один из них по идентификатору содержимого.
Используйте Altifigence CLI 0.1.9 в Linux, чтобы хранить нативные результаты 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 шестнадцатеричных символа в нижнем регистре. Результат сохраняется как .altifigence/xls/artifacts/<id>.json внутри папки, заданной параметром --project. Без --project используется текущая папка. Запросы optimize и codegen сохраняют результаты altifigence.xls.operation-result.v2, содержащие compilation. Повторное сохранение того же запроса возвращает тот же id.
Список сохранённых результатов
alti xls artifact list --project "$PROJECT" > "$WORK/list.json"
jq '{schema, limit, replay_verified, ids}' "$WORK/list.json"ids содержит сохранённые идентификаторы в отсортированном порядке. Перед составлением списка каждый сохранённый результат сверяется со своим идентификатором и воспроизводится. Список охватывает до 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 файла равен идентификатору и что размер файла не превышает 65536 байт, затем воспроизводит встроенный запрос и сравнивает каждое поле.
Действия при ошибках
Когда движок XLS отклоняет операцию store, команда завершается с кодом 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 сообщает XLS artifact id must be 64 lowercase hexadecimal characters в стандартном потоке ошибок с префиксом error: и завершается с кодом 1 до запуска движка. Прочитайте это сообщение в стандартном потоке ошибок. Скопируйте id из store или из ids в list без изменений.
При artifact-not-found: XLS store does not exist передайте тот же --project, который вы использовали с store.
При artifact-io: cannot access local XLS artifact store от show выполните list с тем же --project и используйте идентификатор из ids.
При resource-limit: store listing exceeds 256 entries; use artifact-show with a known id открывайте результаты с помощью show и идентификаторов, сохранённых из store.
Проверка, вычисление и генерация RTL с помощью нативного XLS