Skip to content

lawref.conformance

Conformance descriptor §266.3 — заявка реализации и её проверка (WP-27-срез).

Дескриптор здесь не пишется руками: он собирается из того, что уже проверено — реестра версий и features (WP-32), слоевой разметки векторов (WP-24) и фактического набора артефактов. Заявка, которую никто не сверяет, хуже её отсутствия: она выглядит как обещание, а является текстом.

Правила проверки (verify) отражают нормативные требования:

  • заявленная версия языка обязана иметь статус supported в реестре;
  • заявленная feature обязана существовать и быть active: заявить зарезервированную — ложное утверждение (§26);
  • заявка слоя Li означает «все векторы слоёв L0…Li проходят» (LAYERS A1.7). xfail на таком векторе опровергает заявку: требование заведомо не выполняется. pending (артефактов ещё нет) заявку не опровергает, но обязан быть раскрыт в deferred — иначе заявка прячет пробел вместо того, чтобы его назвать (§197 + WP-27: «дескриптор с отложенными блоками»);
  • core-production (§8.6) требует объявленных resource limits — профиль без них не заявляется.

Частично реализованные возможности НЕ заявляются. Схема не различает «есть» и «есть наполовину», поэтому половина — это «нет»; чем именно она половина, сказано в STATUS, а не в дескрипторе.

Attributes

NameDescription
LAYER_ORDERNo description.
PROFILESNo description.

Functions

NameDescription
buildСборка дескриптора. Версии языка берутся из реестра, а не задаются.
descriptor_hashsha256 канонических байтов дескриптора без самого поля хэша.
load_registryNo description.
load_vectorsNo description.
verifyСписок опровержений заявки; пустой — заявка подтверждена данными.
writeNo description.

LAYER_ORDERattributemodule attribute#

LAYER_ORDER = {'L0': 0, 'L1': 1, 'L2': 2, 'L3': 3}

PROFILESattributemodule attribute#

PROFILES = (
  'core-syntax',
  'core-static',
  'core-representation',
  'core-executable',
  'core-auditable',
  'core-production'
)

buildfunction#

def build(implementation: str, profiles: list[str], features: list[str], semantic_layer: str, resource_limits: dict[str, Any], proof_capabilities: list[str], registry: dict, deferred: list[dict] | None = None, interop_adapters: list[dict] | None = None) -> dict

Сборка дескриптора. Версии языка берутся из реестра, а не задаются.

descriptor_hashfunction#

def descriptor_hash(descriptor: dict) -> str

sha256 канонических байтов дескриптора без самого поля хэша.

load_registryfunction#

def load_registry(root: Path) -> dict

load_vectorsfunction#

def load_vectors(root: Path) -> list[dict]

verifyfunction#

def verify(descriptor: dict, registry: dict, vectors: list[dict]) -> list[str]

Список опровержений заявки; пустой — заявка подтверждена данными.

writefunction#

def write(path: Path, descriptor: dict) -> None

Documentation for Arxo. Writings — blog.arxo.io.

Anonymous visit counts on stats.arxo.io, no cookies.