In perl.git, the branch smoke-me/bulk88/rt125296-wip-CopFILE-on-threads has been created
<http://perl5.git.perl.org/perl.git/commitdiff/05feff7b3dee6011d46d55e518beba792afa9c82?hp=0000000000000000000000000000000000000000> at 05feff7b3dee6011d46d55e518beba792afa9c82 (commit) - Log ----------------------------------------------------------------- commit 05feff7b3dee6011d46d55e518beba792afa9c82 Author: Daniel Dragan <[email protected]> Date: Wed Feb 17 02:02:28 2016 -0500 WIP add API for refcounting CopFILE names with threads #3 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 M cop.h M cv.h M embed.fnc M embed.h M ext/Devel-Peek/t/Peek.t M gv.c M gv.h M hv.c M hv.h M makedef.pl M op.c M pp_ctl.c M proto.h M scope.h M sv.h commit 52cfeea09c1ebfede69cf73b6e761002faeed6b9 Author: Daniel Dragan <[email protected]> Date: Thu Feb 11 15:21:55 2016 -0500 remove unused arg in gv_fetchfile_flags Since gv_fetchfile_flags was created in commit d9095cec1b in 5.9.5 in 2007 the flags argument has been unused and undefined as to its meaning. Remove the cpu instruction overhead of pushing the flags arg in the callers of gv_fetchfile_flags by changing it to a macro that drops out the flags argument. Only known callers are NYTProf and core's gv_fetchfile according to cpan grep. This commits sets up future refactoring of gv_fetchfile*. M embed.fnc M embed.h M gv.c M gv.h M proto.h ----------------------------------------------------------------------- -- Perl5 Master Repository
