This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Ævar Arnfjörð Bjarmason [Sun, 25 Jan 2015 14:10:13 +0000 (14:10 +0000)]
Revert the support for new warning categories outside of "all"
This reverts & amends my v5.21.7-151-gea5519d and Karl Williamson's
v5.21.7-183-g2f3cbe1, the latter was only need because of the
former.
I've also taken the opportunity to fix the long-standing trivial bug
with misaligned code in warnings.{pm,h}. That was easier to commit along
with this than to split it up from the other generated changes.
Why revert this? See the "use warnings 'absolutely-all-almost';" thread
on perl5-porters for the latest summary:
http://www.nntp.perl.org/group/perl.perl5.porters/2015/01/msg225066.html
Basically as I explained in v5.21.7-151-gea5519d the current design of
the API makes it too contentious to freely add new warnings, but there's
no consensus on how to solve that. I.e. whether we should just add them
to "all", or do this change, or several other possible things outlined
in that thread and elsewhere.
Since the deadline for contentious changes for v5.22 is already past us
I'm backing this out for now.
Steve Hay [Sun, 25 Jan 2015 14:05:39 +0000 (14:05 +0000)]
Don't bother prettifying win32/perldll.def
It's not a file that anyone ever really looks inside anyway, so it's not
worth the possible future breakage if we ever have a PL_ symbol 32 or more
characters long.
Daniel Dragan [Mon, 19 Jan 2015 22:30:04 +0000 (17:30 -0500)]
export data symbols as data on Win32
Previously on Win32 Perl, all the PL_* data symbols were treated as
function symbols with expectation of machine code at their targets when
generating the linking library perl5**.lib or perl5**.a. In VC Perl, if an
DLL XS module accidentally (by manipulating the defines before #including
perls headers) turned "extern __declspec(dllimport) I32 *PL_markstack_ptr;"
into "extern I32 *PL_markstack_ptr;", a SEGV would result as if the XS
module executed "I32 ax = (*(I32*)Perl_sv_2mortal)--;". By marking the
symbols as data in the linking lib, the VC linker will error out while
creating a XS DLL where this mistake of dropping out __declspec(dllimport)
happened, instead of a runtime crash. Mingw GCC linker does the correct
behavior, and does not treat the data symbol as machine code even if
"__declspec(dllimport)" is removed. Still add DATA to the GCC perldll.def
to be sure. There is no reason for "jmp" machine codestubs/thunks to
exist in the perl.lib/perl.a to a data export.
Also add constant folding to the loop in makedef.pl, since every other
platform check executes exactly once, there is no point of executing the
ops in the perl compile time constant folder vs runtime executing them.
If a data symbol name exceeds the 32 limit, then "DATA" will be catted onto
the symbol name and linking lib generation will fail since the symbol wont
exist. The 32 limit will then be increased at that point in the future.
See details about this patch in [perl #123626]
Daniel Dragan [Tue, 20 Jan 2015 23:08:03 +0000 (18:08 -0500)]
attempt again to const vtables in threads-shared
Followup to commit
a8c717cfeb and commit
7105b7e7a5 and perl #123549 . This
should be C++ compatible even though it leaves some symbols non-static.
Father Chrysostomos [Sun, 25 Jan 2015 01:14:58 +0000 (17:14 -0800)]
[perl #123652] eval {label:} crash
As of v5.13.6-130-geae48c8, the block consists solely of a
nextstate op.
The code in ck_eval that distinguished between eval-block and eval-
string was checking the type of the kid op (looking for lineseq or
stub) instead of simply checking the type of the op itself (entertry/
entereval).
The lexer was already making the distinction between the two but op.c
was ignoring the information provided by the lexer.
Usually
entertry(unop)
kid
gets converted into
leavetry
entertry(logop)
kid
with the entertry reallocated as a larger-sized op, but that was not
happening. The peephole optimiser assumed it had happened, and fol-
lowed the cLOGOPo->op_other pointer, which is unrelated junk beyond
the end of the unop struct. Hence the crash.
Chris 'BinGOs' Williams [Sat, 24 Jan 2015 09:44:46 +0000 (09:44 +0000)]
Update CPAN-Meta-Requirements to CPAN version 2.132
[DELTA]
2.132 2015-01-22 17:09:19-05:00 America/New_York
[FIXED]
- Precision of version requirement "0.00" is preserved when merging
requirements.
Karl Williamson [Fri, 23 Jan 2015 19:26:42 +0000 (12:26 -0700)]
regcomp.c: Clarify comment
Karl Williamson [Fri, 23 Jan 2015 19:00:49 +0000 (12:00 -0700)]
handy.h: EXTERN_C-ize PL_charclass
See thread http://nntp.perl.org/group/perl.perl5.porters/224999
Karl Williamson [Fri, 23 Jan 2015 18:57:14 +0000 (11:57 -0700)]
regcomp.c: Another minor optimization
The [:cased:] internal class now handles [:upper:] and/or [:lower:]
under /i matching. This code skipped possible optimizations because it
didn't think to use this.
Karl Williamson [Fri, 23 Jan 2015 18:20:30 +0000 (11:20 -0700)]
regcomp.c: Minor optimizations
\d, [:digit:], and [:xdigit:] don't match anything in the upper Latin1
range. Therefore whether or not the target string is UTF-8 or not
doesn't change what they match, hence the /d modifier acts exactly like
the /u modifier for them. At run-time /u executes fewer branches
because it doesn't have to test if the target string is in UTF-8 or not,
so treating these as if /u had instead been specified saves some
runtime.
Karl Williamson [Fri, 23 Jan 2015 18:19:23 +0000 (11:19 -0700)]
regexec.c, regcomp.c: White-space only
This changes some labels to be outdented 2 spaces from surrounding code
Sisyphus [Sat, 24 Jan 2015 00:38:10 +0000 (00:38 +0000)]
[perl #123659] [Win32] Add "-ld" to archname for dmake "long double" builds of perl
Steve Hay [Thu, 22 Jan 2015 13:33:18 +0000 (13:33 +0000)]
Upgrade Encode from version 2.67 to 2.68
Kent Fredric [Thu, 22 Jan 2015 10:15:51 +0000 (23:15 +1300)]
Add test for glob constants accepting method calls
This specific case tripped up autobox.pm.
Leon Timmermans [Wed, 21 Jan 2015 22:43:36 +0000 (23:43 +0100)]
[perl #123619] Only make stringy classnames shared
This caused failures in autobox that expect their invocant to be something
other than a string (e.g. a number). See also [cpan #100819].
Shlomi Fish [Tue, 20 Jan 2015 14:15:49 +0000 (16:15 +0200)]
Convert tabs in indentation to spaces.
This is so it will display correctly with every tab-step/tab-size.
Mathieu Arnold [Thu, 22 Jan 2015 17:04:21 +0000 (17:04 +0000)]
Fix target for MANISORT_SRT and use perl just built
Signed-off-by: Chris 'BinGOs' Williams <chris@bingosnet.co.uk>
David Mitchell [Thu, 22 Jan 2015 16:41:49 +0000 (16:41 +0000)]
bump attributes.pm version
Craig A. Berry [Thu, 22 Jan 2015 04:04:01 +0000 (22:04 -0600)]
Fix SDBM_File clean target after
ac0e53cd2e.
The .dir extension is the extension of actual directory files in
the file system on VMS, so putting *.dir in the clean target has
us removing all the directories under ext/SDBM_file, including the
t/ directory. Since the tests are in MANIFEST, a subsequent
reconfigure in the same build tree would then fail its manifest
check, such as when smoking multiple configurations.
So let's only clean up the files created by SDBM, which end with
.sdbm_dir on VMS.
Karl Williamson [Sun, 27 Jul 2014 05:07:33 +0000 (23:07 -0600)]
regen/charset_translations.pl: Clarify comment
Karl Williamson [Sun, 27 Jul 2014 04:06:36 +0000 (22:06 -0600)]
regen/mk_invlists.pl: Rename function
The new name more clearly reflects its input restrictions
Karl Williamson [Sun, 20 Jul 2014 01:06:21 +0000 (19:06 -0600)]
regen/mk_invlists.pl: Do less work
We only need to reorder the native code points (0..255) for EBCDIC, so
can quit when we get there, by appropriately refactoring the code
Karl Williamson [Sat, 19 Jul 2014 21:34:49 +0000 (15:34 -0600)]
regen/mk_invlists.pl: White-space only
Indent as a result of new block in the previous commit; reformat a
comment
Karl Williamson [Sat, 19 Jul 2014 21:27:37 +0000 (15:27 -0600)]
regen/mk_invlists.pl: Skip unnecessary work
This reorders the code points below 256 depending on the platform.
However all platforms have the same values for those above 255, so can
skip this code if the first code point (and hence all code points) being
output isn't one of those affected.
Karl Williamson [Thu, 17 Jul 2014 16:59:19 +0000 (10:59 -0600)]
regen/mk_invlists.pl: output sorted
This will make it easier to see differences in future commits
Karl Williamson [Thu, 17 Jul 2014 16:45:32 +0000 (10:45 -0600)]
regen/mk_invlists.pl: Output code points as hex
Unicode represents all code points as hex, so follow suit.
I, for one, am used to seeing hex code points, and so eyeballing these
makes more sense when they are in hex.
Karl Williamson [Sun, 27 Jul 2014 04:50:17 +0000 (22:50 -0600)]
mktables: White-space only
The previous commit added a block around this code
Karl Williamson [Sun, 27 Jul 2014 04:42:30 +0000 (22:42 -0600)]
mktables: Verify Unihan files versions
Most Unicode files contain versioning information. Prior to this patch,
mktables did not verify that the Unihan inputs were the correct version.
This is in part because we don't usually compile the Unihan properties,
and because the beta files for Unicode 7.0 had the version information
in the same syntax as the rest of the files, so I thought we only had to
wait till 7.0 came out, and we would get the protection automatically
with the code that was already there. But the format changed between
beta and release, so this patch adds code to check for the released
format.
Karl Williamson [Sun, 27 Jul 2014 04:18:59 +0000 (22:18 -0600)]
mktables: Note that a property is deprecated by Unicode
Karl Williamson [Thu, 31 Jul 2014 22:54:50 +0000 (16:54 -0600)]
regcomp.c: Collapse \b, \B cases
The code for these two case: statements was almost identical.
Karl Williamson [Fri, 18 Jul 2014 04:41:21 +0000 (22:41 -0600)]
Move inline fcn to #included file
Future commits will want this function to be able to be used in more
than one core file.
Karl Williamson [Thu, 31 Jul 2014 22:46:14 +0000 (16:46 -0600)]
regcomp.c: Reorder two switch cases
This is in preparation for combining them into common code. No other
changes are made, except for an additional blank line.
Karl Williamson [Thu, 31 Jul 2014 22:30:24 +0000 (16:30 -0600)]
regcomp.c: Don't store unnecessary data in \b ops
The previous commit has caused this information to no longer be looked
at; no need to store it therefore.
Karl Williamson [Thu, 31 Jul 2014 22:24:52 +0000 (16:24 -0600)]
regexec.c: Refactor \b code to not use the FLAGS field
In one spot, \b and \B used the regnode FLAGS field to find out what
the character set type of bound they are. This information is already
conveyed in the regnode type: BOUNDL, BOUNDU, etc. By removing the use
of this redundant information, we can in a later commit stop storing it,
and free up the field for other uses.
Karl Williamson [Thu, 31 Jul 2014 21:45:13 +0000 (15:45 -0600)]
regexec.c: Use appropriate macro
This code knows that a \n isn't a word character, but in preparation for
future commits in which word isn't the only possibility, change to use
the appropriate macro.
Karl Williamson [Thu, 31 Jul 2014 03:49:03 +0000 (21:49 -0600)]
regexec.c: Stack ternary operator for readability
Karl Williamson [Mon, 28 Jul 2014 03:19:48 +0000 (21:19 -0600)]
regcomp.h: Clarify comment
Karl Williamson [Sat, 19 Jul 2014 17:35:34 +0000 (11:35 -0600)]
Unicode::UCD: Allow internal properties in invmap()
This adds an undocumented way to get invmap() to return internal
properties, like invlist(). This is intended only for Perl-core
use.
Karl Williamson [Sat, 19 Jul 2014 17:32:49 +0000 (11:32 -0600)]
Unicode::UCD: pod nits
Karl Williamson [Thu, 22 Jan 2015 04:46:19 +0000 (21:46 -0700)]
regcomp.c: Silence Win32 compiler warnings
This variable is a boolean with values of 0 and 1, even though it's
stored as 32-bits in the struct, to get the simplest store/retrieval
code generated, so it's safe to cast it to a bool.
Father Chrysostomos [Thu, 22 Jan 2015 05:37:01 +0000 (21:37 -0800)]
attributes.xs: Don’t emit const warning for anons
The intent was to emit the warning for any cases other than custom
attributes on anonymous subs. I did that by checking to see whether
we had a closure prototype, warning otherwise. But anonymous subs
that are not closures are not closure prototypes. So we need to
check CvANON instead.
Tony Cook [Thu, 22 Jan 2015 04:59:23 +0000 (15:59 +1100)]
fix SDBM_File builds using gcc on Win32
b488d167b0 removed the -DPERL_STATIC_SYMS definition to allow imported
perl variables to be seen correctly, but this meant gcc builds on Win32
considered:
EXTCONST datum nullitem
as an import.
Change the EXTCONST to extern const so the declaration behaves as it did
with -DPERL_STATIC_SYMS.
Steve Hay [Wed, 21 Jan 2015 14:11:16 +0000 (14:11 +0000)]
perldelta for
56f81afc0f, which is actually in 5.21.8
Matthew Horsfall [Wed, 21 Jan 2015 14:51:34 +0000 (09:51 -0500)]
Final updates to M::CL for version bump
Matthew Horsfall [Wed, 21 Jan 2015 14:48:14 +0000 (09:48 -0500)]
More bumpbing of version number to 5.21.9. Missed this yesterday.
Matthew Horsfall [Wed, 21 Jan 2015 14:15:53 +0000 (09:15 -0500)]
Sync Module::CoreList with CPAN and update for next release
Hugo van der Sanden [Sat, 10 Jan 2015 13:22:37 +0000 (13:22 +0000)]
reg: avoid pointing past end of string on short DEFINE
David Mitchell [Wed, 21 Jan 2015 12:16:21 +0000 (12:16 +0000)]
avoid C labels in column 0
Generally the guideline is to outdent C labels (e.g. 'foo:') 2 columns
from the surrounding code.
If the label starts at column zero, then it means that diffs, such as
those generated by git, display the label rather than the function
name at the head of a diff block: which makes diffs harder to peruse.
Peter Martini [Wed, 21 Jan 2015 06:24:44 +0000 (01:24 -0500)]
Another patch to perlsub documenting moves sigs
Karl Williamson [Wed, 21 Jan 2015 01:24:26 +0000 (18:24 -0700)]
perlrecharclass: Fix typo
Matthew Horsfall [Tue, 20 Jan 2015 20:52:36 +0000 (15:52 -0500)]
Update RMG to mention uploading .xz to pause, and fix grammar
Matthew Horsfall [Tue, 20 Jan 2015 20:44:24 +0000 (15:44 -0500)]
Version bump + new perldelta
Matthew Horsfall [Tue, 20 Jan 2015 20:42:09 +0000 (15:42 -0500)]
Update epigraph with mailing list link
Matthew Horsfall [Tue, 20 Jan 2015 20:37:48 +0000 (15:37 -0500)]
Add epigraph and update release schedule
Matthew Horsfall [Tue, 20 Jan 2015 18:49:30 +0000 (13:49 -0500)]
Really fix broken linkage in perldelta
Matthew Horsfall [Tue, 20 Jan 2015 18:31:16 +0000 (13:31 -0500)]
Fix IO::Compress linkage
Matthew Horsfall [Tue, 20 Jan 2015 18:21:33 +0000 (13:21 -0500)]
Add new release to perlhist
Matthew Horsfall [Tue, 20 Jan 2015 18:14:52 +0000 (13:14 -0500)]
Fix pod spelling/linking mistakes as caught by podchecker/spell
Matthew Horsfall [Tue, 20 Jan 2015 18:07:27 +0000 (13:07 -0500)]
Finalize perldelta
Matthew Horsfall [Tue, 20 Jan 2015 18:01:05 +0000 (13:01 -0500)]
Update Module::CoreList for 5.21.8
Matthew Horsfall [Tue, 20 Jan 2015 17:45:02 +0000 (12:45 -0500)]
Release prep - Copy descriptions of new errors in perldiag to delta
Karl Williamson [Tue, 20 Jan 2015 16:48:44 +0000 (09:48 -0700)]
regcomp.c: Add warnings under re 'strict'
Karl Williamson [Mon, 6 Oct 2014 22:17:58 +0000 (16:17 -0600)]
regcomp.c: Move #define, make a function always compiled
This is in preparation for the next commit. The function previously was
used only in DEBUGGING builds
Karl Williamson [Tue, 20 Jan 2015 06:51:55 +0000 (23:51 -0700)]
regcomp.c: Add warnings under re 'strict'
Karl Williamson [Tue, 20 Jan 2015 00:49:38 +0000 (17:49 -0700)]
t/re/reg_mesg.t: Turn on $|
Otherwise the output gets mixed up
Karl Williamson [Mon, 19 Jan 2015 19:47:41 +0000 (12:47 -0700)]
Add portablity warning for re 'strict'
When a range in a bracketed character class has one end be specified as
Unicode, the whole range is viewed as Unicode. Currently this is not
warned about, though it is somewhat like mixing apples and oranges.
This commit adds a warning, but only under "use re 'strict'", and
it now documents the only one-end behavior.
Karl Williamson [Mon, 19 Jan 2015 19:43:43 +0000 (12:43 -0700)]
regcomp.c: Fix typo in comment
Karl Williamson [Mon, 19 Jan 2015 19:19:14 +0000 (12:19 -0700)]
t/re/reg_mesg.t: Add support for only re 'strict' warnings
This will allow future commits to specify warnings that are raised only
when under "use re 'strict'"
Karl Williamson [Sat, 17 Jan 2015 22:57:24 +0000 (15:57 -0700)]
regcomp.c: Refactor a calculation
Currently the way we calculate if the endpoints in a range in a
[bracketed character class] are "literal" (like 'A', 'b') vs non (like
\x{41}) is to have a count of the literal endpoints.
Future commits will expand the definition of literal to include things
that are portably-specified, including things like \t, \N{U+xx}, etc.
It will be easier to specify that we have encountered a non-portable
name instead of the other way around. So that is what this commit does.
The only non-portables are \digit, \o{}, \x{}, and \cX for all X.
Matthew Horsfall [Tue, 20 Jan 2015 17:11:24 +0000 (12:11 -0500)]
Release prep - Update perldelta some more
Matthew Horsfall [Sat, 17 Jan 2015 16:50:31 +0000 (11:50 -0500)]
Revert "refactor gv_add_by_type"
This reverts commit
819b139db33e2022424694e381422766903d4f65.
This could be repapplied for 5.23.1, with modifications or
additional patches to solve the breakage discussed in RT 123580.
Matthew Horsfall [Tue, 20 Jan 2015 16:39:55 +0000 (11:39 -0500)]
Clean up MANIFEST.srt under distclean
Matthew Horsfall [Tue, 20 Jan 2015 16:27:25 +0000 (11:27 -0500)]
Release prep - Fix bad links in perldelta
Matthew Horsfall [Tue, 20 Jan 2015 16:19:27 +0000 (11:19 -0500)]
Release prep - Update perldelta
Matthew Horsfall [Tue, 20 Jan 2015 16:18:59 +0000 (11:18 -0500)]
Release prep - Update version/copyright information.
Matthew Horsfall [Tue, 20 Jan 2015 15:23:26 +0000 (10:23 -0500)]
Update Filter::Util::Call to CPAN version 1.54.
Matthew Horsfall [Tue, 20 Jan 2015 15:12:55 +0000 (10:12 -0500)]
Bump Module::Metadata version in Porting/Maintainers.pl.
Missed with 5944609.
Jarkko Hietaniemi [Mon, 19 Jan 2015 20:52:13 +0000 (21:52 +0100)]
Mention some curious cases of **
Jarkko Hietaniemi [Mon, 19 Jan 2015 22:10:48 +0000 (23:10 +0100)]
Notes on NaN structure, for future generation/extraction.
Jarkko Hietaniemi [Mon, 19 Jan 2015 20:39:05 +0000 (21:39 +0100)]
Make numifying "nanblah" warn, just like "345blah" does.
Jarkko Hietaniemi [Mon, 19 Jan 2015 20:15:58 +0000 (21:15 +0100)]
infnan: sprintf width and left-align.
Jarkko Hietaniemi [Mon, 19 Jan 2015 19:01:42 +0000 (20:01 +0100)]
Clarify test messages.
Karl Williamson [Tue, 20 Jan 2015 15:33:56 +0000 (08:33 -0700)]
Porting/checkAUTHORS.pl: New alternate addr for jhi
Karl Williamson [Tue, 20 Jan 2015 15:28:52 +0000 (08:28 -0700)]
perldiag: Fix typo
Hugo van der Sanden [Fri, 16 Jan 2015 12:11:32 +0000 (12:11 +0000)]
intuit_more: no need to copy before keyword check
That also avoids crashing on overrun.
Peter Martini [Tue, 20 Jan 2015 11:26:54 +0000 (06:26 -0500)]
Update signatures placement in perlsub pod
Steve Hay [Tue, 20 Jan 2015 08:45:22 +0000 (08:45 +0000)]
Enable cmpVERSION.pl checking of upstream cpan as well as upstream blead
There is no reason why upstream cpan modules should not also have their
$VERSIONs bumped if they differ from the previous release. Even if they
are temporarily locally patched for blead, that temporary patch should
include a $VERSION bump.
Tony Cook [Tue, 20 Jan 2015 05:24:50 +0000 (16:24 +1100)]
[perl #123554] stop checking the message
Sith IV/UV larger than Size_t, the overflow can be detected earlier,
so the message varies.
The error is still reported with a croak(), so it can be captured.
Father Chrysostomos [Tue, 20 Jan 2015 04:39:44 +0000 (20:39 -0800)]
perldelta for :const
Father Chrysostomos [Tue, 20 Jan 2015 04:37:24 +0000 (20:37 -0800)]
perlexperiment: Missing bug number
Father Chrysostomos [Tue, 20 Jan 2015 04:34:34 +0000 (20:34 -0800)]
[Merge] :const
Father Chrysostomos [Tue, 20 Jan 2015 04:33:01 +0000 (20:33 -0800)]
Document :const
Father Chrysostomos [Tue, 20 Jan 2015 03:30:46 +0000 (19:30 -0800)]
Make :const experimental
Father Chrysostomos [Tue, 20 Jan 2015 03:21:16 +0000 (19:21 -0800)]
Add experimental::const_attr warning category
Father Chrysostomos [Mon, 19 Jan 2015 07:01:33 +0000 (23:01 -0800)]
attributes.xs: Remove dVAR
I think it has been redundant ever since it was added in
97aff369.
Father Chrysostomos [Mon, 19 Jan 2015 06:40:09 +0000 (22:40 -0800)]
Let attributes.pm know about the const attribute
Setting it has no affect except on closure prototypes, so warn if an
attempt is made to set it on any other sub.
Father Chrysostomos [Mon, 19 Jan 2015 01:40:34 +0000 (17:40 -0800)]
anonconst.t for testing :const
Father Chrysostomos [Mon, 19 Jan 2015 00:37:03 +0000 (16:37 -0800)]
Add :const anon sub attribute
Father Chrysostomos [Mon, 19 Jan 2015 00:28:27 +0000 (16:28 -0800)]
cv.h: Add CVf_ANONCONST flag
Tony Cook [Tue, 20 Jan 2015 04:07:14 +0000 (15:07 +1100)]
avoid a build issue with non-threaded Win32 builds
ac0e53cd rearranged the build of the SDBM_File extension, and applied
the options, -DPERL_STATIC_SYMS, defined for the sdbm library code to
SDBM_File.$(O), which removed the __declspec(dllimport) specification
from perl's globals on non-threaded builds, breaking the code generated
for those variables.
The -DPERL_STATIC_SYMS was added in
9c293c15 as a replacement for a
kludge in
8803afc2 to fix SDBM built with BCC on Win32.
The failure in BCC was introduced in
17f28c40 which added the EXTCONST
to better support some VMS specific constructs (which appear to have
been removed since.)
A later patch may clean that up, but since the next dev release is
coming soon, I'll start with a minimal fix.