OxL Справочник OxL
РусскийEnglish

Приложение D. Определяется реализацией

Перечень всех пунктов Стандарта, в которых поведение определяется реализацией или возможность необязательна (§0.1). Для каждого пункта дан якорь impl-… (ссылка ведёт к примечанию с полным текстом), вид, выбор данной реализации (OxL 1.0, Linux x86-64) и источники: решение D-… в docs/decisions.md и запись DIV-… в docs/divergences.md. Реализация ДОЛЖНА поддерживать такой перечень актуальным для каждого выпуска; пункты, не включённые сюда, не имеют права отличаться от Стандарта. Вид: П — поведение определяется реализацией (выбор документирован); Н — необязательная возможность, в этой реализации отсутствует или реализована частично.

ЯкорьРазделВидВыбор данной реализацииИсточники
impl-platforms§0.3Нтолько Linux x86-64; macOS, Windows, кросс-компиляция не поставляютсяD-1604, D-8051; DIV-035
impl-borrow-scope§7.2Плексические заимствования, путь-чувствительно для полейD-600; DIV-002
impl-io-backend§8.1Пio_uring (запасной epoll и пул блокирующих потоков); вытеснение — поток-монитор и сигналD-1600..D-1604; DIV-035
impl-stack-overflow§8.1Пстек задачи 256 КиБ, корневой 8 МиБ; переполнение — паника, код 101D-3562; DIV-003
impl-user-format-decode§9.5Ну Decoder нет пропуска значения: неизвестное поле — Invalid; неизвестное число открытого enum не читаетсяD-8344; DIV-007
impl-view§9.6Птолько бинарный формат и прямые поля; полное декодирование при проверкеD-6501..D-6505; DIV-046
impl-middleware-scope§10.2Нmiddleware только на сервере и не на стримахD-7530; DIV-010
impl-attr-apply§15.4Нcomptime fn Имя.apply зарезервированD-7530
impl-outbox-backends§11.2Нoutbox только для builtin://D-4999, D-5484; DIV-014
impl-2pc§11.2Н2PC нет; cross_shard: true — предупреждение cross-shard-tx; CrossShardTxD-4410; DIV-021
impl-atomic-db-other§11.2Пдругая база в теле atomic(db) по эффектам не отличаетсяD-7790
impl-seeds-k8s§12.1Нk8s(…) не разрешается; static[…], oxl devD-4259; DIV-023, DIV-054
impl-placement§12.1Пресурсы needs и hosts не управляют размещениемD-4601, D-4899; DIV-016
impl-raft-membership§12.4Псмена состава одиночными шагами, без joint consensusD-4379; DIV-020
impl-replica-reads§12.4Ннет leader lease и чтения SQL-таблиц builtin:// с реплик (std.kv — есть, ReadIndex)D-8220, D-8221; DIV-019
impl-actor-dedup§12.5Покно дедупликации 64 сообщения, без срока; @mailbox нетD-4899; DIV-018
impl-shards-reduce§12.6Нcluster.shards(..).map(..).reduceBy(..) не построен; есть cluster.shards()D-4804, D-4899; DIV-015
impl-module-dep§12.7Пмодульный dep только в сагах и пайплайнах модуляD-5101; DIV-017
impl-migrate-online§12.8Нoxl db migrate только для остановленного узла; онлайн-миграции нетD-8240, D-8241; DIV-022
impl-wal-recovery§12.8Ппорча журнала: по умолчанию отказ открыть; kPointInTime — только через API C++D-8310
impl-crypto-backend§13.1Пlibssl-совместимая библиотека (OpenSSL ≥ 3.0); AWS-LC не проверенD-4739; DIV-024
impl-acme§13.1НACME нет; --tls-cert/--tls-keyD-4739; DIV-024, DIV-054
impl-ktls§13.1ПkTLS не используетсяD-4739; DIV-024
impl-quic§13.1НQUIC и HTTP/3 нетD-4739; DIV-024
impl-oidc§13.2НOIDC нет; JWT по JWKS или ключу естьD-4739; DIV-025
impl-apikey-store§13.2Пключи — JSON с SHA-256; сессии — в реплицируемом хранилищеD-8200, D-8201; DIV-025
impl-principal-id§13.2Пидентификатор пользователя — str (claim sub)D-2905; DIV-049
impl-kms§13.3Нключ из файла; kms(url) нет; @encrypted — вся запись; один CA-узелD-4739, D-4899, D-4999; DIV-027
impl-dynconf§14.2Пистория 40 изменений на поле; без страницы конфигурации в inspectorD-5203; DIV-033
impl-gateway§16.3Нтолько POST, HTTP/2, без стримов; GET, NDJSON и oxl export --openapi нетD-8210, D-8241; DIV-026
impl-comptime-io§15.1Нтолько comptime.embedDir; readFile, template нетD-7883
impl-gen-clients§16.3Несть Python, TypeScript, Go, Kotlin; клиентов C++ нет; умолчания параметров не генерируются; @resumable игнорируетсяD-4756; DIV-034
impl-tzdb§17.5Псистемная tzdata ($OXL_TZDIR, /usr/share/zoneinfo)D-3104; DIV-008
impl-mock§18.3Пmock/S.calls для унарных rpc сервисовD-7250; DIV-037
impl-sim§18.4Пупрощённая модель симулятора (без Raft и SWIM)D-6213, D-6256..D-6258; DIV-036
impl-ab§18.5Пметрики std.obs не по вариантам в кластере; стримы не журналируютсяD-6851; DIV-038
impl-stdlib-optionalII.1Ннет Quic, HTTP/3, oidc, BlobStore, imagekitD-4739; DIV-024, DIV-051
impl-opt-hintsII.3П@inline, @cold, likely — подсказки LLVM; @arena нетD-7690, D-7691, D-7700
impl-web-subsetII.4Нподмножество std.web: Site.embedded и сопутствующееD-7884
impl-imageIII.1П--image без push; статический бинарник — oxl build --staticDIV-045
impl-pkg-toolsIII.2Ннет [build] targets, s3://, TLS в registry serve; кэш по пакетуD-6552; DIV-042
impl-lsp-markersIII.3Пмаркеры вызовов — inlay-подсказкиDIV-044
impl-analyzer-pluginsIII.4Пплагины видят выражения плоско, без типовDIV-043
impl-debuggerIII.5Пnon-stop кооперативный; у удалённых кадров нет переменных; time-travel после 1.0DIV-039
impl-inspectorIII.8Псостояние актора по номерам полей; условия политик не видныD-6408, D-6409; DIV-040
impl-prod-subsystemsIII.8Пprod без сервисов и кластера не содержит inspector, отладчик, экспортёрD-7702

Поправки текста (errata) редакции 1.0, внесённые вместе с этим приложением, перечислены в приложении B: TxConflict как паника (§11.2), ProtocolError как data с константами (§6.5), значения [lint] (III.2), границы @owner и условия set (§13.4), политики debug и inspect (III.7, III.8), расхождения примера V.5, предупреждение cross-shard-tx (§11.2), подавление @allow(lint:…) (III.4), dbg/assert по профилям (§2.2, §18.2), идентичность во внешних вызовах (§13.2). Уточнения семантики, не являющиеся пунктами «определяется реализацией»: TVar вне atomic (§8.9), Middleware, Response и эффекты around (§10.2), тип результата cluster.lock (§12.6), отображения MessagePack и CBOR, @preserve_unknown, Encoder/Decoder/Format (§9.3–§9.5), comptime.embedDir (§15.1), неизвестный исход записи KV (§12.8).

Исходник: docs/spec/oxl-standard.md