| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
| |
Perl_av_exists tested to see if regdata magic was present,
but did not have any logic to fetch that data in the positive
key case. Additionally, in the negative key case, if AvFILL
indicated the key existed, it wouldn't return, and would then
fall through to the logic that treated it like a real array.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch makes multiple changes to Porting/epigraphs.pod and
pod/perlhist.pod.
For those that don't know, Porting/epigraphs.pod is a new document that
collects the quotes (chosen by Pumpkins) in perl release announcements.
The changes are the following.
1. Add a link pointing to each release announcement in the mailing
list archives. These are from ysth's list, the source from which
Porting/epigraphs.pod was originally compiled, but they weren't in
Porting/epigraphs.pod so far.
2. Reorder Porting/epigraphs.pod chronologically, because I believe
that makes more sense -- pod/perlhist.pod is still sorted by version numbers.
3. Incidentally, some missing releases are added to pod/perlhist.pod too.
4. Fix a mistake where Porting/epigraphs.pod gives the wrong version number.
5. Add some epigraphs that appear in ysth's list but not in
Porting/epigraphs.pod.
6. I did some research in perl history before the part that ysth's list
covers, and added older perl announcements I found. This work is not
complete: I stopped somewhere in 2000.
|
|
|
|
| |
machines that can't support it
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
if libc doesn't provide one
|
| |
|
| |
|
|
|
|
| |
constants
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Check portability of filenames from the MANIFEST. Modified by
committer to remove check for multiple dots -- there are already
too many violations and there are workarounds to handle them.
Also tweaked to report full path so it's easier to find culprits.
Still need checks for dots in directory names and paths that
differ only by case.
|
|
|
|
| |
So make t/test.pl use its private version throughout.
|
|
|
|
|
| |
Per discussions with Jesse Vincent, JSON::PP has been added
to the Perl core to support the new CPAN meta file specification
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
do_clean_objs only looks for objects referenced by RVs, so blessed
array references and lexical variables (and probably other SVs, too)
are not DESTROYed.
This commit adds a new visit() call to sv_clean_objs, which curses
(DESTROYs and un-blesses, leaving the reference count as it is) any
objects that are still left after do_clean_named_io_objs. The new
do_curse routine (a pointer to which is passeds to visit()) follows
do_clean_named_io_objs’ example and explicitly skips the STDOUT and
STDERR handles, in case destructors need to use them.
The cursing code, which is now called from two places, is moved out of
sv_clear and put in its own routine. The check that the reference
count is zero does not apply when called from sv_clean_objs, so the
new S_curse routine takes a boolean argument that determines whether
that check should take place.
|
|\ |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
As outlined in the RT ticket due to miniperl's dependencies differing to
the final perl binary dtrace -G needs to be called separately for each.
Build tested on Mac OS X 10.6, Solaris 11 and Scientific Linux with
SystemTap from git.
(Solaris is the only system I have access to where DTRACE_O actually gets
defined. Neither the dtrace binary on OS X nor SystemTap's dtrace
compatibility layer accept the -G option.)
|
| |
| |
| |
| |
| |
| | |
This is a minor documentation change at Ingy's request. Also,
the 0.003 CPAN release omits a test file that we were excluding
so I've removed it from the EXCLUDES list in Maintainers.pl
|
| |
| |
| |
| |
| |
| | |
This is only normally defined if OEMVS is defined; the commit that added it
(2f3efc97) claims z/OS support. I guess no-one has tried this for awhile as
dd374669 broke this in 2005.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The following standard definition is used: z is the modular inverse of
x (mod y) if and only if x*z (mod y) = 1 (mod y).
- dist/Math-BigInt/lib/Math/BigInt.pm: Fix the code in bmodinv() so it can
handle negative arguments. The code can be optimized further for speed,
but correctnes first.
- dist/Math-BigInt/t/bigintpm.inc: Fix the test case for modinv(-3, -5).
The output should be -3, since -3 * -3 (mod -5) = -9 (mod -5) = -4, and
1 (mod -5) = -4.
- dist/Math-BigRat/t/bigratpm.inc: Fix same test case as above.
Math::BigRat::bmodinv() only handles integers, and is essentially just a
front-end to Math::BigInt::bmodinv().
|
| |
| |
| |
| |
| | |
Even if using it means relying on t/test.pl functionality such as
fresh_perl_is().
|
| |
| |
| |
| |
| |
| | |
Simplify tests of !gv || !io to just !io, avoid calling GvIO(gv) more than
once, and where possible initialise io at declaration time, to allow it to be
const.
|
| |
| |
| |
| |
| |
| |
| |
| | |
Due to the way that '<> as glob' was parsed differently from
'<> as filehandle' from 5.6 onwards, something like <$foo[0]>
didn't handle overloading, even where $foo[0] was an overloaded object.
This was contrary to the docs for overload, and meant that <> couldn't
be used as a general overloaded iterator operator.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Currently when an external Perl glob function is used (which is most of
the time), the OP_GLOB op is removed and replaced with the pair:
GV("CORE::GLOBAL::glob"), ENTERSUB.
This commit re-adds the OP_GLOB to the op tree, but with OPf_SPECIAL set;
and pp_glob() is updated to just return if OPf_SPECIAL is set.
Thus there's no change in outward functionality with this commit. However,
by always calling pp_glob(), it will allow us (in the next commit) to
handle iterator overloading consistently, regardless of whether the
internal globbing function is used or not.
|
| | |
|
| |
| |
| |
| |
| | |
b99c822f5c5b52c3 was not actually correct in identify the cause of the errors.
(although still a valid change to make for the sake of consistency)
|
| |
| |
| |
| | |
We should probably write a porting test for that at some point.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
With 5.12, this module was made y2038-safe, even on systems with a 32-bit
time_t. Unfortunately, that broke things on older perl versions and blead became
this module's upstream as the y2038-safety couldn't easily be backported.
This change also doesn't attempt to backport y2038 support. It merely restores
the old behaviour including the y2038 limitations on older versions of perl on
platforms without a 64-bit time_t.
With this, we can at least move Time::Locale's upstream back to CPAN. Making it
y2038-safe for old perls on 32-bit time_t platforms probably shouldn't be a
priority anyway. There's Time::y2038, which does everything this module does,
and then some, while being y2038-safe.
At some point, this module should probably be deprecated.
|
| |
| |
| |
| |
| | |
Otherwise ./Configure -S generates a diagnostic, as it expects to be able to
execute it.
|
| |
| |
| |
| |
| | |
the "right" thing and insert a valid "From:", not all of them do,
potentially resulting in dropped mail.
|
| |
| |
| |
| |
| |
| |
| | |
The tempdir() function has the rather confusing default of *not* cleaning up
("because of issues with backwards compatibility") so one needs the CLEANUP
flag. (The analogous newdir() method in the OO interface doesn't suffer this
gotcha.)
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
[DELTA]
$Revision: 2.42 $ $Date: 2010/12/31 22:48:48 $
! Encode.xs
! Unicode/Unicode.xs
Applied: RT#64371: Update for 5.14 API changes
http://rt.cpan.org/Ticket/Display.html?id=64371
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Using OP_NAME() isn't going to be helpful here. Firstly, it doesn't cope
with out of range op numbers - it only "special" cases op_custom. Secondly,
as the three ops we "panic" on are padmy, mapstart and custom, if we get
here for a custom op then that means that the custom op didn't have an
implementation. Given that OP_NAME() looks up the custom op by its pp_addr,
likely it will return NULL, unless someone (unhelpfully) registers
&PL_unimplemented_op as the address of their custom op. NULL doesn't
generate a useful error message. "custom" does. */
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Some amagic-related macros take the full method enumeration name,
(e.g. "add_amg"); while others "helpfully" allow you to pass a shortened
version, ("add"), and do a CAT2(meth,_amg) behind the scenes.
Standardise on passing the full name; this makes it less confusing and
allows you to grep for the enumeration name in the source.
It updates two macros to accept full enumeration names: tryAMAGICunTARGET
(which isn't used outside the core apparently), and AMG_CALLun, which is
replaced by a new AMG_CALLunary (since AMG_CALLun is used outside the
core).
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
1.) Can't get the basename of a directory in native format.
2.) Symlinks still a bit dodgy -- skip tests for now.
Submitted upstream at:
https://rt.cpan.org/Ticket/Display.html?id=64353
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| | |
They were checking that category 'closed' was enabled for warnings before
calling report_evil_fh(), which in turn was (correctly) checking category
'unopened'.
|
| |
| |
| |
| |
| | |
It's actually only testing warnings enabled by 'closed', so test using the
tighter category.
|
| |
| |
| |
| |
| | |
It was checking that category 'closed' was enabled for warnings before calling
report_evil_fh(), which in turn was (correctly) checking category 'unopened'.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This is a fix for RT #81230 (and more). Currently, mg_get() works around
the case where the called magic (e.g. FETCH) frees the magic SV. It does
this by unconditionally pushing the SV on the tmps stack before invoking
the method.
There are two issues with this. Firstly, it may artificially extend the
life of the SV. This was the root of the problem with #81230. There, the
DB_File code, under -T, created a tainted tied object. Accessing the
object (within FETCH as it happens), caused mg_get() to be invoked on the
object (due to the taint magic), and thus extend the life of the object.
This then caused c<untie %h if $h{k}> to give the warning
untie attempted while 1 inner references still exist.
This only became noticeable after efaf36747029c85b4d8825318cb4d485a0bb350e,
which stopped wrapping magic method calls in SAVETMPS/FREETMPS.
The second issue issue that this protection only applies to mg_get();
functions like mg_set() can still segfault if the SV is deleted.
This commit fixes both problems as follows:
First, the protection mechanism is moved out of mg_get() and into
save_magic() / restore_magic(), so that it protects more things.
Secondly, the protection is now:
* in save_magic(), SvREFCNT_inc() the SV, thus protecting it from being
freed during FETCH (or whatever)
* in restore_magic(), SvREFCNT_dec() the SV, undoing the protection
without extending the life of the SV, *except* if the refcount is
1 (ie FETCH tried to free it), then push it on the mortals stack
to extend it life a bit so our callers wont choke on it.
|
| |
| |
| |
| | |
Signed-off-by: David Golden <dagolden@cpan.org>
|