summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* utf8.h, et.al.: Clean up some castsKarl Williamson2015-12-055-18/+18
| | | | | 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
* utf8.h: Combine ASCII and EBCDIC defines into oneKarl Williamson2015-12-052-4/+3
| | | | | 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
* utfebcdic.h: Use an internal macro to avoid repeatingKarl Williamson2015-12-051-15/+12
| | | | | This creates a macro that is used in portions of 2 other macros, thus removing repetition.
* utf8.h, utfebcdic.h: Fix-up UTF8_MAXBYTES_CASE defnKarl Williamson2015-12-052-18/+13
| | | | | | | | 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.
* amigaos4: use raise() instead of kill() on ourselvesAndy Broad2015-12-051-1/+14
| | | | | Using kill() on the same task that called kill() circumvents Perl's signal handlers, but raise() doesn't, so use that instead.
* hexfp: Use Perl_fp_class_nzero unconditionally.Jarkko Hietaniemi2015-12-041-6/+4
| | | | | Otherwise in platforms with Perl_fp_class_nzero there would be no return for the x != 0.0 case.
* hexfp: these should be tested only with uselongdouble.Jarkko Hietaniemi2015-12-041-1/+3
|
* Have more fallbacks for our signbit() emulation.Jarkko Hietaniemi2015-12-031-1/+15
| | | | | | | 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.
* [PATCH] Bump Locale-Codes from 3.36 to 3.37Sullivan Beck2015-12-0330-176/+206
| | | | Signed-off-by: Chris 'BinGOs' Williams <chris@bingosnet.co.uk>
* Update Unicode-Normalize to CPAN version 1.24Chris 'BinGOs' Williams2015-12-034-4/+7
| | | | | | | | | | | [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.
* Update PathTools to CPAN version 3.60Chris 'BinGOs' Williams2015-12-0312-12/+12
|
* perlxs.pod: clarify PROTOTYPES: behaviour.David Mitchell2015-12-031-1/+5
| | | | | | | The default is to disable rather than enable. Also mention the "Please specify prototyping behavior for Foo.xs" warning.
* threads.t: make stress test less stressyDavid Mitchell2015-12-031-1/+1
| | | | | Test 10 creates 100 threads that do 'require IO'. This can use a lot of memory and other resources. reduce it to 10.
* Undo blead customization of Text-ParseWords test scriptSteve Hay2015-12-033-130/+122
| | | | | | | | | | | | | | | | | 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.
* Add the -Wthread-safety also only for clang 3.6 (6.1) or later.Jarkko Hietaniemi2015-12-031-4/+4
| | | | (follow-up to bdc795f4, suggested by Aaron Crane)
* Config-Perl-V bump in Maintainers.plChris 'BinGOs' Williams2015-12-031-1/+1
|
* Module-CoreList bump in Maintainers.plChris 'BinGOs' Williams2015-12-031-1/+1
|
* fix the API description of SvLEN_set()David Mitchell2015-12-031-1/+1
| | | | | | | | | | 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
* Ensure 'q' works in debugger with RemotePort.Shlomi Fish2015-12-022-3/+24
| | | | | | Patch submitted by Shlomi Fish. For: RT #126735
* Add epigraph for 5.22.1-RC3Steve Hay2015-12-021-0/+19
|
* Perl 5.22.1-RC3 todaySteve Hay2015-12-021-0/+1
|
* Revert "Revert "Module::CoreList updates for 5.22.1""Steve Hay2015-12-023-0/+35
| | | | | | | 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.
* Complete some unfinished Module::CoreList work from commit 7c294235c2Steve Hay2015-12-022-1/+4
|
* Bump the TSA clang minimum to 3.6 (in Applese 6.1)Jarkko Hietaniemi2015-12-021-4/+6
| | | | Since it looks like the 3.5 (6.0) in OS X 9 didn't recognize the annotations.
* For TSA we want 4 or later clang, not just later.Jarkko Hietaniemi2015-12-021-1/+1
| | | | (Noticed by Aaron Crane.)
* More notes on OS X compiler versions.Jarkko Hietaniemi2015-12-021-8/+39
|
* /..\G/: use chars, not bytesDavid Mitchell2015-12-022-15/+32
| | | | | In something like /..\G/, the engine should start trying to match two chars before pos(). It was actually trying to match two bytes before.
* markstack_grow(): fix debugging stuffDavid Mitchell2015-12-021-2/+3
| | | | | | | | 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().
* rpeep(): silence compiler warningDavid Mitchell2015-12-021-3/+11
| | | | | | | | | | | | | | | | | 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.
* Configure: unbreak -S option now that -O is the defaultAaron Crane2015-12-021-1/+1
| | | | | | | | | | | | | | | 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.
* move Win32's $^X code to where all other OSes' $^X code livesDaniel Dragan2015-12-022-11/+8
| | | | | | | | | | | | | | | | | | | | | 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.
* Perl_set_caret_X gv_fetch with GV_ADD can't return NULLDaniel Dragan2015-12-021-66/+64
| | | | | The GV will be created if it doesn't exist. Remove the branch for smaller code size.
* Perl_magic_set(): remove unused var 's'David Mitchell2015-12-011-7/+8
| | | | | | | | 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.
* hexfp: signbit() works on NVs (nv), not on long doubles (fv).Jarkko Hietaniemi2015-12-011-1/+1
| | | | | | | | | | | | 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.
* op/rand.t: better test even spread of random numsDavid Mitchell2015-12-011-106/+50
| | | | | | | | | | | | | | | | | | | | | | | | 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.
* t/op/rand.t: modernise testsDavid Mitchell2015-11-301-9/+7
| | | | e.g. cmp_ok() rather than ok($x > 0), and give tests descriptions.
* remove flawed tests from t/op/rand.tDavid Mitchell2015-11-301-61/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 :-)
* Eliminate PerlIOMmap_close()David Mitchell2015-11-302-17/+1
| | | | | | This static function wasn't being used. For the justification, see http://nntp.perl.org/group/perl.perl5.porters/232954
* hexfp: printf %.13a 0.0Jarkko Hietaniemi2015-11-292-13/+30
|
* hexfp: printf %.13a 1.0Jarkko Hietaniemi2015-11-292-2/+5
|
* perldelta for deprecation of code points > IV_MAXKarl Williamson2015-11-281-0/+14
| | | | Commit 760c7c2f746ce3f3c3356b0a3efb017b6d0cb5b0 added this deprecation.
* hexfp: printf %a for negative zero.Jarkko Hietaniemi2015-11-282-2/+11
|
* utf8.c: White-space, comment typos onlyKarl Williamson2015-11-281-6/+6
|
* Deprecate Unicode code points above IV_MAXKarl Williamson2015-11-2811-30/+171
| | | | See https://rt.perl.org/Ticket/Display.html?id=115166
* perlapi: Account for EBCDIC extend UTF-8 rangeKarl Williamson2015-11-281-20/+41
| | | | | | | 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.
* utf8.h: Remove use of redundant flagsKarl Williamson2015-11-282-12/+22
| | | | | | | | 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.
* utf8.h: Add clearer #define synonymsKarl Williamson2015-11-282-34/+38
| | | | | | | | | 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.
* reformat the FOOMARK macros slightlyDavid Mitchell2015-11-281-5/+12
| | | | whitespace-only changes
* FOOMARK debugging macros: fix %d cast; only -DsvDavid Mitchell2015-11-281-8/+12
| | | | | | | 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).
* Benchmark.t: better diagnosticsDavid Mitchell2015-11-281-22/+22
| | | | | | | | 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";'