Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

BenGoldberg1
Copy link

Replaced recommendation to use 'threads', with a statement that the documentation
for the new thread model is in 'threads'.

Since threads.pm is now discouraged, recommending that one switch from Thread.pm to threads.pm is silly.

Replaced recommendation to use 'threads', with a statement that the documentation
for the new thread model is in 'threads'.

Since threads.pm is now discouraged, recommending that one switch from Thread.pm to threads.pm is silly.
@seveas
Copy link
Contributor

seveas commented Jun 10, 2014

Hi Ben,

Patches for perl should be sent using perlbug - pull requests are not used.

@rjbs rjbs closed this Feb 26, 2015
p5p pushed a commit that referenced this pull request Feb 17, 2016
This has large memory savings, test prog,
perl -MTest::More -e"system 'pause'"
before 2196KB Private Bytes Win 7 32 bit to after 2092KB.

-On a CHEK the refcount is a U32 for memory savings on 64 bit CPUs while
 SHEKs are Size_t for refcount because of HE struct, on 32 bit Size_t and
 U32 happen to be the same thing, if there is future integration the
 refcount members will have to be the same type, then duping a SHEK or
 a CHEK is the same code, except that HVhek_COMPILING controls whether to
 aquire OP_REFCNT_LOCK before touching the ref count, in the future with
 atomic operations, the refcount can be manipulated with atomic operations
 regardless if it is a SHEK or CHEK since OP_REFCNT_LOCK lines were removed
-TODO figure out how to do static const CHEKs, hash member must be 0
 since its process specific randomized (rurban's B stores HEKs in RW static
 memory and fixes up the hash #s at runtime), add test and branch
 so that refcount isn't read and written or passed to PerlMemShared_free
 if static flag is on inidicating static const CHEK
-TODO Perl_newGP uses CHEKs not CopFILE, no memcpy and add _< that way
-TODO optimize the former alloca to smallbuf or Safefree or savestack
 newx free
p5p pushed a commit that referenced this pull request Feb 17, 2016
This has large memory savings, test prog,
perl -MTest::More -e"system 'pause'"
before 2196KB Private Bytes Win 7 32 bit to after 2092KB.

-On a CHEK the refcount is a U32 for memory savings on 64 bit CPUs while
 SHEKs are Size_t for refcount because of HE struct, on 32 bit Size_t and
 U32 happen to be the same thing, if there is future integration the
 refcount members will have to be the same type, then duping a SHEK or
 a CHEK is the same code, except that HVhek_COMPILING controls whether to
 aquire OP_REFCNT_LOCK before touching the ref count, in the future with
 atomic operations, the refcount can be manipulated with atomic operations
 regardless if it is a SHEK or CHEK since OP_REFCNT_LOCK lines were removed
-TODO figure out how to do static const CHEKs, hash member must be 0
 since its process specific randomized (rurban's B stores HEKs in RW static
 memory and fixes up the hash #s at runtime), add test and branch
 so that refcount isn't read and written or passed to PerlMemShared_free
 if static flag is on inidicating static const CHEK
-TODO Perl_newGP uses CHEKs not CopFILE, no memcpy and add _< that way
-TODO optimize the former alloca to smallbuf or Safefree or savestack
 newx free
p5p pushed a commit that referenced this pull request Feb 14, 2017
At this maximal level of debugging output, it displays the top 3 state
stack entries each time it pushes, but with no obvious indication that
a push is occurring. This commit changes this output:

                             |   1|  Setting an EVAL scope, savestack=9,
                             |   2|   #4   WHILEM_A_max
                             |   2|   #3   WHILEM_A_max
                             |   2|   #2   CURLYX_end yes
   0 <abcdef> <g>            |   2|   4:POSIXD[\w](5)

to be this (which includes the word "push" and extra indentation for the
stack dump):

                             |   1|  Setting an EVAL scope, savestack=9,
                             |   2|   push #4   WHILEM_A_max
                             |   2|        #3   WHILEM_A_max
                             |   2|        #2   CURLYX_end yes
   0 <abcdef> <g>            |   2|   4:POSIXD[\w](5)

Also, replace curd (current depth) var with a positive integer offset
(i) var, to avoid signed/unsigned mixing problems.
atoomic added a commit that referenced this pull request Jun 25, 2020
Silence some test warnings
demerphq added a commit that referenced this pull request Sep 9, 2022
demerphq added a commit that referenced this pull request Sep 9, 2022
demerphq added a commit that referenced this pull request Sep 12, 2022
demerphq added a commit that referenced this pull request Oct 25, 2022
demerphq added a commit that referenced this pull request Nov 5, 2022
demerphq added a commit that referenced this pull request Nov 5, 2022
demerphq added a commit that referenced this pull request Nov 5, 2022
demerphq added a commit that referenced this pull request Nov 5, 2022
demerphq added a commit that referenced this pull request Dec 31, 2022
demerphq added a commit that referenced this pull request Feb 8, 2023
demerphq added a commit that referenced this pull request Feb 19, 2023
demerphq added a commit that referenced this pull request Feb 20, 2023
mauke added a commit that referenced this pull request Aug 26, 2024
1.41      2024-08-25 22:32:19Z
  - fix leaks in @thread_object_registry (RT#64025, tusooa, #1 and Lukas Mai, #2)
  - fix incompatibility with Scalar::Util 1.65 and remove old refaddr fallback
    (Lukas Mai, #3)
rawleyfowler pushed a commit to rawleyfowler/perl5 that referenced this pull request Sep 2, 2024
1.41      2024-08-25 22:32:19Z
  - fix leaks in @thread_object_registry (RT#64025, tusooa, Perl#1 and Lukas Mai, Perl#2)
  - fix incompatibility with Scalar::Util 1.65 and remove old refaddr fallback
    (Lukas Mai, Perl#3)
iabyn added a commit that referenced this pull request Apr 24, 2025
This is #3 of a small series of commits to refactor the INPUT_handler()
method and turn it into a Node subclass method.

This commit moves the ExtUtils::ParseXS methods

    INPUT_handler()
    INPUT_handler_line()

from ParseXS.pm into ParseXS/Node.pm.  For now they temporarily remain
as ExtUtils::ParseXS methods; this is just a straight cut and paste,
except for fully-qualifying the $BLOCK_regexp package variable name and
adding a couple of temporary 'package ExtUtils::ParseXS' declarations.
iabyn added a commit that referenced this pull request Apr 24, 2025
This is #3 of a small series of commits to refactor the OUTPUT_handler()
method and turn it into a Node subclass method.

This commit moves the ExtUtils::ParseXS methods

    OUTPUT_handler()
    OUTPUT_handler_line()

from ParseXS.pm into ParseXS/Node.pm.  For now they temporarily remain
as ExtUtils::ParseXS methods; this is just a straight cut and paste,
except for fully-qualifying the $BLOCK_regexp package variable name and
adding a couple of temporary 'package ExtUtils::ParseXS' declarations.
iabyn added a commit that referenced this pull request May 26, 2025
This is #3 of a small series of commits to refactor the INPUT_handler()
method and turn it into a Node subclass method.

This commit moves the ExtUtils::ParseXS methods

    INPUT_handler()
    INPUT_handler_line()

from ParseXS.pm into ParseXS/Node.pm.  For now they temporarily remain
as ExtUtils::ParseXS methods; this is just a straight cut and paste,
except for fully-qualifying the $BLOCK_regexp package variable name and
adding a couple of temporary 'package ExtUtils::ParseXS' declarations.
iabyn added a commit that referenced this pull request May 26, 2025
This is #3 of a small series of commits to refactor the OUTPUT_handler()
method and turn it into a Node subclass method.

This commit moves the ExtUtils::ParseXS methods

    OUTPUT_handler()
    OUTPUT_handler_line()

from ParseXS.pm into ParseXS/Node.pm.  For now they temporarily remain
as ExtUtils::ParseXS methods; this is just a straight cut and paste,
except for fully-qualifying the $BLOCK_regexp package variable name and
adding a couple of temporary 'package ExtUtils::ParseXS' declarations.
iabyn added a commit that referenced this pull request Jul 6, 2025
This is #3 of a small series of commits to refactor the INPUT_handler()
method and turn it into a Node subclass method.

This commit moves the ExtUtils::ParseXS methods

    INPUT_handler()
    INPUT_handler_line()

from ParseXS.pm into ParseXS/Node.pm.  For now they temporarily remain
as ExtUtils::ParseXS methods; this is just a straight cut and paste,
except for fully-qualifying the $BLOCK_regexp package variable name and
adding a couple of temporary 'package ExtUtils::ParseXS' declarations.
iabyn added a commit that referenced this pull request Jul 6, 2025
This is #3 of a small series of commits to refactor the OUTPUT_handler()
method and turn it into a Node subclass method.

This commit moves the ExtUtils::ParseXS methods

    OUTPUT_handler()
    OUTPUT_handler_line()

from ParseXS.pm into ParseXS/Node.pm.  For now they temporarily remain
as ExtUtils::ParseXS methods; this is just a straight cut and paste,
except for fully-qualifying the $BLOCK_regexp package variable name and
adding a couple of temporary 'package ExtUtils::ParseXS' declarations.
mauke added a commit to mauke/perl5 that referenced this pull request Jul 21, 2025
... such as SvCUR(*tmp) and SvUTF(*tmp).

Fixes Coverity ID 582459: Evaluation order violation (EVALUATION_ORDER)

> read_write_order: In argument Perl#3 of `Perl_pv_pretty(my_perl, sv, (char const *)Perl_SvPV_helper(my_perl, *tmp, NULL, 2U, SvPVnormal_type_, Perl_sv_2pv_flags, false, 32U), *({...; &((XPV *)({...; p_;}))->xpv_cur;}), colwidth, my_perl->Icolors[0], my_perl->Icolors[1], (((*tmp)->sv_flags & 0x20000000U) ? 256 : 0) | 0x800)`, a call is made to `Perl_SvPV_helper(my_perl, *tmp, NULL, 2U, SvPVnormal_type_, Perl_sv_2pv_flags, false, 32U)`. In argument Perl#2 of this function, the object `(*tmp)->sv_flags` is modified. This object is also used in `(((*tmp)->sv_flags & 0x20000000U) ? 256 : 0) | 0x800`, the argument Perl#8 of the outer function call. The order in which these arguments are evaluated is not specified, and will vary between platforms.
mauke added a commit to mauke/perl5 that referenced this pull request Jul 21, 2025
... such as SvCUR(*tmp) and SvUTF8(*tmp).

Fixes Coverity ID 582459: Evaluation order violation (EVALUATION_ORDER)

> read_write_order: In argument Perl#3 of `Perl_pv_pretty(my_perl, sv, (char const *)Perl_SvPV_helper(my_perl, *tmp, NULL, 2U, SvPVnormal_type_, Perl_sv_2pv_flags, false, 32U), *({...; &((XPV *)({...; p_;}))->xpv_cur;}), colwidth, my_perl->Icolors[0], my_perl->Icolors[1], (((*tmp)->sv_flags & 0x20000000U) ? 256 : 0) | 0x800)`, a call is made to `Perl_SvPV_helper(my_perl, *tmp, NULL, 2U, SvPVnormal_type_, Perl_sv_2pv_flags, false, 32U)`. In argument Perl#2 of this function, the object `(*tmp)->sv_flags` is modified. This object is also used in `(((*tmp)->sv_flags & 0x20000000U) ? 256 : 0) | 0x800`, the argument Perl#8 of the outer function call. The order in which these arguments are evaluated is not specified, and will vary between platforms.
mauke added a commit that referenced this pull request Jul 23, 2025
... such as SvCUR(*tmp) and SvUTF8(*tmp).

Fixes Coverity ID 582459: Evaluation order violation (EVALUATION_ORDER)

> read_write_order: In argument #3 of `Perl_pv_pretty(my_perl, sv, (char const *)Perl_SvPV_helper(my_perl, *tmp, NULL, 2U, SvPVnormal_type_, Perl_sv_2pv_flags, false, 32U), *({...; &((XPV *)({...; p_;}))->xpv_cur;}), colwidth, my_perl->Icolors[0], my_perl->Icolors[1], (((*tmp)->sv_flags & 0x20000000U) ? 256 : 0) | 0x800)`, a call is made to `Perl_SvPV_helper(my_perl, *tmp, NULL, 2U, SvPVnormal_type_, Perl_sv_2pv_flags, false, 32U)`. In argument #2 of this function, the object `(*tmp)->sv_flags` is modified. This object is also used in `(((*tmp)->sv_flags & 0x20000000U) ? 256 : 0) | 0x800`, the argument #8 of the outer function call. The order in which these arguments are evaluated is not specified, and will vary between platforms.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants