[perl.git] branch blead, updated. v5.15.5-244-ge2dde00

2011-12-01 Thread Tony Cook
In perl.git, the branch blead has been updated

http://perl5.git.perl.org/perl.git/commitdiff/e2dde009b73053ca211f12724e8135bedd556d8f?hp=83504ee4bca9923131c46e631589a42c101dde7a

- Log -
commit e2dde009b73053ca211f12724e8135bedd556d8f
Author: Tony Cook t...@develop-help.com
Date:   Thu Dec 1 19:39:18 2011 +1100

ignore a cygwin specific generated file

M   .gitignore

commit fe6ca73739d497d2f05e6d96f47b3d079fdc88fc
Author: Tony Cook t...@develop-help.com
Date:   Thu Dec 1 19:00:53 2011 +1100

static and dllexport don't belong together on cygwin

This was causing build errors like:

Cwd.c:553:1: error: external linkage required for symbol 
‘XS_Cwd_getcwd’ because of ‘dllexport’ attribute

M   XSUB.h
---

Summary of changes:
 .gitignore |3 +++
 XSUB.h |2 +-
 2 files changed, 4 insertions(+), 1 deletions(-)

diff --git a/.gitignore b/.gitignore
index 80b2a8b..f08b705 100644
--- a/.gitignore
+++ b/.gitignore
@@ -70,6 +70,9 @@ dll.base
 /ext/DynaLoader/dl_win32.xs
 splittree.pl
 
+# generated by make on cygwin
+/cygwin.c
+
 # ?
 ext.libs
 
diff --git a/XSUB.h b/XSUB.h
index 61d0ef2..4e439f1 100644
--- a/XSUB.h
+++ b/XSUB.h
@@ -130,7 +130,7 @@ is a lexical $_ in scope.
 #undef XS_INTERNAL
 #if defined(__CYGWIN__)  defined(USE_DYNAMIC_LOADING)
 #  define XS_EXTERNAL(name) __declspec(dllexport) XSPROTO(name)
-#  define XS_INTERNAL(name) __declspec(dllexport) STATIC XSPROTO(name)
+#  define XS_INTERNAL(name) STATIC XSPROTO(name)
 #endif
 #if defined(__SYMBIAN32__)
 #  define XS_EXTERNAL(name) EXPORT_C XSPROTO(name)

--
Perl5 Master Repository


[perl.git] branch blead, updated. v5.15.5-245-g3928a66

2011-12-01 Thread Tony Cook
In perl.git, the branch blead has been updated

http://perl5.git.perl.org/perl.git/commitdiff/3928a66ad4bd8aee704eda1942b7877c0ff1ab2c?hp=e2dde009b73053ca211f12724e8135bedd556d8f

- Log -
commit 3928a66ad4bd8aee704eda1942b7877c0ff1ab2c
Author: Tony Cook t...@develop-help.com
Date:   Thu Dec 1 21:37:42 2011 +1100

avoid conflicting static / dllexport on legacy perls too

This probably fixes rt.cpan.org 72313 and 71964.
---

Summary of changes:
 .../lib/ExtUtils/ParseXS/Utilities.pm  |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/Utilities.pm 
b/dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/Utilities.pm
index 19bf9bd..b83e45b 100644
--- a/dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/Utilities.pm
+++ b/dist/ExtUtils-ParseXS/lib/ExtUtils/ParseXS/Utilities.pm
@@ -494,7 +494,7 @@ sub standard_XS_defs {
 #  undef XS_INTERNAL
 #  if defined(__CYGWIN__)  defined(USE_DYNAMIC_LOADING)
 #define XS_EXTERNAL(name) __declspec(dllexport) XSPROTO(name)
-#define XS_INTERNAL(name) __declspec(dllexport) STATIC XSPROTO(name)
+#define XS_INTERNAL(name) STATIC XSPROTO(name)
 #  endif
 #  if defined(__SYMBIAN32__)
 #define XS_EXTERNAL(name) EXPORT_C XSPROTO(name)

--
Perl5 Master Repository


[perl.git] branch blead, updated. v5.15.5-246-g936a258

2011-12-01 Thread Chris 'Bingos' Williams
In perl.git, the branch blead has been updated

http://perl5.git.perl.org/perl.git/commitdiff/936a258b3bd6beb80194d6856e785f700e800472?hp=3928a66ad4bd8aee704eda1942b7877c0ff1ab2c

- Log -
commit 936a258b3bd6beb80194d6856e785f700e800472
Author: Chris 'BinGOs' Williams ch...@bingosnet.co.uk
Date:   Thu Dec 1 11:23:41 2011 +

Skip executable Cygwin test in EUMM when in core

Change has been upstreamed as:

https://github.com/Perl-Toolchain-Gang/ExtUtils-MakeMaker/commit/d0172d0f
---

Summary of changes:
 cpan/ExtUtils-MakeMaker/t/MM_Cygwin.t |6 --
 1 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/cpan/ExtUtils-MakeMaker/t/MM_Cygwin.t 
b/cpan/ExtUtils-MakeMaker/t/MM_Cygwin.t
index 9640ac7..b518c8c 100644
--- a/cpan/ExtUtils-MakeMaker/t/MM_Cygwin.t
+++ b/cpan/ExtUtils-MakeMaker/t/MM_Cygwin.t
@@ -115,8 +115,10 @@ SKIP: {
 }
 
 # Our copy of Perl (with a unix-path) should always be executable.
-ok(MM-maybe_command($Config{perlpath}), qq{'$Config{perlpath}' should be 
executable});
-
+SKIP: {
+  skip The Perl may not be installed yet when in core if $ENV{PERL_CORE};
+  ok(MM-maybe_command($Config{perlpath}), qq{'$Config{perlpath}' should be 
executable});
+}
 
 package FakeOut;
 

--
Perl5 Master Repository


[perl.git] branch blead, updated. v5.15.5-247-g0beff06

2011-12-01 Thread Rafael Garcia-Suarez
In perl.git, the branch blead has been updated

http://perl5.git.perl.org/perl.git/commitdiff/0beff067932254cd3dc853ac18c0e666b9e4cd75?hp=936a258b3bd6beb80194d6856e785f700e800472

- Log -
commit 0beff067932254cd3dc853ac18c0e666b9e4cd75
Author: Rafael Garcia-Suarez r...@consttype.org
Date:   Thu Dec 1 15:10:49 2011 +0100

Install perlfaq and perlglossary manpages in section 1 of the manual
---

Summary of changes:
 installman |3 +++
 utils.lst  |   11 +++
 2 files changed, 14 insertions(+), 0 deletions(-)

diff --git a/installman b/installman
index b5b2620..2c20790 100755
--- a/installman
+++ b/installman
@@ -133,6 +133,9 @@ sub pod2man {
   if (-f $_ and /\.p(?:m|od)$/) {
   my $fullname = $_;
   s!^\Q$poddir\E/!!;
+  # perlfaq manpages are installed in section 
1,
+  # so skip when searching files for section 3
+  return if m(perlfaq.?\.pod|perlglossary.pod);
   $modpods{$fullname} = $_;
   }
   }},
diff --git a/utils.lst b/utils.lst
index ad68c1a..037b3eb 100644
--- a/utils.lst
+++ b/utils.lst
@@ -1,3 +1,14 @@
+cpan/perlfaq/lib/perlfaq.pod
+cpan/perlfaq/lib/perlfaq1.pod
+cpan/perlfaq/lib/perlfaq2.pod
+cpan/perlfaq/lib/perlfaq3.pod
+cpan/perlfaq/lib/perlfaq4.pod
+cpan/perlfaq/lib/perlfaq5.pod
+cpan/perlfaq/lib/perlfaq6.pod
+cpan/perlfaq/lib/perlfaq7.pod
+cpan/perlfaq/lib/perlfaq8.pod
+cpan/perlfaq/lib/perlfaq9.pod
+cpan/perlfaq/lib/perlglossary.pod
 cpan/Pod-LaTeX/blib/script/pod2latex
 cpan/podlators/blib/script/pod2man
 cpan/podlators/blib/script/pod2text

--
Perl5 Master Repository


[perl.git] branch blead, updated. v5.15.5-254-g8cbe235

2011-12-01 Thread Florian Ragwitz
In perl.git, the branch blead has been updated

http://perl5.git.perl.org/perl.git/commitdiff/8cbe2351fa9be7ae959bf6c99a37820fe1c534c4?hp=0beff067932254cd3dc853ac18c0e666b9e4cd75

- Log -
commit 8cbe2351fa9be7ae959bf6c99a37820fe1c534c4
Merge: 0beff06 f72af2d
Author: Florian Ragwitz r...@debian.org
Date:   Thu Dec 1 15:23:25 2011 +0100

Merge branch 'dual-life-socket' into blead

* dual-life-socket:
  Bump Socket::VERSION to 1.95; to match CPAN release
  Snapshot of P/PE/PEVANS/Socket-1.94_07.tar.gz
  More fixups for dual-life to support out-of-core build
  Prepare Socket.pm for dual-life
  Fixups for older Perl versions:
  Rewrite ext/Socket/t/Socket.t to use Test::More rather than manual 
printing

commit f72af2d244e61d9be2e55bb64a2eeb11fa8968e3
Author: Paul \LeoNerd\ Evans leon...@leonerd.org.uk
Date:   Thu Dec 1 14:10:48 2011 +

Bump Socket::VERSION to 1.95; to match CPAN release

M   cpan/Socket/Socket.pm

commit 0369a5a54628d35a0391b4624eba1887bd5ff71d
Author: Paul \LeoNerd\ Evans leon...@leonerd.org.uk
Date:   Tue Nov 22 15:11:49 2011 +

Snapshot of P/PE/PEVANS/Socket-1.94_07.tar.gz

M   cpan/Socket/Makefile.PL
M   cpan/Socket/Socket.pm

commit 1584259fbedde39de8b5c3750d0a7863dc7a2b0b
Author: Paul \LeoNerd\ Evans leon...@leonerd.org.uk
Date:   Tue Nov 1 16:16:33 2011 +

More fixups for dual-life to support out-of-core build

 * Use ExtUtils::CChecker when not in core to replace the Configure-time 
testing that core does
 * Don't actually need to dVAR in getaddrinfo/getnameinfo
 * Expand croak_xs_usage inline rather than rely on xsubpp to write one

M   cpan/Socket/Makefile.PL
M   cpan/Socket/Socket.xs

commit 44559db1c23f895802dafc1174080c9a8c0f1bce
Author: Paul \LeoNerd\ Evans leon...@leonerd.org.uk
Date:   Mon Oct 24 19:02:43 2011 +0100

Prepare Socket.pm for dual-life

 * Moved from ext/Socket to cpan/Socket
 * Currently declared as PEVANS/Socket-1.95.tar.gz - which is what it
   will eventually become

M   MANIFEST
M   Porting/Maintainers.pl
A   cpan/Socket/.gitignore
A   cpan/Socket/Makefile.PL
A   cpan/Socket/Socket.pm
A   cpan/Socket/Socket.xs
A   cpan/Socket/t/Socket.t
A   cpan/Socket/t/getaddrinfo.t
A   cpan/Socket/t/getnameinfo.t
A   cpan/Socket/t/ipv6_mreq.t
A   cpan/Socket/t/socketpair.t
D   ext/Socket/.gitignore
D   ext/Socket/Makefile.PL
D   ext/Socket/Socket.pm
D   ext/Socket/Socket.xs
D   ext/Socket/t/Socket.t
D   ext/Socket/t/getaddrinfo.t
D   ext/Socket/t/getnameinfo.t
D   ext/Socket/t/ipv6_mreq.t
D   ext/Socket/t/socketpair.t

commit 4c3d8e12eba407ea54003da3b559af75fc927817
Author: Paul \LeoNerd\ Evans leon...@leonerd.org.uk
Date:   Mon Oct 24 18:07:42 2011 +0100

Fixups for older Perl versions:

 * Pass package and version to XSLoader::load to keep older perl versions 
happy
 * Older perls do not define croak_sv; #define a workaround for them

M   ext/Socket/Socket.pm
M   ext/Socket/Socket.xs

commit bd71e0a134e4707a8d678d30a1c445a5f9d9812c
Author: Paul \LeoNerd\ Evans leon...@leonerd.org.uk
Date:   Mon Oct 24 17:51:13 2011 +0100

Rewrite ext/Socket/t/Socket.t to use Test::More rather than manual printing

M   ext/Socket/t/Socket.t
---

Summary of changes:
 MANIFEST |   16 ++--
 Porting/Maintainers.pl   |8 +-
 {ext = cpan}/Socket/.gitignore  |0
 cpan/Socket/Makefile.PL  |  176 
 {ext = cpan}/Socket/Socket.pm   |   65 +-
 {ext = cpan}/Socket/Socket.xs   |   12 +-
 cpan/Socket/t/Socket.t   |  184 +
 {ext = cpan}/Socket/t/getaddrinfo.t |0
 {ext = cpan}/Socket/t/getnameinfo.t |0
 {ext = cpan}/Socket/t/ipv6_mreq.t   |0
 {ext = cpan}/Socket/t/socketpair.t  |0
 ext/Socket/Makefile.PL   |   93 ---
 ext/Socket/t/Socket.t|  213 --
 13 files changed, 438 insertions(+), 329 deletions(-)
 rename {ext = cpan}/Socket/.gitignore (100%)
 create mode 100644 cpan/Socket/Makefile.PL
 rename {ext = cpan}/Socket/Socket.pm (91%)
 rename {ext = cpan}/Socket/Socket.xs (99%)
 create mode 100644 cpan/Socket/t/Socket.t
 rename {ext = cpan}/Socket/t/getaddrinfo.t (100%)
 rename {ext = cpan}/Socket/t/getnameinfo.t (100%)
 rename {ext = cpan}/Socket/t/ipv6_mreq.t (100%)
 rename {ext = cpan}/Socket/t/socketpair.t (100%)
 delete mode 100644 ext/Socket/Makefile.PL
 delete mode 100644 ext/Socket/t/Socket.t

diff --git a/MANIFEST b/MANIFEST
index bda0e07..eeadfa9 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -2169,6 +2169,14 @@ cpan/Pod-Simple/t/xhtml05.t  
Pod::Simple test file
 cpan/Pod-Simple/t/xhtml10.t   

[perl.git] branch blead, updated. v5.15.5-257-ga82b195

2011-12-01 Thread Father Chrysostomos
In perl.git, the branch blead has been updated

http://perl5.git.perl.org/perl.git/commitdiff/a82b195bcec8edceae8d7f710b71cfcb1e8b1845?hp=4345d05bb848d49bf1bc348b0bf725f5679165bf

- Log -
commit a82b195bcec8edceae8d7f710b71cfcb1e8b1845
Author: Father Chrysostomos spr...@cpan.org
Date:   Thu Dec 1 12:36:18 2011 -0800

Use SvOOK_on

Now that SvOOK_on has a usable definition (i.e., it leaves the
NIOK flags alone), we can use it and remove the comments warning
against it.

M   hv.c
M   sv.c

commit a4f658f7073ec82bcbc9a325ed5433720c4eaa48
Author: Father Chrysostomos spr...@cpan.org
Date:   Thu Dec 1 12:29:06 2011 -0800

Bring SvOOK_on back, but simpler

Commit 404dce59 removed it, because nothing in core or CPAN was using
it and it is not part of the API.

Nothing in core was using it because it was unusable as previously
defined (with SvIOK_off).

This commit brings it back, but now it is a simple flag-setting macro,
that will actually be usable by the core.

M   sv.h
---

Summary of changes:
 hv.c |3 +--
 sv.c |5 ++---
 sv.h |1 +
 3 files changed, 4 insertions(+), 5 deletions(-)

diff --git a/hv.c b/hv.c
index 1019b31..27ce6a5 100644
--- a/hv.c
+++ b/hv.c
@@ -1897,8 +1897,7 @@ S_hv_auxinit(HV *hv) {
  + sizeof(struct xpvhv_aux), char);
 }
 HvARRAY(hv) = (HE**) array;
-/* SvOOK_on(hv) attacks the IV flags.  */
-SvFLAGS(hv) |= SVf_OOK;
+SvOOK_on(hv);
 iter = HvAUX(hv);
 
 iter-xhv_riter = -1;  /* HvRITER(hv) = -1 */
diff --git a/sv.c b/sv.c
index 8fc177e..99d0d5c 100644
--- a/sv.c
+++ b/sv.c
@@ -4907,7 +4907,7 @@ Perl_sv_chop(pTHX_ register SV *const sv, register const 
char *const ptr)
Move(pvx,SvPVX(sv),len,char);
*SvEND(sv) = '\0';
}
-   SvFLAGS(sv) |= SVf_OOK;
+   SvOOK_on(sv);
old_delta = 0;
 } else {
SvOOK_offset(sv, old_delta);
@@ -12034,8 +12034,7 @@ S_sv_dup_common(pTHX_ const SV *const sstr, 
CLONE_PARAMS *const param)
const struct xpvhv_aux * const saux = HvAUX(sstr);
struct xpvhv_aux * const daux = HvAUX(dstr);
/* This flag isn't copied.  */
-   /* SvOOK_on(hv) attacks the IV flags.  */
-   SvFLAGS(dstr) |= SVf_OOK;
+   SvOOK_on(dstr);
 
if (saux-xhv_name_count) {
HEK ** const sname = 
saux-xhv_name_u.xhvnameu_names;
diff --git a/sv.h b/sv.h
index dcd53f7..33a61be 100644
--- a/sv.h
+++ b/sv.h
@@ -848,6 +848,7 @@ in gv.h: */
 ? mg_find(sv,PERL_MAGIC_vstring) : NULL)
 
 #define SvOOK(sv)  (SvFLAGS(sv)  SVf_OOK)
+#define SvOOK_on(sv)   (SvFLAGS(sv) |= SVf_OOK)
 #define SvOOK_off(sv)  ((void)(SvOOK(sv)  sv_backoff(sv)))
 
 #define SvFAKE(sv) (SvFLAGS(sv)  SVf_FAKE)

--
Perl5 Master Repository


[perl.git] branch blead, updated. v5.15.5-258-ge7d0a3f

2011-12-01 Thread Father Chrysostomos
In perl.git, the branch blead has been updated

http://perl5.git.perl.org/perl.git/commitdiff/e7d0a3fbd986e18585e457528529ce365ace620e?hp=a82b195bcec8edceae8d7f710b71cfcb1e8b1845

- Log -
commit e7d0a3fbd986e18585e457528529ce365ace620e
Author: Father Chrysostomos spr...@cpan.org
Date:   Thu Dec 1 22:46:22 2011 -0800

Allow COW PVMGs to be tied

This logic in sv_magic is wrong:

if (SvREADONLY(sv)) {
if (
/* its okay to attach magic to shared strings; the subsequent
 * upgrade to PVMG will unshare the string */
!(SvFAKE(sv)  SvTYPE(sv)  SVt_PVMG)

 IN_PERL_RUNTIME
 !PERL_MAGIC_TYPE_READONLY_ACCEPTABLE(how)
   )
{
Perl_croak_no_modify(aTHX);
}
}

There is nothing wrong with attaching magic to a shared string that
will stay shared.  Also, shared strings are not always  SVt_PVMG.
 Sometimes a PVMG or PVLV can end up with a shared string.  In those
cases, the logic above treats them as read-only, which they ain’t.

The easiest example is a downgraded typeglob:

$x = *foo;# now a PVGV
undef $x ;# downgraded to PVMG
$x = __PACKAGE__; # now a shared string (COW)
tie $x, main;   # bang! $x is considered read-only
sub main::TIESCALAR{bless[]}
---

Summary of changes:
 sv.c   |5 ++---
 t/op/tie.t |   21 +
 2 files changed, 23 insertions(+), 3 deletions(-)

diff --git a/sv.c b/sv.c
index 99d0d5c..ee64e1f 100644
--- a/sv.c
+++ b/sv.c
@@ -5299,9 +5299,8 @@ Perl_sv_magic(pTHX_ register SV *const sv, SV *const obj, 
const int how,
 #endif
 if (SvREADONLY(sv)) {
if (
-   /* its okay to attach magic to shared strings; the subsequent
-* upgrade to PVMG will unshare the string */
-   !(SvFAKE(sv)  SvTYPE(sv)  SVt_PVMG)
+   /* its okay to attach magic to shared strings */
+   (!SvFAKE(sv) || isGV_with_GP(sv))
 
 IN_PERL_RUNTIME
 !PERL_MAGIC_TYPE_READONLY_ACCEPTABLE(how)
diff --git a/t/op/tie.t b/t/op/tie.t
index 887fa96..bbd789c 100644
--- a/t/op/tie.t
+++ b/t/op/tie.t
@@ -1008,6 +1008,27 @@ print ok\n;
 EXPECT
 ok
 
+#
+# Nor should it be impossible to tie COW scalars that are already PVMGs.
+
+sub TIESCALAR { bless [] }
+$x = *foo;# PVGV
+undef $x; # downgrade to PVMG
+$x = __PACKAGE__; # PVMG + COW
+tie $x, ;   # bang!
+
+print STDERR ok\n;
+
+# However, one should not be able to tie read-only glob copies, which look
+# a bit like kine internally (FAKE + READONLY).
+$y = *foo;
+Internals::SvREADONLY($y,1);
+tie $y, ;
+
+EXPECT
+ok
+Modification of a read-only value attempted at - line 16.
+
 
 # tied() should still work on tied scalars after glob assignment
 sub TIESCALAR {bless[]}

--
Perl5 Master Repository