# Java public SDK numeric ASCII extraction — 2026-10-17

The freshly measured callback reply baseline retains rate failures on all
four SCAN flows. Before another timing run, its book extraction now removes
temporary strings for the sixty numeric/side fields in a full snapshot.

The original public `GroupEntryView.getAscii` copies price and size bytes
into one reusable 256-byte scratch view. The independent decimal parser
consumes that `CharSequence` immediately, with the same digit, sign, scale,
fraction and exact-overflow checks as before. The public SDK's own
`getDecimalScaled` result is still independently compared for every numeric
field. Every group entry, ordering/value check, field count and complete
extraction fold remains. The four owned best bid/ask price/size strings are
still copied from the actual SDK entry, preserving exact reaction text after
scratch reuse. The unused side string is replaced by the existing checked
public character read.

`getAscii` reports the copied count and may silently truncate at capacity.
The scratch view therefore refuses a count reaching 256, as well as an empty
or missing field. It never parses an apparently valid truncated prefix.
The canonical generated price/size fields fit within this bound. Successful
top-level field guards also defer their unchanged error labels until failure.
No SDK, application capture binding, clock, transport or placement changes.

The bounded local build against the original unchanged public SDK JAR passes
**218 checks, zero skips**, including the original capture/ownership checks.
New vectors exercise actual public SDK group fields, independent expected
values through `Long.MAX_VALUE`, the SDK decimal result, no-string/no-slice
character views, malformed/overflow/fraction values, scratch reuse, missing
fields, a valid prefix with a truncated corrupt suffix, exact capacity and
the largest completely copied field. The original SDK JAR remains SHA-256
`9bd36323547631a8eb27ac43a6137bdb9d07642c3f812a18fb610d5a6ce5e9f1`.
Compiler/test heap limits are 128/64 MiB; test fixtures use `TestTempFiles`.

Fresh exported consumer builds, actual four-flow sessions, cold refusal
controls and timing remain required. Existing failing callback timing keeps
its original grade; the new source cannot borrow the earlier functional pass.
This source/local test supplies no performance or allocation measurement.

## Frozen export and queued qualification

The complete 933-file benchmark export at
`e2025b1fd9e002ca67c29891a086d82aa1b5b3f5` has zero closure, link or scrub
findings. Its inventory SHA-256 is
`f3a3640a89add717e4858fd856978b98f9e646c8438fbf2432135e66645078a6`.
Both hosts queue fresh portable/Philadelphia checks, followed by the changed
Java consumer's actual build, twelve pairs and cold refusals. The immutable
original SDK source pin and actual per-host JAR hashes stay separately bound.
Cold host-slot/process/memory/disk snapshots precede the new heavy phases.
Both independent physical preparations must finish before quiet timing,
then original reports/products pass the separately frozen explicit callback
comparison reader. HP queues use high priority. The paired peer is recollected
as the reference arm of this changed Java experiment; no unchanged failed
Java timing configuration is retried. These queued stages have no result yet.

## HP exported functional qualification completed

The actual unchanged 933-file export now passes 2,250 portable controls
(two explicit SDK-source deselections, zero failures/skips), the peer's
5,535 Java checks, twelve real session pairs, 113 cold refusals and all 24
copy-count observations on HP. The changed Java consumer separately passes
218 compiled checks, twelve actual pairs and 107 cold refusals against the
unchanged original public SDK JAR. Both source inventories remain exact.
These high-priority isolated-CPU functional jobs allow concurrent shared
work and supply no timing grade. The two physical preparations follow only
after both qualifications pass; quiet timing follows both preparations.
SCAN's matching qualification remains queued behind another session.

## First HP physical outcome and SCAN peer qualification

Both HP physical installations and first quiet high-priority collections now
finish. Each engine completes four tiny and twelve full report pairs, with
both independent cold replays reproducing every quantile, extremum and
decision. Original source bytes/modes, full owner/admin proof, ten-cycle
pre-warmup capture and physical Solarflare counter proofs remain intact.

| Flow | Changed Java cycles/s, min–max | Changed Java grade | Paired Philadelphia grade |
|---|---:|---|---|
| NOS/ER | 9,775.612–9,976.797 | diagnostic: rate | pass |
| MD | 9,839.985–9,896.261 | pass | pass |
| MD + NOS/ER | 9,568.074–9,664.774 | diagnostic: rate | diagnostic: stability |
| Tick to trade | 9,859.473–9,975.842 | pass | pass |

The original explicit callback reader and installed archive collector also
finish on HP. This one-rig matched decision admits MD and tick only; its
whole outcome remains blocked. It does not supply a two-rig minimum or
establish a causal speed change from the previous configuration. The five
passing compact files are collected outside Git pending the paired SCAN
decision and consistent current comparison/cell publication. Older admitted
cells and their matched comparison bindings remain intact at this checkpoint.

SCAN now passes the same 2,250 portable controls, 5,535 peer Java checks,
twelve actual pairs, 113 cold refusals and 24 copy-count observations with
unchanged source inventory. Its changed Java qualification remains queued
under the normal host-slot policy. No unchanged failed timing is retried.

## Both numeric-source physical rigs replayed and compact publication

The changed Java consumer now also completes its SCAN functional and
physical work. Both consumers finish four tiny and twelve full report pairs
on each accepted rig. Every original full collection independently replays
120,000 primary and 120,000 scheduler-delay samples, exact quantiles/extrema,
unchanged original bytes/modes and every passing or failed decision. The
installed archive collectors bind both original JAR containers and complete
compiled member inventories. The frozen cross-rig merger independently
reproduces the exact two-rig decision without a new compile, socket pair,
physical run or raw benchmark download.

| Rig | Changed Java passing flows | Paired Philadelphia passing flows | Matched passing flows |
|---|---|---|---|
| HP Solarflare DAC | MD, tick to trade | NOS/ER, MD, tick to trade | MD, tick to trade |
| SCAN mlx5 DAC | none | NOS/ER, MD | none |

The SCAN changed baseline retains rate failures on all four flows; mixed
also fails scheduler delay. SCAN's peer mixed retains rate/delay/stability
failures and tick retains stability failure. HP's previously stated failed
NOS/mixed baseline and mixed peer decisions remain unchanged. Whole Java
comparison admission stays **blocked**. Failed rows have empty metrics.

The exact compact combined download is
[`java-ascii-numeric-callback-two-rig-20261017.json`](comparisons/java-ascii-numeric-callback-two-rig-20261017.json):
18,457 bytes, SHA-256
`a91e30342276f29d75189b8779966fa877c660cd03f6d87227fd8de7607a444f`.
A fresh local execution of the frozen merger reproduces every JSON value.
Both original report/compiled-archive receipts retain their exact hashes.

Seven passing compact files replace only their newer matching keys: HP's
two changed Java cells and three peer cells, plus SCAN's two peer cells.
The catalogue remains 658 cells; the other 651 files stay byte-identical.
The normal writer validates every incoming cell, requires a strictly newer
sitting and refuses every failed attempt before any replacement. The seven
stored files exactly equal their producing hosts' compact bytes, including
the maximum 2,000 CDF points per kind. No raw captures/samples enter Git.

The earlier source's three-flow HP comparison remains downloadable with
its original immutable bytes. It is marked superseded in current website
publication: replacing its cells must not combine older matched ratios with
new source/product identities. Only the exact hash-bound original and
independently validated successor permit that historical treatment. Original
reader/product/cold proof remains checked; current metrics are hidden for
the superseded report. The new comparison still requires exact current
compact cells, actual JVM profiles, owner, products and all original gates.
