This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perl5.git
11 years agoBring Locale::Maketext ChangeLog up to date with all recent commits
Todd Rinaldo [Thu, 7 Oct 2010 18:41:21 +0000 (19:41 +0100)]
Bring Locale::Maketext ChangeLog up to date with all recent commits

Signed-off-by: Chris 'BinGOs' Williams <chris@bingosnet.co.uk>
11 years agoConvert the implementation of XS_VERSION_BOOTCHECK to a function from a macro.
Nicholas Clark [Thu, 7 Oct 2010 15:30:32 +0000 (16:30 +0100)]
Convert the implementation of XS_VERSION_BOOTCHECK to a function from a macro.

The macro expansion generates over 1K of object code. This is in every shared
object, and is only called once. Hence this change increases the perl binary
by about 1K (once), to save 1K for every XS module loaded.

11 years agoXS::APItest tests for XS_VERSION_BOOTCHECK.
Nicholas Clark [Thu, 7 Oct 2010 14:47:14 +0000 (15:47 +0100)]
XS::APItest tests for XS_VERSION_BOOTCHECK.

11 years agoImprove XSLoader::load documentation.
Nicholas Clark [Thu, 7 Oct 2010 10:19:26 +0000 (11:19 +0100)]
Improve XSLoader::load documentation.

Document that all arguments are passed on to the module's bootstrap function,
and the behaviour of the bootstrap function in modules built by xsubpp.

11 years agoImprove DynaLoader::bootstrap documentation.
Nicholas Clark [Thu, 7 Oct 2010 10:16:30 +0000 (11:16 +0100)]
Improve DynaLoader::bootstrap documentation.

Document that all arguments are passed on to the module's bootstrap function,
and the behaviour of the bootstrap function in modules built by xsubpp.

11 years agoUpdate Win32 makefiles to remove perl5136delta.pod rather than perl5135delta.pod...
Steve Hay [Thu, 7 Oct 2010 09:22:41 +0000 (10:22 +0100)]
Update Win32 makefiles to remove perl5136delta.pod rather than perl5135delta.pod when cleaning

11 years agoPatch for Stratus VOS for extended file names
Paul Green [Thu, 7 Oct 2010 06:43:18 +0000 (23:43 -0700)]
Patch for Stratus VOS for extended file names

The attached 1-line patch to hints/vos.sh defines a C macro that enables
support for file names longer than 32 characters on the Stratus OpenVOS
port of perl. As there are now some files in the base package whose
names exceed 32 chars, this is an important change.

This change only applies to OpenVOS (horay for the hints files)! I
tested this change on OpenVOS Release 17.0.2ab.

I have also updated the .pod files that refer to VOS/OpenVOS.

11 years agoRemove MEMBER_TO_FPTR.
Ben Morrow [Tue, 5 Oct 2010 17:55:41 +0000 (18:55 +0100)]
Remove MEMBER_TO_FPTR.

This is left over from PERL_OBJECT (see beeff2, 16c915, and so on).

11 years agoNo distinction between .PL and .pl if case is not preserved.
Craig A. Berry [Thu, 7 Oct 2010 00:19:33 +0000 (19:19 -0500)]
No distinction between .PL and .pl if case is not preserved.

Follow-up to 13b5e8d8173af2197798ae78b4520ece8cb1151c.

On VMS, the CRTL downcases filenames by default, so pod2foo.PL
comes through as pod2foo.pl.  We need to match that so we paste
on the right extension for the generated command procedure.

11 years agoUpdate Unicode-Collate to CPAN version 0.62
Chris 'BinGOs' Williams [Wed, 6 Oct 2010 23:12:46 +0000 (00:12 +0100)]
Update Unicode-Collate to CPAN version 0.62

  [DELTA]

  0.62  Wed Oct  6 21:35:54 2010
    - U::C::Locale newly supports locales: ar, hu, hy, se, to, uk.
    - Vietnamese (vi): added tailoring for U+0340 and U+0341.

11 years agoAvoid defining a full XSLoader::bootstrap_inherit post 5.6, as it's not needed.
Nicholas Clark [Wed, 6 Oct 2010 18:20:04 +0000 (19:20 +0100)]
Avoid defining a full XSLoader::bootstrap_inherit post 5.6, as it's not needed.

Previously the full pre 5.6 XSLoader::bootstrap_inherit emulation code was
always declared, but only used with a *runtime* check of Perl version.

However, it appears to be part of the implicit API of XSLoader that
XSLoader::bootstrap_inherit exists, so keep a stub implementation post 5.6
 the commit.

11 years agoAdd 'dlext' and 'so' to the initial %Config::Config
Nicholas Clark [Wed, 6 Oct 2010 14:17:08 +0000 (15:17 +0100)]
Add 'dlext' and 'so' to the initial %Config::Config

This avoids Config.pm loading Config_heavy.pl when DynaLoader.pm is loaded.
It has been reading these at run time since 37589e1eefb1bd62, which post-dates
the analysis of which %Config::Config values are most "popular".

11 years agoGenerate the core-only Makefile.PL for podlators using make_ext.
Nicholas Clark [Tue, 5 Oct 2010 18:30:59 +0000 (19:30 +0100)]
Generate the core-only Makefile.PL for podlators using make_ext.

Using make_ext to generate it uses less code than committing a special
core-only Makefile.PL to the repository, and is no more complex.

11 years agoMoving all pod/*.PL files to ext/ (and cpan/) is now done.
Nicholas Clark [Tue, 5 Oct 2010 16:39:01 +0000 (17:39 +0100)]
Moving all pod/*.PL files to ext/ (and cpan/) is now done.

11 years agoEliminate the now unused Makefile targets plextract, pl and pllist.
Nicholas Clark [Tue, 5 Oct 2010 13:45:15 +0000 (14:45 +0100)]
Eliminate the now unused Makefile targets plextract, pl and pllist.

11 years agoMove pod2html.PL into ext/Pod-Html
Nicholas Clark [Tue, 5 Oct 2010 13:19:08 +0000 (14:19 +0100)]
Move pod2html.PL into ext/Pod-Html

Let ExtUtils::MakeMaker deal with running these extraction scripts, rather than
repeating the logic in (at least) 5 places.

11 years agoMove pod2man.PL, pod2text.PL, podselect.PL into cpan/podlators/scripts
Nicholas Clark [Tue, 5 Oct 2010 10:07:14 +0000 (11:07 +0100)]
Move pod2man.PL, pod2text.PL, podselect.PL into cpan/podlators/scripts

Let ExtUtils::MakeMaker deal with running these extraction scripts, rather than
repeating the logic in (at least) 5 places.

11 years agoMove pod2usage.PL, podchecker.PL, podselect.PL into cpan/Pod-Parser/scripts
Nicholas Clark [Tue, 5 Oct 2010 06:32:21 +0000 (07:32 +0100)]
Move pod2usage.PL, podchecker.PL, podselect.PL into cpan/Pod-Parser/scripts

Let ExtUtils::MakeMaker deal with running these extraction scripts, rather than
repeating the logic in (at least) 5 places.

11 years agoMove pod2latex.PL into its CPAN distribution directory.
Nicholas Clark [Thu, 2 Sep 2010 14:12:24 +0000 (15:12 +0100)]
Move pod2latex.PL into its CPAN distribution directory.

Let ExtUtils::MakeMaker deal with running this extraction script, rather than
repeating the logic in (at least) 5 places.

11 years agoMove Pod::Html from lib/ to ext/
Nicholas Clark [Tue, 5 Oct 2010 12:35:56 +0000 (13:35 +0100)]
Move Pod::Html from lib/ to ext/

11 years agomake_ext.pl now writes Makefile.PL that cope with pod*.PL self-extractors.
Nicholas Clark [Tue, 5 Oct 2010 04:42:22 +0000 (05:42 +0100)]
make_ext.pl now writes Makefile.PL that cope with pod*.PL self-extractors.

The "fun" comes because

1: these extract as pod2foo.com on VMS, pod2foo everywhere else
2: these contain a chdir, which messes up relative paths in @INC

11 years agotest_prep has a dependency on x2p/s2p
Nicholas Clark [Tue, 5 Oct 2010 12:23:53 +0000 (13:23 +0100)]
test_prep has a dependency on x2p/s2p

This has not been spotted because is has a dependency on $(plextract) which
in turn depends on x2p/s2p

11 years agoThe *.PL scripts in utils/ have a dependency on Cwd in lib.
Nicholas Clark [Tue, 5 Oct 2010 12:06:22 +0000 (13:06 +0100)]
The *.PL scripts in utils/ have a dependency on Cwd in lib.

This has not been spotted because they have a dependency on $(plextract) which
in turn depends on $(dynamic_ext).

11 years ago[perl #73534] Bigrat segfaults on irrational numbers
Father Chrysostomos [Tue, 5 Oct 2010 06:04:44 +0000 (23:04 -0700)]
[perl #73534] Bigrat segfaults on irrational numbers

aka [rt.cpan.org #55767] segfault on sqrt(2) with bigrat

The problem seems to be in &Math::BigInt::objectify. It doesn’t try to
convert the number object into the right class if $upgrade is defined.
The attached patch changes it to make sure it belongs to the calling
class or to the $upgrade class.

Here is a ‘one’-liner to trigger the same bug without bigrat:

perl -Ilib -MMath::BigInt=upgrade,Math::BigFloat \
 -MMath::BigFloat=upgrade,Math::BigMouse -le \
 '@Math::BigMouse::ISA = Math::BigFloat; print sqrt Math::BigInt->new(2)'

11 years ago* Update the versions numbers for stable in perlfaq1
brian d foy [Tue, 5 Oct 2010 05:52:40 +0000 (01:52 -0400)]
* Update the versions numbers for stable in perlfaq1
    I'm considering that this becomes official with 5.14, so
    'stable' is a bit in the future

11 years ago* Clarified a pronoun in perlfaq4
brian d foy [Tue, 5 Oct 2010 05:47:11 +0000 (01:47 -0400)]
* Clarified a pronoun in perlfaq4

How do I strip blank space from the beginning/end of a string?

11 years agoperldelta entry for Locale::Maketext/$@
Father Chrysostomos [Tue, 5 Oct 2010 04:45:24 +0000 (21:45 -0700)]
perldelta entry for Locale::Maketext/$@

11 years agoRe-add a test deleted by the recent Locale::Maketext/$@ change
Father Chrysostomos [Tue, 5 Oct 2010 04:45:16 +0000 (21:45 -0700)]
Re-add a test deleted by the recent Locale::Maketext/$@ change

(and make it pass, too)

11 years agoUpdate MANIFEST for prev. Locale::Maketext change
Father Chrysostomos [Tue, 5 Oct 2010 03:21:06 +0000 (20:21 -0700)]
Update MANIFEST for prev. Locale::Maketext change

11 years agoCPAN RT 34182 (Locale::Maketext) - Don't unnecessarily localize $@.
Todd Rinaldo [Tue, 5 Oct 2010 03:15:59 +0000 (20:15 -0700)]
CPAN RT 34182 (Locale::Maketext) - Don't unnecessarily localize $@.
Do it in scope only so die messages fall through when desired.

Previously, there was test code to make sure $@ was not modified when
maketext is called, but if the caller wraps maketext in an eval, then
it's going to be modified anyways to '' at the least. If the caller
does not wrap a maketext call in an eval and maketext dies, then hiding
the $@ simply confuses the person debugging as to what went wrong.

We do however backup/restore $@ so that it does not break any code that
looks might use $@ after a successful call to maketext.
    eval {...}
    $lm->maketext($@);
    do_something_else($@);
In the above example, $@ would be the same when passed to do_something_else

11 years ago[perl #45133] -0.0 has variable Boolean value
Father Chrysostomos [Mon, 4 Oct 2010 20:58:49 +0000 (13:58 -0700)]
[perl #45133] -0.0 has variable Boolean value

This patch makes -0.0 stringify as "0" (while leaving sprintf %g/%f
unchanged).

11 years ago[perl #20661] Constant strings representing a number can BECOME numbers
Father Chrysostomos [Mon, 4 Oct 2010 19:24:37 +0000 (12:24 -0700)]
[perl #20661] Constant strings representing a number can BECOME numbers

The & | ^ operators now avoid turning on numericness of read-only
arguments.

11 years agoCorrect test names in negate.t
Father Chrysostomos [Mon, 4 Oct 2010 16:22:59 +0000 (09:22 -0700)]
Correct test names in negate.t

11 years agoperlop.pod: Clarify -’s string/number distinction
Father Chrysostomos [Mon, 4 Oct 2010 15:33:31 +0000 (08:33 -0700)]
perlop.pod: Clarify -’s string/number distinction

11 years agoperldelta for [perl #57706]
Father Chrysostomos [Mon, 4 Oct 2010 15:29:12 +0000 (08:29 -0700)]
perldelta for [perl #57706]

11 years ago[perl #57706] Unary minus on 'numeric' inputs like '-1'
Renée Bäcker [Mon, 4 Oct 2010 13:26:21 +0000 (06:26 -0700)]
[perl #57706] Unary minus on 'numeric' inputs like '-1'

The attached patch adds the conversion if the value of the SV
looks_like_number.

11 years agostop map,grep leaking temps [perl #48004]
David Mitchell [Mon, 4 Oct 2010 14:18:44 +0000 (15:18 +0100)]
stop map,grep leaking temps [perl #48004]

The former behaviour of map and grep was to never free any temps.
Thus for large lists (and even worse, nested maps), the tmps stack could
grow very large. For all cases expect list-context map, the fix is easy:
just do a FREETMPS at the end of each iteration.

The list-context map however, needs to accumulate a list of temporaries
over the course of the iterations, and finally return that list to the
caller (which is responsible for freeing them). We get round this by, at
the end of each iteration, directly manipulating the tmps stack to free
everything *except* the values to be returned. To make this efficient,
we splice in the returned tmp items at the base of the stack frame, move
PL_tmps_floor above them, then do a FREETMPS (so they may appear twice on
the temps stack, but initially only get freed once).

11 years ago[PATCH] function to parse Perl statement sequence
Zefram [Mon, 4 Oct 2010 08:26:42 +0000 (10:26 +0200)]
[PATCH] function to parse Perl statement sequence

New API function parse_stmtseq() parses a sequence of statements, up to
closing brace or EOF.

11 years agoadd stray save_* functions to the API
Zefram [Mon, 4 Oct 2010 08:14:28 +0000 (10:14 +0200)]
add stray save_* functions to the API

11 years agoUpdate AUTHORS
Rafael Garcia-Suarez [Mon, 4 Oct 2010 07:53:12 +0000 (09:53 +0200)]
Update AUTHORS

11 years agoFurther clarification on indirect filehandles
A. Sinan Unur [Mon, 4 Oct 2010 01:30:50 +0000 (21:30 -0400)]
Further clarification on indirect filehandles

A recent discussion on Stackoverflow.com indicated to me that there is
some potential for confusion in the "Indirect Filehandles" section in
perlopentut.pod. See comments to
http://stackoverflow.com/questions/3661161/writing-a-macro-in-perl/3661239#36612
39

The attached patch is my attempt at clarifying that indirect
filehandles are closed when there are no more references to them
rather than simply when the end of the current lexical scope is
reached. I also added an example of returning such a filehandle from a
subroutine.

I am not sure if this is the best way to word it, so I would
appreciate feedback.

The patch is attached.

-- Sinan

11 years agoperldelta and version bump for Cwd
Father Chrysostomos [Mon, 4 Oct 2010 00:13:49 +0000 (17:13 -0700)]
perldelta and version bump for Cwd

11 years ago[perl #51562] Problem & "solution" for building 5.10.0 w/win32+mingw+dmake
kmx [Mon, 4 Oct 2010 00:03:46 +0000 (17:03 -0700)]
[perl #51562] Problem & "solution" for building 5.10.0 w/win32+mingw+dmake

Run `cd`, rather than `cmd /c cd`, in miniperl on Windows.

11 years agoperldelta entries
Father Chrysostomos [Sun, 3 Oct 2010 23:03:13 +0000 (16:03 -0700)]
perldelta entries

11 years ago[perl #32380] numeric.c assumes that NV_DIG+2 will be enough digits
Ed Allen Smith [Sun, 3 Oct 2010 22:51:34 +0000 (15:51 -0700)]
[perl #32380] numeric.c assumes that NV_DIG+2 will be enough digits
for all precision possible in NV

numeric.c, in the Perl_my_atof2 function, makes the following assumption:

/* There is no point in processing more significant digits
 * than the NV can hold. Note that NV_DIG is a lower-bound value,
 * while we need an upper-bound value. We add 2 to account for this;
 * since it will have been conservative on both the first and last digit.
 * For example a 32-bit mantissa with an exponent of 4 would have
 * exact values in the set
 *               4
 *               8
 *              ..
 *     17179869172
 *     17179869176
 *     17179869180
 *
 * where for the purposes of calculating NV_DIG we would have to discount
 * both the first and last digit, since neither can hold all values from
 * 0..9; but for calculating the value we must examine those two digits.
 */
#define MAX_SIG_DIGITS (NV_DIG+2)

Digits beyond MAX_SIG_DIGITS are ignored. In some systems and/or modes
(e.g., with/without using long doubles), this is not the case. One
example is IRIX when using long doubles, which are not fully IEEE
compliant; with it, while NV_DIG (the _minimum_ number of digits
usable) is 31 for long doubles used as NVs, long doubles can have up
to 34 digits of accuracy. (As well as IRIX with long doubles, other
machines using a mode in which NV is not IEEE compliant (e.g., as
found by the following from numeric.c:

#ifdef ((defined(VMS) && !defined(__IEEE_FP)) || defined(_UNICOS))

(although UNICOS does not by default use Perl's atof in any event) or
as noted in the hints files for DEC OSF with the old MIPS CC) may
benefit from a change to this.) I will attach a test program, example
set of problematic outputs, and experimental patch so others can
explore this on their systems. (With the patch and a
-Accflags='-DMAX_SIG_DIG_PLUS=3' (or
-Accflags='-DMAX_SIG_DIG_PLUS=4'), the test program was
successful. Different values of MAX_SIG_DIG_PLUS may need to be
experimented with, especially with different other Configure/compiler
flags (long doubles yes/no, optimization affecting floating point,
etcetera); 3 was the maximum that did any good on IRIX with long
doubles, but others may differ.) I have done some local testing (as in
the normal testsuite) of the patch and different -DMAX_SIG_DIG_PLUS
values, and will be doing more; it is possible that it would be best
to build in the test program into, say, numconvert.t. Patching
hints/irix_6.sh to use -DMAX_SIG_DIG_PLUS=3 if long doubles are in
use, or a define of MAX_SIG_DIG_PLUS to 3 if defined(IRIX) and long
doubles are in use, is also advisable; I have not included either in my patch
because I was unsure which was recommended practice.

11 years agoUse isGV_with_GP in vms/vms.c for better glob recognition.
Craig A. Berry [Sun, 3 Oct 2010 22:41:58 +0000 (17:41 -0500)]
Use isGV_with_GP in vms/vms.c for better glob recognition.

Suggested by Father Chrysostomos in:

[perl #77500] VMS::Filespec and PVLV globs

Affected routines are candelete_fromperl and rmscopy_from_perl.

11 years agoeval_sv: followup fix to 4aca2f62ef
David Mitchell [Sun, 3 Oct 2010 21:28:28 +0000 (22:28 +0100)]
eval_sv: followup fix to 4aca2f62ef

My original fix broke the 'goto redo_body' path. Not that
anything tests for this!

11 years agoFix perl build problems on Stratus VOS
Paul Green [Sun, 3 Oct 2010 21:18:17 +0000 (14:18 -0700)]
Fix perl build problems on Stratus VOS

The attached text files contain patches to correct build problems on the
Stratus VOS (recently renamed "OpenVOS") operating system. I have tested
these changes on OpenVOS Release 17.0, which is the most-current
customer release. None of these changes should affect any other OS.

Makefile.SH: This patch removes the "miniperl" dependency of the "all"
target. On an operating system that does not require an executable
suffix, the miniperl$(EXE_EXT) dependency evaluates to "miniperl", too.
But on an operating system like VOS that does have an executable suffix,
miniperl$(EXE_EXT) evaluates to (in our case) "miniperl.pm" and the
"miniperl" target is unresolved.

ext/Socket/Socket.xs: Sadly, OpenVOS does not yet support IPv6. I edited
the code to allow for this case, while retaining IPv6 support for
operating systems that do support it.

11 years agoTest for RT#3363: lexical lvalue under recursion
George Greer [Mon, 19 Jul 2010 00:01:32 +0000 (20:01 -0400)]
Test for RT#3363: lexical lvalue under recursion

Add a test to ensure that S_refto returns a SVt_PVLV if the original
is a SVt_PVLV so that the lvalue-ness is preserved.

11 years agoAdd a refgen+PADTMP test
Father Chrysostomos [Sun, 3 Oct 2010 21:06:14 +0000 (14:06 -0700)]
Add a refgen+PADTMP test

11 years agoSmall efficiency nit for regcurly()
Karl Williamson [Sun, 3 Oct 2010 16:19:23 +0000 (10:19 -0600)]
Small efficiency nit for regcurly()

As previously written, a test was executed unnecessarily

11 years agotoke.c: call regcurly instead of duplicating code
Karl Williamson [Sun, 3 Oct 2010 16:18:27 +0000 (10:18 -0600)]
toke.c: call regcurly instead of duplicating code

Remove code that duplicates regcurly()

11 years agobetter documentation for eval_sv() and G_KEEPERR
David Mitchell [Sun, 3 Oct 2010 19:50:20 +0000 (20:50 +0100)]
better documentation for eval_sv() and G_KEEPERR

11 years agoG_KEEPERR sometimes set $@
David Mitchell [Sun, 3 Oct 2010 19:36:36 +0000 (20:36 +0100)]
G_KEEPERR sometimes set $@

eval_sv(sv,G_KEEPERR) is supposed to warn on errors, rather than
set $@; but in the particular case of compile-time errors it still
set $@ instead. See [perl ##3719].

11 years agoeval_sv() and eval_pv() don't fail on syntax err
David Mitchell [Sat, 2 Oct 2010 10:13:09 +0000 (11:13 +0100)]
eval_sv() and eval_pv() don't fail on syntax err

[perl #3719] eval_sv("some syntax err") cleared $@ and didn't return
a failure indication. This also affected eval_pv() which calls eval_sv().
Fix this and add lots of tests.

11 years agoAvoid downgrading GVs during global destruction
Father Chrysostomos [Sun, 3 Oct 2010 17:46:52 +0000 (10:46 -0700)]
Avoid downgrading GVs during global destruction

Recently we’ve been getting assertions from gv.t like this:

Assertion failed: (SvTYPE(sv) != SVTYPEMASK), function Perl_sv_clear, file sv.c, line 5783.

This only happens in non-threaded builds and with PERL_DESTRUCT_LEVEL
set to 2 (as in make test).

These started with 13be902 (lvalue-to-glob assignment), but only
because of the tests it added.

The real cause turns out to be f746176, which introduced
gv_try_downgrade.

If a subroutine contains an op that references a downgradable GV, then
gv_try_downgrade, if called on that GV during global destruction,
*might* leave dangling pointers elsewhere; where exactly I wot not.

Since memory-saving operations such as this downgrading are questiona-
ble anyway durng global destruction, skip it, at least for now.

11 years agoFixed typos -- replaced "the the" with "the"
Walt Mankowski [Sun, 3 Oct 2010 02:04:22 +0000 (22:04 -0400)]
Fixed typos -- replaced "the the" with "the"

11 years agoFixed typo -- replaced "the the" with "the"
Walt Mankowski [Sun, 3 Oct 2010 02:22:00 +0000 (22:22 -0400)]
Fixed typo -- replaced "the the" with "the"

11 years agoFixed typo -- changed "it's code point" to "its code point"
Walt Mankowski [Sun, 3 Oct 2010 02:30:42 +0000 (22:30 -0400)]
Fixed typo -- changed "it's code point" to "its code point"

11 years agoUpdate Unicode-Collate to CPAN version 0.61
Chris 'BinGOs' Williams [Sat, 2 Oct 2010 10:18:42 +0000 (11:18 +0100)]
Update Unicode-Collate to CPAN version 0.61

  [DELTA]

  0.61  Sat Oct  2 11:41:29 2010
    - U::C::Locale newly supports locales: hr, ig, sq.
    - precomposites of e-dot-below, o-dot-below, o-tilde are tailored as well.
        (affected locales: et, yo)
    - Vietnamese (vi): added contractions for non-blocked decompositions
      * base + dot-below + diacritical such as "a\x{323}\x{306} etc.
      * base + tone + horn such as "o\x{300}\x{31B}" etc.

11 years agostrictify vms/gen_shrfls.pl.
Craig A. Berry [Fri, 1 Oct 2010 15:39:46 +0000 (10:39 -0500)]
strictify vms/gen_shrfls.pl.

11 years agort 76474: Avoid the child perl reading from stdout
Tony Cook [Fri, 1 Oct 2010 08:58:37 +0000 (18:58 +1000)]
rt 76474: Avoid the child perl reading from stdout

FD 1 is stdout, and the "<&1" redirect in the test sets the child to
read from its parent's stdout, on Linux (and presumably OS X) doesn't
let you read from stdout, but FreeBSD does, without the -e perl will
try to read its program from stdin, so provide one.

11 years ago[perl #48332] Debugger corrupts symbol table munging
Father Chrysostomos [Fri, 1 Oct 2010 06:48:56 +0000 (23:48 -0700)]
[perl #48332] Debugger corrupts symbol table munging

This reverts commit 92adfbd49af0758bcc9a198cf2df2bd78c4176b9, which
removed a necessary assignment for the sake of consting.

In doing so, it allows subroutine redefinition to work properly again
in the debugger.

11 years agoUpgrade Digest::MD5 from version 2.50 to 2.51
Florian Ragwitz [Thu, 30 Sep 2010 22:15:01 +0000 (00:15 +0200)]
Upgrade Digest::MD5 from version 2.50 to 2.51

11 years ago[perl #77952] regcomp.c compiler warnings
Karl Williamson [Thu, 30 Sep 2010 04:43:32 +0000 (22:43 -0600)]
[perl #77952] regcomp.c compiler warnings

These were that longjmp calls could clobber certain variables.
Initializing the variables after the place that longjmp returns to
causes the warnings to disappear.

11 years agoMerge adjacent #ifndef PERL_IMPLICIT_CONTEXT blocks in embed.h
Nicholas Clark [Thu, 30 Sep 2010 10:31:40 +0000 (11:31 +0100)]
Merge adjacent #ifndef PERL_IMPLICIT_CONTEXT blocks in embed.h

11 years agoRemove empty #if/#endif pairs from embed.h
Nicholas Clark [Thu, 30 Sep 2010 10:19:59 +0000 (11:19 +0100)]
Remove empty #if/#endif pairs from embed.h

11 years agoperlretut: incorrect output in "Non-capturing groupings"
Ævar Arnfjörð Bjarmason [Thu, 30 Sep 2010 09:57:44 +0000 (09:57 +0000)]
perlretut: incorrect output in "Non-capturing groupings"

Change the example split output in a "Non-capturing groupings" example
from ('12','a','34','b','5') to ('12','a','34','a','5'). This way
it'll match the example code that goes along with it:

    split /(a|b)+/, "12aba34ba5"

Reported-by: Antonio Bonifati <antonio.bonifati@gmail.com>
11 years agoSort embed.fnc by CPP macro and then function name, before generating files.
Nicholas Clark [Wed, 29 Sep 2010 16:18:51 +0000 (17:18 +0100)]
Sort embed.fnc by CPP macro and then function name, before generating files.

Additionally, sort embed.h by public API, then core-or-ext, and finally core
only. This reduces the number of #if/#endif pairs in embed.h and proto.h

11 years agoDon't export symbols for routines that don't exist.
Craig A. Berry [Thu, 30 Sep 2010 03:37:00 +0000 (22:37 -0500)]
Don't export symbols for routines that don't exist.

The excluded routines are aliases, and while there are a lot of
aliases, most of them also exist in mathoms.c so there are actual
symbols to link against.  These don't and aren't.

Before a4e744802906bbf8435494e7f5ab1823213b2448, there were quite
a few Perl_pp_xxx and Perl_ck_xxx symbols that were not getting
collected here.

11 years ago[perl #78040] regcomp.c: malloc enough space
Karl Williamson [Wed, 29 Sep 2010 19:50:52 +0000 (13:50 -0600)]
[perl #78040] regcomp.c: malloc enough space

Commit 9de15fec376a8ff90a38fad0ff322c72c2995765 introduced /u, /d, and
/l regex modifiers.  Unfortunately, I forgot to adequately account for
them in the space required for the stringification of the regex.

This patch figures out separately if the caret is needed, and if one of
these charset modifiers is needed, and allocates space accordingly.

I could not figure out a simple test case for this fix.  valgrind
prior to this will show errors, and after this doesn't.

11 years agoFix typo spotted by avar++
Florian Ragwitz [Thu, 30 Sep 2010 00:21:14 +0000 (02:21 +0200)]
Fix typo spotted by avar++

11 years agoDocument why we're not using the save stack
Florian Ragwitz [Wed, 29 Sep 2010 23:45:16 +0000 (01:45 +0200)]
Document why we're not using the save stack

11 years agore.t: Suppress warning
Karl Williamson [Wed, 29 Sep 2010 16:46:02 +0000 (10:46 -0600)]
re.t: Suppress warning

11 years agoAdd test against re-eval corrupting regexp state
Andrew Rodland [Wed, 29 Sep 2010 17:59:12 +0000 (19:59 +0200)]
Add test against re-eval corrupting regexp state

11 years agoLocalize PL_reg_state during re_evals
Florian Ragwitz [Sun, 19 Sep 2010 23:17:34 +0000 (01:17 +0200)]
Localize PL_reg_state during re_evals

11 years agoWhen generating embed.h, return early if an embed.fnc entry causes no output.
Nicholas Clark [Wed, 29 Sep 2010 12:48:00 +0000 (13:48 +0100)]
When generating embed.h, return early if an embed.fnc entry causes no output.

This removes several adjacent empty pairs of #ifdef/#endif.

11 years agoIn embed.pl, tweak the deduplication logic for global.sym
Nicholas Clark [Wed, 29 Sep 2010 12:26:21 +0000 (13:26 +0100)]
In embed.pl, tweak the deduplication logic for global.sym

It is now independent on the ordering of embed.fnc. Previously if there were
alternative implementations of a function, the version that was exported had
to come first, else that symbol was skipped.

11 years agoNormalise all the pre-processor directives in embed.h and proto.h
Nicholas Clark [Wed, 29 Sep 2010 10:10:49 +0000 (11:10 +0100)]
Normalise all the pre-processor directives in embed.h and proto.h

Remove all whitespace after the #
Change #ifdef to #if defined and #ifndef to #if !defined

11 years agoCheck that all lines in embed.fnc are either functions or known CPP directives.
Nicholas Clark [Wed, 29 Sep 2010 09:56:05 +0000 (10:56 +0100)]
Check that all lines in embed.fnc are either functions or known CPP directives.

11 years ago[perl #71714] Remove redundant stat from Win32's opendir()
Alex Davies [Wed, 29 Sep 2010 15:29:55 +0000 (08:29 -0700)]
[perl #71714] Remove redundant stat from Win32's opendir()

Here's a patch that removes an unnecesary call to win32_stat() by
the opendir code on Win32. This provides a noticeable speed up when
recursively traversing a directory eg. calls to File::Find::find().

Note it does change behaviour in the following cases:

1. The patch makes directory names longer than MAX_PATH fail and
sets errno to ENAMETOOLONG ("Filename too long"). Currently, in
this case errno is not actually set in win32_opendir.

2. If the directory is actually a regular file then currently errno
is not set, and so (as in case 1) errno ends up being set to EBADF.
The patched version will 'fail' via the same code path as if it's
just a non existant file/directory name (FindFirstFile will return
ERROR_PATH_NOT_FOUND) and so errno gets set to ENOENT.

11 years agoRemove unused variable $wrote_protected from embed.pl
Nicholas Clark [Wed, 29 Sep 2010 15:18:50 +0000 (16:18 +0100)]
Remove unused variable $wrote_protected from embed.pl

This was added in 0cb9638729211ea7 and has never actually been used.

11 years agoIn embed.pl, directly iterate @embed to generate proto.h
Nicholas Clark [Wed, 29 Sep 2010 15:10:19 +0000 (16:10 +0100)]
In embed.pl, directly iterate @embed to generate proto.h

This replaces calling walk_table() with a file handle and a reference to
&write_protos.

11 years agoUpdate Archive-Extract to CPAN version 0.44
Chris 'BinGOs' Williams [Wed, 29 Sep 2010 15:00:27 +0000 (16:00 +0100)]
Update Archive-Extract to CPAN version 0.44

  [DELTA]

  Changes for 0.44    Wed Sep 29 15:51:26 2010
  ============================================
  * Apply a patch from brian d foy that adds a
    debug() method for $DEBUG output.

11 years agoSkip the blank lines when processing embed.fnc
Nicholas Clark [Wed, 29 Sep 2010 09:51:11 +0000 (10:51 +0100)]
Skip the blank lines when processing embed.fnc

This has the side effect of simplifying the generated embed.h and proto.h

11 years agoChange embed.fnc's vi modeline comment from /* */ to :
Nicholas Clark [Wed, 29 Sep 2010 09:27:55 +0000 (10:27 +0100)]
Change embed.fnc's vi modeline comment from /* */ to :

This means that it isn't (needlessly) copied into proto.h

11 years agoRemove the {START,END}_EXTERN_C macros from within embed.fnc
Nicholas Clark [Wed, 29 Sep 2010 09:09:37 +0000 (10:09 +0100)]
Remove the {START,END}_EXTERN_C macros from within embed.fnc

These, and the "functions with flag 'n' should come before here" comments are
holdouts from the long-gone PERL_OBJECT implementation. This doesn't change
the linkage type of any externally visible functions under g++ - just some
static functions. This follows on from 77d8c8d52bcb3950.

11 years agoRevert "[perl #77928] Glob slot assignment and set-magic"
Father Chrysostomos [Wed, 29 Sep 2010 06:41:43 +0000 (23:41 -0700)]
Revert "[perl #77928] Glob slot assignment and set-magic"

This reverts commit cffb36981555111f364a511fb5763f65ea748c0e.

11 years agoFix typo in perlpolicy.pod
Steffen Mueller [Wed, 29 Sep 2010 06:50:34 +0000 (08:50 +0200)]
Fix typo in perlpolicy.pod

11 years ago[perl #22193] Clarify references to ‘use integer’ in perlop
Casey West [Wed, 29 Sep 2010 03:11:30 +0000 (20:11 -0700)]
[perl #22193] Clarify references to ‘use integer’ in perlop

11 years agoperldelta entry for [perl #78058] qr/\88/ hangs
Father Chrysostomos [Tue, 28 Sep 2010 21:50:15 +0000 (14:50 -0700)]
perldelta entry for [perl #78058] qr/\88/ hangs

11 years agoregcomp.c [perl #78058] qr/\18/ loops
Karl Williamson [Tue, 28 Sep 2010 20:44:08 +0000 (14:44 -0600)]
regcomp.c [perl #78058] qr/\18/ loops

This patch restores the behavior of /\18/ to mean /\0018/, which was
inadvertently changed by c99e91e919b4bb89bab7829a9026ee01b1fff2a1.

This bug happens when t the first digit is [1-9], and the
second [89].

11 years agoAdded our support policy to perlpolicy.pod.
Jesse Vincent [Tue, 28 Sep 2010 22:16:55 +0000 (18:16 -0400)]
Added our support policy to perlpolicy.pod.

11 years ago[perl #71998] overload::Method can die with blessed methods
Father Chrysostomos [Tue, 28 Sep 2010 20:53:51 +0000 (13:53 -0700)]
[perl #71998] overload::Method can die with blessed methods

If an overload method is itself blessed into a class that has
overloaded operators but does not have fallback enabled, then an error
is produced:

$ perl5.10.0
use overload '+' => sub{};
bless overload::Method main => '+';
overload::Method main => '+';
^D
Operation "ne": no method found,
left argument in overloaded package main,
right argument has no overloaded magic at /usr/local/lib/perl5/5.10.0/
overload.pm line 59.

The attached patch fixes this.

11 years agosystematically provide pv/pvn/pvs/sv quartets
Zefram [Sat, 11 Sep 2010 18:36:10 +0000 (19:36 +0100)]
systematically provide pv/pvn/pvs/sv quartets

Anywhere an API function takes a string in pvn form, ensure that there
are corresponding pv, pvs, and sv APIs.

11 years agoAdd new Locale::Maketext files to MANIFEST
Father Chrysostomos [Mon, 27 Sep 2010 01:29:57 +0000 (18:29 -0700)]
Add new Locale::Maketext files to MANIFEST

11 years agoLocale::Maketext - Import dev changes from CPAN
Todd Rinaldo [Tue, 28 Sep 2010 17:28:50 +0000 (12:28 -0500)]
Locale::Maketext - Import dev changes from CPAN

This patch imports the changes which are on CPAN but not already
pulled into blead for Locale::Maketext.

1. New test file t/70_fail_auto.t - Test for CPAN RT #25877
2. Fix for RT25877 (Logic fix tested in 70_fail_auto.t)
3. Convert t/30_local.t to Test::More (the other files were already
   done in blead. This one was missed.
4. Add a cookbook pod file.
5. Changelog entries which were on CPAN but not in blead.

11 years agoperl RT# 76668 - This patch resolves CPAN RT #48808.
Todd Rinaldo [Tue, 28 Sep 2010 17:19:58 +0000 (12:19 -0500)]
perl RT# 76668 - This patch resolves CPAN RT #48808.
This change:
1. loads I18N::LangTags::Detect in BEGIN rather than whenever _ambient_langprefs is called
2. Removes the version number requirement for I18N::LangTags. Detect didn't come around until 0.31 so a dep on 0.30 is unnecessary.

This will assure any load issues with I18N::LangTags::Detect happen at BEGIN, not randomly somewhere in the program.

This does increase the dependency on I18N::LangTags from 0.30 to 0.31, but the release dates are as follows, so I don't think it's a big deal:

0.30 - 2004-03-30 Sean M. Burke sburke@cpan.org
0.31 - 2004-06-17 Sean M. Burke sburke@cpan.org

11 years ago[perl #76674] Locale::Maketext: speed and efficiency tweaks
Todd Rinaldo [Tue, 28 Sep 2010 18:13:33 +0000 (11:13 -0700)]
[perl #76674] Locale::Maketext: speed and efficiency tweaks

Check string to compile for chars ~][ and return \"$string" if not found.
This is a 250% speed improvement on strings which don't require compile and only a
~2% hit if they did need compiling.

Remove \G since everything is being captured it has no value. This means we don't
have to worry about seting pos $string_to_compile = 0 to prevent the previous
regex from affecting this one. There is a negligible speed improvement removing
the \G

11 years ago[perl #77928] Glob slot assignment and set-magic
Father Chrysostomos [Tue, 28 Sep 2010 15:47:07 +0000 (08:47 -0700)]
[perl #77928] Glob slot assignment and set-magic

Stop set-magic from being called after ref-to-glob assignment.