Repository navigation
Pine UDT object graphs on the paged object Store - #586
Closed
luisleo526 wants to merge 6 commits into
Closed
luisleo526 wants to merge 6 commits into
luisleo526 wants to merge 6 commits into
Conversation
Generated UDT graphs keep node payloads, owning edges, roots and the collector and copy links in the paged object Store. Shallow copies retain child identities; deep copies preserve aliases and cycles within the copy. Collection releases nodes unreachable from the registered roots, including cycles. The caller's transaction versions graph contents, root bindings and deletions together. Every multi-record graph operation opens its scope through Store::scope(): it joins the caller's open transaction without taking a pool handle and owns one handle only when none is open. The fifth nested begin() on a full caller pool throws TxPoolExhausted and leaves the graph and the caller's transaction usable. At the per-Store live-object limit the (limit+1)-th object throws the typed ScratchCapacityError, rolls a partial deep copy back, and consumes no id. Tests: graph operations, boundaries, churn, resource and handle accounting, guards, calc-on-fill, rows for the handle pool and the live-object limit, and a 100k and a one-million-bar growth row. The one-million-bar row ends at the production live-object limit (349,524 complete bars, then a typed refusal and a rolled-back bar) and is pinned as slow. The source-bound manifest gains the graph's three resize sites, and the documented slow-test counts follow the merged tree.
Brings in the store branch head after its merge of main. No conflict: the store branch's new changes touch the workflow files, the CI preflight script and its self-test, and the CI documentation, none of the lines this branch edits.
The fragment under tests/cr150.d carried the name of the work package that introduced it. It is renamed after what it registers, and the comments in the slow-test pin list that cite its path follow. The registration file is picked up by the existing glob, so no CMake line changes; the content of the fragment is unchanged.
The kernel source block of CMakeLists.txt is read line by line by the detached-comments measurement, which takes each line as one path. The UDT graph source shared a line with the object store source, so the measurement stopped at "kernel source is missing". Give it its own line and move the doc citations of the top-level build file that follow the inserted line by one. Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
… graph The source gate found three grow sites on store_ in the UDT graph unit (resize_edges once, resize_payload twice) that the reviewed inventory did not list. Add those three records; the inventory was emitted by the scanner on this tree and compared with the committed file as a set of records, and nothing else changes. Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
UdtGraph::node and UdtGraph::read_object called pine_na_stop, an inline helper of the codegen contract, which put that symbol into libpineforge_kernel.a while the kernel boundary keeps the helpers out of the archive. Raise the same coded failure directly from a local function, as the array and matrix units do: the same code (pine_na_reference), the same arguments and the same English text. Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
luisleo526
added a commit
that referenced
this pull request
Oct 28, 2026
…aling, UDT graphs, metrics replay and the CI admission fix (#616) This lands twelve engine pull requests as one change, verified and measured once on the combined tree: - #593 scratch: a fixed write-through read cache for the adapter's id tables - #594 live runner: a delta report stream by default, and report-path work that does not rescan closed trades - #597 live runner: typed pre-growth stop for the ledger budget and flat pending counts - #608 run_json: reserve the report channel, so strategy output on fd 1 cannot corrupt a report - #586 Pine UDT object graphs on the paged object Store - #578 native order: dormant working book, flat per-point cost for never-filled orders - #579 adapter: skip roster passes and empty-family scans that cannot change anything - #599 adapter: read projected pending orders through one cached duplicate index - #563 adapter: gate the reversal exit cancel on candidate owners instead of every historical id - #591 report sink: retire sealed closed-trade rows on sink routes when the module opts in - #596 metrics: stream the bar Sharpe and Sortino through an ordered, packed return replay - #615 ci: accept release.yml's matrix runner under its fetched path in PR admission Fixes found while testing the combined tree are in the final commits: the retiring ledger's cache sizing, a residency witness that bounds sink-run heap by the declared cache cap and checks zero growth at 100k, 200k and 1M trades, a test fix for a descriptor reuse race, and a standing-orders timing grid whose 20,000-order point is tracked in #621. The member pull requests are closed as landed here.
Collaborator
Author
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Draft, stacked on #568 (the paged object Store). The base switches to main once #568 merges. Proof runs and the full description come before this leaves draft.
🤖 Generated with Claude Code