| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Along with the simple_casefolding and full_casefolding features.
fc() stands for foldcase, a sort of pseudo case (like lowercase),
which is used to implement Unicode casefolding. It maps a string
to a form where all case differences are erased, so it's a
locale-independent way of checking if two strings are the same,
regardless of case.
This functionality was, and still is, available through the
regular expression engine -- /i matches would use casefolding
internally. The fc keyword merely exposes this for easier access.
Previously, one could attempt to case-insensitively test two strings
for equality by doing
lc($a) eq lc($b)
But that might get you wrong results, for example in the case of
\x{DF}, LATIN SMALL LETTER SHARP S.
|
|
|
|
|
| |
Upgrade the version in ExtUtils::ParseXS to 3.13_01 for a development
release.
|
|
|
|
|
|
|
|
| |
This module was depending on testing code points in the upper Latin1
range causing utf8_heavy.pl. However a recent performance improvement
caused those code points to skip the loading. This just changes the
code points to two higher values that cause it to load, and until and if
it changes again, will fix things.
|
|\ |
|
| | |
|
| |
| |
| |
| | |
Also removes a few lines of dead code
|
|/
|
|
|
| |
If an embedded typemap was found in certain locations, we got spurious
parse failures. Mea culpa.
|
|
|
|
|
| |
If we couldn't find a typemap for a given C type, this now gives a list
of available, mapped C types.
|
|
|
|
|
| |
Hopefully, anyway, by using double quotes (win32) and Perl's q quoting
construct inside.
|
| |
|
|
|
|
|
|
|
|
|
| |
In order to be able to deprecate certain typemaps from the core and send
them to a peaceful retirement on the CPAN, it's necessary to make it
easy to share and include these typemaps in case they're used despite
CPAN greps claiming the opposite. This helper module facilitates
non-copy-and-paste sharing of typemaps by adding a dependency and
including a single line of code in the XS.
|
|
|
|
|
| |
This method will return a string representation of the typemap object
that can be included *verbatim* in an XS file.
|
|
|
|
|
|
|
| |
[DELTA]
2012-01-14
* Minor POD documentation update to sync with upstream blead.
|
| |
|
|
|
|
| |
BigInt.pm intentionally registered an unregisterable op.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
B::Deparse foreach scoping problem was fixed at cf24a84005,
which was issued at #30504. But B::Deparse was blinded
temporarily by this commit so that it couldn't recognize
foreach continue block for a moment.
foreach statement generates 'nextstate', 'stub', 'leave', or
'scope' root opcode at will when foreach statement is not used
as a oneline statement modifier. So all the case of opcodes
should be checked.
Some tests for foreach scoping and continue block are attached.
related: #30504
|
|
|
|
|
|
|
|
|
| |
ae5a807c7dcf moved a check against $@ away from the eval it was
checking and inserted another eval in between, the effect of which
was to make the tests that can only run on VMS get skipped there
too. Ouch.
There are other problems with ae5a807c7dcf, but this is a start.
|
| |
|
|
|
|
|
|
| |
[dagolden bumped $VERSION and added ambs to the AUTHORS file]
Signed-off-by: David Golden <dagolden@cpan.org>
|
|
|
|
| |
This was mentioned in ticket #75156.
|
| |
|
|
|
|
| |
I think. I haven’t actually tested it.
|
| |
|
|
|
|
| |
Fixes cpan bug #50315.
|
| |
|
|
|
|
|
|
| |
If they are escaped and on an ODS-5 volume, that is. We
then have to clean up all versions of the files created
by a test we weren't running before.
|
|
|
|
|
| |
For a long time it has been doing eval { require XSLoader }, but
XSLoader will load on miniperl, it’s just XSLoader::load() that fails.
|
|
|
|
|
| |
I’m about to make a change, and 2.135_02 has already been used by a
CPAN dev release.
|
|
|
|
|
|
|
| |
This is necessary for a CPAN release that fixes a versioning problem in
version 3.09 (CPAN RT #73555).
No functional changes.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
#line directives can be generated from commands. Those may be using
double quotes. That may not be considered friendly by preprocessors when
the result looks anything like this
#line 123 "perl -e "foo""
Input on whether the following is portable would be appreciated.
#line 123 "perl -e \"foo\""
gcc is happy with it. I know. The world's not just win32, osx, and linux
with a choice between three compilers.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
5.6 is strangely buggy, in that *{""} stringifies as "*main::\0". And
then there are some other strange eval bugs that the tests have to
work around.
|
|
|
|
|
|
|
|
|
| |
This typeglob is an oddity, in that it stringifies as *main::,
but cannot be reached under that name, because *main:: produces
*main::main::. The former is $::{""}; the latter $::{"main::"}.
I was inadvertently triggering this in 5.8 when I added a test a while
back for typeglobs will nulls in their names.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit adds support for vstrings to Data::Dumper, in both Perl
and XS implementations.
Since the actual vstring cannot be obtained from pure Perl, there is a
new _vstring XS function that the PP implementation uses, falling back
to sprintf "%vd" if XS is not available. The former dumps v1.2_3 cor-
rectly, while the latter produces v1.23. (I could make it use B to
extract the correct string, but XS is likely to be unavailable in
those circumstances where B is also unavailable [i.e., miniperl], so
it didn’t seem worth the effort.)
Some Perl versions (read: *all* released versions as of this message)
let vstring magic linger too long on strings that have been modified.
So that is checked for, but the bug is probed at compile time and the
code is #ifdeffed or use-constanted out when the bug is not present.
Due to the definition of the _bad_vsmg constant, I had to move
XSLoader::load into the BEGIN block. Since I was putting it there,
I combined it, the $Useperl = 1 and the eval{} into one statement,
for speed.
Since I was putting XSLoader::load into a BEGIN block, $VERSION needed
to be in one, too.
|
| |
|
| |
|
|
|
|
|
|
|
| |
I didn’t know that done_testing could take an argument. This elimi-
nates the manual fiddling of the test count every time a test is added
to __DATA__. For other tests, which are the exception, we still have
the safety of a test count to make sure the tests actually run.
|
|
|
|
|
|
|
|
|
|
|
| |
Before the recent feature revamp (2fc860ee1e0), loading the
unicode_strings feature would always set the feature_unicode %^H ele-
ment, even though the core did not actually use it. Now it is some-
times not set. So we have to check the hint bits as well. Since
feature.pm has it hardcoded, load feature.pm to get the right bit.
The stuff with $feature_bundle_mask is redundant, but it avoids load-
ing feature.pm unnecessarily.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is related to 4b58603b60.
This time it’s this op tree that pure_string can’t handle:
8 </> match() vK/RTIME ->9
7 <|> regcomp(other->8) sK/1 ->8
3 <1> regcreset sK/1 ->4
6 <1> av2arylen sK/1 ->7
5 <1> rv2av[t2] sKR/1 ->6
4 <#> gv[*a] s ->5
In writing a test for this, I triggered a case that 415d4c68d missed
(only $a and $b are exempt from strict vars, not @a and @b), so that
is fixed in the same commit.
|
| |
|
|
|
|
|
|
|
| |
B::Deparse only supported strict refs till now, and not the other two.
The hints were always present, but were being ignored. It was more
complicated than simply printing out the pragma settings. Variables
have to be qualified, too, under strict vars.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit fixes a regression introduced by b50b2058.
ambient_pragmas makes changes to %^H, which affect the currently com-
piling scope.
BEGIN {
new B'Deparse -> ambient_pragmas strict => 'all';
}
use 5.012;
# no strict here
B::Deparse really does know too much about perl’s internals. It is
calling strict.pm’s internal routines, which now set %^H, so Deparse
has to localise it.
Since it is very easy to write tests in evals that simply do not run
(I actually did that when trying to test this, and was puzzled as to
why everything was passing anyway), I have restored the test count.
Sorry, Nicholas.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
When a version declaration has been seen, it’s not possible to deparse
the code perfectly correctly, but using ‘no feature; use feature
"5.14"’ is a reasonable tradeoff. See also commit 1c74777c25.
This necessitated sorting %^H keys that are output to keep tests pass-
ing. Previously they were relying on phases of the moon.
|