This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Karl Williamson [Mon, 19 Mar 2018 21:36:56 +0000 (15:36 -0600)]
locale.c: Fix memory leak
This was caused by doing some initialization work out-of-order. This
commit just moves some code to later in the function, revising some
comments to make sense after the move.
Todd Rinaldo [Mon, 19 Mar 2018 21:33:52 +0000 (16:33 -0500)]
Update File::Glob to 1.31 to account for changes in 5.27.10
Includes:
- C89 changes from Aaron Crane
- Unit test timing fixes
- Don't use loop: as a label to avoid struct loop confusion
Todd Rinaldo [Mon, 19 Mar 2018 20:35:27 +0000 (15:35 -0500)]
Upgrade Test-Harness from version 3.39 to 3.41
[DELTA]
3.42 19-03-2018
- Enable rulesfile.t to run in core
Karl Williamson [Sun, 18 Mar 2018 18:39:47 +0000 (12:39 -0600)]
Fix locale problems on mingw
Various symbols get exported (or not) by makedef.pl. The determination
of some of the new ones is fairly complex in perl.h, and unfortunately
in general the code logic to do so must be copied into makedef.pl (until
a volunteer fixes this). I thought I could avoid a bunch of this by
using the symbol ${^SAFE_LOCALES} which in fact was created so that
programs wouldn't have to know about this complexity.
The problem is that on Windows, miniperl is always compiled
single-thread and so locales are always safe, and so makedef.pl (which
is called by miniperl) got the wrong information. The solution,
unfortunately, is to reproduce the complexity in makedef.pl
Spotted by Daniel Dragan.
Karl Williamson [Sun, 18 Mar 2018 18:38:39 +0000 (12:38 -0600)]
perlapi: bytes_to_utf8(), from_utf8(): Add clarification
The caller is responsible for freeing the memory used by these functions
Chris 'BinGOs' Williams [Mon, 19 Mar 2018 11:08:13 +0000 (11:08 +0000)]
Update ExtUtils-MakeMaker to CPAN version 7.34
[DELTA]
7.34 Mon Mar 19 10:21:12 GMT 2018
No changes since v7.33_03
Todd Rinaldo [Sun, 18 Mar 2018 20:19:36 +0000 (15:19 -0500)]
Upgrade Test-Harness from version 3.39 to 3.41
[DELTA]
3.41 27-02-2018
- Released 3.40_01 without code modifications
3.40_01 23-07-2017
- Return handle for pipes and sockets #58 (Erik Huelsmann)
- TAP v13 plan allows trailing whitespace (Steffen Schwigon)
- prove: add a --statefile=<path> option to customize the .prove file
(Ævar Arnfjörð Bjarmason)
- Avoid non-deterministic source handling, make a SourceHandler tie an
error. (Michael Schwern, Leon Timmermans)
- Fix and simplify MSWin32 colorization (Roy Ivy III)
- Fix file source handler to accept single extensions option (Tomoki Aonuma)
- Spelling fixes (Brian Wightman)
Todd Rinaldo [Sun, 18 Mar 2018 22:08:27 +0000 (17:08 -0500)]
Mark CPAN changes for if/PathTools as irrelevant
There are no significant changes for these modules upstream. This change quiets
the tools that monitor for differences on CPAN.
Todd Rinaldo [Sun, 18 Mar 2018 22:08:21 +0000 (17:08 -0500)]
Upgrade Time::HiRes from version 1.9753 to 1.9757
[DELTA]
1.9577 [2018-03-15]
- fix win32 (and cygwin?) builds which have been broken since 1.9755:
problem was that gettimeofday() is a macro and needs to stay such
- regenerate ppport.h with Perl 5.26.1 (was previously generated with
5.25.6) and Devel::PPPort 3.35 (previously 3.36) -- this doesn't
change the ppport.h, though
1.9756 [2018-03-14]
- division by zero in new test tv_interval.t [rt.cpan.org #124775]:
made the test pass even if the difference is zero, but also
made it practically impossible to ever be zero by adding
a sub-second sleep.
- remove comments from inside qw [rt.cpan.org #124777],
only seemed to be caught by Perl 5.18.4
1.9755 [2018-03-14]
- adjust the error messages of tv_interval()
- the NV_1EX constants now cast to be NV so that
tv_interval() with long double builds does not
produce ugly results [rt.cpan.org #106456]
- add tests for tv_interval()
- centralize the mygettimeofday() logic
- make the mygettimeofday() a function instead of macro
- add the OS X 10.12+ clock_gettime() constants
CLOCK_MONOTONIC_RAW_APPROX CLOCK_UPTIME_RAW_APPROX
- regenerate the fallback files
1.9754 [2018-02-16]
- unify the gettimeofday() and time() forked code
that had near identical code paths for MacOS Classic
(which has two unusual features: unsigned time_t,
and a special tz struct member), and for non-MacOS Classic
- tv_interval should be implemented in XS
[rt.cpan.org #106456]
thanks to Sergey Aleynikov (suggested implementation simplified
by the above-mentioned MacOS Classic simplification)
Todd Rinaldo [Sun, 18 Mar 2018 22:08:15 +0000 (17:08 -0500)]
Upgrade Encode from version 2.96 to 2.97
Todd Rinaldo [Sun, 18 Mar 2018 22:08:09 +0000 (17:08 -0500)]
Upgrade Locale::Codes from version 3.55 to 3.56
Todd Rinaldo [Sun, 18 Mar 2018 22:08:04 +0000 (17:08 -0500)]
Upgrade Scalar::Util from version 1.49 to 1.50
[DELTA]
1.50 -- 2018-02-20 19:13:27
[CHANGES]
* Added head() and tail() functions (thanks preaction)
* Support binary and Unicode in symbol names for set_subname()
[BUGFIXES]
* Fix building with C++ and C89 compilers
* Fix uniq() test for old Test::More
* Fix example get_code_info for unnamed subs (RT#116962)
* Fixes for symbol names containing ' characters
* Don't leak SVs from sum0/product1 when called with zero args (RT#124017)
* Use sv_rvunweaken() in Scalar::Util::unweaken() (thanks ilmari)
* Misc. fixes for perl 5.6
Todd Rinaldo [Sun, 18 Mar 2018 22:07:59 +0000 (17:07 -0500)]
Upgrade Test-Simple from version 1.302122 to 1.302133
[DELTA]
1.302133 2018-03-11 12:48:37-07:00 America/Los_Angeles
- No changes since last trial
1.302132 2018-03-09 15:43:51-08:00 America/Los_Angeles (TRIAL RELEASE)
- Add method to validate facet data
- Add Test2::Event::V2 event class, and context helpers
- Improve how events handle facets
- Break out meta_facet_data
- Document and fix Facets2Legacy
- Fix nested and in_subtest to look at hub facets
- Fix event->related and trace with uuid
1.302131 2018-03-07 09:36:16-08:00 America/Los_Angeles (TRIAL RELEASE)
- Make sure event puts the uuid into the about facet
1.302130 2018-03-07 08:07:54-08:00 America/Los_Angeles
- No changes since last trial
1.302129 2018-03-06 13:43:22-08:00 America/Los_Angeles (TRIAL RELEASE)
- Make hubs tag events with a new facet
1.302128 2018-03-05 09:26:53-08:00 America/Los_Angeles
- No changes since the trial
1.302127 2018-03-02 12:43:56-08:00 America/Los_Angeles (TRIAL RELEASE)
- Fix missing UUID in Test::Builder subtests
1.302126 2018-03-01 23:15:52-08:00 America/Los_Angeles (TRIAL RELEASE)
- Add optional UUID tagging
1.302125 2018-02-21 23:10:39-08:00 America/Los_Angeles
- No changes since trial
1.302124 2018-02-13 22:02:48-08:00 America/Los_Angeles (TRIAL RELEASE)
- Fix a test to skip without threads
1.302123 2018-02-13 21:39:31-08:00 America/Los_Angeles (TRIAL RELEASE)
- Make it possible to disable IPC
Todd Rinaldo [Sun, 18 Mar 2018 22:07:45 +0000 (17:07 -0500)]
Upgrade Time::Piece from vesion 1.3203 to 1.3204
[DELTA]
1.3204 2018-02-19
- Fix compilation warnings.
Karl Williamson [Fri, 16 Mar 2018 20:11:52 +0000 (14:11 -0600)]
Silence compilter warning
See thread beginning at
http://nntp.perl.org/group/perl.perl5.porters/244215
Karl Williamson [Fri, 16 Mar 2018 19:57:00 +0000 (13:57 -0600)]
locale.c: Clarify warning message
When there are discrepancies in the locale and what Perl is expecting, a
warning is raised listing the problematic characters. For \n, and \t,
they should have been displayed as mnemonics, but a required backslash
to escape things had been omitted, so they were displayed literally, so
looked just like white space. Also, put any displayed blank in ' ' so
it won't look like the list is empty.
Karl Williamson [Fri, 16 Mar 2018 19:53:48 +0000 (13:53 -0600)]
locale.c: Handle and edge case
setlocale(LC_ALL, "LC_foo=bar; LC_baz=gah") is legal. Any categories
omitted in the string are set to "C". Prior to this commit the omitted
categories were unchanged
Karl Williamson [Thu, 15 Mar 2018 03:08:54 +0000 (21:08 -0600)]
Don't include interpreter variable unless used
This adds an #ifdef around this variable, so that it isn't defined
unless used.
Spotted by Daniel Dragan.
Karl Williamson [Wed, 14 Mar 2018 03:52:15 +0000 (21:52 -0600)]
Make Unicode data structures global
These structures are read-only, use const C strings, and are truly
global, so no need to have them be interpreter level. This saves
duplicating and freeing them as threads come and go.
In doing this, I noticed that not every one was properly being
copied/deallocated, so this fixes some potential unreported bugs, and
leaks.
Karl Williamson [Wed, 14 Mar 2018 14:39:59 +0000 (08:39 -0600)]
locale.c: Silence Win32 compiler warning
The return value is discarded here, and a few lines down calls this
function again, retaining its return value.
Karl Williamson [Tue, 13 Mar 2018 18:08:16 +0000 (12:08 -0600)]
locale.c: Add savepv() to setlocale() returns
The next call to setlocale can overwrite the returned value from the
current call, depending on platform. Therefore, one should save the
results. I forgot this in commit
39e69e777b8. Now fixing it.
I also audited locale.c to find any other instances. There were several
where setlocale() is called without saving, and that return is passed to
a function. It may work now, but it's dangerous to rely on the function
not getting changed in such a way as to do its own setlocale, expecting
the input parameter to be unchanged. So save the returns from these as
well, as a precaution.
Karl Williamson [Mon, 12 Mar 2018 17:26:17 +0000 (11:26 -0600)]
perl_langinfo.h: Fix typo in comment
Karl Williamson [Mon, 12 Mar 2018 18:42:23 +0000 (12:42 -0600)]
perllocale: Update, clarify
Karl Williamson [Mon, 12 Mar 2018 18:29:42 +0000 (12:29 -0600)]
perlapi/Perl_setlocale: Clarify
Karl Williamson [Mon, 12 Mar 2018 18:24:04 +0000 (12:24 -0600)]
Fix comments/pod for LC_NUMERIC not always C
In recent Perl versions, the underlying locale for LC_NUMERIC has been
kept in C because XS code is expecting a dot radix character. But if
the LC_NUMERIC locale has a dot, that is unnecessary. (There is also
the thousands grouping separator which for safety we verify is empty.)
Thus 5.27 doesn't always keep the underlying locale in C; it does so
only if necessary.
This commit updates various comments and pods to reflect this change.
Karl Williamson [Mon, 12 Mar 2018 17:18:11 +0000 (11:18 -0600)]
t/lib/croak/regcomp: Fix up for EBCDIC
This skips the current ASCII-centric test on EBCDIC platforms, and adds
an equivalent test for just those.
Karl Williamson [Wed, 7 Mar 2018 17:20:53 +0000 (10:20 -0700)]
Don't use duplocale() unless is present
Prior to this patch, the code assumed that if you have the other, more
significant, POSIX 2008 functions available, that duplocale was present
and correctly functioning too.
However, we found that there have been bugs in it, so that a hints file
or Configure probe might want to exclude just it.
Karl Williamson [Sun, 11 Mar 2018 20:48:38 +0000 (14:48 -0600)]
locale.c: Reduce too-large indent
Karl Williamson [Sun, 11 Mar 2018 20:47:58 +0000 (14:47 -0600)]
POSIX.pod: Fix nit
Karl Williamson [Sun, 11 Mar 2018 20:39:04 +0000 (14:39 -0600)]
perl.h: White-space, comment changes only
Karl Williamson [Fri, 9 Mar 2018 19:53:13 +0000 (12:53 -0700)]
Work around Microsoft threaded locale bug for localeconv()
Prior to Visual Studio 2015, the localeconv() function only looks at the
global locale, not the per-thread one it should. This works around this
by creating critical sections, switching to the global locale to call
localeconv(), then switching back. For the most common usage, it avoids
the switch by parsing a string it generates that should contain the
desired substring. This leaves the switch required for retrieving the
floating point grouping separator and the currency string, plus
POSIX::localeconv(). The first two could be avoided by extra code as
detailed in the pod for switch_to_global_locale(); patches welcome!
Karl Williamson [Fri, 9 Mar 2018 19:14:43 +0000 (12:14 -0700)]
perl.h: Move macros to earlier in the file
There should be no other differences
Karl Williamson [Fri, 9 Mar 2018 04:57:52 +0000 (21:57 -0700)]
perl.h: Refactor some #defines
These put the defines dealing with locale critical sections in one
place, more logically set out.
Karl Williamson [Fri, 9 Mar 2018 18:25:58 +0000 (11:25 -0700)]
Resync duplicated code in perl.h makedef.pl
These had gotten out of sync
Karl Williamson [Fri, 9 Mar 2018 19:06:30 +0000 (12:06 -0700)]
Don't create locale object unless threaded
PL_C_locale_obj is now only created on threaded builds on systems with
POSIX 2008. On unthreaded builds, we really should continue to use the
old tried and true library calls.
Karl Williamson [Thu, 8 Mar 2018 21:43:23 +0000 (14:43 -0700)]
perl.h: Move some locale definitions around
For clarity, this places these locale definitions that depend solely on
having locales or not earlier, and by themselves, so don't get mixed up
with the definitions that have more complicated provenances.
In moving them, I also changed white space to accepted indentations,
and vertical alignment.
Karl Williamson [Thu, 8 Mar 2018 21:32:28 +0000 (14:32 -0700)]
perl.h: Rmv dummy definitions
These macros are core-only, so should generate a compiler error if used
outside of core, instead of compiling as no-ops.
Karl Williamson [Fri, 9 Mar 2018 18:27:28 +0000 (11:27 -0700)]
Don't create unneeded mutexes
These mutexes are needed only for unsafe threaded-locale operations.
Karl Williamson [Thu, 8 Mar 2018 20:00:40 +0000 (13:00 -0700)]
Langinfo: Implement CODESET on Windows
This applies to I18N::Langinfo, and the API function Perl_langinfo.
Windows doesn't have nl_langinfo, so an emulation is used. It turns out
that it is easy to emulate the behavior for the CODESET item on Windows,
as that vendor has kept things consistent.
Karl Williamson [Thu, 8 Mar 2018 05:48:55 +0000 (22:48 -0700)]
PATCH: [perl #127288] I18N::Langinfo sets UTF-8 bit
This commit will turn UTF-8 on in the returned SV if its string is legal
UTF-8 containing something besides ASCII, and the locale is a UTF-8 one.
It is based on the patch included in the ticket, but is generalized to
handle edge cases.
Karl Williamson [Wed, 7 Mar 2018 19:04:00 +0000 (12:04 -0700)]
I18N::Langinfo: fix pod nits
Removing trailing space; fix typo, clarify
Karl Williamson [Wed, 7 Mar 2018 19:11:26 +0000 (12:11 -0700)]
perlapi: Clarifications to Perl_langinfo
Karl Williamson [Thu, 8 Mar 2018 17:59:53 +0000 (10:59 -0700)]
Actually make I18N::Langinfo avail on all platforms
I thought I had done this earlier, but testing on Windows demonstrated
that I hadn't.
While at it, move the details in the docs for Perl_langinfo to the
module's pod.
This doesn't follow the paradigm for putting the Configure stuff in all
the related configure files, but I saw no point to doing so. If you are
reading this because I was wrong, feel free to ticket it or fix it.
Karl Williamson [Thu, 8 Mar 2018 17:51:09 +0000 (10:51 -0700)]
Change enum names for new locale function parameters
Earlier in the 5.27 series, I introduced Perl_langinfo which calls
the system nl_langinfo() on platforms that have it, and emulates it
otherwise. For each enum parameter 'foo', I made an equivalent
parameter PERL_foo. I did this so that no conflicts would arise if
any 'foo' were negative. This is less than ideal to have to rename the
parameters.
In looking further, I realized that perl has always excluded the
possibility of negative values for 'foo', so my precaution is
unnecessary. And before this new code is released is the time to fix up
the interface.
Karl Williamson [Wed, 7 Mar 2018 19:08:01 +0000 (12:08 -0700)]
APItest/t/locale.t: Store hash return for readability
Karl Williamson [Wed, 7 Mar 2018 19:05:46 +0000 (12:05 -0700)]
APItest/t/locale.t: Sort some tests
These now appear in the file in their logical order
Father Chrysostomos [Sun, 11 Mar 2018 22:28:27 +0000 (15:28 -0700)]
Carp: Use ${^LAST_FH} if available
Using ${^LAST_FH}, available in 5.18, in faster than using eval/die
to get the last file handle.
Also, the eval/die method is not going to produce anything if $. is 0
so skip that entire block if $. is false (by removing the defined check).
(Not significant enough for perldelta. carp("zonk") gets faster by
only 5% or so.)
Father Chrysostomos [Sun, 11 Mar 2018 21:25:14 +0000 (14:25 -0700)]
Let cmp_version be run from the top level
I’m used to typing ‘./perl -Ilib t/porting/cmp_version.t’; it’s annoy-
ing to have to add ‘-I.’.
(Obviously no perldelta entry necessary.)
Father Chrysostomos [Sun, 11 Mar 2018 21:23:42 +0000 (14:23 -0700)]
warnings.pm: sprintf is faster than concat
I benchmarked this line alone in a one-liner and found the sprintf
variant to be roughly 10% faster than the concat version. It’s also
more readable (and maintainable).
(Not significant enough to warrant a perldelta entry.)
Tony Cook [Sun, 11 Mar 2018 23:53:05 +0000 (10:53 +1100)]
(perl #127743) re-work for debugging builds with MSVC
My original change here broke debugging builds, since tmp was no longer
available for the TRACEME.
Karl Williamson [Sun, 11 Mar 2018 19:43:31 +0000 (13:43 -0600)]
t/lib/croak/regcomp: Another attempt to fix test failure
Commit
e10187a7905cc53ffe233c0f091b3a7b3a6da4a9 failed to entirely fix
the failure, and this expands on that.
I had forgotten the pitfalls of using literal non-ASCIIs in tests
Karl Williamson [Wed, 27 Dec 2017 00:20:26 +0000 (17:20 -0700)]
perlrequick: Nits, clarifications
Karl Williamson [Sat, 10 Mar 2018 04:31:16 +0000 (21:31 -0700)]
regcomp.c: Quiet false warning
One compiler is complaining that this variable may be used
uninitialized. It's not true, but set it to NULL anyway.
Karl Williamson [Fri, 9 Mar 2018 23:05:39 +0000 (16:05 -0700)]
t/lib/croak/regcomp: Hopefully fix test failure
This is failing on H. Merijn Brand's machines. I can't reproduce it
there, but it makes sense that it has something to do with printing a
non-ASCII character, given that it's only failing under a particular
locale. So try this simple solution.
Craig A. Berry [Thu, 8 Mar 2018 17:59:49 +0000 (11:59 -0600)]
Avoid goto into glob test failure on VMS.
glob() does not return a list on VMS, so joining its result fails
expectations for this test.
Karl Williamson [Thu, 8 Mar 2018 20:10:30 +0000 (13:10 -0700)]
locale.c: Add missing STATIC
Spotted by H. Merijn Brand
Yves Orton [Thu, 8 Mar 2018 15:26:48 +0000 (16:26 +0100)]
remove empty file
Yves Orton [Thu, 8 Mar 2018 15:14:38 +0000 (16:14 +0100)]
add an empty file (to be removed next commit)
Craig A. Berry [Thu, 8 Mar 2018 13:50:33 +0000 (07:50 -0600)]
Don't run stack_after_err.t on VMS.
It uses IPC::Open3, which uses fork(), which doesn't exist.
David Mitchell [Wed, 7 Mar 2018 09:27:26 +0000 (09:27 +0000)]
fix line numbers in multi-line s///
my commit v5.25.6-230-g6432a58, "Eliminate SVrepl_EVAL and SvEVALED()",
introduced a regression: __LINE__ no longer took account of multiple
lines in the s///.
Now fixed.
Spotted by Abigail.
Tony Cook [Tue, 20 Feb 2018 05:18:05 +0000 (16:18 +1100)]
(perl #132870) workaround VC2017 compiler bug
For non-debug builds MSVC could read small integers like 1 as -255.
It's possible it was confused by the AIX compiler bug workaround.
This change needs no further tests, the integer.t fails without
this workaround.
Daniel Dragan [Thu, 1 Mar 2018 21:41:59 +0000 (16:41 -0500)]
rmv/de-dup static const char array "strings"
MSVC due to a bug doesn't merge identicals between .o'es or discard these
vars and their contents.
MEM_WRAP_CHECK_2 has never been used outside of core according to cpan grep
MEM_WRAP_CHECK_2 was removed on the "have PERL_MALLOC_WRAP" branch in
commit
fabdb6c0879 "pre-likely cleanup" without explination, probably bc
it was unused. But MEM_WRAP_CHECK_2 was still left on the "no
PERL_MALLOC_WRAP" branch, so remove it from the "no" side for tidyness
since it was a mistake to leave it there if it was removed from the "yes"
side of the #ifdef.
Add MEM_WRAP_CHECK_s API, letter "s" means argument is string or static.
This lets us get rid of the "%s" argument passed to Perl_croak_nocontext at
a couple call sites since we fully control the next and only argument and
its guaranteed to be a string literal. This allows merging of 2
"Out of memory during array extend" c strings by linker now.
Also change the 2 op.h messages into macros which become string literals
at their call sites instead of "read char * from a global char **" which
was going on before.
VC 2003 32b perl527.dll section size before
.text name
DE503 virtual size
.rdata name
4B621 virtual size
after
.text name
DE503 virtual size
.rdata name
4B5D1 virtual size
Daniel Dragan [Tue, 6 Mar 2018 22:27:04 +0000 (17:27 -0500)]
File::Glob bsd_glob.c dont use "loop" as a goto label
Using loop as a label conflicts with Perl's "struct loop" and "LOOP" types
and Visual C 2003 in C++ mode (but not the default C build) doesn't like
that. The loop label is from 5.27.1 commit
0db967b2e6
"[perl #131211] fixup File::Glob degenerate matching"
bsd_glob.c(995) : error C2226: syntax error : unexpected type 'loop'
Karl Williamson [Tue, 6 Mar 2018 19:32:58 +0000 (12:32 -0700)]
PATCH: [perl #132163] regex assertion failure
The original test case in this ticket has already been fixed; but
modifying it slightly showed some other issues that are now fixed by
this commit.
The deepest problem is that this code in some paths creates a string to
parse instead of the original pattern. And in some cases, it's not even
the original pattern, but something that had already been created to
parse instead of the pattern. Any messages that are raised should be
output in terms of the original. regcomp.c already has the
infrastructure to handle the case where a message is raised during
parsing of a constructed string, but it can't handle a 2nd level
constructed string. That was what led to the segfault in the original
ticket. Unrelated fixes caused the original ticket to no longer be
applicable, and so this fix adds tests for things still would cause a
problem.
The method chosen here is to just make sure that the string constructed
here to parse is error free, so no messages will be raised. Instead it
does the error checking as it constructs the string, so if what is being
parsed to construct a new string is an already constructed one, the
existing infrastructure handles outputting the message relative to the
original pattern. Since what is being parsed is a series of hex
numbers, it's easy to find out what their values are: just accumulate a
total, shifting 4 bits each time through the loop. A side benefit is
that this fixes some unreported bugs dealing with an input code point
that overflows. Prior to this patch, it would error ungracefully.
David Mitchell [Tue, 6 Mar 2018 15:50:21 +0000 (15:50 +0000)]
eliminate _REGEXP_COMMON macro from regexp.h
It is used in only one place now, so its better to expand it out rather
than having a complex struct's fields defined using a huge macro.
No functional changes, but I did take the opportunity to tidy up the
formatting of the code comments for each struct field
David Mitchell [Tue, 6 Mar 2018 15:24:38 +0000 (15:24 +0000)]
op_dump(): display op_next to self as [SELF]
Normally op_next (and similar) fields of an op are displayed with the
address and basic details of the op they point to, e.g.
5 gvsv PADOP(0x1b7ac48) ===> 5 [sassign 0x1b7ab80]
This commit enhances that so that if the field points back to the op
containing the field (as is often the case during the early phases of
building an op tree), instead display it as just:
5 gvsv PADOP(0x1b7ac48) ===> [SELF]
Karl Williamson [Tue, 6 Mar 2018 15:18:26 +0000 (08:18 -0700)]
inline.h: #define some constants for EBCDIC
I thought these weren't needed on EBCDIC builds, but it turns out there
is occasion for them.
David Mitchell [Tue, 6 Mar 2018 15:08:23 +0000 (15:08 +0000)]
pp_repeat: avoid calling GIMME_V twice
assign its value to a local var instead. GIMME_V can have a considerable
overhead when called in unknown context.
I audited the rest of the pp*.c files, but didn't find any similar
multiple calls.
H.Merijn Brand [Tue, 6 Mar 2018 12:09:25 +0000 (13:09 +0100)]
Tux' smoke reports moved
due to re-allocation of available hosts, Tux has now hosted the smoke
reports somewhere else
Karl Williamson [Tue, 6 Mar 2018 06:37:55 +0000 (23:37 -0700)]
t/run/locale.t: Fix skip count; uninit warning
Spotted by Tony Cook
Tony Cook [Tue, 6 Mar 2018 04:39:47 +0000 (15:39 +1100)]
Tony Cook [Thu, 1 Mar 2018 04:42:56 +0000 (15:42 +1100)]
(perl #132925) don't use $0 to get the name of mk_invlists.pl
Other regen scripts simply embed the name as a literal, using $0
means that the output varies depending on the path used to call
regen/mk_invlists.pl.
Tony Cook [Thu, 1 Mar 2018 04:26:22 +0000 (15:26 +1100)]
(perl #132925) correct path handling in mktables
the lexical my $file inside the loop masked the for loop $file,
wasting the work done to canonicalize the path names.
The grep on length is required since splitdir() can return empty
strings.
Karl Williamson [Tue, 6 Mar 2018 00:17:38 +0000 (17:17 -0700)]
Revert "charclasslists.h: script enums visible to CORE,EXT"
This reverts commit
fea79782ed31ac4faa71eb6193faff54b4bbe249.
This bloats perl, and is not now necessary for 5.28.
Karl Williamson [Mon, 5 Mar 2018 18:16:15 +0000 (11:16 -0700)]
EBCDIC conditional compilation fixes
The recent changes fixed by this commit neglected to take into account
EBCDIC differences.
Mostly, the algorithms apply only to ASCII platforms, so the EBCDIC is
ifdef'd out. In a couple cases, the algorithm mostly applies, so the
scope of the ifdefs is smaller.
Karl Williamson [Mon, 5 Mar 2018 18:12:14 +0000 (11:12 -0700)]
regexec.c: White-space only
Properly indent preprocessor directives
Karl Williamson [Mon, 5 Mar 2018 18:08:58 +0000 (11:08 -0700)]
inline.h: White-space only
Properly indent preprocessor directives
Father Chrysostomos [Mon, 5 Mar 2018 17:55:34 +0000 (09:55 -0800)]
perldiag: Rewrap an entry for better splain output
The splain utility (aka diagnostics.pm) blindly strips out pod formatting
without rewrapping the text (I think rewrapping would be overkill). This
means that formatting like ‘L<Note [5] in
perlrecharclass|perlrecharclass/[5]>’ turns into a simple ‘Note [5] in
perlrecharclass’, which can mess up the indentation.
Rewrap the entry to compensate, plus a few other tweaks to improve
the appearance of the right margin.
Father Chrysostomos [Mon, 5 Mar 2018 17:35:21 +0000 (09:35 -0800)]
More AUTHORS sorting
Father Chrysostomos [Mon, 5 Mar 2018 16:58:09 +0000 (08:58 -0800)]
AUTHORS: sorting; consistent indent
Father Chrysostomos [Mon, 5 Mar 2018 16:46:41 +0000 (08:46 -0800)]
Increase ExtUtils::ParseXS(::*) version to 3.39
Father Chrysostomos [Mon, 5 Mar 2018 16:39:36 +0000 (08:39 -0800)]
Add Shoichi Kaji to AUTHORS
Shoichi Kaji [Mon, 5 Mar 2018 14:25:49 +0000 (23:25 +0900)]
RT #132935: correctly check VERSIONs in ExtUtils::ParseXS
The following version check does not work correctly:
BEGIN { $VERSION = '3.38' }
use ExtUtils::ParseXS::Constants $VERSION;
The reason is that we must use version "literals",
not "variables" in `use Module VERSION`.
For the sake of ease of maintenance,
we use "require" and "->VERSION", instead of "use" here.
Father Chrysostomos [Mon, 5 Mar 2018 06:05:46 +0000 (22:05 -0800)]
perldiag typo
Aaron Crane [Mon, 5 Mar 2018 09:22:46 +0000 (09:22 +0000)]
RT #132834: prevent duplicate Config.pm vars
Commit
6c2ae6421675ba5ff81dd43f9167136f02dfe9d9 introduced variables whose
need was forced by configpm (for compatibility with older software), but
incorrectly added those variables to the generated Config_heavy.pl even when
they were already in use.
The resulting duplicate variables are clearly wrong, and in addition they
broke ExtUtils::InferConfig.
Karl Williamson [Sun, 4 Mar 2018 19:51:25 +0000 (12:51 -0700)]
loc_tools.pl: Properly exclude iffy locales
This code (fragiley) uses the wording of a warning message to determine
if a locale has issues or not. Commit
578a6a873a320fe64743b060dbd467f1865d205c updated the message this is
looking for, but failed to update this file correspondingly.
Karl Williamson [Sun, 4 Mar 2018 17:57:16 +0000 (10:57 -0700)]
perlapi: utf8_to_uvuni_buf() Add clarification
Karl Williamson [Sun, 4 Mar 2018 17:47:08 +0000 (10:47 -0700)]
t/run/locale.t: Add, revise tests
This enhances the test added in
bee74f4b9818f0ca72926dd6b4dfdbc6b75c59ef
so that it is doing a valid setlocale, and adds a similar test for doing
an invalid one.
Karl Williamson [Sun, 4 Mar 2018 17:45:05 +0000 (10:45 -0700)]
t/loc_tools.pl: Add fcn to return valid locale cats
This new function will return the locale categories known to this
platform.
Karl Williamson [Sun, 4 Mar 2018 17:43:03 +0000 (10:43 -0700)]
t/run/locale.t: Update skip count
This should have been updated by
bee74f4b9818f0ca72926dd6b4dfdbc6b75c59ef.
Karl Williamson [Sun, 4 Mar 2018 02:21:03 +0000 (19:21 -0700)]
locale.c: Fix bug in parsing a locale
This was not handling the case where there is a semi-colon separated
list of individual locales, except the last one had no trailing
semi-colon.
Thanks to Sergey Aleynikov for finding this
Karl Williamson [Sun, 4 Mar 2018 02:17:43 +0000 (19:17 -0700)]
locale.c: Check return code
In cases like these, we should give up if the called function fails.
Karl Williamson [Sun, 4 Mar 2018 02:15:07 +0000 (19:15 -0700)]
locale.c: Replace an 'if' by an assert
This should be true if we get to here.
Karl Williamson [Sun, 4 Mar 2018 01:56:25 +0000 (18:56 -0700)]
locale.c: Increase debug buffer size
A case was found where this was too small
Karl Williamson [Sun, 4 Mar 2018 01:54:26 +0000 (18:54 -0700)]
locale.c: Rmv spurious Safefree
I misread the documentation, and Perl_form doesn't need its return value
freed; it's already declared to be temporary, so if this code actually
got executed, there'd be a wrong pool panic
Karl Williamson [Sun, 4 Mar 2018 01:52:07 +0000 (18:52 -0700)]
locale.c: Remove redundant SAVE_ERRNO
The errnos were already saved just above
Karl Williamson [Sun, 4 Mar 2018 00:27:48 +0000 (17:27 -0700)]
perlguts: Clarify an example.
Karl Williamson [Fri, 2 Mar 2018 19:13:55 +0000 (12:13 -0700)]
Reword warning for deviations from UTF-8 locales
Some locales are UTF-8, but not exactly what Perl is expecting. Revise
the message raised in this circumstance.
Originally I thought these were violations of Unicode, but based on
feedback from Craig Berry, I came to realize that these are legitimate
interpretations of the Unicode standard. But perl persists with its own
interpretation that differs from these, hence the warning.
Karl Williamson [Fri, 2 Mar 2018 19:30:09 +0000 (12:30 -0700)]
Bump version of POSIX.pm to 1.83; warnings to 1.42
These were made using the old version number, and the error was not
caught, because of the lateness in getting 5.27.9 tagged
Father Chrysostomos [Fri, 2 Mar 2018 18:52:45 +0000 (10:52 -0800)]
perldelta typo