| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
version.pm was changed by 61a0cb1c57a82d328c88c2dd525c91495edb2db9
and Jesse confirms that the $VERSION should be bumped as a result.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Move the discussion of what each regexp coveres to version::Internals
and limit the discussion in the main POD to just include examples.
|
|
|
|
|
|
|
|
| |
Allow the is_lax and is_strict functions to be optionally
exported to the caller's namespace (without having to use Exporter).
Document the usage of is_lax and is_strict, plus nuke some trailing
spaces.
|
|
|
|
|
|
|
|
|
|
|
| |
Otherwise gmtime(2**66) will cause a very, very, very long loop and
DOS Perl.
Add a test that very, very large times don't send gmtime and localtime into a loop
Had to fix some revealed mistakes in op/time.t when warnings were turned on.
Fix Time::gmtime and Time::localtime tests to match the new limits of gm/localtime.
|
|
|
|
|
|
|
|
| |
been failing smoke randomly.
Fix 1: Original code tests for less than but not =. I think that if these values are the same, the test should pass. I don't know the code well enough to be 100% sure. D
Fix 2: convert ok() to cmp_ok() for better diagnostic messages from smoke tests when they happen.
Fix 3: convert print to diag() so it will properly print through harness.
|
|
|
|
|
|
| |
Previously lib/AnyDBM_File.t and lib/DBM_Filter/t/*t shared the same hard coded
filename for their test database, causing a race condition during parallel
testing, and some spurious test failures.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The problem is with the use of cp when perms & 06000.
There is logic that checks to see if the target file is owned by the
user ($>) running the copy and/or if $> is a member of the group that
owns the target file. If this is not the case, then the 06000 bits are
masked out before the chmod is called after the copy.
This is mostly good logic except when root is executing this, in which
case root should get to do whatever it wants to do.
Looking closer at the code to test for group membership, I think it can
be more easily and more cheaply be written using $). I've added this
change to the patch.
This will also fix the problem where someone has a group membership
based on /etc/passwd and is not mentioned in /etc/group.
|
|
|
|
|
|
|
|
| |
The Unicode standard suggests that xdigit match not only the ASCII hex
digits, but also the full width forms starting at U+FF10.
This patch just changes the source from the Unicode ASCII hex digit to
the Unicode normal hex digit.
|
|
|
|
| |
range counts; and uses that option on Decomposition.pl, used by normalize.pm.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Authors: John Peacock, David Golden and Zefram
The goal of this mega-patch is to enforce strict rules for version
numbers provided to 'package NAME VERSION' while formalizing the prior,
lax rules used for version object creation. Parsing for use() is
unchanged.
version.pm adds two globals, $STRICT and $LAX, containing regular
expressions that define the rules. There are two additional functions
-- version::is_strict and version::is_lax -- that test an argument
against these rules.
However, parsing of strings that might contain version numbers is done
in core via the Perl_scan_version function, which may be called during
compilation or may be called later when version objects are created by
Perl_new_version or Perl_upg_version.
A new helper function, Perl_prescan_version, has been added to validate
a string under either strict or lax rules. This is used in toke.c for
'package NAME VERSION' in strict mode and by Perl_scan_version in lax
mode. It matches the behavior of the verison.pm regular expressions,
but does not use them directly.
A new test file, comp/packagev.t, validates strict and lax behaviors of
'package NAME VERSION' and 'version->new(VERSION)' respectively and
verifies their behavior against the $STRICT and $LAX regular
expressions, as well. Validating these two implementation should help
ensure they each work as intended.
Other files and tests have been modified as necessary to support these
changes.
There is remaining work to be done in a few areas:
* documenting all changes in behavior and new functions
* determining proper treatment of "," as decimal separators in
various locales
* updating diagnostics for new error messages
* porting changes back to the version.pm distribution on CPAN,
including pure-Perl versions
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
(by using symbolic references as suggested by Vincent)
|
|
|
|
| |
(Noticed by Aaron Crane)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
category to a new 'illegalproto' subcategory.
Two warnings can be emitted when parsing a prototype -
Illegal character in prototype for %s : %s
Prototype after '%c' for %s : %s
The first one is emitted when any invalid character is found, the latter
when further prototype-type stuff is found after a slurpy entry (i.e. valid
character but in such a place as to be a no-op, and therefore likely a bug).
These warnings are distinct from those emitted when a sub is overwritten by
one with a different prototype, and when calls are made to subroutines with
prototypes - those are in the pre-existing sub-category 'prototype'.
Since modules such as signatures.pm and Web::Simple only need to disable
the warnings during parsing, I chose to add a new category containing only
these. Moving these warnings into the 'prototype' sub-category would have
forced authors to disable more warnings than they intended, and the entire
raison d'etre of this patch is to allow the specific warnings involved to
be disabled.
In order to maintain compatibility with existing code, the new location
needed to be a sub-category of 'syntax' - this means that
no warnings 'syntax';
will continue to work as expected - even in cases like Web::Simple where all
subcategories extant prior to this patch are re-enabled (this is another
reason why a move into the 'protoype' category would not achieve the desired
goal).
The category name 'illegalproto' was chosen because the most common warning
to encounter is the "Illegal character" one, and therefore 'illegalproto'
while minorly inaccurate by ignoring the (relatively recent and unknown)
second warning is an easy name to spot on an initial skim of perllexwarn
and will behave as expected by also disabling the case of an unusual prototype
that happens to look like a normal one.
This patch updates pod/perllexwarn.pod, perldiag.pod and perl5113delta.pod
to document the new category, toke.c and warnings.pl to create and implement
the new category, and a new test t/op/protowarn.t that verifies the new
behaviour in a number of cases. It also includes the files generated by
regen.pl that are found in the repo - notably warnings.h and lib/warnings.pm.
|
| |
|
|
|
|
|
|
| |
still warn on UNIVERSAL->import(@args)
do not warn on UNIVERSAL->import; this means "use UNIVERSAL;" is
still accepted without warning (for better or worse)
|
|
|
|
|
|
|
|
|
|
| |
The Unicode Standard defines (as a recommendation) that Print be based on
graphical characters and blank characters (minus controls). Perl's has been
based on space rather than blank. The only practical effect this has is that
Perl erroneously matches the LINE SEPARATOR and PARAGRAPH SEPARATOR, which
clearly are not printable characters.
Signed-off-by: Abigail <abigail@abigail.be>
|
|
|
|
|
|
|
|
| |
Similar changes should/could be made to cpan/CGI/t/utf8.t
and ext/XS-APItest/t/utf16_to_utf8.t
Reasoning is my smokes being built without Encode, because
it takes too long.
|
|
|
|
|
|
|
|
|
|
|
| |
Attached.
From 35eb2eee53740951b4f3dd7e96dc030d38e84ba7 Mon Sep 17 00:00:00 2001
From: Karl Williamson <khw@khw-desktop.(none)>
Date: Sun, 27 Dec 2009 20:30:00 -0700
Subject: [PATCH] make clean shouldn't remove .t file
Signed-off-by: H.Merijn Brand <h.m.brand@xs4all.nl>
|
|
|
|
| |
Signed-off-by: Abigail <abigail@abigail.be>
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This turns on the unicode semantics for uc/lc/ucfirst/lcfirst
operations on strings without the UTF8 bit set but with ASCII
characters higher than 127. This replaces the "legacy" pragma
experiment.
Note that currently this feature sets both a bit in $^H and
a (unused) key in %^H. The bit in $^H could be replaced by
a flag on the uc/lc/etc op. It's probably not feasible to
test a key in %^H in pp_uc in friends each time we want to
know which semantics to apply.
|
|
|
|
|
|
| |
filesystems nosuid.
[perl #71334] is the TODO for a better fix for this
|
|
|
|
|
| |
So we can use C<use legacy "qubits"> to avoid the new "qubit" behaviour,
without worrying about perls that didn't have qubit support at all. :)
|
| |
|
|
|
|
|
|
| |
(or flip)' warning
(and bump version of diagnostics.pm)
|
| |
|
| |
|
|
|
|
|
|
| |
This is mostly just making filename comparisons and lookups of filenames
in hashes case blind, which is necessary since filename case is not
(by default) preserved.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The attached patch got the easiest performance improvements to mktables.
Hopefully this is good enough for now.
This involved:
1) Nicholas' patch
2) I stored complete_name instead of recomputing it each time.
3) Used $_[xxx] instead of shift in very heavily used subroutines
4) removed trace accidentally left in.
I also changed the misspelled subroutine name discovered by Craig Berry.
I searched for any other misspellings and didn't find any.
Also removed trailing white space that keeps creeping back in, and now
this doesn't generate pod entries if not outputting a pod file, and
clarified warning message if no mktables.lst is present.
I couldn't figure out a way to conditionally use 'no overloading', as
it is called at compile time. So I just commented out the old stuff
that will work for 5.8, with a note about using that if you want to
use 5.8
|
|
|
|
| |
Message-ID: <4B0C4744.7080401@khwilliamson.com>
|
| |
|
| |
|
| |
|