Jan Dubois [Tue, 14 Dec 2010 23:48:10 +0000 (15:48 -0800)]
Define our own sockaddr_in6 for VC6
The version defined by the VC6 headers is missing the sin6_scope_id
field, used by Socket.xs. Ideally VC6 should be used with later
versions of the header files from a Windows Platform SDK, but this
patch at least keeps it compilable with plain VC6. I have not verified
that the IPv6 code will actually works with this configuration.
Jan Dubois [Tue, 14 Dec 2010 23:40:17 +0000 (15:40 -0800)]
#define some symbols for VC6 compatibility
HWND_MESSAGE and WC_NO_BEST_FIT_CHARS are not defined by the VC6
headers unless WINVER is set to 0x0500 or higher, but then the
headers will generate a lot of warnings because Windows 2000
was still in beta when those headers where released.
PROCESSOR_ARCHITCTURE_AMD64 is not defined at all in the
VC6 headers.
Florian Ragwitz [Wed, 15 Dec 2010 00:00:30 +0000 (01:00 +0100)]
Dual-life Dumpvalue
Chris 'BinGOs' Williams [Tue, 14 Dec 2010 18:56:42 +0000 (18:56 +0000)]
Update Digest-SHA to CPAN version 5.50
[DELTA]
5.50 Tue Dec 14 06:20:08 MST 2010
- adopted convention that '-' always means STDIN
-- actual filename '-' accessed as './-'
-- accords with behavior of sha1sum/md5sum
- corrected undefined subroutine oversight in shasum
-- inadvertent migration of _bail() from SHA.pm
Nicholas Clark [Tue, 14 Dec 2010 16:59:11 +0000 (16:59 +0000)]
Convert ext/Fcntl/t/syslfs.t to Test::More and t/op/lfs.t to test.pl
Nicholas Clark [Tue, 14 Dec 2010 16:58:10 +0000 (16:58 +0000)]
Add $Tests_Are_Passing to test.pl, analogous to Test::Builder's is_passing().
Nicholas Clark [Tue, 14 Dec 2010 16:12:39 +0000 (16:12 +0000)]
In Fcntl's syslfs.t and t/op/lfs.t, eliminate bye().
Its cleanup actions are implicit in the END block, so replace C<warn ...; bye>;
with C<die ...> and other calls of C<bye;> with C<exit 0;>
Also, remove the newlines from the strings passed to die, to make the
diagnostics more useful for locating failures.
Nicholas Clark [Tue, 14 Dec 2010 15:43:02 +0000 (15:43 +0000)]
In Fcntl's syslfs.t and t/op/lfs.t, eliminate zap().
Now that we're using tempfiles, it no longer contains code to unlink the test
files, only a close. Inline the C<close BIG> into bye(), and remove the other
call to zap(), which was immediately after an explicit close of BIG.
Nicholas Clark [Mon, 13 Dec 2010 17:20:44 +0000 (17:20 +0000)]
Refactor syslfs.t and lfs.t to call bye() directly from explain() when skipping.
This will make it easier to refactoring to use Test::More/test.pl
Nicholas Clark [Mon, 13 Dec 2010 17:01:09 +0000 (17:01 +0000)]
Convert ext/Fcntl/t/syslfs.t to File::Temp
This reduces the differences between ext/Fcntl/t/syslfs.t and t/op/lfs.t
Nicholas Clark [Mon, 13 Dec 2010 14:42:32 +0000 (14:42 +0000)]
Reduce inconsistencies between ext/Fcntl/t/syslfs.t and t/op/lfs.t
The two are testing the same functionality, and comments in each reference the
other. However, the two have diverged, sometimes in the same commit, sometimes
when corrections have been applied to only one. (eg
972720f939262dd0)
Nicholas Clark [Mon, 13 Dec 2010 16:08:38 +0000 (16:08 +0000)]
Check return values in the test programs run by syslfs.t and lfs.t
Also fix a bug introduced in
1c25d394345c1b97, which accidentally neutered the
test program of t/op/lfs.t, causing it to attempt to open an empty file, and
hence do nothing and then always exit with 0.
Abigail [Tue, 14 Dec 2010 16:35:18 +0000 (17:35 +0100)]
Be more consistent with 'the Perl core'
Zefram [Sun, 12 Dec 2010 11:41:55 +0000 (11:41 +0000)]
permit labels to be stacked
Liberalise label syntax a little more, by allowing multiple adjacent
labels with no intervening statements, as in "foo: bar: baz:".
Zefram [Mon, 13 Dec 2010 20:53:19 +0000 (20:53 +0000)]
mark blockhooks API as experimental
Craig A. Berry [Mon, 13 Dec 2010 13:21:28 +0000 (07:21 -0600)]
Explicitly close filehandle in ExtUtils::CBuilder::have_compiler().
A recent change removed the lexical scope that would have caused
the lexical filehandle on the temporary source file to get closed
automatically. If the filehandle is still open for write, you
can't compile it or delete unless it's open for shared access,
which is not the default on VMS (and deleting an open fle might
be a problem on Windows as well).
Without deleting the .c files, a subsequent make (even after a make
realclean) will identify CBuilder as an XS extension and fail when
it can't compile the non-existent CBuilder.c, which breaks the build
for second and subsequent runs of a smoke test.
Father Chrysostomos [Mon, 13 Dec 2010 06:38:24 +0000 (22:38 -0800)]
perldelta tweaks
Father Chrysostomos [Mon, 13 Dec 2010 06:32:22 +0000 (22:32 -0800)]
Father Chrysostomos [Mon, 13 Dec 2010 04:45:47 +0000 (20:45 -0800)]
perldelta for ad021bf/[perl #76026]
Father Chrysostomos [Mon, 13 Dec 2010 04:44:26 +0000 (20:44 -0800)]
perldelta for 78cdf10
Father Chrysostomos [Mon, 13 Dec 2010 02:12:37 +0000 (18:12 -0800)]
perldelta for 88b5a87
Craig A. Berry [Sun, 12 Dec 2010 23:43:32 +0000 (17:43 -0600)]
Reduce redundant macros and prototypes in vmsish.h.
In imitation of
e64ca59f2852bc5d0450eea5ed412609a046829d, we don't
really need different prototypes or macros for MULTIPLICITY and
non-MULTIPLICITY. For now, leave drop-in replacements of CRTL
functions alone as there may be more going on there (arguably
these really have no business passing around Perl thread context).
Chris 'BinGOs' Williams [Sun, 12 Dec 2010 22:08:49 +0000 (22:08 +0000)]
Update ExtUtils-CBuilder to CPAN version 0.2802
[DELTA]
0.2802 - Sun Dec 12 07:22:43 EST 2010
Fixed:
- Incorporated another t/04-base.t fix from bleadperl
[Chris Williams]
Chris 'BinGOs' Williams [Sun, 12 Dec 2010 21:58:41 +0000 (21:58 +0000)]
Update Digest-SHA to CPAN version 5.49
[DELTA]
5.49 Sun Dec 12 07:22:04 MST 2010
- modified Addfile to accept all POSIX filenames
-- standard allows all characters except NUL and '/'
- updated shasum to more closely mimic sha1sum/md5sum
-- added "backslash processing" to handle newlines
and backslashes in filenames
-- now accepts all POSIX filenames via Addfile
-- thanks to Sean Burke for identifying edge cases
Reini Urban [Sun, 12 Dec 2010 15:20:33 +0000 (16:20 +0100)]
Make entertry a LOGOP, not BASEOP/UNOP
The initial parse-time UNOP is upgraded at ck_eval to an LOGOP
- op_other holding the ptr to leavetry -
which causes problems at run-time B optype inspection.
The opclass info was always wrong, the Bytecode compiler broke with 5.12.
Karl Williamson [Sun, 12 Dec 2010 18:28:20 +0000 (11:28 -0700)]
blead breaks Attribute::Constant
The problem is that I confused FOLD with ANYOF_FOLD, and as a result,
emitted a locale regnode, which is tainted. Any tests that required
non-tainting started failing
Zefram [Sat, 11 Dec 2010 20:38:16 +0000 (20:38 +0000)]
rename some grammar productions for clarity
Some of the names for types of expression were misleading.
Rename "listexpr"->"optlistexpr", "listexprcom"->"optexpr", and
"argexpr"->"listexpr" to make them more accurately descriptive and
more consistent.
Father Chrysostomos [Sun, 12 Dec 2010 07:31:44 +0000 (23:31 -0800)]
Fix test count in t/re/pat.t
Father Chrysostomos [Sun, 12 Dec 2010 02:50:49 +0000 (18:50 -0800)]
[perl #76026] match variables persist between calls to a sort sub
Since, for speed’s sake, pp_sort does not call PUSH/POPBLOCK for
every invocation of a sort subroutine, it fails to restore PL_curpm
after each call (POPBLOCK usually handles that). So the new values of
match vars like $1 when the sub returns are what it sees at the next
invocation.
This commit fixes this by resetting PL_curpm after each call to the
subroutine. There are actually three different functions for this
(S_sortcv*) so they all need modification.
Father Chrysostomos [Sun, 12 Dec 2010 00:28:59 +0000 (16:28 -0800)]
perldelta for [perl #68712]
Zefram [Sat, 11 Dec 2010 01:31:03 +0000 (01:31 +0000)]
recursive-descent expression parsing
New API functions parse_fullexpr(), parse_listexpr(), parse_termexpr(),
and parse_arithexpr(), to parse an expression at various precedence
levels.
Karl Williamson [Sun, 12 Dec 2010 00:20:18 +0000 (17:20 -0700)]
re/pat.t: Add todo test for #38133
Karl Williamson [Thu, 9 Dec 2010 03:54:26 +0000 (20:54 -0700)]
perldelta: mention need to update unicode pods
Karl Williamson [Thu, 9 Dec 2010 03:31:43 +0000 (20:31 -0700)]
unicode_strings.t: Revise tests for EBCDIC, clarity
This patch addresses some of Hugo's concerns.
Karl Williamson [Wed, 8 Dec 2010 05:51:34 +0000 (22:51 -0700)]
regcomp.c: Clean up optimization for 1-char []
A single character character class can be optimized into an EXACT node.
The changes elsewhere allow this to no longer be constrained to
ASCII-only when the pattern isn't UTF-8. Also, the optimization
shouldn't have happened for FOLDED characters, as explained in the
comments, when they participate in multi-char folds; so that is removed.
Also, a locale node with folded characters can be optimized.
Karl Williamson [Wed, 8 Dec 2010 00:04:02 +0000 (17:04 -0700)]
regcomp: Allow freeing up bit in ANYOF flags
The flags field is fully used, and until the ANYOF node is split later
in development, the CLASS bit will need to be freed up to give the space
for other uses. This patch allows for this to easily be toggled.
Karl Williamson [Tue, 7 Dec 2010 23:23:07 +0000 (16:23 -0700)]
regcomp.c: Move [] inversion optimization
The optimization to do inversion a compile time is moved to earlier.
This doesn't help today, but it may someday when we start keeping better
track of Unicode characters, and is the more logical place for it.
Karl Williamson [Tue, 7 Dec 2010 22:21:55 +0000 (15:21 -0700)]
regcomp.c: When inverting a [], adjust bit count
When one complements every bit, the count of those that are set should
be complemented as well.
Karl Williamson [Tue, 7 Dec 2010 22:16:07 +0000 (15:16 -0700)]
Subject: [PATCH] regcomp.c: adjust flag
When something matches above Latin1, it should have the ANYOF_UTF8 bit
set.
Karl Williamson [Tue, 7 Dec 2010 22:13:29 +0000 (15:13 -0700)]
regcomp.c: Change constants for clarity.
Oddly, it is clearer to use 0xFF as an exclusive-or target instead of an
unrelated #define that happens to have that value.
Karl Williamson [Tue, 7 Dec 2010 22:06:35 +0000 (15:06 -0700)]
regcomp.c: fix indent
Karl Williamson [Tue, 7 Dec 2010 22:04:20 +0000 (15:04 -0700)]
regcomp.c: remove no longer needed test
optimize_invert is no longer needed given the changes already made, as
now if there is something not in the bitmap, a flag will be set, and the
optimization doesn't take place unless the only flag is inversion. And,
the bitmap is setup completely now for anything that doesn't have to be
deferred to runtime, and such deferrals are marked with other flags.
Karl Williamson [Tue, 7 Dec 2010 21:50:13 +0000 (14:50 -0700)]
regcomp.c: isASCII doesn't match outside ANYOF bitmap
So there is no need to tell regexec that it does, and then can combine
two other statements
Karl Williamson [Tue, 7 Dec 2010 21:36:30 +0000 (14:36 -0700)]
regcomp.c: Fix compiler warning
One smoke is warning about truncated results. This should fix that. It
may be that other compilers will now complain, and we'll need to add
casts, but I'm waiting to see.
Karl Williamson [Mon, 6 Dec 2010 22:11:59 +0000 (15:11 -0700)]
regcomp.c: Remove no longer necessary loop
Recent changes to this cause the bitmap to be populated where possible
with the all folding taken into consideration. Therefore, the FOLD flag
isn't necessary except when that wasn't possible, and the loop that went
through looking for folds is also not necessary, as the bitmap is
now completely populated before it gets to where the loop was.
Karl Williamson [Sat, 11 Dec 2010 22:02:49 +0000 (15:02 -0700)]
regcomp.c: remove unncessary counting
stored now contains the number of 1 bits in the ANYOF node, and is no
longer needed to be arbitrarily set. Part of this is because there is
now a flag if there is any match outside the bitmap, which prohibits
optimization if so.
Craig A. Berry [Sat, 11 Dec 2010 22:42:56 +0000 (16:42 -0600)]
Proper sa_len configuration for VMS.
It's available on anything decent and recent, but it requires
_SOCKADDR_LEN defined to make it visible.
Max Maischein [Sat, 11 Dec 2010 14:21:11 +0000 (15:21 +0100)]
Windows compatibility fixes for running expand-macro.pl:
a) Close filehandle to try.i so we can erase it
b) The build process wants to be run from bleadperl/Win32
Max Maischein [Sat, 11 Dec 2010 14:20:13 +0000 (15:20 +0100)]
Make Porting/expand-macro.pl use $Config{make} instead of hardcoded `make`
Karl Williamson [Sat, 11 Dec 2010 21:21:40 +0000 (14:21 -0700)]
regcomp.c: clarify comment
Zefram [Sat, 11 Dec 2010 18:18:12 +0000 (18:18 +0000)]
fix various compiler warnings from XS code
Trivial changes to fix warnings of types
* unclear precedence
* assignment as conditional
* signed/unsigned mixing
* unused parameter/variable
* value computed not used
* wrong argument type for a printf format
* variable may be used uninitialised (due to unhandled switch case)
Florian Ragwitz [Thu, 9 Dec 2010 23:08:42 +0000 (00:08 +0100)]
Dual-life File::CheckTree
Chris 'BinGOs' Williams [Sat, 11 Dec 2010 16:41:50 +0000 (16:41 +0000)]
Update ExtUtils-CBuilder to CPAN version 0.2801
[DELTA]
0.2801 - Wed Dec 8 21:36:56 EST 2010
Fixed:
- Fixed spurious t/04-base.t failure when run from Perl core
[David Golden]
Florian Ragwitz [Sat, 11 Dec 2010 14:33:27 +0000 (15:33 +0100)]
Upgrade Devel-SelfStubber fro version 1.03 to 1.04
This is necessary because the CPAN version required its SelfLoader dependency to
be bumped to a version that didn't swallow text after __END__.
Nicholas Clark [Sat, 11 Dec 2010 12:18:09 +0000 (12:18 +0000)]
Fix permissions for ext/XS-APItest/t/refs.t, added as +x in
88b5a879c6c933e0.
Florian Ragwitz [Sat, 11 Dec 2010 11:01:22 +0000 (12:01 +0100)]
Encode has CPAN as its upstream
As confirmed by Dan.
Father Chrysostomos [Sat, 11 Dec 2010 06:12:48 +0000 (22:12 -0800)]
Fix some casts in typemap
Father Chrysostomos [Sat, 11 Dec 2010 06:11:30 +0000 (22:11 -0800)]
Fix test count in ext/XS-APItest/t/refs.t
Father Chrysostomos [Sat, 11 Dec 2010 06:11:10 +0000 (22:11 -0800)]
Add ext/XS-APItest/t/refs.t to MANIFEST
gfx [Sat, 11 Dec 2010 05:57:22 +0000 (21:57 -0800)]
Fix XS types in typemap in order to deal with references with get magics correctly
Father Chrysostomos [Sat, 11 Dec 2010 05:46:13 +0000 (21:46 -0800)]
[perl #68712] caller() filenames broken by "use"
require() sets the file name for PL_compiling but localises it to the
calling scope, not the scope that it creates. As a result, caller()
during or after require (in the same scope that require was called
from) will return the wrong file name for whichever code is being com-
piled at the time and any scope sharing the same CopFILE (or something
like that):
$ ./miniperl -Ilib -e 'BEGIN{require strict; warn join ", ", caller(0)}'
main, lib/strict.pm, 1, main::BEGIN, 1, , , , 0, , at -e line 1.
^^^^^^^^^^^^^ should be -e
This commit moves the SAVECOPFILE_FREE and CopFILE_set down below the
ENTER_with_name to put it in the right scope. It was in its existing
location presumably because namesv needed to be freed before any code
that could die (and the CopFILE_set call reads a PV allocated for
namesv). So now namesv is mortalised instead.
The if(tryrsfp) is no longer necessary, as that code is never reached
when tryrsfp is false.
The block in between that sets %INC was reading CopFILE. It can simply
use the same tryname variable that is passed to CopFILE_set.
Jan Dubois [Sat, 11 Dec 2010 01:45:30 +0000 (17:45 -0800)]
Update Win32 from CPAN (from 0.40 to 0.41)
Father Chrysostomos [Sat, 11 Dec 2010 00:17:09 +0000 (16:17 -0800)]
perldelta for [perl #72090]
Father Chrysostomos [Sat, 11 Dec 2010 00:12:13 +0000 (16:12 -0800)]
perldelta for [perl #68658]
Father Chrysostomos [Fri, 10 Dec 2010 22:59:31 +0000 (14:59 -0800)]
perldelta for 0e5d25b
David Leadbeater [Fri, 10 Dec 2010 22:56:41 +0000 (14:56 -0800)]
[perl #80548] Add the stash name to DTrace probes
This adds an additional parameter to perl's dtrace probes with the stash
name of the subroutine. This generally looks nicer than the filename but
gives a similar level of context.
As this is an additional parameter this will not have an impact on
existing DTrace scripts. (Also due to the way DTrace works I believe it
does not break binary compatibility and would be safe to backport to
maint-5.12 if desired, but I'm not a DTrace expert.)
Father Chrysostomos [Fri, 10 Dec 2010 22:54:13 +0000 (14:54 -0800)]
[perl #72090] unitialized variable name wrong with no strict refs
$ ./perl -we '$a = @$a > 0'
Use of uninitialized value $a in array dereference at -e line 1.
Use of uninitialized value $a in numeric gt (>) at -e line 1.
S_find_uninit_var was not taking into account that rv2*v could return
undef. So it merrily looked at the child ops to find one that named
a variable.
This commit makes it skip any rv2av/rv2hv that does not have an OP_GV
as its child op.
In other words, it skips @{...} and %{...} (including the shorthand
forms @$foo and %$foo), but not @foo or %foo.
Florian Ragwitz [Fri, 10 Dec 2010 22:07:32 +0000 (23:07 +0100)]
Dual-life autouse
Florian Ragwitz [Fri, 10 Dec 2010 21:02:52 +0000 (22:02 +0100)]
Dual-life Env
Florian Ragwitz [Fri, 10 Dec 2010 16:31:15 +0000 (17:31 +0100)]
Localise temporary FHs in the EU::Constant tests
This avoids makes them work on 5.6.2 again, where the fact that the "XS" glob is
also used elsewhere in the tests triggered what seems to be a bug that causes
*XS to lose it's "q" magic.
Nicholas Clark [Fri, 10 Dec 2010 16:30:21 +0000 (16:30 +0000)]
As of 2.25, 5.6.x is writing minor version 8, so update malice.t
Nicholas Clark [Fri, 10 Dec 2010 16:29:31 +0000 (16:29 +0000)]
5.8.8's Test::More doesn't provide note(), so revert to a print statement.
Abhijit Menon-Sen [Fri, 10 Dec 2010 16:13:32 +0000 (21:43 +0530)]
The CPAN release will include Test::More to be used on old Perls
Abhijit Menon-Sen [Fri, 10 Dec 2010 15:13:14 +0000 (20:43 +0530)]
Make sure META.yml mentions perlbug as the right place to file bugs
Nicholas Clark [Fri, 10 Dec 2010 14:38:52 +0000 (14:38 +0000)]
Convert all Storable's tests to use Test::More.
Originally Storable didn't use any test modules, and had an ok subroutine in
t/st-dump.pl. Subsequently some tests were made conditional on Test::More
loading, and more recently the distribution started bundling Test::More, at
which point newer tests were written to use it. However, the older tests have
never been refactored to use it. Hence refactor tests to use Test::More, and
delete the now-unused test functions from t/st-dump.pl
Tested on blead and 5.004.
Florian Ragwitz [Fri, 10 Dec 2010 12:50:00 +0000 (13:50 +0100)]
Dual-life I18N::Collate
H.Merijn Brand [Fri, 10 Dec 2010 11:29:50 +0000 (12:29 +0100)]
Add probe for sa_len availability in sockaddr struct
Sorry for the huge config_h.SH re-order. Don't know (yet) what caused that
Father Chrysostomos [Fri, 10 Dec 2010 08:28:02 +0000 (00:28 -0800)]
perldelta for [perl #19135]
Florian Ragwitz [Fri, 10 Dec 2010 00:01:58 +0000 (01:01 +0100)]
legacy.pm is no more
It has been removed in
1863b87966ed39b042c45e12d1b4e0b90b9cc071. feature.pm
replaces it.
Ricardo Signes [Thu, 9 Dec 2010 21:02:38 +0000 (16:02 -0500)]
perlfaq is not the only exception; just say "few"
Ricardo SIGNES [Thu, 9 Dec 2010 20:58:21 +0000 (15:58 -0500)]
Remove ; from use statements for readability. (Obeying the documentation
policy)
Ricardo SIGNES [Thu, 9 Dec 2010 20:56:34 +0000 (15:56 -0500)]
Typo fix
Jesse Vincent [Thu, 9 Dec 2010 20:45:50 +0000 (15:45 -0500)]
First draft of a documentation policy.
Jesse Vincent [Thu, 9 Dec 2010 20:15:56 +0000 (15:15 -0500)]
Slightly update perl.pod's "DESCRIPTION"
Jesse Vincent [Thu, 9 Dec 2010 20:11:45 +0000 (15:11 -0500)]
Don't explicitly talk about our support for DBM files as a feature.
It's not 1995 anymore.
Jesse Vincent [Thu, 9 Dec 2010 20:10:15 +0000 (15:10 -0500)]
remove more a2p/s2p from perl.pod
Jesse Vincent [Thu, 9 Dec 2010 20:07:51 +0000 (15:07 -0500)]
Remove a now-inaccurate statement about setuid scripts
Jesse Vincent [Thu, 9 Dec 2010 20:07:19 +0000 (15:07 -0500)]
Remove a paragraph from perl.pod pimping it as a sed/awk replacement.
Jesse Vincent [Thu, 9 Dec 2010 20:05:41 +0000 (15:05 -0500)]
Wordsmithing of Abigail's prose.
Abigail [Thu, 9 Dec 2010 19:48:25 +0000 (14:48 -0500)]
Added a statement about the examples in perl's documentation
Florian Ragwitz [Thu, 2 Dec 2010 09:41:33 +0000 (10:41 +0100)]
Dual-life Devel::SelfStubber
Nicholas Clark [Thu, 9 Dec 2010 15:42:44 +0000 (15:42 +0000)]
Storable's t/malice.t now needs to use a minor version >4 ahead for testing.
The "safety margin" of 4 has been used up, now that Storable 2.25 can read
v2.8 files, but only writes out v2.4 on 5.004. All tests now pass on 5.004
(albeit with a bunch of warnings about ambiguous use of barewords, which are
no longer warnings).
Also, update $Test::Builder::Level to make diagnosing failing tests easier.
Nicholas Clark [Thu, 9 Dec 2010 15:41:37 +0000 (15:41 +0000)]
Refactor Storable::read_magic to avoid 4 arg substr.
This makes it fractionally shorter, and restores all compatibility with 5.004
David Golden [Thu, 9 Dec 2010 02:32:26 +0000 (21:32 -0500)]
Fix failing ExtUtils-CBuilder test
The change is also being applied upstream, but this will fix
tests until the next EU::CB release is merged to blead
Marvin Humphrey [Wed, 8 Dec 2010 20:36:33 +0000 (12:36 -0800)]
Document use of strlen() by is_ascii_string(), is_utf8_string() and friends.
Father Chrysostomos [Thu, 9 Dec 2010 00:52:08 +0000 (16:52 -0800)]
[perl #68658] attributes turn "state" into "my"
This is for two reasons:
• In S_my_kid, the attribute-handling code comes before the code that
marks the padop as being a state instead of a my, which it knows to
do based on the value of PL_parser->in_my. The attribute-handling
code begins by setting PL_parser->in_my to FALSE, preventing the
code that follows from doing its job.
So now PL_parser->in_my is read at the top of S_my_kid, before the
attribute code, with the statehood recorded in a boolean. Then the
code that marks the padop as being state checks that boolean
instead of in_my.
• A lexical variable declaration that has an attribute and is assigned
to in the same expression compiles to something similar to:
(attributes->import(... \$x ...), my $x) = 3;
where the list is actually in scalar context, returning the my $x
which is then assigned to (something that cannot be expressed
directly in Perl syntax). So Perl_ck_sassign needs to take that list
op into account when creating the ‘once’ op that actually makes
state assignment work. Up till now it was just looking for a padsv
on its LHS. This commit makes it check also for a list op whose last
item is a padsv.
Jan Dubois [Thu, 9 Dec 2010 00:09:42 +0000 (16:09 -0800)]
Revert change to AUTHORS #
ea316027e
#2a25d7b already adds Paul Evans at the correct spot.
Jan Dubois [Wed, 8 Dec 2010 23:49:03 +0000 (15:49 -0800)]
Fix file permissions mangled by #
0e5d25bf
Jan Dubois [Wed, 8 Dec 2010 23:45:06 +0000 (15:45 -0800)]
Merge branch 'blead' of ssh://perl5.git.perl.org/gitroot/perl into blead
Jan Dubois [Wed, 8 Dec 2010 22:07:18 +0000 (14:07 -0800)]
Upgrade Win32 from CPAN (from 0.39 to 0.40)
Yes, still has CR/LF line endings; I'll fix it in a CPAN
release with no changes but the line-endings fix first.