| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
By making sure the no-op macros cast the output appropriately, we can
eliminate the casts that have been added in things that call them
|
|
|
|
|
| |
By using a more fundamental value, these two definitions of the macro
can be made the same, so only need one, common to both platforms
|
|
|
|
|
| |
This creates a macro that is used in portions of 2 other macros, thus
removing repetition.
|
|
|
|
|
|
|
|
| |
The definition had gotten moved away from its comments in utf8.h, and
the wrong thing was being guarded by a #error, (UTF8_MAXBYTES instead).
And it is possible to generalize to get the compiler to do the
calculation, and to consolidate the definitions from the two files into
a single one.
|
|
|
|
|
| |
Using kill() on the same task that called kill() circumvents
Perl's signal handlers, but raise() doesn't, so use that instead.
|
|
|
|
|
| |
Otherwise in platforms with Perl_fp_class_nzero there would be no
return for the x != 0.0 case.
|
| |
|
|
|
|
|
|
|
| |
These help in systems which do not have signbit(), or fail to find one,
or which explicitly disable it.
The idea for the fallback implementation from Craig Berry.
|
|
|
|
| |
Signed-off-by: Chris 'BinGOs' Williams <chris@bingosnet.co.uk>
|
|
|
|
|
|
|
|
|
|
|
| |
[DELTA]
1.24 Sun Nov 29 05:48:44 UTC 2015
- Updated to use most recent GNU license file.
( https://rt.cpan.org/Public/Bug/Display.html?id=108003 )
- Silence compiler warning message
( https://rt.cpan.org/Public/Bug/Display.html?id=109577 )
- Add kwalitee suggested changes.
|
| |
|
|
|
|
|
|
|
| |
The default is to disable rather than enable.
Also mention the "Please specify prototyping behavior for Foo.xs"
warning.
|
|
|
|
|
| |
Test 10 creates 100 threads that do 'require IO'. This can use a lot
of memory and other resources. reduce it to 10.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The customization simply changed DOS EOLs to UNIX EOLs, dating from a time
when the intention was to get all files in blead into UNIX EOL format.
However, since then many more files have crept in with DOS EOLs (for
example, many files under cpan/Pod-Checker, cpan/Pod-Parser and
cpan/Pod-Usage have DOS EOLs in my Git workspace (on Windows) and in the
most recent perl release tarballs (5.22.1-RC3 (made from Windows) and
5.23.5 (not made from Windows AFAIK))) and they clearly do no harm, so
there is no point in trying to make all files have UNIX EOLs and keep them
that way, and therefore no point in this customization.
The GitHub PR that was referenced in Porting/Maintainers.pl has already
been closed (not merged).
There are no changes to ParseWords.t here other than the EOLs.
|
|
|
|
| |
(follow-up to bdc795f4, suggested by Aaron Crane)
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
RT #126245
Make it clearer that is the buffer length being specified, not the string
length. Also, change the 'See "SvIV_set"' to SvLEN. That appears to be a
cut and paste error.
Based on suggested wording from jazzkutya@gmail.com
|
|
|
|
|
|
| |
Patch submitted by Shlomi Fish.
For: RT #126735
|
| |
|
| |
|
|
|
|
|
|
|
| |
This reverts commit 85e4652903c8054317fceac9960608e261acb7f5...
... with some manual changes to now place 5.022001 before 5.023006 instead
of before 5.023005 since 5.023006 is now the impending blead release. Also,
set a tentative 5.22.1 final $VERSION/date of Sun 6th.
|
| |
|
|
|
|
| |
Since it looks like the 3.5 (6.0) in OS X 9 didn't recognize the annotations.
|
|
|
|
| |
(Noticed by Aaron Crane.)
|
| |
|
|
|
|
|
| |
In something like /..\G/, the engine should start trying to match two
chars before pos(). It was actually trying to match two bytes before.
|
|
|
|
|
|
|
|
| |
This is a follow-on to commit ac07059afc75:
FOOMARK debugging macros: fix %d cast; only -Dsv
which missed fixing up the debugging statement in markstack_grow().
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
op.c: In function ‘Perl_rpeep’:
op.c:13666:35: warning: comparison is always false due to limited range of data
type [-Wtype-limits]
This condition is always false if for example base is 32 bit and UVs are 64
bit:
base > (UV_MAX >> (OPpPADRANGE_COUNTSHIFT+SAVE_TIGHT_SHIFT)
silence the warning by replacing base with a constant-folded conditional
(cond ? base : 0) > ....
where cond is false if sizeof(base) is small.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
As far as I can tell, using the -S and -O options together has always
yielded an error of this form:
Configure: 2042: .: Can't open ./optdef.sh
That's because, even though optdef.sh is created in the UU directory, and
most of Configure is run in that directory, part of the -S implementation is
run in the root directory, and was therefore trying to read ./optdef.sh
instead of ./UU/optdef.sh.
As of 41d73075f0801c26794dadb1ff690f305d7e53a7, the -O mode is always
enabled, so the -S option has been broken since then. This fixes that.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Back when the code in perllib.c was first added in 1999, in
commit 80252599d4 the large define tree function that today in 2015 is
Perl_set_caret_X was an unremarkable single statement
http://perl5.git.perl.org/perl.git/blob/80252599d4b7fb26eec4e3a0f451b4387c5dcc19:/perl.c#l2658
Over the years Perl_set_caret_X grew and grew with OS specific code. Move
the Win32 $^X code to match how all the other OSes do it. Fix a problem
where full perl's $^X is always absolute because perl5**.dll uses
GetModuleFileNameW in perllib.c, but miniperl's $^X is always a relative
path because it's coming from libc/command prompt/make tool/make_ext.pl.
Win32 miniperl's $^X being relative causes inefficiencies in EUMM as a
relative $^X is wrong the moment chdir executes in any perl process.
EUMM contains code to search PATH and some other places to guess/figure out
the absolute patch to the current perl to write the absolute perl path
into the makefile. By making $^X absolute on all Win32 perl build variants,
this find absolute perl path code won't execute in EUMM. It also harmonizes
behavior with other OSes and between Win32 mini and full perl. See details
in RT ticket for this patch.
|
|
|
|
|
| |
The GV will be created if it doesn't exist. Remove the branch for smaller
code size.
|
|
|
|
|
|
|
|
| |
This var is (mostly) unused, but is set in a couple of places, hence:
mg.c:2657:17: warning: variable ‘s’ set but not used
In the one place it is used, declare it in a narrower scope.
|
|
|
|
|
|
|
|
|
|
|
|
| |
The nv value should be a valid version of the fv value.
Why the fv is a long double, not a NV, is a long (haha) story.
Short version: the printf code expects to be able to work with long
doubles, if long doubles are available, even without -Duselongdouble.
The problem became obvious in VMS which has true 128-bit long
(little-endian) doubles, and trying the signbit() on those did
not work.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The old test evaluated int(256*rand(1)) a large number of times, and
calculated the average number of bits seen in the result. If this was too
far from 4, it failed the (single) test. This is a rather crude test, and
generated what may be false negatives quite often in smoke tests.
This commit replaces that with a more comprehensive test scheme, but which
should cause a false negative in the test script only once every 2 million
runs, assuming a fair random number generator.
As before, it calculates 256*rand(1) many times, but maintains a count of
the number of occurrences of each result. Each count is then checked
whether it is within 6 sigmas of the expected value. For example for
100_000 iterations, we expect each count to be approximately 390, with a
6-sigma range of 272..509. If any count is outside that range, it fails
one of the 256 tests.
Thus this script now does 256 tests rather than a single one, so is a lot
better at detecting bad RNGs.
With each test being 6-sigma (1 in 500e6 failures) and 256 tests, that
gives us a false negative rate of approx 1 in every 2 million runs.
|
|
|
|
| |
e.g. cmp_ok() rather than ok($x > 0), and give tests descriptions.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There is a section of code supposedly intended to check that
d_randbits bits is sane. AFIKT, the code was flawed from the start,
and has just become more broken since.
Initially it ran rand(1) many times and recorded the min and max.
It then (in a convoluted way involving logarithms) checked that
$max wasn't greater than 1.
I suspect that this code was (at least at one point during its initial
writing) supposed to check that the number of bit of precision in rand()
matched d_randbits. If that was the case, then it certainly wasn't doing
that.
Subsequently, extra bogus tests were added, e.g. that
$max < (2 ** $randbits)
which it always will be, since it should be < 1.
Then the main test was inadvertently broken by a precedence issue
involving '!': I don't think this does what you think it does:
unless (ok( !$max <= 0 or $max >= (2 ** $randbits)))
Then an extra check was added after each call to rand(1) in the loop that
the result was in the range 0..1. This check made all the other checks
that follow on $min and and $max superfluous.
So this commit removes all those extra tests, and changes a couple
of 'print #...\n"' into diag("..."), since we're now in the 21st century
:-)
|
|
|
|
|
|
| |
This static function wasn't being used. For the justification, see
http://nntp.perl.org/group/perl.perl5.porters/232954
|
| |
|
| |
|
|
|
|
| |
Commit 760c7c2f746ce3f3c3356b0a3efb017b6d0cb5b0 added this deprecation.
|
| |
|
| |
|
|
|
|
| |
See https://rt.perl.org/Ticket/Display.html?id=115166
|
|
|
|
|
|
|
| |
These pod changes were missed for
c0236afee0c5845d3823612c5cd34eccc4d29321, which also had a typo in its
commit message: It should have said that the previous max was 2**31 -
1.
|
|
|
|
|
|
|
|
| |
The ABOVE_31_BIT flags is a proper subset of the SUPER flags, so if the
latter is set, we don't have to bother setting the former. On the other
hand, there is no harm in doing so, these changes are all resolved at
compile time. The reason I'm changing them is that it is easier to
explain in the pod what is happening, in the next commit.
|
|
|
|
|
|
|
|
|
| |
These names have long caused me consternation, as they are named after
the internal ASCII-platform UTF-8 representation, which is not the same
for EBCDIC platforms, nor do they convey meaning to someone who isn't
currently steeped in the UTF-8 internals. I've added synonyms that are
platform-independent in meaning and make more sense to someone coming at
this cold. The old names are retained for back compat.
|
|
|
|
| |
whitespace-only changes
|
|
|
|
|
|
|
| |
The debugging variants of POPMARK() etc: use %IVdf rather than %d
to avoid compiler warnings when sizeof(IV) != sizeof(int);
also, make these macros trigger only under -Dsv rather than just -Ds
(-v is the verbose variant).
|
|
|
|
|
|
|
|
| |
use cmp_ok() instesd of ok() where apppriate and similar things to
get better diagnostucs when things fail (e.g. display what the bad value
was, rather than just letting you know it was bad).
Also, use diag() rather than 'print STDERR "# .....\n";'
|