Nicholas Clark [Mon, 29 Apr 2013 09:47:30 +0000 (11:47 +0200)]
Refactor genpacksizetables.pl to use regen/regen_lib.pl
Nicholas Clark [Mon, 29 Apr 2013 09:23:11 +0000 (11:23 +0200)]
Extract the generated packprops array into packsizetables.c.
The C source is the output from genpacksizetables.pl
Previously it was pasted into pp_pack.c
LocalWords: packprops
Nicholas Clark [Mon, 29 Apr 2013 09:08:05 +0000 (11:08 +0200)]
Propagate a change from commit
1651fc447620d361 into genpacksizetables.pl.
pp_pack.c contains a table generated by genpacksizetables.pl, pasted into the
C source. The C source was updated by commit
1651fc447620d361 in April 2007,
but the table used to generate the code was not.
Karl Williamson [Wed, 13 Mar 2013 22:18:12 +0000 (16:18 -0600)]
genpacksizetables.pl: Correct comment typo
Nicholas Clark [Wed, 6 Mar 2013 15:27:08 +0000 (16:27 +0100)]
Change LIKELY() and UNLIKELY() to cast their first argument to a bool.
This avoids problems such as pointers being compared with the literal value 1.
Suggested by Zefram.
Note that this is technically a change of behaviour, as the macro EXPECT(),
which they are both both wrappers for, returns its value, so they will now
be returning TRUE or FALSE, rather than the actual value passed to them.
However, all uses in the core and on CPAN are only within if() statements, so
this should not make any difference in practice.
Karl Williamson [Sat, 18 May 2013 20:05:00 +0000 (14:05 -0600)]
handy.h: Change the error return of two macros
These two undocumented macros returned the REPLACEMENT CHARACTER if the
input was outside the Latin1 range. This was contrary to all other
similar macros, which return their input if it is invalid. It caused
warnings in some (dumber than average) compilers.
These macros are undocumented; this changes the behavior only of illegal
inputs to them.
Karl Williamson [Sat, 18 May 2013 19:55:50 +0000 (13:55 -0600)]
regcomp.c: Add comment
Karl Williamson [Sat, 18 May 2013 19:06:47 +0000 (13:06 -0600)]
utf8.c: White space only.
Indent in newly formed block
Karl Williamson [Sat, 18 May 2013 19:09:05 +0000 (13:09 -0600)]
fold_grind.t: Add tests
fold-grind stresses the /i regex handling by reading the Unicode folding
rules and creating tests for problematic cases, as well as some
non-problematic ones.
Because of the large number of tests generated, it otherwise avoids
tests that it doesn't think are problematic.
Problematic cases include those whose folds cross the ordinal 127/128 or
255/256 boundaries, along with other considerations.
Until this commit, fold_grind failed to realize that even if the pair of
characters currently being tested don't cross those boundaries, if their
eventual folds do, this could be problematic. Suppose X and Y are both
on the same side of the boundaries, and both fold to Z which is on
another side. Then X and Y should be equivalent under /i even if the
fold to Z is prohibited because of /aa or /l. fold_grind was
overzealous in pruning such tests.
The previous patch fixed bugs in handling such cases; and this patch
fixes the tests to look for similar things that might possibly arise in
the future.
Interestingly, this bug came to light during porting to an EBCDIC
platform. The reason is that because of the different collation order,
fold_grind chose one of the buggy cases to test as one its
non-problematic tests.
Karl Williamson [Sat, 18 May 2013 14:25:16 +0000 (08:25 -0600)]
Fix multi-char fold edge case
use locale;
fc("\N{LATIN CAPITAL LETTER SHARP S}")
eq 2 x fc("\N{LATIN SMALL LETTER LONG S}")
should return true, as the SHARP S folds to two 's's in a row, and the
LONG S is an antique variant of 's', and folds to s. Until this commit,
the expression was false.
Similarly, the following should match, but didn't until this commit:
"\N{LATIN SMALL LETTER SHARP S}" =~ /\N{LATIN SMALL LETTER LONG S}{2}/iaa
The reason these didn't work properly is that in both cases the actual
fold to 's' is disallowed. In the first case because of locale; and in
the second because of /aa. And the code wasn't smart enough to realize
that these were legal.
The fix is to special case these so that the fold of sharp s (both
capital and small) is two LONG S's under /aa; as is the fold of the
capital sharp s under locale. The latter is user-visible, and the
documentation of fc() now points that out. I believe this is such an
edge case that no mention of it need be done in perldelta.
Karl Williamson [Sat, 18 May 2013 05:07:05 +0000 (23:07 -0600)]
Expand flags parameter from boolean in _to_fold_latin1
This will be used in future commits to pass more flags.
Karl Williamson [Fri, 17 May 2013 03:37:43 +0000 (21:37 -0600)]
unicode_constants.h: Add some #defines
These will be used in future commits
Karl Williamson [Thu, 16 May 2013 02:55:27 +0000 (20:55 -0600)]
utf8.c: Replace two macro calls with equiv single
UTF8_IS_ABOVE_LATIN1() is equivalent to
(! UTF8_IS_INVARIANT && !UTF8_IS_DOWNGRADEABLE_START)
So we can use just it, for clearer code with fewer branches.
Karl Williamson [Sat, 11 May 2013 22:00:02 +0000 (16:00 -0600)]
lib/charnames.t: Fix wrongly complemented test
The 'if' test should be the opposite of what it is. I believe I had it
this way for forcing the branch to be taken during testing, and forgot
to restore it. It only matters if Perl is compiled with early Unicodes,
or on a non-ASCII platform.
Karl Williamson [Fri, 10 May 2013 02:48:40 +0000 (20:48 -0600)]
t/re/fold_grind.t: White space only
Commit
3345a47950127cf99a197eba4dce9c91f7bc9139 created a new
block; but didn't indent it. This commit does.
Karl Williamson [Tue, 7 May 2013 16:04:40 +0000 (10:04 -0600)]
perlapi: Move 'experimental' warning to front of entries
In a long multi-paragraph entry, the fact that the described function is
considered experimental may be lost, as it comes at the end. This just
moves it to the front.
Karl Williamson [Tue, 7 May 2013 16:01:58 +0000 (10:01 -0600)]
regcomp.c: Remove always-true test
In this code, j is guaranteed to be above 255, so no need to test for
that.
Karl Williamson [Mon, 6 May 2013 00:26:39 +0000 (18:26 -0600)]
regcomp.c: White-space only
The previous commit allows us to outdent a largish block, reflowing
things to fit into the extra available width, and saving a few vertical
pixels.
Karl Williamson [Sun, 5 May 2013 16:40:56 +0000 (10:40 -0600)]
regcomp.c: Reorder two 'if's so shorter branches are first
This makes it easier to understand what is going on
Karl Williamson [Sun, 5 May 2013 04:22:53 +0000 (22:22 -0600)]
perllocale: Update to mention fc(), \F
Karl Williamson [Sun, 5 May 2013 03:23:05 +0000 (21:23 -0600)]
regcomp.c: Clarify comment
Karl Williamson [Sun, 5 May 2013 02:23:14 +0000 (20:23 -0600)]
pp.c: Eliminate custom macro and use Copy() instead
I think it's clearer to use Copy. When I wrote this custom macro, we
didn't have the infrastructure to generate a UTF-8 encoded string at
compile time.
Dagfinn Ilmari Mannsåker [Sun, 5 May 2013 02:18:35 +0000 (20:18 -0600)]
perl #117865] [PATCH] Eliminate useless variable and sizeof(char)
bufsiz is always just set from bsiz (via a useless multiplication by
sizeof(char), which is by definition 1), so instead of trying to keep
them in sync, just get rid of bufsiz use bsiz directly# Please enter the commit message for your changes. Lines starting
Karl Williamson [Sat, 4 May 2013 22:09:39 +0000 (16:09 -0600)]
op.c: Don't fold constant fc() in locale
We do compile time folding of calls to ops with constant parameters.
This should be skipped if the op's result depends on locale, and it is
being called from within the scope of 'use locale', as the result is not
known until runtime. fc() was folding anyway.
There is no test, as this only shows up when run in a locale that it
makes a difference in, and there is no guarantee that such a locale
would occur on any computer, and it is a real pain to go searching
through the computer's available locales for such a one for just this
error.
Karl Williamson [Tue, 30 Apr 2013 14:42:08 +0000 (08:42 -0600)]
autodoc.pl: Don't list undocumented deprecated fcns in API
autodoc creates a list of all the undocumented functions that are part
of the API. It omits ones that are experimental and whose API may
change; and now it omits ones that are deprecated (and whose API is
planned to change to be non-existent)
Karl Williamson [Tue, 30 Apr 2013 14:39:44 +0000 (08:39 -0600)]
autodoc.pl: Add note for deprecated functions
This causes each deprecated function to have a prominent note to that
effect in its API documentation.
Karl Williamson [Sat, 27 Apr 2013 14:59:19 +0000 (08:59 -0600)]
embed.fnc: Slight clarification in comments
Karl Williamson [Mon, 20 May 2013 16:39:56 +0000 (10:39 -0600)]
Add tests for case-change macros API
Karl Williamson [Thu, 25 Apr 2013 16:07:47 +0000 (10:07 -0600)]
Use new case changing macros
The previous commit added macros to do some case changing. This
commit uses them in the core, where appropriate.
Karl Williamson [Thu, 25 Apr 2013 16:05:22 +0000 (10:05 -0600)]
handy.h: Add some macro definitions
These macros fill in all the missing case changing operations. They
were omitted before because they are identical in their input domains to
other operations. But by adding them here, that detail no longer need be
known by the callers. toFOLD_LC is not documented, as is subject to
change
Karl Williamson [Thu, 25 Apr 2013 14:41:13 +0000 (08:41 -0600)]
pp.c: Nit in comment
Karl Williamson [Wed, 24 Apr 2013 21:39:08 +0000 (15:39 -0600)]
perlclib.pod: Update character class macro descriptions
Much has changed since this pod was last updated.
Karl Williamson [Wed, 24 Apr 2013 21:36:07 +0000 (15:36 -0600)]
perlclib.pod: Fix too long verbatim lines
Karl Williamson [Thu, 25 Apr 2013 03:18:14 +0000 (21:18 -0600)]
perlapi: Add docs for some case-changing macros; clarify others
The case changing macros are now almost all documented. The exception
is toUPPER_LC, which may change in 5.19
In addition the functions in utf8.c that these macros call now refer to
them instead of having their own documentation. People should really be
using the macros instead of calling the functions directly. I'm not
deprecating the functions because I can't foresee the need to change
them, so code that uses them should continue to be ok.
Nicholas Clark [Mon, 18 Mar 2013 13:35:21 +0000 (14:35 +0100)]
Remove perlsh, which is neither installed nor referenced anywhere.
Described as a "poor man's perl shell", it is unreferenced, and virtually
unchanged since its addition in perl 2. As it is never installed, it's not
used by anyone.
Nicholas Clark [Thu, 2 May 2013 08:45:57 +0000 (10:45 +0200)]
Update Test-Harness to CPAN version 3.27
[DELTA]
3.28 2013-05-02
- Bugfix: Fix taint failures on Windows (Jan Dubois)
3.27 2013-04-30
- Dramatically reduce memory usage (Nick Clark, RT #84939)
- Store test_num (in Grammar.pm) as a number instead of a string.
Reduces memory usage (Nick Clark, RT #84939)
- PERL5LIB is always propogated to a test's @INC, even with taint more
(Schwern, RT #84377)
The local modifications to t/source.t are retained. [rt.cpan.org #64353]
Karl Williamson [Thu, 25 Apr 2013 03:16:29 +0000 (21:16 -0600)]
handy.h: Add missing toFOLD_utf8 macro
This corresponds to the other case changing macros
Karl Williamson [Wed, 24 Apr 2013 21:29:16 +0000 (15:29 -0600)]
handy.h: define some synonyms for consistency
Other macros have these suffixes, so for uniformity add these.
Karl Williamson [Tue, 23 Apr 2013 21:14:04 +0000 (15:14 -0600)]
regcomp.c: White-space only
Change this to follow perl coding conventions
Karl Williamson [Mon, 22 Apr 2013 20:44:08 +0000 (14:44 -0600)]
mg.c: White-space only
I found re-formatting this multi-line 'if' to be easier to understand
Karl Williamson [Mon, 22 Apr 2013 20:34:47 +0000 (14:34 -0600)]
toke.c: Remove redundant test
This checks that something is both not-printable and not a word
character, but all word characters are printable, so just the
non-printable test suffices.
Karl Williamson [Tue, 16 Apr 2013 15:04:50 +0000 (09:04 -0600)]
t/porting/regen.t: Add file to check
Karl Williamson [Sat, 13 Apr 2013 21:09:48 +0000 (15:09 -0600)]
handy.h: Clarify comment
Karl Williamson [Sun, 7 Apr 2013 03:03:44 +0000 (21:03 -0600)]
regcomp.c: White-space only, wrap comment to fit
Karl Williamson [Sun, 24 Mar 2013 23:59:59 +0000 (17:59 -0600)]
mktables: Fix typos in comments
One of these fixes is for where a real CTRL-X was specified, instead of
$^X
Karl Williamson [Fri, 29 Mar 2013 01:56:39 +0000 (19:56 -0600)]
utf8.c: Remove redundant assignment.
This variable is always set just below.
Karl Williamson [Wed, 13 Mar 2013 04:34:17 +0000 (22:34 -0600)]
t/TEST: Don't bail if fails in t/base unless minitest
In order to completely compile Perl, many modules must have been parsed
and compiled, so if there is a full perl, we know that things basically
work. The purpose of bailing out is that if these supposedly very base
level functionality tests don't work, there's no point in continuing.
But over the years, tests of more esoteric functionality have been
added here, and if one of them doesn't work, it still could be that Perl
pretty much does work.
I believe it would be best to move such non-basic tests elsewhere, but
that's work, and hasn't bitten us much so far; this change lessens the
severity of the biting even more. Where it will really bite is if
things are so bad that a full perl binary can't be compiled, and we are
trying to figure out why using minitest.
Karl Williamson [Mon, 25 Mar 2013 20:59:26 +0000 (14:59 -0600)]
t/porting/bincompat.t: Typo in comment
Karl Williamson [Sun, 24 Mar 2013 19:11:25 +0000 (13:11 -0600)]
utf8.c: Use mnemonics instead of hex numbers
Karl Williamson [Sun, 17 Feb 2013 16:18:06 +0000 (09:18 -0700)]
charnames: fix nit in comment
Brian Fraser [Tue, 26 Mar 2013 01:34:37 +0000 (19:34 -0600)]
Remove double space between words in pod
Karl Williamson [Fri, 22 Mar 2013 18:25:00 +0000 (12:25 -0600)]
podcheck.t: Avoid misleading error message
If there are input files on the command line that don't exist, prior to
this commit, the message was output that they are transitory. This adds
a check and a correct message.
Karl Williamson [Fri, 22 Mar 2013 18:21:14 +0000 (12:21 -0600)]
lib/utf8.pm: Fix pod verbatim line wraps
Karl Williamson [Fri, 17 May 2013 03:35:23 +0000 (21:35 -0600)]
lib/utf8.pm: Pod clarification and nit
Karl Williamson [Wed, 20 Mar 2013 17:35:58 +0000 (11:35 -0600)]
Add missing test for regex parse error
Karl Williamson [Wed, 20 Mar 2013 15:30:11 +0000 (09:30 -0600)]
regcomp.c: Use mnemonic instead of number
Brian Fraser [Sat, 9 Mar 2013 19:20:00 +0000 (16:20 -0300)]
toke.c: VALID_LEN_ONE_IDENT only needs a char, not a char*
Rather than passing s and having the macro do a bunch of *s,
just pass and expect *s.
Brian Fraser [Sat, 9 Mar 2013 19:17:04 +0000 (16:17 -0300)]
toke.c, S_intuit_method: Minor parsing speedup for 'maybe_method $foo'
This commit moves a scan_word() closer to when it's actually used,
which provides a minor speedup for things like 'new $foo' or
'is $foo, $bar'.
Karl Williamson [Fri, 15 Mar 2013 19:44:26 +0000 (13:44 -0600)]
toke.c: Call base macro that does the same thing
SPACE_OR_TAB is the same thing as isBLANK, or perhaps more clearly
isBLANK_A. And these latter macros only have one branch instead of 2
(but some extra masking)
Ricardo Signes [Mon, 20 May 2013 13:36:00 +0000 (09:36 -0400)]
add new perldelta
Ricardo Signes [Mon, 20 May 2013 13:15:02 +0000 (09:15 -0400)]
bump version to 5.19.1
Ricardo Signes [Mon, 20 May 2013 12:10:31 +0000 (08:10 -0400)]
perldelta: 5.19.0, shortest perldelta ever?
Ricardo Signes [Mon, 20 May 2013 11:54:45 +0000 (07:54 -0400)]
update corelist for Getopt::Std, utf8
Nicholas Clark [Mon, 20 May 2013 10:37:39 +0000 (12:37 +0200)]
Bump $Getopt::Std::VERSION following commit
0c0a84c65e572a92.
Reuben Thomas [Fri, 10 May 2013 12:05:13 +0000 (13:05 +0100)]
Document getopts before getopt, and de-recommend getopt.
Brian Fraser [Tue, 14 May 2013 07:57:19 +0000 (04:57 -0300)]
utf8: Remove unused variable (%utf8::enc).
In its original implementation in perl 5.6, 'use utf8' accepted
an encoding argument, which was saved in %utf8::enc and later
used by utf8_heavy.pl to load the right files from lib/unico[rd]e.
However, since 5.8 (or more specifically,
15732964418f),
utf8_heavy.pl stopped using that variable, so there's no reason
to keep it around in utf8.pm.
Bump $VERSION in lib/utf8.pm.
Ricardo Signes [Sun, 19 May 2013 01:11:24 +0000 (21:11 -0400)]
perlhist for 5.19.0
Ricardo Signes [Sun, 19 May 2013 01:11:15 +0000 (21:11 -0400)]
bring in the 5.18-related epigraphs
Ricardo Signes [Sun, 19 May 2013 00:42:27 +0000 (20:42 -0400)]
update Module::CoreList for 5.19.0
and its mass removal!
Ricardo Signes [Sat, 18 May 2013 20:41:32 +0000 (16:41 -0400)]
Removed cpan/File-CheckTree
Ricardo Signes [Sat, 18 May 2013 20:30:04 +0000 (16:30 -0400)]
Removed cpan/Text-Soundex
Ricardo Signes [Sat, 18 May 2013 20:10:44 +0000 (16:10 -0400)]
regenerate known pod issues
Chris 'BinGOs' Williams [Sat, 18 May 2013 14:07:10 +0000 (15:07 +0100)]
Removed cpan/Log-Message
Chris 'BinGOs' Williams [Sat, 18 May 2013 13:51:55 +0000 (14:51 +0100)]
Removed cpan/Log-Message-Simple
Chris 'BinGOs' Williams [Sat, 18 May 2013 13:31:52 +0000 (14:31 +0100)]
Remove cpan/Object-Accessor
Chris 'BinGOs' Williams [Sat, 18 May 2013 13:16:24 +0000 (14:16 +0100)]
Remove cpan/Term-UI
Chris 'BinGOs' Williams [Sat, 18 May 2013 13:04:17 +0000 (14:04 +0100)]
Remove cpan/Module-Pluggable
Chris 'BinGOs' Williams [Sat, 18 May 2013 12:20:02 +0000 (13:20 +0100)]
Remove cpan/Pod-LaTeX and pod2latex utility
Chris 'BinGOs' Williams [Sat, 18 May 2013 11:52:17 +0000 (12:52 +0100)]
Remove cpan/B-Lint
Chris 'BinGOs' Williams [Sat, 18 May 2013 08:50:15 +0000 (09:50 +0100)]
Remove cpan/Archive-Extract
Note:
Porting/core-cpan-diff refactored to use Archive::Tar
instead of Archive::Extract
Chris 'BinGOs' Williams [Sat, 18 May 2013 00:01:42 +0000 (01:01 +0100)]
Remove cpan/CPANPLUS and associated utilities
Chris 'BinGOs' Williams [Fri, 17 May 2013 23:31:05 +0000 (00:31 +0100)]
Remove cpan/CPANPLUS-Dist-Build
Karl Williamson [Thu, 9 May 2013 00:27:42 +0000 (18:27 -0600)]
Remove core references to SVt_BIND
This scalar type was unused. This is the first step in using the slot
freed up for another purpose. The slot is now occupied by a temporary
placeholder named SVt_DUMMY.
Karl Williamson [Thu, 4 Apr 2013 03:16:52 +0000 (21:16 -0600)]
perlpacktut: nit
Karl Williamson [Thu, 9 May 2013 16:20:14 +0000 (10:20 -0600)]
Fix compiler warnings in regcomp.c
Ricardo Signes [Sat, 18 May 2013 14:30:40 +0000 (10:30 -0400)]
Perform all the "bump us to 5.19.0" work
...I hope.
Ricardo Signes [Sat, 18 May 2013 14:25:25 +0000 (10:25 -0400)]
regenerate META.json
Ricardo Signes [Sat, 18 May 2013 14:09:57 +0000 (10:09 -0400)]
regen feature.pm
Ricardo Signes [Sat, 18 May 2013 13:51:49 +0000 (09:51 -0400)]
bump the perldelta version
Ricardo Signes [Sat, 18 May 2013 13:48:01 +0000 (09:48 -0400)]
bump version to 5.19.0
Ricardo Signes [Fri, 17 May 2013 12:26:19 +0000 (08:26 -0400)]
final version and perlhist update for 5.18.0
Sebastien Aperghis-Tramoni [Fri, 17 May 2013 23:25:46 +0000 (01:25 +0200)]
update perlexperiment
- fixed a typo (%H instead of %^H)
- removed mention of Unicode support, which is so deep that I doubt that
it could ever be removed
- added the following items to the "Current experiments" section
- alloccopstash
- cop_store_label
- gv_fetchmethod_*_flags
- op_scope
- op_lvalue
- Smart match (~~)
- Lexical $_
- Array and hash container functions accept references
- Regular Expression Set Operations
- moved the following items to the "Accepted features" section
- fork() emulation
- Weak references
- Internal file glob
- 64-bit support
- die accepts a reference
- DB module
- moved the following items to the "Removed features" section
- GetOpt::Long Options
- 5.005-style threading
- Test::Harness::Straps
- perlcc
- Assertions
- The pseudo-hash data type
I tried to add the corresponding Perl versions of when features were added
and accepted or removed, but used the stable versions as I searched in the
perldelta's.
Sebastien Aperghis-Tramoni [Fri, 17 May 2013 23:04:45 +0000 (01:04 +0200)]
fix wrong tense
Ricardo Signes [Thu, 16 May 2013 14:36:46 +0000 (10:36 -0400)]
update the release schedule
Ricardo Signes [Thu, 16 May 2013 14:02:39 +0000 (10:02 -0400)]
perldelta: document known failure on HP-UX 11.00
Ricardo Signes [Thu, 16 May 2013 02:52:33 +0000 (22:52 -0400)]
bump patchlevel and perlhist for RC4
Ricardo Signes [Thu, 16 May 2013 02:06:18 +0000 (22:06 -0400)]
perldelta: restate the changes to ${x} versus $x
Credit for improvements made in this commit to to khw. Blame for
anything else goes to rjbs.
Aristotle Pagaltzis [Thu, 16 May 2013 00:57:20 +0000 (02:57 +0200)]
perldelta: Clarify removal vs deprecation of modules
Karl Williamson [Thu, 16 May 2013 01:00:22 +0000 (19:00 -0600)]
perldelta: Use 'Here doc' consistently sans dash
This corresponds to perldiag, and was suggested by Zsbán Ambrus.
Karl Williamson [Thu, 16 May 2013 00:58:31 +0000 (18:58 -0600)]
Fix typo in perldelta
Spotted by Zsbán Ambrus