This is a live mirror of the Perl 5 development currently hosted at
10 years agoupdate in
David Golden [Fri, 7 Jan 2011 02:07:19 +0000 (21:07 -0500)]
update in

10 years agoSync with version 0.88 on CPAN
John Peacock [Fri, 7 Jan 2011 01:02:37 +0000 (20:02 -0500)]
Sync with version 0.88 on CPAN

10 years agoUpdate to Win32-0.42 from CPAN
Jan Dubois [Fri, 7 Jan 2011 00:07:40 +0000 (16:07 -0800)]
Update to Win32-0.42 from CPAN

10 years agoUpdate K&R-style function declarations in dl_vms.xs.
Craig A. Berry [Thu, 6 Jan 2011 23:48:41 +0000 (17:48 -0600)]
Update K&R-style function declarations in dl_vms.xs.

10 years agoBuild on VMS.
Craig A. Berry [Thu, 6 Jan 2011 23:42:37 +0000 (17:42 -0600)]
Build on VMS.

10 years agoMake newline on last record explicit.
Craig A. Berry [Thu, 6 Jan 2011 01:14:06 +0000 (19:14 -0600)]
Make newline on last record explicit.

On VMS, the last line written to a file will get a trailing newline
willy nilly.  This has its advantages insofar as you never get the
"no newline at end of file" warnings from various utilities, but
reality conflicts with expectations when you explicitly test for
the last (or only) line *not* ending with newline, which is what
the recent addtion to ref.t (5e3072707906cc4cb8a364c4cf7c487df0300caa)
was doing.  Adding an explicit newline makes everyone happy.

10 years agoRemove cc_runtime.h from the VMS build.
Craig A. Berry [Thu, 6 Jan 2011 00:34:18 +0000 (18:34 -0600)]
Remove cc_runtime.h from the VMS build.

Follow-up to 1daf3b755691d9e2e52b73fcc1111714808c874a.

10 years agoAdd Perl::OSType as a dual-life core module
David Golden [Thu, 6 Jan 2011 03:25:23 +0000 (22:25 -0500)]
Add Perl::OSType as a dual-life core module

This commit adds Perl::OSType 1.002 as a dual-life module.  It maps Perl
operating system names (e.g. 'dragonfly' or 'MSWin32') to more generic
types with standardized names (e.g.  "Unix" or "Windows").  It has been
refactored out of Module::Build and ExtUtils::CBuilder and consolidates
such mappings into a single location for easier maintenance.


10 years agoUpdate CGI to CPAN version 3.51
Chris 'BinGOs' Williams [Wed, 5 Jan 2011 23:35:15 +0000 (23:35 +0000)]
Update CGI to CPAN version 3.51


  Version 3.51

  - A new option to set $CGI::Carp::TO_BROWSER = 0, allows you to explicitly
    exclude a particular scope from triggering printing to the browser when
    fatatlsToBrowser is set. (RT#62783, Thanks to papowell)
  - The <script> tag now supports the "charset" attribute.
    (RT#62907, Thanks to Fabrice Metge)
  - In CGI::Cookie, "Max-Age" is now supported for better spec compliance.
    (Mark Stosberg)

  - Setting charset() now works for all content types, not just "text/*".
    (RT#57945, Thanks to Yanick and Gerv.)
  - support for user temporary directories ($HOME/tmp) was commented out
    in 2.61 but the documentation wasn't updated (Peter Gervai, Niko Tyni)
  - setting $CGITempFile::TMPDIRECTORY before loading has been
    working but undocumented since 3.12 (which listed it in Changes as
    $CGI::TMPDIRECTORY) (Peter Gervai, Niko Tyni)
  - unfortunately the previous change broke the runtime check for looking
    for a new temporary directory if the current one suddenly became
    unwritable (Peter Gervai, Niko Tyni)
  - A bug was fixed in CGI::Carp triggered by certain death cases in
    the BEGIN phase of parent classes.
    (RT#57224, Thanks to UNERA, Yanick Champoux, Mark Stosberg)
  - CGI::Cookie->new() now follows the documentation and returns undef
    if the -name and -value args aren't provided. This new behavior is also
    consistent with the docs and code of CGI::Simple::Cookie. (Mark Stosberg)
  - CGI::Cookie->parse() now trims leading and trailing whitespace from cookie
    elements as intended. The change also makes this part of the parsing
    identical to CGI::Simple::Cookie (Mark Stosberg)
  - Temp file handling was improved (RT#62762)

  - Further improvements have been made to guard against newline injections
    in headers. (Thanks to Max Kanat-Alexander, Yanick Champoux, Mark Stosberg)

  - Make EBCDIC a compile-time constant so there's zero overhead (and less
    compiled code) in subroutines that test for it. (Tim Bunce)
  - If you just want to use CGI::Cookie, will no longer be loaded
    unless you call the bake() method, which requires it. (Mark Stosberg)

  - quit referring to the <link> tag as being "rarely used".  (Victor Sanders)
  - typo and whitespace fixes (RT#62785, thanks to
  - The -dtd argument to start_html() is now documented
    (RT#60473, Thanks to giecrilj and
  - CGI::Carp doc are updated to reflect that it can work with mod_perl 2.0.
  - when creating a temporary file in the directory fails, the error message
    could indicate the root of the problem better (Peter Gervai, Niko Tyni)

  - Re-fixing https test in http.t. (RT#54768, thanks to SPROUT)
  - param_fetch no longer triggers a warning when called with no arguments (ysth, Mark Stosberg)

10 years agoCalling "PRINT" on a tied STDERR can use G_DISCARD, as the result is ignored.
Nicholas Clark [Wed, 5 Jan 2011 16:39:50 +0000 (16:39 +0000)]
Calling "PRINT" on a tied STDERR can use G_DISCARD, as the result is ignored.

10 years agoDevel-Peek/ update example outputs in pod
David Mitchell [Wed, 5 Jan 2011 18:39:30 +0000 (18:39 +0000)]
Devel-Peek/ update example outputs in pod

Quite a lot has changed since those examples were written:
the RV body type no longer exists, the indentation is different,
the address of the SV as well as its body is now displayed,
and various fields are no longer displayed by default.

Also, as per,
the 2-element array example had the wrong FILL/MAX.

10 years agoutf8.h: Add macros for problematic code points
Karl Williamson [Wed, 5 Jan 2011 17:11:49 +0000 (10:11 -0700)]
utf8.h: Add macros for problematic code points

Surrogates, non-character code points, and non-Unicode code points are
problematic in some contexts.  These macros allow easy determination if
a code point is in one of these classes.  There are versions both for
UVs, and utf8-encoded.

10 years agoConvert tied READLINE to using Perl_tied_method()
Nicholas Clark [Wed, 5 Jan 2011 15:47:44 +0000 (15:47 +0000)]
Convert tied READLINE to using Perl_tied_method()

10 years agoperlrepository: Add example of why tests need running
Karl Williamson [Mon, 3 Jan 2011 23:52:53 +0000 (16:52 -0700)]
perlrepository: Add example of why tests need running

10 years agoConvert tied PRINT to using Perl_tied_method()
Nicholas Clark [Wed, 5 Jan 2011 13:19:50 +0000 (13:19 +0000)]
Convert tied PRINT to using Perl_tied_method()

Add a flag TIED_METHOD_SAY to Perl_tied_method(), to allow tied PRINT to
effect C<local $\ = "\n";> within the ENTER/LEAVE pair of Perl_tied_method().

10 years agoConvert tied SPLICE to using Perl_tied_method()
Nicholas Clark [Wed, 5 Jan 2011 12:39:53 +0000 (12:39 +0000)]
Convert tied SPLICE to using Perl_tied_method()

10 years agoRename tied_handle_method() to tied_method(), and make it non-static.
Nicholas Clark [Wed, 5 Jan 2011 11:43:58 +0000 (11:43 +0000)]
Rename tied_handle_method() to tied_method(), and make it non-static.

It can be used for (at least) the call to "SPLICE" from pp_splice.

10 years agoIn pp_sys.c, rename the macro tied_handle_method() to tied_handle_method0()
Nicholas Clark [Wed, 5 Jan 2011 11:07:22 +0000 (11:07 +0000)]
In pp_sys.c, rename the macro tied_handle_method() to tied_handle_method0()

This makes it clear that it's not a direct aTHX_ wrapper for

10 years agoThe mg parameter to S_tied_handle_method() can be const MG *
Nicholas Clark [Wed, 5 Jan 2011 10:58:03 +0000 (10:58 +0000)]
The mg parameter to S_tied_handle_method() can be const MG *

10 years agoSplit the flags and argc parameters to S_tied_handle_method().
Nicholas Clark [Wed, 5 Jan 2011 09:47:09 +0000 (09:47 +0000)]
Split the flags and argc parameters to S_tied_handle_method().

Previously they were combined into one numeric value, using a bitshift. This
was a false economy.

10 years agoremove cc_runtime.h from core
David Mitchell [Wed, 5 Jan 2011 11:56:15 +0000 (11:56 +0000)]
remove cc_runtime.h from core

It was only needed for B::CC, which was removed from core
in 5.10.0

10 years agoSupport emulation of AI_NUMERICSERV even though it's not strictly RFC 2553, because...
Paul "LeoNerd" Evans [Tue, 4 Jan 2011 17:04:47 +0000 (17:04 +0000)]
Support emulation of AI_NUMERICSERV even though it's not strictly RFC 2553, because most OSes support it anyway, and it's easy to do

10 years agoperlfaq1: less "more faster"
brian d foy [Wed, 5 Jan 2011 05:00:30 +0000 (23:00 -0600)]
perlfaq1: less "more faster"

10 years agomktables: Small performance enhancement
Karl Williamson [Wed, 5 Jan 2011 00:01:09 +0000 (17:01 -0700)]
mktables: Small performance enhancement

Instead of generating a separate list of missing ranges in a table, it's
less work to use the fill-in the missing ranges feature.

10 years agomktables: white space-only change
Karl Williamson [Tue, 4 Jan 2011 23:59:45 +0000 (16:59 -0700)]
mktables: white space-only change

A previous commit removed the 'if' around this code, so can outdent it.

10 years agomktables: remove unneeded test
Karl Williamson [Tue, 4 Jan 2011 23:56:55 +0000 (16:56 -0700)]
mktables: remove unneeded test

When I was originally writing this code, I thought it was faster to do
an extra substr to avoid a regex match.  I have since found out that is
not true.

10 years agomktables: typos in comments
Karl Williamson [Tue, 4 Jan 2011 23:56:31 +0000 (16:56 -0700)]
mktables: typos in comments

10 years agomktables: improve debug statement
Karl Williamson [Tue, 4 Jan 2011 23:53:13 +0000 (16:53 -0700)]
mktables: improve debug statement

Don't output an empty list.

10 years agomktables: Add error check
Karl Williamson [Tue, 4 Jan 2011 23:50:04 +0000 (16:50 -0700)]
mktables: Add error check

This makes sure that in certain cases when adding to a table that we
know should not have elements in the area that it actually does.

10 years agoUse Zero() rather than rely on C99 struct initialiser behaviour
Paul "LeoNerd" Evans [Tue, 4 Jan 2011 16:38:08 +0000 (16:38 +0000)]
Use Zero() rather than rely on C99 struct initialiser behaviour

Signed-off-by: Ævar Arnfjörð Bjarmason <>
10 years agoConvert tied WRITE to using S_tied_handle_method()
Nicholas Clark [Tue, 4 Jan 2011 16:59:46 +0000 (16:59 +0000)]
Convert tied WRITE to using S_tied_handle_method()

10 years agoConvert tied READ to using S_tied_handle_method()
Nicholas Clark [Tue, 4 Jan 2011 15:31:03 +0000 (15:31 +0000)]
Convert tied READ to using S_tied_handle_method()

10 years agoConvert tied PRINTF to using S_tied_handle_method()
Nicholas Clark [Tue, 4 Jan 2011 12:23:30 +0000 (12:23 +0000)]
Convert tied PRINTF to using S_tied_handle_method()

10 years agoConvert tied OPEN to using S_tied_handle_method()
Nicholas Clark [Tue, 4 Jan 2011 11:54:25 +0000 (11:54 +0000)]
Convert tied OPEN to using S_tied_handle_method()

Add a new flag ARGUMENTS_ON_STACK to S_tied_handle_method(), which methods
which take a list (OPEN, PRINTF, READ and WRITE) will need.

10 years agoIn pp_sys.c, move S_tied_handle_method() before pp_open.
Nicholas Clark [Tue, 4 Jan 2011 11:36:48 +0000 (11:36 +0000)]
In pp_sys.c, move S_tied_handle_method() before pp_open.

10 years agostash.t: make TODO tests only TODO under threads
David Mitchell [Tue, 4 Jan 2011 14:36:37 +0000 (14:36 +0000)]
stash.t: make TODO tests only TODO under threads

.. since they only fail under threads.

10 years agoRemove a long-vestigial PUTBACK from the tied OPEN code in pp_send.
Nicholas Clark [Tue, 4 Jan 2011 10:13:42 +0000 (10:13 +0000)]
Remove a long-vestigial PUTBACK from the tied OPEN code in pp_send.

Commit 4592e6caefc41a75, from 1999, added the PUTBACK as part of the initial
implementation of tied OPEN. At this time, pp_open (as then was) popped the
arguments off the stack (to local variables), so the new tie code pushed them
back onto the stack, before calling the method. The stack position was
manipulated, hence the local variable sp had potentially diverged from the
global PL_stack_sp, hence the latter needed updating.

Commit a567e93b903bc984, from 2001, which added support for
open $fh, '|-', @array; refactored pp_open to avoid all stack manipulation.
Hence sp (the local variable) never changes along this code path, hence it
never needs to be written back to PL_stack_sp.

10 years agoConverge the implementation of tied OPEN with PRINTF, READ and WRITE.
Nicholas Clark [Tue, 4 Jan 2011 09:48:27 +0000 (09:48 +0000)]
Converge the implementation of tied OPEN with PRINTF, READ and WRITE.

Consistency will make it easier to refactor.

10 years agobuild man pages on cygwin too
Reini Urban [Tue, 14 Sep 2010 16:04:22 +0000 (18:04 +0200)]
build man pages on cygwin too

10 years agoImprove cygwin rebase behaviour
Reini Urban [Tue, 14 Sep 2010 15:54:15 +0000 (17:54 +0200)]
Improve cygwin rebase behaviour

If a dll is updated on cygwin reuse the old imagebase address.
This solves most rebase errors, esp when updating on core dll's.

10 years agoRefactor filenames.t to use unlike() and cmp_ok() for better diagnostics.
Nicholas Clark [Tue, 4 Jan 2011 08:29:35 +0000 (08:29 +0000)]
Refactor filenames.t to use unlike() and cmp_ok() for better diagnostics.

Also, use regexs in place of the loops over @dont and @more_dont, the lists
of Win32 (was DOS (was CP/M)) reserved device filenames and of disallowed
characters. This makes the intent clearer, at the cost of some runtime.

10 years agoDon't install Cygwin code into other platforms
Jan Dubois [Tue, 4 Jan 2011 02:40:17 +0000 (18:40 -0800)]
Don't install Cygwin code into other platforms

DynaLoader already has its own preprocessor to filter out code that
is only relevant on other platforms, so use it for the change from
commit cc7e77fd

10 years agoupdate t/porting/filenames.t to check for path components contaning two
Jesse Vincent [Mon, 3 Jan 2011 17:24:05 +0000 (01:24 +0800)]
update t/porting/filenames.t to check for path components contaning two
"." characters or with lenghts exceeding 32 characters.

10 years agoregen/ add comments to overload.[ch]
David Mitchell [Mon, 3 Jan 2011 16:49:02 +0000 (16:49 +0000)]
regen/ add comments to overload.[ch]

In the auto-generated overload.c and overload.h files, add a comment to
each line mapping from the method name to the enumeration name and

10 years agoActuall excise 'Apollo DomainOS' support. We officially killed it in 5.11.0. It
Jesse Vincent [Mon, 3 Jan 2011 16:41:22 +0000 (00:41 +0800)]
Actuall excise 'Apollo DomainOS' support. We officially killed it in 5.11.0. It
hadn't worked for years before that.

10 years agoAdd link for v5.8.5-RC1 announcement
Zsbán Ambrus [Mon, 3 Jan 2011 16:41:35 +0000 (08:41 -0800)]
Add link for v5.8.5-RC1 announcement

10 years agoCYG14 Dynaloader without USEIMPORTLIB, and search cyg prefix
Reini Urban [Tue, 14 Sep 2010 15:48:32 +0000 (17:48 +0200)]
CYG14 Dynaloader without USEIMPORTLIB, and search cyg prefix

part1: Support the standard cyg dll prefix, which is e.g. needed for FFI's.
Ctypes and C::DynaLib use DynaLoader to find dlls.

part2: With -DUSEIMPORTLIB DynaLoader symbols link against the prefixed
symbol names for the .dll.a importlib, but we need to link against the
symbols directly. We don't link Dynaloader against libperl.dll.a.

$ g++-4 -o cygperl5_13_4.dll --shared perlsrc.o cygwin.o  DynaLoader.o -ldl -lcrypt
  Creating library file: libperl.dll.a
  DynaLoader.o: In function `XS_DynaLoader_dl_undef_symbols':
  ext/DynaLoader/DynaLoader.c:346: undefined reference to `__imp__PL_stack_sp'
  ext/DynaLoader/DynaLoader.c:346: undefined reference to `__imp__PL_markstack_ptr'
  ext/DynaLoader/DynaLoader.c:346: undefined reference to `__imp__PL_stack_base'

10 years agoUpdate cygwin hints
Reini Urban [Tue, 14 Sep 2010 16:06:38 +0000 (18:06 +0200)]
Update cygwin hints
do not use usemymalloc (double size + slow)
remove deprecated libcygipc info
remove overlarge stack size

10 years agoreindent tryAMAGICunTARGET after previous change
David Mitchell [Mon, 3 Jan 2011 12:56:51 +0000 (12:56 +0000)]
reindent tryAMAGICunTARGET after previous change

10 years agosimplify tryAMAGICunTARGET
David Mitchell [Mon, 3 Jan 2011 12:54:21 +0000 (12:54 +0000)]
simplify tryAMAGICunTARGET

Expecting the targ in sp[-1] rather than sp[0] is accomplished
cleanly using dATARGET.

10 years agofix a few typos in lib/overload.t
David Mitchell [Mon, 3 Jan 2011 12:51:27 +0000 (12:51 +0000)]
fix a few typos in lib/overload.t

10 years agoReindent pp_rv2av
Vincent Pit [Mon, 3 Jan 2011 11:05:57 +0000 (12:05 +0100)]
Reindent pp_rv2av

10 years agomissing article
Father Chrysostomos [Mon, 3 Jan 2011 07:49:17 +0000 (23:49 -0800)]
missing article

10 years ago(no commit message)
Father Chrysostomos [Mon, 3 Jan 2011 07:38:32 +0000 (23:38 -0800)]

10 years agoSilence a compiler warning
Father Chrysostomos [Mon, 3 Jan 2011 07:21:14 +0000 (23:21 -0800)]
Silence a compiler warning

10 years agoRestore the old description of $[
Father Chrysostomos [Mon, 3 Jan 2011 07:14:37 +0000 (23:14 -0800)]
Restore the old description of $[

The new entry is a bit too futuristic: assignment to $[ still works
and it is not read-only.

This does not fully restore the old description, as it contained
grammatical errors and parts of it were not updated when 5.10 changed
the scoping.

10 years agoRevert "[perl #68654] next::method doesn't see UNIVERSAL"
Father Chrysostomos [Mon, 3 Jan 2011 07:00:57 +0000 (23:00 -0800)]
Revert "[perl #68654] next::method doesn't see UNIVERSAL"

This reverts commit a5cd004dbd757df2bcf9e17aab6a8ed1272157d7.

10 years agoRevert "[perl #80098] Bleadperl breaks Attribute::Lexical"
Father Chrysostomos [Mon, 3 Jan 2011 07:00:53 +0000 (23:00 -0800)]
Revert "[perl #80098] Bleadperl breaks Attribute::Lexical"

This reverts commit 1726bc11330f7a943b1e12c6dd5fa5454b90abd6.

10 years ago[perl #45147] Issue with the exists function
Peter Martini [Mon, 3 Jan 2011 06:54:04 +0000 (22:54 -0800)]
[perl #45147] Issue with the exists function

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.

10 years ago[perl #81032] Overhaul Porting/epigraphs.pod
Zsbán Ambrus [Mon, 3 Jan 2011 04:25:55 +0000 (20:25 -0800)]
[perl #81032] Overhaul Porting/epigraphs.pod

This patch makes multiple changes to Porting/epigraphs.pod and

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
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.

10 years agoGive a warning if pack_sockaddr_in6 is asked to pack a non-zero scope_id on machines...
Paul "LeoNerd" Evans [Thu, 30 Dec 2010 20:50:13 +0000 (20:50 +0000)]
Give a warning if pack_sockaddr_in6 is asked to pack a non-zero scope_id on machines that can't support it

10 years agoUse HAS_SIN6_SCOPE_ID rather than glibc version testing
Paul "LeoNerd" Evans [Thu, 30 Dec 2010 19:26:19 +0000 (19:26 +0000)]
Use HAS_SIN6_SCOPE_ID rather than glibc version testing

10 years agoBugfix to 's GAI fallback constants - use $name rather than $_
Paul "LeoNerd" Evans [Thu, 16 Dec 2010 11:49:49 +0000 (11:49 +0000)]
Bugfix to 's GAI fallback constants - use $name rather than $_

10 years agoCapture newly-created unit tests to MANIFEST
Paul "LeoNerd" Evans [Wed, 15 Dec 2010 16:02:19 +0000 (16:02 +0000)]
Capture newly-created unit tests to MANIFEST

10 years agoMake 'use strict' clean
Paul "LeoNerd" Evans [Wed, 15 Dec 2010 15:13:19 +0000 (15:13 +0000)]
Make 'use strict' clean

10 years agoProvide fallback implementation of getaddrinfo and getnameinfo in pure perl if libc...
Paul "LeoNerd" Evans [Wed, 15 Dec 2010 14:37:51 +0000 (14:37 +0000)]
Provide fallback implementation of getaddrinfo and getnameinfo in pure perl if libc doesn't provide one

10 years agoInitial documentation of getaddrinfo and getnameinfo functions
Paul "LeoNerd" Evans [Mon, 13 Dec 2010 18:13:10 +0000 (18:13 +0000)]
Initial documentation of getaddrinfo and getnameinfo functions

10 years agoUnit tests for Socket::getaddrinfo() and Socket::getnameinfo()
Paul "LeoNerd" Evans [Mon, 13 Dec 2010 17:50:56 +0000 (17:50 +0000)]
Unit tests for Socket::getaddrinfo() and Socket::getnameinfo()

10 years agoImplement Socket::getaddrinfo() and Socket::getnameinfo(), with related constants
Paul "LeoNerd" Evans [Mon, 13 Dec 2010 17:50:06 +0000 (17:50 +0000)]
Implement Socket::getaddrinfo() and Socket::getnameinfo(), with related constants

10 years agoConditionally set sa_len-type fields when packing sockaddr addresses
Paul "LeoNerd" Evans [Fri, 10 Dec 2010 15:02:30 +0000 (15:02 +0000)]
Conditionally set sa_len-type fields when packing sockaddr addresses

10 years agoAdd new test file t/porting/filenames.t
Nuno Carvalho [Fri, 24 Dec 2010 23:10:49 +0000 (23:10 +0000)]
Add new test file t/porting/filenames.t

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.

10 years agoClever tests may fool with $^O.
Craig A. Berry [Mon, 3 Jan 2011 00:19:51 +0000 (18:19 -0600)]
Clever tests may fool with $^O.

So make t/ use its private version throughout.

10 years agoAdd JSON::PP to the Perl core
David Golden [Fri, 31 Dec 2010 04:43:44 +0000 (23:43 -0500)]
Add JSON::PP to the Perl core

Per discussions with Jesse Vincent, JSON::PP has been added
to the Perl core to support the new CPAN meta file specification

10 years agotests for [perl #36347] Object destruction incomplete
Father Chrysostomos [Mon, 3 Jan 2011 02:30:17 +0000 (18:30 -0800)]
tests for [perl #36347] Object destruction incomplete

10 years ago[perl #36347] Object destruction incomplete
Father Chrysostomos [Sun, 2 Jan 2011 22:51:21 +0000 (14:51 -0800)]
[perl #36347] Object destruction incomplete

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.

10 years agoMerge branch 'briandfoy/perlfaq' into blead
brian d foy [Mon, 3 Jan 2011 02:27:39 +0000 (20:27 -0600)]
Merge branch 'briandfoy/perlfaq' into blead

10 years agoperlfaq1: Adjust some of the language around the Perl 6 references
brian d foy [Mon, 3 Jan 2011 02:26:01 +0000 (20:26 -0600)]
perlfaq1: Adjust some of the language around the Perl 6 references

10 years ago[perl #73630] Build separate DTrace for miniperl
David Leadbeater [Sun, 2 Jan 2011 22:33:16 +0000 (14:33 -0800)]
[perl #73630] Build separate DTrace for miniperl

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.)

10 years agoUpdate CPAN::Meta::YAML to 0.003
David Golden [Sun, 2 Jan 2011 22:34:44 +0000 (17:34 -0500)]
Update CPAN::Meta::YAML to 0.003

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

10 years ago[perl #81500] Make compilation work when NO_ENV_ARRAY_IN_MAIN is defined
David Leadbeater [Sun, 2 Jan 2011 21:38:21 +0000 (13:38 -0800)]
[perl #81500] Make compilation work when NO_ENV_ARRAY_IN_MAIN is defined

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.

10 years ago[perl #81400] Fix bmodinv() part of RT 63237
Peter John Acklam [Sun, 2 Jan 2011 21:13:31 +0000 (13:13 -0800)]
[perl #81400] Fix bmodinv() part of RT 63237

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/ 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/ 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/ Fix same test case as above.
  Math::BigRat::bmodinv() only handles integers, and is essentially just a
  front-end to Math::BigInt::bmodinv().

10 years agoDon't clobber $^O when you're going to use it again.
Craig A. Berry [Sun, 2 Jan 2011 21:16:11 +0000 (15:16 -0600)]
Don't clobber $^O when you're going to use it again.

Even if using it means relying on t/ functionality such as

10 years agoGvIO(gv) returns NULL for a NULL gv, so refactor to take advantage of this.
Nicholas Clark [Sun, 2 Jan 2011 20:56:21 +0000 (20:56 +0000)]
GvIO(gv) returns NULL for a NULL gv, so refactor to take advantage of this.

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

10 years agomake <expr> always overload if expr is overloaded
David Mitchell [Sun, 2 Jan 2011 19:38:30 +0000 (19:38 +0000)]
make <expr> always overload if expr is overloaded

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.

10 years agooverloaded <> sometimes left an extra stack arg
David Mitchell [Sun, 2 Jan 2011 15:04:50 +0000 (15:04 +0000)]
overloaded <> sometimes left an extra stack arg

10 years agocall pp_glob() even when its being skipped
David Mitchell [Fri, 31 Dec 2010 18:55:36 +0000 (18:55 +0000)]
call pp_glob() even when its being skipped

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:

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.

10 years agock_glob() - add a little code comment
David Mitchell [Fri, 31 Dec 2010 14:53:24 +0000 (14:53 +0000)]
ck_glob() - add a little code comment

10 years ago1; is not a valid no-op for /bin/sh, but true is.
Nicholas Clark [Sun, 2 Jan 2011 17:01:49 +0000 (18:01 +0100)]
1; is not a valid no-op for /bin/sh, but true is.

b99c822f5c5b52c3 was not actually correct in identify the cause of the errors.
(although still a valid change to make for the sake of consistency)

10 years agoUpdate META.yml's no_index after the Time-Local move
Florian Ragwitz [Sun, 2 Jan 2011 17:08:26 +0000 (18:08 +0100)]
Update META.yml's no_index after the Time-Local move

We should probably write a porting test for that at some point.

10 years agoCPAN is upstream for Time::Local again
Florian Ragwitz [Sun, 2 Jan 2011 16:19:37 +0000 (17:19 +0100)]
CPAN is upstream for Time::Local again

10 years agoMake Time::Local run on perls older than 5.12 again
Florian Ragwitz [Sun, 2 Jan 2011 15:25:52 +0000 (16:25 +0100)]
Make Time::Local run on perls older than 5.12 again

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.

10 years agochmod +x metaconfig.SH.
Nicholas Clark [Sun, 2 Jan 2011 10:40:25 +0000 (10:40 +0000)]
chmod +x metaconfig.SH.

Otherwise ./Configure -S generates a diagnostic, as it expects to be able to
execute it.

10 years agoperlbug did not previously generate a From: header. While some MTAs do
Jesse Vincent [Sun, 2 Jan 2011 02:50:21 +0000 (10:50 +0800)]
perlbug did not previously generate a From: header. While some MTAs do
the "right" thing and insert a valid "From:", not all of them do,
potentially resulting in dropped mail.

10 years agoEnsure ExtUtils::CBuilder's 04-base.t cleans up its temporary directories.
Nicholas Clark [Sat, 1 Jan 2011 15:33:18 +0000 (15:33 +0000)]
Ensure ExtUtils::CBuilder's 04-base.t cleans up its temporary directories.

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

10 years agoDocument 'test_porting' and start a section on how committing to blead
Jesse Vincent [Sat, 1 Jan 2011 10:46:20 +0000 (18:46 +0800)]
Document 'test_porting' and start a section on how committing to blead

10 years agoUpdate Encode to CPAN version 2.42
Chris 'BinGOs' Williams [Sat, 1 Jan 2011 10:37:04 +0000 (10:37 +0000)]
Update Encode to CPAN version 2.42


  $Revision: 2.42 $ $Date: 2010/12/31 22:48:48 $
  ! Encode.xs
  ! Unicode/Unicode.xs
    Applied: RT#64371: Update for 5.14 API changes

10 years agoAvoid using OP_NAME() in unimplemented_op(), as it won't give useful strings.
Nicholas Clark [Fri, 31 Dec 2010 16:20:11 +0000 (16:20 +0000)]
Avoid using OP_NAME() in unimplemented_op(), as it won't give useful strings.

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. */

10 years agoPorting/ add (MY)META.json to ignored files
David Golden [Fri, 31 Dec 2010 16:29:33 +0000 (11:29 -0500)]
Porting/ add (MY)META.json to ignored files

10 years agostandardise amagic method naming
David Mitchell [Thu, 30 Dec 2010 16:29:12 +0000 (16:29 +0000)]
standardise amagic method naming

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

10 years agoVMS nits in cpan/Test-Harness/t/source.t
Craig A. Berry [Fri, 31 Dec 2010 01:45:13 +0000 (19:45 -0600)]
VMS nits in cpan/Test-Harness/t/source.t

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: