summaryrefslogtreecommitdiff
path: root/ext/Devel-Peek
Commit message (Collapse)AuthorAgeFilesLines
* Remove MEMBER_TO_FPTR.Ben Morrow2010-10-061-3/+2
| | | | This is left over from PERL_OBJECT (see beeff2, 16c915, and so on).
* Add (?^...) regex constructKarl Williamson2010-09-201-3/+3
| | | | | | | | | | | | | | | | | | This adds (?^...) to signify to use the default regex modifiers for the cluster or embedded pattern-match modifier change. The major purpose of this is to simplify regex stringification, so that "^" is output in place of "-xism". As a result, the stringification will not change in the future when new regex modifiers are added, so tests, etc. that rely on a particular stringification will have to change now, but never again. Code that needs to work properly with both old- and new-style regexes can use something like the following: # Accept both old and new-style stringification my $modifiers = (qr/foobar/ =~ /\Q(?^/) ? '^' : '-xism'; This construct is Ben Morrow's idea.
* prevent Devel::Peek::Dump from lieing to us about evil class namesYves Orton2010-08-251-1/+23
| | | | | While one certainly can argue the merits of using a class name like "\0", it is legal so lets avoid it confusing our primary debugging tool.
* Peek.t: better identify failing testsDavid Mitchell2010-07-291-1/+3
|
* Dump didn't display CVf_ISXSUB flagDavid Mitchell2010-07-291-1/+1
|
* add CVf_CVGV_RC flagDavid Mitchell2010-07-181-2/+2
| | | | | | | | | | | | | 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.
* Convert Devel::Peek's test to Test::More.Nicholas Clark2010-06-301-4/+2
| | | | The flag change from 0x0 to 0x4 is because Test::More sets autoflush on STDOUT.
* Reorder CVf_* flags to be numerically contiguous again.Nicholas Clark2010-06-091-2/+5
| | | | | The removal of CVf_ASSERTION in 584420f022db5722 and CVf_LOCKED in e95ab0c0d2aa1b35 left two gaps in the sequence of bits in use.
* SvIVX() isn't valid on SVt_REGEXPNicholas Clark2010-05-201-1/+0
|
* Fix for non-regexps being upgraded to SVt_REGEXPNicholas Clark2010-02-091-1/+1
| | | | | | | | | | | | | | $ ./perl -lwe '$a = ${qr//}; $a = 2; print re::is_regexp(\$a)' 1 It is possible for arbitrary SVs (eg PAD entries) to be upgraded to SVt_REGEXP. (This is new with first class regexps) Whilst the example above does not SEGV, it will be possible to write code that will cause SEGVs (or worse) at the point when the scalar is freed, because the code in sv_clear() assumes that all scalars of type SVt_REGEXP *are* regexps, and passes them to pregfree2(), which assumes that pointers within are valid.
* Improvements to 31c9a3 - CPAN code did depend on the previous behaviour of ↵Nicholas Clark2010-02-061-1/+1
| | | | | | | | | | | | | | | | | | | blessing filehandles into FileHandle It turns out that it's not quite as simple as blessing into IO::File. If you do (just) that, then it breaks any existing code that does C<require IO::Handle;> to allow it to call methods on file handles, because they're blessed into IO::File, which isn't loaded. (Note this code doesn't assume that methods in IO::Seekable are there to be called) So, it all should work if you also set @IO::File:::ISA correctly? That way, code that assumes that methods from IO::Handle can be called will work. However, gv.c now starts complaining (but not failing) if IO::Handle, IO::Seekable and Exporter aren't present, because it goes looking for methods in them. So the solution seems to be to set @IO::File::ISA *and* create (empty) stashes for the other 3 packages. Patch appended, but not applied.
* Ensure that pp_qr returns a new regexp SV each time. Resolves RT #69852.Nicholas Clark2009-12-021-3/+3
| | | | | | | | | | | | | | | | Instead of returning a(nother) reference to the (pre-compiled) regexp in the optree, use reg_temp_copy() to create a copy of it, and return a reference to that. This resolves issues about Regexp::DESTROY not being called in a timely fashion (the original bug tracked by RT #69852), as well as bugs related to blessing regexps, and of assigning to regexps, as described in correspondence added to the ticket. It transpires that we also need to undo the SvPVX() sharing when ithreads cloning a Regexp SV, because mother_re is set to NULL, instead of a cloned copy of the mother_re. This change might fix bugs with regexps and threads in certain other situations, but as yet neither tests nor bug reports have indicated any problems, so it might not actually be an edge case that it's possible to reach.
* PVIOs don't use the SvIVX slot.Nicholas Clark2009-11-191-1/+1
|
* Make extensions in ext run their tests from the extension's own directory.Nicholas Clark2009-08-281-3/+1
| | | | | | | | | | | Inspired by, and in parts borrows from, Schwern's branch on github, but takes a slightly different approach in places. Not quite perfect yet - ext/File-Glob still runs from t, at least one FIXME needs fixing, and the changes to dual-life modules' tests need to be filtered back upstream, and possibly modified to suit their respective authors. But it works.
* Remove now-redundant references to MAN3PODS in core modules' Makefile.PLs.Nicholas Clark2009-03-261-1/+0
|
* Rename ext/Devel/Peek to ext/Devel-PeekNicholas Clark2009-02-095-0/+1735