WIP: align File::Temp stat modes and investigate goto sub cleanup - #1205
Merged
Conversation
fglock
added a commit
that referenced
this pull request
Sep 1, 2026
Document the remaining goto &sub lifecycle, argument ownership, and typeglob-slot work for PR #1205. Generated with Codex (https://openai.com/codex) Co-Authored-By: Codex <codex@openai.com>
fglock
added a commit
that referenced
this pull request
Sep 1, 2026
Document the remaining goto &sub lifecycle, argument ownership, and typeglob-slot work for PR #1205. Generated with Codex (https://openai.com/codex) Co-Authored-By: Codex <codex@openai.com>
fglock
force-pushed
the
fix/file-temp-stat-mode
branch
from
September 1, 2026 15:24
c870343 to
12315f2
Compare
fglock
added a commit
that referenced
this pull request
Sep 1, 2026
Resolve the PR #1205 CI timeout in goto_named_redefinition by reserving fresh symbol lookup for explicit named goto markers. Saved coderefs now retain their identity when a named stub is redefined, while the scoped source-frame cleanup continues to preserve destructor timing. Generated with Codex (https://openai.com/codex) Co-Authored-By: Codex <codex@openai.com>
fglock
added a commit
that referenced
this pull request
Sep 1, 2026
Record the passing immutable full gate and the remaining hosted CI/UAT steps for PR #1205's final tail-call parity candidate. Generated with Codex (https://openai.com/codex) Co-Authored-By: Codex <codex@openai.com>
Refresh the cached open-file metadata when the pathname still identifies the same inode. This makes stat(FILEHANDLE) reflect permissions applied after sysopen creation while preserving the original identity after rename and replacement. Add File::Temp regression coverage for matching handle and pathname modes. Generated with [Codex](https://openai.com/codex/) Co-Authored-By: Codex <codex@openai.com>
Preserve the in-progress named tail-call resolution and cleanup regression coverage discovered during UAT. The core goto-sub cases are not complete yet. Generated with [Codex](https://openai.com/codex/) Co-Authored-By: Codex <codex@openai.com>
Document the remaining goto &sub lifecycle, argument ownership, and typeglob-slot work for PR #1205. Generated with Codex (https://openai.com/codex) Co-Authored-By: Codex <codex@openai.com>
Preserve the existing handoff and implementation changes before further work. Generated with [Codex](https://openai.com/codex) Co-Authored-By: Codex <出>
Record deferred named-target lookup, live @_ handoff, and the remaining destructor-ordering and eval-string parity work for the next engineer. Validation: - make check-links (pass) - focused goto_tailcall_cleanup.t: system Perl, JVM, interpreter (pass) - goto-sub.t: JVM and interpreter retain assertions 7, 9, and 18 - bounded make gates compile but time out in parallel unit shards Generated with [Codex](https://openai.com/codex) Co-Authored-By: Codex <noreply@openai.com>
Resolve tail-call markers at the interpreter-backed eval boundary, preserve literal @_ through bytecode goto lowering, and dispatch top-level anonymous coderef calls. Add focused regressions for cleanup, eval, AUTOLOAD, sparse arguments, absent glob ARRAY slots, and anonymous coderef invocation. Validation: - system Perl, JVM, and interpreter focused regressions pass - goto-sub.t has no not ok lines in either backend - make check-links passes - full make rebuilt the shadow JAR but unrelated parallel shards timed out Generated with [Codex](https://openai.com/codex) Co-Authored-By: Codex <noreply@openai.com>
Drain only a retired tail-call frame's mortal entries, retaining deferred Sub::Quote metadata owned by its caller. Restore refcount-aware typeglob ARRAY and HASH slot detachment so saved slots survive undef and reinstallation. Validation: - system Perl focused regressions: 46 assertions pass - JVM and interpreter focused regressions: Sub::Quote, typeglob, and goto pass - make check-links passes - full make rebuilt the shadow JAR and passed Joni packaging, then its parallel local shards stalled without reporting a failure Generated with [Codex](https://openai.com/codex) Co-Authored-By: Codex <noreply@openai.com>
Resolve top-level tailcall markers before they escape as internal errors and preserve a named target in the final diagnostic. Document the remaining interpreter eval-boundary and destructor-ordering UAT work. Generated with Codex (https://openai.com/codex) Co-Authored-By: Codex <codex@openai.com>
Flush current-scope mortal entries when a tail-call replacement completes, and keep eval provenance in bytecode dynamic goto operations. This preserves eval diagnostics while allowing normal dynamic coderef tail calls from eval. Generated with Codex (https://openai.com/codex) Co-Authored-By: Codex <codex@openai.com>
Resolve the PR #1205 CI timeout in goto_named_redefinition by reserving fresh symbol lookup for explicit named goto markers. Saved coderefs now retain their identity when a named stub is redefined, while the scoped source-frame cleanup continues to preserve destructor timing. Generated with Codex (https://openai.com/codex) Co-Authored-By: Codex <codex@openai.com>
Limit completed tail-call cleanup to the marker-owned alias carrier. This preserves DBIC schema lifetimes through Try::Tiny dynamic goto wrappers while retaining destructor timing and saved-coderef identity. Generated with Codex (https://openai.com/codex) Co-Authored-By: Codex <codex@openai.com>
Record the passing immutable full gate and the remaining hosted CI/UAT steps for PR #1205's final tail-call parity candidate. Generated with Codex (https://openai.com/codex) Co-Authored-By: Codex <codex@openai.com>
Do not expose the retained POSIX descriptor-stat snapshot on Windows. Route filehandle stat through the existing BasicFileAttributes-backed path so File::Temp handles and their paths report matching device, inode, and mode fields. Generated with Codex (https://openai.com/codex) Co-Authored-By: Codex <codex@openai.com>
Capture BasicFileAttributes when opening a channel and use its file key to provide a stable Windows synthetic inode. This keeps unchanged handle/path stat values aligned while preserving fstat-like identity after a pathname is renamed and replaced. Generated with Codex (https://openai.com/codex) Co-Authored-By: Codex <codex@openai.com>
Resolve a Windows handle's mode through the original pathname only while its captured file identity still matches. This keeps File::Temp handle and path stat results at 0600 while retaining the handle's open-time inode after a rename and replacement. Generated with Codex (https://openai.com/codex) Co-Authored-By: Codex <codex@openai.com>
Record the green Ubuntu and Windows validation gates and leave final UAT on the exact published PR head as the remaining acceptance step. Generated with Codex (https://openai.com/codex) Co-Authored-By: Codex <codex@openai.com>
Record the reopened core regression and snapshot the selective ownership experiments before rebasing PR #1205 onto master. Generated with [OpenAI Codex](https://openai.com/codex/) Co-Authored-By: OpenAI Codex <codex@openai.com>
fglock
force-pushed
the
fix/file-temp-stat-mode
branch
from
September 2, 2026 11:39
9d1514a to
1e992a3
Compare
Preserve borrowed argument aliases while releasing an inline blessed temporary before its goto &sub replacement begins. Update the parity handoff with final regression and validation evidence. Generated with [OpenAI Codex](https://openai.com/codex/) Co-Authored-By: OpenAI Codex <codex@openai.com>
Generated with [Codex](https://openai.com/codex) Co-Authored-By: Codex <158243242+openai-codex[bot]@users.noreply.github.com>
Route final uncaught Perl diagnostics through the active Perl STDERR handle, so closing STDERR suppresses a bare die as it does in standard Perl. Add a subprocess regression covering the behavior on both execution backends. Generated with [Codex](https://openai.com/codex) Co-Authored-By: Codex <158243242+openai-codex[bot]@users.noreply.github.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
stat(FILEHANDLE)metadata when its path still names the opened inode.Closes #1201.
Validation
make— passmake check-links— passsrc/test/resources/unit/file_temp_stat_mode.t— pass on JVM and interpretersrc/test/resources/unit/stat_filehandle_after_rename.t— pass on JVM and interpreter