CARVIEW |
Select Language
HTTP/2 302
server: nginx
date: Mon, 28 Jul 2025 09:38:14 GMT
content-type: text/plain; charset=utf-8
content-length: 0
x-archive-redirect-reason: found capture at 20230218052541
location: https://web.archive.org/web/20230218052541/https://perl5.git.perl.org/perl5.git/log
server-timing: captures_list;dur=0.458359, exclusion.robots;dur=0.016301, exclusion.robots.policy;dur=0.007966, esindex;dur=0.010181, cdx.remote;dur=65.446557, LoadShardBlock;dur=142.259928, PetaboxLoader3.datanode;dur=69.746438, PetaboxLoader3.resolve;dur=44.388327
x-app-server: wwwb-app204
x-ts: 302
x-tr: 239
server-timing: TR;dur=0,Tw;dur=0,Tc;dur=1
set-cookie: SERVER=wwwb-app204; path=/
x-location: All
x-rl: 0
x-na: 0
x-page-cache: MISS
server-timing: MISS
x-nid: DigitalOcean
referrer-policy: no-referrer-when-downgrade
permissions-policy: interest-cohort=()
HTTP/2 200
server: nginx
date: Mon, 28 Jul 2025 09:38:15 GMT
content-type: text/html; charset=utf-8
x-archive-orig-date: Sat, 18 Feb 2023 05:25:41 GMT
x-archive-orig-server: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips
x-archive-orig-connection: close
x-archive-orig-transfer-encoding: chunked
x-archive-guessed-content-type: text/html
x-archive-guessed-charset: utf-8
memento-datetime: Sat, 18 Feb 2023 05:25:41 GMT
link: ; rel="original", ; rel="timemap"; type="application/link-format", ; rel="timegate", ; rel="first memento"; datetime="Fri, 26 Jun 2020 23:45:26 GMT", ; rel="prev memento"; datetime="Mon, 28 Nov 2022 09:25:50 GMT", ; rel="memento"; datetime="Sat, 18 Feb 2023 05:25:41 GMT", ; rel="next memento"; datetime="Wed, 27 Nov 2024 05:42:01 GMT", ; rel="last memento"; datetime="Wed, 27 Nov 2024 05:42:01 GMT"
content-security-policy: default-src 'self' 'unsafe-eval' 'unsafe-inline' data: blob: archive.org web.archive.org web-static.archive.org wayback-api.archive.org athena.archive.org analytics.archive.org pragma.archivelab.org wwwb-events.archive.org
x-archive-src: MEGA002-20230218042846-crawl900/MEGA002-20230218051635-00023.warc.gz
server-timing: captures_list;dur=0.475958, exclusion.robots;dur=0.014587, exclusion.robots.policy;dur=0.007122, esindex;dur=0.010545, cdx.remote;dur=61.703077, LoadShardBlock;dur=384.508951, PetaboxLoader3.datanode;dur=149.511966, PetaboxLoader3.resolve;dur=260.590298, load_resource;dur=205.610203
x-app-server: wwwb-app204
x-ts: 200
x-tr: 828
server-timing: TR;dur=0,Tw;dur=0,Tc;dur=1
x-location: All
x-rl: 0
x-na: 0
x-page-cache: MISS
server-timing: MISS
x-nid: DigitalOcean
referrer-policy: no-referrer-when-downgrade
permissions-policy: interest-cohort=()
content-encoding: gzip
perl5.git.perl.org Git - perl5.git/log
This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Fix a bunch of memory leaks in feature 'class'
* Free the attrlist OP fragment when applying class or field attribute
* Free the OP_PADxV ops we only use to get the pad index out for
fieldvar declarations
* Add a refcount to the `struct padname_fieldinfo` to keep track of its
capture in inner closures so it can be freed at the right time
* Free the class-related fields out of HvAUX
* Free the actual ObjectFIELDS() array when destroying an object instance
* Dup fieldinfo->paramname at sv_dup() time / free it at free time
* Free the attrlist OP fragment when applying class or field attribute
* Free the OP_PADxV ops we only use to get the pad index out for
fieldvar declarations
* Add a refcount to the `struct padname_fieldinfo` to keep track of its
capture in inner closures so it can be freed at the right time
* Free the class-related fields out of HvAUX
* Free the actual ObjectFIELDS() array when destroying an object instance
* Dup fieldinfo->paramname at sv_dup() time / free it at free time
[pod] release_managers_guide.pod: spelling fix
1 letter: "as long as"
1 letter: "as long as"
t/lib/croak/toke - hide conflict markers in test code
This uses the previous two patches to add a NOTE comment
to the test for conflict markers explaining that we are using
the obfu style markers that run_multiple_progs() supports (now),
so that picky tools don't think we have conflict markers in
our files.
This uses the previous two patches to add a NOTE comment
to the test for conflict markers explaining that we are using
the obfu style markers that run_multiple_progs() supports (now),
so that picky tools don't think we have conflict markers in
our files.
t/test.pl - support obfu conflict markers for code via run_multiple_progs()
This was we dont have to have literal conflict markers in test code
that is executed via run_multiple_progs(). For instance, t/lib/croak/toke
patch for that will follow.
This was we dont have to have literal conflict markers in test code
that is executed via run_multiple_progs(). For instance, t/lib/croak/toke
patch for that will follow.
t/test.pl - support NOTE comments in code for run_multiple_progs()
These comments will be autoremoved from the code before it is executed.
*Must* start the line, and have exactly one space between the comment
char and the NOTE string, which must be uppercased.
This will be used in the following patch.
These comments will be autoremoved from the code before it is executed.
*Must* start the line, and have exactly one space between the comment
char and the NOTE string, which must be uppercased.
This will be used in the following patch.
Calculate conflict markers instead of hardcoding
It turns out that some tooling (Game of Trees) has special handling for
conflict markers and will continually mark files that have them.
Since the test doesn't actually need them to be expanded,
calculate them instead to not trigger the detection.
It turns out that some tooling (Game of Trees) has special handling for
conflict markers and will continually mark files that have them.
Since the test doesn't actually need them to be expanded,
calculate them instead to not trigger the detection.
Delete dangling sv_catxmlpvs definition
This was part of MAD, which was removed in 2014 (commit
b5bbe64ad2ec51417ef02ac52304ed45fe37be3f), but the wrapper macro was
missed.
This was part of MAD, which was removed in 2014 (commit
b5bbe64ad2ec51417ef02ac52304ed45fe37be3f), but the wrapper macro was
missed.
experimental: sync with CPAN version 0.031
From Changes:
- Fix the name of the extra_paired_delimiters feature (previously
mis-documented as extra_paired_delims)
- Added "stable.pm", which acts like experimental.pm only for features which
have been marked non-experimental in their current form, in later version of
perl.
From Changes:
- Fix the name of the extra_paired_delimiters feature (previously
mis-documented as extra_paired_delims)
- Added "stable.pm", which acts like experimental.pm only for features which
have been marked non-experimental in their current form, in later version of
perl.
Update VERSION in Maintainers.pl
For some reason this didn't happen the last time we synched.
For some reason this didn't happen the last time we synched.
IO-Compress: sync with CPAN version 2.204
From Changes:
* Update Gzip.pm
https://github.com/pmqs/IO-Compress/pull/49
* Allow Z_NULL
https://github.com/pmqs/Compress-Raw-Zlib/issues/17
From Changes:
* Update Gzip.pm
https://github.com/pmqs/IO-Compress/pull/49
* Allow Z_NULL
https://github.com/pmqs/Compress-Raw-Zlib/issues/17
MANIFEST: Correct spelling in 3 descriptions
Perl_re_op_compile: additional parens to satisfy Coverity
document deprecation of ' as the package separator
Configure: don't probe for the malloc()/free() return type
We require a C99 compiler, or in the case that led to this commit, a
C++ compiler, and for those the malloc() and free() return types are
well defined.
This probe broke on Solaris when building with g++.
Unlike glibc, the libc headers on Solaris, when building using a C++
compiler, define the stdlib.h functions within the std:: namespace,
then imports those names into the top level namespace with 'using
std::malloc'.
This conflicts with the declarations used in the probe, causing the
probe to fail to build, despite malloc() actually returning a void *.
Since these two functions have well defined return types according to
the standard, assume their return values match.
Configure can still be invoked with different definitions for
malloctype and freetype, or hints can override them, so someone on a
non-standard system can at least get past this if they really need to
(such a system will likely not build perl anyway.)
We require a C99 compiler, or in the case that led to this commit, a
C++ compiler, and for those the malloc() and free() return types are
well defined.
This probe broke on Solaris when building with g++.
Unlike glibc, the libc headers on Solaris, when building using a C++
compiler, define the stdlib.h functions within the std:: namespace,
then imports those names into the top level namespace with 'using
std::malloc'.
This conflicts with the declarations used in the probe, causing the
probe to fail to build, despite malloc() actually returning a void *.
Since these two functions have well defined return types according to
the standard, assume their return values match.
Configure can still be invoked with different definitions for
malloctype and freetype, or hints can override them, so someone on a
non-standard system can at least get past this if they really need to
(such a system will likely not build perl anyway.)
Perl_leave_adjust_stacks: don't make mortal copies of SvIMMORTAL SVs
SvIMMORTAL SVs cannot be prematurely freed and so there is no need
to create a mortal copy of them. They also will not leak, so there
is no need to add the SV* to the temp stack.
SvIMMORTAL SVs cannot be prematurely freed and so there is no need
to create a mortal copy of them. They also will not leak, so there
is no need to add the SV* to the temp stack.
Unit-test classes and instances with threads
Set the CvREFCOUNTED_ANYSV flag on injected constructor so we sv_dup() the stash HV*
Ensure that sv_dup() handles new class structures
It needs to:
* clone SVt_PVOBJ instances
* clone the xhv_class_* fields of an SVt_PVHV
* clone the PadnameFIELDINFO structure of a padname
It needs to:
* clone SVt_PVOBJ instances
* clone the xhv_class_* fields of an SVt_PVHV
* clone the PadnameFIELDINFO structure of a padname
Should set the SVphv_HasAUX flag explicitly; it isn't necessarily SvOOK any more
Refactor out the part of sv_dup that clones the HvAUX structure into its own helper function
Provide padname_dup_inc() and padnamelist_dup_inc()
Move the macros which wrap sv_dup_inc() into sv.h
sv.c: fix compilation with g++ <= 7
This compiler predates the addition of designated initializers to the
C++ standard, so it's not surprising its implementation isn't fully
compliant.
Omitting a field in a designated initializer list causes the following
error:
sv.c: In function ‘void Perl_sv_upgrade(SV*, svtype)’:
sv.c:1088:13: sorry, unimplemented: non-trivial designated initializers
not supported
This compiler predates the addition of designated initializers to the
C++ standard, so it's not surprising its implementation isn't fully
compliant.
Omitting a field in a designated initializer list causes the following
error:
sv.c: In function ‘void Perl_sv_upgrade(SV*, svtype)’:
sv.c:1088:13: sorry, unimplemented: non-trivial designated initializers
not supported
cflags.SH - add -Wno-use-after-free on gcc 12/13
This works around an overly eager/buggy use-after-free warning detection
in gcc 12/13, which gets upset if we copy a pointer into a UV and then
realloc the pointer and then use the UV value for diagnostics. Since the
copied value is no longer a pointer gcc should not warn, as we are not
"using" the pointer, just printing it out as a number. The gcc folks
have been informed. See:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108115
Fixes #20601.
This works around an overly eager/buggy use-after-free warning detection
in gcc 12/13, which gets upset if we copy a pointer into a UV and then
realloc the pointer and then use the UV value for diagnostics. Since the
copied value is no longer a pointer gcc should not warn, as we are not
"using" the pointer, just printing it out as a number. The gcc folks
have been informed. See:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108115
Fixes #20601.
Must call Perl_croak() on the proto_perl, not the target perl, when failing during sv_inc()
perlvar.pod - add "Scoping Rules of Regex Variables" section
This section is used to document the majority of the regex
variables, and previous language referring to them as "dynamically
scoped" has been changed or simplified and a link to the new
section provided to centralize the explanation.
Strictly speaking $1 is globally scoped, but the data it access
is dynamically scoped such that successful matches behave as
though they localize a regex match state variable. (Maybe one
day we will actually have such a variable exposed to the user.)
This patch adds links to the relevant docs in perlsyn and perlvar
to various places where it seemed appropriate, and also cleans up
the wording for most cases to be similar or identical across all
uses. It also cleans up a bit of related language in nearby paragraphs
where it seemed to improve the readability of the docs.
It also replaces the older kind of confusing example code for
understanding the behavior and documents that "goto LABEL" does
not play nicely with the dynamic scoping.
This fixes Github Issue #899.
This section is used to document the majority of the regex
variables, and previous language referring to them as "dynamically
scoped" has been changed or simplified and a link to the new
section provided to centralize the explanation.
Strictly speaking $1 is globally scoped, but the data it access
is dynamically scoped such that successful matches behave as
though they localize a regex match state variable. (Maybe one
day we will actually have such a variable exposed to the user.)
This patch adds links to the relevant docs in perlsyn and perlvar
to various places where it seemed appropriate, and also cleans up
the wording for most cases to be similar or identical across all
uses. It also cleans up a bit of related language in nearby paragraphs
where it seemed to improve the readability of the docs.
It also replaces the older kind of confusing example code for
understanding the behavior and documents that "goto LABEL" does
not play nicely with the dynamic scoping.
This fixes Github Issue #899.
S_do_chomp: remove unused svrecode SV
Perldelta for new 'class' feature
win32: do not allow seekdir() out of bounds
Previously you could use seekdir/readdir on Windows to examine
the memory space of the process until this triggered SIGSEGV.
Adds a new test file t/win32/seekdir.t
[Note: patch fixup and squash by Yves]
Previously you could use seekdir/readdir on Windows to examine
the memory space of the process until this triggered SIGSEGV.
Adds a new test file t/win32/seekdir.t
[Note: patch fixup and squash by Yves]
Merge branch 'bisect-runner-tweaks' into blead
Merging this as a --no-ff merge at the request of J. Keenan
who is the bisect master these days. See Github PR #20016.
Merging this as a --no-ff merge at the request of J. Keenan
who is the bisect master these days. See Github PR #20016.
bisect-runner.pl should supply a prototype for Gv_AMupdate
This was missing prior to perl-5.001
This was missing prior to perl-5.001
bisect-runner.pl must patch dl_dyld.xs to eliminate the PREINIT section
*Really* early xsubpp doesn't understand this, and it turns out to be trivial
to eliminate it.
*Really* early xsubpp doesn't understand this, and it turns out to be trivial
to eliminate it.
bisect-runner.pl shouldn't generate undef warnings from internal patches
The regex wasn't handling context diffs, and two of the unified diffs were
generated with differing filenames and trailing timestamp text that it wasn't
robust against.
The regex wasn't handling context diffs, and two of the unified diffs were
generated with differing filenames and trailing timestamp text that it wasn't
robust against.
bisect-runner.pl must patch in the size of PL_uuemap[]
bisect-runner.pl must ensure that perl.h includes fcntl.h and sys/file.h
The C code needs prototypes from these headers.
The C code needs prototypes from these headers.
bisect-runner.pl must ensure prototypes exist for htovs() etc
These fallback functions are defined in util.c, but initially did not have
any prototypes in a header.
These fallback functions are defined in util.c, but initially did not have
any prototypes in a header.
bisect-runner.pl needs to fix a shell heredoc error in Makefile.SH
Else some development versions of 5.003 mysteriously won't build.
These versions aren't important in themselves, but their failure makes it
hard to bisect real problems.
Else some development versions of 5.003 mysteriously won't build.
These versions aren't important in themselves, but their failure makes it
hard to bisect real problems.
bisect-runner.pl needs to ensure a prototype for __getBerkeleyDBInfo()
Without this some early versions of DB_File won't build on current macOS,
and any other platform where the C compiler is agressive about prototypes.
This commit refactors code for an existing DB_File patch to split a compound
if statement into two ifs.
Without this some early versions of DB_File won't build on current macOS,
and any other platform where the C compiler is agressive about prototypes.
This commit refactors code for an existing DB_File patch to split a compound
if statement into two ifs.
bisect-runner.pl needs to set DYLD_LIBRARY_PATH on macOS
El Capitan (OS X 10.11) (and later) strip DYLD_LIBRARY_PATH from the
environment of /bin/sh, hence setting the existing code that sets this in
%ENV assuming that it is visible to the invoked process no longer works. We
have to be explicit in every invocation, as part of the command that the
shell itself is processing.
This hurts us because in 5.8.0 and earlier the hints default macOS to build
a shared perl library.
El Capitan (OS X 10.11) (and later) strip DYLD_LIBRARY_PATH from the
environment of /bin/sh, hence setting the existing code that sets this in
%ENV assuming that it is visible to the invoked process no longer works. We
have to be explicit in every invocation, as part of the command that the
shell itself is processing.
This hurts us because in 5.8.0 and earlier the hints default macOS to build
a shared perl library.
bisect-runner.pl needs to force a -flat_namespace before v5.10.0
The hints for macOS set -flat_namespace conditionally based on darwin
version, so that newer OSes would default to the native two level namespace.
However, the build of miniperl was relying on a flat namespace prior to a
refactoring during the 5.9.x series. Hence we need to force this linker flag
when building versions before this on current macOS versions.
The hints for macOS set -flat_namespace conditionally based on darwin
version, so that newer OSes would default to the native two level namespace.
However, the build of miniperl was relying on a flat namespace prior to a
refactoring during the 5.9.x series. Hence we need to force this linker flag
when building versions before this on current macOS versions.
bisect-runner.pl needs a probe for setpgrp with function prototypes
Else it can't build 5.003 or 5.002 on macOS.
Else it can't build 5.003 or 5.002 on macOS.
bisect-runner.pl must include more headers in Configure probes
Without these various probes rely on implicit function declarations, typically
for exit() or printf(). macOS now forbids implicit function declarations,
which causes these probes to become compile time errors and hence "fail".
This results in Configure assuming that many symbols are missing, and the
build fails where it should pass.
Without these various probes rely on implicit function declarations, typically
for exit() or printf(). macOS now forbids implicit function declarations,
which causes these probes to become compile time errors and hence "fail".
This results in Configure assuming that many symbols are missing, and the
build fails where it should pass.
bisect-runner.pl needs to use the current approach for symbol probing
The older version assumed an explicit prototype for printf(), which doesn't
fly on arm64 macOS. It might not be robust on some other platforms too,
whereas the "current" (ie 2003 onward) approach still works everywhere.
Change edit_file() to only localise $/ to undef during the read, so that it's
restored to its default ("\n") when the callback is invoked. Without this,
`chomp` "doesn't work" (as expected) in the callback.
The older version assumed an explicit prototype for printf(), which doesn't
fly on arm64 macOS. It might not be robust on some other platforms too,
whereas the "current" (ie 2003 onward) approach still works everywhere.
Change edit_file() to only localise $/ to undef during the read, so that it's
restored to its default ("\n") when the callback is invoked. Without this,
`chomp` "doesn't work" (as expected) in the callback.
bisect-runner.pl needs to avoid using nm on darwin
Earlier versions of the hints defaulted to using nm, because on older versions
of OS X (as was) it worked.
It also needs to patch the hints file to force d_stdstdio to "undef".
Without this, a build with "d_faststdio" defined (or implicit) will fail badly
on current macOS, such as the perl-5.8.0 tag.
Earlier versions of the hints defaulted to using nm, because on older versions
of OS X (as was) it worked.
It also needs to patch the hints file to force d_stdstdio to "undef".
Without this, a build with "d_faststdio" defined (or implicit) will fail badly
on current macOS, such as the perl-5.8.0 tag.
bisect-runner.pl should remove all the "complications" about <signal.h>
bisect-runner.pl needs to patch a build bug in Digest::MD5
This failure gets in the way of bisecting other problems.
This failure gets in the way of bisecting other problems.
bisect-runner.pl must expose a prototype for was_lvalue_sub to List::Util
This problem was rapidly diagnosed and fixed at the time, but we need to fix
the few commits where the problem exists, else we can't bisect other build
failures.
This problem was rapidly diagnosed and fixed at the time, but we need to fix
the few commits where the problem exists, else we can't bisect other build
failures.
bisect-runner.pl must stop Configure looping on "does not exit"
This only affects a small range of commits in development releases, but
without this change they can loop infinitely, rather than correctly skipping
(or failing a build test). An infinite loop (with terminal output) is
extremely unhelpful.
This only affects a small range of commits in development releases, but
without this change they can loop infinitely, rather than correctly skipping
(or failing a build test). An infinite loop (with terminal output) is
extremely unhelpful.
bisect-runner.pl must patch Configure to avoid myread looping infinitely
Configure can get stuck and ask questions for which it needs a valid answer
before it can continue. As-is, if you redirect stdin from /dev/null (or close
the file descriptor) it will (effectively) loop infinitely repeating the same
question, because it doesn't like empty string as an answer. Worse - it keeps
repeating the question to stdout - eg 'Where is your C library?'
Rather than attempting to patch the shell script to detect errors on read
(because they only matter the *second* time round the loop, *and* wouldn't
handle the /dev/null case), it's easier to patch the relevant loop so that
it will abort after too many loop iterations.
Configure can get stuck and ask questions for which it needs a valid answer
before it can continue. As-is, if you redirect stdin from /dev/null (or close
the file descriptor) it will (effectively) loop infinitely repeating the same
question, because it doesn't like empty string as an answer. Worse - it keeps
repeating the question to stdout - eg 'Where is your C library?'
Rather than attempting to patch the shell script to detect errors on read
(because they only matter the *second* time round the loop, *and* wouldn't
handle the /dev/null case), it's easier to patch the relevant loop so that
it will abort after too many loop iterations.
bisect-runner.pl must patch darwin hints to handle macOS 11, 12 etc
The version number moved beyond 10, and older hints files were not ready for
this.
The version number moved beyond 10, and older hints files were not ready for
this.
bisect-runner.pl should "fail" if config.sh is missing with --test-build
Previously it would skip, which meant you couldn't bisect the cause of
some ./Configure failures, which rather defeats the intent of --test-build.
Previously it would skip, which meant you couldn't bisect the cause of
some ./Configure failures, which rather defeats the intent of --test-build.
bisect-runner.pl needs to disable Configure's use of nm before 5.004
Strictly we only need this for glibc systems, but it doesn't seem terrible
to do it everywhere.
Strictly we only need this for glibc systems, but it doesn't seem terrible
to do it everywhere.
bisect-runner.pl must ensure that safemalloc etc have prototypes
Else they are implicitly assumed to return int, which can truncate addresses
on systems where pointers are larger than ints (such as 64 bit systems).
Else they are implicitly assumed to return int, which can truncate addresses
on systems where pointers are larger than ints (such as 64 bit systems).
bisect-runner.pl must patch Configure's glibc detection for pre-5.005
bisect-runner.pl should patch Errno 1.111 and earlier for gcc
Without this fix, Errno.pm fails to build.
Without this fix, Errno.pm fails to build.
bisect-runner.pl should patch Errno 1.22 and earlier for gcc 5 and later
Without this fix, the generated Errno.pm will contain no entries, which
whilst syntactically valid causes much confusion later on when the bisect
run gives bogus results due to non-buggy module code unrelated to the test
case failing because %! is wrong.
Without this fix, the generated Errno.pm will contain no entries, which
whilst syntactically valid causes much confusion later on when the bisect
run gives bogus results due to non-buggy module code unrelated to the test
case failing because %! is wrong.
Perl_sv_clear: faster treatment of bodyless NVs
The existing fast path for SVt_NULL/SVt_IV can also be used for bodyless
SVt_NVs.
The existing fast path for SVt_NULL/SVt_IV can also be used for bodyless
SVt_NVs.
Re-work wording
Move talk of `$_` above example to be consistent with other funcs
Add examples and clarify wording
perl.h: Make sure PERL_IMPLICIT_CONTEXT doesn't come back
This is an obsolete name, retained for back compat with cpan. Make sure
the core doesn't have it defined.
This is an obsolete name, retained for back compat with cpan. Make sure
the core doesn't have it defined.
pp_ctl.c: Tighten scope of mutex being locked.
Now that snprintf properly handles locales (commit
a683fa5b7e816ae5c10d246c9a0b1f3ea743274b), the call to it here doesn't
have to be locked, so the scope of the remaining mutex lock can be made
smaller.
Now that snprintf properly handles locales (commit
a683fa5b7e816ae5c10d246c9a0b1f3ea743274b), the call to it here doesn't
have to be locked, so the scope of the remaining mutex lock can be made
smaller.
pod/perlre.pod - document /x mode does not allow spaces in multi-char metapatterns
Multi-character metapatterns like (?i: ... ) are not affected by
/x, it cannot be spelled ( ? i : ... ).
Multi-character metapatterns like (?i: ... ) are not affected by
/x, it cannot be spelled ( ? i : ... ).
pp.c: Need to lock only NUMERIC category
This was doing a general locale lock, but only LC_NUMERIC is needed, and
a future commit will want to know that it is specifically LC_NUMERIC
that is affected.
This was doing a general locale lock, but only LC_NUMERIC is needed, and
a future commit will want to know that it is specifically LC_NUMERIC
that is affected.
toke.c - use SvREFCNT_dec() rather than calling sv_free()
sv_free() is a function call just to then do SvREFCNT_dec() anyway.
SvREFCNT_dec is a macro that just calls the simple inline function
Perl_SvREFCNT_dec(). In places where the SV being operated on has
been newly creted, we can use ASSUME() statements to help the
compiler to eliminate some unnecessary branches in this function.
sv_free() is a function call just to then do SvREFCNT_dec() anyway.
SvREFCNT_dec is a macro that just calls the simple inline function
Perl_SvREFCNT_dec(). In places where the SV being operated on has
been newly creted, we can use ASSUME() statements to help the
compiler to eliminate some unnecessary branches in this function.
sv_clear apidoc: prefer SvREFCNT_dec to sv_free()
As per the old test, SvREFCNT_dec used to wrap sv_free, which then
calls the Perl_SvREFCNT_dec function. Nowadays, SvREFCNT_dec calls
Perl_SvREFCNT_dec directly, and the latter is a very small inline
function. Using the macro probably should be the go-to now.
As per the old test, SvREFCNT_dec used to wrap sv_free, which then
calls the Perl_SvREFCNT_dec function. Nowadays, SvREFCNT_dec calls
Perl_SvREFCNT_dec directly, and the latter is a very small inline
function. Using the macro probably should be the go-to now.
snprintf() calls need to have proper radix
Calls to libc snprintf() were neglected to be changed when perl was
fixed to change the radix character to the proper one based on whether
or not 'use locale' is in effect. Perl-level code is unaffected, but
core and XS code is.
This commit changes to wrap snprintf() calls with the macros designed
for the purpose, long used for similar situations elsewhere in the code.
Doing this requires the thread context. I achieved this in a few places
by a dTHX, instead of assuming a caller would have the context already
available, and adding a pTHX_ parameter. I tried doing it the other
way, and got a few breakages in our test suite. Formatting already
requires significant CPU time, so this addition should just be in the
noise
This bug was found by new tests that will be added in a future commit.
Calls to libc snprintf() were neglected to be changed when perl was
fixed to change the radix character to the proper one based on whether
or not 'use locale' is in effect. Perl-level code is unaffected, but
core and XS code is.
This commit changes to wrap snprintf() calls with the macros designed
for the purpose, long used for similar situations elsewhere in the code.
Doing this requires the thread context. I achieved this in a few places
by a dTHX, instead of assuming a caller would have the context already
available, and adding a pTHX_ parameter. I tried doing it the other
way, and got a few breakages in our test suite. Formatting already
requires significant CPU time, so this addition should just be in the
noise
This bug was found by new tests that will be added in a future commit.
util.c: White-space only
Properly indent some preprocessor directives
Properly indent some preprocessor directives
sv.h types - tidy trailing sentences
sv.h - Update type comments to reflect implementation realities
cpan/Term-Cap - update to version 1.18
1.18: Fri 10 Feb 12:43:07 GMT 2023
- use isnt rather than isn't (Nicolas Mendoza)
- Prevent unintended parse of ':' in TERMPATH (David Farrell)
- Various code cleanups (Arkadiy Voronov)
- Remove indirect method calls from documentation (Dan Book)
Emails redacted in the above. See Term-Cap Changes file for
actual entry.
1.18: Fri 10 Feb 12:43:07 GMT 2023
- use isnt rather than isn't (Nicolas Mendoza)
- Prevent unintended parse of ':' in TERMPATH (David Farrell)
- Various code cleanups (Arkadiy Voronov)
- Remove indirect method calls from documentation (Dan Book)
Emails redacted in the above. See Term-Cap Changes file for
actual entry.
Merge stage 3 of 'feature-class' into blead
Implements field initializer expressions and `:param` attributes on
fields.
Implements field initializer expressions and `:param` attributes on
fields.
Many documentation updates for new class syntax
* perlclass.pod: Document field initialising expressions and :param attribute
* perlclass.pod: Add a TODO section to explain what more is to be added
* Added pod/perlclassguts.pod which contains internal implementation notes and
details about how the class system works.
* perlclass.pod: Document field initialising expressions and :param attribute
* perlclass.pod: Add a TODO section to explain what more is to be added
* Added pod/perlclassguts.pod which contains internal implementation notes and
details about how the class system works.
Field :param attributes, //= and ||= default assignments
Use field initialiser expressions in unit tests to avoid some ADJUST blocks
Parse an optional attribute list for fields; currently no attributes are defined
Accept field VAR = EXPR on field vars
Allows non-constant expressions with side effects. Evaluated during the
constructor of each instance.
Allows non-constant expressions with side effects. Evaluated during the
constructor of each instance.
Create an initfields CV in each class rather than a static function, so eventually it can store OP fragments
Merge stage 2 of 'feature-class' into blead
Implements the `:isa` class attribute and the ability to create
subclasses.
Implements the `:isa` class attribute and the ability to create
subclasses.
perlclass: work out the initial document structure
Refuse to create a class if its package already contains a non-empty @ISA array
Make @ISA a readonly array on class stashes so user code can't fiddle with it and break stuff
Initial implementation of subclassing, via :isa class attribute
Initial attack at parsing attribute syntax for class blocks; though no attrs are yet defined
Merge stage 1 of 'feature-class' into blead
Implements the most basic `class`, `field` and `method` keywords.
Implements the most basic `class`, `field` and `method` keywords.
Define the concept of a suspended compcv
Initial attack at pod/perlclass.pod
Disallow bless hackery around classes and instances
Create a specific SV type for object instances
Initial attack at basic 'class' feature
Adds a new experimental warning, feature, keywords and enough parsing to
implement basic classes with an empty `new` constructor method.
Inject a $self lexical into method bodies; populate it with the object instance, suitably shifted
Creates a new OP_METHSTART opcode to perform method setup
Define an aux flag to remark which stashes are classes
Basic implementation of fields.
Basic anonymous methods.
Adds a new experimental warning, feature, keywords and enough parsing to
implement basic classes with an empty `new` constructor method.
Inject a $self lexical into method bodies; populate it with the object instance, suitably shifted
Creates a new OP_METHSTART opcode to perform method setup
Define an aux flag to remark which stashes are classes
Basic implementation of fields.
Basic anonymous methods.
File-Find - set up tempdir early and test that we can chdir to it.
If for some reason we die very early in the test script the cleanup()
function would get called before we had set up $test_root_dir or
$test_temp_dir. This then lead to further errors being generated by trying
to chdir into an undefined directory. This patch ensures that the various
setup behavior worked correctly, and that if it does not that we have some
clear diagnostics about it.
If for some reason we die very early in the test script the cleanup()
function would get called before we had set up $test_root_dir or
$test_temp_dir. This then lead to further errors being generated by trying
to chdir into an undefined directory. This patch ensures that the various
setup behavior worked correctly, and that if it does not that we have some
clear diagnostics about it.
Mark dowantarray() as deprecated
This will make uses of the also-deprecated GIMME macro emit a
compile-time warning.
This will make uses of the also-deprecated GIMME macro emit a
compile-time warning.
Compress-Raw-Bzip2 - update to v2.204
2.204 8 February 2023
* Cast isdigit argument as unsigned char
https://github.com/pmqs/Compress-Raw-Bzip2/pull/9
967696b4fa91768fa4d46163f46982bc063a175e
* Use GIMME_V instead of GIMME
https://github.com/pmqs/Compress-Raw-Bzip2/pull/8
54e3c1e18b61f0892056925240bbc80f76e2f038
* typos
12496575c17829506cc9c9fa325e31aab1fcd1c7
* Trim trailing spaces from bzip2-src
https://github.com/pmqs/Compress-Raw-Bzip2/pull/7
8728d405e8d805cb88685b82a5e5493b62288046
2.204 8 February 2023
* Cast isdigit argument as unsigned char
https://github.com/pmqs/Compress-Raw-Bzip2/pull/9
967696b4fa91768fa4d46163f46982bc063a175e
* Use GIMME_V instead of GIMME
https://github.com/pmqs/Compress-Raw-Bzip2/pull/8
54e3c1e18b61f0892056925240bbc80f76e2f038
* typos
12496575c17829506cc9c9fa325e31aab1fcd1c7
* Trim trailing spaces from bzip2-src
https://github.com/pmqs/Compress-Raw-Bzip2/pull/7
8728d405e8d805cb88685b82a5e5493b62288046
Update Compress-Raw-Zlib to v2.204
2.204 8 February 2023
* Update zlib sources to zlib-1.2.13
https://github.com/pmqs/Compress-Raw-Zlib/issues/20
eafe29c85437582d16c6bda16449ea2dea534266
* Use GIMME_V instead of the deprecated GIMME
https://github.com/pmqs/Compress-Raw-Zlib/pull/19
7a7b045d9d8729a6c82a78039dab5decf7e65907
2.204 8 February 2023
* Update zlib sources to zlib-1.2.13
https://github.com/pmqs/Compress-Raw-Zlib/issues/20
eafe29c85437582d16c6bda16449ea2dea534266
* Use GIMME_V instead of the deprecated GIMME
https://github.com/pmqs/Compress-Raw-Zlib/pull/19
7a7b045d9d8729a6c82a78039dab5decf7e65907
Don't define Perl_reg_numbered_buff_fetch_flags in extension
Doing so results in a multiply-defined symbol error at link time
with a strict linker.
Doing so results in a multiply-defined symbol error at link time
with a strict linker.
Fix pv_escape() param discrepancy embed.fnc, source
embed.fnc declared a STRLEN parameter as const, but it isn't
embed.fnc declared a STRLEN parameter as const, but it isn't
regcomp_internal.h - move utility macros out of struct definition
It is bad enough we have conditional parts of the struct,
lets not make it even worse by having defines in the middle of it.
It is bad enough we have conditional parts of the struct,
lets not make it even worse by having defines in the middle of it.
perl.h - break up * lined comment leaders and pod comments
Having half of the comment have the * on the left side is confusing
for humans and especially so for programs. Split the two style into
two comments.
Having half of the comment have the * on the left side is confusing
for humans and especially so for programs. Split the two style into
two comments.
run/locale.t: Use 'is' not 'ok' for a test
'is' is a more modern, better options
'is' is a more modern, better options