-
Notifications
You must be signed in to change notification settings - Fork 576
correct mistypes #7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Hello, The Perl 5 Porters, the team responsible for developing Perl 5, use a different tool for accepting patches. Please follow the instructions here: https://metacpan.org/pod/distribution/perl/pod/perlgit.pod#Patch-workflow or here: http://perldoc.perl.org/perlhack.html#SUPER-QUICK-PATCH-GUIDE To summarize from the above link: Use the |
@preaction thanks for answer |
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
Test more rare edge cases
This is #7 of a small series of commits to refactor INPUT keyword handling. The main job of parsing an INPUT line is to extract any information on that line and use it to update the associated Param object (which was likely created earlier when the XSUB's signature was parsed). This commit makes that information also be stored in new fields in the INPUT_line object. These new fields aren't currently used for anything, but they could in principle become useful if options for deparsing or exporting were added to ParseXS.
This is #7 of a small series of commits to refactor OUTPUT keyword handling. For OUTPUT_line, move, from the parse() method to the as_code() method, the bit which checks for RETVAL and causes its "push return value on stack" C code to be emitted later. Also, add a long comment explaining why this delay is required. The existing code in parse() worked purely by chance: it was just returning (without a value) if the parameter name was RETVAL. This was a hangover from moving the existing code from OUTPUT_handler() into a Node parse() method. By returning undef, it was signalling to the caller that the parse of the line failed, and so the subsequent call to as_code() was skipped. Instead, indicate that the parse was successful, and have as_code() skip RETVAL.
missing double quotation mark