perf: establish benchmark authority for #1196 - #1295
Open
fglock wants to merge 24 commits into
Open
Conversation
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>
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>
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.
Summary
Validation
make— passed before the final small runner metadata clarificationmake check-linksA final
makererun 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