Skip to content

perf: establish benchmark authority for #1196 - #1295

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

perf: establish benchmark authority for #1196#1295
fglock wants to merge 24 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 and others added 5 commits September 8, 2026 12:05
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>
Capture source, artifact, runtime, host, and process CPU evidence in portfolio
results, and add a system-Perl workload schema contract test.

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

Co-Authored-By: Codex <codex@openai.com>
Allow portfolio measurements to capture and hash per-pair HotSpot flight
recordings for later allocation, GC, and JIT attribution.

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

Co-Authored-By: Codex <codex@openai.com>
Decode structured HotSpot recording events into GC pause and allocation metrics
for each PerlOnJava portfolio process.

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

Co-Authored-By: Codex <codex@openai.com>
Decode structured HotSpot recording events into GC pause and allocation metrics
for each PerlOnJava portfolio process.

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

Co-Authored-By: Codex <codex@openai.com>
@fglock fglock changed the title perf: establish benchmark authority for issue 1196 perf: establish benchmark authority for #1196 Sep 8, 2026
fglock and others added 19 commits September 8, 2026 14:22
Add a deterministic paired-ratio analyzer that prevents an inconclusive
portfolio from being represented as authoritative, and record the first
candidate's evidence and qualifying RuntimeCode.apply bottleneck.

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

Co-Authored-By: Codex <codex@openai.com>
Allow the portfolio analyzer to label a complete default-protocol run as
noisy-paired when explicitly requested. The mode can establish only a
confidence-bounded negative result; acceptance still requires stable evidence.

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

Co-Authored-By: Codex <codex@openai.com>
Keep protocol-inconclusive measurements non-authoritative even when paired
confidence bounds conclusively establish a negative result. Record the loaded
host evidence and prioritize the RuntimeCode.apply attribution phase.

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

Co-Authored-By: Codex <codex@openai.com>
Bound JFR recordings to prevent profile artifacts filling disk and record the
JFR, HotSpot, bytecode, and async-profiler evidence for RuntimeCode.apply.

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

Co-Authored-By: Codex <codex@openai.com>
Document the stable full portfolio baseline and its decisive failure of the
positive performance gates, establishing RuntimeCode.apply redesign as next.

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

Co-Authored-By: Codex <codex@openai.com>
Instrument the general shared and named call paths behind an opt-in JVM
property. The portfolio runner can capture compact inclusive/exclusive timing
and allocation metrics per operation for diagnostic ablations.

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

Co-Authored-By: Codex <codex@openai.com>
Lock down caller frames, normal and shared argument behavior, warning-scope
restoration, and nested-map returns before consolidating the general call path.

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

Co-Authored-By: Codex <codex@openai.com>
Share JVM callable dispatch and result coercion between the normal and shared
argument call paths while retaining their distinct caller-frame setup.

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

Co-Authored-By: Codex <codex@openai.com>
Record the protocol-inconclusive portfolio and post-candidate async-profiler
attribution for issue #1196, and direct Phase 3 toward a structural boundary
redesign.

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

Co-Authored-By: Codex <codex@openai.com>
Route normal and shared-argument general calls through one frame lifecycle,
while retaining explicit fresh-argument semantics. Cover exceptional unwind
cleanup and argument aliasing in the boundary regression test.

Refs #1196

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

Co-Authored-By: Codex <codex@openai.com>
Record the stable full portfolio and async-profiler attribution for the
general lifecycle candidate in issue #1196.

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

Co-Authored-By: Codex <codex@openai.com>
Avoid allocating empty lexical-pad and closure tracking collections for
ordinary RuntimeCode calls. Record the inconclusive portfolio result and
retain the change as an allocation reduction rather than a speed claim.

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

Co-Authored-By: Codex <codex@openai.com>
Avoid eager per-call copies of @_ while preserving entry-time @db::args,
reachability, and nested shared-argument semantics. Also retain exact
@db::args scalar aliases and cover shift-before-caller behavior.

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

Co-Authored-By: Codex <codex@openai.com>
Document the semantic coverage, compact profiling evidence, authoritative
portfolio result, and the next Phase 3 target for c32d45d.

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

Co-Authored-By: Codex <codex@openai.com>
Keep the general call-boundary closure stack position with a shared sentinel.
Replace it with a JvmClosureFrame only when a captured closure is created,
while retaining returned-closure protection and capture cleanup.

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

Co-Authored-By: Codex <codex@openai.com>
Document the semantic gate, compact JFR diagnostics, inconclusive default
portfolio, and Phase 3 decision point for commit 0596142.

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

Co-Authored-By: Codex <codex@openai.com>
Skip overload lookup and numeric coercion when both modulus operands already
have plain native-integer representations. Preserve the existing slow paths
for objects, strings, doubles, and wide integers.

Add system-Perl-validated coverage for result signs, large integers, the
numeric benchmark recurrence, and warning behavior.

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

Co-Authored-By: Codex <codex@openai.com>
Avoid global-wrapper and root-snapshot churn when implicit foreach replaces an
already-installed plain scalar alias, while preserving the full path for
references, localization, and rebinding.

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

Co-Authored-By: Codex <codex@openai.com>
Document the conclusive portfolio and profiling result for b5300e7.

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