diff --git a/CHANGELOG.md b/CHANGELOG.md index dedb6f39..94474dff 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,8 @@ All notable changes to EigenScript are documented here. ## [Unreleased] +## [0.44.0] - 2026-10-05 + - HTTP routes and the static root are frozen once `http_serve` starts (#1140). A `code` route's worker points at the spawning server, so `http_route`, `http_route_authed` or `http_static` called from one wrote the live route table while every other worker read it lock-free: one request could register a route for the whole process, and `route_count++` with no fence let a concurrent lookup `strcmp` a half-filled slot (ThreadSanitizer: 10 reports on a /mutate-vs-/ hammer before, 0 after). The three builtins now raise "must register before http_serve" once serving, as `http_response_header` already did. An uncaught error in a `code` route's source now answers 500 with the generic body `{"error": "internal error"}` instead of `200 null`; the message goes only to the server's stderr, since it can carry paths or values a client must not see. - The cycle collector, the JIT and plain refcounts come back mid-run once every spawned worker is joined (#1147). `multithreaded` was cleared only by the exit drain, so one `spawn` + `thread_join` left collection off for the rest of the run: a closure-cycle loop after it peaked at 12x the RSS of the same loop with no spawn at 100k iterations (117x at 300k). The state now counts live workers (up before `pthread_create`, down after `pthread_join`) and `thread_join` clears the flag when the count reaches zero and the joiner is the state's only attached thread. An unjoined worker, finished or not, keeps the mode on until exit. Section [101a] gates the resume by peak-RSS ratio with a live-worker witness; `tests/tsan_mt_clear_respawn.eigs` (join, collect, spawn again, nested spawn) joins the TSan slice. - A newline inside a string literal or inside f-string literal text advances the lexer's line counter (#1251). Every later token used to sit one line early per swallowed newline, so `what is x at N` answered for the wrong statement and `e.line`, the error header, lint/LSP diagnostics and rename all pointed at the wrong line. @@ -873,6 +875,12 @@ All notable changes to EigenScript are documented here. row-label gutter is folded into its own rect. Two of the #823 containment clip's four registry opt-outs are gone. +- Add `eigs_state_set_strict` so hosted and freestanding embedders can choose + strict or finite-stand-in semantics independently for each state. + +- Add autograd operations and analytic gradients for transpose, causal-masked + softmax, layer normalization, and GELU, enabling causal self-attention models. + ### Fixed - **Parser depth-limit errors are the recorded first error (#1342).** Every `PARSE_MAX_DEPTH` guard records its message at the current token, so `--lint --json` and the LSP report `expression nesting too deep` instead of the recovery cascade. @@ -1537,6 +1545,250 @@ All notable changes to EigenScript are documented here. out-of-tree import-shadow warning before diffing (#1115)**, so two byte-identical trees at different paths no longer compare unequal. +- `--lint --json` bounds the E000 missing-file message to the existing UTF-8 message limit after assembling it, so a very long or multibyte missing path no longer produces an oversized diagnostic; short messages are byte-identical (#1132). + +- Add regression coverage for direct buffer and text-builder `thread_join` + results, plus a TSan buffer-transfer fixture that sends while its reader + worker is already live. + +- Make `exit of N` from a spawned worker stop all VM threads and wake main-thread concurrency waits, instead of leaving main hung in a runtime wait. Interrupted joins retain their workers for teardown, which still waits for native I/O. Embedded evaluations keep separate exit scopes so an old worker cannot revive or stop a later eval. + +- Serialize the shared random-number stream so concurrent workers cannot race or receive duplicate draws. + +- Preserve a host application's SIGPIPE disposition across subprocess and HTTP operations, while reporting failed `print` output instead of silently succeeding. + +- Document that shared binding/container races are undefined, enumerate the embedding API's process-global concurrency surfaces, and extend the TSan gate with a declared inventory of previously untested concurrency shapes. + +- Copy buffers and text builders, including nested instances, at channel, + thread-join, and cooperative-task transfer boundaries instead of sharing + mutable storage across execution contexts. + +- Route runtime loop-count publication into shared environments through the + existing locked setter, preserving the slot update and assignment count + together. This does not change the shared user-binding contract (#1171). + +- Cooperative task IDs now carry their handle-slot generation, so using an ID +after `task_detach` recycles its slot raises a catchable stale-handle error +instead of observing or controlling the replacement task. + +- `EIGS_JIT_HOT=1` prints its per-chunk hot-chunk table again. It had printed nothing since 0.11.8 because teardown emptied the chunk registry before the dump ran; rows are now retained at unregister time, the dump never exits silently, and a retained-row cap reports overflow (#1176). + +- Distinguish JIT code-cache exhaustion from unsupported bytecode in hot-chunk + diagnostics, and exclude capacity rejections from the stop-opcode histogram. + +- Correct `EIGS_JIT_HOT`'s native-byte share to include loop back-edges and + native OSR coverage instead of weighting chunks by frame entries alone. + +- Lint W021 (stdlib-name shadowing) can no longer record a truncated path when `realpath` fails on a 4097-4501 byte path, which would have reported against a file it did not scan; this also removes the `-Wformat-truncation` warning every build printed (#1182). + +- `import args` no longer breaks `args.parse_args`: the module namespace was bound over the CLI-args builtin, so `parse_args` failed with "cannot call dict". The builtin is now captured before the namespace is installed (#1236). + +- Refuse every EigenStore operation during trace replay before accessing live + storage, preventing changed or missing databases from silently corrupting a + deterministic replay. + +- Gate every top-level `lib/ui*.eigs` function on assertion and reference-document +coverage, including internal helpers. Exercise decoded fields through SDL's real +queue and native input on a private display, with visible slider-drag evidence. +Source calibration rejects missing coverage and non-executing assertion references. + +- Recording stream identity follows an attachment's lifetime across state +switches. Detach releases its recording binding; a replacement attachment +receives a distinct identity. Line, scope and emitted observer configuration +caches now belong to each stream and tape session, including native callbacks +that record before a source-line event. + +- Replay file and memory sources now own their complete cursor, parser, pending +outcome and correspondence state. Refused memory replacements preserve the +active source; clearing memory resumes the suspended file without rewinding or +mixing queued values. Hosts explicitly advance concatenated tape sessions only +at quiescent boundaries with no unread current-session outcome. Continuing +attachments and children resolve the next namespace through lifetime metadata. + +- Trace tapes now declare host keys, state grouping and causal spawned-worker +origins before stream events. Replay matches host keys and parent-local spawn +occurrences instead of assigning streams in first-event order. Child identity +is reserved before launch and released through the existing handle lifecycle. +The association encoding is version 5; older tapes are refused explicitly. + +- Consumer acceptance runs each consumer against a fresh candidate-tree overlay, preventing one row's runtime-slot writes from bypassing candidate checks in later rows (#1306). + +- Report parser collection-size limits as the primary structured diagnostic in + `--lint --json` and the language server, with the offending token's location. + +- Make every string emitted by `eigsdap` valid UTF-8 JSON, including input + text ending in the middle of a multibyte character. + +- Bound LSP function-parameter metadata with the parser's shared parameter + limit and move document-symbol deduplication storage off the C stack. + +- Fix LSP definition, symbol, and reference ranges for functions to cover the + function name instead of the `define` keyword, including indented definitions. + +- Make the lexer and formatter use the same four-column tab stops for mixed + tab-and-space indentation, so formatting cannot change a program's blocks. + +- Show the offending source line and caret beneath lexer errors, including correctly aligned tab-indented input. + +- Align parse- and runtime-error carets after multi-byte UTF-8 characters in source excerpts. + +- Run the LSP sanitizer checks without stack or register roots so stale pointers + cannot hide leaks from LeakSanitizer. + +- Fixed `eigenlsp` silently truncating reference results after 512 locations and diagnostics after 256 entries. + +- `eigenlsp` now reports an error to the client instead of silently changing a + document URI containing an escaped NUL or silently dropping the 65th open + document when its 64-document table is full. + +- Fixed the EigenScript meta-interpreter accepting unterminated plain strings and inconsistent dedents that the native lexer rejects. + +- eigenlsp now splits multi-line semantic tokens for clients that do not advertise + `multilineTokenSupport`, and pinpoints an unexpected `)` parse error's source range. + +- File temporal control flow and every assignment form under the statement's + own first source line, and omit the synthetic end-of-file stamp from traces. + +- Make JIT- and OSR-compiled line operations emit the same trace-tape line + records as interpreted execution. + +- Hide compiler-internal `for`-binder save and restore stores from trace tapes and assignment history, making temporal answers consistent between function and module scope. + +- `vm_run_bytecode` now raises a catchable value error with a specific diagnostic when its chunk descriptor is invalid, instead of returning an ambiguous `null`. +- `lib/eigen.eigs` snapshots its direct host dependencies and fresh-environment builtin values at load time, including the entropy helper's `log`/`divide` dependencies, so later host rebinding does not change meta-interpreter behavior. + +- Embed API errors raised after an evaluation no longer report the last line of + that unrelated evaluation. + +- Fixed consumer acceptance overlays omitting Makefile support files, worktree ecosystem discovery, ephemeral per-consumer logs, and gfx variants without a resolvable standard library. + +- Align binary tensor loading and writing with the 10,000,000-element cap; + report over-cap files with catchable limit errors, and document the shared + stream count constraints. +- Record the tensor loader's cap decision so the same limit diagnostic and + catch branch replay after the file changes, without taping tensor payloads. + +- Make the JIT differential runner use the test suite's per-program environment, so fail-soft tests are compared through completion instead of only to their first strict-mode error. + +- Fixed- and optional-shape builtin argument lists reject surplus outer elements under the strict default before mutation, resource acquisition or tape consumption. Errors name the builtin and maximum width. Strict-off legacy results, scalar overloads, list-data inputs and variadic arguments are preserved. A source-derived contract inventory and typed ordinary controls cover the classified population (Refs #1398). + +- Fixed `sandbox_run` error dictionaries borrowing run-scoped interned keys after + a caught error, which could leave `kind`, `message`, or `line` dangling at the + host boundary. + +- Make `eigen_generate` and `eigen_eval_loss` raise when a prompt exceeds the + model's `max_seq_len`, matching the training API instead of truncating input. + +- Make `ls` return directory entries in deterministic bytewise order instead of filesystem-dependent `readdir` order. + +- Tensor builtins now raise a catchable `type` error by default when a list + tensor contains a non-number element, rather than silently replacing it with + zero. Set `EIGS_STRICT=0` to retain the legacy coercion. + +- Clamp non-finite buffer elements at scalar read boundaries in the VM/runtime + and native JIT, so indexed + comparisons, arithmetic, structural equality, scalar reductions (including nested buffers), tensor + element access, and embedding API reads all observe EigenScript's finite-number + invariant consistently. Numeric byte/sample/device conversion and mixed + buffer/list materialization follow the same rule, with defined byte wrapping. + Raised reads stop before later operations or writes and release temporary + conversion storage. A failing iterator read reports its for-loop or + comprehension header, including reads after the first iteration. + Refs #1417: direct indexed-operand parity and the runtime pin migration in + ouroboros AOT remain unresolved; the optional boxed-accessor mirror has a + narrower opt-out fixture scope. + +- EigenStore now preserves a user dictionary whose keys are `_eigs_buffer` and + `_eigs_shape` as a dictionary instead of decoding it as a buffer. + +- Reject symlink and empty changelog fragments, unauthorized fragment deletions, and release cuts that delete non-fragment files under `changes/`. + +- After a call returns, a raise in the caller's expression reports the caller's line (#1424). The VM kept the + callee's last line as the current line, so `e.line`, the `Error line N` header and the traceback's frame line + named a line inside the callee for `sqrt of (f of x)`, `1 / (f of x)`, `a % (f of x)` and a builtin raising after + it ran a user callback (`sort_by`). Every frame now records its caller's line when it is pushed, and `RETURN`, + `RETURN_NULL` and the JIT's return helpers restore it, in the interpreter, the JIT and OSR. Trace-tape `L` + records and temporal answers are unchanged. + +- Stop `sandbox_run` errors from printing an uncaught-error header and stack trace to stderr; failures are now reported only through the returned structured error. + +- Classify documentation-named symlinks as code changes in CI scope detection, preventing links to runtime files from skipping the test suite. + +- Native code that runs EigenScript gets its own line back when that code returns (#1434). A builtin's callback, + an embedder's `eigs_eval_string` and an AOT binary's call into interpreted code all go through `vm_execute`, + and the called code's lines overwrote both the VM's line and the trace line stamp. Nothing restored the stamp, + and #1424's restore covered only a normal return. So with no interpreter frame live (an AOT binary or an + embedder) a builtin raising after the callback, such as `sort_by` with a key that returns a string, reported + the callback's line, and a store right after the call was filed under that line. In the interpreter a callback + that stopped on an error `sandbox_run` swallowed left the next raise in the caller's expression on the chunk's + line (`e.line`, the `Error line N` header and the traceback). `vm_execute` now restores both lines on every + exit, in the interpreter, the JIT and OSR, and writes an `L` record for the restored line when a tape is + recording, so `eigenscript --step` and the DAP file a store made right after the call under the same line as + live history. With an interpreter frame live the restored line is the caller's own line, even when a call + that returned earlier in the expression left the stamp on its last line. Tapes of programs that return from + `load_file`/`import` or whose builtins run callbacks gain those `L` records; the record shape is unchanged. + +- Keep native/AOT fallback error-line stamps per thread, so a spawned worker cannot make another thread report the worker's source line. + +- Fixed cooperative tasks whose entry is a callback-running builtin (such as + `sort_by`) deadlocking when the builtin invokes its user function. + +- Make `numerical_grad`, `numerical_grad_rows`, and `numerical_grad_cols` raise a named type error under strict mode when the loss function returns a non-number, instead of silently treating it as zero. + +- Preserve main-thread source-line stamps for temporal history assignments while spawned workers are running. + +- File assignments emitted by native embedders and AOT code in module scope + instead of incorrectly attaching them to the last interpreted callback's + frame in trace tapes. + +- Re-arm the possible-root cycle collector from surviving traversal work (nodes plus owned child slots), restoring hot list-loop performance after a live heap while budgeting repeated scans of dense live graphs (#1442). + +- Restored `unobserved:` hot-loop performance in observer-armed programs while + retaining every numeric value-window sample. + +- Retain intern-name storage for the lifetime of environments, function parameters, and ordinary dictionary keys, independently of the creating attachment. Keep promoted private dictionary keys owned across attachments of the same state. + +- Refuse `mktemp` at the documented filesystem boundary during replay, before + creating a fresh temporary file that the trace tape cannot reconstruct. + +- Safely drain spawned workers and nested spawns before fuzz-input cleanup, reset the per-input cooperative scheduler, and preserve sandbox loop caps on worker threads. + +- Meta evaluator restores loop binders after exceptions (#1476). + +- compiler: hide for-loop save slots from source names (#1482). + +- Reject ragged matrices in charpoly (#1483). + +- Keep sandbox assignments and observer snapshots out of shared temporal history before retaining names, values or count metadata. Ordinary tape assignment records and trusted host/descriptor history outside the sandbox are preserved. + +- Bound arena-list promotion with iterative native work, preserve repeated list references, charge promotion allocations to sandbox budgets, and retain deferred promoted-list candidate ownership until normal single-threaded collection. + +- Reject nonnumeric list elements in strict byte conversions while preserving compatibility-mode substitution and numeric NUL termination. + +- Fixed `heap_inuse` replay on glibc builds to return the recorded allocator + measurement instead of sampling the replay process. + +- Restore widget clip state when a renderer raises an error. + +- Fixed chart rendering for narrow numeric ranges whose reciprocal exceeds the runtime numeric guard, preventing plotted points from collapsing at the plot edges. + +- Make optimized local field and index reads raise immediately on null receivers instead of continuing through later side effects. + +- Prefix cross-file lint helpers with `eigs_lint_` so embedding hosts can use their former generic names without archive link collisions. + +- Prevent concurrent thread attachment from racing the observer pre-pass without holding the lifecycle mutex across source-provider callbacks. + +- Refuse to run damaged bundles truncated immediately after the archive head, including bundles with non-ASCII entry names. + +- Add bounded LSP diagnostic tests for temporary trace-arming suppression, host-state preservation and subsequent normal compilation. + +- Reclaim imported module/function cycles held by a closing non-last embedding state's trace table. + +- Retire possible-root containers held only by their buffer pin during later + single-threaded admissions, separately from full cycle collection. Preserve + child-cycle registration and the survivor-work scan budget with an admission + counter that pin retirement cannot erase (#1623). + ### Changed - **Front-door docs no longer hand-type counts of the tree (#1275).** They @@ -1891,6 +2143,92 @@ All notable changes to EigenScript are documented here. - **`ext_net` raw TCP/UDP sockets are ticked as shipped in `ROADMAP.md` (#1119).** +- Changelog entries are fragments now (#1268): a PR adds `changes//-.md` and never edits `CHANGELOG.md`, so two PRs no longer conflict on the top of `[Unreleased]`. `tools/changelog_fragments.sh cut ` assembles the fragments into the release section under the `###` headings, bumps `VERSION` and deletes them; the gate in `tools/precheck.sh` fails a `src/` or `lib/` change with no fragment (the `internal` category opts out) and a direct `CHANGELOG.md` edit that is not a reproducible cut. See `changes/README.md`. + +- Trace format v4 gives every non-header record a tape-local stream ID and replays nondeterministic inputs independently per CPU, embedded, or external/GPU stream. + +- Include lazily loaded graphics in the hosted release, introduce `server` + (HTTP + raw TCP + models) and `server-db` profiles, and retain the former build + targets and full executable spelling as compatibility aliases. Consolidate + HTTP/gfx/net CI coverage in the server lane, preserve model sanitizer coverage, + and route consumer server inputs separately; former gfx calls can use release + after a binding probe. Unresolved omitted HTTP/net/DB/model names report the unavailable + capability and required profile at first VM/native-JIT reference, before call + arguments, without allocating placeholder bindings. Shadow bindings win. + Discovery retains the language surface; direct host lookup reports actual + absence. Direct AOT adoption remains deferred. Refs #1415 and #1159; + capability registry, host grants, + reserved imports, package requires checks, and measured profile evidence remain + open. + +- Graphics examples now emit an opt-in readiness marker immediately before entering their event loop, allowing the test harness to reject setup hangs. + +### Removed + +- Removed the consumer-specific `EIGS_DEDENT_LOSS_WEIGHT`, + `EIGS_CLASS_LOSS_DUMP`, and `EIGS_DEPTH_LOSS_DUMP` training diagnostics; + model training no longer embeds token IDs from an external vocabulary. + +### Security + +- Refuse `native_train_step_builtin` windows longer than the model's + `max_seq_len` instead of corrupting the batched training cache. + +- Bound sandboxed straight-line and function-heavy bytecode with a cumulative + per-run instruction-work budget, independently of the existing loop and + allocation limits. + +- Drain per-request handles during HTTP worker teardown (#1449). + +- Bound nested f-string boundary scanner depth (#1450). + +- Seal builtin layer against shared name cache stores (#1452). + +- Fix shell injection in test-changed BASE handling (#1453). + +- Prevent sandbox descriptors from reading shared host temporal history. + +- Prevent multithreaded sandboxes from retaining dictionary keys (#1475). + +- Bound observer tape replay work (#1478). + +- Pin sandbox observer tracker environment across untrusted execution (#1479). + +- fix: bound W023 lint analysis work (#1484). + +- Validate scatter_add indices before integer conversion (#1485). + +- Synchronize the process-wide import-collision warning cache for concurrent HTTP imports. + +- eigenlsp: bound scope and binding analysis for rename requests, refusing an edit when adversarial document structure exhausts the per-request work budget (#1583). + +- Drain state-wide value-cycle candidates after every sandbox outcome without repeatedly scanning unrelated captured environments (#1584). + +- Prevent lint and LSP diagnostic compilation from arming process-wide temporal history. + +### Documentation + +- Correct the obsolete observer-overhead guidance, document the remaining conservative-gate use for `unobserved:`, and generate the published instruction counts from the benchmark baseline so the two cannot drift again. + +- Document the Homebrew tap's automatic formula-bump workflow, including its + computed checksum, test-bot gate, and manual recovery path. + +- `docs/BUILTINS.md`: the `spawn` row said surplus arguments are ignored. They follow the direct-call rule: a callee + of two or more parameters raises `call passes 3 arguments but the callee takes 2` at the spawn site, and a + 1-parameter callee receives the whole list (#1362). + +- Correct the `task_spawn` builtin reference to describe when cooperative tasks run. + +- State the default error and `EIGS_STRICT=0` behavior for short `audio_open` + arguments; guard conditional strict wording throughout the builtin reference + while allowing intentional references to the explicit strict setting. + +- Correct the `handle_table_drain` declaration comment to name every handle + type reclaimed at teardown. + +- Correct the graphics argument-handling documentation to describe strict errors as + the default and `EIGS_STRICT=0` as the compatibility mode. + ## [0.43.0] - 2026-09-06 ### Breaking changes diff --git a/VERSION b/VERSION index 8298bb08..a8ab6c96 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.43.0 +0.44.0 diff --git a/changes/added/1394-state-strict-setter.md b/changes/added/1394-state-strict-setter.md deleted file mode 100644 index b179fa9a..00000000 --- a/changes/added/1394-state-strict-setter.md +++ /dev/null @@ -1,2 +0,0 @@ -- Add `eigs_state_set_strict` so hosted and freestanding embedders can choose - strict or finite-stand-in semantics independently for each state. diff --git a/changes/added/1408-transformer-autograd.md b/changes/added/1408-transformer-autograd.md deleted file mode 100644 index 0f3fe230..00000000 --- a/changes/added/1408-transformer-autograd.md +++ /dev/null @@ -1,2 +0,0 @@ -- Add autograd operations and analytic gradients for transpose, causal-masked - softmax, layer normalization, and GELU, enabling causal self-attention models. diff --git a/changes/changed/1268-changelog-fragments.md b/changes/changed/1268-changelog-fragments.md deleted file mode 100644 index 7039108b..00000000 --- a/changes/changed/1268-changelog-fragments.md +++ /dev/null @@ -1 +0,0 @@ -- Changelog entries are fragments now (#1268): a PR adds `changes//-.md` and never edits `CHANGELOG.md`, so two PRs no longer conflict on the top of `[Unreleased]`. `tools/changelog_fragments.sh cut ` assembles the fragments into the release section under the `###` headings, bumps `VERSION` and deletes them; the gate in `tools/precheck.sh` fails a `src/` or `lib/` change with no fragment (the `internal` category opts out) and a direct `CHANGELOG.md` edit that is not a reproducible cut. See `changes/README.md`. diff --git a/changes/changed/1286-trace-stream-ids.md b/changes/changed/1286-trace-stream-ids.md deleted file mode 100644 index 9621dcb2..00000000 --- a/changes/changed/1286-trace-stream-ids.md +++ /dev/null @@ -1 +0,0 @@ -- Trace format v4 gives every non-header record a tape-local stream ID and replays nondeterministic inputs independently per CPU, embedded, or external/GPU stream. diff --git a/changes/changed/1415-hosted-build-profiles.md b/changes/changed/1415-hosted-build-profiles.md deleted file mode 100644 index b9225c88..00000000 --- a/changes/changed/1415-hosted-build-profiles.md +++ /dev/null @@ -1,13 +0,0 @@ -- Include lazily loaded graphics in the hosted release, introduce `server` - (HTTP + raw TCP + models) and `server-db` profiles, and retain the former build - targets and full executable spelling as compatibility aliases. Consolidate - HTTP/gfx/net CI coverage in the server lane, preserve model sanitizer coverage, - and route consumer server inputs separately; former gfx calls can use release - after a binding probe. Unresolved omitted HTTP/net/DB/model names report the unavailable - capability and required profile at first VM/native-JIT reference, before call - arguments, without allocating placeholder bindings. Shadow bindings win. - Discovery retains the language surface; direct host lookup reports actual - absence. Direct AOT adoption remains deferred. Refs #1415 and #1159; - capability registry, host grants, - reserved imports, package requires checks, and measured profile evidence remain - open. diff --git a/changes/changed/1597-gfx-example-readiness.md b/changes/changed/1597-gfx-example-readiness.md deleted file mode 100644 index f9a75f21..00000000 --- a/changes/changed/1597-gfx-example-readiness.md +++ /dev/null @@ -1 +0,0 @@ -- Graphics examples now emit an opt-in readiness marker immediately before entering their event loop, allowing the test harness to reject setup hangs. diff --git a/changes/documentation/1206-observer-performance.md b/changes/documentation/1206-observer-performance.md deleted file mode 100644 index 9a7233a8..00000000 --- a/changes/documentation/1206-observer-performance.md +++ /dev/null @@ -1 +0,0 @@ -- Correct the obsolete observer-overhead guidance, document the remaining conservative-gate use for `unobserved:`, and generate the published instruction counts from the benchmark baseline so the two cannot drift again. diff --git a/changes/documentation/1297-homebrew-tap-automation.md b/changes/documentation/1297-homebrew-tap-automation.md deleted file mode 100644 index 8a488237..00000000 --- a/changes/documentation/1297-homebrew-tap-automation.md +++ /dev/null @@ -1,2 +0,0 @@ -- Document the Homebrew tap's automatic formula-bump workflow, including its - computed checksum, test-bot gate, and manual recovery path. diff --git a/changes/documentation/1362-spawn-surplus-arguments.md b/changes/documentation/1362-spawn-surplus-arguments.md deleted file mode 100644 index 8fc5918a..00000000 --- a/changes/documentation/1362-spawn-surplus-arguments.md +++ /dev/null @@ -1,3 +0,0 @@ -- `docs/BUILTINS.md`: the `spawn` row said surplus arguments are ignored. They follow the direct-call rule: a callee - of two or more parameters raises `call passes 3 arguments but the callee takes 2` at the spawn site, and a - 1-parameter callee receives the whole list (#1362). diff --git a/changes/documentation/1392-task-spawn-scheduling.md b/changes/documentation/1392-task-spawn-scheduling.md deleted file mode 100644 index 818568e7..00000000 --- a/changes/documentation/1392-task-spawn-scheduling.md +++ /dev/null @@ -1 +0,0 @@ -- Correct the `task_spawn` builtin reference to describe when cooperative tasks run. diff --git a/changes/documentation/1396-strict-default-wording.md b/changes/documentation/1396-strict-default-wording.md deleted file mode 100644 index f63fcc34..00000000 --- a/changes/documentation/1396-strict-default-wording.md +++ /dev/null @@ -1,3 +0,0 @@ -- State the default error and `EIGS_STRICT=0` behavior for short `audio_open` - arguments; guard conditional strict wording throughout the builtin reference - while allowing intentional references to the explicit strict setting. diff --git a/changes/documentation/1400-handle-drain-comment.md b/changes/documentation/1400-handle-drain-comment.md deleted file mode 100644 index c42d32b0..00000000 --- a/changes/documentation/1400-handle-drain-comment.md +++ /dev/null @@ -1,2 +0,0 @@ -- Correct the `handle_table_drain` declaration comment to name every handle - type reclaimed at teardown. diff --git a/changes/documentation/1428-gfx-strict-default.md b/changes/documentation/1428-gfx-strict-default.md deleted file mode 100644 index 08acb41e..00000000 --- a/changes/documentation/1428-gfx-strict-default.md +++ /dev/null @@ -1,2 +0,0 @@ -- Correct the graphics argument-handling documentation to describe strict errors as - the default and `EIGS_STRICT=0` as the compatibility mode. diff --git a/changes/fixed/1132-lint-e000-message-bound.md b/changes/fixed/1132-lint-e000-message-bound.md deleted file mode 100644 index 2a409b96..00000000 --- a/changes/fixed/1132-lint-e000-message-bound.md +++ /dev/null @@ -1 +0,0 @@ -- `--lint --json` bounds the E000 missing-file message to the existing UTF-8 message limit after assembling it, so a very long or multibyte missing path no longer produces an oversized diagnostic; short messages are byte-identical (#1132). diff --git a/changes/fixed/1148-copy-mutable-messages.md b/changes/fixed/1148-copy-mutable-messages.md deleted file mode 100644 index 8476a28d..00000000 --- a/changes/fixed/1148-copy-mutable-messages.md +++ /dev/null @@ -1,3 +0,0 @@ -- Add regression coverage for direct buffer and text-builder `thread_join` - results, plus a TSan buffer-transfer fixture that sends while its reader - worker is already live. diff --git a/changes/fixed/1149-worker-exit-wakes-main.md b/changes/fixed/1149-worker-exit-wakes-main.md deleted file mode 100644 index 3103ee36..00000000 --- a/changes/fixed/1149-worker-exit-wakes-main.md +++ /dev/null @@ -1 +0,0 @@ -- Make `exit of N` from a spawned worker stop all VM threads and wake main-thread concurrency waits, instead of leaving main hung in a runtime wait. Interrupted joins retain their workers for teardown, which still waits for native I/O. Embedded evaluations keep separate exit scopes so an old worker cannot revive or stop a later eval. diff --git a/changes/fixed/1150-lock-random-stream.md b/changes/fixed/1150-lock-random-stream.md deleted file mode 100644 index 2d15905c..00000000 --- a/changes/fixed/1150-lock-random-stream.md +++ /dev/null @@ -1 +0,0 @@ -- Serialize the shared random-number stream so concurrent workers cannot race or receive duplicate draws. diff --git a/changes/fixed/1151-preserve-sigpipe-disposition.md b/changes/fixed/1151-preserve-sigpipe-disposition.md deleted file mode 100644 index ab8ee424..00000000 --- a/changes/fixed/1151-preserve-sigpipe-disposition.md +++ /dev/null @@ -1 +0,0 @@ -- Preserve a host application's SIGPIPE disposition across subprocess and HTTP operations, while reporting failed `print` output instead of silently succeeding. diff --git a/changes/fixed/1152-concurrency-contract-and-tsan-shapes.md b/changes/fixed/1152-concurrency-contract-and-tsan-shapes.md deleted file mode 100644 index 932d30a2..00000000 --- a/changes/fixed/1152-concurrency-contract-and-tsan-shapes.md +++ /dev/null @@ -1 +0,0 @@ -- Document that shared binding/container races are undefined, enumerate the embedding API's process-global concurrency surfaces, and extend the TSan gate with a declared inventory of previously untested concurrency shapes. diff --git a/changes/fixed/1153-copy-mutable-message-values.md b/changes/fixed/1153-copy-mutable-message-values.md deleted file mode 100644 index 0915e3a6..00000000 --- a/changes/fixed/1153-copy-mutable-message-values.md +++ /dev/null @@ -1,3 +0,0 @@ -- Copy buffers and text builders, including nested instances, at channel, - thread-join, and cooperative-task transfer boundaries instead of sharing - mutable storage across execution contexts. diff --git a/changes/fixed/1171-loop-counter-publication.md b/changes/fixed/1171-loop-counter-publication.md deleted file mode 100644 index d83a11b8..00000000 --- a/changes/fixed/1171-loop-counter-publication.md +++ /dev/null @@ -1,3 +0,0 @@ -- Route runtime loop-count publication into shared environments through the - existing locked setter, preserving the slot update and assignment count - together. This does not change the shared user-binding contract (#1171). diff --git a/changes/fixed/1173-task-handle-generation.md b/changes/fixed/1173-task-handle-generation.md deleted file mode 100644 index f1be85c4..00000000 --- a/changes/fixed/1173-task-handle-generation.md +++ /dev/null @@ -1,3 +0,0 @@ -- Cooperative task IDs now carry their handle-slot generation, so using an ID -after `task_detach` recycles its slot raises a catchable stale-handle error -instead of observing or controlling the replacement task. diff --git a/changes/fixed/1176-jit-hot-diagnostic.md b/changes/fixed/1176-jit-hot-diagnostic.md deleted file mode 100644 index e45c4a2f..00000000 --- a/changes/fixed/1176-jit-hot-diagnostic.md +++ /dev/null @@ -1 +0,0 @@ -- `EIGS_JIT_HOT=1` prints its per-chunk hot-chunk table again. It had printed nothing since 0.11.8 because teardown emptied the chunk registry before the dump ran; rows are now retained at unregister time, the dump never exits silently, and a retained-row cap reports overflow (#1176). diff --git a/changes/fixed/1177-jit-cache-full-state.md b/changes/fixed/1177-jit-cache-full-state.md deleted file mode 100644 index c6efd908..00000000 --- a/changes/fixed/1177-jit-cache-full-state.md +++ /dev/null @@ -1,2 +0,0 @@ -- Distinguish JIT code-cache exhaustion from unsupported bytecode in hot-chunk - diagnostics, and exclude capacity rejections from the stop-opcode histogram. diff --git a/changes/fixed/1179-jit-hot-osr-weighting.md b/changes/fixed/1179-jit-hot-osr-weighting.md deleted file mode 100644 index 3b29963c..00000000 --- a/changes/fixed/1179-jit-hot-osr-weighting.md +++ /dev/null @@ -1,2 +0,0 @@ -- Correct `EIGS_JIT_HOT`'s native-byte share to include loop back-edges and - native OSR coverage instead of weighting chunks by frame entries alone. diff --git a/changes/fixed/1182-w021-truncated-path.md b/changes/fixed/1182-w021-truncated-path.md deleted file mode 100644 index c23628b4..00000000 --- a/changes/fixed/1182-w021-truncated-path.md +++ /dev/null @@ -1 +0,0 @@ -- Lint W021 (stdlib-name shadowing) can no longer record a truncated path when `realpath` fails on a 4097-4501 byte path, which would have reported against a file it did not scan; this also removes the `-Wformat-truncation` warning every build printed (#1182). diff --git a/changes/fixed/1236-args-import-parse-args.md b/changes/fixed/1236-args-import-parse-args.md deleted file mode 100644 index 693de390..00000000 --- a/changes/fixed/1236-args-import-parse-args.md +++ /dev/null @@ -1 +0,0 @@ -- `import args` no longer breaks `args.parse_args`: the module namespace was bound over the CLI-args builtin, so `parse_args` failed with "cannot call dict". The builtin is now captured before the namespace is installed (#1236). diff --git a/changes/fixed/1242-store-replay-boundary.md b/changes/fixed/1242-store-replay-boundary.md deleted file mode 100644 index 364ecff4..00000000 --- a/changes/fixed/1242-store-replay-boundary.md +++ /dev/null @@ -1,3 +0,0 @@ -- Refuse every EigenStore operation during trace replay before accessing live - storage, preventing changed or missing databases from silently corrupting a - deterministic replay. diff --git a/changes/fixed/1263-ui-surface-gate.md b/changes/fixed/1263-ui-surface-gate.md deleted file mode 100644 index ef82bbb4..00000000 --- a/changes/fixed/1263-ui-surface-gate.md +++ /dev/null @@ -1,4 +0,0 @@ -- Gate every top-level `lib/ui*.eigs` function on assertion and reference-document -coverage, including internal helpers. Exercise decoded fields through SDL's real -queue and native input on a private display, with visible slider-drag evidence. -Source calibration rejects missing coverage and non-executing assertion references. diff --git a/changes/fixed/1286-recording-attachment-lifetime.md b/changes/fixed/1286-recording-attachment-lifetime.md deleted file mode 100644 index a513c968..00000000 --- a/changes/fixed/1286-recording-attachment-lifetime.md +++ /dev/null @@ -1,5 +0,0 @@ -- Recording stream identity follows an attachment's lifetime across state -switches. Detach releases its recording binding; a replacement attachment -receives a distinct identity. Line, scope and emitted observer configuration -caches now belong to each stream and tape session, including native callbacks -that record before a source-line event. diff --git a/changes/fixed/1286-replay-context-boundaries.md b/changes/fixed/1286-replay-context-boundaries.md deleted file mode 100644 index c30675ed..00000000 --- a/changes/fixed/1286-replay-context-boundaries.md +++ /dev/null @@ -1,6 +0,0 @@ -- Replay file and memory sources now own their complete cursor, parser, pending -outcome and correspondence state. Refused memory replacements preserve the -active source; clearing memory resumes the suspended file without rewinding or -mixing queued values. Hosts explicitly advance concatenated tape sessions only -at quiescent boundaries with no unread current-session outcome. Continuing -attachments and children resolve the next namespace through lifetime metadata. diff --git a/changes/fixed/1286-stream-correspondence.md b/changes/fixed/1286-stream-correspondence.md deleted file mode 100644 index 436d35e5..00000000 --- a/changes/fixed/1286-stream-correspondence.md +++ /dev/null @@ -1,5 +0,0 @@ -- Trace tapes now declare host keys, state grouping and causal spawned-worker -origins before stream events. Replay matches host keys and parent-local spawn -occurrences instead of assigning streams in first-event order. Child identity -is reserved before launch and released through the existing handle lifecycle. -The association encoding is version 5; older tapes are refused explicitly. diff --git a/changes/fixed/1306-consumer-row-overlays.md b/changes/fixed/1306-consumer-row-overlays.md deleted file mode 100644 index 0b279e20..00000000 --- a/changes/fixed/1306-consumer-row-overlays.md +++ /dev/null @@ -1 +0,0 @@ -- Consumer acceptance runs each consumer against a fresh candidate-tree overlay, preventing one row's runtime-slot writes from bypassing candidate checks in later rows (#1306). diff --git a/changes/fixed/1360-parser-size-limit-diagnostics.md b/changes/fixed/1360-parser-size-limit-diagnostics.md deleted file mode 100644 index 30a9f0b6..00000000 --- a/changes/fixed/1360-parser-size-limit-diagnostics.md +++ /dev/null @@ -1,2 +0,0 @@ -- Report parser collection-size limits as the primary structured diagnostic in - `--lint --json` and the language server, with the offending token's location. diff --git a/changes/fixed/1363-dap-utf8-json.md b/changes/fixed/1363-dap-utf8-json.md deleted file mode 100644 index 4544ab97..00000000 --- a/changes/fixed/1363-dap-utf8-json.md +++ /dev/null @@ -1,2 +0,0 @@ -- Make every string emitted by `eigsdap` valid UTF-8 JSON, including input - text ending in the middle of a multibyte character. diff --git a/changes/fixed/1366-lsp-fixed-limits.md b/changes/fixed/1366-lsp-fixed-limits.md deleted file mode 100644 index 391c0b1f..00000000 --- a/changes/fixed/1366-lsp-fixed-limits.md +++ /dev/null @@ -1,2 +0,0 @@ -- Bound LSP function-parameter metadata with the parser's shared parameter - limit and move document-symbol deduplication storage off the C stack. diff --git a/changes/fixed/1369-lsp-function-name-ranges.md b/changes/fixed/1369-lsp-function-name-ranges.md deleted file mode 100644 index 9943ade3..00000000 --- a/changes/fixed/1369-lsp-function-name-ranges.md +++ /dev/null @@ -1,2 +0,0 @@ -- Fix LSP definition, symbol, and reference ranges for functions to cover the - function name instead of the `define` keyword, including indented definitions. diff --git a/changes/fixed/1370-mixed-indentation.md b/changes/fixed/1370-mixed-indentation.md deleted file mode 100644 index 99fdb02d..00000000 --- a/changes/fixed/1370-mixed-indentation.md +++ /dev/null @@ -1,2 +0,0 @@ -- Make the lexer and formatter use the same four-column tab stops for mixed - tab-and-space indentation, so formatting cannot change a program's blocks. diff --git a/changes/fixed/1371-lexer-error-caret.md b/changes/fixed/1371-lexer-error-caret.md deleted file mode 100644 index 872be3b9..00000000 --- a/changes/fixed/1371-lexer-error-caret.md +++ /dev/null @@ -1 +0,0 @@ -- Show the offending source line and caret beneath lexer errors, including correctly aligned tab-indented input. diff --git a/changes/fixed/1373-utf8-error-carets.md b/changes/fixed/1373-utf8-error-carets.md deleted file mode 100644 index 701d4654..00000000 --- a/changes/fixed/1373-utf8-error-carets.md +++ /dev/null @@ -1 +0,0 @@ -- Align parse- and runtime-error carets after multi-byte UTF-8 characters in source excerpts. diff --git a/changes/fixed/1374-lsp-lsan-roots.md b/changes/fixed/1374-lsp-lsan-roots.md deleted file mode 100644 index 9629be46..00000000 --- a/changes/fixed/1374-lsp-lsan-roots.md +++ /dev/null @@ -1,2 +0,0 @@ -- Run the LSP sanitizer checks without stack or register roots so stale pointers - cannot hide leaks from LeakSanitizer. diff --git a/changes/fixed/1375-lsp-result-limits.md b/changes/fixed/1375-lsp-result-limits.md deleted file mode 100644 index 734e5b66..00000000 --- a/changes/fixed/1375-lsp-result-limits.md +++ /dev/null @@ -1 +0,0 @@ -- Fixed `eigenlsp` silently truncating reference results after 512 locations and diagnostics after 256 entries. diff --git a/changes/fixed/1376-lsp-uri-refusals.md b/changes/fixed/1376-lsp-uri-refusals.md deleted file mode 100644 index db2b160d..00000000 --- a/changes/fixed/1376-lsp-uri-refusals.md +++ /dev/null @@ -1,3 +0,0 @@ -- `eigenlsp` now reports an error to the client instead of silently changing a - document URI containing an escaped NUL or silently dropping the 65th open - document when its 64-document table is full. diff --git a/changes/fixed/1378-meta-tokenizer-errors.md b/changes/fixed/1378-meta-tokenizer-errors.md deleted file mode 100644 index 66de3982..00000000 --- a/changes/fixed/1378-meta-tokenizer-errors.md +++ /dev/null @@ -1 +0,0 @@ -- Fixed the EigenScript meta-interpreter accepting unterminated plain strings and inconsistent dedents that the native lexer rejects. diff --git a/changes/fixed/1380-lsp-multiline-tokens.md b/changes/fixed/1380-lsp-multiline-tokens.md deleted file mode 100644 index ef6b7e9c..00000000 --- a/changes/fixed/1380-lsp-multiline-tokens.md +++ /dev/null @@ -1,2 +0,0 @@ -- eigenlsp now splits multi-line semantic tokens for clients that do not advertise - `multilineTokenSupport`, and pinpoints an unexpected `)` parse error's source range. diff --git a/changes/fixed/1382-temporal-line-stamps.md b/changes/fixed/1382-temporal-line-stamps.md deleted file mode 100644 index dd030817..00000000 --- a/changes/fixed/1382-temporal-line-stamps.md +++ /dev/null @@ -1,2 +0,0 @@ -- File temporal control flow and every assignment form under the statement's - own first source line, and omit the synthetic end-of-file stamp from traces. diff --git a/changes/fixed/1383-jit-line-tapes.md b/changes/fixed/1383-jit-line-tapes.md deleted file mode 100644 index 38e5cdde..00000000 --- a/changes/fixed/1383-jit-line-tapes.md +++ /dev/null @@ -1,2 +0,0 @@ -- Make JIT- and OSR-compiled line operations emit the same trace-tape line - records as interpreted execution. diff --git a/changes/fixed/1384-for-binder-internal-stores.md b/changes/fixed/1384-for-binder-internal-stores.md deleted file mode 100644 index 9b1b5fec..00000000 --- a/changes/fixed/1384-for-binder-internal-stores.md +++ /dev/null @@ -1 +0,0 @@ -- Hide compiler-internal `for`-binder save and restore stores from trace tapes and assignment history, making temporal answers consistent between function and module scope. diff --git a/changes/fixed/1386-invalid-bytecode-errors.md b/changes/fixed/1386-invalid-bytecode-errors.md deleted file mode 100644 index 2bf53e81..00000000 --- a/changes/fixed/1386-invalid-bytecode-errors.md +++ /dev/null @@ -1,2 +0,0 @@ -- `vm_run_bytecode` now raises a catchable value error with a specific diagnostic when its chunk descriptor is invalid, instead of returning an ambiguous `null`. -- `lib/eigen.eigs` snapshots its direct host dependencies and fresh-environment builtin values at load time, including the entropy helper's `log`/`divide` dependencies, so later host rebinding does not change meta-interpreter behavior. diff --git a/changes/fixed/1387-embed-api-stale-line.md b/changes/fixed/1387-embed-api-stale-line.md deleted file mode 100644 index c6f052f2..00000000 --- a/changes/fixed/1387-embed-api-stale-line.md +++ /dev/null @@ -1,2 +0,0 @@ -- Embed API errors raised after an evaluation no longer report the last line of - that unrelated evaluation. diff --git a/changes/fixed/1390-consumer-acceptance-overlay.md b/changes/fixed/1390-consumer-acceptance-overlay.md deleted file mode 100644 index 83522fd0..00000000 --- a/changes/fixed/1390-consumer-acceptance-overlay.md +++ /dev/null @@ -1 +0,0 @@ -- Fixed consumer acceptance overlays omitting Makefile support files, worktree ecosystem discovery, ephemeral per-consumer logs, and gfx variants without a resolvable standard library. diff --git a/changes/fixed/1393-tensor-load-limit.md b/changes/fixed/1393-tensor-load-limit.md deleted file mode 100644 index 4a80b53d..00000000 --- a/changes/fixed/1393-tensor-load-limit.md +++ /dev/null @@ -1,5 +0,0 @@ -- Align binary tensor loading and writing with the 10,000,000-element cap; - report over-cap files with catchable limit errors, and document the shared - stream count constraints. -- Record the tensor loader's cap decision so the same limit diagnostic and - catch branch replay after the file changes, without taping tensor payloads. diff --git a/changes/fixed/1395-jit-diff-suite-env.md b/changes/fixed/1395-jit-diff-suite-env.md deleted file mode 100644 index fbe55dc2..00000000 --- a/changes/fixed/1395-jit-diff-suite-env.md +++ /dev/null @@ -1 +0,0 @@ -- Make the JIT differential runner use the test suite's per-program environment, so fail-soft tests are compared through completion instead of only to their first strict-mode error. diff --git a/changes/fixed/1398-reject-builtin-surplus.md b/changes/fixed/1398-reject-builtin-surplus.md deleted file mode 100644 index 2865f06e..00000000 --- a/changes/fixed/1398-reject-builtin-surplus.md +++ /dev/null @@ -1 +0,0 @@ -- Fixed- and optional-shape builtin argument lists reject surplus outer elements under the strict default before mutation, resource acquisition or tape consumption. Errors name the builtin and maximum width. Strict-off legacy results, scalar overloads, list-data inputs and variadic arguments are preserved. A source-derived contract inventory and typed ordinary controls cover the classified population (Refs #1398). diff --git a/changes/fixed/1402-sandbox-error-key-lifetime.md b/changes/fixed/1402-sandbox-error-key-lifetime.md deleted file mode 100644 index 19ef5317..00000000 --- a/changes/fixed/1402-sandbox-error-key-lifetime.md +++ /dev/null @@ -1,3 +0,0 @@ -- Fixed `sandbox_run` error dictionaries borrowing run-scoped interned keys after - a caught error, which could leave `kind`, `message`, or `line` dangling at the - host boundary. diff --git a/changes/fixed/1405-model-context-window.md b/changes/fixed/1405-model-context-window.md deleted file mode 100644 index 281f9617..00000000 --- a/changes/fixed/1405-model-context-window.md +++ /dev/null @@ -1,2 +0,0 @@ -- Make `eigen_generate` and `eigen_eval_loss` raise when a prompt exceeds the - model's `max_seq_len`, matching the training API instead of truncating input. diff --git a/changes/fixed/1407-ls-bytewise-order.md b/changes/fixed/1407-ls-bytewise-order.md deleted file mode 100644 index 791a6748..00000000 --- a/changes/fixed/1407-ls-bytewise-order.md +++ /dev/null @@ -1 +0,0 @@ -- Make `ls` return directory entries in deterministic bytewise order instead of filesystem-dependent `readdir` order. diff --git a/changes/fixed/1416-tensor-element-types.md b/changes/fixed/1416-tensor-element-types.md deleted file mode 100644 index 5d8e91bc..00000000 --- a/changes/fixed/1416-tensor-element-types.md +++ /dev/null @@ -1,3 +0,0 @@ -- Tensor builtins now raise a catchable `type` error by default when a list - tensor contains a non-number element, rather than silently replacing it with - zero. Set `EIGS_STRICT=0` to retain the legacy coercion. diff --git a/changes/fixed/1417-buffer-nonfinite-read.md b/changes/fixed/1417-buffer-nonfinite-read.md deleted file mode 100644 index a3b234c9..00000000 --- a/changes/fixed/1417-buffer-nonfinite-read.md +++ /dev/null @@ -1,12 +0,0 @@ -- Clamp non-finite buffer elements at scalar read boundaries in the VM/runtime - and native JIT, so indexed - comparisons, arithmetic, structural equality, scalar reductions (including nested buffers), tensor - element access, and embedding API reads all observe EigenScript's finite-number - invariant consistently. Numeric byte/sample/device conversion and mixed - buffer/list materialization follow the same rule, with defined byte wrapping. - Raised reads stop before later operations or writes and release temporary - conversion storage. A failing iterator read reports its for-loop or - comprehension header, including reads after the first iteration. - Refs #1417: direct indexed-operand parity and the runtime pin migration in - ouroboros AOT remain unresolved; the optional boxed-accessor mirror has a - narrower opt-out fixture scope. diff --git a/changes/fixed/1418-store-buffer-tag-collision.md b/changes/fixed/1418-store-buffer-tag-collision.md deleted file mode 100644 index 53b1e401..00000000 --- a/changes/fixed/1418-store-buffer-tag-collision.md +++ /dev/null @@ -1,2 +0,0 @@ -- EigenStore now preserves a user dictionary whose keys are `_eigs_buffer` and - `_eigs_shape` as a dictionary instead of decoding it as a buffer. diff --git a/changes/fixed/1420-changelog-fragment-validation.md b/changes/fixed/1420-changelog-fragment-validation.md deleted file mode 100644 index fe5b838b..00000000 --- a/changes/fixed/1420-changelog-fragment-validation.md +++ /dev/null @@ -1 +0,0 @@ -- Reject symlink and empty changelog fragments, unauthorized fragment deletions, and release cuts that delete non-fragment files under `changes/`. diff --git a/changes/fixed/1424-line-after-return.md b/changes/fixed/1424-line-after-return.md deleted file mode 100644 index d9129bdf..00000000 --- a/changes/fixed/1424-line-after-return.md +++ /dev/null @@ -1,6 +0,0 @@ -- After a call returns, a raise in the caller's expression reports the caller's line (#1424). The VM kept the - callee's last line as the current line, so `e.line`, the `Error line N` header and the traceback's frame line - named a line inside the callee for `sqrt of (f of x)`, `1 / (f of x)`, `a % (f of x)` and a builtin raising after - it ran a user callback (`sort_by`). Every frame now records its caller's line when it is pushed, and `RETURN`, - `RETURN_NULL` and the JIT's return helpers restore it, in the interpreter, the JIT and OSR. Trace-tape `L` - records and temporal answers are unchanged. diff --git a/changes/fixed/1426-sandbox-error-stderr.md b/changes/fixed/1426-sandbox-error-stderr.md deleted file mode 100644 index f281656c..00000000 --- a/changes/fixed/1426-sandbox-error-stderr.md +++ /dev/null @@ -1 +0,0 @@ -- Stop `sandbox_run` errors from printing an uncaught-error header and stack trace to stderr; failures are now reported only through the returned structured error. diff --git a/changes/fixed/1431-ci-scope-symlinks.md b/changes/fixed/1431-ci-scope-symlinks.md deleted file mode 100644 index e709c35d..00000000 --- a/changes/fixed/1431-ci-scope-symlinks.md +++ /dev/null @@ -1 +0,0 @@ -- Classify documentation-named symlinks as code changes in CI scope detection, preventing links to runtime files from skipping the test suite. diff --git a/changes/fixed/1434-vm-execute-restore-line.md b/changes/fixed/1434-vm-execute-restore-line.md deleted file mode 100644 index fdf4bc3a..00000000 --- a/changes/fixed/1434-vm-execute-restore-line.md +++ /dev/null @@ -1,13 +0,0 @@ -- Native code that runs EigenScript gets its own line back when that code returns (#1434). A builtin's callback, - an embedder's `eigs_eval_string` and an AOT binary's call into interpreted code all go through `vm_execute`, - and the called code's lines overwrote both the VM's line and the trace line stamp. Nothing restored the stamp, - and #1424's restore covered only a normal return. So with no interpreter frame live (an AOT binary or an - embedder) a builtin raising after the callback, such as `sort_by` with a key that returns a string, reported - the callback's line, and a store right after the call was filed under that line. In the interpreter a callback - that stopped on an error `sandbox_run` swallowed left the next raise in the caller's expression on the chunk's - line (`e.line`, the `Error line N` header and the traceback). `vm_execute` now restores both lines on every - exit, in the interpreter, the JIT and OSR, and writes an `L` record for the restored line when a tape is - recording, so `eigenscript --step` and the DAP file a store made right after the call under the same line as - live history. With an interpreter frame live the restored line is the caller's own line, even when a call - that returned earlier in the expression left the stamp on its last line. Tapes of programs that return from - `load_file`/`import` or whose builtins run callbacks gain those `L` records; the record shape is unchanged. diff --git a/changes/fixed/1435-thread-local-error-line-stamp.md b/changes/fixed/1435-thread-local-error-line-stamp.md deleted file mode 100644 index efbd4b48..00000000 --- a/changes/fixed/1435-thread-local-error-line-stamp.md +++ /dev/null @@ -1 +0,0 @@ -- Keep native/AOT fallback error-line stamps per thread, so a spawned worker cannot make another thread report the worker's source line. diff --git a/changes/fixed/1437-task-builtin-callback.md b/changes/fixed/1437-task-builtin-callback.md deleted file mode 100644 index 1f65b933..00000000 --- a/changes/fixed/1437-task-builtin-callback.md +++ /dev/null @@ -1,2 +0,0 @@ -- Fixed cooperative tasks whose entry is a callback-running builtin (such as - `sort_by`) deadlocking when the builtin invokes its user function. diff --git a/changes/fixed/1438-numerical-grad-loss-type.md b/changes/fixed/1438-numerical-grad-loss-type.md deleted file mode 100644 index 63fea2e4..00000000 --- a/changes/fixed/1438-numerical-grad-loss-type.md +++ /dev/null @@ -1 +0,0 @@ -- Make `numerical_grad`, `numerical_grad_rows`, and `numerical_grad_cols` raise a named type error under strict mode when the loss function returns a non-number, instead of silently treating it as zero. diff --git a/changes/fixed/1439-spawn-temporal-lines.md b/changes/fixed/1439-spawn-temporal-lines.md deleted file mode 100644 index 24d5bc88..00000000 --- a/changes/fixed/1439-spawn-temporal-lines.md +++ /dev/null @@ -1 +0,0 @@ -- Preserve main-thread source-line stamps for temporal history assignments while spawned workers are running. diff --git a/changes/fixed/1441-native-tape-scope.md b/changes/fixed/1441-native-tape-scope.md deleted file mode 100644 index 6fccf438..00000000 --- a/changes/fixed/1441-native-tape-scope.md +++ /dev/null @@ -1,3 +0,0 @@ -- File assignments emitted by native embedders and AOT code in module scope - instead of incorrectly attaching them to the last interpreted callback's - frame in trace tapes. diff --git a/changes/fixed/1442-gc-possible-root-survivors.md b/changes/fixed/1442-gc-possible-root-survivors.md deleted file mode 100644 index 074ca705..00000000 --- a/changes/fixed/1442-gc-possible-root-survivors.md +++ /dev/null @@ -1 +0,0 @@ -- Re-arm the possible-root cycle collector from surviving traversal work (nodes plus owned child slots), restoring hot list-loop performance after a live heap while budgeting repeated scans of dense live graphs (#1442). diff --git a/changes/fixed/1443-unobserved-armed-loop.md b/changes/fixed/1443-unobserved-armed-loop.md deleted file mode 100644 index 60ef0ec3..00000000 --- a/changes/fixed/1443-unobserved-armed-loop.md +++ /dev/null @@ -1,2 +0,0 @@ -- Restored `unobserved:` hot-loop performance in observer-armed programs while - retaining every numeric value-window sample. diff --git a/changes/fixed/1463-intern-name-owners.md b/changes/fixed/1463-intern-name-owners.md deleted file mode 100644 index e2984669..00000000 --- a/changes/fixed/1463-intern-name-owners.md +++ /dev/null @@ -1 +0,0 @@ -- Retain intern-name storage for the lifetime of environments, function parameters, and ordinary dictionary keys, independently of the creating attachment. Keep promoted private dictionary keys owned across attachments of the same state. diff --git a/changes/fixed/1464-mktemp-replay-boundary.md b/changes/fixed/1464-mktemp-replay-boundary.md deleted file mode 100644 index 9257227a..00000000 --- a/changes/fixed/1464-mktemp-replay-boundary.md +++ /dev/null @@ -1,2 +0,0 @@ -- Refuse `mktemp` at the documented filesystem boundary during replay, before - creating a fresh temporary file that the trace tape cannot reconstruct. diff --git a/changes/fixed/1465-worker-cleanup.md b/changes/fixed/1465-worker-cleanup.md deleted file mode 100644 index 5780eca7..00000000 --- a/changes/fixed/1465-worker-cleanup.md +++ /dev/null @@ -1 +0,0 @@ -- Safely drain spawned workers and nested spawns before fuzz-input cleanup, reset the per-input cooperative scheduler, and preserve sandbox loop caps on worker threads. diff --git a/changes/fixed/1476-meta-evaluator-restores-loop-binders-after-e.md b/changes/fixed/1476-meta-evaluator-restores-loop-binders-after-e.md deleted file mode 100644 index 91360d6e..00000000 --- a/changes/fixed/1476-meta-evaluator-restores-loop-binders-after-e.md +++ /dev/null @@ -1 +0,0 @@ -- Meta evaluator restores loop binders after exceptions (#1476). diff --git a/changes/fixed/1482-compiler-hide-for-loop-save-slots-from-sourc.md b/changes/fixed/1482-compiler-hide-for-loop-save-slots-from-sourc.md deleted file mode 100644 index c8c410c5..00000000 --- a/changes/fixed/1482-compiler-hide-for-loop-save-slots-from-sourc.md +++ /dev/null @@ -1 +0,0 @@ -- compiler: hide for-loop save slots from source names (#1482). diff --git a/changes/fixed/1483-reject-ragged-matrices-in-charpoly.md b/changes/fixed/1483-reject-ragged-matrices-in-charpoly.md deleted file mode 100644 index b93dfc87..00000000 --- a/changes/fixed/1483-reject-ragged-matrices-in-charpoly.md +++ /dev/null @@ -1 +0,0 @@ -- Reject ragged matrices in charpoly (#1483). diff --git a/changes/fixed/1575-sandbox-history-boundary.md b/changes/fixed/1575-sandbox-history-boundary.md deleted file mode 100644 index 77f25d41..00000000 --- a/changes/fixed/1575-sandbox-history-boundary.md +++ /dev/null @@ -1 +0,0 @@ -- Keep sandbox assignments and observer snapshots out of shared temporal history before retaining names, values or count metadata. Ordinary tape assignment records and trusted host/descriptor history outside the sandbox are preserved. diff --git a/changes/fixed/1588-arena-promotion-accounting.md b/changes/fixed/1588-arena-promotion-accounting.md deleted file mode 100644 index 33a63291..00000000 --- a/changes/fixed/1588-arena-promotion-accounting.md +++ /dev/null @@ -1 +0,0 @@ -- Bound arena-list promotion with iterative native work, preserve repeated list references, charge promotion allocations to sandbox budgets, and retain deferred promoted-list candidate ownership until normal single-threaded collection. diff --git a/changes/fixed/1590-strict-byte-list-elements.md b/changes/fixed/1590-strict-byte-list-elements.md deleted file mode 100644 index 19000f30..00000000 --- a/changes/fixed/1590-strict-byte-list-elements.md +++ /dev/null @@ -1 +0,0 @@ -- Reject nonnumeric list elements in strict byte conversions while preserving compatibility-mode substitution and numeric NUL termination. diff --git a/changes/fixed/1593-heap-inuse-replay.md b/changes/fixed/1593-heap-inuse-replay.md deleted file mode 100644 index 819f1187..00000000 --- a/changes/fixed/1593-heap-inuse-replay.md +++ /dev/null @@ -1,2 +0,0 @@ -- Fixed `heap_inuse` replay on glibc builds to return the recorded allocator - measurement instead of sampling the replay process. diff --git a/changes/fixed/1594-restore-widget-clip-after-render-errors.md b/changes/fixed/1594-restore-widget-clip-after-render-errors.md deleted file mode 100644 index 4a2d714d..00000000 --- a/changes/fixed/1594-restore-widget-clip-after-render-errors.md +++ /dev/null @@ -1 +0,0 @@ -- Restore widget clip state when a renderer raises an error. diff --git a/changes/fixed/1595-chart-narrow-ranges.md b/changes/fixed/1595-chart-narrow-ranges.md deleted file mode 100644 index 0b4c2cb5..00000000 --- a/changes/fixed/1595-chart-narrow-ranges.md +++ /dev/null @@ -1 +0,0 @@ -- Fixed chart rendering for narrow numeric ranges whose reciprocal exceeds the runtime numeric guard, preventing plotted points from collapsing at the plot edges. diff --git a/changes/fixed/1596-null-local-read-errors.md b/changes/fixed/1596-null-local-read-errors.md deleted file mode 100644 index d4a9ea68..00000000 --- a/changes/fixed/1596-null-local-read-errors.md +++ /dev/null @@ -1 +0,0 @@ -- Make optimized local field and index reads raise immediately on null receivers instead of continuing through later side effects. diff --git a/changes/fixed/1598-lint-helper-namespace.md b/changes/fixed/1598-lint-helper-namespace.md deleted file mode 100644 index 76581f19..00000000 --- a/changes/fixed/1598-lint-helper-namespace.md +++ /dev/null @@ -1 +0,0 @@ -- Prefix cross-file lint helpers with `eigs_lint_` so embedding hosts can use their former generic names without archive link collisions. diff --git a/changes/fixed/1600-observer-prepass-attachment-race.md b/changes/fixed/1600-observer-prepass-attachment-race.md deleted file mode 100644 index b5ab9c3a..00000000 --- a/changes/fixed/1600-observer-prepass-attachment-race.md +++ /dev/null @@ -1 +0,0 @@ -- Prevent concurrent thread attachment from racing the observer pre-pass without holding the lifecycle mutex across source-provider callbacks. diff --git a/changes/fixed/1601-detect-truncated-bundle-head.md b/changes/fixed/1601-detect-truncated-bundle-head.md deleted file mode 100644 index 52553579..00000000 --- a/changes/fixed/1601-detect-truncated-bundle-head.md +++ /dev/null @@ -1 +0,0 @@ -- Refuse to run damaged bundles truncated immediately after the archive head, including bundles with non-ASCII entry names. diff --git a/changes/fixed/1603-bound-lsp-diagnostic-tracing.md b/changes/fixed/1603-bound-lsp-diagnostic-tracing.md deleted file mode 100644 index 01459b32..00000000 --- a/changes/fixed/1603-bound-lsp-diagnostic-tracing.md +++ /dev/null @@ -1 +0,0 @@ -- Add bounded LSP diagnostic tests for temporary trace-arming suppression, host-state preservation and subsequent normal compilation. diff --git a/changes/fixed/1608-embedding-state-close-cycle.md b/changes/fixed/1608-embedding-state-close-cycle.md deleted file mode 100644 index 0214b957..00000000 --- a/changes/fixed/1608-embedding-state-close-cycle.md +++ /dev/null @@ -1 +0,0 @@ -- Reclaim imported module/function cycles held by a closing non-last embedding state's trace table. diff --git a/changes/fixed/1623-candidate-pin-cull.md b/changes/fixed/1623-candidate-pin-cull.md deleted file mode 100644 index 855837a7..00000000 --- a/changes/fixed/1623-candidate-pin-cull.md +++ /dev/null @@ -1,4 +0,0 @@ -- Retire possible-root containers held only by their buffer pin during later - single-threaded admissions, separately from full cycle collection. Preserve - child-cycle registration and the survivor-work scan budget with an admission - counter that pin retirement cannot erase (#1623). diff --git a/changes/internal/1196-string-scaling-aggregation-fixtures.md b/changes/internal/1196-string-scaling-aggregation-fixtures.md deleted file mode 100644 index 8d416d27..00000000 --- a/changes/internal/1196-string-scaling-aggregation-fixtures.md +++ /dev/null @@ -1,3 +0,0 @@ -- The string-scaling gate's self-test now exercises unsorted round ratios on - both sides of the median boundary, catching broken production sorting and - median index selection. diff --git a/changes/internal/1264-tiered-ci.md b/changes/internal/1264-tiered-ci.md deleted file mode 100644 index 224e3d47..00000000 --- a/changes/internal/1264-tiered-ci.md +++ /dev/null @@ -1,3 +0,0 @@ -- CI: pull requests run the build/release/self-test/precheck/LSP/docs tier while sanitizer, TSan, extension, macOS, - valgrind, and benchmark checks report `deferred to merge queue`; merge-queue and main-push candidates still run - every heavy suite, guarded by a planted tier-check regression (#1264). diff --git a/changes/internal/1279-parallel-core-boundary.md b/changes/internal/1279-parallel-core-boundary.md deleted file mode 100644 index 06fa90f0..00000000 --- a/changes/internal/1279-parallel-core-boundary.md +++ /dev/null @@ -1 +0,0 @@ -- Parallelise the core/extension boundary compile probes to shorten contributor prechecks without reducing the checked translation-unit population. diff --git a/changes/internal/1301-consumer-runtime-selectors.md b/changes/internal/1301-consumer-runtime-selectors.md deleted file mode 100644 index 1346426b..00000000 --- a/changes/internal/1301-consumer-runtime-selectors.md +++ /dev/null @@ -1 +0,0 @@ -- Harden the consumer-acceptance harness against inherited runtime-selector variables so every consumer invocation is routed through a counted candidate shim. diff --git a/changes/internal/1302-ai-benchmark-driver.md b/changes/internal/1302-ai-benchmark-driver.md deleted file mode 100644 index e3e385f5..00000000 --- a/changes/internal/1302-ai-benchmark-driver.md +++ /dev/null @@ -1 +0,0 @@ -- Add the provider-neutral, artifact-first AI contribution benchmark protocol and adapters; measurements and publication remain a separate periodic campaign. diff --git a/changes/internal/1304-runtime-slot-replacement.md b/changes/internal/1304-runtime-slot-replacement.md deleted file mode 100644 index 32dbd6dc..00000000 --- a/changes/internal/1304-runtime-slot-replacement.md +++ /dev/null @@ -1 +0,0 @@ -- Harden consumer acceptance against consumer builds replacing the overlay runtime counting slot. diff --git a/changes/internal/1311-ci-scope-renames.md b/changes/internal/1311-ci-scope-renames.md deleted file mode 100644 index a24650ee..00000000 --- a/changes/internal/1311-ci-scope-renames.md +++ /dev/null @@ -1,2 +0,0 @@ -- CI tooling: the `scope` job counts both sides of a rename (`tools/ci_scope.sh`), so `git mv src/foo.c notes.md` - is no longer docs-only (#1311). diff --git a/changes/internal/1312-print-weights-label-floor.md b/changes/internal/1312-print-weights-label-floor.md deleted file mode 100644 index 8fa88718..00000000 --- a/changes/internal/1312-print-weights-label-floor.md +++ /dev/null @@ -1,2 +0,0 @@ -- Tooling: `tools/section_plan.sh --print-weights` refuses a runner with fewer than 200 section labels and counts - only the runner's own labels in the log (#1312). diff --git a/changes/internal/1313-asan-aggregator-bearing-floor.md b/changes/internal/1313-asan-aggregator-bearing-floor.md deleted file mode 100644 index 81a6c1fb..00000000 --- a/changes/internal/1313-asan-aggregator-bearing-floor.md +++ /dev/null @@ -1,2 +0,0 @@ -- CI tooling: the ASan aggregator requires the shards' header-bearing chunks to sum to at least 200; - `tools/asan_receipts_check.sh --selftest` runs the real step on generated receipts (#1313). diff --git a/changes/internal/1319-allocation-measurement.md b/changes/internal/1319-allocation-measurement.md deleted file mode 100644 index 807ced68..00000000 --- a/changes/internal/1319-allocation-measurement.md +++ /dev/null @@ -1,2 +0,0 @@ -- Add opt-in, non-enforcing requested-byte allocation counters to gather the - evidence required before designing a process heap cap. diff --git a/changes/internal/1340-make-c-test-print-directory.md b/changes/internal/1340-make-c-test-print-directory.md deleted file mode 100644 index c8c68d5c..00000000 --- a/changes/internal/1340-make-c-test-print-directory.md +++ /dev/null @@ -1,2 +0,0 @@ -- Test tooling: `tests/test_asan_gfx.sh` and `tests/test_leak_guard.sh` read `print-*` with `--no-print-directory` - and fail on any word that is not a `.c` file, so `make -C test` passes [137] and [69] (#1340). diff --git a/changes/internal/1349-test-changed-formatter-residual.md b/changes/internal/1349-test-changed-formatter-residual.md deleted file mode 100644 index 4300ef65..00000000 --- a/changes/internal/1349-test-changed-formatter-residual.md +++ /dev/null @@ -1,2 +0,0 @@ -- Contributor docs: `[80]` Formatter is CI-only for `.eigs` edits; the observed file-to-section map is not built - (#1349). diff --git a/changes/internal/1355-precheck-verdict.md b/changes/internal/1355-precheck-verdict.md deleted file mode 100644 index 3745b6ff..00000000 --- a/changes/internal/1355-precheck-verdict.md +++ /dev/null @@ -1 +0,0 @@ -- `make precheck` now applies the suite's full portability receipt validation and has an enrolled self-test for pass, failure, skip, missing-verdict, identity, platform, and missing-binary classifications. diff --git a/changes/internal/1365-lsp-asan-binary.md b/changes/internal/1365-lsp-asan-binary.md deleted file mode 100644 index b17570b2..00000000 --- a/changes/internal/1365-lsp-asan-binary.md +++ /dev/null @@ -1 +0,0 @@ -- Keep the sanitizer LSP gate on a dedicated, verified ASan binary so it cannot silently test a stale release build. diff --git a/changes/internal/1367-lint-w024-format-truncation.md b/changes/internal/1367-lint-w024-format-truncation.md deleted file mode 100644 index 92aba46f..00000000 --- a/changes/internal/1367-lint-w024-format-truncation.md +++ /dev/null @@ -1,2 +0,0 @@ -- `src/lint.c` joins the W024 spelling by length instead of `snprintf`, so the `-O1` ASan LSP build has no - `-Wformat-truncation` warning; the message is byte-identical (#1367). diff --git a/changes/internal/1372-suite-labels-no-counts.md b/changes/internal/1372-suite-labels-no-counts.md deleted file mode 100644 index fb8c0025..00000000 --- a/changes/internal/1372-suite-labels-no-counts.md +++ /dev/null @@ -1,2 +0,0 @@ -- Test tooling: suite section labels carry no hand-typed count of checks, tests or cases, and - `tools/suite_label_check.sh` refuses one (#1372). diff --git a/changes/internal/1379-emit-plan-refuses-runner.md b/changes/internal/1379-emit-plan-refuses-runner.md deleted file mode 100644 index bc861b85..00000000 --- a/changes/internal/1379-emit-plan-refuses-runner.md +++ /dev/null @@ -1,2 +0,0 @@ -- Tooling: `--emit-*` refuses an OUT that is the runner or an existing file that is not an earlier plan, and - `make test` / `make test-changed` run the suite label floor first, so an emptied runner fails (#1379). diff --git a/changes/internal/1409-native-train-gradcheck.md b/changes/internal/1409-native-train-gradcheck.md deleted file mode 100644 index 66ba4a33..00000000 --- a/changes/internal/1409-native-train-gradcheck.md +++ /dev/null @@ -1 +0,0 @@ -- Add an independent finite-difference gate for every native-training parameter group. diff --git a/changes/internal/1422-container-command-gate.md b/changes/internal/1422-container-command-gate.md deleted file mode 100644 index 8c304eb6..00000000 --- a/changes/internal/1422-container-command-gate.md +++ /dev/null @@ -1 +0,0 @@ -- Add a CI workflow gate that rejects commands unavailable in the shared development image. diff --git a/changes/internal/1429-leak-guard-setup-failures.md b/changes/internal/1429-leak-guard-setup-failures.md deleted file mode 100644 index eabcd5a7..00000000 --- a/changes/internal/1429-leak-guard-setup-failures.md +++ /dev/null @@ -1 +0,0 @@ -- The ASan leak guard now skips only after an explicit compiler capability probe, and reports empty source discovery or a failed sanitizer build as named failures. diff --git a/changes/internal/1430-suite-count-drift.md b/changes/internal/1430-suite-count-drift.md deleted file mode 100644 index 0bd2e499..00000000 --- a/changes/internal/1430-suite-count-drift.md +++ /dev/null @@ -1,5 +0,0 @@ -- Make the suite count gate reject hand-typed label and tally counts, and count - self-checking programs as suite-level results instead of duplicating their - internal assertion totals. Require final verdict totals to balance, including - the newer for-binder internal-store section, and reject hand-maintained skip - refunds too. diff --git a/changes/internal/1440-stop-gate-branch-doc-delta.md b/changes/internal/1440-stop-gate-branch-doc-delta.md deleted file mode 100644 index 726be400..00000000 --- a/changes/internal/1440-stop-gate-branch-doc-delta.md +++ /dev/null @@ -1 +0,0 @@ -- Make the stop hook count documentation already committed on the branch when checking a later semantics edit, with planted pass/block coverage. diff --git a/changes/internal/1448-cc-guard-report-docs-only.md b/changes/internal/1448-cc-guard-report-docs-only.md deleted file mode 100644 index 4bea9065..00000000 --- a/changes/internal/1448-cc-guard-report-docs-only.md +++ /dev/null @@ -1,2 +0,0 @@ -- CI: the macOS compiler-guard report runs only when the code-scoped build ran, so docs-only pull requests - pass while code builds still require recorded compiler activity (#1448). diff --git a/changes/internal/1487-section-fragments.md b/changes/internal/1487-section-fragments.md deleted file mode 100644 index bb13568c..00000000 --- a/changes/internal/1487-section-fragments.md +++ /dev/null @@ -1,2 +0,0 @@ -- Allow independently added test-suite sections to live in deterministic - `tests/sections/` fragments, including complete mechanical-gate coverage. diff --git a/changes/internal/1599-race-free-embed-control.md b/changes/internal/1599-race-free-embed-control.md deleted file mode 100644 index 267b334d..00000000 --- a/changes/internal/1599-race-free-embed-control.md +++ /dev/null @@ -1 +0,0 @@ -- Internal concurrency-test control and TSan gate maintenance; no user-visible change. diff --git a/changes/internal/1621-retain-observer-slot-storage.md b/changes/internal/1621-retain-observer-slot-storage.md deleted file mode 100644 index 01b8e7d4..00000000 --- a/changes/internal/1621-retain-observer-slot-storage.md +++ /dev/null @@ -1,2 +0,0 @@ -- Reuse bounded, logically cleared outer observer-slot storage in already - eligible parked call environments; inner history rings are still destroyed. diff --git a/changes/removed/1406-remove-consumer-vocabulary-diagnostics.md b/changes/removed/1406-remove-consumer-vocabulary-diagnostics.md deleted file mode 100644 index df27f012..00000000 --- a/changes/removed/1406-remove-consumer-vocabulary-diagnostics.md +++ /dev/null @@ -1,3 +0,0 @@ -- Removed the consumer-specific `EIGS_DEDENT_LOSS_WEIGHT`, - `EIGS_CLASS_LOSS_DUMP`, and `EIGS_DEPTH_LOSS_DUMP` training diagnostics; - model training no longer embeds token IDs from an external vocabulary. diff --git a/changes/security/1401-train-max-sequence.md b/changes/security/1401-train-max-sequence.md deleted file mode 100644 index f5c9a6f9..00000000 --- a/changes/security/1401-train-max-sequence.md +++ /dev/null @@ -1,2 +0,0 @@ -- Refuse `native_train_step_builtin` windows longer than the model's - `max_seq_len` instead of corrupting the batched training cache. diff --git a/changes/security/1403-sandbox-work-budget.md b/changes/security/1403-sandbox-work-budget.md deleted file mode 100644 index c1f2740f..00000000 --- a/changes/security/1403-sandbox-work-budget.md +++ /dev/null @@ -1,3 +0,0 @@ -- Bound sandboxed straight-line and function-heavy bytecode with a cumulative - per-run instruction-work budget, independently of the existing loop and - allocation limits. diff --git a/changes/security/1449-drain-per-request-handles-during-http-worker-tea.md b/changes/security/1449-drain-per-request-handles-during-http-worker-tea.md deleted file mode 100644 index d9106dfb..00000000 --- a/changes/security/1449-drain-per-request-handles-during-http-worker-tea.md +++ /dev/null @@ -1 +0,0 @@ -- Drain per-request handles during HTTP worker teardown (#1449). diff --git a/changes/security/1450-bound-nested-f-string-boundary-scanner-depth.md b/changes/security/1450-bound-nested-f-string-boundary-scanner-depth.md deleted file mode 100644 index a50aac10..00000000 --- a/changes/security/1450-bound-nested-f-string-boundary-scanner-depth.md +++ /dev/null @@ -1 +0,0 @@ -- Bound nested f-string boundary scanner depth (#1450). diff --git a/changes/security/1452-seal-builtin-layer-against-shared-name-cache-sto.md b/changes/security/1452-seal-builtin-layer-against-shared-name-cache-sto.md deleted file mode 100644 index 3b14b0c0..00000000 --- a/changes/security/1452-seal-builtin-layer-against-shared-name-cache-sto.md +++ /dev/null @@ -1 +0,0 @@ -- Seal builtin layer against shared name cache stores (#1452). diff --git a/changes/security/1453-fix-shell-injection-in-test-changed-base-handlin.md b/changes/security/1453-fix-shell-injection-in-test-changed-base-handlin.md deleted file mode 100644 index e694d78d..00000000 --- a/changes/security/1453-fix-shell-injection-in-test-changed-base-handlin.md +++ /dev/null @@ -1 +0,0 @@ -- Fix shell injection in test-changed BASE handling (#1453). diff --git a/changes/security/1459-isolate-sandbox-temporal-history.md b/changes/security/1459-isolate-sandbox-temporal-history.md deleted file mode 100644 index 81ee6403..00000000 --- a/changes/security/1459-isolate-sandbox-temporal-history.md +++ /dev/null @@ -1 +0,0 @@ -- Prevent sandbox descriptors from reading shared host temporal history. diff --git a/changes/security/1475-prevent-multithreaded-sandboxes-from-retaini.md b/changes/security/1475-prevent-multithreaded-sandboxes-from-retaini.md deleted file mode 100644 index 5a4665fd..00000000 --- a/changes/security/1475-prevent-multithreaded-sandboxes-from-retaini.md +++ /dev/null @@ -1 +0,0 @@ -- Prevent multithreaded sandboxes from retaining dictionary keys (#1475). diff --git a/changes/security/1478-bound-observer-tape-replay-work.md b/changes/security/1478-bound-observer-tape-replay-work.md deleted file mode 100644 index b771c578..00000000 --- a/changes/security/1478-bound-observer-tape-replay-work.md +++ /dev/null @@ -1 +0,0 @@ -- Bound observer tape replay work (#1478). diff --git a/changes/security/1479-pin-sandbox-observer-tracker-environment-acr.md b/changes/security/1479-pin-sandbox-observer-tracker-environment-acr.md deleted file mode 100644 index 953a415e..00000000 --- a/changes/security/1479-pin-sandbox-observer-tracker-environment-acr.md +++ /dev/null @@ -1 +0,0 @@ -- Pin sandbox observer tracker environment across untrusted execution (#1479). diff --git a/changes/security/1484-fix-bound-w023-lint-analysis-work.md b/changes/security/1484-fix-bound-w023-lint-analysis-work.md deleted file mode 100644 index 024fdb0b..00000000 --- a/changes/security/1484-fix-bound-w023-lint-analysis-work.md +++ /dev/null @@ -1 +0,0 @@ -- fix: bound W023 lint analysis work (#1484). diff --git a/changes/security/1485-validate-scatter-add-indices-before-integer.md b/changes/security/1485-validate-scatter-add-indices-before-integer.md deleted file mode 100644 index 60d34aea..00000000 --- a/changes/security/1485-validate-scatter-add-indices-before-integer.md +++ /dev/null @@ -1 +0,0 @@ -- Validate scatter_add indices before integer conversion (#1485). diff --git a/changes/security/1576-synchronize-import-collision-warning-cache.md b/changes/security/1576-synchronize-import-collision-warning-cache.md deleted file mode 100644 index de1ab463..00000000 --- a/changes/security/1576-synchronize-import-collision-warning-cache.md +++ /dev/null @@ -1 +0,0 @@ -- Synchronize the process-wide import-collision warning cache for concurrent HTTP imports. diff --git a/changes/security/1583-bound-lsp-rename-work.md b/changes/security/1583-bound-lsp-rename-work.md deleted file mode 100644 index 5c5685b4..00000000 --- a/changes/security/1583-bound-lsp-rename-work.md +++ /dev/null @@ -1 +0,0 @@ -- eigenlsp: bound scope and binding analysis for rename requests, refusing an edit when adversarial document structure exhausts the per-request work budget (#1583). diff --git a/changes/security/1584-drain-sandbox-cycle-candidates.md b/changes/security/1584-drain-sandbox-cycle-candidates.md deleted file mode 100644 index 64799d91..00000000 --- a/changes/security/1584-drain-sandbox-cycle-candidates.md +++ /dev/null @@ -1 +0,0 @@ -- Drain state-wide value-cycle candidates after every sandbox outcome without repeatedly scanning unrelated captured environments (#1584). diff --git a/changes/security/1602-diagnostic-trace-arming.md b/changes/security/1602-diagnostic-trace-arming.md deleted file mode 100644 index 468d09ae..00000000 --- a/changes/security/1602-diagnostic-trace-arming.md +++ /dev/null @@ -1 +0,0 @@ -- Prevent lint and LSP diagnostic compilation from arming process-wide temporal history.