Skip to main content Типы
- D17 — Объявление типов: единый синтаксис без |
- D52 — Объявление типов revised: newtype, alias, sum через leading |
- D406 — Sum-type синтаксис: enum маркер (2026-07-01)
- D53 — Унификация: protocol под type, protocol как kind-токен
- D55 — Literal coercion в позиции с явным типом: sum-конструкторы и record-литералы
- D42 — protocol keyword для структурных интерфейсов
- D15 — Структурные интерфейсы
- D39 — Embed и delegation: use name Type (alias обязателен)
- D32 — Семантика передачи параметров
- D36 — Поля типа: дефолт mutable у mut binding'а, ro для never-mut
- D175 — ro field — полный freeze (амендмент D36)
- D176 — ro T — тип-модификатор
- D66 — Self universal — ссылка на обобщающий тип в методах, effects, protocols
- D72 — Generic bounds через [T Protocol] — protocol как тип
- D110 — Ghost state — spec-only bindings
- D122 — Hybrid dispatch для bound-K methods
- D123 — Tuple monomorphization
- D215 — Named tuple fields + value/reference allocation contract
- D354 — Generic anonymous tuple monomorphization
- D119 — Method-level type parameters в generic methods
- D367 — Удаление byte: каноническое имя — u8
- D368 — Strict type propagation в codegen — no silent nova_int fallback
- D128 — char distinct from int в codegen mono'd generics
- D129 — int как alias i64 в bootstrap Nova
- D130 — uint — unsigned 64-bit alias в bootstrap Nova
- D133 — type X consume — обязательная consume-семантика (must-be-consumed)
- D156 — Generic [T consume] bound + collection-aware iteration
- D163 — FFI consume integration — type-driven, без отдельного keyword'а
- D164 — Cross-module consume — visibility + mangling + package contracts
- D135 — Type-checker completeness — «no silent fallback» на уровне типов
- D142 — protocol/effect declaration ↔ literal symmetry
- D144 — Sub-slice views для []T и str — arr[a..b] / s[a..b]
- D145 — fn[T] префикс — receiver-generic decl + bounds (Plan 101)
- D372 — Canonical .new() constructors (convention)
- D181 — Array methods — -> @ fluent mut chain + slice syntax
- D182 — Self в return-type static methods — required form для parametric types
- D183 — Canonical comparison protocols + default method bodies (Plan 91.8a)
- D183 — amendment — Plan 91.8a.2 part 1: protocols refactor (orthogonal) + Self в param
- D186 — — #impl(P1 + P2 + ...) opt-in annotation для protocols
- D200 — Associated constants — const field в type X
- D214 — ptr opaque pointer type + tuple FFI returns + opaque handle pattern
- D216 — Typed pointer family + unsafe model + null-safety через NPO
- D216 — V2 amend (2026-06-04) — universal right-binding rule для type-level modifiers + unsafe T first-class
- D246 — Три оси мутабельности: L1 binding / L2 view / L3 pointee
- D220 — Per-field visibility — priv keyword + type-level default flip
- D221 — Pattern destructure + literal init edge cases (Plan 124.2)
- D222 — Named tuple priv + protocol impl boundary (Plan 124.4)
- D224 — Escape hatches — #test_access + #visible_to (Plan 124.6)
- D225 — Type-level priv flip для named tuples (Plan 124.7)
- D226 — Signed indexing convention — int для len / capacity / index
- D216 — V3 amend (Plan 118.5 V3, 2026-06-04) — 4 modifier composition rules
- D237 — Protocol naming convention: method-name capitalized (Plan 137, 2026-06-09)
- D231 — RawMem allocator API — nova_alloc / nova_alloc_uncollectable / nova_free_uncollectable
- D232 — Vec[T] — Nova-native generic growable array
- D239 — []T — синтаксический псевдоним Vec[T]
- D248 — Запрет chained comparison + relational-операнды требуют ordered-категорию (Plan 150)
- D374 — Write-sink протокол — декаплинг Display/Debug от StringBuilder (Plan 152.7.1)
- D259 — Конструктор-конвенция Vec[T] — of для литерала, from для конверсии (Plan 153.1)
- D260 — Ленивый итератор Vec[T] — boxed-fluent адаптеры (Plan 153.2)
- D264 — Vec-протоколы: Hash + FromIterator / collect-target (Plan 153.6)
- D277 — By-value мономорфизация generic value-records + generic-over-source zero-cost адаптеры (Plan 153.2 Ф.2)
- D281 — Module-level field privacy — type X priv { … } (Plan 160)
- D307 — File-private visibility — priv(file) (Plan 170)
- D355 — — Blanket protocol-receiver methods (Plan 161, 2026-06-15)
- D284 — — EnumerateIter — zero-cost enumerate adapter (Plan 162)
- D290 — — Value-record iterator types (Plan 165, 2026-06-16)
- D364 — — Net C FFI pattern: opaque handles + value-record wrapping (Plan 91.12)
- D299 — — AsSlice[T] protocol: contiguous-buffer abstraction (Plan 153.1, 2026-06-17)
- D300 — — Vec generic forward-decl: body-site scan + tuple-elem fwd-decl (Plan 168, 2026-06-17)
- D373 — — Generic array API: sort/min/max/binary_search + _by variants (Plan 91.8c, 2026-06-17)
- D315 — ResolvedType — единый канонический носитель типа (Plan 172.1, 2026-06-21)
- D326 — — ref как режим передачи параметра (safe in-out / borrow); @/-> @ формализация (Plan 172.5, 2026-06-26)
- D327 — — Codepoint = u32 (а не int): тип кодпоинта в std.unicode (Plan 172.2, 2026-06-26)
- D310 — Type-set bounds (Plan 172.3)
- D405 — — Арифметика смешанных целых ширин: требовать явный cast (2026-06-30)
- D358 — — HTTP message-model (std/http, Plan 178 Ф.1) {#d358}
- D359 — — must-consume Body (std/http, Plan 178 Ф.1) {#d359}
- D340 — — serde data-model + protocols (Plan 180)
- D341 — — record auto-derive contract (compiler synthesis)
- D342 — — data-model ↔ synthesis mapping (Plan 180)
- D344 — — JSON backend over std/encoding/json (Plan 180)
- D345 — — sum auto-derive + tagging (Plan 180)
- D346 — — serde soundness invariants (Plan 180)
- D382 — — declaration attributes #serde(...) (Plan 180 Ф.6) {#d382}
Синтаксис
- D16 — Дженерики через [T], не <T>
- D19 — Match-arms через =>, не ->
- D20 — () вместо void, сводка стрелок, function type syntax
- D22 — Closure: light |...| и full fn(...)
- D23 — return — только для раннего выхода
- D27 — Синтаксис массивов: []T префикс, [N]T фиксированные
- D30 — Стиль именования
- D33 — Три оси immutability — ro/mut/consume + const + per-field freeze
- D34 — Pattern-bind в if/while conditions — unified grammar с match arms
- D35 — Методы инстанса через @, self отменён
- D37 — Доступ к полям: .name для record, .N для позиционных и кортежей
- D38 — Создание массивов и turbofish для дженериков
- D40 — Тело функции: => для одного выражения, {} для блока
- D43 — Trailing: { block } без params, fn(p) body с params
- D44 — Числовые литералы
- D45 — Inferred return type для expression-body
- D46 — Перегрузка операторов через @-методы
- D363 — Operator dispatch via protocols — замена magic methods (Plan 91.8b)
- D48 — Tagged template literals
- D49 — Statement separator и парсинг выражений
- D54 — Операторы as и is
- D58 — Range-литерал, Iter[T] protocol, for x in c implicit iter
- D59 — Array, tuple и позиционные partial patterns
- D60 — Spread ...x в литералах: массив и record
- D69 — Variadic-параметры через ...items []T
- D83 — Keywords строго запрещены как identifier'ы
- D88 — Default-значения generic-параметров
- D90 — defer и errdefer — scope-level cleanup statement
- D102 — Именованные аргументы и значения параметров по умолчанию
- D108 — Map-литерал [k: v]
- D104 — Синтаксис doc-comment'ов — /// outer, //! inner
- D117 — Size-like accessors require call syntax
- D126 — external type — opaque типы без body
- D132 — -> @ — fluent-return (метод возвращает receiver)
- D143 — Static-метод в protocol {} через leading-точку
- D158 — Failable cleanup body — Fail effect разрешён в defer/errdefer
- D159 — Async/suspend в cleanup body — cancel-safe
- D160 — okdefer + reason-aware defer |result|
- D161 — Multi-defer LIFO error accumulation + panic-in-defer composition
- D162 — Consume-integration final — check_consume + defer-family + cancel
- D184 — Keyword refresh: ro/mut/consume bindings, const narrowed + generalized, no let, readonly → ro
- D199 — const fn — comptime evaluable functions
- D409 — -> @: автоматический возврат приёмника (2026-07-06)
- D347 — Same-scope re-binding (ro/mut/consume x = ... повторно; тип может меняться)
- D188 — Cleanup[E] protocol + consume X = expr { body } scope-block
- D189 — Прямое удаление okdefer + errdefer + defer |result|
- D190 — Rejected alternative cleanup designs
- D191 — Async cleanup — suspend в cleanup body
- D192 — exit_timeout taxonomy + 3-level resolution
- D193 — MultiError — iteration + cycle-safety + depth-limit
- D194 — Cleanup[Never] — infallible cleanup + hot-path elision
- D196 — Init type constraints для consume X = expr { body }
- D197 — Cleanup re-entrance — nested consume {} inside cleanup
- D198 — #realtime + cleanup-timeout interaction
- D201 — #cancel_safe — attestation на FFI safety inside cleanup
- D227 — Numeric literal inference — default int, context coercion, hard range-check
- D238 — Index[K, V] protocol — a[key] magic
- D240 — MutIndex[K, V] protocol — a[key] = val magic
- D239 — []T как сахар над Vec[T]
- D241 — Канонический порядок модификаторов type-декларации (scope-adjacency)
- D262 — Slice-op surface на []T-view модели — без нового типа
- D249 — Строковая координатная модель: линзы вместо плоских методов
- D250 — CharsIter (codepoint-итератор) + конвенция as_/to_
- D251 — Полный str-surface (паритет Go/Rust/TS/Kotlin/Java)
- D252 — char-тип API — классификация / case / digit
- D253 — std/unicode — нормализация (UAX #15) + grapheme/word/sentence-сегментация (UAX #29) + case folding/mapping/title-casing
- D254 — Модель сравнения строк — byte-Ord дефолт + явный collation
- D255 — UTF-16 / code-point interop
- D258 — Формат-спеки в интерполяции — Rust-style mini-language
- D314 — Единое ядро cleanup — defer как примитив (defer-kernel)
- D410 — Ретракция as_*/to_*-близнецов: голые имена-виды, копия на месте вызова (2026-07-06)
- D411 — Record-деструктуризация в биндингах ro/mut (2026-07-07)
- D412 — Hex-блоб литерал x"…" → []u8 и интринсик embed("path") (2026-07-07)
Эффекты
- D2 — Эффекты вместо ключевых слов async/throws/unsafe
- D3 — Синтаксис эффектов: типы между ) и ->
- D4 — ? для пробрасывания ошибки
- D11 — Имена эффектов и синтаксис with
- D12 — Effect erasure и dynamic effects
- D18 — Эффекты объявляются через kind-токен, не голый type
- D25 — throw и параметризация Fail[E]
- D28 — Вывод эффектов: private — выводится, public — обязательно явно
- D31 — Handler-лямбда для эффектов с одной операцией
- D61 — Полная семантика эффектов: effect keyword, handler-литерал, Effect[E], interrupt
- D62 — Прагматичная семантика эффектов: прямые в сигнатуре, Fail strict, Async ambient, правило effect/protocol
- D65 — Полная семантика Fail: гибрид Fail[E] / Fail, lookup, prelude RuntimeError и Error
- D63 — forbid X { body } — capability sandbox
- D64 — realtime { body } / blocking { body } — гарантия не-приостановки _(RETRACTED by Plan 113)_
- D67 — ? оператор: семантика для Result через Fail, для Option через ранний return
- D68 — Stateful handlers: через closure capture или @as_handler метод record
- D85 — Операторы ? и !! — унифицированное поведение для Result и Option, throw-стиль через !!
- D86 — ?? coalesce-оператор — fallback для Result/Option
- D87 — Effect[E, IRT] — параметризация Handler типом interrupt'а
- D120 — #pure views + axioms + #verify/#trusted handlers
- D115 — Axiom binder — BinderType enum вместо Option<TypeRef>
- D118 — Typed Fail[E] codegen — payload preservation via fail-frame
- D185 — ResourceTrace effect — observability-only handler dispatch
- D195 — Application effect — nesting + finalizer scoping + cross-fiber propagation
- D209 — — Protocol method @ syntax + receiver mutability (Plan 108.4, 2026-06-09)
- D295 — (AMENDED V2) — DnsNet effect — async DNS resolution (Plan 91.12 Ф.9 + Plan 91.13, 2026-06-16)
- D377 — — UDP Socket Split: UdpSendHalf + UdpRecvHalf (Plan 166, 2026-06-17)
- D301 — — TCP Stream Split: TcpReadHalf + TcpWriteHalf (Plan 91.16, 2026-06-17)
- D302 — — NetError.Eof, NetError @to_str(), SocketAddr @ip() rename (Plan 91.15 P1, 2026-06-17)
- D407 — — std/net переработка: один слой FFI, байтовый транспорт, zero-copy, M:N-безопасность (Plan 183, 2026-07-06)
- D325 — — Единый fallible-контракт: публичный std возвращает Result (Plan 177, 2026-06-25)
- D316 — — Time: плумбинг-эффект, единый источник схемы + TimerMetrics-split (Plan 175 Ф.1, 2026-07-04)
- D317 — — Duration/instant overflow-policy: trap-default + checked_*/saturating_* (Plan 175 Ф.1c, 2026-07-06)
- D318 — — Monotonic: non-regression + clock-source contract (Plan 175 Ф.1c, 2026-07-06)
- D322 — — io-core: io.Read/io.Write/io.Seek, IoError, Io effect (Plan 176 Ф.1, 2026-07-04)
- D323 — — fs: byte-backed Path, Fs effect, File must-consume, Metadata (Plan 176 Ф.2, 2026-07-04)
- D324 — — os: Os effect (env / args / cwd / dirs / process) (Plan 176 Ф.3, 2026-07-06)
- D357 — — Http client transport seam (Plan 178 Ф.2, 2026-07-04)
- D360 — — HTTP client policies: redirect / auth-strip / status / transfer (Plan 178 Ф.2, 2026-07-04)
- D333 — — codec-контракт std/encoding/compress: PURE-codec, byte-first, Result (Plan 179 Ф.1/Ф.3, 2026-07-04)
- D334 — — bomb-cap: обязательный max_output decode-инвариант против decompression-DoS (Plan 179 Ф.1, 2026-07-04)
- D335 — — streaming incremental coder: feed/read/finish + SYNC-FLUSH + Plan 178 BodyReader-мост (Plan 179 Ф.1/Ф.3, 2026-07-04)
- D336 — — checksum-контракт: CRC-32 (gzip) / Adler-32 (zlib) / ISIZE verify-by-default (Plan 179 Ф.1, 2026-07-04)
- D337 — — brotli C-FFI-контракт (Plan 179 Ф.2)
Конкурентность
- D14 — Fiber runtime — невидимая инфраструктура
- D50 — Concurrency model: spawn, detach, Blocking
- D71 — Bootstrap concurrency runtime
- D75 — supervised(cancel: tok) — структурная отмена с внешним токеном
- D79 — Channels — coordination между fiber'ами
- D80 — Handler scoping per-fiber
- D91 — Channel revision — capability-split на ChanWriter / ChanReader
- D93 — Park/wake — нормативный runtime primitive для блокирующих операций
- D92 — Top-level main как implicit supervised scope
- D94 — select { ... } — multiplexed channel operations
- D97 — Fiber stack allocation — per-thread mmap arena (Linux/macOS)
- D98 — Per-worker libuv loop — TLS _nova_current_loop
- D103 — Preemption — sysmon-thread + codegen safepoints
- D124 — Monotonic vs Timestamp — раздельные типы для wall-clock и монотонных часов
- D136 — M:N worker-count — порядок разрешения и NOVA_MAXPROCS
- D137 — M:N — ленивая материализация пула, runtime.init как тюнер
- D138 — Default-on M:N runtime — production semantics (Plan 83.4.5.6 Ф.3, ACTIVE 2026-05-24)
- D167 — Memory ordering & happens-before между fiber'ами
- D168 — Sized atomic types — API contract (Plan 103.2)
- D171 — Once / OnceCell / Lazy — single-initialization primitives (Plan 103.5)
- D169 — Mutex / RwLock / ReentrantMutex family (Plan 103.3)
- D170 — Coordination primitives — Semaphore / Barrier / CountDownLatch / Condvar (Plan 103.4)
- D172 — #realtime / #blocking attribute-only model + sync-class annotations (Plan 103.6, amended Plan 113)
- D370 — AI-first guidance — sync-primitive decision tree (Plan 103.7)
- D174 — Sync primitives consume integration (Plan 103.9)
- D228 — Centralized I/O driver — sleep cancel state-machine + scope-lifetime invariants (Plan 83.11)
- D243 — — M:N run/park storage: fixed-size ring + chunked stable-address park-state (Plan 83-go-cmn Ф.1)
- D244 — — gopark/goready park/wake ordering (Plan 83-go-cmn Ф.2)
- D245 — — worker-wakeup: uv_async IS the note primitive (Plan 83-go-cmn Ф.3 finding)
- D270 — — Loop codegen opt: preempt-check elision + copy-loop bulk-lowering (Plan 143 §2, [M-opt-preempt-strided-loop])
- D271 — — Function-entry preempt-check elision на provably-leaf функциях (Plan 143 §2.B, [M-opt-leaf-preempt-entry-elision])
- D273 — — may-GC effect lattice (Plan 144.0, closes precise-GC hole H4 / Q15)
- D408 — supervised(deadline:/timeout:) — областной срок → отмена → TimeoutError (Plan 174)
- D414 — Structured error propagation — primary-selection precedence, detach-policy, channel closed-vs-value (Plan 173 Ф.3)
Рантайм
- D7 — Один язык — три режима компиляции
- D13 — Panic vs эффекты: что НЕ является эффектом
- D26 — Базовая stdlib и prelude
- D41 — Static-функции есть, static-состояния нет
- D70 — ToStr protocol — REPLACED → D73
- D73 — From / Into protocol-пара — инфаллибельные конверсии
- D74 — Математические операции на числовых типах — instance-методы
- D77 — TryFrom / TryInto — фаллибельные конверсии (отдельная иерархия от D73)
- D76 — Mem эффект — runtime introspection для leak/growth тестов
- D81 — assert(cond) vs debug_assert(cond) — build-mode семантика
- D82 — external fn — функции с runtime-implementation
- D109 — Встроенные методы примитивных типов — hash, eq, ord
- D366 — Edition-versioned prelude resolver
- D125 — Prelude shadow warning lint
- D141 — Примитивы доступа к памяти — byte_at / bulk slice-операции
- D173 — std/net — Async TCP/UDP socket stdlib via libuv
- D177 — str Nova-body dispatch — Plan 54 Ф.2 extension
- D178 — str API cleanup и расширения — Plan 91 Ф.2.6
- D179 — StringBuilder — pure Nova consume type — Plan 91 Ф.2.6
- D178 — amend V2 — str @try_parse_int + ParseIntError sum type — Plan 91 Ф.2
- D178 — amend V3 — Plan 91.18 str API cleanup (Ф.2/Ф.5/Ф.6/Ф.7/Ф.10)
- D217 — Method-local receiver field caching — Plan 123.1
- D218 — LICM — Loop-Invariant Code Motion для receiver fields — Plan 123.2
- D219 — Pure-call result caching (effect-aware, Nova edge) — Plan 123.3
- D217 — amend V4 — Chain caching @a.b.c (Plan 123.4)
- D217 — §6 amend V5 — diagnostic mode + LSP code-lens (Plan 123.5)
- D217 — §6 amend V5.1 — LSP code-lens + hover (Plan 123.5.1)
- D217 — §7 amend V6 — Telemetry + production rollout (Plan 123.6)
- D217 — §7 amend V6.1 — Sugar CLI flags + CI perf gate (Plan 123.6.1)
- D217 — amend V6.2 — Plan 57 bench integration: CPU savings estimate
- D217 — amend V6.2.1 — Real wall-clock bench (Plan 123 V6.2.1)
- D217 — amend V6.3 — Configurable gate thresholds (Plan 123 V6.3)
- D223 — IPA — Inter-Procedural Analysis для field caching — Plan 123.7
- D223 — amend V7.1 — Full integration с V1/LICM/pure/chain (Plan 123.7.1)
- D223 — amend V7.3 — SCC-based exact closure (Tarjan)
- D223 — amend V7.4 — Incremental SCC cache (Plan 123.7.4)
- D217 — amend Plan 123.4.4 — Codegen fluent-chain root-temp pre-pass
- D223 — amend V7.6 — Same-field reference-type IPA (Plan 123.7.6)
- D218 — amend V2.1 — Loop-body LICM coordination (Plan 123.2.1)
- D223 — amend V7.7 — Chain receiver IPA extension (Plan 123.7.7)
- D217 — amend V5.4 — Explain deep-walk (Plan 123.5.4)
- D223 — amend V7.5 — Callee-non-self-mutation IPA (Plan 123.7.5)
- D217 — amend V5.3 — LSP quickfix: add #pure annotation
- D217 — amend V5.2 — LSP semantic tokens for cached @field reads
- D217 — amend V5.5 — Incremental LSP semantic-tokens delta (Plan 123.5.5)
- D223 — amend V7.2 — Explicit IpaCtx parameter threading (Plan 123 V*.2)
- D217 — amend V4.2 — Chain prefix sharing (Plan 123.4.2)
- D217 — amend V1.1 — Multi-region mut cache (Plan 123.1.1)
- D217 — amend V1.2 — Nested-region mut cache (Plan 123.1.2)
- D217 — amend V4.3 — Deep chain prefix sharing (Plan 123.4.3)
- D219 — amend V3.2 — Pure-call tuple/record literal args (Plan 123.3.2)
- D219 — amend V3.1 — Pure-call literal args extension (Plan 123.3.1)
- D247 — str-методы — миграция external-C → Nova-body + Vec cross-type мост (Plan 139.2)
- D233 — (NEW) — Configurable fiber arena (env + nova.toml runtime tuning) (Plan 149)
- D276 — (NEW) — Generated C must be MSVC-portable (no GNU extensions) (Plan 145)
- D279 — (NEW) — Codegen emission must be deterministic (stable declaration order) (Plan 145.2)
- D274 — — Tree-walking interpreter currently UNSUPPORTED; C-codegen only (Plan 157)
- D275 — (NEW). Codegen: if/match-выражение коэрсится в unit, когда одна ветка unit (паритет if↔match)
- D375 — (ex-D277, renumber 2026-07-03) — Per-type GC pointer-offset bitmaps (Plan 144.1, аналитическая половина Ф.1; emit-nothing)
- D280 — (NEW) — Ссылка на heap-тип BY VALUE = pointer-size (8 байт), не inline object-size
- D282 — (NEW) — extern "nova" fn / extern "C" fn — двух-ABI синтаксис для FFI (Plan 91.12 Ф.-1)
- D353 — (NEW) — ABI-тег fn-указательного типа: *extern "C" fn (Plan 174.6 M0)
- D294 — (NEW) — str @as_ptr() -> *u8 — bytes-FFI bridge (Plan 91.12 Ф.9, 2026-06-16)
- D381 — — Collision-aware module-qualified nominal-type C-mangling (Plan 178/179 merge, 2026-07-06)