In perl.git, the branch smoke-me/scream2 has been created
<http://perl5.git.perl.org/perl.git/commitdiff/719f6510dd8394b85eb08d9279d71693bdc891e5?hp=0000000000000000000000000000000000000000>
at 719f6510dd8394b85eb08d9279d71693bdc891e5 (commit)
- Log -----------------------------------------------------------------
commit 719f6510dd8394b85eb08d9279d71693bdc891e5
Author: Nicholas Clark <[email protected]>
Date: Tue Jun 28 15:20:56 2011 +0200
For shorter strings, store C<study>'s data as U8s or U16s, instead of U32s.
The assumption is that most studied strings are fairly short, hence the pain
of the extra code is worth it, given the memory savings.
80 character string, 336 bytes as U8, down from 1344 as U32
800 character string, 2112 bytes as U16, down from 4224 as U32
M ext/Devel-Peek/t/Peek.t
M pod/perldelta.pod
M pp.c
M regexec.c
M util.c
commit a8dcf7743b5cb46ea701c12783d7b73d68d5d4da
Author: Nicholas Clark <[email protected]>
Date: Tue Jun 28 12:17:38 2011 +0200
Store C<study>'s data as U32s, instead of I32s.
The "no more" condition is now represented as ~0, instead of -1.
M pp.c
M regexec.c
M util.c
commit 4fece135f130aa0cca2e1176e6de148d965484a8
Author: Nicholas Clark <[email protected]>
Date: Mon Jun 27 21:13:39 2011 +0200
Tidy code in pp_study and Perl_screaminstr()
In pp_study eliminate the variable pos, which duplicates len. ch should be
U8,
not I32.
In Perl_screaminstr(), move the declarations of s and x to their point of
use,
convert a for loop to a while loop, and avoid incrementing and decrementing
s.
found is a boolean.
M pp.c
M util.c
commit 630e7f1669586ae0e1d6aa3694e500dbf2eb7773
Author: Nicholas Clark <[email protected]>
Date: Mon Jun 27 20:51:04 2011 +0200
Store C<study>'s data in in mg_ptr instead of interpreter variables.
This allows more than one C<study> to be active at the same time.
It eliminates PL_screamfirst, PL_lastscream, PL_maxscream.
M embedvar.h
M ext/Devel-Peek/t/Peek.t
M intrpvar.h
M perl.c
M pod/perldelta.pod
M pod/perlfunc.pod
M pp.c
M regexec.c
M sv.c
M util.c
commit 6897eae9b34fa93332f7be35f95f62b6b9f394a6
Author: Nicholas Clark <[email protected]>
Date: Mon Jun 27 17:58:10 2011 +0200
Merge PL_scream{first,next} into one allocated buffer.
Effectively, PL_screamnext is now PL_screamfirst + 256. The actual
interpreter
variable PL_screamnext is eliminated.
M embedvar.h
M intrpvar.h
M perl.c
M pp.c
M sv.c
M util.c
commit 5b394a73a26717e0a6c00963c9cbba3991721a04
Author: Nicholas Clark <[email protected]>
Date: Mon Jun 27 17:14:39 2011 +0200
Change PL_screamnext to store absolute positions.
PL_screamnext gives the position of the next occurrence of the current
octet.
Previously it stored this as an offset from the current position, with -pos
stored for "no more", so that the calculated new offset would be zero,
allowing a zero/non-zero loop exit test in Perl_screaminstr().
Now it stores absolute position, with -1 for "no more". Also codify -1 as
the
"not present" value for PL_screamfirst, instead of any negative value.
M pp.c
M regexec.c
M util.c
commit 979fcc3fb5e474f8ff62bdd8bdb460de254a8dbb
Author: Nicholas Clark <[email protected]>
Date: Mon Jun 13 16:24:23 2011 +0200
Split out study magic from pos magic.
study uses magic to call SvSCREAM_off() if the scalar is modified. Allocate
it
its own magic type ('G' for now - pos magic is 'g'). Share the same "set"
routine and vtable as regexp/bm/fm (setregxp and vtbl_regexp).
M ext/Devel-Peek/t/Peek.t
M mg.c
M mg_names.c
M mg_raw.h
M mg_vtable.h
M pod/perlguts.pod
M pp.c
M regen/mg_vtable.pl
M t/porting/known_pod_issues.dat
-----------------------------------------------------------------------
--
Perl5 Master Repository