| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This cleans up and simplifies and extends how the trie
logic interacts with the new node types. This change ultimately
makes the EXACTFU, EXACTFU_SS, EXACTFU_NO_TRIE (renamed to
EXACTFU_TRICKYFOLD) work properly with the trie engine regardless
of whether the string is utf8 or latin1.
This patch depends on the following:
EXACT => utf8 or "binary" text
EXACTFU => either pre-folded utf8, or latin1 that has to be folded as though it was utf8
EXACTFU_SS => special case of EXACTFU to handle \xDF/ss (affects latin1 treatment)
EXACTFU_TRICKYFOLD => special case of EXACTFU to handle tricky non-latin1 fold rules
EXACTF => "old style fold logic" untriable nodetype
EXACTFA => (currently) untriable nodetype
EXACTFL => (currently) untriable nodetype
See the comments in regcomp.sym for these fold types.
This patch involves a number of distinct, but related parts. Starting
from compilation:
* Simplify how we detect a triable sequence given the new nodetypes,
this also probably fixed some "bugs" in how we detected certain
sequences, like /||foo|bar/.
* Simplify how we read EXACTFU nodes under utf8 by removing the now
redundant folding logic (EXACTFU nodes under utf8 are prefolded).
Also extend this logic to handle latin1 patterns properly (in
conjunction with other changes)
* Part of the problems associated with EXACTFU_SS and EXACTFU_TRICKYFOLD
have to do with how the trie logic interacts with the minlen logic.
This change handles both by pessimising the minlen when encounting
these nodetypes. One observation is that the minlen logic is basically
broken, and works only because it conflates bytes and codepoints in
such a way that we more or less always get a value small enough that things work out
anyway. Fixing that is properly is the job of another patch.
* Part of the problem of doing folding under unicode rules is that
there are a lot of foldings possible, some with strange rules. This
means that the bitmap logic does not work correctly in all cases,
as we currently do not have any way to populate it properly.
So this patch disables the bitmap entirely when folding is involved
until that is fixed.
The end result of this is: we can TRIE/AHOCORASICK any sequence of
EXACT, or EXACTFU (ish) nodes, regardless of utf8 or not, but we disable
the bitmap when folding.
A note for follow up relating to this patch is that the way EXACTFU_XXX
nodes are currently dealt with we wont build the "maximal" trie because
of their presence, instead creating a "jumptrie" consisting of either a
leading EXACTFU node followed by a EXACTFU_XXX node, or vice versa. We
should eventually address that.
|
|
|
|
|
|
|
| |
The old output would show only the line number as diagnostics
but not the test number, nor the test name, which often contains
very useful information. This patch makes sure this is visible in
the diagnostics output of test failures.
|
|
|
|
|
| |
Making this an unsigned constant silences the scary and wrong Solaris
warnings about integer overflow
|
| |
|
|
|
|
|
|
| |
This caused -Uusedl builds to fail due to the duplicate symbol.
A more complex fix can be expected after 5.16.
|
|
|
|
|
|
|
| |
The Windows shell cmd.exe does not know about single quotes. Double
quotes are the only thing available here. This patch selects the kind
of quote to use based on the operating system and constructs
the pipeline accordingly.
|
|
|
|
|
|
|
|
|
|
|
| |
Revert "Update Compress-Raw-Bzip2 to CPAN version 2.049"
This reverts commit db98b5a25ac5537be04f17243c5e929aceb3560b.
Revert "Update Compress-Raw_Zlib to CPAN version 2.049"
This reverts commit 8b782679b6ea1247bd559efc311e7366582feaad.
Revert "Update IO-Compress to CPAN version 2.049"
This reverts commit 785e05e1c22f7d7c6ed38839cc28cc6d13a286de.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Term::ReadLine supports any event loop, including unpubished ones and
simple IO::Select loops without the need to rewrite existing code for
any particular framework.
|
|
|
|
|
| |
Otherwise exacting C89 compilers refuse to build the code. And at least
one Win32 compiler is exacting on this.
|
|
|
|
|
|
|
|
|
| |
The 5.8.0 versions of &init_refaddr_format and &format_refaddr are now
compiled by default, and then redefined with their 5.6.x replacements if
it turns out that we're on 5.6.1 or 5.6.2.
Previously both versions were compiled, and the correct pair bound using
typeglob assignment.
|
|
|
|
| |
Which broke the build on both VMS and Win32.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently we cache the UID/GID and effective UID/GID similarly to how
we used to cache getpid() before v5.14.0-251-g0e21945. Remove this
magical behavior in favor of always calling getpid(), getgid()
etc. This resolves RT #96208.
A minimal testcase for this is the following by Leon Timmermans
attached to RT #96208:
eval { require 'syscall.ph'; 1 } or eval { require 'sys/syscall.ph'; 1 } or die $@;
if (syscall(&SYS_setuid, $ARGV[0] + 0 || 1000) >= 0 or die "$!") {
printf "\$< = %d, getuid = %d\n", $<, syscall(&SYS_getuid);
}
I.e. if we call the sete?[ug]id() functions unbeknownst to perl the
$<, $>, $( and $) variables won't be updated. This results in the same
sort of issues we had with $$ before v5.14.0-251-g0e21945, and
getppid() before my v5.15.7-407-gd7c042c patch.
I'm completely eliminating the PL_egid, PL_euid, PL_gid and PL_uid
variables as part of this patch, this will break some CPAN modules,
but it'll be really easy before the v5.16.0 final to reinstate
them. I'd like to remove them to see what breaks, and how easy it is
to fix it.
These variables are not part of the public API, and the modules using
them could either use the Perl_gete?[ug]id() functions or are working
around the bug I'm fixing with this commit.
The new PL_delaymagic_(egid|euid|gid|uid) variables I'm adding are
*only* intended to be used internally in the interpreter to facilitate
the delaymagic in Perl_pp_sassign. There's probably some way not to
export these to programs that embed perl, but I haven't found out how
to do that.
|
|
|
|
|
|
|
|
|
| |
t/porting/pending-author.t attempts to avoid the problem of C<make test>
passing 100%, but the subsequent git commit causing F<t/porting/authors.t>
to fail, because it uses a "new" e-mail address.
This test is only run if one is building inside a git checkout, B<and> one
has made local changes. Otherwise it's skipped.
|
|
|
|
|
|
|
|
|
| |
Commit 3ea0c581844689ab didn't go far enough in pruning the input.
When Porting/checkAUTHORS.pl is invoked with --tap it uses
parse_commits_from_stdin_authors() instead of parse_commits_from_stdin(),
which only looks for lines matching /^Author:/
This reduces runtime by a further 8%.
|
|
|
|
|
| |
It was somewhere completely wrong, thanks to no human double checking of
a git rebase during development.
|
|
|
|
|
|
|
|
|
|
|
|
| |
With filenames varying between only one and five characters in
length, it was fairly easy to get two files differing only in
case ('A' and 'a', for example). Which on non-case-sensitive file
systems could generate a warning at unlink time because it would
unlink 'a' and then check for the existence of 'a' and get true
because 'A' was still there and indistinguishable from 'a'.
So just use longer filenames to make the possibility of collision
vanishingly small.
|
|
|
|
| |
See <20011022034838.B1676@blackrider> and commit 0c8d858bc.
|
|
|
|
|
|
|
|
|
|
| |
[DELTA]
2.049 18 February 2012
* IO::Compress::Zip
Error in t/cz-03zlib-v1.t that caused warnings with 5.15
[RT# 110736: warnings from cpan/IO-Compress/t/cz-03zlib-v1.t]
|
|
|
|
|
|
|
|
| |
[DELTA]
2.049 30 January 2012
* Include zlib 1.2.6 source.
|
|
|
|
|
|
|
|
| |
[DELTA]
2.049 18 February 2012
* No Changes
|
|
|
|
|
|
|
|
|
|
| |
[DELTA]
5.0150039 Sat 18 Feb 2012 15:33:17 +0100
* Rewrite "How do I create a module?" (ranguard)
* Remove more old questions (ranguard)
* Improve Email::MIME example (madsen)
* Fix to regex (RT #74215)
|
|
|
|
|
| |
These items aggregate the bullets put forth on the perl5-porters
list, omitting those to which there was an immediate objection.
|
|\ |
|
| | |
|
| |
| |
| |
| |
| |
| | |
Whilst this isn't used (yet), it makes sense to put it in now, before any
external program decides that parsing the private Pod::Function blocks in
perlfunc.pod is fair game, and then becomes dependent on their format.
|
| |
| |
| |
| |
| | |
Function descriptions should start with a lowercase letter, or the proper
noun SysV.
|
| |
| |
| |
| |
| | |
This ensures consistency in the documentation, and that the functions in
%Pod::Functions::Kinds are in sorted order.
|
| |
| |
| |
| |
| | |
Historically Pod::Functions has failed to get updated when functions are
added. This should solve that.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Pod::Functions is now generated from pod/perlfunc.pod by
ext/Pod-Functions/Functions_pm.PL
If it can't parse pod/perlfunc.pod, it will abort, which will cause the
build to break. It's really not possible for it to carry on, hence aborting
is the only option. However, innocent-seeming changes to documentation
shouldn't break the build, and we expect everyone to run (at least)
the porting tests, hence this test, to catch such problems before it's too
late. To avoid duplicating the parsing logic, we make Functions_pm.PL take
a --tap option, to test that all is well.
|
| |
| |
| |
| |
| | |
Previously the data was stored with a comma separated list inside a tab
separated list.
|
| |
| |
| |
| | |
This avoids it getting out of synchronisation.
|
| |
| |
| |
| |
| | |
This ensures that it gets re-run, and lib/Pod/Functions.pm rebuilt, if
perlfunc.pod is changed.
|
| |
| |
| |
| |
| | |
This will allow Pod::Functions to use Pod::Simple as part of its build
process.
|
| |
| |
| |
| | |
For the first step, simply output the current file in one hit.
|
| |
| |
| |
| |
| |
| |
| |
| | |
In the list for "Perl Functions by Category" each item is annotated with its
type as used internally by Pod::Functions.
In the "Alphabetical Listing of Perl Functions" each function is annotated
with the summary description returned by %Pod::Functions::Flavor.
|
| | |
|
| |
| |
| |
| |
| | |
This reveals that use_ok() was not in a BEGIN block, and in turn that the
test count needs to be declared before this BEGIN block runs. Now fixed.
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
These were added to the section 'Functions for real @ARRAYs' in perlfunc.pod
by commit a5ce339cb0c533c9 in Sep 2010.
As ever, tweak the golden results in the test to match these changes.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
evalbytes was added to perlfunc.pod by commit 7289c5e6ca773d7c in Nov 2011.
fc was added to perlfunc.pod by commit 628253b8ba8b9cbe in Jan 2012.
say was added by commit 0d863452f5cac863 in Dec 2005.
state was added.pod by commit 36fb85f3330d45ee in Jul 2006.
__FILE__, __LINE__ and __PACKAGE__ were added by commit cfa52385fa426b5e in
Aug 2011, and __SUB__ by commit 84ed01088568ffe9 in Nov 2011.
Again, tweak the golden results in the test to match these changes.
|
| |
| |
| |
| |
| |
| |
| | |
Commit 0d863452f5cac863 in Dec 2005 added the switch feature, along with
documentation in perlfunc.pod, but did not update Pod::Functions.
Again, tweak the golden results in the test to match these changes.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Updated description of Binary from commit 5dac7880bdc47787 in Feb 2011.
Updated description of Flow from commit cf2649810f00335b in Jul 2005, and
added the "the" which has always been missing from Pod::Function's version.
Updated description of Modules from commit 3b10bc60979cfe9a in Jan 2010.
Updated description of Objects from commit 353c650532037e40 in Oct 2007.
The description of Namespaces had always differed from that in perlfunc.pod.
Remove stray tabs from the descriptions of gets and sprintf.
Commit 19799a22062ef658 (May 1999) added lock to perlfunc.pod without a
it is the only function in "Threads", move it to "Misc", instead of creating
a category just for it.
use always had two entries with different descriptions in the __DATA__
section. This isn't actually sensible, as the code that builds the exported
data structures ends up taking Types from both, and using the last
description that it sees. So merge the two together to reflect this.
Drop the CHANGES section from the Pod, which is both incomplete and
redundant, given that version control does this job much better.
Tweak the golden results in the test to match these changes.
|
| |
| |
| |
| |
| |
| |
| |
| | |
The order is neither strictly lexical, nor strictly dictionary, but now for
all cases __FOO__ follows foo, and qx// is after qw//.
In the "Regular expressions and pattern matching" summary, put qr// in the
correct position alphabetically.
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
C<readline> added to 'Input and output functions'
Documentation on readline was added by commit 8490252049bf42d3 in Aug 1997.
That commit also added readpipe without adding it to a category group, an
omission that was fixed by commit 4319b00c03e6a517 in Nov 2011.
C<sysseek> added to 'Functions for fixed-length data or records'
Documentation on sysseek was added by commit 137443ea0a858c43 in Apr 1997,
which implemented sysseek.
C<prototype> added to both 'Keywords related to the control flow of your Perl
program' and 'Miscellaneous functions', as Pod::Functions places it in both.
Commit da0045b73af6f504 in Jul 1996, included 'Add documentation for new
"prototype" operator', but only added the main documentation, not an entry
in a category group.
C<lock> added to 'Miscellaneous functions'.
Documentation on lock was added by commit 19799a22062ef658 in May 1999.
|
|
|
|
|
|
| |
When cloning stacks (only used for Win32 fork emulation, not for ordinary
threads), the CV referenced by an eval context frame wasn't being cloned.
This led to crashes when Win32 forked inside an eval [perl #109718].
|
|
|
|
|
|
|
|
| |
This reverts commit ffa23acf6bf9670bd1d5fdc9a958c918b6cf3d06.
This change was made without realisation that the fallback value for
MAXPATHLEN on POSIX systems comes (in perl.h) from _POSIX_MAX_PATH,
so the fallback value here was not used.
|