| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
defined(FILE) does not work. This test ‘passed’ for me, even when
I broke it.
|
|
|
|
| |
to make sure subsequent commits don’t break things.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The original authors have agreed to alter the licensing of these
files, in order to remove a potentially problematic invariant
title clause:
From: Doug MacEachern <dougm@…..com>
To: Jon Orwant <orwant@….com>
Cc: Jesse Vincent <jesse@fsck.com>
Subject: Re: [fwd] [perl #96000] Restrictive licensing term on pod/perlembed.pod, pod/perlmodinstall.pod
Message-ID: <1dc71b53-12e2-45d3-af62-f6d169147921@ox.local>
In-Reply-To: <CAJs5hDaW+k6mf_NBj-6hPyr4rGvkEjhVtXyJ8ziLXyXimcvgHA@mail.gmail.com>
Any license changes to perlembed.pod are fine with me.
Or just revert to the original version of the document: "Look at perlmain.c, and do something like that." ;)
Best,
-Doug
----- Original Message -----
> From: "Jon Orwant" <orwant@….com>
> To: "Jesse Vincent" <jesse@fsck.com>
> Cc: dougm@….com
> Sent: Sunday, July 31, 2011 7:38:49 PM
> Subject: Re: [fwd] [perl #96000] Restrictive licensing term on pod/perlembed.pod, pod/perlmodinstall.pod
>
> Sure, happy to relicense.
>
>
> Jon
>
>
> On Sun, Jul 31, 2011 at 4:03 PM, Jesse Vincent < jesse@fsck.com >
> wrote:
>
>
> Hi Doug & Jon,
>
> I know it's been forever since you last touched the perl core-
>
> It looks like the Debian folks would like us to relax the licensing
> terms on docs that bear your copyrights.
>
> Would you be willing to relicense the contributions you made to the
> two
> documents listed below under the same terms as the rest of Perl?
>
> Thanks!
> Jesse
> --
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
In particular, note the addition of the coreargs opcode in perldelta
We might have no need of this entry in the perl5160 delta, but for
those brave enough to read 5.15.2 delta, it may be of interest.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
In commit 7fa5bd9b5, I not only forgot about getpwent (see commit
cc131e4, in which I mistakenly called it pwent), but fork as well.
Again, all this commit has to do is add it to the list of ‘ampable’
functions in gv.c. The rest already works.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Commit bb1bc619 eliminated the only case that ‘goto wasref’ is called
with something that might have overloading. The only ‘goto wasref’
that remains is the autovivifying case, which cannot have any magic
(since the GV has just been created). So the wasref label can be
moved below the amagic check.
Consider this a picoöptimisation.
|
|
|
|
|
|
| |
In commit 7fa5bd9b5, I forgot about pwent. All this commit has
to do is add it to the list of ‘ampable’ functions in gv.c. The
rest already works.
|
| |
|
| |
|
|
|
|
|
|
| |
Turns out I mixed things up and would've had to do two releases in one month,
which is probably not a good idea. Stevan was happy to do his release a month
earlier.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Commit eff7e72c3 (Detect incomplete caller overrides in Carp) used
this little trick for detecting a @DB::args that an overridden
caller() failed to set:
+ @args = \$i; # A sentinal, which no-one else has the address of
But there is a bug in caller(). The first time caller tries to write
to @DB::args, it calls Perl_init_dbargs first. That function checks
whether @DB::args is AvREAL, in case someone has assigned to it, and
takes appropriate measures. But caller doesn’t bother calling
Perl_init_dbargs more than once. So manually-assigned items in
@DB::args would leak, starting with the *second* call to caller.
Commit eff7e72c3 triggered that bug, resulting in a regression in
Carp, in that it started leaking. eff7e72c3 was backported to 5.12.2
with commit 97705941a4, so in both 5.12 and 5.14 Carp is affected.
This bug (the caller bug, not Carp’s triggering thereof) also affects
any caller overrides that set @DB::args themselves, if there are
alternate calls to the overridden caller and CORE::caller.
This commit fixes that by changing the if (!PL_dbargs) condition
in pp_caller to if (!PL_dbargs || AvREAL(PL_dbargs)). I.e., if
@args is either uninitialised or AvREAL then call Perl_init_dbargs.
Perl_init_dbargs also has a bug in it, that this fixes: The array not
only needs AvREAL turned off, but also AvREIFY turned on, so that
assignments to it that occur after its initialisation turn AvREAL back
on again. (In fact, Larry Wall added a comment suggesting this back
in perl 5.000.)
|
|
|
|
| |
Something I missed in commit d47dcd9c7
|
| |
|
|
|
|
|
|
|
|
| |
This commit allows &CORE::wantarray to be called via ampersand syntax
or through references.
It adds a new private flag for wantarray, OPpOFFBYONE, which caller
will use as well, telling wantarray (or caller) to look one call fur-
ther up the call stack.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit makes nullary subs in the CORE package callable with
ampersand syntax and through references--except for wantarray, which
is more complicated and will have its own commit.
It does this by creating an op tree like this:
$ ./perl -Ilib -MO=Concise,CORE::times -e 'BEGIN{\&CORE::times}'
CORE::times:
3 <1> leavesub[1 ref] K/REFC,1 ->(end)
- <@> lineseq K ->3
1 <$> coreargs(IV 310) v ->2
2 <0> tms ->3
-e syntax OK
The coreargs op checks to make sure there are no arguments, for now.
The 310 is the op number for times (OP_TMS).
There is no nextstate op, because we want to inherit hints from
the caller.
The __FILE__, __LINE__ and __PACKAGE__ directives are implemented
like this:
$ ./perl -Ilib -MO=Concise,CORE::__FILE__ -e 'BEGIN{\&CORE::__FILE__}'
CORE::__FILE__:
7 <1> leavesub[1 ref] K/REFC,1 ->(end)
- <@> lineseq K ->7
1 <$> coreargs(PV "__FILE__") v ->2
6 <2> lslice K/2 ->7
- <1> ex-list lK ->4
2 <0> pushmark s ->3
3 <$> const(IV 1) s ->4
- <1> ex-list lK ->6
4 <0> pushmark s ->5
5 <0> caller[t1] l ->6
-e syntax OK
The lslice op and its children are equivalent to (caller)[1].
|
|
|
|
| |
&CORE::foo subs will use this operator for sorting out @_.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
See the thread starting at:
http://www.nntp.perl.org/group/perl.perl5.porters/2011/07/msg175161.html
Instead of assuming that only Perl subs have mallocked CvFILEs and
only under threads, resulting in various hackery to borrow parts of
the SvPVX buffer where that assumption proves wrong, we can simply
add another flag (DYNFILE) to indicate whether CvFILE is mallocked,
instead of trying to use the ISXSUB flag for two purposes.
This simplifies the code greatly, eliminating bug #96126 in the pro-
cess (which had to do with sv_dup not knowing about the hackery that
this commit removes).
I removed that comment from cv_ckproto_len about CONSTSUBs doubling up
the buffer field, as it is no longer relevant. But I still left the
code as it is, since it’s better to do an explicit length check.
|
| |
|
| |
|
| |
|
| |
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* 'blead' of ssh://perl5.git.perl.org/perl:
[perl #97076] Fix mad+threads bareword strict exemption
perldelta update
Two AUTHORS fixes
Remove OPpENTERSUB_NOMOD from B::Concise
Remove OPpENTERSUB_NOMOD.
Propagate lvalue context only to children of list ops which are not in void context.
Fix tabbing and trailing whitespace from commit f1d35e3443 and bump IO::Socket version.
Use the exception set in select (connect()) to early return when remote end is busy or in non existing port
generic perldelta entry for prototype changes
&CORE::not and &CORE::getprotobynumber
Give not and getprotobynumber listop prototypes
Document and test $; prototype syntax
Move checking of CV to GV assigned (OPpASSIGN_CV_TO_GV) from the peephole optimizer to scalarvoid
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
As reported in the ticket this was broken by:
commit eb796c7f1a47acbd996034731639c1bb76e31a19
Author: Gerard Goossen <gerard@ggoossen.net>
Date: Tue Aug 9 20:35:06 2011 +0200
Move bareword checking from the peephole optimizer to finalize_optree. Fixes [perl #95998]
The bareword checking is moved from the peephole optimizer to finalize_optree.
newRANGE needs additional bareword checking because the constants may
be optimized away by 'gen_constant_list'.
The OPpCONST_STRICT flag is removed after giving an error about a
bareword to prevent giving multiple errors about the same bareword.
In some cases, like pipe(foo,bar), the bareword was subject to strict
'subs' even though it was meant to be exempt.
A backtrace revealed that it happened in S_finalize_op when called
recursively from this block:
#if defined(PERL_MAD) && defined(USE_ITHREADS)
{
/* Make sure mad ops are also thread-safe */
MADPROP *mp = o->op_madprop;
while (mp) {
if (mp->mad_type == MAD_OP && mp->mad_vlen) {
OP *prop_op = (OP *) mp->mad_val;
/* We only need "Relocate sv to the pad for thread safety.", but this
easiest way to make sure it traverses everything */
finalize_op(prop_op);
}
mp = mp->mad_next;
}
}
#endif
That comment about only needing to relocate the sv to the pad is
telling. If that’s the only reason for the recursive call, then
we don’t want that recursive call doing strict checking. So this
commit simply turns off the strict flag, which should be safe, since
S_no_bareword_allowed does the same thing itself.
|
| | |
|
| |
| |
| |
| |
| | |
• Correct Kankovský
• Add Karthik Rajagopalan
|
| | |
|
| |
| |
| |
| |
| |
| | |
OPpENTERSUB_NOMOD was always set in combination with OPf_WANT_VOID
which is now used to not propagate the lvalue context, making
OPpENTERSUB_NOMOD redundant.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
context.
Children list ops might be in void context because the list is in scalar
context. A test that discarded elements in a list are not assigned lvalue
context is added.
Children of a list op might also be in void context because they are
special entersub ops for attributes. This patch makes the
OPpENTERSUB_NOMOD flag redundant.
|
| |
| |
| |
| | |
and bump IO::Socket version.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
is busy or in non existing port
For non blocking socket, it a timeout has been specified, IO::Socket internally use select(..) to
detect the result of socket connection. In situation, where remote end is busy or in non-existing port, we spend
entire timeout mentioned in select(..) call. We cannot completely differentiate if error is WSAECONNREFUSED(10061) or
WSAETIMEDOUT(10060) in this situation. If we use the exception set in select(..) call, we can do early return and also
a make a clear differentiation in error condition. This is same like what Linux handle in this situation.
|
| | |
|
| |
| |
| |
| |
| |
| | |
These two are now supported. They were not before, because their
prototypes gave them unary precedence, even though these ops both
have list precedence. That was corrected in the previous commit.
|
| |
| |
| |
| |
| | |
They parse as list operators, but their prototypes imply unop
precedence.
|
| |
| |
| |
| |
| | |
This has worked this way for yonks. It is actually useful, so it might
as well be documented.
|
| |
| |
| |
| | |
optimizer to scalarvoid
|
| |
| |
| |
| |
| | |
structure of Perl 5 governance removed during the major refactoring
of perlhack.pod in 04c692a854b61dfae1266e29468ce4fb51c80512.
|
|/ |
|