Skip to content

perf: establish benchmark authority for #1196 - #1295

Open
fglock wants to merge 417 commits into
masterfrom
perf/benchmark-authority
Open

perf: establish benchmark authority for #1196#1295
fglock wants to merge 417 commits into
masterfrom
perf/benchmark-authority

Conversation

@fglock

@fglock fglock commented Sep 8, 2026

Copy link
Copy Markdown
Owner

Summary

  • add deterministic portfolio workloads for closure, method, numeric, string, regex, Life word-kernel, and JSON::PP work
  • add an alternating fresh-process Perl/PerlOnJava runner with warmup stability checks and JSON evidence
  • document issue perf: surpass Perl on hot closure calls and bit-packed Life loops #1196's performance acceptance contract and phase gates

Validation

  • make — passed before the final small runner metadata clarification
  • system-Perl syntax checks for both new scripts
  • cross-engine one-pair closure smoke run
  • make check-links

A final make rerun rebuilt successfully but one pre-existing unit-test shard did not drain after the other shards completed; it was terminated after 13 minutes, yielding Gradle exit 143. The final change after the successful full gate only marks unstable warmup evidence as inconclusive and corrects a Life-kernel comment.

Related: #1196

@fglock fglock changed the title perf: establish benchmark authority for issue 1196 perf: establish benchmark authority for #1196 Sep 8, 2026
@fglock
fglock force-pushed the perf/benchmark-authority branch 5 times, most recently from b514ff5 to c2dbb77 Compare September 13, 2026 16:43
fglock and others added 24 commits September 14, 2026 07:37
Reuse resolved operand blessing identities between overload selection and
stringification in warning-aware concatenation. Preserve tied and overload
semantics, with a focused Perl regression and high-load A/B evidence.

Generated with Codex (https://openai.com/codex/)

Co-Authored-By: Codex <codex@openai.com>
Capture residual string costs and reject unsafe static elision of dynamic
warning and bytes lexical state.

Generated with Codex (https://openai.com/codex/)

Co-Authored-By: Codex <codex@openai.com>
Emit raw positive small integer operands of unary minus as cached negative
literals, avoiding the generic unary overload path. Record the high-load
seven-pair parent/candidate measurement in the performance handoff.

Generated with [Codex](https://openai.com/codex/)

Co-Authored-By: Codex <noreply@openai.com>
Avoid allocating logical-character step records while scanning ordinary BMP
code units for substring offsets, with the general decoder retained for
surrogates and internal markers. Record the high-load paired measurement.

Generated with [Codex](https://openai.com/codex/)

Co-Authored-By: Codex <noreply@openai.com>
Record the protocol-compliant noisy paired portfolio after retained string
optimizations, including evidence limits and remaining call-boundary priority.

Generated with Codex (https://openai.com/codex)

Co-Authored-By: Codex <codex@openai.com>
Avoid allocating a LinkedHashMap for successful regex matches that contain no
named capture groups while preserving %+ and %- semantics.

Generated with Codex (https://openai.com/codex)

Co-Authored-By: Codex <codex@openai.com>
Revert the non-material regex fast path and record its high-load seven-pair
measurement, validation, and next profiling target.

Generated with Codex (https://openai.com/codex)

Co-Authored-By: Codex <codex@openai.com>
Capture the high-load profile, exact parent/candidate comparison, rejection,
and next regex investigation target for issue #1196.

Generated with Codex (https://openai.com/codex)

Co-Authored-By: Codex <codex@openai.com>
Document post-warmup JFR evidence and the safe selection constraints for
dynamic bitwise scalar transport in the Life workload.

Generated with [Codex](https://openai.com/codex/)

Co-Authored-By: Codex <codex@openai.com>
Capture activation, full-gate, and alternating high-load measurement evidence
for the reverted six-term addition-chain candidate.

Generated with [Codex](https://openai.com/codex/)

Co-Authored-By: Codex <codex@openai.com>
Document the opt-in closure result-wrapper lifecycle evidence and its
implication for subsequent call-boundary selection.

Generated with [Codex](https://openai.com/codex/)

Co-Authored-By: Codex <codex@openai.com>
Append PerlOnJava project, copyright, and licensing information to the
standard Perl version banner without altering the upstream Perl text.

Generated with [Codex](https://openai.com/codex)

Co-Authored-By: Codex <codex@openai.com>
Generated with Codex (https://openai.com/codex)

Co-Authored-By: Codex <codex@openai.com>
Return an empty list for an absent maybe::next::method call so MooX::Options
does not receive a leading undef in its option metadata. Add bytecode support
for local *$globref, unblocking Test::Trap and Test::Spec temporary handles.

Generated with [Codex](https://openai.com/codex/)

Co-Authored-By: Codex <codex@openai.com>
Implement issue #1200's experimental ===, !==, equ, and neu operators with
lexical experimental warnings. Preserve undef-aware behavior, overload
delegation, and exactly-once evaluation for chained comparisons on both
execution backends.

Generated with [Codex](https://openai.com/codex)

Co-Authored-By: Codex <158243242+openai-codex[bot]@users.noreply.github.com>
Treat unordered native capture offsets as nonparticipating captures and keep
recursive-call detection on the active call-frame chain. This clears PPR's
initial range-error family while preserving the remaining heredoc work for
issue #1318.

Generated with Codex (https://openai.com/codex)

Co-Authored-By: Codex <codex@openai.com>
Retain PPR's recursive grammar callbacks and capture state while bounding
Joni's heap-backed backtracking stack. Exhaustion now follows the existing
Perl recursion-exhaustion behavior rather than consuming the JVM heap.

Generated with Codex (https://openai.com/codex/)

Co-Authored-By: Codex <codex@openai.com>
Preserve diamond and double-diamond semantics across both backends, including
ARGV lifecycle, EOF handling, diagnostics, and ordinary-diamond fork warnings.

Generated with Codex (https://openai.com/codex/)

Co-Authored-By: Codex <codex@openai.com>
Materialize live capture proxies before string-context concatenation so
evaluated substitutions retain Unicode casing semantics. This repairs
comp/parser.t assertion 139 and adds focused regression coverage.

Generated with [Codex](https://openai.com/codex)

Co-Authored-By: Codex <codex@openai.com>
Add deterministic portfolio workloads and an alternating fresh-process
Perl/PerlOnJava runner with warmup stability and JSON evidence output.
Document the performance acceptance contract and initial delivery phases.

Generated with [Codex](https://openai.com/codex/)

Co-Authored-By: Codex <codex@openai.com>
Avoid overwriting a tied scalar's wrapper type after utf8::encode or
utf8::decode dispatches STORE, restoring op/utf8magic.t.

Generated with [Codex](https://openai.com/codex/)

Co-Authored-By: Codex <codex@openai.com>
Generated with Codex (https://openai.com/codex)

Co-Authored-By: Codex <codex@openai.com>
Reuse a bounded thread-local Joni matcher for the same immutable regex subject
when no callbacks, locale state, control verbs, deferred properties, warnings,
alarms, or physical named captures are involved. Preserve match snapshots after
the engine returns to the pool and document the measured allocation reduction.

Generated with [Codex](https://openai.com/codex/)

Co-Authored-By: Codex <noreply@openai.com>
fglock and others added 22 commits September 14, 2026 07:39
The exact-parent Life comparison measured only a 1.02622x geometric-mean
gain, below the retained-candidate threshold for #1196 runtime complexity.

Generated with [Codex](https://openai.com/codex/)

Co-Authored-By: Codex <noreply@openai.com>
Replace the chronological experiment ledger with the current acceptance
contract, measurements, prioritized body-cost investigations, and validation
gates for issue #1196.

Generated with [Codex](https://openai.com/codex/)
Co-Authored-By: Codex <noreply@openai.com>
Reuse the compiler's established native-word store guard and avoid a temporary
RuntimeScalar when storing an unsigned high-bit result. Add coverage for
subsequent native-word reads of that result.

Generated with [Codex](https://openai.com/codex/)
Co-Authored-By: Codex <noreply@openai.com>
The exact-parent loaded-host Life screen measured candidate/parent ratios of
1.03112x and 1.01746x (1.02427x geometric mean). The result is below the
material-gain threshold and cannot materially improve issue #1196 parity.

Evidence:
- parent: /tmp/perf-native-word-store-parent-screen-highload-20260914/20260913T233217Z/portfolio.json
- candidate: /tmp/perf-native-word-store-candidate-screen-highload-20260914/20260913T233526Z/portfolio.json

Generated with [Codex](https://openai.com/codex/)
Co-Authored-By: Codex <noreply@openai.com>
Reuse the integer-range iterator cell for fresh lexical foreach variables only
when the body cannot retain its identity. Keep escaping, debugger, and generic
iterator cases on the ordinary path, with coverage for direct indexing and
escaped references.

Generated with [Codex](https://openai.com/codex/)
Co-Authored-By: Codex <noreply@openai.com>
The exact-parent loaded-host Life screen was inconclusive and not materially
positive: same-index candidate/parent ratios were 1.02401x and 0.95045x
(0.98654x geometric mean). Do not widen range-topic reuse without a materially
larger measured budget and stronger ownership proof.

Evidence:
- parent: /tmp/perf-native-word-store-parent-screen-highload-20260914/20260913T233217Z/portfolio.json
- candidate: /tmp/perf-lexical-range-ephemeral-candidate-screen-highload-20260914/20260913T234738Z/portfolio.json

Generated with [Codex](https://openai.com/codex/)
Co-Authored-By: Codex <noreply@openai.com>
Publish per-CV generated literal pads through a concurrent map and take the
existing code-object lock only for pad creation or expansion. Preserve the
literal object identity and synchronized miss behavior.

Generated with [Codex](https://openai.com/codex/)
Co-Authored-By: Codex <noreply@openai.com>
Loaded-host regex screens were not repeatable. Parent-first measured 1.20379x
candidate/parent, while the reversed ordering measured 0.93126x. Retain the
synchronized hit path until a controlled measurement establishes a material
benefit.

Evidence:
- parent-first parent: /tmp/perf-literal-pad-parent-screen-highload-20260914/20260913T235903Z/portfolio.json
- parent-first candidate: /tmp/perf-literal-pad-candidate-screen-highload-20260914/20260914T000211Z/portfolio.json
- reverse candidate: /tmp/perf-literal-pad-candidate-reverse-screen-highload-20260914/20260914T000438Z/portfolio.json
- reverse parent: /tmp/perf-literal-pad-parent-reverse-screen-highload-20260914/20260914T000638Z/portfolio.json

Generated with [Codex](https://openai.com/codex/)
Co-Authored-By: Codex <noreply@openai.com>
Keep the feature-free native Joni matcher on a successful /g cursor between
successive probes, returning it to the existing per-thread pool on exhaustion
or every non-global path. This avoids repeated matcher-pool publication while
preserving cursor and capture publication semantics.

Generated with [Codex](https://openai.com/codex/)
Co-Authored-By: Codex <noreply@openai.com>
The exact-parent loaded-host regex screen materially regressed despite lower
candidate starting load: same-index candidate/parent ratios were 0.88000x and
0.88612x (0.88306x geometric mean). Return the native matcher to the existing
pool on every probe.

Evidence:
- candidate: /tmp/perf-joni-global-native-matcher-candidate-screen-highload-20260914/20260914T001854Z/portfolio.json
- parent: /tmp/perf-joni-global-native-matcher-parent-screen-highload-20260914/20260914T002206Z/portfolio.json

Generated with [Codex](https://openai.com/codex/)
Co-Authored-By: Codex <noreply@openai.com>
Record the measured matcher-retention regression and non-repeatable literal-pad
result as forward constraints in the issue #1196 handoff.

Generated with [Codex](https://openai.com/codex/)
Co-Authored-By: Codex <noreply@openai.com>
Keep the forward-focused handoff aligned with the optimizations already
retained on the issue #1196 PR after rebasing its successor work.

Generated with [Codex](https://openai.com/codex/)

Co-Authored-By: Codex <noreply@openai.com>
Document the measured below-threshold static-regex cache result and keep the
performance handoff focused on larger body-cost opportunities for issue #1196.

Generated with [Codex](https://openai.com/codex/)

Co-Authored-By: Codex <noreply@openai.com>
Avoid allocating the matched substring for ordinary scalar matches unless $&
or capture group zero is observed. Preserve match-time input and offsets so
failed follow-up matches and replacement evaluation retain Perl semantics.

Refs: #1196

Generated with [Codex](https://openai.com/codex/)
Co-Authored-By: Codex <noreply@openai.com>
Record the retained scalar whole-match materialization boundary and its
forward profiling constraints without restoring experiment chronology.

Refs: #1196

Generated with [Codex](https://openai.com/codex/)
Co-Authored-By: Codex <noreply@openai.com>
Avoid dynamic warning-scope lookups for compiled regexes with no deferred
use-site diagnostics while preserving the full warning path for every regex
that has one.

Refs: #1196

Generated with [Codex](https://openai.com/codex/)
Co-Authored-By: Codex <noreply@openai.com>
Keep the performance handoff forward-focused with the current measured regex
boundary and the next residual matcher/dispatch target.

Refs: #1196

Generated with [Codex](https://openai.com/codex/)
Co-Authored-By: Codex <noreply@openai.com>
Keep the handoff forward-looking by preserving the measured selection boundary
without adding a detailed experiment chronology.

Refs: #1196

Generated with [Codex](https://openai.com/codex/)
Co-Authored-By: Codex <noreply@openai.com>
Replace the older high-load baseline with the current source/JAR-matched
complete portfolio and its forward optimization priorities.

Refs: #1196

Generated with [Codex](https://openai.com/codex/)
Co-Authored-By: Codex <noreply@openai.com>
Preserve the reverse-parent selection result and direct future work toward a
broader representation boundary.

Refs: #1196

Generated with [Codex](https://openai.com/codex/)
Co-Authored-By: Codex <noreply@openai.com>
Record the stable high-load candidate and reverse-parent result so future
performance work targets a larger Life body-cost boundary.

Generated with [Codex](https://openai.com/codex/)

Co-Authored-By: Codex <noreply@openai.com>
Record the provenance-matched high-load candidate and reverse-parent result
so later regex work targets a larger matcher-body boundary.

Generated with [Codex](https://openai.com/codex/)

Co-Authored-By: Codex <noreply@openai.com>
@fglock
fglock force-pushed the perf/benchmark-authority branch from 086392c to 5630653 Compare September 14, 2026 05:46
fglock and others added 7 commits September 14, 2026 08:34
Record the full high-load exact-parent result in the #1196 performance handoff.

Generated with [Codex](https://openai.com/codex/)

Co-Authored-By: Codex <noreply@openai.com>
Document the full-gate and high-load measurement evidence, keeping the
performance handoff forward-focused on remaining regex body cost.

Generated with Codex (https://openai.com/codex/)

Co-Authored-By: Codex <codex@openai.com>
Preserve only the full-gate and high-load decision evidence in the
performance handoff.

Generated with Codex (https://openai.com/codex/)

Co-Authored-By: Codex <codex@openai.com>
Keep the performance handoff forward-focused with the high-load probe result.

Generated with Codex (https://openai.com/codex/)

Co-Authored-By: Codex <codex@openai.com>
Record the high-load selection result for the direct void-context substr
snapshot assignment experiment and keep the #1196 handoff forward-focused.

Related: #1196

Generated with Codex (https://openai.com/codex/)

Co-Authored-By: Codex <codex@openai.com>
Record the disassembled generic transport preceding the native word store so
the next #1196 candidate targets the remaining material Life cost.

Related: #1196

Generated with Codex (https://openai.com/codex/)

Co-Authored-By: Codex <codex@openai.com>
Skip live-pad registration for proven leaf JVM closures until a runtime
lexical-observation feature is enabled, while treating eval source as
observable in the safety analysis. Record the high-load selection evidence
and require a full portfolio before acceptance.

Generated with Codex (https://openai.com/codex/)

Co-Authored-By: Codex <codex@openai.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant