fix: avoid false DESTROY resurrection diagnostics - #1553
Merged
Merged
Conversation
fglock
marked this pull request as ready for review
September 28, 2026 08:58
Compare reblessing by Perl class name and emit resurrection diagnostics only during global destruction. Add lifecycle regression coverage for ordinary resurrection and same-class reblessing. Fixes #1515 Generated with [Codex](https://openai.com/codex) Co-Authored-By: Codex <noreply@openai.com>
Track top-level temporary drains separately from nested lexical cleanup so global-destruction diagnostics remain Perl-compatible without restoring the Class::Std::Fast false positives. Fixes #1515 Generated with [Codex](https://openai.com/codex) Co-Authored-By: Codex <noreply@openai.com>
fglock
force-pushed
the
fix/issue-1515-destroy-resurrection
branch
from
September 28, 2026 10:39
9541100 to
6bac193
Compare
Preserve a blessed lvalue referent's package prefix during stringification and trim unvivified sparse proxies when deleting a tied-array tail. Add focused regression coverage for both behaviors. Generated with Codex (https://openai.com/codex/) Co-Authored-By: Codex <noreply@openai.com>
Reserve one scheduling unit for ordinary tests when re/anyof.t runs under the standard five-job UAT budget. Add scheduler and sustained integration coverage proving that ordinary work is continuously refilled while anyof runs. Generated with Codex (https://openai.com/codex/) Co-Authored-By: Codex <noreply@openai.com>
fglock
force-pushed
the
fix/issue-1515-destroy-resurrection
branch
from
September 28, 2026 11:20
dd0136d to
6aaef7c
Compare
Keep the sparse-hole alias adjustment out of a one-element array, so the value returned by $#array++ can address the newly created final slot. Retain the established multi-slot sparse-hole behavior and cover both cases. Generated with Codex (https://openai.com/codex) Co-Authored-By: Codex <codex@openai.com>
Update the pat-capacity regression expectations for anyof's four-unit weight, which deliberately leaves one unit for an ordinary UAT test. 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
${^GLOBAL_PHASE} eq 'DESTRUCT')destroy_edge_cases.tcoverage for ordinary resurrection, true global-destruction resurrection, and same-class reblessingFixes #1515.
Validation
prove src/test/resources/unit/refcount/destroy_edge_cases.t(system Perl)timeout 120 ./jperl src/test/resources/unit/refcount/destroy_edge_cases.ttimeout 120 ./jperl --interpreter src/test/resources/unit/refcount/destroy_edge_cases.tJPERL_TEST_FILTER=destroy_edge_cases timeout 1200 nice -n 19 make test-unitnice -n 19 make check-linkstimeout 1200 nice -n 19 maket/commands/listdeps.treproduction on both backends: the Dist::Zilla Config::MVP objects spuriously resurrect during global destruction #1515 resurrection diagnostics are absent; it still has separately tracked$CORE::tryambiguity output.Generated with Codex