Branch: refs/heads/blead
Home: https://github.com/Perl/perl5
Commit: df1adf37680de9507dfbd9644011fb2cf8d3eb53
https://github.com/Perl/perl5/commit/df1adf37680de9507dfbd9644011fb2cf8d3eb53
Author: Lukas Mai <[email protected]>
Date: 2024-08-06 (Tue, 06 Aug 2024)
Changed paths:
M doio.c
Log Message:
-----------
do_open6: delete unreachable code
Commit: 471c834070f1d22c4f2dc1c9997a5adfd959f3e5
https://github.com/Perl/perl5/commit/471c834070f1d22c4f2dc1c9997a5adfd959f3e5
Author: Lukas Mai <[email protected]>
Date: 2024-08-06 (Tue, 06 Aug 2024)
Changed paths:
M doio.c
M op.c
M op.h
M t/io/perlio_open.t
Log Message:
-----------
open: only treat literal undef as special
Passing undef as the filename to open should create a temporary file.
Previously, this was implemented as a simple `if (arg == &PL_sv_undef)`
check. However, other operations (such as accessing non-existent
array/hash elements) also return `&PL_sv_undef` directly, which `open`
would then silently interpret as directions to create a temp file.
Solution: Check (at compile time) whether the filename argument is an
`OP_UNDEF`, and if so, set the `OPf_SPECIAL` flag on `OP_OPEN`. At
runtime, if `&PL_sv_undef` is passed but `OPf_SPECIAL` is not set,
replace it by a new mortal SV, which is treated as a regular filename
(that happens to be undef) by PerlIO.
(For runtime calls via `&CORE::open`, we cannot distinguish between
`undef` and `delete $hash{nosuchkey}` as arguments, so to keep the
`undef` case working, we always set `OPf_SPECIAL` in the generated core
sub for `open`.)
This functionality probably should be a private op flag (something like
`OPpUNDEF_MEANS_TEMPFILE`?), but as far as I can tell, all possible
private bits are already taken in `OP_OPEN`.
Fixes #22385.
Commit: bc9977150c2292e83f181383a5f7c455813b89b3
https://github.com/Perl/perl5/commit/bc9977150c2292e83f181383a5f7c455813b89b3
Author: Lukas Mai <[email protected]>
Date: 2024-08-06 (Tue, 06 Aug 2024)
Changed paths:
M pod/perldelta.pod
Log Message:
-----------
perldelta for #22385
Compare: https://github.com/Perl/perl5/compare/6532840837ae...bc9977150c22
To unsubscribe from these emails, change your notification settings at
https://github.com/Perl/perl5/settings/notifications