[Perl/perl5] 9cbc12: Don't try to use POSIX 2008 locale API on FreeBSD

2023-11-12 Thread Karl Williamson via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 9cbc12c368981c56d4d8e40cc9417ac26bec2c35
  
https://github.com/Perl/perl5/commit/9cbc12c368981c56d4d8e40cc9417ac26bec2c35
  Author: Karl Williamson 
  Date:   2023-11-12 (Sun, 12 Nov 2023)

  Changed paths:
M hints/freebsd.sh

  Log Message:
  ---
  Don't try to use POSIX 2008 locale API on FreeBSD

This is because of
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=265950




[Perl/perl5] 96983b: BlackBox dont use rare scripts

2023-11-12 Thread Karl Williamson via perl5-changes
  Branch: refs/heads/smoke-me/khw-env
  Home:   https://github.com/Perl/perl5
  Commit: 96983bca53fc4d6db480d8cebdeb130353dab767
  
https://github.com/Perl/perl5/commit/96983bca53fc4d6db480d8cebdeb130353dab767
  Author: Karl Williamson 
  Date:   2023-11-12 (Sun, 12 Nov 2023)

  Changed paths:
M cpan/Pod-Simple/lib/Pod/Simple/BlackBox.pm

  Log Message:
  ---
  BlackBox dont use rare scripts


  Commit: 732c21749091b082938447dcd987119130e92d16
  
https://github.com/Perl/perl5/commit/732c21749091b082938447dcd987119130e92d16
  Author: Karl Williamson 
  Date:   2023-11-12 (Sun, 12 Nov 2023)

  Changed paths:
M t/harness

  Log Message:
  ---
  XXX t/harness temp tweaks


  Commit: 7c693ec48ad1ca92ec31234c86a651a1c6ff61b1
  
https://github.com/Perl/perl5/commit/7c693ec48ad1ca92ec31234c86a651a1c6ff61b1
  Author: Karl Williamson 
  Date:   2023-11-12 (Sun, 12 Nov 2023)

  Changed paths:
M t/harness

  Log Message:
  ---
  XXX skip croak.t under sanitizer


  Commit: 5134d59cee1292651f0413b98b28b7c9218e397b
  
https://github.com/Perl/perl5/commit/5134d59cee1292651f0413b98b28b7c9218e397b
  Author: Karl Williamson 
  Date:   2023-11-12 (Sun, 12 Nov 2023)

  Changed paths:
M t/porting/bincompat.t

  Log Message:
  ---
  skip bincompat.t


  Commit: 7ce0aa78e231ff39c02002b00119a35858f9ee51
  
https://github.com/Perl/perl5/commit/7ce0aa78e231ff39c02002b00119a35858f9ee51
  Author: Karl Williamson 
  Date:   2023-11-12 (Sun, 12 Nov 2023)

  Changed paths:
M t/TEST

  Log Message:
  ---
  XXX skip cpan testing


  Commit: efac274cf509e822794f0bd127af5f2fd7f8bdc7
  
https://github.com/Perl/perl5/commit/efac274cf509e822794f0bd127af5f2fd7f8bdc7
  Author: Karl Williamson 
  Date:   2023-11-12 (Sun, 12 Nov 2023)

  Changed paths:
M dist/Tie-File/t/29a_upcopy.t

  Log Message:
  ---
  XXX temp: dist/Tie-File/t/29a_upcopy.t: Up alarm


  Commit: b48c03c604950c653919a7264672078471a13df8
  
https://github.com/Perl/perl5/commit/b48c03c604950c653919a7264672078471a13df8
  Author: Karl Williamson 
  Date:   2023-11-12 (Sun, 12 Nov 2023)

  Changed paths:
M MANIFEST
M charclass_invlists.h
M lib/unicore/mktables
M lib/unicore/uni_keywords.pl
M regcharclass.h
A t/re/uniprops11.t
A t/re/uniprops12.t
A t/re/uniprops13.t
A t/re/uniprops14.t
A t/re/uniprops15.t
A t/re/uniprops16.t
A t/re/uniprops17.t
A t/re/uniprops18.t
A t/re/uniprops19.t
A t/re/uniprops20.t
A t/re/uniprops21.t
A t/re/uniprops22.t
A t/re/uniprops23.t
A t/re/uniprops24.t
M uni_keywords.h

  Log Message:
  ---
  uniprops 24


  Commit: 6855061c6131a8c9eb9e0fd6f49e02c3a0cfe2a9
  
https://github.com/Perl/perl5/commit/6855061c6131a8c9eb9e0fd6f49e02c3a0cfe2a9
  Author: Karl Williamson 
  Date:   2023-11-12 (Sun, 12 Nov 2023)

  Changed paths:
M MANIFEST
A t/uni/idstart.pl
A t/uni/idstart00.t
A t/uni/idstart01.t
A t/uni/idstart02.t
A t/uni/idstart03.t
A t/uni/idstart04.t
A t/uni/idstart05.t
A t/uni/idstart06.t
A t/uni/idstart07.t
A t/uni/idstart08.t
A t/uni/idstart09.t
A t/uni/idstart10.t
A t/uni/idstart11.t
A t/uni/idstart12.t
A t/uni/idstart13.t
A t/uni/idstart14.t
A t/uni/idstart15.t
A t/uni/idstart16.t
A t/uni/idstart17.t
A t/uni/idstart18.t
A t/uni/idstart19.t
A t/uni/idstart20.t
A t/uni/idstart21.t
A t/uni/idstart22.t
A t/uni/idstart23.t
M t/uni/variables.t

  Log Message:
  ---
  Split t/uni/variables.t into multiple tests

These can be done in parallel; otherwise this is often the test that
finishes last, holding up the test suite completion.


  Commit: 654f36960e2d0270b69b1345d24e935ed1bb9603
  
https://github.com/Perl/perl5/commit/654f36960e2d0270b69b1345d24e935ed1bb9603
  Author: Karl Williamson 
  Date:   2023-11-12 (Sun, 12 Nov 2023)

  Changed paths:
M t/test.pl

  Log Message:
  ---
  XXX test.pl: dont unlink temps


  Commit: 382deb540de9c5192232671adde71fde1d89be26
  
https://github.com/Perl/perl5/commit/382deb540de9c5192232671adde71fde1d89be26
  Author: Karl Williamson 
  Date:   2023-11-12 (Sun, 12 Nov 2023)

  Changed paths:
M t/test.pl

  Log Message:
  ---
  Revert "XXX test.pl: dont unlink temps"

This reverts commit 1579ce0dbce549cb594214ba27d4e2fa389f891b.


  Commit: 7bb3648d283368d1a439ebe67b81791a0d4d665d
  
https://github.com/Perl/perl5/commit/7bb3648d283368d1a439ebe67b81791a0d4d665d
  Author: Karl Williamson 
  Date:   2023-11-12 (Sun, 12 Nov 2023)

  Changed paths:
M t/run/locale.t

  Log Message:
  ---
  run/locale.t: more debug


  Commit: e6982e4df6e7e37b11fe6b0fff4b54f72e10151c
  
https://github.com/Perl/perl5/commit/e6982e4df6e7e37b11fe6b0fff4b54f72e10151c
  Author: Karl Williamson 
  Date:   2023-11-12 (Sun, 12 Nov 2023)

  Changed paths:
M t/run/locale.t

  Log Message:
  ---

[Perl/perl5] e97a5e: globvar.t: use nm -P for portability

2023-11-12 Thread Tony Cook via perl5-changes
  Branch: refs/heads/smoke-me/tonyc/21623-globvar
  Home:   https://github.com/Perl/perl5
  Commit: e97a5ef73745474e04176dd3547a49c34908261d
  
https://github.com/Perl/perl5/commit/e97a5ef73745474e04176dd3547a49c34908261d
  Author: Tony Cook 
  Date:   2023-11-13 (Mon, 13 Nov 2023)

  Changed paths:
M t/porting/globvar.t

  Log Message:
  ---
  globvar.t: use nm -P for portability

POSIX specifies well defined output for nm -P

This will hopefully run this test on more platforms, including old AIX,
for which nm produces a different output from what the test expected.

Part of #21623


  Commit: f96b74ebabf88cf20538f8f2b4c35bbb43fdd77d
  
https://github.com/Perl/perl5/commit/f96b74ebabf88cf20538f8f2b4c35bbb43fdd77d
  Author: Tony Cook 
  Date:   2023-11-13 (Mon, 13 Nov 2023)

  Changed paths:
M t/porting/globvar.t

  Log Message:
  ---
  globvar.t: allow duplicate definitions of symbols

nm on AIX can list both local and global definitions for the same
variable, which meant the parsing would delete the first instance
from %exported, but then add the second to %unexported, failing the
test.

This didn't fail on AIX 5 because the default nm output didn't
match what the code expected when checking for PL_Yes, and so
the entire test script skipped.

Fixes #21623


Compare: https://github.com/Perl/perl5/compare/e97a5ef73745%5E...f96b74ebabf8


[Perl/perl5] 1ae36e: locale.c: Convert to conditional ? : operator

2023-11-12 Thread Karl Williamson via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 1ae36e9bbaa155adcc9230c5e4232b276a2a33fb
  
https://github.com/Perl/perl5/commit/1ae36e9bbaa155adcc9230c5e4232b276a2a33fb
  Author: Karl Williamson 
  Date:   2023-11-12 (Sun, 12 Nov 2023)

  Changed paths:
M locale.c

  Log Message:
  ---
  locale.c: Convert to conditional ? : operator

I think this makes it less clumsy.


  Commit: 523eea4765a728d47445079c80c774a5b3902576
  
https://github.com/Perl/perl5/commit/523eea4765a728d47445079c80c774a5b3902576
  Author: Karl Williamson 
  Date:   2023-11-12 (Sun, 12 Nov 2023)

  Changed paths:
M locale.c

  Log Message:
  ---
  locale.c: Rename variable

This was shadowing an outer variable, and conflating two things.  We are
looking for the UTF8ness of some strings in a locale to try to divine if
the locale itself is a UTF-8 one or not.  But we're doing this in the
context of trying to find the CODESET of the locale, like 8859-1 or
UTF-8..  And the utf8ness of the CODESET name is always going to be an
ASCII string.  Thus there are two types of utf8ness being looked at
here, and the names of the variables for each should be distinct.


  Commit: d8fc44bc3477dad1dbd623be1e193e8a2a70401f
  
https://github.com/Perl/perl5/commit/d8fc44bc3477dad1dbd623be1e193e8a2a70401f
  Author: Karl Williamson 
  Date:   2023-11-12 (Sun, 12 Nov 2023)

  Changed paths:
M locale.c

  Log Message:
  ---
  locale.c: Avoid some mallocs

By reusing this buffer, we don't have to realloc unless the next thing
to store in it is bigger than the first.  The order of calling already
has abbreviations (hence shorter) coming after their full names.


  Commit: 868f26346d64105799b6828a6bd136ba01464cdc
  
https://github.com/Perl/perl5/commit/868f26346d64105799b6828a6bd136ba01464cdc
  Author: Karl Williamson 
  Date:   2023-11-12 (Sun, 12 Nov 2023)

  Changed paths:
M locale.c

  Log Message:
  ---
  locale.c: Remove potential infinite recursive call

In Configurations where this #ifdef'd code is compiled, we recursively
call my_langinfo().  Prior to this commit, the call asked for the
UTFness of the returned string.  Depending on the particular values
involved, that could lead to this same code being executed to determine
that UTF8ness of the locale.  This would have proceeded ad infinitum
except a previous commit had created flags so as to skip any call that
would recurse infinitely.  But that can lead to erroneous results,
because when skipped, we may not know what the answer is.

This commit avoids all that by not asking the recursed call to return
the UTF8ness of the string, but instead use a heuristic to get its value
here.  This avoids needing to know the locale's UTF8ness (which is where
the infinite recursion would come from).  The heuristic is that if it is
illegal UTF-8, it isn't UTF-8; if it is plain ASCII, we can't tell; and
if it is legal UTF-8, it will be tentatively considered UTF-8.  This is
just one iteration of a loop through a bunch of strings, so that after
all the accumulated evidence of all iterations, we have confidence that
the total result is correct.

There are other code sections that also have the potential for infinite
recursion.  The next commits handle these.


  Commit: 2a8fb4df77474a4ee6fba9462c25cdb81d0977c9
  
https://github.com/Perl/perl5/commit/2a8fb4df77474a4ee6fba9462c25cdb81d0977c9
  Author: Karl Williamson 
  Date:   2023-11-12 (Sun, 12 Nov 2023)

  Changed paths:
M locale.c

  Log Message:
  ---
  locale.c: Differently avoid infinite recursion

This commit changes the mechanism for avoiding potential infinite
recursion in my_localeconv().

Normally the UTF8ness of the locale is determined.  Then all strings
returned by localeconv() are examined to see if their SVs need to be
marked as UTF-8 or not.  Knowing that the locale is or isn't UTF-8 helps
in that determination.

But in figuring that out, some Configurations call this function asking
for just a single item.  That would lead to infinite recursion.

To avoid that, on such Configurations prior to this commit, the
UTF8ness of the overall locale wasn't calculated, but instead each
item's UTF8ness was calculated individually.  It's complicated, but it
turns out doing this finesses the issue.  See below for a fuller
explanaation.

This commit changes things so that for single item calls, the UTF8-ness
isn't determined here, but the caller does it itself, and it doesn't
generally need the locale's UTF8ness to make that determination.

To expand on why it's complicated:  This situation arises only on
Configurations where calculating the UTF8ness of the locale may not be
reliable.  But it very likely is reliable except for English locales
whose currency symbol is plain ASCII, such as the USA and Canada and
other former members of the British Empire who use the dollar sign for
their currency symbol.  (I told you it was complicated.)  But for such
locales, t

[Perl/perl5] e8a4ce: win32: retire visual studio 2013 support

2023-11-12 Thread Tony Cook via perl5-changes
  Branch: refs/heads/smoke-me/tonyc/retire-vs-2013
  Home:   https://github.com/Perl/perl5
  Commit: e8a4ced88386ca079ba9f3cc4d138086aacfa8fc
  
https://github.com/Perl/perl5/commit/e8a4ced88386ca079ba9f3cc4d138086aacfa8fc
  Author: Tony Cook 
  Date:   2023-11-13 (Mon, 13 Nov 2023)

  Changed paths:
M README.win32
M win32/GNUmakefile
M win32/Makefile

  Log Message:
  ---
  win32: retire visual studio 2013 support

I recently (tried) to test VS 2013 builds, but while vs2013 in theory
supports mixed declarations and code, in practice that support is
broken, and failed to build toke.obj:

The one case I looked at in detail, VS 2013 required an extra ; after
a conditional statement to accept the following declaration, for
example:

```
C:\Users\Tony\dev\perl\git>cl /c mixed.c
Microsoft (R) C/C++ Optimizing Compiler Version 18.00.21005.1 for x64
Copyright (C) Microsoft Corporation.  All rights reserved.

mixed.c
mixed.c(8) : error C2143: syntax error : missing ';' before 'const'
mixed.c(9) : error C2065: 'pend' : undeclared identifier
mixed.c(9) : error C2100: illegal indirection

C:\Users\Tony\dev\perl\git>type mixed.c
/* adapted from S_intuit_more() in toke.c.
   don't run this code
*/
int g(const char *p) {
  if (!p)
return (0);

  const char * const pend = p+1;
  return *pend;
}
```

regcomp.obj also failed to build due to the use of the "inline"
keyword in regcomp.h.  This is fairly trivially fixable but
inline is also C99.

Despite these build issues we haven't received any error reports for
VS2013, so I don't think it's worth re-working any mixed declarations
to support it.

It might be worth updating regcomp.h to use PERL_STATIC_INLINE
but that's out of scope for this commit.




[Perl/perl5] 1d74e8: locale_threads.t: Skip on OpenBSD and DragonFly th...

2023-11-12 Thread James E Keenan via perl5-changes
  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 1d74e8214dd53cf0fa9e8c5aab3e6187685eadcd
  
https://github.com/Perl/perl5/commit/1d74e8214dd53cf0fa9e8c5aab3e6187685eadcd
  Author: James E Keenan 
  Date:   2023-11-12 (Sun, 12 Nov 2023)

  Changed paths:
M lib/locale_threads.t

  Log Message:
  ---
  locale_threads.t: Skip on OpenBSD and DragonFly threaded builds

Due to repeated testing failures on such builds subsequent to e2934ffc33.

Use OS's preferred casing in SKIP message.




[Perl/perl5]

2023-11-12 Thread Karl Williamson via perl5-changes
  Branch: refs/heads/smoke-me/jkeenan/skip-locale-threads-2023
  Home:   https://github.com/Perl/perl5


[Perl/perl5] 5265d6: locale_threads.t: Skip on OpenBSD and DragonFly th...

2023-11-12 Thread James E Keenan via perl5-changes
  Branch: refs/heads/smoke-me/jkeenan/skip-locale-threads-2023
  Home:   https://github.com/Perl/perl5
  Commit: 5265d636737de07ab4ceb6281b56ef80f5f7526a
  
https://github.com/Perl/perl5/commit/5265d636737de07ab4ceb6281b56ef80f5f7526a
  Author: James E Keenan 
  Date:   2023-11-12 (Sun, 12 Nov 2023)

  Changed paths:
M lib/locale_threads.t

  Log Message:
  ---
  locale_threads.t: Skip on OpenBSD and DragonFly threaded builds

Due to repeated testing failures on such builds subsequent to e2934ffc33.

Use OS's preferred casing in SKIP message.