In perl.git, the branch smoke-me/arc/c89ification has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/628b73d225b65d9388c7fb0497e70e19efde7a20?hp=1ce414df05474a42e8a0a151d47938e27915cee8>

  discards  1ce414df05474a42e8a0a151d47938e27915cee8 (commit)
  discards  f2fef2bfd78af8cd5c94ffa646aab7155b93b330 (commit)
  discards  38882603edf12acb2f78eba2783154f8d8b21c52 (commit)
  discards  6f1090e1042e7e51c04c42b7b8f66be91caa1081 (commit)
  discards  d32a2aad29f000aad9523398e88d60309afdc757 (commit)
  discards  269b6a677d951215f3eede273b36b91b1d77b8dc (commit)
  discards  02045acb079b3284453189aab0c9e8f5ce468a2a (commit)
  discards  9bad4e603f0839141fb99f65a55612cacda60c55 (commit)
  discards  0678bb066d920eeddc0fefda07b0d5629f71f4e1 (commit)
  discards  27b361737b59b4f5ea6deaed8e3bc38f6064b891 (commit)
  discards  5894976dcf301474ef796145f9e22ba3bcdc5acb (commit)
  discards  9fcbbf9c32d8518f4a61b3e1ca1a9d188863ec99 (commit)
  discards  f80d452de750c8a28a8dd061bb6d4718f5d0ce7e (commit)
  discards  234dcb11efe280fde70ad84e30b50afa3ae9a74b (commit)
  discards  e37dae4cf18be42ebccfaf3ce48b05d551ebfd2e (commit)
  discards  85fb763064cda7d4c2456c34c1a298c2a153db4c (commit)
  discards  73fd7950003dd6a5f8879c82742083343d30dd45 (commit)
  discards  d707fcbd4ad82238191b696cf76eba955c5abf36 (commit)
  discards  80ee0971472dd781fe2f7ad387596aec2df617bc (commit)
  discards  a001056e0982da23ca83ab9e1b0fc107cd148e45 (commit)
  discards  e0417679f21ac9b2693f337f45aaf6db2acc1195 (commit)
  discards  77a20cd0b7b8aef6774f34ee1ab888ea6d44e22b (commit)
  discards  479d8df28943ffdec464cf30c851a7b7a4112163 (commit)
  discards  aba657afff73f3f671ba0eff39accc611f8b9c05 (commit)
  discards  ae46a0a392f7b2a47b75d6b80775c06823d48648 (commit)
  discards  56fb636d27699bb18ec4025d0e134aee7d3700ec (commit)
  discards  b451a3f8e93d715229953519414c34fe66971aaf (commit)
  discards  b599e38cf6fc45c2c21d509702fe4ac27ce44ab0 (commit)
  discards  52f38d8858f5df4261bbdd8a33ed806e4eec0a7b (commit)
  discards  33e9087934d1d5c76ebc04a0bddb73ec27ffcd3a (commit)
  discards  614d9770583f9ceb1b782af73cf5ed3e946568a0 (commit)
  discards  b6ff7ff54f2775fe659260522ac3bb2e7d763f84 (commit)
  discards  e2db48816839c67cc6ea5fccabe038d16f2cdfbf (commit)
  discards  a05d39649b637162dfeab3e63fb58de483a9e586 (commit)
  discards  99f8af60756bf84be2d5d9e146ecaafc71b74fac (commit)
  discards  24da329cfca1e1dcc47112481256dc4422aaa284 (commit)
  discards  a11851f96a34d3b443d54c1dddd94a2b5aebe211 (commit)
  discards  bd2bdc43c30758e82dc17b719c75b468e4c63844 (commit)
  discards  4433a014ab7c7904a36d74215fdbbe8fb0be48dd (commit)
  discards  fed0f9e50b32167c36ac33a8b372d40be77e0469 (commit)
  discards  b33cfbc92f45114d62a9857079dfba63badac3b3 (commit)
  discards  025ae1c7ef2469b119f20bfbe3b1337fce5d8972 (commit)
  discards  629c1212449bdaf022739bf8b97510836bab0544 (commit)
  discards  e5c595843408aff0fb2e51478687897cb612b6b7 (commit)
  discards  5261010a90be72caf25d62876cbcbd17bae5d34f (commit)
  discards  a4c342618645b9234cd06b829d4389226520c483 (commit)
  discards  fbcf98a20d7931f9918f41c10c242c45a0ce1a7d (commit)
  discards  bf12811ae6e9b647b90166b42be1c2d0ff75f44c (commit)
  discards  752516c98ee7292bf41887171808556c079fbcf6 (commit)
  discards  05777f14f949094b02e7d03213fa72be8cbf56f4 (commit)
  discards  3ae30e994eec97cccdf0a87a049434f4ba218c99 (commit)
  discards  08e583678ac370bc9b5d5d8cdd83eb17cfa5465d (commit)
  discards  26d2ffc288ea310b413c2400eef073cc9f2095d5 (commit)
  discards  b7588221289ac6d58420d68dff1a5b60e075a27f (commit)
  discards  16a4843f2cce9bdc73e8317bed69f736afd02f38 (commit)
  discards  af20dda067b06fdfd01221711bedccc1e54c7de4 (commit)
  discards  1339e1fd75e19a606441b8686a2d8f0841a9fa91 (commit)
  discards  49b21b01559a927c3f5d1f7ff8bf43ff6dd8510b (commit)
  discards  9f4692d20e5bd8090e1de18954f04e5159dd1f55 (commit)
  discards  e99eb0a7852edca8a6ca428e2fffc6136b2b15c2 (commit)
  discards  491159993aa67ec41215aec7e6593a196c41cc2a (commit)
  discards  13c7724e8ef8783f0aa55b790ec4a517d3b17357 (commit)
  discards  b7890b10107fd5cfacd87975291dd2970a268f7f (commit)
  discards  9d82ec19551fcf06f21ed56b81750f1b48a2e807 (commit)
  discards  b3c10e47c49d66b7bd880416cf6f2cdba00274b9 (commit)
  discards  6bc6efa9d1be0645cf9923883d56c98c60aaf168 (commit)
  discards  b718a3dca6f459d7c4a7b417bb7ab5657fbec22c (commit)
  discards  39f915dfc5b852a40600a00abf24b01a42cb7776 (commit)
- Log -----------------------------------------------------------------
commit 628b73d225b65d9388c7fb0497e70e19efde7a20
Author: Aaron Crane <a...@cpan.org>
Date:   Tue Oct 17 17:36:33 2017 +0100

    pod/perlhacktips.pod: remove some outdated portability notes

M       pod/perlhacktips.pod

commit 6f6074ef18258af4063ed40fab8556b8bf56126f
Author: Aaron Crane <a...@cpan.org>
Date:   Sat Oct 14 16:26:48 2017 +0200

    Rely on C89 <string.h>
    
    This requires a corresponding change in the metaconfig units.

M       Configure
M       Cross/config.sh-arm-linux
M       Cross/config.sh-arm-linux-n770
M       NetWare/config.wc
M       NetWare/config_H.wc
M       Porting/Glossary
M       Porting/config.sh
M       Porting/config_H
M       config_h.SH
M       configure.com
M       ext/SDBM_File/sdbm.c
M       ext/SDBM_File/sdbm.h
M       perl.h
M       plan9/config.plan9
M       plan9/config_h.sample
M       plan9/config_sh.sample
M       symbian/config.sh
M       uconfig.h
M       uconfig.sh
M       uconfig64.sh
M       win32/config.ce
M       win32/config.gc
M       win32/config.vc
M       win32/config_H.ce
M       win32/config_H.gc
M       win32/config_H.vc

commit 526649e5b0efab7a7de8d6753d87c47d0ba66bb7
Author: Aaron Crane <a...@cpan.org>
Date:   Sat Oct 14 16:10:31 2017 +0200

    Don't attempt to use non-standard <memory.h>
    
    It's only needed on systems without C89 <string.h>, which we rely on anyway.

M       Configure
M       Cross/config.sh-arm-linux
M       Cross/config.sh-arm-linux-n770
M       NetWare/config.wc
M       NetWare/config_H.wc
M       Porting/Glossary
M       Porting/config.sh
M       Porting/config_H
M       config_h.SH
M       configure.com
M       ext/SDBM_File/sdbm.h
M       perl.h
M       plan9/config.plan9
M       plan9/config_h.sample
M       plan9/config_sh.sample
M       symbian/config.sh
M       uconfig.h
M       uconfig.sh
M       uconfig64.sh
M       win32/config.ce
M       win32/config.gc
M       win32/config.vc
M       win32/config_H.ce
M       win32/config_H.gc
M       win32/config_H.vc

commit c5c06f240bd6797a18c9be7aa7c50ed988c838bc
Author: Aaron Crane <a...@cpan.org>
Date:   Sat Oct 14 15:47:10 2017 +0200

    Rely on C89 <assert.h>

M       Configure
M       Cross/config.sh-arm-linux
M       Cross/config.sh-arm-linux-n770
M       NetWare/config.wc
M       NetWare/config_H.wc
M       Porting/Glossary
M       Porting/config.sh
M       Porting/config_H
M       config_h.SH
M       configure.com
M       perl.h
M       plan9/config_h.sample
M       plan9/config_sh.sample
M       symbian/config.sh
M       uconfig.h
M       uconfig.sh
M       uconfig64.sh
M       win32/config.ce
M       win32/config.gc
M       win32/config.vc
M       win32/config_H.ce
M       win32/config_H.gc
M       win32/config_H.vc

commit 963ba570c2845f8f34633415abde7fc50f39cae7
Author: Aaron Crane <a...@cpan.org>
Date:   Sat Oct 14 15:20:33 2017 +0200

    Rely on C89 <math.h>
    
    This requires a corresponding change in the metaconfig units.

M       Configure
M       Cross/config.sh-arm-linux
M       Cross/config.sh-arm-linux-n770
M       NetWare/config.wc
M       NetWare/config_H.wc
M       Porting/Glossary
M       Porting/config.sh
M       Porting/config_H
M       config_h.SH
M       configure.com
M       perl.h
M       plan9/config.plan9
M       plan9/config_h.sample
M       plan9/config_sh.sample
M       symbian/config.sh
M       uconfig.h
M       uconfig.sh
M       uconfig64.sh
M       win32/config.ce
M       win32/config.gc
M       win32/config.vc
M       win32/config_H.ce
M       win32/config_H.gc
M       win32/config_H.vc

commit ae202e083cafc8da733e94bd1fc4bbc2f00d9b4e
Author: Aaron Crane <a...@cpan.org>
Date:   Sat Oct 14 15:11:22 2017 +0200

    Never attempt to redeclare standard functions

M       perl.h
M       vms/vmsish.h

commit 1c53eef336794f2062c9321f7950261b8d3dd695
Author: Aaron Crane <a...@cpan.org>
Date:   Sat Oct 14 14:43:38 2017 +0200

    Don't attempt to define or use STANDARD_C
    
    We rely on a C89 implementation anyway.

M       Makefile.micro
M       ext/SDBM_File/sdbm.h
M       hints/irix_4.sh
M       perl.c
M       perl.h
M       pod/perlembed.pod
M       win32/win32.h

commit f9adcc23a5f7bda25e218acbd0bb246e477d5209
Author: Aaron Crane <a...@cpan.org>
Date:   Sat Oct 14 14:39:07 2017 +0200

    Rely on C89 NULL

M       handy.h

commit 08bfc0f876c65a5e738275048762def0a0ec6fb2
Author: Aaron Crane <a...@cpan.org>
Date:   Sat Oct 14 14:03:01 2017 +0200

    Don't declare C89 realloc()
    
    The declaration is actually for PerlMem_realloc(), which is a macro for
    either realloc() or an indirection through the interpreter struct, depending
    on configuration — see iperlsys.h. If it's the indrection, this 
declaration
    will be a syntax error, so it must be in fact plain old realloc().
    
    The declaration is guarded with HAS_REALLOC_PROTOTYPE, which isn't actually
    defined or consulted anywhere else in the codebase.
    
    Since we require C89, there's no need for this — we #include <stdlib.h>, 
and
    therefore can assume realloc() exists.

M       util.c

commit af395ebefd00a9d7377c8e41bd16180259c5c0db
Author: Aaron Crane <a...@cpan.org>
Date:   Sat Oct 14 11:57:51 2017 +0200

    Rely on C89 strerror()
    
    This requires a corresponding change to the metaconfig units.

M       Configure
M       Cross/config.sh-arm-linux
M       Cross/config.sh-arm-linux-n770
M       NetWare/config.wc
M       NetWare/config_H.wc
M       Porting/Glossary
M       Porting/config.sh
M       Porting/config_H
M       config_h.SH
M       configure.com
M       perl.h
M       plan9/config.plan9
M       plan9/config_h.sample
M       plan9/config_sh.sample
M       symbian/config.sh
M       uconfig.h
M       uconfig.sh
M       uconfig64.sh
M       win32/config.ce
M       win32/config.gc
M       win32/config.vc
M       win32/config_H.ce
M       win32/config_H.gc
M       win32/config_H.vc

commit 979bd1f95dd09e3533284e138e79340874faa231
Author: Aaron Crane <a...@cpan.org>
Date:   Sat Oct 14 11:15:04 2017 +0200

    util.h: simplify cpp conditionals

M       util.h

commit 81f7223676d5fdccf79a227ef87690b39c43db85
Author: Aaron Crane <a...@cpan.org>
Date:   Sat Oct 14 11:09:26 2017 +0200

    util.c: simplify cpp conditionals

M       util.c

commit 81c66c314c39456d63895ac9ce37856c65291013
Author: Aaron Crane <a...@cpan.org>
Date:   Sat Oct 14 10:56:37 2017 +0200

    thread.h: simplify cpp conditionals

M       thread.h

commit bc6b81a4e293a6c6cc422a5278ba71c915b00334
Author: Aaron Crane <a...@cpan.org>
Date:   Sat Oct 14 10:52:05 2017 +0200

    sv.c: simplify cpp conditionals

M       sv.c

commit be8572b040ff7726e147495e6ae9ad7e3848eef3
Author: Aaron Crane <a...@cpan.org>
Date:   Sat Oct 14 10:48:10 2017 +0200

    regen/reentr.pl: simplify cpp conditionals

M       reentr.c
M       regen/reentr.pl

commit 0307e4879140e57a8101f1bfda69bce260abe127
Author: Aaron Crane <a...@cpan.org>
Date:   Sat Oct 14 10:42:16 2017 +0200

    pp_sys.c: simplify cpp conditionals

M       pp_sys.c

commit e7efd02cf4bd079fa4f301c0d04a8e3ba598fd03
Author: Aaron Crane <a...@cpan.org>
Date:   Sat Oct 14 10:07:18 2017 +0200

    pp_pack.c: simplify cpp conditionals

M       pp_pack.c

commit 80cb599977fc122ce8846ec3f8ddec37dad38916
Author: Aaron Crane <a...@cpan.org>
Date:   Sat Oct 14 09:55:26 2017 +0200

    pp_hot.c: simplify cpp conditionals

M       pp_hot.c

commit c6eee0de6c8ccd6a7a1f253c786f3d357af03439
Author: Aaron Crane <a...@cpan.org>
Date:   Sat Oct 14 09:53:41 2017 +0200

    pp_ctl.c: simplify cpp conditionals

M       pp_ctl.c

commit a4c9dc45b2fddd7475faeffa0b14d4e32c8f85ab
Author: Aaron Crane <a...@cpan.org>
Date:   Sat Oct 14 09:51:50 2017 +0200

    pp.c: simplify cpp conditionals

M       pp.c

commit 987a707247bfe3f552bd8b5f9042317bff0912f5
Author: Aaron Crane <a...@cpan.org>
Date:   Fri Oct 13 18:16:16 2017 +0200

    perlio.c: simplify cpp conditionals

M       perlio.c

commit 0427bd727e1371dd4b69a43dd75c1e1c8fa0585d
Author: Aaron Crane <a...@cpan.org>
Date:   Fri Oct 13 18:11:58 2017 +0200

    perl.h: simplify cpp conditionals

M       perl.h

commit 8bce42a26c83329efdc3152e4a74b8c648c71c21
Author: Aaron Crane <a...@cpan.org>
Date:   Fri Oct 13 17:42:54 2017 +0200

    Drop support for the hp9000s500 cpp symbol
    
    This includes changed metaconfig units which drop support in the same way.
    
    https://en.wikipedia.org/wiki/HP_9000 :
    
    > The HP 9000 brand was introduced in 1984 to encompass several existing
    > technical workstation models previously launched in the early 1980s. […]
    > The Series 500s were based on the HP FOCUS microprocessor. […] The 520 
was
    > a complete workstation with built-in keyboard, display, 5.25-inch floppy
    > disk, and optional thermal printer and 5 MB hard disk. […] The 
processors
    > in the original Series 500s ran at 20 MHz, and could reach a benchmark
    > speed of 1 MIPS.
    
    https://en.wikipedia.org/wiki/HP_FOCUS :
    
    > The Hewlett-Packard FOCUS microprocessor, launched in 1982, was the
    > first commercial, single chip, fully 32-bit microprocessor available on
    > the market. […] The FOCUS […] was a stack architecture, with over 220
    > instructions (some 32 bits wide, some 16 bits wide), a segmented memory
    > model, and no general purpose programmer-visible registers.

M       Configure
M       perl.h

commit b199bd16cbd6323b307de3fe9a409913ec824c2a
Author: Aaron Crane <a...@cpan.org>
Date:   Fri Oct 13 17:24:42 2017 +0200

    Delete useless references to DG/UX

M       perl.h
M       t/run/switches.t

commit 0d41b793a14130ce1a075486614790fb6a3475fb
Author: Aaron Crane <a...@cpan.org>
Date:   Fri Oct 13 17:17:15 2017 +0200

    perl.c: simplify cpp conditionals

M       perl.c

commit 27b862d2b67b35b0a675dd296efa0715fe4c6564
Author: Aaron Crane <a...@cpan.org>
Date:   Fri Oct 13 17:07:13 2017 +0200

    opcode.pl: simplify cpp conditionals
    
    This affects the generated opcode.h.

M       opcode.h
M       regen/opcode.pl

commit b250bbc08fe8ed181c04d91e78043f051f4a5407
Author: Aaron Crane <a...@cpan.org>
Date:   Fri Oct 13 17:03:32 2017 +0200

    numeric.c: simplify cpp conditionals

M       numeric.c

commit 7106ff0448628dbfbc114ad2b7c5d30fb2f13fe3
Author: Aaron Crane <a...@cpan.org>
Date:   Fri Oct 13 17:02:25 2017 +0200

    mg.c: simplify cpp conditionals

M       mg.c

commit f40346a6bb5c1b6ad4377c656887d668bbd8e050
Author: Aaron Crane <a...@cpan.org>
Date:   Fri Oct 13 16:55:55 2017 +0200

    malloc.c: simplify cpp conditionals

M       malloc.c

commit 4f90f8d9095e2087df93727d4389f37a32ae6743
Author: Aaron Crane <a...@cpan.org>
Date:   Fri Oct 13 16:54:44 2017 +0200

    malloc.c: don't redefine START_EXTERN_C from perl.h

M       malloc.c

commit 546ec2e12e092f713b59e0314053d0380bd0978e
Author: Aaron Crane <a...@cpan.org>
Date:   Fri Oct 13 16:44:08 2017 +0200

    handy.h: simplify cpp conditionals

M       handy.h

commit 67c755b894c9af4087cd5d9df109b4ba93a66141
Author: Aaron Crane <a...@cpan.org>
Date:   Fri Oct 13 16:40:59 2017 +0200

    dosish.h: simplify cpp conditionals

M       dosish.h

commit 43ee53c96ecf280e0f4ffec8535829ce69a6dd26
Author: Aaron Crane <a...@cpan.org>
Date:   Fri Oct 13 16:34:23 2017 +0200

    EXTERN.h: simplify cpp conditionals

M       EXTERN.h

commit 6629dc90306b7b09e79bb1ba81bf44faaca3b32b
Author: Aaron Crane <a...@cpan.org>
Date:   Fri Oct 13 16:30:05 2017 +0200

    doio.c: simplify cpp conditionals

M       doio.c

commit 7723143d0f55dc7c98bbc1b7bf160f2aa69938ab
Author: Aaron Crane <a...@cpan.org>
Date:   Fri Oct 13 16:20:21 2017 +0200

    vms/vmsish.h: move a function declaration from doio.c

M       doio.c
M       vms/vmsish.h

commit 41ca9574d7881a3f235b050416cca4ef785a10ec
Author: Aaron Crane <a...@cpan.org>
Date:   Fri Oct 13 15:59:59 2017 +0200

    caretx.c: simplify cpp conditionals

M       caretx.c

commit bb4bb969bbfdc4973dcd5a3a0e355edaeb08bf8b
Author: Aaron Crane <a...@cpan.org>
Date:   Fri Oct 13 15:56:07 2017 +0200

    XSUB.h: simplify cpp conditions using C89 "#elif"

M       XSUB.h

commit 3e7949c22960985e5e5d330a8ceb48af92c37a57
Author: Aaron Crane <a...@cpan.org>
Date:   Sat Oct 14 09:45:18 2017 +0200

    Rely on contents of C89 <limits.h>

M       perl.h

commit 878407cf3eafeb84ea043266c265cad8bcc8792f
Author: Aaron Crane <a...@cpan.org>
Date:   Fri Oct 13 15:34:03 2017 +0200

    Simplify perl.h floating-point limits defines
    
    - Always include <float.h> and <limits.h>
    
    - Assume that the DBL_* constants are always available in <float.h> (though
      we still check for each LDBL_* constant individually)
    
    - Drop support for the undocumented OVR_DBL_DIG and OVR_LDBL_DIG
      preprocessor symbols
    
    - Use cpp "#elif"

M       perl.h

commit 3c4810297bc7ddb1d5e785eb0a056c127c8f58d2
Author: Aaron Crane <a...@cpan.org>
Date:   Fri Oct 13 15:14:20 2017 +0200

    Don't try to use <values.h>
    
    All the information it contains can be gleaned more readily from C89
    <limits.h> and <float.h>.

M       Configure
M       Cross/config.sh-arm-linux
M       Cross/config.sh-arm-linux-n770
M       NetWare/config.wc
M       NetWare/config_H.wc
M       Porting/Glossary
M       Porting/config.sh
M       Porting/config_H
M       config_h.SH
M       configure.com
M       perl.h
M       plan9/config.plan9
M       plan9/config_h.sample
M       plan9/config_sh.sample
M       symbian/config.sh
M       uconfig.h
M       uconfig.sh
M       uconfig64.sh
M       win32/config.ce
M       win32/config.gc
M       win32/config.vc
M       win32/config_H.ce
M       win32/config_H.gc
M       win32/config_H.vc

commit 0a86c03d65766c9fc968410ab3a642ac18fee29a
Author: Aaron Crane <a...@cpan.org>
Date:   Fri Oct 13 13:54:42 2017 +0200

    Rely on C89 <float.h> defining DBL_DIG
    
    I would like to be able to assume that we have long doubles, and therefore
    that LDBL_DIG and friends are all defined too. But it seems that we may
    still support some platforms which are otherwise C89, but don't have even
    trivial long-double support; in particular, HP/UX 10 apparently uses a
    struct of four uint32_t values as long double, but doesn't support other
    bits, and confuses the Configure probe that looks for quadmath.

M       Configure
M       NetWare/config_H.wc
M       Porting/config_H
M       config_h.SH
M       perl.h
M       plan9/config.plan9
M       plan9/config_h.sample
M       uconfig.h
M       win32/config_H.ce
M       win32/config_H.gc
M       win32/config_H.vc

commit e25af0ba78a56ff1f0a3326e73f1a98c990f213e
Author: Aaron Crane <a...@cpan.org>
Date:   Fri Oct 13 12:49:41 2017 +0200

    Rely on C89 <float.h>
    
    This requires newer metaconfig units that also rely on C89 <float.h>.

M       Configure
M       Cross/config.sh-arm-linux
M       Cross/config.sh-arm-linux-n770
M       NetWare/config.wc
M       NetWare/config_H.wc
M       Porting/Glossary
M       Porting/config.sh
M       Porting/config_H
M       config_h.SH
M       configure.com
M       ext/POSIX/POSIX.xs
M       perl.h
M       plan9/config.plan9
M       plan9/config_h.sample
M       plan9/config_sh.sample
M       symbian/config.sh
M       uconfig.h
M       uconfig.sh
M       uconfig64.sh
M       win32/config.ce
M       win32/config.gc
M       win32/config.vc
M       win32/config_H.ce
M       win32/config_H.gc
M       win32/config_H.vc

commit 666813b042e9529da5b477392d6e2622f134cb9f
Author: Aaron Crane <a...@cpan.org>
Date:   Fri Oct 13 12:38:59 2017 +0200

    Rely on C89 <limits.h>
    
    This requires newer metaconfig units that also rely on C89 <limits.h>.

M       Configure
M       Cross/config.sh-arm-linux
M       Cross/config.sh-arm-linux-n770
M       NetWare/config.wc
M       NetWare/config_H.wc
M       Porting/Glossary
M       Porting/config.sh
M       Porting/config_H
M       cflags.SH
M       config_h.SH
M       configure.com
M       ext/File-Glob/bsd_glob.c
M       ext/POSIX/POSIX.xs
M       perl.h
M       plan9/config.plan9
M       plan9/config_h.sample
M       plan9/config_sh.sample
M       symbian/config.sh
M       uconfig.h
M       uconfig.sh
M       uconfig64.sh
M       win32/config.ce
M       win32/config.gc
M       win32/config.vc
M       win32/config_H.ce
M       win32/config_H.gc
M       win32/config_H.vc

commit 40f11ee6d2b5ae2c3cdab81e9d833501a248d841
Author: Aaron Crane <a...@cpan.org>
Date:   Fri Oct 13 11:18:10 2017 +0200

    Rely on C89 <time.h>
    
    The Configure script here was built from a metaconfig unit that also assumes
    <time.h> exists.

M       Configure
M       config_h.SH
M       dist/IO/poll.c
M       perl.h
M       uconfig.h

commit ae7d0eff49764e8d85223397f26637284492cd8b
Author: Aaron Crane <a...@cpan.org>
Date:   Fri Oct 13 10:35:44 2017 +0200

    Rely on C89 strchr() and strrchr()
    
    This needs a metaconfig change that defangs the standard unit for finding
    strchr(), because that unit sees the uses of "index" and "rindex" (in files
    like keywords.c and opcode.h) as indicators that it must be used instead.

M       Configure
M       NetWare/config_H.wc
M       Porting/Glossary
M       Porting/config_H
M       config_h.SH
M       ext/SDBM_File/dbe.c
M       ext/SDBM_File/dbu.c
M       perl.h
M       plan9/config.plan9
M       plan9/config_h.sample
M       uconfig.h
M       win32/config_H.ce
M       win32/config_H.gc
M       win32/config_H.vc

commit 9de03985676cf9d6f089b53714b369a0f5edbb5d
Author: Aaron Crane <a...@cpan.org>
Date:   Fri Oct 13 10:03:59 2017 +0200

    Rely on C89 sprintf() return value semantics

M       Configure
M       Cross/config.sh-arm-linux
M       Cross/config.sh-arm-linux-n770
M       NetWare/config.wc
M       Porting/Glossary
M       Porting/config.sh
M       Porting/config_H
M       config_h.SH
M       configure.com
M       embed.fnc
M       makedef.pl
M       perl.h
M       plan9/config_sh.sample
M       proto.h
M       symbian/config.sh
M       uconfig.h
M       uconfig.sh
M       uconfig64.sh
M       util.c
M       win32/config.ce
M       win32/config.gc
M       win32/config.vc
M       win32/config_H.ce
M       win32/config_H.gc
M       win32/config_H.vc

commit 6e5246f7d8edc1a7fcbf54702bdcf6ea197a9b14
Author: Aaron Crane <a...@cpan.org>
Date:   Tue Oct 17 17:30:18 2017 +0100

    Use snprintf() in favour of sprintf()

M       sv.c
M       taint.c

commit a9ebc4bcda05e018b403c226564a81a228856f54
Author: Aaron Crane <a...@cpan.org>
Date:   Fri Oct 13 09:25:14 2017 +0200

    Rely on C89 <stddef.h>

M       Configure
M       Cross/config.sh-arm-linux
M       Cross/config.sh-arm-linux-n770
M       NetWare/config.wc
M       NetWare/config_H.wc
M       Porting/Glossary
M       Porting/config.sh
M       Porting/config_H
M       cflags.SH
M       config_h.SH
M       configure.com
M       ext/POSIX/POSIX.xs
M       perl.h
M       plan9/config.plan9
M       plan9/config_h.sample
M       plan9/config_sh.sample
M       symbian/config.sh
M       uconfig.h
M       uconfig.sh
M       uconfig64.sh
M       win32/config.ce
M       win32/config.gc
M       win32/config.vc
M       win32/config_H.ce
M       win32/config_H.gc
M       win32/config_H.vc

commit ac40bf93d18e929ff0b60b6d119992a903f2b68d
Author: Aaron Crane <a...@cpan.org>
Date:   Fri Oct 13 09:16:17 2017 +0200

    Rely on C89 <stdlib.h>
    
    The Configure changes here were generated using a version of metaconfig
    that copies U/modified/i_stdlib.U from dist/U/vaproto.U, and changes it to
    unconditionally define the i_stdlib Configure variable. That variable is
    used by a large number of other Configure units, so it's not actually
    practical to try and remove the relevant unit entirely.

M       Configure
M       NetWare/config_H.wc
M       Porting/Glossary
M       Porting/config_H
M       cflags.SH
M       config_h.SH
M       ext/POSIX/POSIX.xs
M       ext/SDBM_File/sdbm.h
M       hints/irix_6.sh
M       perl.h
M       plan9/config.plan9
M       plan9/config_h.sample
M       uconfig.h
M       win32/config_H.ce
M       win32/config_H.gc
M       win32/config_H.vc

commit 39d30253ecba3a1e8a568ecfbd6c87e8f450a936
Author: Aaron Crane <a...@cpan.org>
Date:   Fri Oct 13 00:55:41 2017 +0200

    Rely on C89 <stdarg.h>

M       Configure
M       Cross/config.sh-arm-linux
M       Cross/config.sh-arm-linux-n770
M       INSTALL
M       MANIFEST
M       NetWare/config.wc
M       NetWare/config_H.wc
M       Porting/Glossary
M       Porting/config.sh
M       Porting/config_H
M       cflags.SH
M       config_h.SH
M       configure.com
D       hints/genix.sh
M       perl.h
M       plan9/config.plan9
M       plan9/config_h.sample
M       plan9/config_sh.sample
M       uconfig.h
M       uconfig.sh
M       uconfig64.sh
M       win32/config.ce
M       win32/config.gc
M       win32/config.vc
M       win32/config_H.ce
M       win32/config_H.gc
M       win32/config_H.vc

commit 1c49d8558a76fb197c384b7fa2d4a6668e03c75e
Author: Aaron Crane <a...@cpan.org>
Date:   Thu Oct 12 18:50:15 2017 +0200

    Rely on C89 prototypes
    
    The Configure changes here were generated using a version of metaconfig
    that modifies the prototype.U and Protochk.U units to assume that C89
    prototypes work.

M       Configure
M       NetWare/config_H.wc
M       Porting/Glossary
M       Porting/config_H
M       config_h.SH
M       ext/SDBM_File/pair.c
M       ext/SDBM_File/pair.h
M       ext/SDBM_File/sdbm.c
M       ext/SDBM_File/sdbm.h
M       perl.h
M       plan9/config.plan9
M       plan9/config_h.sample
M       uconfig.h
M       win32/config_H.ce
M       win32/config_H.gc
M       win32/config_H.vc

commit ded2934e4892f708fc7be88f637641624c4bf484
Author: Aaron Crane <a...@cpan.org>
Date:   Sat Oct 14 17:01:19 2017 +0200

    Don't pretend to determine whether ansi2knr is needed

M       Configure
M       Cross/cflags-cross-arm
M       Cross/config.sh-arm-linux
M       Cross/config.sh-arm-linux-n770
M       NetWare/config.wc
M       Porting/Glossary
M       Porting/config.sh
M       cflags.SH
M       plan9/config_sh.sample
M       uconfig64.sh
M       win32/config.ce
M       win32/config.gc
M       win32/config.vc

commit 4d24012ac55dcc4addd3f2a97890e58e95e40f87
Author: Aaron Crane <a...@cpan.org>
Date:   Thu Oct 12 18:17:02 2017 +0200

    Rely on C89 variadic prototypes
    
    The Configure changes here were generated using a version of metaconfig
    that copies U/modified/vaproto.U from dist/U/vaproto.U, and changes it to
    refrain from promising to define a _V symbol (which would otherwise cause
    the relevant probe to included in Configure).

M       Configure
M       Cross/config.sh-arm-linux
M       NetWare/config.wc
M       Porting/Glossary
M       Porting/config.sh
M       Porting/config_H
M       config_h.SH
M       configure.com
M       plan9/config_sh.sample
M       symbian/config.sh
M       uconfig.h
M       uconfig.sh
M       uconfig64.sh
M       win32/config.ce
M       win32/config.gc
M       win32/config.vc
M       win32/config_H.gc
M       win32/config_H.vc

commit 830386b9f00a2a011b007997e3fabd21cd67b82c
Author: Aaron Crane <a...@cpan.org>
Date:   Thu Oct 12 18:05:57 2017 +0200

    Configure: assume C89 headers in need_va_copy probe
    
    This matches a recent change to metaconfig.

M       Configure

commit 27686103018daf6dc567aef3c0d20c0840240f29
Author: Aaron Crane <a...@cpan.org>
Date:   Thu Oct 12 17:56:12 2017 +0200

    Rely on C89 vprintf()

M       Configure
M       Cross/config.sh-arm-linux
M       Cross/config.sh-arm-linux-n770
M       INSTALL
M       NetWare/config.wc
M       NetWare/config_H.wc
M       Porting/Glossary
M       Porting/config.sh
M       Porting/config_H
M       config_h.SH
M       configure.com
M       hints/catamount.sh
M       perlio.c
M       plan9/config.plan9
M       plan9/config_h.sample
M       plan9/config_sh.sample
M       symbian/config.sh
M       uconfig.h
M       uconfig.sh
M       uconfig64.sh
M       util.c
M       win32/config.ce
M       win32/config.gc
M       win32/config.vc
M       win32/config_H.ce
M       win32/config_H.gc
M       win32/config_H.vc

commit fa158fec4d0ec22ffca04784d6462b6b7b23e460
Author: Aaron Crane <a...@cpan.org>
Date:   Thu Oct 12 17:49:34 2017 +0200

    Rely on C89 sprintf() return type

M       util.c

commit 92ecbd53185a7829c6c612784db0f02e0389a935
Author: Aaron Crane <a...@cpan.org>
Date:   Thu Oct 12 17:44:29 2017 +0200

    Configure: assume C89 headers in d_c99_variadic_macros probe
    
    This matches a recent change to metaconfig.

M       Configure
M       uconfig.h

commit 7107f69556c329f7edd55e2a3c1a9434b061360a
Author: Aaron Crane <a...@cpan.org>
Date:   Thu Oct 12 17:35:52 2017 +0200

    Rely on C89 snprintf()

M       Configure
M       Cross/config.sh-arm-linux
M       Cross/config.sh-arm-linux-n770
M       NetWare/config.wc
M       Porting/Glossary
M       Porting/config.sh
M       Porting/config_H
M       config_h.SH
M       configure.com
M       perl.h
M       plan9/config_sh.sample
M       symbian/config.sh
M       uconfig.h
M       uconfig.sh
M       uconfig64.sh
M       win32/config.ce
M       win32/config.vc
M       win32/config_H.gc
M       win32/config_H.vc

commit 8c6fa36024cc4393df7ae2b2399cdfb202b1c40c
Author: Aaron Crane <a...@cpan.org>
Date:   Thu Oct 12 17:22:43 2017 +0200

    Rely on C89 vsnprintf()
    
    We assume it has the standard behaviour that, if the buffer is too short, it
    returns the desired buffer length.

M       perl.h
M       util.c

commit 5fceeb8871c21e4e3d7e7ec60f1f8de7414fa8b9
Author: Aaron Crane <a...@cpan.org>
Date:   Thu Oct 12 16:26:56 2017 +0200

    Don't use VOL internally, because "volatile" works just fine
    
    However, we do preserve it outside PERL_CORE for the use of XS authors.

M       embed.fnc
M       ext/re/re.pm
M       ext/re/re.xs
M       intrpvar.h
M       op.c
M       perl.c
M       perl.h
M       proto.h
M       regcomp.c
M       regcomp.h

commit 06e4c2904328de1909518c5031b20c9028457c3a
Author: Aaron Crane <a...@cpan.org>
Date:   Thu Oct 12 15:46:20 2017 +0200

    Assume C89 "volatile" keyword
    
    The Configure changes here were generated using a version of metaconfig
    that makes U/perl/perlxv.U assume that the keyword exists, and prevents
    U/modified/d_volatile.U from promising to define a "volatile" keyword;
    otherwise, those units would bring in the relevant Configure probe anyway.

M       Configure
M       Cross/config.sh-arm-linux
M       Cross/config.sh-arm-linux-n770
M       NetWare/config.wc
M       NetWare/config_H.wc
M       Porting/Glossary
M       Porting/config.sh
M       Porting/config_H
M       config_h.SH
M       configure.com
M       hints/mips.sh
M       hints/ultrix_4.sh
M       perl.h
M       plan9/config.plan9
M       plan9/config_h.sample
M       plan9/config_sh.sample
M       symbian/config.sh
M       uconfig.h
M       uconfig.sh
M       uconfig64.sh
M       win32/config.ce
M       win32/config.gc
M       win32/config.vc
M       win32/config_H.ce
M       win32/config_H.gc
M       win32/config_H.vc

commit 5978a75818455cfd4d47801541e60ad1ff3e5ec5
Author: Aaron Crane <a...@cpan.org>
Date:   Thu Oct 12 15:18:42 2017 +0200

    Assume we have C89 memchr()

M       Configure
M       Cross/config.sh-arm-linux
M       Cross/config.sh-arm-linux-n770
M       NetWare/config.wc
M       NetWare/config_H.wc
M       Porting/Glossary
M       Porting/config.sh
M       Porting/config_H
M       config_h.SH
M       configure.com
M       perl.h
M       plan9/config.plan9
M       plan9/config_h.sample
M       plan9/config_sh.sample
M       symbian/config.sh
M       uconfig.h
M       uconfig.sh
M       uconfig64.sh
M       win32/config.ce
M       win32/config.gc
M       win32/config.vc
M       win32/config_H.ce
M       win32/config_H.gc
M       win32/config_H.vc

commit f539261257cd2277b6e1a559c0b846bb4f94488d
Author: Aaron Crane <a...@cpan.org>
Date:   Thu Oct 12 14:31:56 2017 +0200

    Assume we have sane C89 memcmp()
    
    "Sane" means that it works correctly on bytes with their high bit set, as
    C89 also requires.
    
    We therefore no longer need to probe for and/or use BSD bcmp().

M       Configure
M       Cross/config.sh-arm-linux
M       Cross/config.sh-arm-linux-n770
M       NetWare/config.wc
M       NetWare/config_H.wc
M       Porting/Glossary
M       Porting/config.sh
M       Porting/config_H
M       config_h.SH
M       configure.com
M       embed.fnc
M       embed.h
M       ext/SDBM_File/sdbm.h
M       handy.h
M       hints/epix.sh
M       hints/svr4.sh
M       hints/svr5.sh
M       perl.h
M       plan9/config.plan9
M       plan9/config_h.sample
M       plan9/config_sh.sample
M       proto.h
M       symbian/config.sh
M       uconfig.h
M       uconfig.sh
M       uconfig64.sh
M       util.c
M       win32/config.ce
M       win32/config.gc
M       win32/config.vc
M       win32/config_H.ce
M       win32/config_H.gc
M       win32/config_H.vc

commit 07fdc50ee50d8d57b6a600cb3a0ecccc609a23ab
Author: Aaron Crane <a...@cpan.org>
Date:   Thu Oct 12 15:04:00 2017 +0200

    Drop support for PowerUX / Power MAX OS
    
    It is almost impossible to find any information about this platform on the
    internet, which strongly suggests that it's as dead as dead can be.

M       MANIFEST
D       hints/powerux.sh
M       pod/perlport.pod
M       t/op/sprintf.t
M       uconfig.h

commit e4e747cb10dc53f787d48c116115ad2487d2765e
Author: Aaron Crane <a...@cpan.org>
Date:   Thu Oct 12 14:00:03 2017 +0200

    Assume we have C89 memcpy() and memmove()
    
    We can therefore also avoid probing for and/or using BSD bcopy().

M       Configure
M       Cross/config.sh-arm-linux
M       Cross/config.sh-arm-linux-n770
M       NetWare/config.wc
M       NetWare/config_H.wc
M       Porting/Glossary
M       Porting/config.sh
M       Porting/config_H
M       config_h.SH
M       configure.com
M       embed.fnc
M       embed.h
M       ext/SDBM_File/pair.c
M       ext/SDBM_File/sdbm.h
M       hints/epix.sh
M       hints/svr4.sh
M       hints/svr5.sh
M       perl.h
M       plan9/config.plan9
M       plan9/config_h.sample
M       plan9/config_sh.sample
M       proto.h
M       symbian/config.sh
M       uconfig.h
M       uconfig.sh
M       uconfig64.sh
M       util.c
M       win32/config.ce
M       win32/config.gc
M       win32/config.vc
M       win32/config_H.ce
M       win32/config_H.gc
M       win32/config_H.vc

commit ea890a3129b44e9dfe194092fdf95b208cc299a4
Author: Aaron Crane <a...@cpan.org>
Date:   Thu Oct 12 13:47:22 2017 +0200

    Don't look for a "safe" memcpy()
    
    C89 says that, if you want to copy overlapping memory blocks, you must use
    memmove(), and that attempt to copy overlapping memory blocks using memcpy()
    yields undefined behaviour. So we should never even attempt to probe for a
    system memcpy() implementation that just happens to handle overlapping
    memory blocks. In particular, the compiler might compile the probe program
    in such a way that Configure thinks overlapping memcpy() works even when it
    doesn't.
    
    This has the additional advantage of removing a Configure probe that needs
    to execute a target-platform program on the build host.

M       Configure
M       Cross/config.sh-arm-linux
M       Cross/config.sh-arm-linux-n770
M       NetWare/config.wc
M       NetWare/config_H.wc
M       Porting/Glossary
M       Porting/config.sh
M       Porting/config_H
M       config_h.SH
M       configure.com
M       embed.fnc
M       embed.h
M       perl.h
M       plan9/config.plan9
M       plan9/config_h.sample
M       plan9/config_sh.sample
M       proto.h
M       symbian/config.sh
M       uconfig.h
M       uconfig.sh
M       uconfig64.sh
M       util.c
M       win32/config.ce
M       win32/config.gc
M       win32/config.vc
M       win32/config_H.ce
M       win32/config_H.gc
M       win32/config_H.vc

commit 81166d687b734dcc94745395e56ce6d1c749c7a4
Author: Aaron Crane <a...@cpan.org>
Date:   Thu Oct 12 11:02:27 2017 +0200

    Assume we have C89 memset()
    
    This means we also never need to consider using BSD bzero().

M       Configure
M       Cross/config.sh-arm-linux
M       Cross/config.sh-arm-linux-n770
M       NetWare/config.wc
M       NetWare/config_H.wc
M       Porting/Glossary
M       Porting/config.sh
M       Porting/config_H
M       config_h.SH
M       configure.com
M       embed.fnc
M       embed.h
M       ext/SDBM_File/sdbm.h
M       handy.h
M       hints/epix.sh
M       hints/svr4.sh
M       hints/svr5.sh
M       perl.h
M       plan9/config.plan9
M       plan9/config_h.sample
M       plan9/config_sh.sample
M       proto.h
M       symbian/config.sh
M       uconfig.h
M       uconfig.sh
M       uconfig64.sh
M       util.c
M       win32/config.ce
M       win32/config.gc
M       win32/config.vc
M       win32/config_H.ce
M       win32/config_H.gc
M       win32/config_H.vc

commit b3756bc9d286f17249ae4cf37135928092fd85fb
Author: Aaron Crane <a...@cpan.org>
Date:   Thu Oct 12 10:33:33 2017 +0200

    Remove USE_STRUCT_COPY in favour of C89 struct assignment
    
    At least for now, we retain the StructCopy() macro, but its definition
    always just uses struct assignment.

M       Configure
M       Cross/config.sh-arm-linux
M       Cross/config.sh-arm-linux-n770
M       NetWare/config.wc
M       NetWare/config_H.wc
M       Porting/Glossary
M       Porting/config.sh
M       Porting/config_H
M       config_h.SH
M       configure.com
M       handy.h
M       plan9/config.plan9
M       plan9/config_h.sample
M       plan9/config_sh.sample
M       symbian/config.sh
M       uconfig.h
M       uconfig.sh
M       uconfig64.sh
M       win32/config.ce
M       win32/config.gc
M       win32/config.vc
M       win32/config_H.ce
M       win32/config_H.gc
M       win32/config_H.vc
-----------------------------------------------------------------------

Summary of changes:
 MANIFEST                                           |  1 +
 Porting/Maintainers.pl                             |  2 +-
 cpan/Test-Simple/lib/Test/Builder.pm               | 11 ++++-
 cpan/Test-Simple/lib/Test/Builder/Formatter.pm     |  2 +-
 cpan/Test-Simple/lib/Test/Builder/Module.pm        |  2 +-
 cpan/Test-Simple/lib/Test/Builder/Tester.pm        |  2 +-
 cpan/Test-Simple/lib/Test/Builder/Tester/Color.pm  |  2 +-
 cpan/Test-Simple/lib/Test/Builder/TodoDiag.pm      |  2 +-
 cpan/Test-Simple/lib/Test/More.pm                  |  2 +-
 cpan/Test-Simple/lib/Test/Simple.pm                |  2 +-
 cpan/Test-Simple/lib/Test/Tester.pm                |  2 +-
 cpan/Test-Simple/lib/Test/Tester/Capture.pm        |  2 +-
 cpan/Test-Simple/lib/Test/Tester/CaptureRunner.pm  |  2 +-
 cpan/Test-Simple/lib/Test/Tester/Delegate.pm       |  2 +-
 cpan/Test-Simple/lib/Test/use/ok.pm                |  2 +-
 cpan/Test-Simple/lib/Test2.pm                      |  2 +-
 cpan/Test-Simple/lib/Test2/API.pm                  |  2 +-
 cpan/Test-Simple/lib/Test2/API/Breakage.pm         |  2 +-
 cpan/Test-Simple/lib/Test2/API/Context.pm          |  2 +-
 cpan/Test-Simple/lib/Test2/API/Instance.pm         |  2 +-
 cpan/Test-Simple/lib/Test2/API/Stack.pm            |  2 +-
 cpan/Test-Simple/lib/Test2/Event.pm                |  2 +-
 cpan/Test-Simple/lib/Test2/Event/Bail.pm           |  2 +-
 cpan/Test-Simple/lib/Test2/Event/Diag.pm           |  2 +-
 cpan/Test-Simple/lib/Test2/Event/Encoding.pm       |  2 +-
 cpan/Test-Simple/lib/Test2/Event/Exception.pm      |  2 +-
 cpan/Test-Simple/lib/Test2/Event/Fail.pm           |  2 +-
 cpan/Test-Simple/lib/Test2/Event/Generic.pm        |  2 +-
 cpan/Test-Simple/lib/Test2/Event/Note.pm           |  2 +-
 cpan/Test-Simple/lib/Test2/Event/Ok.pm             |  2 +-
 cpan/Test-Simple/lib/Test2/Event/Pass.pm           |  2 +-
 cpan/Test-Simple/lib/Test2/Event/Plan.pm           |  2 +-
 cpan/Test-Simple/lib/Test2/Event/Skip.pm           |  2 +-
 cpan/Test-Simple/lib/Test2/Event/Subtest.pm        |  2 +-
 cpan/Test-Simple/lib/Test2/Event/TAP/Version.pm    |  2 +-
 cpan/Test-Simple/lib/Test2/Event/Waiting.pm        |  2 +-
 cpan/Test-Simple/lib/Test2/EventFacet.pm           |  2 +-
 cpan/Test-Simple/lib/Test2/EventFacet/About.pm     |  2 +-
 cpan/Test-Simple/lib/Test2/EventFacet/Amnesty.pm   |  2 +-
 cpan/Test-Simple/lib/Test2/EventFacet/Assert.pm    |  2 +-
 cpan/Test-Simple/lib/Test2/EventFacet/Control.pm   |  2 +-
 cpan/Test-Simple/lib/Test2/EventFacet/Error.pm     |  2 +-
 cpan/Test-Simple/lib/Test2/EventFacet/Info.pm      |  2 +-
 cpan/Test-Simple/lib/Test2/EventFacet/Meta.pm      |  2 +-
 cpan/Test-Simple/lib/Test2/EventFacet/Parent.pm    |  2 +-
 cpan/Test-Simple/lib/Test2/EventFacet/Plan.pm      |  2 +-
 cpan/Test-Simple/lib/Test2/EventFacet/Trace.pm     |  2 +-
 cpan/Test-Simple/lib/Test2/Formatter.pm            |  2 +-
 cpan/Test-Simple/lib/Test2/Formatter/TAP.pm        |  8 ++--
 cpan/Test-Simple/lib/Test2/Hub.pm                  |  2 +-
 cpan/Test-Simple/lib/Test2/Hub/Interceptor.pm      |  2 +-
 .../lib/Test2/Hub/Interceptor/Terminator.pm        |  2 +-
 cpan/Test-Simple/lib/Test2/Hub/Subtest.pm          |  2 +-
 cpan/Test-Simple/lib/Test2/IPC.pm                  |  2 +-
 cpan/Test-Simple/lib/Test2/IPC/Driver.pm           |  2 +-
 cpan/Test-Simple/lib/Test2/IPC/Driver/Files.pm     |  2 +-
 cpan/Test-Simple/lib/Test2/Tools/Tiny.pm           |  6 +--
 cpan/Test-Simple/lib/Test2/Util.pm                 |  2 +-
 cpan/Test-Simple/lib/Test2/Util/ExternalMeta.pm    |  2 +-
 cpan/Test-Simple/lib/Test2/Util/Facets2Legacy.pm   |  2 +-
 cpan/Test-Simple/lib/Test2/Util/Trace.pm           |  2 +-
 cpan/Test-Simple/lib/ok.pm                         |  2 +-
 cpan/Test-Simple/t/regression/todo_and_facets.t    | 52 ++++++++++++++++++++++
 perl.h                                             |  2 +-
 64 files changed, 129 insertions(+), 67 deletions(-)
 create mode 100644 cpan/Test-Simple/t/regression/todo_and_facets.t

diff --git a/MANIFEST b/MANIFEST
index 9df16511e2..af783b2752 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -2848,6 +2848,7 @@ cpan/Test-Simple/t/regression/builder_does_not_init.t
 cpan/Test-Simple/t/regression/errors_facet.t
 cpan/Test-Simple/t/regression/inherit_trace.t
 cpan/Test-Simple/t/regression/no_name_in_subtest.t
+cpan/Test-Simple/t/regression/todo_and_facets.t
 cpan/Test-Simple/t/Test2/acceptance/try_it_done_testing.t
 cpan/Test-Simple/t/Test2/acceptance/try_it_fork.t
 cpan/Test-Simple/t/Test2/acceptance/try_it_no_plan.t
diff --git a/Porting/Maintainers.pl b/Porting/Maintainers.pl
index 8f5ef86bc0..9c8c128b24 100755
--- a/Porting/Maintainers.pl
+++ b/Porting/Maintainers.pl
@@ -1074,7 +1074,7 @@ use File::Glob qw(:case);
     },
 
     'Test::Simple' => {
-        'DISTRIBUTION' => 'EXODIST/Test-Simple-1.302101.tar.gz',
+        'DISTRIBUTION' => 'EXODIST/Test-Simple-1.302103.tar.gz',
         'FILES'        => q[cpan/Test-Simple],
         'EXCLUDED'     => [
             qr{^examples/},
diff --git a/cpan/Test-Simple/lib/Test/Builder.pm 
b/cpan/Test-Simple/lib/Test/Builder.pm
index b02327f4cb..d5709106bf 100644
--- a/cpan/Test-Simple/lib/Test/Builder.pm
+++ b/cpan/Test-Simple/lib/Test/Builder.pm
@@ -4,7 +4,7 @@ use 5.006;
 use strict;
 use warnings;
 
-our $VERSION = '1.302101';
+our $VERSION = '1.302103';
 
 BEGIN {
     if( $] < 5.008 ) {
@@ -69,9 +69,16 @@ sub _add_ts_hooks {
         # Turn a diag into a todo diag
         return Test::Builder::TodoDiag->new(%$e) if ref($e) eq 
'Test2::Event::Diag';
 
+        if ($active_hub == $hub) {
+            $e->set_todo($todo) if $e->can('set_todo');
+            $e->add_amnesty({tag => 'TODO', details => $todo});
+        }
+        else {
+            $e->add_amnesty({tag => 'TODO', details => $todo, inherited => 1});
+        }
+
         # Set todo on ok's
         if ($e->isa('Test2::Event::Ok')) {
-            $e->set_todo($todo);
             $e->set_effective_pass(1);
 
             if (my $result = $e->get_meta(__PACKAGE__)) {
diff --git a/cpan/Test-Simple/lib/Test/Builder/Formatter.pm 
b/cpan/Test-Simple/lib/Test/Builder/Formatter.pm
index a56fdb8982..0749eed130 100644
--- a/cpan/Test-Simple/lib/Test/Builder/Formatter.pm
+++ b/cpan/Test-Simple/lib/Test/Builder/Formatter.pm
@@ -2,7 +2,7 @@ package Test::Builder::Formatter;
 use strict;
 use warnings;
 
-our $VERSION = '1.302101';
+our $VERSION = '1.302103';
 
 BEGIN { require Test2::Formatter::TAP; our @ISA = qw(Test2::Formatter::TAP) }
 
diff --git a/cpan/Test-Simple/lib/Test/Builder/Module.pm 
b/cpan/Test-Simple/lib/Test/Builder/Module.pm
index 9ed459a916..d65a266a14 100644
--- a/cpan/Test-Simple/lib/Test/Builder/Module.pm
+++ b/cpan/Test-Simple/lib/Test/Builder/Module.pm
@@ -7,7 +7,7 @@ use Test::Builder;
 require Exporter;
 our @ISA = qw(Exporter);
 
-our $VERSION = '1.302101';
+our $VERSION = '1.302103';
 
 
 =head1 NAME
diff --git a/cpan/Test-Simple/lib/Test/Builder/Tester.pm 
b/cpan/Test-Simple/lib/Test/Builder/Tester.pm
index a6c160019a..2ab235e93e 100644
--- a/cpan/Test-Simple/lib/Test/Builder/Tester.pm
+++ b/cpan/Test-Simple/lib/Test/Builder/Tester.pm
@@ -1,7 +1,7 @@
 package Test::Builder::Tester;
 
 use strict;
-our $VERSION = '1.302101';
+our $VERSION = '1.302103';
 
 use Test::Builder;
 use Symbol;
diff --git a/cpan/Test-Simple/lib/Test/Builder/Tester/Color.pm 
b/cpan/Test-Simple/lib/Test/Builder/Tester/Color.pm
index 9a2779eee8..f31993f9c2 100644
--- a/cpan/Test-Simple/lib/Test/Builder/Tester/Color.pm
+++ b/cpan/Test-Simple/lib/Test/Builder/Tester/Color.pm
@@ -1,7 +1,7 @@
 package Test::Builder::Tester::Color;
 
 use strict;
-our $VERSION = '1.302101';
+our $VERSION = '1.302103';
 
 require Test::Builder::Tester;
 
diff --git a/cpan/Test-Simple/lib/Test/Builder/TodoDiag.pm 
b/cpan/Test-Simple/lib/Test/Builder/TodoDiag.pm
index f897f6a92e..afa2d23f81 100644
--- a/cpan/Test-Simple/lib/Test/Builder/TodoDiag.pm
+++ b/cpan/Test-Simple/lib/Test/Builder/TodoDiag.pm
@@ -2,7 +2,7 @@ package Test::Builder::TodoDiag;
 use strict;
 use warnings;
 
-our $VERSION = '1.302101';
+our $VERSION = '1.302103';
 
 BEGIN { require Test2::Event::Diag; our @ISA = qw(Test2::Event::Diag) }
 
diff --git a/cpan/Test-Simple/lib/Test/More.pm 
b/cpan/Test-Simple/lib/Test/More.pm
index a3b1b58b2f..c00b0101c9 100644
--- a/cpan/Test-Simple/lib/Test/More.pm
+++ b/cpan/Test-Simple/lib/Test/More.pm
@@ -17,7 +17,7 @@ sub _carp {
     return warn @_, " at $file line $line\n";
 }
 
-our $VERSION = '1.302101';
+our $VERSION = '1.302103';
 
 use Test::Builder::Module;
 our @ISA    = qw(Test::Builder::Module);
diff --git a/cpan/Test-Simple/lib/Test/Simple.pm 
b/cpan/Test-Simple/lib/Test/Simple.pm
index 8d53535662..4491e0abe5 100644
--- a/cpan/Test-Simple/lib/Test/Simple.pm
+++ b/cpan/Test-Simple/lib/Test/Simple.pm
@@ -4,7 +4,7 @@ use 5.006;
 
 use strict;
 
-our $VERSION = '1.302101';
+our $VERSION = '1.302103';
 
 use Test::Builder::Module;
 our @ISA    = qw(Test::Builder::Module);
diff --git a/cpan/Test-Simple/lib/Test/Tester.pm 
b/cpan/Test-Simple/lib/Test/Tester.pm
index 3888a39b8b..431922a173 100644
--- a/cpan/Test-Simple/lib/Test/Tester.pm
+++ b/cpan/Test-Simple/lib/Test/Tester.pm
@@ -18,7 +18,7 @@ require Exporter;
 
 use vars qw( @ISA @EXPORT );
 
-our $VERSION = '1.302101';
+our $VERSION = '1.302103';
 
 @EXPORT = qw( run_tests check_tests check_test cmp_results show_space );
 @ISA = qw( Exporter );
diff --git a/cpan/Test-Simple/lib/Test/Tester/Capture.pm 
b/cpan/Test-Simple/lib/Test/Tester/Capture.pm
index aa9cccf46f..a76fad0378 100644
--- a/cpan/Test-Simple/lib/Test/Tester/Capture.pm
+++ b/cpan/Test-Simple/lib/Test/Tester/Capture.pm
@@ -2,7 +2,7 @@ use strict;
 
 package Test::Tester::Capture;
 
-our $VERSION = '1.302101';
+our $VERSION = '1.302103';
 
 
 use Test::Builder;
diff --git a/cpan/Test-Simple/lib/Test/Tester/CaptureRunner.pm 
b/cpan/Test-Simple/lib/Test/Tester/CaptureRunner.pm
index 9026365e1f..3fe977d24b 100644
--- a/cpan/Test-Simple/lib/Test/Tester/CaptureRunner.pm
+++ b/cpan/Test-Simple/lib/Test/Tester/CaptureRunner.pm
@@ -3,7 +3,7 @@ use strict;
 
 package Test::Tester::CaptureRunner;
 
-our $VERSION = '1.302101';
+our $VERSION = '1.302103';
 
 
 use Test::Tester::Capture;
diff --git a/cpan/Test-Simple/lib/Test/Tester/Delegate.pm 
b/cpan/Test-Simple/lib/Test/Tester/Delegate.pm
index fc1e05414a..515595b947 100644
--- a/cpan/Test-Simple/lib/Test/Tester/Delegate.pm
+++ b/cpan/Test-Simple/lib/Test/Tester/Delegate.pm
@@ -3,7 +3,7 @@ use warnings;
 
 package Test::Tester::Delegate;
 
-our $VERSION = '1.302101';
+our $VERSION = '1.302103';
 
 use Scalar::Util();
 
diff --git a/cpan/Test-Simple/lib/Test/use/ok.pm 
b/cpan/Test-Simple/lib/Test/use/ok.pm
index 40f2ecbcc8..0c819bb575 100644
--- a/cpan/Test-Simple/lib/Test/use/ok.pm
+++ b/cpan/Test-Simple/lib/Test/use/ok.pm
@@ -1,7 +1,7 @@
 package Test::use::ok;
 use 5.005;
 
-our $VERSION = '1.302101';
+our $VERSION = '1.302103';
 
 
 __END__
diff --git a/cpan/Test-Simple/lib/Test2.pm b/cpan/Test-Simple/lib/Test2.pm
index e3d4abb981..cf5b661b9e 100644
--- a/cpan/Test-Simple/lib/Test2.pm
+++ b/cpan/Test-Simple/lib/Test2.pm
@@ -2,7 +2,7 @@ package Test2;
 use strict;
 use warnings;
 
-our $VERSION = '1.302101';
+our $VERSION = '1.302103';
 
 
 1;
diff --git a/cpan/Test-Simple/lib/Test2/API.pm 
b/cpan/Test-Simple/lib/Test2/API.pm
index 4e260e589b..ad64964d4b 100644
--- a/cpan/Test-Simple/lib/Test2/API.pm
+++ b/cpan/Test-Simple/lib/Test2/API.pm
@@ -9,7 +9,7 @@ BEGIN {
     $ENV{TEST2_ACTIVE} = 1;
 }
 
-our $VERSION = '1.302101';
+our $VERSION = '1.302103';
 
 
 my $INST;
diff --git a/cpan/Test-Simple/lib/Test2/API/Breakage.pm 
b/cpan/Test-Simple/lib/Test2/API/Breakage.pm
index 1407290fee..ebb190db42 100644
--- a/cpan/Test-Simple/lib/Test2/API/Breakage.pm
+++ b/cpan/Test-Simple/lib/Test2/API/Breakage.pm
@@ -2,7 +2,7 @@ package Test2::API::Breakage;
 use strict;
 use warnings;
 
-our $VERSION = '1.302101';
+our $VERSION = '1.302103';
 
 
 use Test2::Util qw/pkg_to_file/;
diff --git a/cpan/Test-Simple/lib/Test2/API/Context.pm 
b/cpan/Test-Simple/lib/Test2/API/Context.pm
index b59be2bae4..601b3dea46 100644
--- a/cpan/Test-Simple/lib/Test2/API/Context.pm
+++ b/cpan/Test-Simple/lib/Test2/API/Context.pm
@@ -2,7 +2,7 @@ package Test2::API::Context;
 use strict;
 use warnings;
 
-our $VERSION = '1.302101';
+our $VERSION = '1.302103';
 
 
 use Carp qw/confess croak/;
diff --git a/cpan/Test-Simple/lib/Test2/API/Instance.pm 
b/cpan/Test-Simple/lib/Test2/API/Instance.pm
index 06d105e57c..23dba6cbd6 100644
--- a/cpan/Test-Simple/lib/Test2/API/Instance.pm
+++ b/cpan/Test-Simple/lib/Test2/API/Instance.pm
@@ -2,7 +2,7 @@ package Test2::API::Instance;
 use strict;
 use warnings;
 
-our $VERSION = '1.302101';
+our $VERSION = '1.302103';
 
 
 our @CARP_NOT = qw/Test2::API Test2::API::Instance Test2::IPC::Driver 
Test2::Formatter/;
diff --git a/cpan/Test-Simple/lib/Test2/API/Stack.pm 
b/cpan/Test-Simple/lib/Test2/API/Stack.pm
index bd5d492050..f949f1ae3d 100644
--- a/cpan/Test-Simple/lib/Test2/API/Stack.pm
+++ b/cpan/Test-Simple/lib/Test2/API/Stack.pm
@@ -2,7 +2,7 @@ package Test2::API::Stack;
 use strict;
 use warnings;
 
-our $VERSION = '1.302101';
+our $VERSION = '1.302103';
 
 
 use Test2::Hub();
diff --git a/cpan/Test-Simple/lib/Test2/Event.pm 
b/cpan/Test-Simple/lib/Test2/Event.pm
index c7014f93a3..3a2c473cf4 100644
--- a/cpan/Test-Simple/lib/Test2/Event.pm
+++ b/cpan/Test-Simple/lib/Test2/Event.pm
@@ -2,7 +2,7 @@ package Test2::Event;
 use strict;
 use warnings;
 
-our $VERSION = '1.302101';
+our $VERSION = '1.302103';
 
 use Test2::Util::HashBase qw/trace -amnesty/;
 use Test2::Util::ExternalMeta qw/meta get_meta set_meta delete_meta/;
diff --git a/cpan/Test-Simple/lib/Test2/Event/Bail.pm 
b/cpan/Test-Simple/lib/Test2/Event/Bail.pm
index 4def1b1caa..4bfc2b8e58 100644
--- a/cpan/Test-Simple/lib/Test2/Event/Bail.pm
+++ b/cpan/Test-Simple/lib/Test2/Event/Bail.pm
@@ -2,7 +2,7 @@ package Test2::Event::Bail;
 use strict;
 use warnings;
 
-our $VERSION = '1.302101';
+our $VERSION = '1.302103';
 
 
 BEGIN { require Test2::Event; our @ISA = qw(Test2::Event) }
diff --git a/cpan/Test-Simple/lib/Test2/Event/Diag.pm 
b/cpan/Test-Simple/lib/Test2/Event/Diag.pm
index d94f07d508..fc15731343 100644
--- a/cpan/Test-Simple/lib/Test2/Event/Diag.pm
+++ b/cpan/Test-Simple/lib/Test2/Event/Diag.pm
@@ -2,7 +2,7 @@ package Test2::Event::Diag;
 use strict;
 use warnings;
 
-our $VERSION = '1.302101';
+our $VERSION = '1.302103';
 
 
 BEGIN { require Test2::Event; our @ISA = qw(Test2::Event) }
diff --git a/cpan/Test-Simple/lib/Test2/Event/Encoding.pm 
b/cpan/Test-Simple/lib/Test2/Event/Encoding.pm
index 1baa2b6c2f..6aa8e89a42 100644
--- a/cpan/Test-Simple/lib/Test2/Event/Encoding.pm
+++ b/cpan/Test-Simple/lib/Test2/Event/Encoding.pm
@@ -2,7 +2,7 @@ package Test2::Event::Encoding;
 use strict;
 use warnings;
 
-our $VERSION = '1.302101';
+our $VERSION = '1.302103';
 
 use Carp qw/croak/;
 
diff --git a/cpan/Test-Simple/lib/Test2/Event/Exception.pm 
b/cpan/Test-Simple/lib/Test2/Event/Exception.pm
index 4c3e333aed..7a4f44ab3c 100644
--- a/cpan/Test-Simple/lib/Test2/Event/Exception.pm
+++ b/cpan/Test-Simple/lib/Test2/Event/Exception.pm
@@ -2,7 +2,7 @@ package Test2::Event::Exception;
 use strict;
 use warnings;
 
-our $VERSION = '1.302101';
+our $VERSION = '1.302103';
 
 
 BEGIN { require Test2::Event; our @ISA = qw(Test2::Event) }
diff --git a/cpan/Test-Simple/lib/Test2/Event/Fail.pm 
b/cpan/Test-Simple/lib/Test2/Event/Fail.pm
index 753021a0c1..0993b316ec 100644
--- a/cpan/Test-Simple/lib/Test2/Event/Fail.pm
+++ b/cpan/Test-Simple/lib/Test2/Event/Fail.pm
@@ -2,7 +2,7 @@ package Test2::Event::Fail;
 use strict;
 use warnings;
 
-our $VERSION = '1.302101';
+our $VERSION = '1.302103';
 
 use Test2::EventFacet::Info;
 
diff --git a/cpan/Test-Simple/lib/Test2/Event/Generic.pm 
b/cpan/Test-Simple/lib/Test2/Event/Generic.pm
index f0bbb6aee4..d020217319 100644
--- a/cpan/Test-Simple/lib/Test2/Event/Generic.pm
+++ b/cpan/Test-Simple/lib/Test2/Event/Generic.pm
@@ -5,7 +5,7 @@ use warnings;
 use Carp qw/croak/;
 use Scalar::Util qw/reftype/;
 
-our $VERSION = '1.302101';
+our $VERSION = '1.302103';
 
 BEGIN { require Test2::Event; our @ISA = qw(Test2::Event) }
 use Test2::Util::HashBase;
diff --git a/cpan/Test-Simple/lib/Test2/Event/Note.pm 
b/cpan/Test-Simple/lib/Test2/Event/Note.pm
index 8c0386c194..94725a32d4 100644
--- a/cpan/Test-Simple/lib/Test2/Event/Note.pm
+++ b/cpan/Test-Simple/lib/Test2/Event/Note.pm
@@ -2,7 +2,7 @@ package Test2::Event::Note;
 use strict;
 use warnings;
 
-our $VERSION = '1.302101';
+our $VERSION = '1.302103';
 
 
 BEGIN { require Test2::Event; our @ISA = qw(Test2::Event) }
diff --git a/cpan/Test-Simple/lib/Test2/Event/Ok.pm 
b/cpan/Test-Simple/lib/Test2/Event/Ok.pm
index 86aea6ca4f..3589b5319e 100644
--- a/cpan/Test-Simple/lib/Test2/Event/Ok.pm
+++ b/cpan/Test-Simple/lib/Test2/Event/Ok.pm
@@ -2,7 +2,7 @@ package Test2::Event::Ok;
 use strict;
 use warnings;
 
-our $VERSION = '1.302101';
+our $VERSION = '1.302103';
 
 
 BEGIN { require Test2::Event; our @ISA = qw(Test2::Event) }
diff --git a/cpan/Test-Simple/lib/Test2/Event/Pass.pm 
b/cpan/Test-Simple/lib/Test2/Event/Pass.pm
index 38ab8c4508..7c51c496e4 100644
--- a/cpan/Test-Simple/lib/Test2/Event/Pass.pm
+++ b/cpan/Test-Simple/lib/Test2/Event/Pass.pm
@@ -2,7 +2,7 @@ package Test2::Event::Pass;
 use strict;
 use warnings;
 
-our $VERSION = '1.302101';
+our $VERSION = '1.302103';
 
 use Test2::EventFacet::Info;
 
diff --git a/cpan/Test-Simple/lib/Test2/Event/Plan.pm 
b/cpan/Test-Simple/lib/Test2/Event/Plan.pm
index 27f882929e..ab34ae336c 100644
--- a/cpan/Test-Simple/lib/Test2/Event/Plan.pm
+++ b/cpan/Test-Simple/lib/Test2/Event/Plan.pm
@@ -2,7 +2,7 @@ package Test2::Event::Plan;
 use strict;
 use warnings;
 
-our $VERSION = '1.302101';
+our $VERSION = '1.302103';
 
 
 BEGIN { require Test2::Event; our @ISA = qw(Test2::Event) }
diff --git a/cpan/Test-Simple/lib/Test2/Event/Skip.pm 
b/cpan/Test-Simple/lib/Test2/Event/Skip.pm
index 39186bc246..ac8717708a 100644
--- a/cpan/Test-Simple/lib/Test2/Event/Skip.pm
+++ b/cpan/Test-Simple/lib/Test2/Event/Skip.pm
@@ -2,7 +2,7 @@ package Test2::Event::Skip;
 use strict;
 use warnings;
 
-our $VERSION = '1.302101';
+our $VERSION = '1.302103';
 
 
 BEGIN { require Test2::Event::Ok; our @ISA = qw(Test2::Event::Ok) }
diff --git a/cpan/Test-Simple/lib/Test2/Event/Subtest.pm 
b/cpan/Test-Simple/lib/Test2/Event/Subtest.pm
index 202b8ed03f..651077d786 100644
--- a/cpan/Test-Simple/lib/Test2/Event/Subtest.pm
+++ b/cpan/Test-Simple/lib/Test2/Event/Subtest.pm
@@ -2,7 +2,7 @@ package Test2::Event::Subtest;
 use strict;
 use warnings;
 
-our $VERSION = '1.302101';
+our $VERSION = '1.302103';
 
 BEGIN { require Test2::Event::Ok; our @ISA = qw(Test2::Event::Ok) }
 use Test2::Util::HashBase qw{subevents buffered subtest_id};
diff --git a/cpan/Test-Simple/lib/Test2/Event/TAP/Version.pm 
b/cpan/Test-Simple/lib/Test2/Event/TAP/Version.pm
index 7501befb25..7bd3af5b6d 100644
--- a/cpan/Test-Simple/lib/Test2/Event/TAP/Version.pm
+++ b/cpan/Test-Simple/lib/Test2/Event/TAP/Version.pm
@@ -2,7 +2,7 @@ package Test2::Event::TAP::Version;
 use strict;
 use warnings;
 
-our $VERSION = '1.302101';
+our $VERSION = '1.302103';
 
 use Carp qw/croak/;
 
diff --git a/cpan/Test-Simple/lib/Test2/Event/Waiting.pm 
b/cpan/Test-Simple/lib/Test2/Event/Waiting.pm
index 94de1ff8d2..75e623558c 100644
--- a/cpan/Test-Simple/lib/Test2/Event/Waiting.pm
+++ b/cpan/Test-Simple/lib/Test2/Event/Waiting.pm
@@ -2,7 +2,7 @@ package Test2::Event::Waiting;
 use strict;
 use warnings;
 
-our $VERSION = '1.302101';
+our $VERSION = '1.302103';
 
 
 BEGIN { require Test2::Event; our @ISA = qw(Test2::Event) }
diff --git a/cpan/Test-Simple/lib/Test2/EventFacet.pm 
b/cpan/Test-Simple/lib/Test2/EventFacet.pm
index 7868110182..d44086cfcf 100644
--- a/cpan/Test-Simple/lib/Test2/EventFacet.pm
+++ b/cpan/Test-Simple/lib/Test2/EventFacet.pm
@@ -2,7 +2,7 @@ package Test2::EventFacet;
 use strict;
 use warnings;
 
-our $VERSION = '1.302101';
+our $VERSION = '1.302103';
 
 use Test2::Util::HashBase qw/-details/;
 use Carp qw/croak/;
diff --git a/cpan/Test-Simple/lib/Test2/EventFacet/About.pm 
b/cpan/Test-Simple/lib/Test2/EventFacet/About.pm
index cde831b0d0..fb49b7cd16 100644
--- a/cpan/Test-Simple/lib/Test2/EventFacet/About.pm
+++ b/cpan/Test-Simple/lib/Test2/EventFacet/About.pm
@@ -2,7 +2,7 @@ package Test2::EventFacet::About;
 use strict;
 use warnings;
 
-our $VERSION = '1.302101';
+our $VERSION = '1.302103';
 
 BEGIN { require Test2::EventFacet; our @ISA = qw(Test2::EventFacet) }
 use Test2::Util::HashBase qw{ -package -no_display };
diff --git a/cpan/Test-Simple/lib/Test2/EventFacet/Amnesty.pm 
b/cpan/Test-Simple/lib/Test2/EventFacet/Amnesty.pm
index 2286f1a09a..13a767f03d 100644
--- a/cpan/Test-Simple/lib/Test2/EventFacet/Amnesty.pm
+++ b/cpan/Test-Simple/lib/Test2/EventFacet/Amnesty.pm
@@ -2,7 +2,7 @@ package Test2::EventFacet::Amnesty;
 use strict;
 use warnings;
 
-our $VERSION = '1.302101';
+our $VERSION = '1.302103';
 
 sub is_list { 1 }
 
diff --git a/cpan/Test-Simple/lib/Test2/EventFacet/Assert.pm 
b/cpan/Test-Simple/lib/Test2/EventFacet/Assert.pm
index 31998aed3c..0a62b85bc6 100644
--- a/cpan/Test-Simple/lib/Test2/EventFacet/Assert.pm
+++ b/cpan/Test-Simple/lib/Test2/EventFacet/Assert.pm
@@ -2,7 +2,7 @@ package Test2::EventFacet::Assert;
 use strict;
 use warnings;
 
-our $VERSION = '1.302101';
+our $VERSION = '1.302103';
 
 BEGIN { require Test2::EventFacet; our @ISA = qw(Test2::EventFacet) }
 use Test2::Util::HashBase qw{ -pass -no_debug -number };
diff --git a/cpan/Test-Simple/lib/Test2/EventFacet/Control.pm 
b/cpan/Test-Simple/lib/Test2/EventFacet/Control.pm
index 64da003efa..86cec16545 100644
--- a/cpan/Test-Simple/lib/Test2/EventFacet/Control.pm
+++ b/cpan/Test-Simple/lib/Test2/EventFacet/Control.pm
@@ -2,7 +2,7 @@ package Test2::EventFacet::Control;
 use strict;
 use warnings;
 
-our $VERSION = '1.302101';
+our $VERSION = '1.302103';
 
 BEGIN { require Test2::EventFacet; our @ISA = qw(Test2::EventFacet) }
 use Test2::Util::HashBase qw{ -global -terminate -halt -has_callback -encoding 
};
diff --git a/cpan/Test-Simple/lib/Test2/EventFacet/Error.pm 
b/cpan/Test-Simple/lib/Test2/EventFacet/Error.pm
index d95175cbc9..96bed3c053 100644
--- a/cpan/Test-Simple/lib/Test2/EventFacet/Error.pm
+++ b/cpan/Test-Simple/lib/Test2/EventFacet/Error.pm
@@ -2,7 +2,7 @@ package Test2::EventFacet::Error;
 use strict;
 use warnings;
 
-our $VERSION = '1.302101';
+our $VERSION = '1.302103';
 
 sub facet_key { 'errors' }
 sub is_list { 1 }
diff --git a/cpan/Test-Simple/lib/Test2/EventFacet/Info.pm 
b/cpan/Test-Simple/lib/Test2/EventFacet/Info.pm
index feeefdb870..0be6146760 100644
--- a/cpan/Test-Simple/lib/Test2/EventFacet/Info.pm
+++ b/cpan/Test-Simple/lib/Test2/EventFacet/Info.pm
@@ -2,7 +2,7 @@ package Test2::EventFacet::Info;
 use strict;
 use warnings;
 
-our $VERSION = '1.302101';
+our $VERSION = '1.302103';
 
 sub is_list { 1 }
 
diff --git a/cpan/Test-Simple/lib/Test2/EventFacet/Meta.pm 
b/cpan/Test-Simple/lib/Test2/EventFacet/Meta.pm
index 72102a0456..a8c54094a4 100644
--- a/cpan/Test-Simple/lib/Test2/EventFacet/Meta.pm
+++ b/cpan/Test-Simple/lib/Test2/EventFacet/Meta.pm
@@ -2,7 +2,7 @@ package Test2::EventFacet::Meta;
 use strict;
 use warnings;
 
-our $VERSION = '1.302101';
+our $VERSION = '1.302103';
 
 BEGIN { require Test2::EventFacet; our @ISA = qw(Test2::EventFacet) }
 use vars qw/$AUTOLOAD/;
diff --git a/cpan/Test-Simple/lib/Test2/EventFacet/Parent.pm 
b/cpan/Test-Simple/lib/Test2/EventFacet/Parent.pm
index e16eabeb19..4b23126a82 100644
--- a/cpan/Test-Simple/lib/Test2/EventFacet/Parent.pm
+++ b/cpan/Test-Simple/lib/Test2/EventFacet/Parent.pm
@@ -2,7 +2,7 @@ package Test2::EventFacet::Parent;
 use strict;
 use warnings;
 
-our $VERSION = '1.302101';
+our $VERSION = '1.302103';
 
 use Carp qw/confess/;
 
diff --git a/cpan/Test-Simple/lib/Test2/EventFacet/Plan.pm 
b/cpan/Test-Simple/lib/Test2/EventFacet/Plan.pm
index 3413d03482..6d7d4c5035 100644
--- a/cpan/Test-Simple/lib/Test2/EventFacet/Plan.pm
+++ b/cpan/Test-Simple/lib/Test2/EventFacet/Plan.pm
@@ -2,7 +2,7 @@ package Test2::EventFacet::Plan;
 use strict;
 use warnings;
 
-our $VERSION = '1.302101';
+our $VERSION = '1.302103';
 
 BEGIN { require Test2::EventFacet; our @ISA = qw(Test2::EventFacet) }
 use Test2::Util::HashBase qw{ -count -skip -none };
diff --git a/cpan/Test-Simple/lib/Test2/EventFacet/Trace.pm 
b/cpan/Test-Simple/lib/Test2/EventFacet/Trace.pm
index 35ccbd1ec3..731aa5c622 100644
--- a/cpan/Test-Simple/lib/Test2/EventFacet/Trace.pm
+++ b/cpan/Test-Simple/lib/Test2/EventFacet/Trace.pm
@@ -2,7 +2,7 @@ package Test2::EventFacet::Trace;
 use strict;
 use warnings;
 
-our $VERSION = '1.302101';
+our $VERSION = '1.302103';
 
 BEGIN { require Test2::EventFacet; our @ISA = qw(Test2::EventFacet) }
 
diff --git a/cpan/Test-Simple/lib/Test2/Formatter.pm 
b/cpan/Test-Simple/lib/Test2/Formatter.pm
index 8a30157488..e95f24f541 100644
--- a/cpan/Test-Simple/lib/Test2/Formatter.pm
+++ b/cpan/Test-Simple/lib/Test2/Formatter.pm
@@ -2,7 +2,7 @@ package Test2::Formatter;
 use strict;
 use warnings;
 
-our $VERSION = '1.302101';
+our $VERSION = '1.302103';
 
 
 my %ADDED;
diff --git a/cpan/Test-Simple/lib/Test2/Formatter/TAP.pm 
b/cpan/Test-Simple/lib/Test2/Formatter/TAP.pm
index 4dea61484f..75a3f7de9e 100644
--- a/cpan/Test-Simple/lib/Test2/Formatter/TAP.pm
+++ b/cpan/Test-Simple/lib/Test2/Formatter/TAP.pm
@@ -2,7 +2,7 @@ package Test2::Formatter::TAP;
 use strict;
 use warnings;
 
-our $VERSION = '1.302101';
+our $VERSION = '1.302103';
 
 use Test2::Util qw/clone_io/;
 
@@ -187,6 +187,8 @@ sub error_tap {
     my $self = shift;
     my ($f) = @_;
 
+    my $IO = ($f->{amnesty} && @{$f->{amnesty}}) ? OUT_STD : OUT_ERR;
+
     return map {
         my $details = $_->{details};
 
@@ -202,7 +204,7 @@ sub error_tap {
             $msg =~ s/\n/\n# /g;
         }
 
-        [OUT_ERR, "$msg\n"];
+        [$IO, "$msg\n"];
     } @{$f->{errors}};
 }
 
@@ -362,7 +364,7 @@ sub info_tap {
     return map {
         my $details = $_->{details};
 
-        my $IO = $_->{debug} ? OUT_ERR : OUT_STD;
+        my $IO = $_->{debug} && !($f->{amnesty} && @{$f->{amnesty}}) ? OUT_ERR 
: OUT_STD;
 
         my $msg;
         if (ref($details)) {
diff --git a/cpan/Test-Simple/lib/Test2/Hub.pm 
b/cpan/Test-Simple/lib/Test2/Hub.pm
index 72609fdf86..e8cd270594 100644
--- a/cpan/Test-Simple/lib/Test2/Hub.pm
+++ b/cpan/Test-Simple/lib/Test2/Hub.pm
@@ -2,7 +2,7 @@ package Test2::Hub;
 use strict;
 use warnings;
 
-our $VERSION = '1.302101';
+our $VERSION = '1.302103';
 
 
 use Carp qw/carp croak confess/;
diff --git a/cpan/Test-Simple/lib/Test2/Hub/Interceptor.pm 
b/cpan/Test-Simple/lib/Test2/Hub/Interceptor.pm
index ed19d53061..168876caaa 100644
--- a/cpan/Test-Simple/lib/Test2/Hub/Interceptor.pm
+++ b/cpan/Test-Simple/lib/Test2/Hub/Interceptor.pm
@@ -2,7 +2,7 @@ package Test2::Hub::Interceptor;
 use strict;
 use warnings;
 
-our $VERSION = '1.302101';
+our $VERSION = '1.302103';
 
 
 use Test2::Hub::Interceptor::Terminator();
diff --git a/cpan/Test-Simple/lib/Test2/Hub/Interceptor/Terminator.pm 
b/cpan/Test-Simple/lib/Test2/Hub/Interceptor/Terminator.pm
index 93fbf657b3..7d1149862d 100644
--- a/cpan/Test-Simple/lib/Test2/Hub/Interceptor/Terminator.pm
+++ b/cpan/Test-Simple/lib/Test2/Hub/Interceptor/Terminator.pm
@@ -2,7 +2,7 @@ package Test2::Hub::Interceptor::Terminator;
 use strict;
 use warnings;
 
-our $VERSION = '1.302101';
+our $VERSION = '1.302103';
 
 
 1;
diff --git a/cpan/Test-Simple/lib/Test2/Hub/Subtest.pm 
b/cpan/Test-Simple/lib/Test2/Hub/Subtest.pm
index b675c014d4..f1532fe817 100644
--- a/cpan/Test-Simple/lib/Test2/Hub/Subtest.pm
+++ b/cpan/Test-Simple/lib/Test2/Hub/Subtest.pm
@@ -2,7 +2,7 @@ package Test2::Hub::Subtest;
 use strict;
 use warnings;
 
-our $VERSION = '1.302101';
+our $VERSION = '1.302103';
 
 BEGIN { require Test2::Hub; our @ISA = qw(Test2::Hub) }
 use Test2::Util::HashBase qw/nested exit_code manual_skip_all/;
diff --git a/cpan/Test-Simple/lib/Test2/IPC.pm 
b/cpan/Test-Simple/lib/Test2/IPC.pm
index 748f0cc17a..a91fac2b60 100644
--- a/cpan/Test-Simple/lib/Test2/IPC.pm
+++ b/cpan/Test-Simple/lib/Test2/IPC.pm
@@ -2,7 +2,7 @@ package Test2::IPC;
 use strict;
 use warnings;
 
-our $VERSION = '1.302101';
+our $VERSION = '1.302103';
 
 
 use Test2::API::Instance;
diff --git a/cpan/Test-Simple/lib/Test2/IPC/Driver.pm 
b/cpan/Test-Simple/lib/Test2/IPC/Driver.pm
index a95ec6517f..20a1a4f8f7 100644
--- a/cpan/Test-Simple/lib/Test2/IPC/Driver.pm
+++ b/cpan/Test-Simple/lib/Test2/IPC/Driver.pm
@@ -2,7 +2,7 @@ package Test2::IPC::Driver;
 use strict;
 use warnings;
 
-our $VERSION = '1.302101';
+our $VERSION = '1.302103';
 
 
 use Carp qw/confess/;
diff --git a/cpan/Test-Simple/lib/Test2/IPC/Driver/Files.pm 
b/cpan/Test-Simple/lib/Test2/IPC/Driver/Files.pm
index 7588394f74..b073dc3d21 100644
--- a/cpan/Test-Simple/lib/Test2/IPC/Driver/Files.pm
+++ b/cpan/Test-Simple/lib/Test2/IPC/Driver/Files.pm
@@ -2,7 +2,7 @@ package Test2::IPC::Driver::Files;
 use strict;
 use warnings;
 
-our $VERSION = '1.302101';
+our $VERSION = '1.302103';
 
 
 BEGIN { require Test2::IPC::Driver; our @ISA = qw(Test2::IPC::Driver) }
diff --git a/cpan/Test-Simple/lib/Test2/Tools/Tiny.pm 
b/cpan/Test-Simple/lib/Test2/Tools/Tiny.pm
index 4087821817..4473f2b908 100644
--- a/cpan/Test-Simple/lib/Test2/Tools/Tiny.pm
+++ b/cpan/Test-Simple/lib/Test2/Tools/Tiny.pm
@@ -16,7 +16,7 @@ use Test2::API qw/context run_subtest test2_stack/;
 use Test2::Hub::Interceptor();
 use Test2::Hub::Interceptor::Terminator();
 
-our $VERSION = '1.302101';
+our $VERSION = '1.302103';
 
 BEGIN { require Exporter; our @ISA = qw(Exporter) }
 our @EXPORT = qw{
@@ -188,10 +188,10 @@ sub todo {
             my ($active_hub, $event) = @_;
             if ($active_hub == $hub) {
                 $event->set_todo($reason) if $event->can('set_todo');
-                $event->add_amnesty([todo => $reason]);
+                $event->add_amnesty({tag => 'TODO', details => $reason});
             }
             else {
-                $event->add_amnesty({tag => 'todo', details => $reason, 
inherited => 1});
+                $event->add_amnesty({tag => 'TODO', details => $reason, 
inherited => 1});
             }
             return $event;
         },
diff --git a/cpan/Test-Simple/lib/Test2/Util.pm 
b/cpan/Test-Simple/lib/Test2/Util.pm
index d8ba33713d..a6ae792880 100644
--- a/cpan/Test-Simple/lib/Test2/Util.pm
+++ b/cpan/Test-Simple/lib/Test2/Util.pm
@@ -2,7 +2,7 @@ package Test2::Util;
 use strict;
 use warnings;
 
-our $VERSION = '1.302101';
+our $VERSION = '1.302103';
 
 use POSIX();
 use Config qw/%Config/;
diff --git a/cpan/Test-Simple/lib/Test2/Util/ExternalMeta.pm 
b/cpan/Test-Simple/lib/Test2/Util/ExternalMeta.pm
index 182dfd2bd8..ac2597ff5e 100644
--- a/cpan/Test-Simple/lib/Test2/Util/ExternalMeta.pm
+++ b/cpan/Test-Simple/lib/Test2/Util/ExternalMeta.pm
@@ -2,7 +2,7 @@ package Test2::Util::ExternalMeta;
 use strict;
 use warnings;
 
-our $VERSION = '1.302101';
+our $VERSION = '1.302103';
 
 
 use Carp qw/croak/;
diff --git a/cpan/Test-Simple/lib/Test2/Util/Facets2Legacy.pm 
b/cpan/Test-Simple/lib/Test2/Util/Facets2Legacy.pm
index d575edd375..4696ecb740 100644
--- a/cpan/Test-Simple/lib/Test2/Util/Facets2Legacy.pm
+++ b/cpan/Test-Simple/lib/Test2/Util/Facets2Legacy.pm
@@ -2,7 +2,7 @@ package Test2::Util::Facets2Legacy;
 use strict;
 use warnings;
 
-our $VERSION = '1.302101';
+our $VERSION = '1.302103';
 
 use Carp qw/croak confess/;
 use Scalar::Util qw/blessed/;
diff --git a/cpan/Test-Simple/lib/Test2/Util/Trace.pm 
b/cpan/Test-Simple/lib/Test2/Util/Trace.pm
index d4c0cdc856..9a51dc2e29 100644
--- a/cpan/Test-Simple/lib/Test2/Util/Trace.pm
+++ b/cpan/Test-Simple/lib/Test2/Util/Trace.pm
@@ -2,7 +2,7 @@ package Test2::Util::Trace;
 require Test2::EventFacet::Trace;
 @ISA = ('Test2::EventFacet::Trace');
 
-our $VERSION = '1.302101';
+our $VERSION = '1.302103';
 
 1;
 
diff --git a/cpan/Test-Simple/lib/ok.pm b/cpan/Test-Simple/lib/ok.pm
index 87396e7ad0..72add27aee 100644
--- a/cpan/Test-Simple/lib/ok.pm
+++ b/cpan/Test-Simple/lib/ok.pm
@@ -1,5 +1,5 @@
 package ok;
-our $VERSION = '1.302101';
+our $VERSION = '1.302103';
 
 use strict;
 use Test::More ();
diff --git a/cpan/Test-Simple/t/regression/todo_and_facets.t 
b/cpan/Test-Simple/t/regression/todo_and_facets.t
new file mode 100644
index 0000000000..28594b1a3e
--- /dev/null
+++ b/cpan/Test-Simple/t/regression/todo_and_facets.t
@@ -0,0 +1,52 @@
+use strict;
+use warnings;
+
+use Test2::API qw/context/;
+
+use Test2::Tools::Tiny qw/done_testing todo/;
+use Test::More();
+
+BEGIN {
+    *tm_ok = \&Test::More::ok;
+    *tm_pass = \&Test::More::pass;
+    *tm_fail = \&Test::More::fail;
+}
+
+use vars qw/$TODO/;
+
+sub leg_ok($;$@) {
+    my ($bool, $name, @diag);
+    my $ctx = context();
+    $ctx->ok($bool, $name, \@diag);
+    $ctx->release;
+
+    return $bool;
+}
+
+sub new_ok($;$@) {
+    my ($bool, $name, @diag) = @_;
+    my $ctx = context();
+
+    return $ctx->pass_and_release($name) if $bool;
+    return $ctx->fail_and_release($name, @diag);
+}
+
+{
+    local $TODO = "Testing TODO";
+
+    tm_ok(0, "tm_ok fail");
+    tm_fail('tm_fail');
+
+    leg_ok(0, "legacy ok fail");
+    new_ok(0, "new ok fail");
+}
+
+todo new_todo_test => sub {
+    tm_ok(0, "tm_ok fail");
+    tm_fail('tm_fail');
+
+    leg_ok(0, "legacy ok fail");
+    new_ok(0, "new ok fail");
+};
+
+done_testing;
diff --git a/perl.h b/perl.h
index 2286adcc1b..d8348ab5eb 100644
--- a/perl.h
+++ b/perl.h
@@ -2192,7 +2192,7 @@ int isnan(double d);
 #define PERL_INT_MAX ((int)INT_MAX)
 #define PERL_INT_MIN ((int)INT_MIN)
 
-#define PERL_ULONG_MAX ((unsigned long)MAXULONG)
+#define PERL_ULONG_MAX ((unsigned long)ULONG_MAX)
 #define PERL_ULONG_MIN ((unsigned long)0L)
 
 #define PERL_LONG_MAX ((long)LONG_MAX)

--
Perl5 Master Repository

Reply via email to