Ævar Arnfjörð Bjarmason [Mon, 19 Jul 2010 14:44:32 +0000 (14:44 +0000)]
perl5133delta: Term-ANSIColor was bumped to CPAN version 3.00 (2c33c76)
Ævar Arnfjörð Bjarmason [Mon, 19 Jul 2010 14:39:11 +0000 (14:39 +0000)]
perl5133delta: Link from the CvGV() change to Known Problems
Ævar Arnfjörð Bjarmason [Mon, 19 Jul 2010 14:30:32 +0000 (14:30 +0000)]
perl5133delta: Note the commit range for "MacOS Classic"
Ævar Arnfjörð Bjarmason [Mon, 19 Jul 2010 14:23:42 +0000 (14:23 +0000)]
perl5133delta: Expand on "Uppercase X/B allowed.."
Mention that C<eval sprintf "%#X", 0x10> now works, and that upper
case hex/binary literals are supported in C and friends.
David Golden [Mon, 19 Jul 2010 14:23:10 +0000 (07:23 -0700)]
Add perl5133delta reminder about module linking
David Golden [Mon, 19 Jul 2010 13:58:24 +0000 (09:58 -0400)]
perl5133delta.pod: Removed most XXX and boilerplate
David Golden [Mon, 19 Jul 2010 13:53:54 +0000 (09:53 -0400)]
perl5133delta additions and revisions
Karl Williamson [Sun, 18 Jul 2010 19:12:39 +0000 (13:12 -0600)]
pods: mention \o{}, 3 octal digits
This patch adds a mention of \o{} to perlre to avoid the backreference
ambiguities, and uses 3 octal digits in an example, and suggests using 3
digits where 2 were suggested before.
Signed-off-by: David Golden <dagolden@cpan.org>
David Golden [Mon, 19 Jul 2010 02:34:07 +0000 (22:34 -0400)]
Maintainers.pl: podlators Makefile.PL is CUSTOMIZED
David Golden [Mon, 19 Jul 2010 02:29:35 +0000 (22:29 -0400)]
Maintainers.pl: CPANPLUS Makefile.PL is CUSTOMIZED
David Golden [Mon, 19 Jul 2010 01:36:39 +0000 (21:36 -0400)]
Add libnet Makefile.PL to CUSTOMIZED in Maintainers
David Golden [Mon, 19 Jul 2010 01:34:54 +0000 (21:34 -0400)]
Add support for CUSTOMIZED in Maintainers.PL
Some dual-life modules have custom files in core that differ from
CPAN. (e.g. Makefile.PL in libnet) These files need to be listed
in EXCLUDED, but also in CUSTOMIZED so that we don't flag them
incorrectly as "only in Perl"
David Golden [Mon, 19 Jul 2010 00:56:33 +0000 (20:56 -0400)]
Removed Archive-Tar Makefile.PL so it autogenerates
David Golden [Mon, 19 Jul 2010 00:51:30 +0000 (20:51 -0400)]
Added t/porting/dual-life.t
Because we manually generate Makefiles, any executables need to be
generated from .PL files in utils/. This test checks if dual-life
executables show up in utils/.
David Golden [Mon, 19 Jul 2010 00:25:22 +0000 (20:25 -0400)]
core-cpan-diff: improve detection of version mismatches
David Golden [Mon, 19 Jul 2010 00:14:44 +0000 (20:14 -0400)]
List libnet Makefile.PL as excluded
David Golden [Sun, 18 Jul 2010 23:20:53 +0000 (19:20 -0400)]
core-cpan-diff: perltidy with default settings
David Golden [Sun, 18 Jul 2010 23:10:55 +0000 (19:10 -0400)]
core-cpan-diff: various enhancements
* Extracted directories are cached and re-used
* Perl vs CPAN version mismatches shown in summary output
* Various minor code cleanup
Some diagnostic output was surpressed in diff mode, but not all.
I found the output confusing to follow in diff mode as a result
so I enabled some of the previously surpressed output.
David Golden [Sun, 18 Jul 2010 20:02:49 +0000 (16:02 -0400)]
core-cpan-diff: fix handling of file:/// urls
David Golden [Sun, 18 Jul 2010 18:50:14 +0000 (14:50 -0400)]
core-cpan-diff: remove trailing spaces
David Golden [Sun, 18 Jul 2010 18:47:47 +0000 (14:47 -0400)]
core-cpan-diff: add option for local CPAN mirror
David Golden [Sun, 18 Jul 2010 18:32:11 +0000 (14:32 -0400)]
perl5133delta.pod: Notes on CvGV reference counting
David Mitchell [Sun, 18 Jul 2010 17:18:50 +0000 (18:18 +0100)]
add CvGV_set() macro and make CvGV() rvalue only
Now that CvGV can sometimes be reference counted, stop people from directly
assigning to it (by using CvGV as an lvalue), and instead force them to use
CvGV_set()
David Mitchell [Sun, 18 Jul 2010 15:21:03 +0000 (16:21 +0100)]
change when to make CvGV refcounted
Rather than making CvGV refcounted if the CV is anon, decide based on
whether the GV pointed to by CvGV holds a reference back to us. Normally
these two will be equivalent, but this way is more robust if people are
doing weird things.
Also spotted an error with cv_clone not clearing the CVf_CVGV_RC flag on
the newly cloned cv. This shouldn't normally matter as it will get set
shortly anyway, but best to keep things logically correct.
David Mitchell [Sun, 18 Jul 2010 14:07:08 +0000 (15:07 +0100)]
add CVf_CVGV_RC flag
after the recent commit
803f274831f937654d48f8cf0468521cbf8f5dff,
the CvGV field is sometimes reference counted. Since it was intended that
the reference counting would happen only for anonymous CVs, the CVf_ANON
flag was co-opted to indicate whether RC was being used. This is not
entirely robust; for example, sub __ANON__ {} is a non-anon sub which
points to the same GV used by anon subs, which while itself doesn't
directly break things, shows that the potential for breakage is there.
So add a separate flag just to indicate the reference count status of the
CvGV field.
David Golden [Sun, 18 Jul 2010 01:50:40 +0000 (21:50 -0400)]
Fix address of register error from 26a0cb8
David Golden [Sat, 17 Jul 2010 20:27:21 +0000 (16:27 -0400)]
perlop.pod: document \o{} escape
This is a merge resolution based on original work by Karl Williamson.
Karl Williamson [Thu, 15 Jul 2010 23:28:28 +0000 (17:28 -0600)]
Add \o{} escape
This commit adds the new construct \o{} to express a character constant
by its octal ordinal value, along with ancillary tests and
documentation.
A function to handle this is added to util.c, and it is called from the
3 parsing places it could occur. The function is a candidate for
in-lining, though I doubt that it will ever be used frequently.
Karl Williamson [Thu, 15 Jul 2010 19:34:50 +0000 (13:34 -0600)]
perlrebackslash: Nits
Signed-off-by: David Golden <dagolden@cpan.org>
Karl Williamson [Thu, 15 Jul 2010 18:25:13 +0000 (12:25 -0600)]
perlreref.pod: Nits
Signed-off-by: David Golden <dagolden@cpan.org>
Karl Williamson [Thu, 15 Jul 2010 17:40:14 +0000 (11:40 -0600)]
perlre.pod: Nits
Signed-off-by: David Golden <dagolden@cpan.org>
Karl Williamson [Thu, 24 Jun 2010 20:41:28 +0000 (14:41 -0600)]
Nits in perlrebackslash
Signed-off-by: David Golden <dagolden@cpan.org>
Karl Williamson [Thu, 24 Jun 2010 17:00:06 +0000 (11:00 -0600)]
Add tests for \400 for "" strings, s//replacement/
Signed-off-by: David Golden <dagolden@cpan.org>
Karl Williamson [Thu, 24 Jun 2010 14:21:27 +0000 (08:21 -0600)]
\400 -\777 now means the same thing in all d-quote
Prior to this patch, \400 - \777 meant something different in some
circumstances in regexes outside bracketed character classes. A
deprecated warning message has been in place since 5.10.1 when this
happens. Remove the warning, and bring the behavior into line with the
other double-quotish contexts. \400 - \777 now always means the same
thing as \x{100} - \x{1FF} (except when the octal forms are taken as
backreferences.)
Signed-off-by: David Golden <dagolden@cpan.org>
Karl Williamson [Thu, 24 Jun 2010 14:06:27 +0000 (08:06 -0600)]
Add examples to perlre on perils of not using \g{}
These come from Abigail.
Signed-off-by: David Golden <dagolden@cpan.org>
Karl Williamson [Thu, 24 Jun 2010 00:53:56 +0000 (18:53 -0600)]
Remove extra blanks from t/re/re_tests, vim
My vim settings were causing extra blanks in this file; remove the ones
I added recently and set the vim options to disable the offending
feature.
Signed-off-by: David Golden <dagolden@cpan.org>
Craig A. Berry [Sat, 17 Jul 2010 22:46:48 +0000 (17:46 -0500)]
Reinstate
aa3f85c5f369736a7e50055b726cf2ca11336ce9.
Which was clobbered by
7b0eef92ba8ed2aa84e9187dadebc5cabfc3a3c5.
And still awaiting upstream integration at:
<https://rt.cpan.org/Public/Bug/Display.html?id=55236>
Also bumped the version this time to leave a better clue that something
has changed in blead.
Nicholas Clark [Sat, 17 Jul 2010 12:00:46 +0000 (13:00 +0100)]
In pp_qr, use gv_stashsv() directly on the SV.
Brought to you by the campaign for the elimination of strlen().
Craig A. Berry [Fri, 16 Jul 2010 17:04:54 +0000 (12:04 -0500)]
Avoid test suite hang with new readline test on VMS.
Ben Morrow [Fri, 16 Jul 2010 16:15:19 +0000 (17:15 +0100)]
Add Perl_blockhook_register to perl5133delta.
Signed-off-by: David Golden <dagolden@cpan.org>
Josh ben Jore [Fri, 16 Jul 2010 06:00:25 +0000 (06:00 +0000)]
Update perl5133delta
Josh ben Jore [Tue, 13 Jul 2010 21:49:57 +0000 (14:49 -0700)]
The debugger now continues to use RemotePort when it's been configured to use it.
David Golden [Thu, 15 Jul 2010 02:26:33 +0000 (20:26 -0600)]
perlop.pod: Rephrase hexadecimal escape wording
Clarifies how hexadecimal escapes are interpreted, with particular
attention to the treatment of invalid characters.
Based on an original draft patch by Karl Williamson.
David Golden [Fri, 16 Jul 2010 03:55:50 +0000 (23:55 -0400)]
Add summary list mode to git-deltatool
David Golden [Fri, 16 Jul 2010 03:48:07 +0000 (23:48 -0400)]
More perl5133delta updates
Leon Brocard [Thu, 15 Jul 2010 19:42:08 +0000 (20:42 +0100)]
Mention that Ask did not actually release 5.11.6
Jesse Vincent [Thu, 15 Jul 2010 18:42:53 +0000 (14:42 -0400)]
Small spelling/grammar nit to Locale::Maketext::Guts*
Todd Rinaldo [Thu, 15 Jul 2010 18:24:07 +0000 (14:24 -0400)]
Clean up older Locale::Maketext internals to no longer do crazy string
eval tricks.
Alexandr Ciornii [Tue, 11 May 2010 15:41:22 +0000 (18:41 +0300)]
use modern Perl style in example
Signed-off-by: David Golden <dagolden@cpan.org>
Alexandr Ciornii [Tue, 11 May 2010 15:39:19 +0000 (18:39 +0300)]
Make example work with "use strict" by eliminating barewords.
Signed-off-by: David Golden <dagolden@cpan.org>
Josh ben Jore [Thu, 15 Jul 2010 13:06:28 +0000 (13:06 +0000)]
Stop using $ENV{LESS} for parameters not intended for less
Josh ben Jore [Thu, 15 Jul 2010 13:04:26 +0000 (13:04 +0000)]
Configure has a path to less and perl5db.pl can use it
Ben Morrow [Tue, 13 Jul 2010 21:20:21 +0000 (22:20 +0100)]
Macros to en/disable blockhook entries.
This allows the individual callbacks to be switched on and off as
necessary, without removing the entry from PL_blockhooks.
Ben Morrow [Tue, 13 Jul 2010 20:06:19 +0000 (21:06 +0100)]
Update MANIFEST.
Properly, this time.
Ben Morrow [Tue, 13 Jul 2010 20:02:29 +0000 (21:02 +0100)]
Remove diagnostics from XS-APItest/t/blockhooks.
They were causing problems with 'make test'.
Josh ben Jore [Thu, 15 Jul 2010 05:08:24 +0000 (22:08 -0700)]
[perl #72729] Test appending sv_gets for ascii/utf8 in target and handle
Josh ben Jore [Thu, 15 Jul 2010 05:06:16 +0000 (22:06 -0700)]
[perl #72729] TODO for aborted readline() returning '' instead of undef
Josh ben Jore [Thu, 15 Jul 2010 05:02:28 +0000 (22:02 -0700)]
[perl #72729] Truncate sv_gets(sv) only when not appending to a string
David Golden [Thu, 15 Jul 2010 02:00:41 +0000 (22:00 -0400)]
Add a 'blocking' type for git-deltatool
Karl Williamson [Wed, 14 Jul 2010 23:21:40 +0000 (17:21 -0600)]
PATCH: [perl #76502] Fix UCD.pm doc
Thank you for your bug report. Change <lower> to <upper> as the report
showed.
Signed-off-by: David Golden <dagolden@cpan.org>
David Mitchell [Mon, 12 Jul 2010 19:53:04 +0000 (20:53 +0100)]
protect CvGV weakref with backref
Each CV usually has a pointer, CvGV(cv), back to the GV that corresponds
to the CV's name (or to *foo::__ANON__ for anon CVs). This pointer wasn't
reference counted, to avoid loops. This could leave it dangling if the GV
is deleted.
We fix this by:
For named subs, adding backref magic to the GV, so that when the GV is
freed, it can trigger processing the CV's CvGV field. This processing
consists of: if it looks like the freeing of the GV is about to trigger
freeing of the CV too, set it to NULL; otherwise make it point to
*foo::__ANON__ (and set CvAONON(cv)).
For anon subs, make CvGV a strong reference, i.e. increment the refcnt of
*foo::__ANON__. This doesn't cause a loop, since in this case the
__ANON__ glob doesn't point to the CV. This also avoids dangling pointers
if someone does an explicit 'delete $foo::{__ANON__}'.
Note that there was already some partial protection for CvGV with
commit
f1c32fec87699aee2eeb638f44135f21217d2127. This worked by
anonymising any corresponding CV when freeing a stash or stash entry.
This had two drawbacks. First it didn't fix CVs that were anonmous or that
weren't currently pointed to by the GV (e.g. after local *foo), and
second, it caused *all* CVs to get anonymised during cleanup, even the
ones that would have been deleted shortly afterwards anyway. This commit
effectively removes that former commit, while reusing a bit of the
actual anonymising code.
David Mitchell [Mon, 5 Jul 2010 21:25:12 +0000 (22:25 +0100)]
in CLONEf_JOIN_IN, cache found stashes
When joining a thread, we skip cloning a stash if a stash of the same
name already exists in the parent thread. Add it to PL_ptr_table too, so
we don't have to repeat the expensive name comparison each time
David Mitchell [Mon, 5 Jul 2010 21:07:30 +0000 (22:07 +0100)]
add all stash backrefs individually when joining
When joining a thread, a 'mini' interpreter clone is performed to
clone the returned SVs and dependents back into the parent interpreter.
To make things simple in this case, don't clone the xhv_backreferences
array of any stashes, but individually add in any cloned GVs and CVs
whose [CG]vSTASH points that way. This is faster (avoids an expensive test
per CV/GV) and better (doesn't clone unnecessary SVs in the backref array)
David Mitchell [Mon, 5 Jul 2010 20:11:21 +0000 (21:11 +0100)]
make it an error to look for magic hv backref
Now that we only store a stash's backref AV in xhv_backreferences,
make it a panic if we don't find it there, rather than falling back to
look for backref magic.
David Mitchell [Mon, 5 Jul 2010 19:40:33 +0000 (20:40 +0100)]
protect CvSTASH weakref with backrefs
Each CV usually has a pointer, CvSTASH, back to the stash that it was
complied in. This pointer isn't reference counted, to avoid loops. Which
can leave it dangling if the stash is deleted.
There is already protection for the similar GvSTASH field in GVs: the
stash has an array of backrefs, xhv_backreferences, pointing to the GVs
whose GvSTASHes point to it, and which is used to zero all the GvSTASH
fields should the stash be deleted.
All this patch does is also add the CVs with CvSTASH to that stash's
backref list too.
David Mitchell [Sun, 4 Jul 2010 20:44:35 +0000 (21:44 +0100)]
tidy some code in gv_init()
Use an intermediate variable cv to avoid lots of GvCV(gv)'s
David Mitchell [Sun, 4 Jul 2010 19:51:35 +0000 (20:51 +0100)]
process xhv_backreferences early in S_hfreeentries
When deleting a stash, make the algorithm
GvSTASH($_) = NULL for (@xhv_backreferences);
delete xhv_backreferences;
free each stash entry;
Previously the algorithm was
hide xhv_backreferences as ordinary backref magic;
free each stash entry:
this may trigger a sv_del_backref() for each GV being freed
delete @xhv_backreferences
The new method is:
* more efficient: one scan through @xhv_backreferences rather than lots of
calls to sv_del_backref(), removing elements one by one;
* makes the code simpler; the 'hide xhv_backreferences as backref magic'
hack no longer needs to be done
* removes a bug whereby GVs that had a refcnt > 1 (the usual case) were
left with a GvSTASH pointing to the freed stash; it's now NULL instead. I
couldn't think of a test for this.
There are two drawbacks:
* If the GV gets freed at the same time as the stash, the freeing code
sees the GV with a GVSTASH of NULL rather than still pointing to the
stash.
* As far as I can see, the only difference this currently makes is that
mro_method_changed_in() is no longer called by sv_clear(), but since we're
blowing away the whole stash anyway, method resolution doesn't really
bother us any more.
At some point in the future I might set GvSTASH to %__ANON__ rather than
NULL.
Josh ben Jore [Wed, 14 Jul 2010 06:57:14 +0000 (23:57 -0700)]
[perl #72729] Test that sv_gets doesn't revive dead strings
Josh ben Jore [Wed, 14 Jul 2010 06:56:29 +0000 (23:56 -0700)]
Add t/op/readline.t docs
Josh ben Jore [Wed, 14 Jul 2010 04:33:34 +0000 (21:33 -0700)]
Add x-ref from call site in do_readline() of sv_grow() to it's matching test in t/op/readline.t
David Golden [Wed, 14 Jul 2010 15:02:54 +0000 (11:02 -0400)]
Update template for linked perldelta sections in deltatool
David Golden [Wed, 14 Jul 2010 14:54:22 +0000 (10:54 -0400)]
Add help and fix doc typo for git-deltatool
David Golden [Wed, 14 Jul 2010 02:07:35 +0000 (22:07 -0400)]
Revise perldelta template to group doc/utility bullets
Nicholas Clark [Tue, 13 Jul 2010 19:20:21 +0000 (20:20 +0100)]
Fix transient pod infelicities spotted by podcheck.t
David Golden [Tue, 13 Jul 2010 16:08:58 +0000 (12:08 -0400)]
Add more recent commits to perldelta
Karl Williamson [Thu, 8 Jul 2010 16:18:58 +0000 (10:18 -0600)]
perlop.pod: Document current \000 \x behavior
Signed-off-by: David Golden <dagolden@cpan.org>
Chris 'BinGOs' Williams [Tue, 13 Jul 2010 11:14:35 +0000 (12:14 +0100)]
Update CPANPLUS to CPAN version 0.9007
[DELTA]
Changes for 0.9007 Tue Jul 13 10:44:30 2010
================================================
* Fix the shell test to skip if test is not being run under a
terminal, reported by Justin Case RT #59254
Changes for 0.9006 Fri Jul 9 13:44:22 2010
================================================
* Finally resolved the issue where a prereq on Config would not be
recognised as a core module
Chris 'BinGOs' Williams [Tue, 13 Jul 2010 11:08:05 +0000 (12:08 +0100)]
Update ExtUtil-ParseXS to CPAN version 2.2206
[DELTA]
2.2206 - Sun Jul 4 15:43:21 EDT 2010
Bug fixes:
- Make xsubpp accept the _ prototype (RT#57157) [Rafael Garcia-Suarez]
- INCLUDE_COMMAND portability fixes for VMS (RT#58181) [Craig Berry]
- INCLUDE_COMMAND fixes to detect non-zero exit codes (RT#52873)
[Steffen Mueller]
Chris 'BinGOs' Williams [Tue, 13 Jul 2010 11:02:16 +0000 (12:02 +0100)]
Update Archive-Tar to CPAN version 1.64
[DELTA]
* important changes in version 1.64 09/07/2010
- Removed the PERL_CORE specific chdir from all the tests
- Apply a patch from David Muir Sharnoff RT #58916,
"skip files via a callback and limit memory use when skipping files"
- Apply a patch from Daphne Pfister RT #59150
"Assumes all references filename are IO::Handle's instead of trying to stringify."
Chris 'BinGOs' Williams [Tue, 13 Jul 2010 10:56:15 +0000 (11:56 +0100)]
Update IPC-Cmd to CPAN version 0.60
[DELTA]
Changes for 0.60 Mon Jul 5 09:04:54 BST 2010
=================================================
* Corrected spelling mistakes in POD, spotted by H.Merijn Brand
* Apply a patch from Burak Gursoy RT #58886, which fixes paths
on MSWin32
* Apply patch from Petya Kohts, RT #50398, which allows more
flexible configuration of run_forked and its children
Josh ben Jore [Tue, 13 Jul 2010 06:56:55 +0000 (23:56 -0700)]
Reset variables being initialized by readline before we do possibly blocking I/O
Tony Cook [Tue, 13 Jul 2010 05:11:54 +0000 (15:11 +1000)]
new is a reserved word in C++, don't use it as a variable name
Fix a cause of black smoke for C++ builds.
Nicholas Clark [Mon, 12 Jul 2010 12:39:19 +0000 (13:39 +0100)]
Create S_assert_uft8_cache_coherent() with one copy of the cache panic code.
Replacing 4 copies of this debugging-only routine with 1 reduces source and
object code size.
Nicholas Clark [Mon, 12 Jul 2010 12:09:28 +0000 (13:09 +0100)]
Perl_sv_len_utf8 can use the UTF-8 offset cache to reduce its linear scan.
Previously, if the scalar's character length wasn't yet known, but an offset
midway was, the offset would be ignored, and the linear scan of UTF-8 was for
the entire length of the scalar.
Nicholas Clark [Mon, 12 Jul 2010 10:56:59 +0000 (11:56 +0100)]
Perl_sv_pos_b2u now calls utf8_mg_len_cache_update for the string end offset.
Previously it would not take special action if the offset requested happened to
be the end of the string, meaning that the (fixed size) UTF-8 offset cache
would be used for a value which could (and should) be stored elsewhere.
Nicholas Clark [Mon, 12 Jul 2010 10:38:31 +0000 (11:38 +0100)]
S_sv_pos_u2b_cached now updates the UTF-8 length cache if at the end of string.
Pass in a boolean to S_sv_pos_u2b_forwards, which sets it to true if it
discovers that the UTF-8 offset is at (or after) the end of the string.
This can only happen if we don't already know the SV's length (in Unicode
characters), because if we know it, we always call S_sv_pos_u2b_midway().
Nicholas Clark [Mon, 12 Jul 2010 10:16:41 +0000 (11:16 +0100)]
Break S_utf8_mg_len_cache_update() out from Perl_sv_len_utf8().
George Greer [Sat, 10 Jul 2010 23:18:12 +0000 (19:18 -0400)]
Fix for RT#2353: catch yyparse() exceptions in (?{...})
Ticket is entitled:
"panic: top_env when localizing a lexical variable in qr{(?{...})}"
but a better description would be:
"(?{...}) does not catch yyparse() exceptions in regex compilation"
Changes Perl_sv_compile_2op() to tell doeval() that it must use
S_try_yyparse() to catch any exception that yyparse() may throw.
Ben Morrow [Wed, 9 Dec 2009 10:37:14 +0000 (10:37 +0000)]
Update MANIFEST.
Ben Morrow [Wed, 9 Dec 2009 10:32:23 +0000 (10:32 +0000)]
Document the blockhook functions and macros.
Ben Morrow [Wed, 9 Dec 2009 10:24:33 +0000 (10:24 +0000)]
Teach autodoc.pl about 'o' functions.
That is, functions with no #define foo Perl_foo. I'm not certain this is
the right way to do it, as I don't really understand which flags autodoc
honours from which places; currently, it's necessary to put the 'o' flag
on the =for apidoc line or it will be ignored.
Ben Morrow [Mon, 7 Dec 2009 19:00:04 +0000 (19:00 +0000)]
Systematic tests for the block hooks.
I've left the dummy implementation of @{^C_S_C} in, as it's actually
useful for some of the other tests. (Something simpler would work just
as well, of course.)
Ben Morrow [Mon, 7 Dec 2009 12:55:57 +0000 (12:55 +0000)]
Wrap PL_blockhooks in an API function.
This should help prevent people from thinking they can get cute with the
contents.
Ben Morrow [Mon, 7 Dec 2009 11:52:23 +0000 (11:52 +0000)]
Macroify the block_hooks structure.
Add a flags member, so it can be extended later if necessary. Add a
bhk_eval member, called from doeval to catch requires and string evals.
Ben Morrow [Thu, 26 Nov 2009 17:22:22 +0000 (17:22 +0000)]
Initial very basic tests for PL_blockhooks.
This is taken directly from rafl's @{^COMPILE_SCOPE_CONTAINER}
implementation posted on p5p.
Ben Morrow [Thu, 26 Nov 2009 17:18:29 +0000 (17:18 +0000)]
Generic hooks into Perl_block_{start,end}.
These take the form of a vtable pushed onto the new PL_blockhooks array.
This could probably do with a API around it later. Separate pre_end and
post_end hooks are needed to capture globals before the stack is unwound
(like needblockscope in the existing code). The intention is that once
a vtable is installed it never gets removed, so where necessary
extensions using this will need to use a hinthv element to determine
whether to do anything or not.
Nicholas Clark [Sun, 11 Jul 2010 19:11:10 +0000 (20:11 +0100)]
Avoid UTF-8 cache panics with offsets beyond the string. Fixes RT #75898.
Change S_sv_pos_u2b_forwards() to take a point to the (requested) UTF-8 offset,
and return the actual UTF-8 offset for the byte position returned. This ensures
that the cache is consistent with reality.
Nicholas Clark [Sun, 11 Jul 2010 16:17:37 +0000 (17:17 +0100)]
In Perl_sv_pos_u2b_flags and S_sv_pos_u2b_cached, return early for offset 0.
0 Unicode characters are always 0 octets long. Returning early ensures that
any offsets we calculate later will always be non-zero.
Nicholas Clark [Sun, 11 Jul 2010 15:49:29 +0000 (16:49 +0100)]
In S_sv_pos_u2b_midway, inline the call to S_sv_pos_u2b_forwards.
Vincent Pit [Sun, 11 Jul 2010 11:34:28 +0000 (13:34 +0200)]
Sort and complete the op flags lists for op_dump()