# Philadelphia public SDK values and fresh Java baseline — 2026-10-17

## Source change and local checks

Source `2d94a107cfaa403a5255254831045bdc3cdb43c5` parses the actual
Philadelphia public `FIXValue` character views directly for the complete
book's numeric and side values. Its public `contentEquals` checks fixed
values. Owned identifiers and the four actual top-of-book strings still
retain their original values. Every tag/order/value, full-book owner fold,
decimal/overflow guard, generated body, pacing and clock boundary remains.
There is no SDK source or binary patch. Independent numeric expectations,
actual SDK values and a character view that refuses string conversion cover
the new path. The final Java check has **5,531 checks, zero skips**.

The SDK core SHA-256 stays
`396136037b0f41e635e3aea233c3f31f4a388318b445f4afe1609b9a6d28a7b7`.
Session source SHA-256 is
`3d195e793f452004e351322de87d7d3355acc0c40bfe545b19e5f0475c848a3b`.
Test source SHA-256 is
`81b5bbe99a1dade428d7b681f9ea0fb72886787a7333ed64b66f11b1c26de554`.

The stripped harness contains 927 files, inventory SHA-256
`0260ecb4fb32a54edd829220f9191b06b645f8a1749e5c2d2b2e56f632303888`.
HP passes 2,157 portable Python controls with two explicit SDK source
deselections and zero skips/failures. Its unpatched consumer passes twelve
actual TCP pairs, including zero warmup and a repeat, 113 cold corruption
refusals and all 24 endpoint copy-count observations. Its source bytes and
modes remain unchanged. These are functional checks under an outer `isol`
lease with concurrent shared work, with high priority on HP. SCAN's matching
qualification and both quiet physical runs remain pending at this checkpoint.

The local v1 export verification was deliberately stopped when another
session's full .NET suite was found running. That stopped operation is kept;
it is not a completed gate or a benchmark failure. The v2 archive uses
`--no-verify` locally and runs its complete portable control suite under each
remote qualification's host lease.

## Current public Java SDK baseline

The current Java SDK is separately exported from the same source commit.
The actual public manifest produces 993 files, with zero unresolved
references, dead documentation links or scrub findings, and 28 rewritten
documentation links. Its inventory SHA-256 is
`45688b28666324c13d24a10e44813362d4f38514e993a67d932e671b11546636`.
`--no-verify` means this export alone has no compile, native, unit-suite or
release grade. Fresh open pure-Java packaging and complete canonical
consumer qualification are queued on both hosts.

The first queued Java worker had an incorrect variant substring check
which omitted `+nio-rw`. Both own waiting controllers were cancelled before
acquiring a lease, sending their payload, creating a host capsule or running
a build/session. The original queued packet and cancellation note remain;
the separately frozen v2 worker requires the complete existing variant.

## Separately collected Java comparison reader

`check_java_independent_canonical_comparison.py` supports separately collected
Java/Phi reports without synthesizing a common producer receipt. Each
original producer completion must bind its own rows and the same frozen
harness inventory/archive. Full physical replay, report profile, fixture,
generation, topology, source/hardware probe and CPU budgets are mandatory.
All 48 actual endpoint JVM declarations must agree on Java runtime version,
512 MiB Epsilon heap and explicit split placement, with their original kernel
readbacks and complete per-engine options. Poll-owner Java/NIO and callback
Philadelphia remain explicit distinct flavours. Failed rows produce no
metric or ratio; the worst latency remains the maximum of all run extrema.

Fifty focused Python checks pass, with zero skips: 32 new runtime/endpoint
controls plus the 18 existing complete-profile, clock and aggregation checks.
This is reader qualification only. It has not yet replayed the pending
actual physical pair and grants no new timing or comparison admission.

## Retention and remaining work

Working output remains on each benchmark host under
`~/build/codex-fullbench/libhft/`. Philadelphia qualification and physical
roots are `philadelphia-sdk-values-{qualification,physical}-20261017-v2`;
the source capsule is
`~/.cache/libhft/fullbench-philadelphia-sdk-values-20261017-v2`.
Fresh Java qualification is `java-current-sdk-qualification-20261017-v2`,
using `~/.cache/libhft/fullbench-java-current-sdk-20261017-v2`.
Original raw samples/captures/logs and queued packets do not enter Git.

No compact cell is changed at this checkpoint. Both rigs' fresh physical
decisions, current matched Java minimum, remaining engine/QuickFIX anchors,
whole-SDK/native/licence and coordinated public release gates remain open.

## Follow-up: both functional qualifications and standalone gate

Both hosts now pass the Philadelphia qualification above: 24 actual TCP
pairs, 226 cold refusals and 48 copy-count observations in total. SCAN also
reports 58 passing portable subtests. Both actual builds pass 5,531 compiled
checks with zero skips; both frozen inventories remain unchanged.

Both hosts independently package the current public pure-Java SDK, build its
canonical consumer and pass twelve actual pairs plus 107 cold refusals each.
The consumer's 56 compiled checks pass. Actual complete flavour is
`java-pure+callback+epsilon-gc+nio-rw+split`, using poll replies. SDK JARs are
separately pinned: HP
`4dd38001f48f51e0b29a8494f2ec0b4f53dd7645fd84c91e241d36beceae22dd`,
SCAN `9bd36323547631a8eb27ac43a6137bdb9d07642c3f812a18fb610d5a6ce5e9f1`.
No cross-host binary equivalence is inferred from identical source pins.
This packaging skips the SDK unit suite and native build explicitly; a
separate complete standalone JNI/SDK verification is queued on each host.
Both source inventories (993 SDK / 927 harness files) remain exact.

The complete standalone benchmark export at
`a5eaf7d37ffa723d568ecada0fcbadcb0feeaf4b` then passes its real manifest
verification command: **2,189 controls, 58 subtests, zero failures/skips and
only two explicitly deselected SDK source guards**. Its 929 files have no
closure/link/scrub findings. Every byte/mode matches the expected committed
export after verification; inventory SHA-256 is
`ca829601856664a0389b82a38c826fa1353ca82e20e427e0e176497e8b1877c7`.

Own waiting Philadelphia timing reservations were cancelled before runtime
execution and requeued after preparation, allowing functional work alongside
the existing shared jobs. Only own queued processes were stopped. No target
benchmark or source generation was retried by that scheduling change.

## Follow-up: SCAN physical outcomes

Both immutable generations complete four tiny and twelve report pairs each.
All four independent tiny/report replays pass, reproducing raw quantiles,
true extrema and every admission decision. Together: 32 physical pairs,
240,160 primary samples, 240,160 delay samples and 661,300 application frames
per peer. Full body, owner, original admin, entry and DAC wire-counter proof
passes; application capture contains only ten pre-warmup cycles.

| Flow | Philadelphia rate /s, min–max | Philadelphia grade | Java poll rate /s, min–max | Java poll blockers |
|---|---:|---|---:|---|
| NOS/ER | 9,982.730–9,983.620 | S5 pass | 7,894.196–8,718.894 | rate, stability, delay |
| MD | 9,982.598–9,983.253 | S5 pass | 6,296.474–8,264.797 | rate, stability, delay |
| MD + NOS/ER | 9,549.765–9,801.742 | S5 diag: rate, stability | 4,639.841–5,050.979 | rate, stability, delay |
| Tick to trade | 9,977.631–9,981.997 | S5 pass | 7,612.752–8,858.086 | rate, delay |

These are complete configuration outcomes; they do not establish a causal
change in speed. The three passing peer files replace their earlier good
keys byte-exactly. There are still **655 compact cells**. All other result
bytes are unchanged, including the mixed-flow key. Java failures write no
cell and supply no timing ratio or current language minimum.

SCAN generations: Philadelphia
`03150f63df944563b2bee512f11af877e3a7d31222cf273f0d0004fc2dddc626`,
Java `0061bc06a7aaeca72fb9a78b3ebb77dc8251a8a389a41612ee47d3ca1adf9df7`.
Original full working output remains on SCAN. HP's prepared matching
matrices remain queued at high priority behind the shared conformance job.

The first independent comparison invocation failed to parse its private
queue wrapper, before capsule creation, input delivery or original reads.
The retained failed wrapper/log is not a benchmark failure. The corrected
wrapper compiles each complete generated remote program locally before
queueing and uses a distinct placeholder for the host argument. Its cold
comparison is queued; no comparison admission is claimed at this checkpoint.

The existing public Java callback-reply profile is separately queued for
functional qualification against these exact fresh SDK JARs. Its explicit
`+reply-cb` identity cannot replace or borrow the failed poll-owner profile.
Full two-rig timing, current matched Java, remaining peer/anchor, whole-SDK,
licence and release gates remain open.

## Follow-up: actual SCAN independent comparison

All fifty reader controls and both complete original SCAN report replays now
pass. The actual matched decision remains blocked on every flow, with no
metrics or ratios. Both rigs' registered product receipts separately bind
all original JAR containers and identical compiled member inventories. The
new combiner qualifies the SCAN report with an explicit one-rig scope; its
small blocked decision is retained under `comparisons/`. This supplies no
whole-language or two-rig grade. See the
[actual product/comparison proof](RECORD_2026-10-17_java_archive_products.md).

## Follow-up: HP physical collection completed

HP's first quiet high-priority collection of both original generations is
complete. Each engine finishes four tiny and twelve report pairs. Its
independent tiny/report replays reproduce all original quantiles, extrema,
physical gates and report decisions, with unchanged source and result bytes.
Together the two engines retain 240,160 primary samples, 240,160 scheduler
delay samples and 661,300 application frames per peer. Full owner, original
admin, pre-warmup-only capture and Solarflare wire-counter proofs pass.

| Flow | Philadelphia rate /s, min–max | Philadelphia grade | Java poll rate /s, min–max | Java poll blockers |
|---|---:|---|---:|---|
| NOS/ER | 9,989.110–9,991.095 | S5 pass | 9,646.027–9,814.353 | rate, stability |
| MD | 9,981.591–9,991.741 | S5 pass | 8,003.316–9,649.886 | rate, stability, delay |
| MD + NOS/ER | 9,927.070–9,983.155 | S5 diag: stability | 7,121.831–8,981.372 | rate, stability, delay |
| Tick to trade | 9,987.809–9,989.063 | S5 pass | 9,682.965–9,933.779 | rate, stability |

The three passing HP Philadelphia cells replace only their existing good
keys. All other 652 compact result files remain byte-identical, including
the retained mixed key and every Java result. Total remains 655 files;
there is no raw download or raw Git import. HP generations remain
Philadelphia `417d0c53fac6bb97456c0ffdc99744a543a3d0304f893682296f9c289458bcd9`
and Java `97bfd3447c0b9cbfa0481ed70ae2937f8aba8a2ac5e90cd48ffd39e5f30dddc4`.

The explicit poll-policy independent HP report/archive replay is queued.
Bounded read-only collectors wait for both original host decisions and
combine them with `--require-rigs 2`; they never restart a producer or write
Git automatically. This complete physical collection still supplies no
passing Java poll flow or current language minimum. The changed numeric
consumer is a separately frozen experiment with fresh qualification gates.
