perl.git
6 years ago[perl #64772] allow for sync on read only handles
Tony Cook [Sat, 2 Jun 2012 02:15:21 +0000 (12:15 +1000)] 
[perl #64772] allow for sync on read only handles

This is useful on Linux for when you open a directory with open() and
then sync the directory eg, after a rename.

Tested on Linux, NetBSD, Solaris, Haiku-OS, Darwin, cygwin.

Tests are skipped on VMS (where I have no idea if it will work), Win32
(for which opening directories requires special permissions).

6 years ago[perl #64772] check both input and output file handles for sync
Evan Miller [Thu, 31 May 2012 13:52:26 +0000 (23:52 +1000)] 
[perl #64772] check both input and output file handles for sync

This allows sync() to be called on directory handles.

Originally supplied as a diff, applied and updated to pass tests by
Tony Cook.

6 years agoadd Evan Miller to AUTHORS
Tony Cook [Thu, 31 May 2012 13:43:18 +0000 (23:43 +1000)] 
add Evan Miller to AUTHORS

6 years ago[perl #64772] TODO test for sync on read only handle
Tony Cook [Thu, 31 May 2012 09:34:44 +0000 (19:34 +1000)] 
[perl #64772] TODO test for sync on read only handle

6 years agoconvert dist/IO/t/io_xs.t to Test::More
Tony Cook [Thu, 31 May 2012 09:27:45 +0000 (19:27 +1000)] 
convert dist/IO/t/io_xs.t to Test::More

6 years agoFix K & R-style function definition in VMS::Stdio.
Craig A. Berry [Fri, 1 Jun 2012 03:02:21 +0000 (22:02 -0500)] 
Fix K & R-style function definition in VMS::Stdio.

C++ doesn't speak K & R.

6 years agoMerge refactoring of t/op/filetest.t into blead.
Nicholas Clark [Thu, 31 May 2012 21:02:23 +0000 (23:02 +0200)] 
Merge refactoring of t/op/filetest.t into blead.

6 years agoUse is() and isnt() in t/op/filetest.t, in place of ok().
Nicholas Clark [Thu, 24 May 2012 14:05:08 +0000 (16:05 +0200)] 
Use is() and isnt() in t/op/filetest.t, in place of ok().

These automatically give diagnostics on failure, allowing the elimination
of two explicit calls to diag(). Also split one ok(... && ...) test into
two.

6 years agoIn t/op/filetest.t, test -s -f 'TEST' against the size from stat 'TEST'.
Nicholas Clark [Thu, 24 May 2012 13:49:08 +0000 (15:49 +0200)] 
In t/op/filetest.t, test -s -f 'TEST' against the size from stat 'TEST'.

Previously the test was "is it greater than 1?"

6 years agoIn t/op/filetest.t, use the tempfile instead of t/TEST in two tests.
Nicholas Clark [Thu, 24 May 2012 09:57:21 +0000 (11:57 +0200)] 
In t/op/filetest.t, use the tempfile instead of t/TEST in two tests.

This avoids needing to skip the two tests if t/TEST is a symlink, which is
the case when building with -Dmksymlinks.

6 years agoIn t/op/filetest.t, use one temporary file for testing instead of two.
Nicholas Clark [Thu, 24 May 2012 09:40:41 +0000 (11:40 +0200)] 
In t/op/filetest.t, use one temporary file for testing instead of two.

The readonly file tests aren't worried about the file's length, and the
zero-length file tests aren't concerned about whether it's writable, so it's
possible to use the same file in both tests.

6 years agoIn t/op/filetest.t, simplify the logic for testing read-only files.
Nicholas Clark [Thu, 24 May 2012 09:23:06 +0000 (11:23 +0200)] 
In t/op/filetest.t, simplify the logic for testing read-only files.

Only attempted to change the effective user ID if the test is running as
root. Don't bother consulting $Config to see whether assigning to $> is going
to work - just try it in an eval, and skip if it didn't. Only restore $> if
we know we changed it, and as we only change it from root, we already know
which value to restore it to.

The previous code to check $Config{d_seteuid} was incomplete, as it should
also have been checking for $Config{d_setreuid} and $Config{d_setresuid}, as
$> can use any of these.

6 years agoIn t/op/filetest.t, simplify the skip logic when testing -r and -w on op.
Nicholas Clark [Thu, 24 May 2012 08:45:00 +0000 (09:45 +0100)] 
In t/op/filetest.t, simplify the skip logic when testing -r and -w on op.

This code has got excessively hairy. Originally, t/op/filetest.t was added
to test that various file test operators worked as expected. (Commit
42e55ab11744b52a in Oct 1998.) It used the file t/TEST and the directory
t/op for targets. To test that read-only files were detected correctly, it
would chmod 0555 TEST to set it read only.

The test would fail if run as root, because root can write to anything. So
logic was added to set the effective user ID to 1 by assigning to $> in an
eval (unconditionally), and restoring $> afterwards. (Commit 846f25a3508eb6a4
in Nov 1988.) Curiously, the restoration was done after the test for
C<-r op>, rather than before it.

Most strangely, a skip was then added for the C<-w op> test based on
$Config{d_seteuid}. The test runs after $> has been restored, so should have
nothing to do with setuid. It was added as part of the VMS-related changes of
commit 3eeba6fb8b434fcb in May 1999. As d_seteuid is not defined in VMS, this
makes the test skip on VMS.

Commit 15fe5983b126b2ad in July 1999 added a skip for the read-only file
test if d_seteuid is undefined. Which is actually the only test where having
a working seteuid() *might* matter (but only if running as root, so that $>
can be used to drop root privileges).

Commit fd1e013efb606b51 in August 1999 moved the restoration of $> earlier,
ahead of the test for C<-r op>, as that test could fail if run as root with
the source tree unpacked with a restrictive umask. (Bug ID 19990727.039)

6 years agot/porting/checkcase.t shouldn't scan .git for case-clashing files.
Nicholas Clark [Thu, 31 May 2012 09:28:21 +0000 (11:28 +0200)] 
t/porting/checkcase.t shouldn't scan .git for case-clashing files.

The contents of the .git directory are outside our control. In particular,
as fetch doesn't default to --prune, someone pushing a branch upstream with
a name which case-conflicts with a previously deleted branch will cause
action-at-a-distance failures, because locally .git/logs/refs/remotes will
contain both.

6 years agot/porting/checkcase.t should find() from the top level, not from '..'
Nicholas Clark [Thu, 31 May 2012 09:15:20 +0000 (11:15 +0200)] 
t/porting/checkcase.t should find() from the top level, not from '..'

This permits it to be usefully run from the top level of the build tree.
Previously it would find() on '..', which meant that one needed to chdir into
t/ else it would report errors for the contents of the directory containing
the build tree.

6 years agoA more C++-friendly dNOOP.
Craig A. Berry [Wed, 30 May 2012 23:57:51 +0000 (18:57 -0500)] 
A more C++-friendly dNOOP.

The problem with Perl___notused under C++ is that in some cases
it's merely extern, and in some cases (via the XS macro via the
XSPROTO macro) it's extern "C".  Object code analysis shows that
you do actually get one mangled and one unmangled version of the
symbol, which wouldn't matter since the whole point is to have
something we never use.

Except that one very picky C++ compiler (HP C++ for OpenVMS) sees
what we're up to and slaps us down hard.  Since declaration after
statement has always been allowed in C++, just go ahead and do a
real noop statement for C++ and avoid the use of an external
symbol.

6 years agoDon't install HTML docs for 'ext' folder
Steve Hay [Wed, 30 May 2012 13:06:55 +0000 (14:06 +0100)] 
Don't install HTML docs for 'ext' folder

After building, everything in 'ext' is in 'lib' anyway so including
the 'ext' folder as well as 'lib' just results in duplicate docs in
a slightly different folder structure.

6 years ago[Merge] Yank study
Father Chrysostomos [Wed, 30 May 2012 06:55:55 +0000 (23:55 -0700)] 
[Merge] Yank study

study was made a no-op in 5.16, but the code was left in place,
unused.  This branch removes the code implementing study, leaving
pp_study and screaminstr as stubs.

6 years agosv.h: Document the only use of SvSCREAM
Father Chrysostomos [Thu, 24 May 2012 21:54:29 +0000 (14:54 -0700)] 
sv.h: Document the only use of SvSCREAM

Now that studied scalars are gone, SvSCREAM is used only for the DOES
method name hack, so update sv.h accordingly.

6 years agoDelete two instance of SvSCREAM_off
Father Chrysostomos [Thu, 24 May 2012 21:53:38 +0000 (14:53 -0700)] 
Delete two instance of SvSCREAM_off

that no longer have any effect.

6 years agoUse isGV_with_GP in util.c:fbm_compile
Father Chrysostomos [Thu, 24 May 2012 21:49:19 +0000 (14:49 -0700)] 
Use isGV_with_GP in util.c:fbm_compile

This little statement:

    if (SvSCREAM(sv))
return;

filters out not only studied strings, but also GVs.

Since studied strings are gone, it only filters out GVs now.  Since
fbm_compile coerces its argument, we still want to filter out GVs, so
we use isGV_with_GP to make the intent clear.

6 years agoAway with REXEC_SCREAM!
Father Chrysostomos [Thu, 24 May 2012 21:45:41 +0000 (14:45 -0700)] 
Away with REXEC_SCREAM!

Actually, we cannot remove the definition, as there are CPAN modules
that need it; but they only test the flag, and never set it, so perl
doesn’t need to keep testing it itself.

6 years agoExpunge study magic
Father Chrysostomos [Thu, 24 May 2012 21:04:02 +0000 (14:04 -0700)] 
Expunge study magic

I’m running out of synonyms for ‘remove’.

6 years agoGut screaminstr
Father Chrysostomos [Thu, 24 May 2012 21:00:56 +0000 (14:00 -0700)] 
Gut screaminstr

How did this ever end up in the API?

Anyway, this commit guts it by removing its guts and replacing it with
a panic message.  This function would fail assertions if passed an
unstudied scalar, so it should never be called any more.  But XS mod-
ules that still do if (SvSCREAM(sv)) screaminstr(...) should still be
able to compile.

6 years agoRemove most code conditional on SvSCREAM
Father Chrysostomos [Thu, 24 May 2012 20:52:32 +0000 (13:52 -0700)] 
Remove most code conditional on SvSCREAM

Since pp_study is now a no-op, SvSCREAM should always be false on
non-GVs, except for the method name hack.

6 years agoCorrect apidoc varnames for util.c:fbm_instr
Father Chrysostomos [Thu, 24 May 2012 20:47:39 +0000 (13:47 -0700)] 
Correct apidoc varnames for util.c:fbm_instr

6 years agoDelete the contents of pp_study
Father Chrysostomos [Thu, 24 May 2012 06:54:14 +0000 (23:54 -0700)] 
Delete the contents of pp_study

6 years agoDon’t clone closures in rv2cv
Father Chrysostomos [Thu, 24 May 2012 05:44:25 +0000 (22:44 -0700)] 
Don’t clone closures in rv2cv

Commit 07055b4c536 (Support named closures) added code to make refer-
encing a closure prototype clone the prototype.  Commit 28757baaaeaa
(inseparable changes from patch from perl5.003_19 to perl5.003_20),
which includes ‘Subject: Rescind named closures’ in its log, appar-
ently did not rescind ‘named closures’ completely, leaving a line of
code that was completetly unused and untested, until just now when I
tried doing something bizarre to see whether some other piece of code
was buggy.  This wasn’t what I expected. :-)

$ ./perl -Ilib -e 'sub MODIFY_CODE_ATTRIBUTES{\&{$_[1]};} my $x; +sub :bar{$x}'
Assertion failed: (depth || SvTYPE(proto) == SVt_PVFM), function Perl_cv_clone, file pad.c, line 1890.
Abort trap

6 years agoRemove ‘Runaway prototype’ warning
Father Chrysostomos [Thu, 24 May 2012 04:51:45 +0000 (21:51 -0700)] 
Remove ‘Runaway prototype’ warning

This has been here since commit 8472ac73d, which was merged into blead
in commit 55d729e4e15, if I understand the history correctly.

This warning is undocumented, and triggerable only by stash
manipulation.

It appears to be an internal check, similar to a ‘panic’ error, but
its wording doesn’t suggest anything of the sort.

A ‘sub foo;’ declaration doesn’t actually create the sub yet, but
simply puts -1 in the stash element.  ‘sub foo($);’ puts '$' in the
stash element.

If newATTRSUB sees something there it doesn’t recognise, it unhelp-
fully carps ‘Runaway prototype’, but it is pretty random:

This is OK:

$ perl -e 'BEGIN{$::{foo}=undef} sub foo;'

But this is not:

$ perl -e 'BEGIN{$::{foo}=-1; $::{foo}=undef} sub foo;'
Runaway prototype at -e line 1.

Also, it only happens when the sub has no body, not for ‘sub foo {}’:

$ perl -e 'BEGIN{$::{foo}=56} sub foo{}'
$ perl -e 'BEGIN{$::{foo}=56} sub foo;'
Runaway prototype at -e line 1.

This warning is random, incomprehensible, and not at all helpful, so
we should just remove it.

6 years agoupdate the editor hints for spaces, not tabs
Ricardo Signes [Fri, 25 May 2012 12:40:18 +0000 (08:40 -0400)] 
update the editor hints for spaces, not tabs

This updates the editor hints in our files for Emacs and vim to request
that tabs be inserted as spaces.

6 years agoclarify that it must be a simple identifier in {}
Ricardo Signes [Mon, 14 May 2012 13:01:06 +0000 (09:01 -0400)] 
clarify that it must be a simple identifier in {}

suggestion from Aristotle Pagaltzis in
https://rt.perl.org/rt3/Ticket/Display.html?id=112914

6 years agorelated to [perl #113060] assert CopSTASH(cx->blk_oldcop)
Reini Urban [Tue, 29 May 2012 21:06:00 +0000 (16:06 -0500)] 
related to [perl #113060] assert CopSTASH(cx->blk_oldcop)

HvNAME_HEK((HV*)CopSTASH(cx->blk_oldcop)) does some implicit assumptions, which should
better be asserted. Also record CX pp_caller reads besides PUSH and POP.

6 years ago[perl #113060] Save cop_stashlen threaded even with shared cop pv
Reini Urban [Tue, 29 May 2012 20:46:13 +0000 (15:46 -0500)] 
[perl #113060] Save cop_stashlen threaded even with shared cop pv

Perl_sv_compile_2op_is_broken() does at line 3354 a LEAVE_with_name("eval"),
a SSPOPSTR via SAVEt_SHARED_PVREF for the localized cop_stashpv, but
not for the cop_stashlen.
The cop in question is PL_compiling, which was "AutoSplit" before with
len=9 and restores it back to "main" but keeps len 9. Thus leading to a
heap-overflow in gv_stashpvn.

6 years ago[perl #97478] Make ‘Can’t find opnumber’ UTF-8- and null-clean
Father Chrysostomos [Sun, 22 Apr 2012 02:12:21 +0000 (19:12 -0700)] 
[perl #97478] Make ‘Can’t find opnumber’ UTF-8- and null-clean

6 years ago[Merge] More coresubs
Father Chrysostomos [Tue, 29 May 2012 16:38:19 +0000 (09:38 -0700)] 
[Merge] More coresubs

Until now, only overridable keywords had subs in the CORE:: namespace.

This branch adds subs to the CORE:: namespace for those non-overrida-
ble keywords that can be implemented without custom parsers.

6 years agobproto.t: Test pos(1,$b)
Father Chrysostomos [Sat, 26 May 2012 12:47:08 +0000 (05:47 -0700)] 
bproto.t: Test pos(1,$b)

I nearly broke this.

6 years agoUpdate CORE.pod to reflect the new coresubs
Father Chrysostomos [Tue, 15 May 2012 21:42:50 +0000 (14:42 -0700)] 
Update CORE.pod to reflect the new coresubs

6 years agoMake &CORE::undef(\*_) undefine it properly
Father Chrysostomos [Tue, 15 May 2012 05:26:15 +0000 (22:26 -0700)] 
Make &CORE::undef(\*_) undefine it properly

Unless called as &CORE::undef (without parentheses) after @_ has been
set to \*_, it leaves @_ in the ARRAY slot.

This is an implementation detail leaking through.

pp_entersub temporarily aliases @_ to a new array, which is restored
to its previous value on sub exit.

Since &CORE::undef is a perl sub with an op tree containing
an undef op,

$ ./perl -Ilib -MO=Concise,CORE::undef -e '\&CORE::undef'
CORE::undef:
3  <1> leavesublv[1 ref] K/REFC,1 ->(end)
2     <1> undef sKP/1 ->3
1        <$> coreargs(IV 44) s ->2
-e syntax OK

the undef op runs while @_ is localised.

So we should un-localise @_ if we detect that case.

Doing this in pp_coreargs might be a bit of a hack, but it’s less
code than rewriting &CORE::undef as an XSUB, which would be the
other option.

Either way, we need a special case, since undef is the only named op
that touches the ARRAY slot of the glob passed to it.

6 years ago&CORE::undef should be an lvalue sub
Father Chrysostomos [Sun, 13 May 2012 06:18:50 +0000 (23:18 -0700)] 
&CORE::undef should be an lvalue sub

6 years agoAdd &CORE::undef
Father Chrysostomos [Sun, 13 May 2012 02:05:24 +0000 (19:05 -0700)] 
Add &CORE::undef

In the error message, we can’t say ‘&CORE::undef operator’, so we
should be using the op name, rather than the op description.

Instead of using OP_NAME(PL_op->op_next), which would expand to

    PL_op->op_next->op_type == OP_CUSTOM
? XopENTRY(Perl_custom_op_xop(aTHX_ PL_op->op_next), xop_name)
: PL_op_name[PL_op->op_next->op_type]

we can simply use PL_op_name[opnum], which should be quicker.

pp_undef can already handle nulls on the stack.

There is one remaining problem.  If &CORE::undef(\*_) is called, *_
will be undefined while @_ is localised during the sub call, so it
won’t have the same effect as undef *_.  I don’t know whether this
should be considered a bug or not, but I could solve it by making
pp_undef an XSUB.

6 years agoAdd &CORE::study
Father Chrysostomos [Sat, 12 May 2012 05:06:29 +0000 (22:06 -0700)] 
Add &CORE::study

6 years agoAdd &CORE::split
Father Chrysostomos [Sat, 12 May 2012 05:03:55 +0000 (22:03 -0700)] 
Add &CORE::split

6 years agoAdd &CORE::scalar
Father Chrysostomos [Sat, 12 May 2012 04:54:03 +0000 (21:54 -0700)] 
Add &CORE::scalar

6 years agoAdd &CORE::prototype
Father Chrysostomos [Mon, 30 Apr 2012 15:49:32 +0000 (08:49 -0700)] 
Add &CORE::prototype

6 years agoAdd &CORE::pos
Father Chrysostomos [Mon, 30 Apr 2012 04:15:25 +0000 (21:15 -0700)] 
Add &CORE::pos

6 years agoMake pos use ck_fun and OA_SCALARREF
Father Chrysostomos [Sun, 13 May 2012 05:30:06 +0000 (22:30 -0700)] 
Make pos use ck_fun and OA_SCALARREF

See the previous commit.  The same applies here.

In short, this allows core_prototype and pp_coreargs to be simpler.

6 years agoMake undef use ck_fun and OA_SCALARREF
Father Chrysostomos [Sat, 12 May 2012 21:25:44 +0000 (14:25 -0700)] 
Make undef use ck_fun and OA_SCALARREF

In regen/opcodes, we have some operators that use ck_fun and have R
for the argument.  And there are some that use ck_lfun and have S for
the argument.

These both amount to more or less the same thing.

ck_fun/R goes through the OA_SCALARREF case in ck_fun, which calls
op_lvalue(scalar()) on the child op.

ck_lfun/S goes through the OA_SCALAR case in ck_fun, which calls
scalar(), and then ck_lfun sees to it that op_lvalue is called.

The only real difference is that the OA_SCALAR case makes sure there
are not too many arguments.

Since both core_prototype and pp_coreargs need special cases to deal
with OA_SCALAR that is really ‘supposed’ to be OA_SCALARREF, it
becomes simpler to add &CORE::undef if undef uses R.  In that case,
we also have to put the argument-checking in the OA_SCALARREF, but we
make it conditional on the op being an undef op, for the sake of doing
one thing at a time.  (This is a bit of a mess; see ticket #96006.)

6 years agoAdd &CORE::glob
Father Chrysostomos [Mon, 30 Apr 2012 00:58:44 +0000 (17:58 -0700)] 
Add &CORE::glob

I added a special case for OP_GLOB to pp_coreargs, since glob does not
have the u flag in regen/opcodes; hence PL_opargs[opnum] & OA_DEFGV is
false, even though glob does imply $_.

Adding the flag to regen/opcodes is not so simple, as the code in
ck_fun that adds the DEFSV op does not account for list ops, but
leaves op_last unchanged.

Changing ck_fun to account requires adding more code than this special
case in pp_coreargs.

OPf_SPECIAL indicates that glob was called with the CORE:: prefix.

6 years agopp.c:pp_coreargs: use PL_op_desc instead of OP_DESC
Father Chrysostomos [Sat, 12 May 2012 04:48:58 +0000 (21:48 -0700)] 
pp.c:pp_coreargs: use PL_op_desc instead of OP_DESC

Instead of using OP_DESC on op_next, since we already know the op
number, we can just go straight to PL_op_desc, which is what OP_DESC
itself uses after looking inside op_next to find out what the op
number is.

BTW, &CORE::scalar will need this, since a scalar op is never actu-
ally executed, making coreargs’ op_next pointer point to another op
than expected:

2  <1> leavesublv[1 ref] K/REFC,1 ->(end)
-     <1> scalar sKP/1 ->2
1        <$> coreargs(IV 2) s ->2
-e syntax OK

Otherwise we get ‘Not enough arguments for lvalue subroutine return’.

6 years agoAdd &CORE::exists
Father Chrysostomos [Fri, 27 Apr 2012 16:53:16 +0000 (09:53 -0700)] 
Add &CORE::exists

6 years agoAdd &CORE::delete
Father Chrysostomos [Fri, 27 Apr 2012 03:40:48 +0000 (20:40 -0700)] 
Add &CORE::delete

6 years agoAdd &CORE::defined
Father Chrysostomos [Fri, 27 Apr 2012 03:38:37 +0000 (20:38 -0700)] 
Add &CORE::defined

6 years agocoresubs.t: Explicitly skip all unsupported keywords
Father Chrysostomos [Fri, 27 Apr 2012 03:36:03 +0000 (20:36 -0700)] 
coresubs.t: Explicitly skip all unsupported keywords

Instead of skipping positive keywords (those that cannot be over-
ridden) because of their positivity, list them explicitly in the
skip list.

This will allow them to be removed one by one.

6 years agocoreamp.t: Explicitly skip all unsupported keywords
Father Chrysostomos [Fri, 27 Apr 2012 03:31:22 +0000 (20:31 -0700)] 
coreamp.t: Explicitly skip all unsupported keywords

Instead of skipping positive keywords (those that cannot be over-
ridden) because of their positivity, list them explicitly in the
skip list.

This will allow them to be removed one by one.

6 years agogv.c: List all keywords with no coresubs
Father Chrysostomos [Fri, 27 Apr 2012 00:56:46 +0000 (17:56 -0700)] 
gv.c: List all keywords with no coresubs

S_maybe_add_coresub returns NULL for any keywords that are not
overridable.

Instead of identifying them by the positivity of their codes, list
them all explicitly.

This will allow coresubs to be added for them one by one.

6 years agoUpdate perlfunc/prototype
Father Chrysostomos [Tue, 24 Apr 2012 05:55:48 +0000 (22:55 -0700)] 
Update perlfunc/prototype

to account for the new inconsequentiality of non-overridability.

6 years agoAdd protos for positive keywords
Father Chrysostomos [Sat, 21 Apr 2012 19:50:25 +0000 (12:50 -0700)] 
Add protos for positive keywords

‘Positive’ means having a + before it in regen/keywords.pl; i.e., key-
words that cannot be overridden.

Since all keywords are going to be added as subs to the CORE:: name-
space, with prototypes wherever they can apply, it makes sense to
return prototypes for all that can have them, which turns out to be
only a handful.

6 years agoCast exception handler in dl_vms.xs.
Craig A. Berry [Mon, 28 May 2012 21:10:57 +0000 (16:10 -0500)] 
Cast exception handler in dl_vms.xs.

C++ needs an explicit type on the handler.

6 years agoAdd test for [perl #113400]
Father Chrysostomos [Mon, 28 May 2012 16:11:44 +0000 (09:11 -0700)] 
Add test for [perl #113400]

6 years agoperlfunc: two missing words
Father Chrysostomos [Sun, 27 May 2012 18:22:51 +0000 (11:22 -0700)] 
perlfunc: two missing words

This odd sentence was introduced in 8f1da26d.

6 years agoperldelta for 2b42d7ed8
Tony Cook [Mon, 28 May 2012 13:59:20 +0000 (23:59 +1000)] 
perldelta for 2b42d7ed8

6 years ago[perl #112272] return EEXIST on link() to an existing file
Tony Cook [Tue, 8 May 2012 06:42:19 +0000 (16:42 +1000)] 
[perl #112272] return EEXIST on link() to an existing file

Also attempts to translate some other errors.

Unfortunately Microsoft don't document error codes.

6 years ago[perl #112272] test link()'s error returns (TODO)
Tony Cook [Mon, 7 May 2012 12:23:42 +0000 (22:23 +1000)] 
[perl #112272] test link()'s error returns (TODO)

6 years agoRevert "fix [perl #76546] regex engine slowdown bug"
Yves Orton [Mon, 28 May 2012 08:58:06 +0000 (10:58 +0200)] 
Revert "fix [perl #76546] regex engine slowdown bug"

This reverts commit dee29c6b5bec1d6e7fccc971e31113a5d7cee844.

    $ perl5.16.0 -e 'warn "t/bin/good.pl syntax OK\n" =~ /syntax OK\s+\z/si'
    1 at -e line 1.
    $ bleadperl -e 'warn "t/bin/good.pl syntax OK\n" =~ /syntax OK\s+\z/si'
    Warning: something's wrong at -e line 1.

Will fix properly later.

6 years agoUpdate checkAUTHORS.pl with missing author
Steve Hay [Mon, 28 May 2012 08:53:57 +0000 (09:53 +0100)] 
Update checkAUTHORS.pl with missing author

6 years ago[perl #111798] ExtUtils-CBuilder looks for the manifest file in the wrong place
N/K [Mon, 28 May 2012 08:33:58 +0000 (09:33 +0100)] 
[perl #111798] ExtUtils-CBuilder looks for the manifest file in the wrong place

Near the start of link(), $output gets set to a blib\arch\auto path.
A little later that gets copied into $spec{output}, but $spec{manifest}
is left unset so it gets set later to a $spec{builddir} path, which is
not what $spec{output} was set to earlier.
The manifest file is always created alongside the DLL, so the correct
fix is simply to append '.manifest' to the DLL path to find the manifest.
(EU-MM does that too.)

Patch taken from [cpan #35943] which reported the same problem. The other
concern raised there, about the VC version being checked to deduce the
existence of the manifest file rather than testing that directly, has
long since been incorporated already and also explains why this problem
has not been seen recently: the faulty attempt to embed the manifest has
not been attempted ever since the existence test was added because it was
also failing and hence no 'mt' command was being run. [cpan #35943] is
thus resolved by this change too.

Bump $VERSION in all ExtUtils::CBuilder files (to 0.280208) to keep them
all in sync as before.

6 years ago[perl #111782] ExtUtils-CBuilder on Windows does not embed manifests
Steve Hay [Mon, 28 May 2012 07:35:19 +0000 (08:35 +0100)] 
[perl #111782] ExtUtils-CBuilder on Windows does not embed manifests

Correct the test for the existence of the manifest file.
Bump $VERSION in all ExtUtils::CBuilder files (to 0.280207) to keep them
all in sync, as is currently the case.

6 years agoSynchronise Module-CoreList in Maintainers.pl for v5.17.0 release
Chris 'BinGOs' Williams [Sun, 27 May 2012 21:35:02 +0000 (22:35 +0100)] 
Synchronise Module-CoreList in Maintainers.pl for v5.17.0 release

6 years agoupdate release schedule; 5.17.3 is Steve Hay
Ricardo Signes [Sun, 27 May 2012 13:32:27 +0000 (09:32 -0400)] 
update release schedule; 5.17.3 is Steve Hay

6 years agofix [perl #76546] regex engine slowdown bug
Yves Orton [Sun, 22 Apr 2012 13:58:32 +0000 (15:58 +0200)] 
fix [perl #76546] regex engine slowdown bug

6 years agoAdd missing author for 5.11.2 epigraph
Breno G. de Oliveira [Fri, 25 May 2012 13:44:47 +0000 (10:44 -0300)] 
Add missing author for 5.11.2 epigraph

6 years agoFix for [perl #9423] vec assignments generate 2 warnings
Brian Fraser [Sat, 26 May 2012 20:35:26 +0000 (17:35 -0300)] 
Fix for [perl #9423] vec assignments generate 2 warnings

Before this commit, this:

    vec(my $v,0,1) = 1;

would've produced four warnings about uninitialized values;
however, the ticket argued that these were spurious.

This commit removes the warning in the case of lvalue vec, since it is
similar to |=, but leaves it in place for rvalue vec.

6 years agosv.c: Make sv_pvn_force_flags guard against SV_UNDEF_RETURNS_NULL.
Brian Fraser [Sat, 26 May 2012 01:30:02 +0000 (22:30 -0300)] 
sv.c: Make sv_pvn_force_flags guard against SV_UNDEF_RETURNS_NULL.

Previously, if SV_UNDEF_RETURNS_NULL was passed to sv_pvn_force_flags,
it would call sv_2pv_flags with that flag, and get back a NULL instead
of a char *, which lead to issues.
This commit makes sv_pvn_force_flags use an empty string in that case.

6 years agoCPAN's Term::ReadLine has been synchronised
Florian Ragwitz [Mon, 26 Mar 2012 12:51:50 +0000 (14:51 +0200)] 
CPAN's Term::ReadLine has been synchronised

6 years agoFile::Spec::Unix: Fix pod link
Father Chrysostomos [Sat, 26 May 2012 21:12:56 +0000 (14:12 -0700)] 
File::Spec::Unix: Fix pod link

6 years agoAdd Volker Schatz to AUTHORS
Father Chrysostomos [Sat, 26 May 2012 20:31:30 +0000 (13:31 -0700)] 
Add Volker Schatz to AUTHORS

6 years agoIncrease $File::Spec::Unix::VERSION to 3.39_03
Father Chrysostomos [Sat, 26 May 2012 20:30:36 +0000 (13:30 -0700)] 
Increase $File::Spec::Unix::VERSION to 3.39_03

6 years agoTests for perl #111510
Volker Schatz [Sat, 26 May 2012 20:29:54 +0000 (13:29 -0700)] 
Tests for perl #111510

6 years ago[perl #111510] File::Spec::UNIX->abs2rel() gets it wrong with ".." components
Volker Schatz [Sat, 26 May 2012 19:32:25 +0000 (12:32 -0700)] 
[perl #111510] File::Spec::UNIX->abs2rel() gets it wrong with ".." components

File::Spec::UNIX->abs2rel() returns wrong results in a few cases, most
of which involve ".." path components.

To reproduce, paste the following test cases into:
perl -MFile::Spec::Unix -n -e 'print File::Spec::Unix->abs2rel(split),"\n";'

../foo bar/bat
bar/bat ../foo
foo bar/../bat
. .
/ /

Correct results when run at /home/me and no symlinks in base path:
../../../foo
../me/bar/bat
../foo
.
.

Results for File::Spec::Unix from PathTols 3.33:
../../foo
../bar/bat
../../../foo
/
/

The error in the first test case is due to an optimisation applied when
both arguments are relative paths, which prepends "/" instead of the
current directory.  "/../" is then converted to "/" by canonpath().

I have replaced this optimisation by a single call to _cwd() in the
following patch.  This also fixes the fourth test case.  Besides, I have
moved checks which make sense only for absolute path arguments to the
first branch of the if.

(hunk @@ -366,28 +367,32 @@)

The error in the last test case arises because a root dir $base is
treated specially, and catdir() does not work well for fewer than two
path components. The first added line in the following patch catches that.

As regards the second and third test case, they can be solved without
consulting the filesystem only if no symlinks are involved.  Whereever
$path contains .. components, the corresponding directory has to be
descended into. The following patch does this.

(hunk @@ -395,19 +400,39 @@)

It can be impossible for abs2rel() to work correctly without looking at
the filesystem if $base contains symlinks.  I understand from the
documentation that the File::Spec modules are not meant to consult the
filesystem.  Even though the docs state that abs2rel() does not consult
the filesystem, the implications could perhaps be made clearer, for
example like this:

(hunk @@ -352,9 +352,10 @@)

6 years agorewrite installhtml's installdir dir scan logic
Aristotle Pagaltzis [Tue, 15 May 2012 16:59:33 +0000 (18:59 +0200)] 
rewrite installhtml's installdir dir scan logic

The code so far was riddled with copy-paste and hacks and incurred
redundant effort, including syscalls. Replaced with a skimmable and
parsimonious implementation.

6 years agoturn some quasi-declarations into real inline ones
Aristotle Pagaltzis [Wed, 16 May 2012 02:47:29 +0000 (04:47 +0200)] 
turn some quasi-declarations into real inline ones

6 years agoswitch installhtml from File::Spec to ::Functions
Aristotle Pagaltzis [Tue, 15 May 2012 16:59:31 +0000 (18:59 +0200)] 
switch installhtml from File::Spec to ::Functions

The plan in the next commits is to use C<no_upwards> from File:::Spec to
be explicit about intent -- imported using File::Spec::Function to avoid
the ugly File::Spec class method calling convention. This patch would be
frivolous otherwise, but given the occasion we might as well make things
consistent.

6 years agorecord some more release volunteers
Ricardo Signes [Sat, 26 May 2012 17:44:26 +0000 (13:44 -0400)] 
record some more release volunteers

6 years agonote that there is another file to edit on perlweb
Ricardo Signes [Sat, 26 May 2012 17:22:09 +0000 (13:22 -0400)] 
note that there is another file to edit on perlweb

6 years agolink to 5.17.0 release announcement
Zefram [Sat, 26 May 2012 16:57:51 +0000 (17:57 +0100)] 
link to 5.17.0 release announcement

6 years agonew perldelta
Zefram [Sat, 26 May 2012 16:38:31 +0000 (17:38 +0100)] 
new perldelta

6 years agoepigraph for 5.17.0
Zefram [Sat, 26 May 2012 16:19:36 +0000 (17:19 +0100)] 
epigraph for 5.17.0

6 years agofix perlhist entry for 5.16.0 v5.17.0
Zefram [Sat, 26 May 2012 14:06:57 +0000 (15:06 +0100)] 
fix perlhist entry for 5.16.0

6 years agoadd new release to perlhist
Zefram [Sat, 26 May 2012 14:05:01 +0000 (15:05 +0100)] 
add new release to perlhist

6 years agoupdate Module::CoreList for 5.17.0
Zefram [Sat, 26 May 2012 14:03:04 +0000 (15:03 +0100)] 
update Module::CoreList for 5.17.0

6 years agonote Module::CoreList issue with .0 versions
Zefram [Sat, 26 May 2012 14:01:51 +0000 (15:01 +0100)] 
note Module::CoreList issue with .0 versions

6 years agohandle hash form of bugtracker resource data
Zefram [Sat, 26 May 2012 13:55:38 +0000 (14:55 +0100)] 
handle hash form of bugtracker resource data

The format changed with version 2 of the META spec.

6 years agohandle JSON meta files on CPAN
Zefram [Sat, 26 May 2012 13:52:08 +0000 (14:52 +0100)] 
handle JSON meta files on CPAN

6 years agofinalise perldelta
Zefram [Sat, 26 May 2012 12:40:28 +0000 (13:40 +0100)] 
finalise perldelta

6 years agocorrect pluralisation for "1 week"
Zefram [Sat, 26 May 2012 12:34:20 +0000 (13:34 +0100)] 
correct pluralisation for "1 week"

6 years agoTest case for [perl #9391]
Brian Fraser [Sat, 26 May 2012 00:46:19 +0000 (21:46 -0300)] 
Test case for [perl #9391]

6 years ago__DECCXX usually should do what __DECC does.
Craig A. Berry [Fri, 25 May 2012 22:56:55 +0000 (17:56 -0500)] 
__DECCXX usually should do what __DECC does.

Unless __DECC was meant as the opposite of VAX C, which is not
C89-compliant and cannot build Perl.

6 years agoFix varying string struct for VMS's home-grown glob.
Craig A. Berry [Fri, 25 May 2012 22:16:20 +0000 (17:16 -0500)] 
Fix varying string struct for VMS's home-grown glob.

We were only using 4K, not 64K, and we were requesting longword
alignment but not providing a struct size that was a multiple of 4.

6 years agoremove deprecated qw-as-parens behaviour
Zefram [Fri, 25 May 2012 21:25:21 +0000 (22:25 +0100)] 
remove deprecated qw-as-parens behaviour

6 years agoBlock signals during fork (fixes RT#82580)
Leon Timmermans [Tue, 22 May 2012 14:58:26 +0000 (16:58 +0200)] 
Block signals during fork (fixes RT#82580)