develooper Front page | perl.perl5.changes | Postings from May 2020

[Perl/perl5] ac1573: Fix tr/// determination of inplace editing forEBCDIC

From:
Karl Williamson
Date:
May 27, 2020 04:30
Subject:
[Perl/perl5] ac1573: Fix tr/// determination of inplace editing forEBCDIC
Message ID:
Perl/perl5/push/refs/heads/smoke-me/khw-ebcdic/000000-f52290@github.com
  Branch: refs/heads/smoke-me/khw-ebcdic
  Home:   https://github.com/Perl/perl5
  Commit: ac1573f2b4c1a4acd6788e0c90f0888728d73f1f
      https://github.com/Perl/perl5/commit/ac1573f2b4c1a4acd6788e0c90f0888728d73f1f
  Author: Karl Williamson <khw@cpan.org>
  Date:   2020-05-26 (Tue, 26 May 2020)

  Changed paths:
    M ebcdic_tables.h
    M op.c
    M regen/ebcdic.pl

  Log Message:
  -----------
  Fix tr/// determination of inplace editing for EBCDIC

I realized as a result of fixing GH #17654, that the code didn't
properly decide if a tr/// can be done in-place on EBCDIC platforms.
Since we didn't have an EBCDIC smoker at the time, I couldn't be sure
that the fix actually worked.  Now that we do have a smoker, I have
successfully tested it.

This patch is constructed so that the code generated on non-EBCDIC
platforms should not be changed by it.


  Commit: dcea4e77c0e62491520dc671aee8e9ad26437d6e
      https://github.com/Perl/perl5/commit/dcea4e77c0e62491520dc671aee8e9ad26437d6e
  Author: Karl Williamson <khw@cpan.org>
  Date:   2020-05-26 (Tue, 26 May 2020)

  Changed paths:
    M t/re/regexp.t

  Log Message:
  -----------
  t/re/regexp.t: Fix to properly handle EBCDIC

5.31 commit 2b7f9bbf39f71c0d94db058b0110977a9470c1b2 caused this to not
work at all on EBCDIC platforms.


  Commit: 776d621bffbe21acc15e8cb2a4134bfe6cf4fc05
      https://github.com/Perl/perl5/commit/776d621bffbe21acc15e8cb2a4134bfe6cf4fc05
  Author: Karl Williamson <khw@cpan.org>
  Date:   2020-05-26 (Tue, 26 May 2020)

  Changed paths:
    M hints/os390.sh

  Log Message:
  -----------
  hints/os390.sh: Handle no C optimizations

There is a bug in Configure where it doesn't handle 'none' properly for
platforms which have no flag to indicate don't optimize.  Instead of
fixing this for 5.32 at this late date, change the hints file for os390
to use the equivalent " ", that does work.


  Commit: 124939375272a38181b599c94c8f9e580c2797e2
      https://github.com/Perl/perl5/commit/124939375272a38181b599c94c8f9e580c2797e2
  Author: Karl Williamson <khw@cpan.org>
  Date:   2020-05-26 (Tue, 26 May 2020)

  Changed paths:
    M t/TEST

  Log Message:
  -----------
  t/TEST: Skip some cpan module testing on EBCDIC

These modules have known problems, varying from one test failing, to not
working at all.  This is a big improvement from earlier releases where
all of cpan testing was entirely ckipped.


  Commit: bd99ad0f34fd4b5fab1101558a92534c45ad34fd
      https://github.com/Perl/perl5/commit/bd99ad0f34fd4b5fab1101558a92534c45ad34fd
  Author: Karl Williamson <khw@cpan.org>
  Date:   2020-05-26 (Tue, 26 May 2020)

  Changed paths:
    M charclass_invlists.h
    M lib/unicore/mktables
    M lib/unicore/uni_keywords.pl
    M regcharclass.h
    M uni_keywords.h

  Log Message:
  -----------
  pod/perluniprops: Split run-on lines before '\'

This changes mktables, which generates this pod, to consider long pod
lines to be splittable before most backslashes.  On os390, the lack of
this caused a line to not be split at all, creating a Porting test
failure.

There is also a current rule that you can split at a lowercase/uppercase
boundary.  This works for the limited domain this code is run on.  But
it shouldn't split \cK.  So don't do the split if the lowercase is a
single letter preceded by a backslash.


  Commit: b74d2f841bbb0cd73ddd7ed491e21e7543b4d96e
      https://github.com/Perl/perl5/commit/b74d2f841bbb0cd73ddd7ed491e21e7543b4d96e
  Author: Karl Williamson <khw@cpan.org>
  Date:   2020-05-26 (Tue, 26 May 2020)

  Changed paths:
    M t/lib/warnings/toke

  Log Message:
  -----------
  lib/warnings.t: Fix EBCDIC toke warning wording


  Commit: fc933b549a868acc0bdb7bfff7e695f2147c1263
      https://github.com/Perl/perl5/commit/fc933b549a868acc0bdb7bfff7e695f2147c1263
  Author: Karl Williamson <khw@cpan.org>
  Date:   2020-05-26 (Tue, 26 May 2020)

  Changed paths:
    M dist/IO/t/cachepropagate-unix.t

  Log Message:
  -----------
  dist/IO/t/cachepropagate-unix.t: Add os390 to TODO list

To TODO a test for


  Commit: c1f209081d3181c9bf4b5b0cd0eca461fac637bd
      https://github.com/Perl/perl5/commit/c1f209081d3181c9bf4b5b0cd0eca461fac637bd
  Author: Karl Williamson <khw@cpan.org>
  Date:   2020-05-26 (Tue, 26 May 2020)

  Changed paths:
    M lib/DBM_Filter/t/encode.t

  Log Message:
  -----------
  lib/DBM_Filter/t/encode.t: TODO a test on EBCDIC

This depends on Encode which has some problems


  Commit: 1e3fc1d9662fd5491396176281eb3cea1d079c7a
      https://github.com/Perl/perl5/commit/1e3fc1d9662fd5491396176281eb3cea1d079c7a
  Author: Karl Williamson <khw@cpan.org>
  Date:   2020-05-26 (Tue, 26 May 2020)

  Changed paths:
    M t/re/anyof.t

  Log Message:
  -----------
  t/re/anyof.t: Adapt a test for EBCDIC

a-z is not contiguous on EBCDIC platforms


  Commit: 1def04d4fde2ab4c6a055b845d94bbd75253f31e
      https://github.com/Perl/perl5/commit/1def04d4fde2ab4c6a055b845d94bbd75253f31e
  Author: Karl Williamson <khw@cpan.org>
  Date:   2020-05-26 (Tue, 26 May 2020)

  Changed paths:
    M t/op/sub.t

  Log Message:
  -----------
  op/sub.t: Skip APItest test if that not built


  Commit: 6c8c043951bb22d85e2e28a1ee00d9fef944784e
      https://github.com/Perl/perl5/commit/6c8c043951bb22d85e2e28a1ee00d9fef944784e
  Author: Karl Williamson <khw@cpan.org>
  Date:   2020-05-26 (Tue, 26 May 2020)

  Changed paths:
    M t/re/regexp.t
    M t/re/regexp_nonull.t

  Log Message:
  -----------
  re/regexp_nonull.t: Skip if no APItest built

This moves the require to the file that actually uses it, and checks
that it succeeded.


  Commit: 91dcb5780c2969e076737c2889e1c805384ee076
      https://github.com/Perl/perl5/commit/91dcb5780c2969e076737c2889e1c805384ee076
  Author: Karl Williamson <khw@cpan.org>
  Date:   2020-05-26 (Tue, 26 May 2020)

  Changed paths:
    M t/re/pat_advanced.t

  Log Message:
  -----------
  t/re/pat_advanced.t: Adapt for sl-o-o-w boxes

On some slow smokers, this test times out.  There is an existing
mechanism which allows a smoker to compensate for this, but which was
not being used by this test file.  Use it.


  Commit: 4bfccd7f48d2dc73ed0dd4fd6fc56b551569500f
      https://github.com/Perl/perl5/commit/4bfccd7f48d2dc73ed0dd4fd6fc56b551569500f
  Author: Karl Williamson <khw@cpan.org>
  Date:   2020-05-26 (Tue, 26 May 2020)

  Changed paths:
    M t/re/speed.t

  Log Message:
  -----------
  t/re/speed.t: Adapt for sl-o-o-w boxes

On some slow smokers, this test times out.  There is an existing
mechanism which allows a smoker to compensate for this, but which was
not being used by this test file.  Use it.


  Commit: f52290b3eaf538319742cdb0efc229916f09e27a
      https://github.com/Perl/perl5/commit/f52290b3eaf538319742cdb0efc229916f09e27a
  Author: Karl Williamson <khw@cpan.org>
  Date:   2020-05-26 (Tue, 26 May 2020)

  Changed paths:
    M t/op/exec.t

  Log Message:
  -----------
  op/exec.t: ENOTDIR is a legit errno

This test file does a system() on a non-existent file, and checks
that an error happens, and that the errno is one that is expected.
Prior to this commit it didn't think that ENOTDIR could happen.

But it can If PATH contains a component that is plain file, or, on some
systems, a component simply doesn't exist.

I examined the possible errnos listed in a Linux man page for this, and
this looked to be the only one that is likely to come up that weren't
already covered.

This fixes GH #17515


Compare: https://github.com/Perl/perl5/compare/ac1573f2b4c1%5E...f52290b3eaf5



nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About