develooper Front page | perl.perl5.changes | Postings from January 2019

[perl.git] branch smoke-me/jkeenan/133771-repair-file-find-testsupdated. v5.29.7-14-ga89df5e81b

From:
James Keenan
Date:
January 21, 2019 20:09
Subject:
[perl.git] branch smoke-me/jkeenan/133771-repair-file-find-testsupdated. v5.29.7-14-ga89df5e81b
Message ID:
E1glfsH-0006Ip-Ez@git.dc.perl.space
In perl.git, the branch smoke-me/jkeenan/133771-repair-file-find-tests has been updated

<https://perl5.git.perl.org/perl.git/commitdiff/a89df5e81b3b0903bcde25fad6a193fdf754d726?hp=d754d1a80a3b7fd9e5b315e97226f82cfcde2107>

  discards  d754d1a80a3b7fd9e5b315e97226f82cfcde2107 (commit)
- Log -----------------------------------------------------------------
commit a89df5e81b3b0903bcde25fad6a193fdf754d726
Author: James E Keenan <jkeenan@cpan.org>
Date:   Wed Jan 16 10:56:44 2019 -0500

    find.t: Use temporary testing directory for all blocks of tests.
    
    During the execution of ext/File-Find/t/taint.t certain files and directories
    are created.  As inferred from smoke-test reports, when testing in parallel
    these entities ran the risk of being detected by certain tests in
    ext/File-Find/t/find.t, thereby causing intermittent failures in the smoke
    tests.
    
    Problem is being addressed by (a) moving the block of tests created in August 2014
    (RT #122547) to prevent processing of misspelled options to a place in the
    file where we have moved from the current working directory one level down to
    a temporary testing directory; and (b) providing a list of basenames of files
    we expect to find therewithin.

-----------------------------------------------------------------------

Summary of changes:
 Cross/config.sh-arm-linux                          |    40 +-
 Cross/config.sh-arm-linux-n770                     |    40 +-
 INSTALL                                            |    28 +-
 MANIFEST                                           |    14 +-
 META.json                                          |     2 +-
 META.yml                                           |     2 +-
 Makefile.SH                                        |    55 +-
 NetWare/Makefile                                   |     4 +-
 NetWare/config_H.wc                                |    10 +-
 Porting/Maintainers.pl                             |    24 +-
 Porting/config.sh                                  |    42 +-
 Porting/config_H                                   |    18 +-
 Porting/epigraphs.pod                              |    19 +
 Porting/makerel                                    |     2 +-
 Porting/perldelta_template.pod                     |     2 +-
 Porting/release_schedule.pod                       |     2 +-
 README                                             |     2 +-
 README.haiku                                       |     4 +-
 README.macosx                                      |     8 +-
 README.os2                                         |     2 +-
 README.vms                                         |     4 +-
 cpan/Compress-Raw-Bzip2/Bzip2.xs                   |     4 +-
 cpan/Compress-Raw-Bzip2/lib/Compress/Raw/Bzip2.pm  |     6 +-
 cpan/Compress-Raw-Bzip2/t/000prereq.t              |     2 +-
 .../Compress-Raw-Bzip2/t/compress/CompTestUtils.pm |    26 +-
 cpan/Compress-Raw-Zlib/lib/Compress/Raw/Zlib.pm    |     6 +-
 cpan/Compress-Raw-Zlib/t/compress/CompTestUtils.pm |    26 +-
 cpan/Encode/Encode.pm                              |   139 +-
 cpan/Encode/Encode.xs                              |   480 +-
 cpan/Encode/Encode/encode.h                        |  1230 +
 cpan/Encode/Unicode/Unicode.pm                     |     2 +-
 cpan/Encode/Unicode/Unicode.xs                     |   173 +-
 cpan/Encode/encengine.c                            |     4 +-
 cpan/Encode/t/decode.t                             |     9 +-
 cpan/Encode/t/enc_eucjp.t                          |     4 +
 cpan/Encode/t/utf8messages.t                       |    33 -
 cpan/Encode/t/utf8warnings.t                       |   109 +-
 cpan/File-Temp/lib/File/Temp.pm                    |    19 +-
 cpan/IO-Compress/Makefile.PL                       |     2 +-
 cpan/IO-Compress/bin/zipdetails                    |     3 +-
 cpan/IO-Compress/lib/Compress/Zlib.pm              |    18 +-
 cpan/IO-Compress/lib/IO/Compress/Adapter/Bzip2.pm  |     6 +-
 .../IO-Compress/lib/IO/Compress/Adapter/Deflate.pm |     6 +-
 .../lib/IO/Compress/Adapter/Identity.pm            |     4 +-
 cpan/IO-Compress/lib/IO/Compress/Base.pm           |    12 +-
 cpan/IO-Compress/lib/IO/Compress/Base/Common.pm    |    10 +-
 cpan/IO-Compress/lib/IO/Compress/Bzip2.pm          |    18 +-
 cpan/IO-Compress/lib/IO/Compress/Deflate.pm        |    18 +-
 cpan/IO-Compress/lib/IO/Compress/FAQ.pod           |     4 +-
 cpan/IO-Compress/lib/IO/Compress/Gzip.pm           |    20 +-
 cpan/IO-Compress/lib/IO/Compress/Gzip/Constants.pm |     2 +-
 cpan/IO-Compress/lib/IO/Compress/RawDeflate.pm     |    20 +-
 cpan/IO-Compress/lib/IO/Compress/Zip.pm            |    34 +-
 cpan/IO-Compress/lib/IO/Compress/Zip/Constants.pm  |     2 +-
 cpan/IO-Compress/lib/IO/Compress/Zlib/Constants.pm |     2 +-
 cpan/IO-Compress/lib/IO/Compress/Zlib/Extra.pm     |     4 +-
 .../lib/IO/Uncompress/Adapter/Bunzip2.pm           |     6 +-
 .../lib/IO/Uncompress/Adapter/Identity.pm          |     6 +-
 .../lib/IO/Uncompress/Adapter/Inflate.pm           |     7 +-
 cpan/IO-Compress/lib/IO/Uncompress/AnyInflate.pm   |    27 +-
 .../IO-Compress/lib/IO/Uncompress/AnyUncompress.pm |    87 +-
 cpan/IO-Compress/lib/IO/Uncompress/Base.pm         |    19 +-
 cpan/IO-Compress/lib/IO/Uncompress/Bunzip2.pm      |    17 +-
 cpan/IO-Compress/lib/IO/Uncompress/Gunzip.pm       |    21 +-
 cpan/IO-Compress/lib/IO/Uncompress/Inflate.pm      |    17 +-
 cpan/IO-Compress/lib/IO/Uncompress/RawInflate.pm   |    19 +-
 cpan/IO-Compress/lib/IO/Uncompress/Unzip.pm        |    36 +-
 cpan/IO-Compress/t/000prereq.t                     |     2 +-
 cpan/IO-Compress/t/004gziphdr.t                    |     4 +-
 cpan/IO-Compress/t/101truncate-bzip2.t             |     2 +-
 cpan/IO-Compress/t/101truncate-deflate.t           |     2 +-
 cpan/IO-Compress/t/101truncate-gzip.t              |     2 +-
 cpan/IO-Compress/t/101truncate-zip.t               |     2 +-
 cpan/IO-Compress/t/105oneshot-zip-only.t           |    31 +-
 cpan/IO-Compress/t/compress/CompTestUtils.pm       |    26 +-
 cpan/IO-Compress/t/compress/generic.pl             |    53 +-
 cpan/IO-Compress/t/compress/multi.pl               |     2 -
 cpan/IO-Compress/t/compress/oneshot.pl             |    79 +-
 cpan/IO-Compress/t/compress/truncate.pl            |     8 +-
 cpan/IO-Compress/t/files/meta.xml                  |     2 +
 cpan/IO-Compress/t/files/test.ods                  |   Bin 0 -> 7403 bytes
 .../lib/Math/BigInt/FastCalc.pm                    |     2 +-
 cpan/Math-BigInt/lib/Math/BigFloat.pm              |    24 +-
 cpan/Math-BigInt/lib/Math/BigInt.pm                |   374 +-
 cpan/Math-BigInt/lib/Math/BigInt/Calc.pm           |     2 +-
 cpan/Math-BigInt/lib/Math/BigInt/CalcEmu.pm        |   394 -
 cpan/Math-BigInt/lib/Math/BigInt/Lib.pm            |   428 +-
 cpan/Math-BigInt/t/Math/BigInt/Lib/Minimal.pm      |     4 +-
 cpan/Math-BigInt/t/bnok-mbf.t                      |  1451 +
 cpan/Math-BigInt/t/bnok-mbi.t                      |  1451 +
 cpan/Math-BigInt/t/calling.t                       |     2 +-
 cpan/Math-BigInt/t/from_base-mbi.t                 |   126 +
 cpan/Math-BigInt/t/to_base-mbi.t                   |    93 +
 cpan/Test-Simple/lib/Test/Builder.pm               |    25 +-
 cpan/Test-Simple/lib/Test/Builder/Formatter.pm     |     4 +-
 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      |     4 +-
 cpan/Test-Simple/lib/Test/More.pm                  |    19 +-
 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                      |     4 +-
 cpan/Test-Simple/lib/Test2/API.pm                  |     4 +-
 cpan/Test-Simple/lib/Test2/API/Breakage.pm         |     4 +-
 cpan/Test-Simple/lib/Test2/API/Context.pm          |    40 +-
 cpan/Test-Simple/lib/Test2/API/Instance.pm         |    91 +-
 cpan/Test-Simple/lib/Test2/API/Stack.pm            |     4 +-
 cpan/Test-Simple/lib/Test2/Event.pm                |     4 +-
 cpan/Test-Simple/lib/Test2/Event/Bail.pm           |     4 +-
 cpan/Test-Simple/lib/Test2/Event/Diag.pm           |     4 +-
 cpan/Test-Simple/lib/Test2/Event/Encoding.pm       |     4 +-
 cpan/Test-Simple/lib/Test2/Event/Exception.pm      |     4 +-
 cpan/Test-Simple/lib/Test2/Event/Fail.pm           |     4 +-
 cpan/Test-Simple/lib/Test2/Event/Generic.pm        |     4 +-
 cpan/Test-Simple/lib/Test2/Event/Note.pm           |     4 +-
 cpan/Test-Simple/lib/Test2/Event/Ok.pm             |     4 +-
 cpan/Test-Simple/lib/Test2/Event/Pass.pm           |     4 +-
 cpan/Test-Simple/lib/Test2/Event/Plan.pm           |     4 +-
 cpan/Test-Simple/lib/Test2/Event/Skip.pm           |     4 +-
 cpan/Test-Simple/lib/Test2/Event/Subtest.pm        |     4 +-
 cpan/Test-Simple/lib/Test2/Event/TAP/Version.pm    |     4 +-
 cpan/Test-Simple/lib/Test2/Event/V2.pm             |     4 +-
 cpan/Test-Simple/lib/Test2/Event/Waiting.pm        |     4 +-
 cpan/Test-Simple/lib/Test2/EventFacet.pm           |     4 +-
 cpan/Test-Simple/lib/Test2/EventFacet/About.pm     |     4 +-
 cpan/Test-Simple/lib/Test2/EventFacet/Amnesty.pm   |     4 +-
 cpan/Test-Simple/lib/Test2/EventFacet/Assert.pm    |     4 +-
 cpan/Test-Simple/lib/Test2/EventFacet/Control.pm   |     4 +-
 cpan/Test-Simple/lib/Test2/EventFacet/Error.pm     |     4 +-
 cpan/Test-Simple/lib/Test2/EventFacet/Hub.pm       |     4 +-
 cpan/Test-Simple/lib/Test2/EventFacet/Info.pm      |    36 +-
 .../Test-Simple/lib/Test2/EventFacet/Info/Table.pm |   142 +
 cpan/Test-Simple/lib/Test2/EventFacet/Meta.pm      |     4 +-
 cpan/Test-Simple/lib/Test2/EventFacet/Parent.pm    |     6 +-
 cpan/Test-Simple/lib/Test2/EventFacet/Plan.pm      |     4 +-
 cpan/Test-Simple/lib/Test2/EventFacet/Render.pm    |     6 +-
 cpan/Test-Simple/lib/Test2/EventFacet/Trace.pm     |     4 +-
 cpan/Test-Simple/lib/Test2/Formatter.pm            |    27 +-
 cpan/Test-Simple/lib/Test2/Formatter/TAP.pm        |    47 +-
 cpan/Test-Simple/lib/Test2/Hub.pm                  |     4 +-
 cpan/Test-Simple/lib/Test2/Hub/Interceptor.pm      |     4 +-
 .../lib/Test2/Hub/Interceptor/Terminator.pm        |     4 +-
 cpan/Test-Simple/lib/Test2/Hub/Subtest.pm          |     4 +-
 cpan/Test-Simple/lib/Test2/IPC.pm                  |     4 +-
 cpan/Test-Simple/lib/Test2/IPC/Driver.pm           |    12 +-
 cpan/Test-Simple/lib/Test2/IPC/Driver/Files.pm     |    24 +-
 cpan/Test-Simple/lib/Test2/Tools/Tiny.pm           |     4 +-
 cpan/Test-Simple/lib/Test2/Transition.pod          |     2 +-
 cpan/Test-Simple/lib/Test2/Util.pm                 |     6 +-
 cpan/Test-Simple/lib/Test2/Util/ExternalMeta.pm    |     4 +-
 cpan/Test-Simple/lib/Test2/Util/Facets2Legacy.pm   |     4 +-
 cpan/Test-Simple/lib/Test2/Util/HashBase.pm        |     4 +-
 cpan/Test-Simple/lib/Test2/Util/Trace.pm           |     4 +-
 cpan/Test-Simple/lib/ok.pm                         |     2 +-
 cpan/Test-Simple/t/Test2/acceptance/try_it_fork.t  |     4 +-
 cpan/Test-Simple/t/Test2/modules/API/Context.t     |    30 +
 cpan/Test-Simple/t/Test2/modules/API/Instance.t    |   160 +-
 cpan/Test-Simple/t/Test2/modules/Formatter/TAP.t   |   157 +-
 .../Test-Simple/t/Test2/modules/IPC/Driver/Files.t |     5 +
 .../t/Test2/regression/ipc_files_abort_exit.t      |     4 +-
 cpan/Test-Simple/t/regression/812-todo.t           |    21 +
 cpan/Test-Simple/t/regression/817-subtest-todo.t   |    48 +
 cpan/Unicode-Collate/Collate.pm                    |    10 +-
 cpan/Unicode-Collate/Collate/CJK/Big5.pm           |     2 +-
 cpan/Unicode-Collate/Collate/CJK/GB2312.pm         |     2 +-
 cpan/Unicode-Collate/Collate/CJK/JISX0208.pm       |     2 +-
 cpan/Unicode-Collate/Collate/CJK/Korean.pm         |    26 +-
 cpan/Unicode-Collate/Collate/CJK/Pinyin.pm         |     2 +-
 cpan/Unicode-Collate/Collate/CJK/Stroke.pm         |     2 +-
 cpan/Unicode-Collate/Collate/CJK/Zhuyin.pm         |     2 +-
 cpan/Unicode-Collate/Collate/Locale.pm             |     8 +-
 cpan/Unicode-Collate/Collate/Locale/af.pl          |     6 +-
 cpan/Unicode-Collate/Collate/Locale/ar.pl          |    24 +-
 cpan/Unicode-Collate/Collate/Locale/as.pl          |    22 +-
 cpan/Unicode-Collate/Collate/Locale/az.pl          |    98 +-
 cpan/Unicode-Collate/Collate/Locale/be.pl          |    20 +-
 cpan/Unicode-Collate/Collate/Locale/bn.pl          |    12 +-
 cpan/Unicode-Collate/Collate/Locale/ca.pl          |    28 +-
 cpan/Unicode-Collate/Collate/Locale/cs.pl          |    44 +-
 cpan/Unicode-Collate/Collate/Locale/cu.pl          |   174 +
 cpan/Unicode-Collate/Collate/Locale/cy.pl          |    52 +-
 cpan/Unicode-Collate/Collate/Locale/da.pl          |   148 +-
 cpan/Unicode-Collate/Collate/Locale/de_at_ph.pl    |    56 +-
 cpan/Unicode-Collate/Collate/Locale/de_phone.pl    |    52 +-
 cpan/Unicode-Collate/Collate/Locale/dsb.pl         |   112 +-
 cpan/Unicode-Collate/Collate/Locale/ee.pl          |    62 +-
 cpan/Unicode-Collate/Collate/Locale/eo.pl          |    52 +-
 cpan/Unicode-Collate/Collate/Locale/es.pl          |    12 +-
 cpan/Unicode-Collate/Collate/Locale/es_trad.pl     |    24 +-
 cpan/Unicode-Collate/Collate/Locale/et.pl          |    96 +-
 cpan/Unicode-Collate/Collate/Locale/fa.pl          |    88 +-
 cpan/Unicode-Collate/Collate/Locale/fi.pl          |   122 +-
 cpan/Unicode-Collate/Collate/Locale/fi_phone.pl    |   118 +-
 cpan/Unicode-Collate/Collate/Locale/fil.pl         |    18 +-
 cpan/Unicode-Collate/Collate/Locale/fo.pl          |   148 +-
 cpan/Unicode-Collate/Collate/Locale/fr_ca.pl       |     2 +-
 cpan/Unicode-Collate/Collate/Locale/gu.pl          |    12 +-
 cpan/Unicode-Collate/Collate/Locale/ha.pl          |    24 +-
 cpan/Unicode-Collate/Collate/Locale/haw.pl         |    38 +-
 cpan/Unicode-Collate/Collate/Locale/he.pl          |     8 +-
 cpan/Unicode-Collate/Collate/Locale/hi.pl          |    12 +-
 cpan/Unicode-Collate/Collate/Locale/hr.pl          |    90 +-
 cpan/Unicode-Collate/Collate/Locale/hu.pl          |   296 +-
 cpan/Unicode-Collate/Collate/Locale/hy.pl          |    12 +-
 cpan/Unicode-Collate/Collate/Locale/ig.pl          |   102 +-
 cpan/Unicode-Collate/Collate/Locale/is.pl          |   156 +-
 cpan/Unicode-Collate/Collate/Locale/ja.pl          |  2642 +-
 cpan/Unicode-Collate/Collate/Locale/kk.pl          |    23 +-
 cpan/Unicode-Collate/Collate/Locale/kl.pl          |   144 +-
 cpan/Unicode-Collate/Collate/Locale/kn.pl          |    14 +-
 cpan/Unicode-Collate/Collate/Locale/ko.pl          |  1284 +-
 cpan/Unicode-Collate/Collate/Locale/kok.pl         |    20 +-
 cpan/Unicode-Collate/Collate/Locale/lkt.pl         |    44 +-
 cpan/Unicode-Collate/Collate/Locale/ln.pl          |    18 +-
 cpan/Unicode-Collate/Collate/Locale/lt.pl          |    82 +-
 cpan/Unicode-Collate/Collate/Locale/lv.pl          |    68 +-
 cpan/Unicode-Collate/Collate/Locale/mk.pl          |    32 +-
 cpan/Unicode-Collate/Collate/Locale/ml.pl          |    38 +-
 cpan/Unicode-Collate/Collate/Locale/mr.pl          |    22 +-
 cpan/Unicode-Collate/Collate/Locale/mt.pl          |    54 +-
 cpan/Unicode-Collate/Collate/Locale/nb.pl          |   146 +-
 cpan/Unicode-Collate/Collate/Locale/nn.pl          |   146 +-
 cpan/Unicode-Collate/Collate/Locale/nso.pl         |    68 +-
 cpan/Unicode-Collate/Collate/Locale/om.pl          |    38 +-
 cpan/Unicode-Collate/Collate/Locale/or.pl          |    18 +-
 cpan/Unicode-Collate/Collate/Locale/pa.pl          |    36 +-
 cpan/Unicode-Collate/Collate/Locale/pl.pl          |    96 +-
 cpan/Unicode-Collate/Collate/Locale/ro.pl          |   100 +-
 cpan/Unicode-Collate/Collate/Locale/sa.pl          |    22 +-
 cpan/Unicode-Collate/Collate/Locale/se.pl          |   292 +-
 cpan/Unicode-Collate/Collate/Locale/si.pl          |    14 +-
 cpan/Unicode-Collate/Collate/Locale/si_dict.pl     |    12 +-
 cpan/Unicode-Collate/Collate/Locale/sk.pl          |    84 +-
 cpan/Unicode-Collate/Collate/Locale/sl.pl          |    28 +-
 cpan/Unicode-Collate/Collate/Locale/sq.pl          |    92 +-
 cpan/Unicode-Collate/Collate/Locale/sr.pl          |     8 +-
 cpan/Unicode-Collate/Collate/Locale/sv.pl          |   172 +-
 cpan/Unicode-Collate/Collate/Locale/sv_refo.pl     |   168 +-
 cpan/Unicode-Collate/Collate/Locale/ta.pl          |   104 +-
 cpan/Unicode-Collate/Collate/Locale/te.pl          |    12 +-
 cpan/Unicode-Collate/Collate/Locale/th.pl          |    36 +-
 cpan/Unicode-Collate/Collate/Locale/tn.pl          |    68 +-
 cpan/Unicode-Collate/Collate/Locale/to.pl          |   118 +-
 cpan/Unicode-Collate/Collate/Locale/tr.pl          |    86 +-
 cpan/Unicode-Collate/Collate/Locale/ug_cyrl.pl     |     8 +-
 cpan/Unicode-Collate/Collate/Locale/uk.pl          |    22 +-
 cpan/Unicode-Collate/Collate/Locale/ur.pl          |   144 +-
 cpan/Unicode-Collate/Collate/Locale/vi.pl          |   420 +-
 cpan/Unicode-Collate/Collate/Locale/vo.pl          |    52 +-
 cpan/Unicode-Collate/Collate/Locale/wae.pl         |    42 +-
 cpan/Unicode-Collate/Collate/Locale/wo.pl          |    56 +-
 cpan/Unicode-Collate/Collate/Locale/yo.pl          |    46 +-
 cpan/Unicode-Collate/Collate/Locale/zh.pl          |   416 +-
 cpan/Unicode-Collate/Collate/Locale/zh_big5.pl     |   416 +-
 cpan/Unicode-Collate/Collate/Locale/zh_gb.pl       |   416 +-
 cpan/Unicode-Collate/Collate/Locale/zh_pin.pl      |   642 +-
 cpan/Unicode-Collate/Collate/Locale/zh_strk.pl     |   642 +-
 cpan/Unicode-Collate/Collate/Locale/zh_zhu.pl      |   642 +-
 cpan/Unicode-Collate/Collate/allkeys.txt           | 56368 ++++++++++---------
 cpan/Unicode-Collate/t/ident.t                     |    22 +-
 cpan/Unicode-Collate/t/loc_cu.t                    |   530 +
 cpan/Unicode-Collate/t/loc_es.t                    |     2 +-
 cpan/Unicode-Collate/t/loc_estr.t                  |     2 +-
 cpan/Unicode-Collate/t/loc_fr.t                    |    43 +-
 cpan/Unicode-Collate/t/loc_kk.t                    |    26 +-
 cpan/Unicode-Collate/t/version.t                   |     4 +-
 dist/Module-CoreList/Changes                       |     3 +
 dist/Module-CoreList/lib/Module/CoreList.pm        |   152 +-
 dist/Module-CoreList/lib/Module/CoreList/Utils.pm  |     9 +-
 ext/Devel-Peek/t/Peek.t                            |    19 +-
 ext/File-Find/t/find.t                             |    34 +-
 ext/XS-APItest/t/call_checker.t                    |     8 +-
 hints/catamount.sh                                 |     4 +-
 lib/B/Op_private.pm                                |     2 +-
 numeric.c                                          |     1 +
 patchlevel.h                                       |     4 +-
 perl.c                                             |     4 +-
 plan9/config.plan9                                 |    10 +-
 plan9/config_sh.sample                             |    38 +-
 pod/.gitignore                                     |     2 +-
 pod/perl.pod                                       |     1 +
 pod/perl5293delta.pod                              |     2 +-
 pod/perl5297delta.pod                              |   264 +
 pod/perldelta.pod                                  |    31 +-
 pod/perlhist.pod                                   |     1 +
 t/porting/customized.dat                           |     1 -
 toke.c                                             |    10 +-
 vms/descrip_mms.template                           |     2 +-
 win32/GNUmakefile                                  |     6 +-
 win32/Makefile                                     |     6 +-
 win32/makefile.mk                                  |     6 +-
 win32/pod.mak                                      |     4 +
 297 files changed, 43061 insertions(+), 36078 deletions(-)
 delete mode 100644 cpan/Encode/t/utf8messages.t
 create mode 100644 cpan/IO-Compress/t/files/meta.xml
 create mode 100644 cpan/IO-Compress/t/files/test.ods
 delete mode 100644 cpan/Math-BigInt/lib/Math/BigInt/CalcEmu.pm
 create mode 100644 cpan/Math-BigInt/t/bnok-mbf.t
 create mode 100644 cpan/Math-BigInt/t/bnok-mbi.t
 create mode 100644 cpan/Math-BigInt/t/from_base-mbi.t
 create mode 100644 cpan/Math-BigInt/t/to_base-mbi.t
 create mode 100644 cpan/Test-Simple/lib/Test2/EventFacet/Info/Table.pm
 create mode 100644 cpan/Test-Simple/t/regression/812-todo.t
 create mode 100644 cpan/Test-Simple/t/regression/817-subtest-todo.t
 create mode 100644 cpan/Unicode-Collate/Collate/Locale/cu.pl
 create mode 100644 cpan/Unicode-Collate/t/loc_cu.t
 create mode 100644 pod/perl5297delta.pod

diff --git a/Cross/config.sh-arm-linux b/Cross/config.sh-arm-linux
index b61f6220a1..85ee845e96 100644
--- a/Cross/config.sh-arm-linux
+++ b/Cross/config.sh-arm-linux
@@ -31,12 +31,12 @@ afsroot='/afs'
 alignbytes='4'
 aphostname='/bin/hostname'
 api_revision='5'
-api_subversion='7'
+api_subversion='8'
 api_version='29'
-api_versionstring='5.29.7'
+api_versionstring='5.29.8'
 ar='ar'
-archlib='/usr/lib/perl5/5.29.7/armv4l-linux'
-archlibexp='/usr/lib/perl5/5.29.7/armv4l-linux'
+archlib='/usr/lib/perl5/5.29.8/armv4l-linux'
+archlibexp='/usr/lib/perl5/5.29.8/armv4l-linux'
 archname64=''
 archname='armv4l-linux'
 archobjs=''
@@ -55,7 +55,7 @@ castflags='0'
 cat='cat'
 cc='cc'
 cccdlflags='-fpic'
-ccdlflags='-rdynamic -Wl,-rpath,/usr/lib/perl5/5.29.7/armv4l-linux/CORE'
+ccdlflags='-rdynamic -Wl,-rpath,/usr/lib/perl5/5.29.8/armv4l-linux/CORE'
 ccflags='-fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
 ccflags_uselargefiles='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
 ccname='arm-linux-gcc'
@@ -817,7 +817,7 @@ inc_version_list=' '
 inc_version_list_init='0'
 incpath=''
 inews=''
-installarchlib='./install_me_here/usr/lib/perl5/5.29.7/armv4l-linux'
+installarchlib='./install_me_here/usr/lib/perl5/5.29.8/armv4l-linux'
 installbin='./install_me_here/usr/bin'
 installhtml1dir=''
 installhtml3dir=''
@@ -825,13 +825,13 @@ installman1dir='./install_me_here/usr/share/man/man1'
 installman3dir='./install_me_here/usr/share/man/man3'
 installprefix='./install_me_here/usr'
 installprefixexp='./install_me_here/usr'
-installprivlib='./install_me_here/usr/lib/perl5/5.29.7'
+installprivlib='./install_me_here/usr/lib/perl5/5.29.8'
 installscript='./install_me_here/usr/bin'
-installsitearch='./install_me_here/usr/lib/perl5/site_perl/5.29.7/armv4l-linux'
+installsitearch='./install_me_here/usr/lib/perl5/site_perl/5.29.8/armv4l-linux'
 installsitebin='./install_me_here/usr/bin'
 installsitehtml1dir=''
 installsitehtml3dir=''
-installsitelib='./install_me_here/usr/lib/perl5/site_perl/5.29.7'
+installsitelib='./install_me_here/usr/lib/perl5/site_perl/5.29.8'
 installsiteman1dir='./install_me_here/usr/share/man/man1'
 installsiteman3dir='./install_me_here/usr/share/man/man3'
 installsitescript='./install_me_here/usr/bin'
@@ -965,8 +965,8 @@ pmake=''
 pr=''
 prefix='/usr'
 prefixexp='/usr'
-privlib='/usr/lib/perl5/5.29.7'
-privlibexp='/usr/lib/perl5/5.29.7'
+privlib='/usr/lib/perl5/5.29.8'
+privlibexp='/usr/lib/perl5/5.29.8'
 procselfexe='"/proc/self/exe"'
 prototype='define'
 ptrsize='4'
@@ -1031,17 +1031,17 @@ sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
 sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 6, 17, 29, 31, 0'
 sig_size='68'
 signal_t='void'
-sitearch='/usr/lib/perl5/site_perl/5.29.7/armv4l-linux'
-sitearchexp='/usr/lib/perl5/site_perl/5.29.7/armv4l-linux'
+sitearch='/usr/lib/perl5/site_perl/5.29.8/armv4l-linux'
+sitearchexp='/usr/lib/perl5/site_perl/5.29.8/armv4l-linux'
 sitebin='/usr/bin'
 sitebinexp='/usr/bin'
 sitehtml1dir=''
 sitehtml1direxp=''
 sitehtml3dir=''
 sitehtml3direxp=''
-sitelib='/usr/lib/perl5/site_perl/5.29.7'
+sitelib='/usr/lib/perl5/site_perl/5.29.8'
 sitelib_stem='/usr/lib/perl5/site_perl'
-sitelibexp='/usr/lib/perl5/site_perl/5.29.7'
+sitelibexp='/usr/lib/perl5/site_perl/5.29.8'
 siteman1dir='/usr/share/man/man1'
 siteman1direxp='/usr/share/man/man1'
 siteman3dir='/usr/share/man/man3'
@@ -1080,7 +1080,7 @@ stdio_stream_array=''
 strerror_r_proto='0'
 strings='/usr/include/string.h'
 submit=''
-subversion='7'
+subversion='8'
 sysman='/usr/share/man/man1'
 tail=''
 tar=''
@@ -1171,8 +1171,8 @@ vendorprefix=''
 vendorprefixexp=''
 vendorscript=''
 vendorscriptexp=''
-version='5.29.7'
-version_patchlevel_string='version 29 subversion 7'
+version='5.29.8'
+version_patchlevel_string='version 29 subversion 8'
 versiononly='undef'
 vi=''
 xlibpth='/usr/lib/386 /lib/386'
@@ -1186,9 +1186,9 @@ config_args=''
 config_argc=0
 PERL_REVISION=5
 PERL_VERSION=29
-PERL_SUBVERSION=7
+PERL_SUBVERSION=8
 PERL_API_REVISION=5
 PERL_API_VERSION=29
-PERL_API_SUBVERSION=7
+PERL_API_SUBVERSION=8
 PERL_PATCHLEVEL=
 PERL_CONFIG_SH=true
diff --git a/Cross/config.sh-arm-linux-n770 b/Cross/config.sh-arm-linux-n770
index 47bba75230..44d6c333cf 100644
--- a/Cross/config.sh-arm-linux-n770
+++ b/Cross/config.sh-arm-linux-n770
@@ -31,12 +31,12 @@ afsroot='/afs'
 alignbytes='4'
 aphostname='/bin/hostname'
 api_revision='5'
-api_subversion='7'
+api_subversion='8'
 api_version='29'
-api_versionstring='5.29.7'
+api_versionstring='5.29.8'
 ar='ar'
-archlib='/usr/lib/perl5/5.29.7/armv4l-linux'
-archlibexp='/usr/lib/perl5/5.29.7/armv4l-linux'
+archlib='/usr/lib/perl5/5.29.8/armv4l-linux'
+archlibexp='/usr/lib/perl5/5.29.8/armv4l-linux'
 archname64=''
 archname='armv4l-linux'
 archobjs=''
@@ -54,7 +54,7 @@ castflags='0'
 cat='cat'
 cc='arm-none-linux-gnueabi-gcc'
 cccdlflags='-fpic'
-ccdlflags='-rdynamic -Wl,-rpath,/usr/lib/perl5/5.29.7/armv4l-linux/CORE'
+ccdlflags='-rdynamic -Wl,-rpath,/usr/lib/perl5/5.29.8/armv4l-linux/CORE'
 ccflags='-fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
 ccflags_uselargefiles='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
 ccname='arm-linux-gcc'
@@ -815,7 +815,7 @@ inc_version_list=' '
 inc_version_list_init='0'
 incpath=''
 inews=''
-installarchlib='./install_me_here/usr/lib/perl5/5.29.7/armv4l-linux'
+installarchlib='./install_me_here/usr/lib/perl5/5.29.8/armv4l-linux'
 installbin='./install_me_here/usr/bin'
 installhtml1dir=''
 installhtml3dir=''
@@ -823,13 +823,13 @@ installman1dir='./install_me_here/usr/share/man/man1'
 installman3dir='./install_me_here/usr/share/man/man3'
 installprefix='./install_me_here/usr'
 installprefixexp='./install_me_here/usr'
-installprivlib='./install_me_here/usr/lib/perl5/5.29.7'
+installprivlib='./install_me_here/usr/lib/perl5/5.29.8'
 installscript='./install_me_here/usr/bin'
-installsitearch='./install_me_here/usr/lib/perl5/site_perl/5.29.7/armv4l-linux'
+installsitearch='./install_me_here/usr/lib/perl5/site_perl/5.29.8/armv4l-linux'
 installsitebin='./install_me_here/usr/bin'
 installsitehtml1dir=''
 installsitehtml3dir=''
-installsitelib='./install_me_here/usr/lib/perl5/site_perl/5.29.7'
+installsitelib='./install_me_here/usr/lib/perl5/site_perl/5.29.8'
 installsiteman1dir='./install_me_here/usr/share/man/man1'
 installsiteman3dir='./install_me_here/usr/share/man/man3'
 installsitescript='./install_me_here/usr/bin'
@@ -963,8 +963,8 @@ pmake=''
 pr=''
 prefix='/usr'
 prefixexp='/usr'
-privlib='/usr/lib/perl5/5.29.7'
-privlibexp='/usr/lib/perl5/5.29.7'
+privlib='/usr/lib/perl5/5.29.8'
+privlibexp='/usr/lib/perl5/5.29.8'
 procselfexe='"/proc/self/exe"'
 prototype='define'
 ptrsize='4'
@@ -1029,17 +1029,17 @@ sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
 sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 6, 17, 29, 31, 0'
 sig_size='68'
 signal_t='void'
-sitearch='/usr/lib/perl5/site_perl/5.29.7/armv4l-linux'
-sitearchexp='/usr/lib/perl5/site_perl/5.29.7/armv4l-linux'
+sitearch='/usr/lib/perl5/site_perl/5.29.8/armv4l-linux'
+sitearchexp='/usr/lib/perl5/site_perl/5.29.8/armv4l-linux'
 sitebin='/usr/bin'
 sitebinexp='/usr/bin'
 sitehtml1dir=''
 sitehtml1direxp=''
 sitehtml3dir=''
 sitehtml3direxp=''
-sitelib='/usr/lib/perl5/site_perl/5.29.7'
+sitelib='/usr/lib/perl5/site_perl/5.29.8'
 sitelib_stem='/usr/lib/perl5/site_perl'
-sitelibexp='/usr/lib/perl5/site_perl/5.29.7'
+sitelibexp='/usr/lib/perl5/site_perl/5.29.8'
 siteman1dir='/usr/share/man/man1'
 siteman1direxp='/usr/share/man/man1'
 siteman3dir='/usr/share/man/man3'
@@ -1078,7 +1078,7 @@ stdio_stream_array=''
 strerror_r_proto='0'
 strings='/usr/include/string.h'
 submit=''
-subversion='7'
+subversion='8'
 sysman='/usr/share/man/man1'
 tail=''
 tar=''
@@ -1169,8 +1169,8 @@ vendorprefix=''
 vendorprefixexp=''
 vendorscript=''
 vendorscriptexp=''
-version='5.29.7'
-version_patchlevel_string='version 29 subversion 7'
+version='5.29.8'
+version_patchlevel_string='version 29 subversion 8'
 versiononly='undef'
 vi=''
 xlibpth='/usr/lib/386 /lib/386'
@@ -1184,9 +1184,9 @@ config_args=''
 config_argc=0
 PERL_REVISION=5
 PERL_VERSION=29
-PERL_SUBVERSION=7
+PERL_SUBVERSION=8
 PERL_API_REVISION=5
 PERL_API_VERSION=29
-PERL_API_SUBVERSION=7
+PERL_API_SUBVERSION=8
 PERL_PATCHLEVEL=
 PERL_CONFIG_SH=true
diff --git a/INSTALL b/INSTALL
index a6f3ae19aa..d4de2ec8e4 100644
--- a/INSTALL
+++ b/INSTALL
@@ -609,7 +609,7 @@ The directories set up by Configure fall into three broad categories.
 
 =item Directories for the perl distribution
 
-By default, Configure will use the following directories for 5.29.7.
+By default, Configure will use the following directories for 5.29.8.
 $version is the full perl version number, including subversion, e.g.
 5.12.3, and $archname is a string like sun4-sunos,
 determined by Configure.  The full definitions of all Configure
@@ -2440,7 +2440,7 @@ http://www.chiark.greenend.org.uk/~sgtatham/bugs.html
 
 =head1 Coexistence with earlier versions of perl 5
 
-Perl 5.29.7 is not binary compatible with earlier versions of Perl.
+Perl 5.29.8 is not binary compatible with earlier versions of Perl.
 In other words, you will have to recompile your XS modules.
 
 In general, you can usually safely upgrade from one version of Perl
@@ -2515,9 +2515,9 @@ won't interfere with another version.  (The defaults guarantee this for
 libraries after 5.6.0, but not for executables. TODO?)  One convenient
 way to do this is by using a separate prefix for each version, such as
 
-	sh Configure -Dprefix=/opt/perl5.29.7
+	sh Configure -Dprefix=/opt/perl5.29.8
 
-and adding /opt/perl5.29.7/bin to the shell PATH variable.  Such users
+and adding /opt/perl5.29.8/bin to the shell PATH variable.  Such users
 may also wish to add a symbolic link /usr/local/bin/perl so that
 scripts can still start with #!/usr/local/bin/perl.
 
@@ -2532,11 +2532,11 @@ yet.
 
 =head2 Upgrading from 5.28.0 or earlier
 
-B<Perl 5.29.7 may not be binary compatible with Perl 5.28.0 or
+B<Perl 5.29.8 may not be binary compatible with Perl 5.28.0 or
 earlier Perl releases.>  Perl modules having binary parts
 (meaning that a C compiler is used) will have to be recompiled to be
-used with 5.29.7.  If you find you do need to rebuild an extension with
-5.29.7, you may safely do so without disturbing the older
+used with 5.29.8.  If you find you do need to rebuild an extension with
+5.29.8, you may safely do so without disturbing the older
 installations.  (See L<"Coexistence with earlier versions of perl 5">
 above.)
 
@@ -2569,15 +2569,15 @@ Firstly, the bare minimum to run this script
      print("$f\n");
   }
 
-in Linux with perl-5.29.7 is as follows (under $Config{prefix}):
+in Linux with perl-5.29.8 is as follows (under $Config{prefix}):
 
   ./bin/perl
-  ./lib/perl5/5.29.7/strict.pm
-  ./lib/perl5/5.29.7/warnings.pm
-  ./lib/perl5/5.29.7/i686-linux/File/Glob.pm
-  ./lib/perl5/5.29.7/feature.pm
-  ./lib/perl5/5.29.7/XSLoader.pm
-  ./lib/perl5/5.29.7/i686-linux/auto/File/Glob/Glob.so
+  ./lib/perl5/5.29.8/strict.pm
+  ./lib/perl5/5.29.8/warnings.pm
+  ./lib/perl5/5.29.8/i686-linux/File/Glob.pm
+  ./lib/perl5/5.29.8/feature.pm
+  ./lib/perl5/5.29.8/XSLoader.pm
+  ./lib/perl5/5.29.8/i686-linux/auto/File/Glob/Glob.so
 
 Secondly, for perl-5.10.1, the Debian perl-base package contains 591
 files, (of which 510 are for lib/unicore) totaling about 3.5MB in its
diff --git a/MANIFEST b/MANIFEST
index c2e2634719..e282452028 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -629,7 +629,6 @@ cpan/Encode/t/undef.t
 cpan/Encode/t/unibench.pl		benchmark script
 cpan/Encode/t/Unicode.t			test script
 cpan/Encode/t/use-Encode-Alias.t
-cpan/Encode/t/utf8messages.t
 cpan/Encode/t/utf8ref.t			test script
 cpan/Encode/t/utf8strict.t		test script
 cpan/Encode/t/utf8warnings.t
@@ -1135,6 +1134,8 @@ cpan/IO-Compress/t/cz-03zlib-v1.t			IO::Compress
 cpan/IO-Compress/t/cz-06gzsetp.t			IO::Compress
 cpan/IO-Compress/t/cz-08encoding.t			IO::Compress
 cpan/IO-Compress/t/cz-14gzopen.t			IO::Compress
+cpan/IO-Compress/t/files/meta.xml
+cpan/IO-Compress/t/files/test.ods
 cpan/IO-Compress/t/globmapper.t				IO::Compress
 cpan/IO-Socket-IP/lib/IO/Socket/IP.pm			IO::Socket::IP
 cpan/IO-Socket-IP/t/00use.t				IO::Socket::IP tests
@@ -1282,7 +1283,6 @@ cpan/Locale-Maketext-Simple/t/po_without_i_default/fr.po	Locale::Simple tests
 cpan/Math-BigInt/lib/Math/BigFloat.pm		An arbitrary precision floating-point arithmetic package
 cpan/Math-BigInt/lib/Math/BigInt.pm	An arbitrary precision integer arithmetic package
 cpan/Math-BigInt/lib/Math/BigInt/Calc.pm	Pure Perl module to support Math::BigInt
-cpan/Math-BigInt/lib/Math/BigInt/CalcEmu.pm	Pure Perl module to support Math::BigInt
 cpan/Math-BigInt/lib/Math/BigInt/Lib.pm
 cpan/Math-BigInt/t/_e_math.t		Helper routine in BigFloat for _e math
 cpan/Math-BigInt/t/alias.inc		Support for BigInt tests
@@ -1304,6 +1304,8 @@ cpan/Math-BigInt/t/bigints.t		See if BigInt.pm works
 cpan/Math-BigInt/t/biglog.t		Test the log function
 cpan/Math-BigInt/t/bigroot.t		Test the broot function
 cpan/Math-BigInt/t/blucas-mbi.t
+cpan/Math-BigInt/t/bnok-mbf.t
+cpan/Math-BigInt/t/bnok-mbi.t
 cpan/Math-BigInt/t/bnstr-mbf.t		Test Math::BigInt
 cpan/Math-BigInt/t/bnstr-mbi.t		Test Math::BigInt
 cpan/Math-BigInt/t/bsstr-mbf.t		Test Math::BigInt
@@ -1319,6 +1321,7 @@ cpan/Math-BigInt/t/dparts-mbf.t		Test Math::BigInt
 cpan/Math-BigInt/t/dparts-mbi.t		Test Math::BigInt
 cpan/Math-BigInt/t/eparts-mbf.t		Test Math::BigInt
 cpan/Math-BigInt/t/eparts-mbi.t		Test Math::BigInt
+cpan/Math-BigInt/t/from_base-mbi.t
 cpan/Math-BigInt/t/from_bin-mbf.t	Test Math::BigInt
 cpan/Math-BigInt/t/from_bin-mbi.t
 cpan/Math-BigInt/t/from_hex-mbf.t	Test Math::BigInt
@@ -1361,6 +1364,7 @@ cpan/Math-BigInt/t/sub_ali.t		Tests for aliases in BigInt subclasses
 cpan/Math-BigInt/t/sub_mbf.t		Empty subclass test of BigFloat
 cpan/Math-BigInt/t/sub_mbi.t		Empty subclass test of BigInt
 cpan/Math-BigInt/t/sub_mif.t		Test A & P with subclasses using mbimbf.inc
+cpan/Math-BigInt/t/to_base-mbi.t
 cpan/Math-BigInt/t/trap.t		Test whether trap_nan and trap_inf work
 cpan/Math-BigInt/t/upgrade.inc		Actual tests for upgrade.t
 cpan/Math-BigInt/t/upgrade.t		Test if use Math::BigInt(); under upgrade works
@@ -2247,6 +2251,7 @@ cpan/Test-Simple/lib/Test2/EventFacet/Control.pm
 cpan/Test-Simple/lib/Test2/EventFacet/Error.pm
 cpan/Test-Simple/lib/Test2/EventFacet/Hub.pm
 cpan/Test-Simple/lib/Test2/EventFacet/Info.pm
+cpan/Test-Simple/lib/Test2/EventFacet/Info/Table.pm
 cpan/Test-Simple/lib/Test2/EventFacet/Meta.pm
 cpan/Test-Simple/lib/Test2/EventFacet/Parent.pm
 cpan/Test-Simple/lib/Test2/EventFacet/Plan.pm
@@ -2436,6 +2441,8 @@ cpan/Test-Simple/t/regression/694_note_diag_return_values.t
 cpan/Test-Simple/t/regression/696-intercept_skip_all.t
 cpan/Test-Simple/t/regression/721-nested-streamed-subtest.t
 cpan/Test-Simple/t/regression/757-reset_in_subtest.t
+cpan/Test-Simple/t/regression/812-todo.t
+cpan/Test-Simple/t/regression/817-subtest-todo.t
 cpan/Test-Simple/t/regression/buffered_subtest_plan_buffered.t
 cpan/Test-Simple/t/regression/builder_does_not_init.t
 cpan/Test-Simple/t/regression/errors_facet.t
@@ -2592,6 +2599,7 @@ cpan/Unicode-Collate/Collate/Locale/be.pl	Unicode::Collate
 cpan/Unicode-Collate/Collate/Locale/bn.pl		Unicode::Collate
 cpan/Unicode-Collate/Collate/Locale/ca.pl			Unicode::Collate
 cpan/Unicode-Collate/Collate/Locale/cs.pl			Unicode::Collate
+cpan/Unicode-Collate/Collate/Locale/cu.pl
 cpan/Unicode-Collate/Collate/Locale/cy.pl			Unicode::Collate
 cpan/Unicode-Collate/Collate/Locale/da.pl			Unicode::Collate
 cpan/Unicode-Collate/Collate/Locale/de_at_ph.pl			Unicode::Collate
@@ -2706,6 +2714,7 @@ cpan/Unicode-Collate/t/loc_ca.t			Unicode::Collate
 cpan/Unicode-Collate/t/loc_cjk.t		Unicode::Collate
 cpan/Unicode-Collate/t/loc_cjkc.t		Unicode::Collate
 cpan/Unicode-Collate/t/loc_cs.t			Unicode::Collate
+cpan/Unicode-Collate/t/loc_cu.t
 cpan/Unicode-Collate/t/loc_cy.t			Unicode::Collate
 cpan/Unicode-Collate/t/loc_cyrl.t			Unicode::Collate
 cpan/Unicode-Collate/t/loc_da.t			Unicode::Collate
@@ -5015,6 +5024,7 @@ pod/perl5293delta.pod		Perl changes in version 5.29.3
 pod/perl5294delta.pod		Perl changes in version 5.29.4
 pod/perl5295delta.pod		Perl changes in version 5.29.5
 pod/perl5296delta.pod		Perl changes in version 5.29.6
+pod/perl5297delta.pod		Perl changes in version 5.29.7
 pod/perl561delta.pod		Perl changes in version 5.6.1
 pod/perl56delta.pod		Perl changes in version 5.6
 pod/perl581delta.pod		Perl changes in version 5.8.1
diff --git a/META.json b/META.json
index 516a20d847..72d9c83e4e 100644
--- a/META.json
+++ b/META.json
@@ -127,6 +127,6 @@
          "url" : "http://perl5.git.perl.org/"
       }
    },
-   "version" : "5.029007",
+   "version" : "5.029008",
    "x_serialization_backend" : "JSON::PP version 2.97001"
 }
diff --git a/META.yml b/META.yml
index 42e55086d6..b88e9f9ff8 100644
--- a/META.yml
+++ b/META.yml
@@ -114,5 +114,5 @@ resources:
   homepage: http://www.perl.org/
   license: http://dev.perl.org/licenses/
   repository: http://perl5.git.perl.org/
-version: '5.029007'
+version: '5.029008'
 x_serialization_backend: 'CPAN::Meta::YAML version 0.018'
diff --git a/Makefile.SH b/Makefile.SH
index bd0c24f867..60d164738e 100755
--- a/Makefile.SH
+++ b/Makefile.SH
@@ -586,7 +586,7 @@ esac
 
 $spitshell >>$Makefile <<'!NO!SUBS!'
 
-perltoc_pod_prereqs = extra.pods pod/perl5297delta.pod pod/perlapi.pod pod/perlintern.pod pod/perlmodlib.pod pod/perluniprops.pod
+perltoc_pod_prereqs = extra.pods pod/perl5298delta.pod pod/perlapi.pod pod/perlintern.pod pod/perlmodlib.pod pod/perluniprops.pod
 generated_pods = pod/perltoc.pod $(perltoc_pod_prereqs)
 generated_headers = uudmap.h bitcount.h mg_data.h
 
@@ -1150,9 +1150,9 @@ pod/perlintern.pod: $(MINIPERL_EXE) autodoc.pl embed.fnc
 pod/perlmodlib.pod: $(MINIPERL_EXE) pod/perlmodlib.PL MANIFEST
 	$(MINIPERL) pod/perlmodlib.PL -q
 
-pod/perl5297delta.pod: pod/perldelta.pod
-	$(RMS) pod/perl5297delta.pod
-	$(LNS) perldelta.pod pod/perl5297delta.pod
+pod/perl5298delta.pod: pod/perldelta.pod
+	$(RMS) pod/perl5298delta.pod
+	$(LNS) perldelta.pod pod/perl5298delta.pod
 
 extra.pods: $(MINIPERL_EXE)
 	-@test ! -f extra.pods || rm -f `cat extra.pods`
@@ -1434,29 +1434,30 @@ _cleaner2:
 	-rmdir lib/Unicode/Collate/CJK lib/Unicode/Collate lib/Tie/Hash
 	-rmdir lib/Thread lib/Text lib/Test2/Util lib/Test2/Tools
 	-rmdir lib/Test2/IPC/Driver lib/Test2/IPC lib/Test2/Hub/Interceptor
-	-rmdir lib/Test2/Hub lib/Test2/Formatter lib/Test2/EventFacet
-	-rmdir lib/Test2/Event/TAP lib/Test2/Event lib/Test2/API lib/Test2
-	-rmdir lib/Test/use lib/Test/Tester lib/Test/Builder/Tester
-	-rmdir lib/Test/Builder/IO lib/Test/Builder lib/Test lib/Term
-	-rmdir lib/TAP/Parser/YAMLish lib/TAP/Parser/SourceHandler
-	-rmdir lib/TAP/Parser/Scheduler lib/TAP/Parser/Result
-	-rmdir lib/TAP/Parser/Iterator lib/TAP/Parser lib/TAP/Harness
-	-rmdir lib/TAP/Formatter/File lib/TAP/Formatter/Console
-	-rmdir lib/TAP/Formatter lib/TAP lib/Sys/Syslog lib/Sys lib/Sub
-	-rmdir lib/Search lib/Scalar lib/Pod/Text lib/Pod/Simple
-	-rmdir lib/Pod/Perldoc lib/PerlIO/via lib/PerlIO lib/Perl
-	-rmdir lib/Parse/CPAN lib/Parse lib/Params lib/Net/FTP lib/Module/Load
-	-rmdir lib/Module/CoreList lib/Module lib/Memoize lib/Math/BigInt
-	-rmdir lib/Math/BigFloat lib/Math lib/MIME lib/Locale/Maketext
-	-rmdir lib/Locale lib/List/Util lib/List lib/JSON/PP lib/JSON lib/IPC
-	-rmdir lib/IO/Uncompress/Adapter lib/IO/Uncompress lib/IO/Socket
-	-rmdir lib/IO/Compress/Zlib lib/IO/Compress/Zip lib/IO/Compress/Gzip
-	-rmdir lib/IO/Compress/Base lib/IO/Compress/Adapter lib/IO/Compress
-	-rmdir lib/IO lib/I18N/LangTags lib/I18N lib/Hash/Util lib/Hash
-	-rmdir lib/HTTP lib/Filter/Util lib/Filter lib/File/Spec
-	-rmdir lib/ExtUtils/Typemaps lib/ExtUtils/ParseXS
-	-rmdir lib/ExtUtils/MakeMaker/version lib/ExtUtils/MakeMaker
-	-rmdir lib/ExtUtils/Liblist lib/ExtUtils/Constant lib/ExtUtils/Command
+	-rmdir lib/Test2/Hub lib/Test2/Formatter lib/Test2/EventFacet/Info
+	-rmdir lib/Test2/EventFacet lib/Test2/Event/TAP lib/Test2/Event
+	-rmdir lib/Test2/API lib/Test2 lib/Test/use lib/Test/Tester
+	-rmdir lib/Test/Builder/Tester lib/Test/Builder/IO lib/Test/Builder
+	-rmdir lib/Test lib/Term lib/TAP/Parser/YAMLish
+	-rmdir lib/TAP/Parser/SourceHandler lib/TAP/Parser/Scheduler
+	-rmdir lib/TAP/Parser/Result lib/TAP/Parser/Iterator lib/TAP/Parser
+	-rmdir lib/TAP/Harness lib/TAP/Formatter/File
+	-rmdir lib/TAP/Formatter/Console lib/TAP/Formatter lib/TAP
+	-rmdir lib/Sys/Syslog lib/Sys lib/Sub lib/Search lib/Scalar
+	-rmdir lib/Pod/Text lib/Pod/Simple lib/Pod/Perldoc lib/PerlIO/via
+	-rmdir lib/PerlIO lib/Perl lib/Parse/CPAN lib/Parse lib/Params
+	-rmdir lib/Net/FTP lib/Module/Load lib/Module/CoreList lib/Module
+	-rmdir lib/Memoize lib/Math/BigInt lib/Math/BigFloat lib/Math lib/MIME
+	-rmdir lib/Locale/Maketext lib/Locale lib/List/Util lib/List
+	-rmdir lib/JSON/PP lib/JSON lib/IPC lib/IO/Uncompress/Adapter
+	-rmdir lib/IO/Uncompress lib/IO/Socket lib/IO/Compress/Zlib
+	-rmdir lib/IO/Compress/Zip lib/IO/Compress/Gzip lib/IO/Compress/Base
+	-rmdir lib/IO/Compress/Adapter lib/IO/Compress lib/IO
+	-rmdir lib/I18N/LangTags lib/I18N lib/Hash/Util lib/Hash lib/HTTP
+	-rmdir lib/Filter/Util lib/Filter lib/File/Spec lib/ExtUtils/Typemaps
+	-rmdir lib/ExtUtils/ParseXS lib/ExtUtils/MakeMaker/version
+	-rmdir lib/ExtUtils/MakeMaker lib/ExtUtils/Liblist
+	-rmdir lib/ExtUtils/Constant lib/ExtUtils/Command
 	-rmdir lib/ExtUtils/CBuilder/Platform/Windows
 	-rmdir lib/ExtUtils/CBuilder/Platform lib/ExtUtils/CBuilder
 	-rmdir lib/Exporter lib/Encode/Unicode lib/Encode/MIME/Header
diff --git a/NetWare/Makefile b/NetWare/Makefile
index af55170a98..6b12d5dd27 100644
--- a/NetWare/Makefile
+++ b/NetWare/Makefile
@@ -86,7 +86,7 @@ NLM_VERSION    = 3,20,0
 
 
 # Here comes the CW tools - TO BE FILLED TO BUILD WITH CW -
-MODULE_DESC     = "Perl 5.29.7 for NetWare"
+MODULE_DESC     = "Perl 5.29.8 for NetWare"
 CCTYPE          = CodeWarrior
 C_COMPILER		= mwccnlm -c
 CPP_COMPILER	= mwccnlm
@@ -462,7 +462,7 @@ INST_NW_TOP2 = $(INST_NW_DRV)\perl
 # versioned installation can be obtained by setting INST_TOP above to a
 # path that includes an arbitrary version string.
 #
-INST_VER	= \5.29.7
+INST_VER	= \5.29.8
 
 #
 # Comment this out if you DON'T want your perl installation to have
diff --git a/NetWare/config_H.wc b/NetWare/config_H.wc
index 50df6b19de..f1f3bfde8d 100644
--- a/NetWare/config_H.wc
+++ b/NetWare/config_H.wc
@@ -887,7 +887,7 @@
  *	This symbol contains the ~name expanded version of ARCHLIB, to be used
  *	in programs that are not prepared to deal with ~ expansion at run-time.
  */
-#define ARCHLIB "c:\\perl\\5.29.7\\lib\\NetWare-x86-multi-thread"		/**/
+#define ARCHLIB "c:\\perl\\5.29.8\\lib\\NetWare-x86-multi-thread"		/**/
 /*#define ARCHLIB_EXP ""	/**/
 
 /* ARCHNAME:
@@ -918,8 +918,8 @@
  *	This symbol is the filename expanded version of the BIN symbol, for
  *	programs that do not want to deal with that at run-time.
  */
-#define BIN "c:\\perl\\5.29.7\\bin\\NetWare-x86-multi-thread"	/**/
-#define BIN_EXP "c:\\perl\\5.29.7\\bin\\NetWare-x86-multi-thread"	/**/
+#define BIN "c:\\perl\\5.29.8\\bin\\NetWare-x86-multi-thread"	/**/
+#define BIN_EXP "c:\\perl\\5.29.8\\bin\\NetWare-x86-multi-thread"	/**/
 
 /* BYTEORDER:
  *	This symbol holds the hexadecimal constant defined in byteorder,
@@ -2878,7 +2878,7 @@
  *	This symbol contains the ~name expanded version of SITEARCH, to be used
  *	in programs that are not prepared to deal with ~ expansion at run-time.
  */
-#define SITEARCH "c:\\perl\\site\\5.29.7\\lib\\NetWare-x86-multi-thread"		/**/
+#define SITEARCH "c:\\perl\\site\\5.29.8\\lib\\NetWare-x86-multi-thread"		/**/
 /*#define SITEARCH_EXP ""	/**/
 
 /* SITELIB:
@@ -2901,7 +2901,7 @@
  *	removed.  The elements in inc_version_list (inc_version_list.U) can
  *	be tacked onto this variable to generate a list of directories to search.
  */
-#define SITELIB "c:\\perl\\site\\5.29.7\\lib"		/**/
+#define SITELIB "c:\\perl\\site\\5.29.8\\lib"		/**/
 /*#define SITELIB_EXP ""	/**/
 #define SITELIB_STEM ""		/**/
 
diff --git a/Porting/Maintainers.pl b/Porting/Maintainers.pl
index 19e38a0086..1d4217ee3e 100755
--- a/Porting/Maintainers.pl
+++ b/Porting/Maintainers.pl
@@ -204,7 +204,7 @@ use File::Glob qw(:case);
     },
 
     'Compress::Raw::Bzip2' => {
-        'DISTRIBUTION' => 'PMQS/Compress-Raw-Bzip2-2.081.tar.gz',
+        'DISTRIBUTION' => 'PMQS/Compress-Raw-Bzip2-2.084.tar.gz',
         'FILES'        => q[cpan/Compress-Raw-Bzip2],
         'EXCLUDED'     => [
             qr{^t/Test/},
@@ -215,7 +215,7 @@ use File::Glob qw(:case);
     },
 
     'Compress::Raw::Zlib' => {
-        'DISTRIBUTION' => 'PMQS/Compress-Raw-Zlib-2.081.tar.gz',
+        'DISTRIBUTION' => 'PMQS/Compress-Raw-Zlib-2.084.tar.gz',
         'FILES'    => q[cpan/Compress-Raw-Zlib],
         'EXCLUDED' => [
             qr{^examples/},
@@ -386,12 +386,8 @@ use File::Glob qw(:case);
     },
 
     'Encode' => {
-        'DISTRIBUTION' => 'DANKOGAI/Encode-2.97.tar.gz',
+        'DISTRIBUTION' => 'DANKOGAI/Encode-2.99.tar.gz',
         'FILES'        => q[cpan/Encode],
-        'CUSTOMIZED'   => [
-	    # TODO test passes on blead
-	    't/truncated_utf8.t',
-        ],
     },
 
     'encoding::warnings' => {
@@ -508,7 +504,7 @@ use File::Glob qw(:case);
     },
 
     'File::Temp' => {
-        'DISTRIBUTION' => 'ETHER/File-Temp-0.2308.tar.gz',
+        'DISTRIBUTION' => 'ETHER/File-Temp-0.2309.tar.gz',
         'FILES'        => q[cpan/File-Temp],
         'EXCLUDED'     => [
             qw( README.mkdn
@@ -615,7 +611,7 @@ use File::Glob qw(:case);
     },
 
     'IO-Compress' => {
-        'DISTRIBUTION' => 'PMQS/IO-Compress-2.081.tar.gz',
+        'DISTRIBUTION' => 'PMQS/IO-Compress-2.084.tar.gz',
         'FILES'        => q[cpan/IO-Compress],
         'EXCLUDED'     => [
             qr{^examples/},
@@ -706,7 +702,7 @@ use File::Glob qw(:case);
     },
 
     'Math::BigInt' => {
-        'DISTRIBUTION' => 'PJACKLAM/Math-BigInt-1.999813.tar.gz',
+        'DISTRIBUTION' => 'PJACKLAM/Math-BigInt-1.999816.tar.gz',
         'FILES'        => q[cpan/Math-BigInt],
         'EXCLUDED'     => [
             qr{^examples/},
@@ -719,7 +715,7 @@ use File::Glob qw(:case);
     },
 
     'Math::BigInt::FastCalc' => {
-        'DISTRIBUTION' => 'PJACKLAM/Math-BigInt-FastCalc-0.5007.tar.gz',
+        'DISTRIBUTION' => 'PJACKLAM/Math-BigInt-FastCalc-0.5008.tar.gz',
         'FILES'        => q[cpan/Math-BigInt-FastCalc],
         'EXCLUDED'     => [
             qr{^t/author-},
@@ -785,7 +781,7 @@ use File::Glob qw(:case);
     },
 
     'Module::CoreList' => {
-        'DISTRIBUTION' => 'BINGOS/Module-CoreList-5.20181218.tar.gz',
+        'DISTRIBUTION' => 'BINGOS/Module-CoreList-5.20190120.tar.gz',
         'FILES'        => q[dist/Module-CoreList],
     },
 
@@ -1050,7 +1046,7 @@ use File::Glob qw(:case);
     },
 
     'Test::Simple' => {
-        'DISTRIBUTION' => 'EXODIST/Test-Simple-1.302141.tar.gz',
+        'DISTRIBUTION' => 'EXODIST/Test-Simple-1.302160.tar.gz',
         'FILES'        => q[cpan/Test-Simple],
         'EXCLUDED'     => [
             qr{^examples/},
@@ -1188,7 +1184,7 @@ use File::Glob qw(:case);
     },
 
     'Unicode::Collate' => {
-        'DISTRIBUTION' => 'SADAHIRO/Unicode-Collate-1.25.tar.gz',
+        'DISTRIBUTION' => 'SADAHIRO/Unicode-Collate-1.27.tar.gz',
         'FILES'        => q[cpan/Unicode-Collate],
         'EXCLUDED'     => [
             qr{N$},
diff --git a/Porting/config.sh b/Porting/config.sh
index 69160498d0..71175f4fb4 100644
--- a/Porting/config.sh
+++ b/Porting/config.sh
@@ -44,12 +44,12 @@ afsroot='/afs'
 alignbytes='8'
 aphostname=''
 api_revision='5'
-api_subversion='7'
+api_subversion='8'
 api_version='29'
-api_versionstring='5.29.7'
+api_versionstring='5.29.8'
 ar='ar'
-archlib='/opt/perl/lib/5.29.7/x86_64-linux'
-archlibexp='/opt/perl/lib/5.29.7/x86_64-linux'
+archlib='/opt/perl/lib/5.29.8/x86_64-linux'
+archlibexp='/opt/perl/lib/5.29.8/x86_64-linux'
 archname64=''
 archname='x86_64-linux'
 archobjs=''
@@ -841,7 +841,7 @@ incpath=''
 incpth='/usr/lib/gcc/x86_64-linux-gnu/4.9/include /usr/local/include /usr/lib/gcc/x86_64-linux-gnu/4.9/include-fixed /usr/include/x86_64-linux-gnu /usr/include'
 inews=''
 initialinstalllocation='/opt/perl/bin'
-installarchlib='/opt/perl/lib/5.29.7/x86_64-linux'
+installarchlib='/opt/perl/lib/5.29.8/x86_64-linux'
 installbin='/opt/perl/bin'
 installhtml1dir=''
 installhtml3dir=''
@@ -849,13 +849,13 @@ installman1dir='/opt/perl/man/man1'
 installman3dir='/opt/perl/man/man3'
 installprefix='/opt/perl'
 installprefixexp='/opt/perl'
-installprivlib='/opt/perl/lib/5.29.7'
+installprivlib='/opt/perl/lib/5.29.8'
 installscript='/opt/perl/bin'
-installsitearch='/opt/perl/lib/site_perl/5.29.7/x86_64-linux'
+installsitearch='/opt/perl/lib/site_perl/5.29.8/x86_64-linux'
 installsitebin='/opt/perl/bin'
 installsitehtml1dir=''
 installsitehtml3dir=''
-installsitelib='/opt/perl/lib/site_perl/5.29.7'
+installsitelib='/opt/perl/lib/site_perl/5.29.8'
 installsiteman1dir='/opt/perl/man/man1'
 installsiteman3dir='/opt/perl/man/man3'
 installsitescript='/opt/perl/bin'
@@ -980,7 +980,7 @@ perl_patchlevel=''
 perl_static_inline='static __inline__'
 perladmin='yourname@yourhost.yourplace.com'
 perllibs='-lpthread -lnsl -ldl -lm -lcrypt -lutil -lc'
-perlpath='/opt/perl/bin/perl5.29.7'
+perlpath='/opt/perl/bin/perl5.29.8'
 pg='pg'
 phostname=''
 pidtype='pid_t'
@@ -989,8 +989,8 @@ pmake=''
 pr=''
 prefix='/opt/perl'
 prefixexp='/opt/perl'
-privlib='/opt/perl/lib/5.29.7'
-privlibexp='/opt/perl/lib/5.29.7'
+privlib='/opt/perl/lib/5.29.8'
+privlibexp='/opt/perl/lib/5.29.8'
 procselfexe='"/proc/self/exe"'
 ptrsize='8'
 quadkind='2'
@@ -1055,17 +1055,17 @@ sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
 sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 6, 17, 29, 31, 0'
 sig_size='69'
 signal_t='void'
-sitearch='/opt/perl/lib/site_perl/5.29.7/x86_64-linux'
-sitearchexp='/opt/perl/lib/site_perl/5.29.7/x86_64-linux'
+sitearch='/opt/perl/lib/site_perl/5.29.8/x86_64-linux'
+sitearchexp='/opt/perl/lib/site_perl/5.29.8/x86_64-linux'
 sitebin='/opt/perl/bin'
 sitebinexp='/opt/perl/bin'
 sitehtml1dir=''
 sitehtml1direxp=''
 sitehtml3dir=''
 sitehtml3direxp=''
-sitelib='/opt/perl/lib/site_perl/5.29.7'
+sitelib='/opt/perl/lib/site_perl/5.29.8'
 sitelib_stem='/opt/perl/lib/site_perl'
-sitelibexp='/opt/perl/lib/site_perl/5.29.7'
+sitelibexp='/opt/perl/lib/site_perl/5.29.8'
 siteman1dir='/opt/perl/man/man1'
 siteman1direxp='/opt/perl/man/man1'
 siteman3dir='/opt/perl/man/man3'
@@ -1091,7 +1091,7 @@ src='.'
 ssizetype='ssize_t'
 st_ino_sign='1'
 st_ino_size='8'
-startperl='#!/opt/perl/bin/perl5.29.7'
+startperl='#!/opt/perl/bin/perl5.29.8'
 startsh='#!/bin/sh'
 static_ext=' '
 stdchar='char'
@@ -1103,7 +1103,7 @@ stdio_ptr='((fp)->_IO_read_ptr)'
 stdio_stream_array=''
 strerror_r_proto='0'
 submit=''
-subversion='7'
+subversion='8'
 sysman='/usr/share/man/man1'
 sysroot=''
 tail=''
@@ -1201,8 +1201,8 @@ vendorprefix=''
 vendorprefixexp=''
 vendorscript=''
 vendorscriptexp=''
-version='5.29.7'
-version_patchlevel_string='version 29 subversion 7'
+version='5.29.8'
+version_patchlevel_string='version 29 subversion 8'
 versiononly='define'
 vi=''
 xlibpth='/usr/lib/386 /lib/386'
@@ -1212,10 +1212,10 @@ zcat=''
 zip='zip'
 PERL_REVISION=5
 PERL_VERSION=29
-PERL_SUBVERSION=7
+PERL_SUBVERSION=8
 PERL_API_REVISION=5
 PERL_API_VERSION=29
-PERL_API_SUBVERSION=7
+PERL_API_SUBVERSION=8
 PERL_PATCHLEVEL=''
 PERL_CONFIG_SH=true
 : Variables propagated from previous config.sh file.
diff --git a/Porting/config_H b/Porting/config_H
index ef130a4463..a1b4d8146d 100644
--- a/Porting/config_H
+++ b/Porting/config_H
@@ -1239,8 +1239,8 @@
  *	This symbol contains the ~name expanded version of ARCHLIB, to be used
  *	in programs that are not prepared to deal with ~ expansion at run-time.
  */
-#define ARCHLIB "/opt/perl/lib/5.29.7/x86_64-linux"		/**/
-#define ARCHLIB_EXP "/opt/perl/lib/5.29.7/x86_64-linux"		/**/
+#define ARCHLIB "/opt/perl/lib/5.29.8/x86_64-linux"		/**/
+#define ARCHLIB_EXP "/opt/perl/lib/5.29.8/x86_64-linux"		/**/
 
 /* BIN:
  *	This symbol holds the path of the bin directory where the package will
@@ -1293,8 +1293,8 @@
  *	This symbol contains the ~name expanded version of PRIVLIB, to be used
  *	in programs that are not prepared to deal with ~ expansion at run-time.
  */
-#define PRIVLIB "/opt/perl/lib/5.29.7"		/**/
-#define PRIVLIB_EXP "/opt/perl/lib/5.29.7"		/**/
+#define PRIVLIB "/opt/perl/lib/5.29.8"		/**/
+#define PRIVLIB_EXP "/opt/perl/lib/5.29.8"		/**/
 
 /* SITEARCH:
  *	This symbol contains the name of the private library for this package.
@@ -1311,8 +1311,8 @@
  *	This symbol contains the ~name expanded version of SITEARCH, to be used
  *	in programs that are not prepared to deal with ~ expansion at run-time.
  */
-#define SITEARCH "/opt/perl/lib/site_perl/5.29.7/x86_64-linux"		/**/
-#define SITEARCH_EXP "/opt/perl/lib/site_perl/5.29.7/x86_64-linux"		/**/
+#define SITEARCH "/opt/perl/lib/site_perl/5.29.8/x86_64-linux"		/**/
+#define SITEARCH_EXP "/opt/perl/lib/site_perl/5.29.8/x86_64-linux"		/**/
 
 /* SITELIB:
  *	This symbol contains the name of the private library for this package.
@@ -1334,8 +1334,8 @@
  *	removed.  The elements in inc_version_list (inc_version_list.U) can
  *	be tacked onto this variable to generate a list of directories to search.
  */
-#define SITELIB "/opt/perl/lib/site_perl/5.29.7"		/**/
-#define SITELIB_EXP "/opt/perl/lib/site_perl/5.29.7"		/**/
+#define SITELIB "/opt/perl/lib/site_perl/5.29.8"		/**/
+#define SITELIB_EXP "/opt/perl/lib/site_perl/5.29.8"		/**/
 #define SITELIB_STEM "/opt/perl/lib/site_perl"		/**/
 
 /* PERL_VENDORARCH:
@@ -4109,7 +4109,7 @@
  *	script to make sure (one hopes) that it runs with perl and not
  *	some shell.
  */
-#define STARTPERL "#!/opt/perl/bin/perl5.29.7"		/**/
+#define STARTPERL "#!/opt/perl/bin/perl5.29.8"		/**/
 
 /* HAS_STDIO_STREAM_ARRAY:
  *	This symbol, if defined, tells that there is an array
diff --git a/Porting/epigraphs.pod b/Porting/epigraphs.pod
index 93884f2ded..7c4a402fa2 100644
--- a/Porting/epigraphs.pod
+++ b/Porting/epigraphs.pod
@@ -17,6 +17,25 @@ Consult your favorite dictionary for details.
 
 =head1 EPIGRAPHS
 
+=head2 v5.29.7 - Edsger W. Dijkstra: "Programming Considered as a Human Activity", IFIP Congress, New York, 1965.
+
+L<Announced on 2019-01-20 by Abigail|https://www.nntp.perl.org/group/perl.perl5.porters/2019/01/msg253444.html>
+
+When I became acquainted with the notion of algorithmic languages I
+never challenged the then prevailing notion that the problems of
+language design and implementation were mostly a question of
+compromises: every new convenience for the user had to be paid for
+by the implementation, either in the form of increased trouble
+during translation, or during execution or during both. Well, we
+are most certainly not living in Heaven and I am not going to deny
+the possibility of a conflict between convenience and efficiency,
+but now I do protest when this conflict is presented as a complete
+summing up of the situation. I am of the opinion that is worth-while
+to investigate what extent the needs of Man and Machine go hand in
+hand and to see what techniques we can devise of the benefit of all
+of us. I trust that this investigation will bear fruits and if this
+talk made some of you share this fervent hope, it has achieved its aim.
+
 =head2 v5.29.6 - Rudyard Kipling: "How the Camel Got His Hump"
 
 L<Announced on 2018-12-18 by Abigail|https://www.nntp.perl.org/group/perl.perl5.porters/2018/12/msg253187.html>
diff --git a/Porting/makerel b/Porting/makerel
index a4b2ed7d68..bf4569bf98 100755
--- a/Porting/makerel
+++ b/Porting/makerel
@@ -206,7 +206,7 @@ if ($have_7z) {
 }
 
 if ($opts{x}) {
-    print "Creating and compressing the tar.gz file with 7z...\n";
+    print "Creating and compressing the tar.xz file with xz...\n";
     $cmd = "tar cf - $reldir | xz -z -c > $reldir.tar.xz";
     system($cmd) == 0 or die "$cmd failed";
 }
diff --git a/Porting/perldelta_template.pod b/Porting/perldelta_template.pod
index b3554f5797..abfcbd55e9 100644
--- a/Porting/perldelta_template.pod
+++ b/Porting/perldelta_template.pod
@@ -403,7 +403,7 @@ died, add a short obituary here.
 
 XXX Generate this with:
 
-  perl Porting/acknowledgements.pl v5.29.7..HEAD
+  perl Porting/acknowledgements.pl v5.29.8..HEAD
 
 =head1 Reporting Bugs
 
diff --git a/Porting/release_schedule.pod b/Porting/release_schedule.pod
index 5ee860f6f0..beadc052ed 100644
--- a/Porting/release_schedule.pod
+++ b/Porting/release_schedule.pod
@@ -56,7 +56,7 @@ you should reset the version numbers to the next blead series.
   2018-10-20  5.29.4 ✓        Aaron Crane
   2018-11-20  5.29.5 ✓        Karen Etheridge (ether)
   2018-12-18  5.29.6 ✓        Abigail
-  2019-01-20  5.29.7          Abigail
+  2019-01-20  5.29.7 ✓        Abigail
   2019-02-20  5.29.8
   2019-03-20  5.29.9          Zak B. Elep
   2019-04-20  5.29.10
diff --git a/README b/README
index dc4f3a727c..945db22d70 100644
--- a/README
+++ b/README
@@ -1,6 +1,6 @@
 Perl is Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012,
-2013, 2014, 2015, 2016, 2017, 2018 by Larry Wall and others.
+2013, 2014, 2015, 2016, 2017, 2018, 2019 by Larry Wall and others.
 All rights reserved.
 
 
diff --git a/README.haiku b/README.haiku
index 059619aa03..6003dd9242 100644
--- a/README.haiku
+++ b/README.haiku
@@ -22,9 +22,9 @@ The build procedure is completely standard:
 Make perl executable and create a symlink for libperl:
 
   chmod a+x /boot/common/bin/perl
-  cd /boot/common/lib; ln -s perl5/5.29.7/BePC-haiku/CORE/libperl.so .
+  cd /boot/common/lib; ln -s perl5/5.29.8/BePC-haiku/CORE/libperl.so .
 
-Replace C<5.29.7> with your respective version of Perl.
+Replace C<5.29.8> with your respective version of Perl.
 
 =head1 KNOWN PROBLEMS
 
diff --git a/README.macosx b/README.macosx
index 48bf490d23..6b2b1996ae 100644
--- a/README.macosx
+++ b/README.macosx
@@ -10,9 +10,9 @@ perlmacosx - Perl under Mac OS X
 
 This document briefly describes Perl under Mac OS X.
 
-  curl -O http://www.cpan.org/src/perl-5.29.7.tar.gz
-  tar -xzf perl-5.29.7.tar.gz
-  cd perl-5.29.7
+  curl -O http://www.cpan.org/src/perl-5.29.8.tar.gz
+  tar -xzf perl-5.29.8.tar.gz
+  cd perl-5.29.8
   ./Configure -des -Dprefix=/usr/local/
   make
   make test
@@ -20,7 +20,7 @@ This document briefly describes Perl under Mac OS X.
 
 =head1 DESCRIPTION
 
-The latest Perl release (5.29.7 as of this writing) builds without changes
+The latest Perl release (5.29.8 as of this writing) builds without changes
 under all versions of Mac OS X from 10.3 "Panther" onwards. 
 
 In order to build your own version of Perl you will need 'make',
diff --git a/README.os2 b/README.os2
index 92a12986b6..bf2643afe7 100644
--- a/README.os2
+++ b/README.os2
@@ -619,7 +619,7 @@ C<set PERLLIB_PREFIX> in F<Config.sys>, see L</"C<PERLLIB_PREFIX>">.
 
 =item Additional Perl modules
 
-  unzip perl_ste.zip -d f:/perllib/lib/site_perl/5.29.7/
+  unzip perl_ste.zip -d f:/perllib/lib/site_perl/5.29.8/
 
 Same remark as above applies.  Additionally, if this directory is not
 one of directories on @INC (and @INC is influenced by C<PERLLIB_PREFIX>), you
diff --git a/README.vms b/README.vms
index 1984f58849..7f14fa76dc 100644
--- a/README.vms
+++ b/README.vms
@@ -142,11 +142,11 @@ You may need to set up a foreign symbol for the unpacking utility of
 choice.  Once you have done so, use a command like the following to
 unpack the archive:
 
-    vmstar -xvf perl-5^.29^.7.tar
+    vmstar -xvf perl-5^.29^.8.tar
 
 Then set default to the top-level source directory like so:
 
-    set default [.perl-5^.29^.7]
+    set default [.perl-5^.29^.8]
 
 and proceed with configuration as described in the next section.
 
diff --git a/cpan/Compress-Raw-Bzip2/Bzip2.xs b/cpan/Compress-Raw-Bzip2/Bzip2.xs
index b4e9ab5549..c1f1c6b76c 100644
--- a/cpan/Compress-Raw-Bzip2/Bzip2.xs
+++ b/cpan/Compress-Raw-Bzip2/Bzip2.xs
@@ -485,7 +485,7 @@ bzdeflate (s, buf, output)
          croak("Wide character in " COMPRESS_CLASS "::bzdeflate input parameter");
 #endif         
     s->stream.next_in = (char*)SvPV_nomg(buf, origlen) ;
-    s->stream.avail_in = origlen;
+    s->stream.avail_in = (unsigned int) origlen;
      
     /* and retrieve the output buffer */
     output = deRef_l(output, "deflate") ;
@@ -735,7 +735,7 @@ bzinflate (s, buf, output)
     
     /* initialise the input buffer */
     s->stream.next_in = (char*)SvPV_nomg(buf, origlen) ;
-    s->stream.avail_in = origlen;
+    s->stream.avail_in = (unsigned int) origlen;
 	
     /* and retrieve the output buffer */
     output = deRef_l(output, "bzinflate") ;
diff --git a/cpan/Compress-Raw-Bzip2/lib/Compress/Raw/Bzip2.pm b/cpan/Compress-Raw-Bzip2/lib/Compress/Raw/Bzip2.pm
index 85139506ce..8165115ea3 100644
--- a/cpan/Compress-Raw-Bzip2/lib/Compress/Raw/Bzip2.pm
+++ b/cpan/Compress-Raw-Bzip2/lib/Compress/Raw/Bzip2.pm
@@ -11,7 +11,7 @@ use Carp ;
 use bytes ;
 our ($VERSION, $XS_VERSION, @ISA, @EXPORT, $AUTOLOAD);
 
-$VERSION = '2.081';
+$VERSION = '2.084';
 $XS_VERSION = $VERSION; 
 $VERSION = eval $VERSION;
 
@@ -356,7 +356,7 @@ The following bzip2 constants are exported by this module
 
 =head1 SEE ALSO
 
-L<Compress::Zlib>, L<IO::Compress::Gzip>, L<IO::Uncompress::Gunzip>, L<IO::Compress::Deflate>, L<IO::Uncompress::Inflate>, L<IO::Compress::RawDeflate>, L<IO::Uncompress::RawInflate>, L<IO::Compress::Bzip2>, L<IO::Uncompress::Bunzip2>, L<IO::Compress::Lzma>, L<IO::Uncompress::UnLzma>, L<IO::Compress::Xz>, L<IO::Uncompress::UnXz>, L<IO::Compress::Lzop>, L<IO::Uncompress::UnLzop>, L<IO::Compress::Lzf>, L<IO::Uncompress::UnLzf>, L<IO::Uncompress::AnyInflate>, L<IO::Uncompress::AnyUncompress>
+L<Compress::Zlib>, L<IO::Compress::Gzip>, L<IO::Uncompress::Gunzip>, L<IO::Compress::Deflate>, L<IO::Uncompress::Inflate>, L<IO::Compress::RawDeflate>, L<IO::Uncompress::RawInflate>, L<IO::Compress::Bzip2>, L<IO::Uncompress::Bunzip2>, L<IO::Compress::Lzma>, L<IO::Uncompress::UnLzma>, L<IO::Compress::Xz>, L<IO::Uncompress::UnXz>, L<IO::Compress::Lzip>, L<IO::Uncompress::UnLzip>, L<IO::Compress::Lzop>, L<IO::Uncompress::UnLzop>, L<IO::Compress::Lzf>, L<IO::Uncompress::UnLzf>, L<IO::Compress::Zstd>, L<IO::Uncompress::UnZstd>, L<IO::Uncompress::AnyInflate>, L<IO::Uncompress::AnyUncompress>
 
 L<IO::Compress::FAQ|IO::Compress::FAQ>
 
@@ -378,7 +378,7 @@ See the Changes file.
 
 =head1 COPYRIGHT AND LICENSE
 
-Copyright (c) 2005-2018 Paul Marquess. All rights reserved.
+Copyright (c) 2005-2019 Paul Marquess. All rights reserved.
 
 This program is free software; you can redistribute it and/or
 modify it under the same terms as Perl itself.
diff --git a/cpan/Compress-Raw-Bzip2/t/000prereq.t b/cpan/Compress-Raw-Bzip2/t/000prereq.t
index 70a9cc5841..624a3124f7 100644
--- a/cpan/Compress-Raw-Bzip2/t/000prereq.t
+++ b/cpan/Compress-Raw-Bzip2/t/000prereq.t
@@ -19,7 +19,7 @@ BEGIN
         if eval { require Test::NoWarnings ;  import Test::NoWarnings; 1 };
 
 
-    my $VERSION = '2.081';
+    my $VERSION = '2.084';
     my @NAMES = qw(
 			
 			);
diff --git a/cpan/Compress-Raw-Bzip2/t/compress/CompTestUtils.pm b/cpan/Compress-Raw-Bzip2/t/compress/CompTestUtils.pm
index da238e15d2..c506632f90 100644
--- a/cpan/Compress-Raw-Bzip2/t/compress/CompTestUtils.pm
+++ b/cpan/Compress-Raw-Bzip2/t/compress/CompTestUtils.pm
@@ -395,6 +395,17 @@ my %TOP = (
                                 Raw      => 0,
                               },
 
+    'IO::Compress::Lzip' => { Inverse  => 'IO::Uncompress::UnLzip',
+                            Error    => 'LzipError',
+                            TopLevel => 'lzip',
+                            Raw      => 0,
+                          },
+    'IO::Uncompress::UnLzip' => { Inverse  => 'IO::Compress::Lzip',
+                                Error    => 'UnLzipError',
+                                TopLevel => 'unlzip',
+                                Raw      => 0,
+                              },
+
     'IO::Compress::PPMd' => { Inverse  => 'IO::Uncompress::UnPPMd',
                               Error    => 'PPMdError',
                               TopLevel => 'ppmd',
@@ -405,6 +416,16 @@ my %TOP = (
                                   TopLevel => 'unppmd',
                                   Raw      => 0,
                                 },
+    'IO::Compress::Zstd' => { Inverse  => 'IO::Uncompress::UnZstd',
+                              Error    => 'ZstdError',
+                              TopLevel => 'zstd',
+                              Raw      => 0,
+                            },
+    'IO::Uncompress::UnZstd' => { Inverse  => 'IO::Compress::Zstd',
+                                  Error    => 'UnZstdError',
+                                  TopLevel => 'unzstd',
+                                  Raw      => 0,
+                                },
 
     'IO::Compress::DummyComp' => { Inverse  => 'IO::Uncompress::DummyUnComp',
                                    Error    => 'DummyCompError',
@@ -494,7 +515,7 @@ sub compressBuffer
 our ($AnyUncompressError);
 BEGIN
 {
-    eval ' use IO::Uncompress::AnyUncompress qw($AnyUncompressError); ';
+    eval ' use IO::Uncompress::AnyUncompress qw(anyuncompress $AnyUncompressError); ';
 }
 
 sub anyUncompress
@@ -555,7 +576,6 @@ sub anyUncompress
         if $o->error() ;
 
     return $out ;
-
 }
 
 sub getHeaders
@@ -718,7 +738,7 @@ sub getMultiValues
 {
     my $class = shift ;
 
-    return (0,0) if $class =~ /lzf|lzma/i;
+    return (0,0) if $class =~ /lzf|lzma|zstd/i;
     return (1,0);
 }
 
diff --git a/cpan/Compress-Raw-Zlib/lib/Compress/Raw/Zlib.pm b/cpan/Compress-Raw-Zlib/lib/Compress/Raw/Zlib.pm
index 9c047fd471..4c36973898 100644
--- a/cpan/Compress-Raw-Zlib/lib/Compress/Raw/Zlib.pm
+++ b/cpan/Compress-Raw-Zlib/lib/Compress/Raw/Zlib.pm
@@ -10,7 +10,7 @@ use warnings ;
 use bytes ;
 our ($VERSION, $XS_VERSION, @ISA, @EXPORT, %EXPORT_TAGS, @EXPORT_OK, $AUTOLOAD, %DEFLATE_CONSTANTS, @DEFLATE_CONSTANTS);
 
-$VERSION = '2.081';
+$VERSION = '2.084';
 $XS_VERSION = $VERSION; 
 $VERSION = eval $VERSION;
 
@@ -1559,7 +1559,7 @@ of I<Compress::Raw::Zlib>.
 
 =head1 SEE ALSO
 
-L<Compress::Zlib>, L<IO::Compress::Gzip>, L<IO::Uncompress::Gunzip>, L<IO::Compress::Deflate>, L<IO::Uncompress::Inflate>, L<IO::Compress::RawDeflate>, L<IO::Uncompress::RawInflate>, L<IO::Compress::Bzip2>, L<IO::Uncompress::Bunzip2>, L<IO::Compress::Lzma>, L<IO::Uncompress::UnLzma>, L<IO::Compress::Xz>, L<IO::Uncompress::UnXz>, L<IO::Compress::Lzop>, L<IO::Uncompress::UnLzop>, L<IO::Compress::Lzf>, L<IO::Uncompress::UnLzf>, L<IO::Uncompress::AnyInflate>, L<IO::Uncompress::AnyUncompress>
+L<Compress::Zlib>, L<IO::Compress::Gzip>, L<IO::Uncompress::Gunzip>, L<IO::Compress::Deflate>, L<IO::Uncompress::Inflate>, L<IO::Compress::RawDeflate>, L<IO::Uncompress::RawInflate>, L<IO::Compress::Bzip2>, L<IO::Uncompress::Bunzip2>, L<IO::Compress::Lzma>, L<IO::Uncompress::UnLzma>, L<IO::Compress::Xz>, L<IO::Uncompress::UnXz>, L<IO::Compress::Lzip>, L<IO::Uncompress::UnLzip>, L<IO::Compress::Lzop>, L<IO::Uncompress::UnLzop>, L<IO::Compress::Lzf>, L<IO::Uncompress::UnLzf>, L<IO::Compress::Zstd>, L<IO::Uncompress::UnZstd>, L<IO::Uncompress::AnyInflate>, L<IO::Uncompress::AnyUncompress>
 
 L<IO::Compress::FAQ|IO::Compress::FAQ>
 
@@ -1590,7 +1590,7 @@ See the Changes file.
 
 =head1 COPYRIGHT AND LICENSE
 
-Copyright (c) 2005-2018 Paul Marquess. All rights reserved.
+Copyright (c) 2005-2019 Paul Marquess. All rights reserved.
 
 This program is free software; you can redistribute it and/or
 modify it under the same terms as Perl itself.
diff --git a/cpan/Compress-Raw-Zlib/t/compress/CompTestUtils.pm b/cpan/Compress-Raw-Zlib/t/compress/CompTestUtils.pm
index da238e15d2..c506632f90 100644
--- a/cpan/Compress-Raw-Zlib/t/compress/CompTestUtils.pm
+++ b/cpan/Compress-Raw-Zlib/t/compress/CompTestUtils.pm
@@ -395,6 +395,17 @@ my %TOP = (
                                 Raw      => 0,
                               },
 
+    'IO::Compress::Lzip' => { Inverse  => 'IO::Uncompress::UnLzip',
+                            Error    => 'LzipError',
+                            TopLevel => 'lzip',
+                            Raw      => 0,
+                          },
+    'IO::Uncompress::UnLzip' => { Inverse  => 'IO::Compress::Lzip',
+                                Error    => 'UnLzipError',
+                                TopLevel => 'unlzip',
+                                Raw      => 0,
+                              },
+
     'IO::Compress::PPMd' => { Inverse  => 'IO::Uncompress::UnPPMd',
                               Error    => 'PPMdError',
                               TopLevel => 'ppmd',
@@ -405,6 +416,16 @@ my %TOP = (
                                   TopLevel => 'unppmd',
                                   Raw      => 0,
                                 },
+    'IO::Compress::Zstd' => { Inverse  => 'IO::Uncompress::UnZstd',
+                              Error    => 'ZstdError',
+                              TopLevel => 'zstd',
+                              Raw      => 0,
+                            },
+    'IO::Uncompress::UnZstd' => { Inverse  => 'IO::Compress::Zstd',
+                                  Error    => 'UnZstdError',
+                                  TopLevel => 'unzstd',
+                                  Raw      => 0,
+                                },
 
     'IO::Compress::DummyComp' => { Inverse  => 'IO::Uncompress::DummyUnComp',
                                    Error    => 'DummyCompError',
@@ -494,7 +515,7 @@ sub compressBuffer
 our ($AnyUncompressError);
 BEGIN
 {
-    eval ' use IO::Uncompress::AnyUncompress qw($AnyUncompressError); ';
+    eval ' use IO::Uncompress::AnyUncompress qw(anyuncompress $AnyUncompressError); ';
 }
 
 sub anyUncompress
@@ -555,7 +576,6 @@ sub anyUncompress
         if $o->error() ;
 
     return $out ;
-
 }
 
 sub getHeaders
@@ -718,7 +738,7 @@ sub getMultiValues
 {
     my $class = shift ;
 
-    return (0,0) if $class =~ /lzf|lzma/i;
+    return (0,0) if $class =~ /lzf|lzma|zstd/i;
     return (1,0);
 }
 
diff --git a/cpan/Encode/Encode.pm b/cpan/Encode/Encode.pm
index f90f929f07..ec625b9f20 100644
--- a/cpan/Encode/Encode.pm
+++ b/cpan/Encode/Encode.pm
@@ -1,5 +1,5 @@
 #
-# $Id: Encode.pm,v 2.97 2018/02/21 12:14:24 dankogai Exp $
+# $Id: Encode.pm,v 2.99 2019/01/21 03:11:41 dankogai Exp $
 #
 package Encode;
 use strict;
@@ -7,13 +7,14 @@ use warnings;
 use constant DEBUG => !!$ENV{PERL_ENCODE_DEBUG};
 our $VERSION;
 BEGIN {
-    $VERSION = sprintf "%d.%02d", q$Revision: 2.97 $ =~ /(\d+)/g;
+    $VERSION = sprintf "%d.%02d", q$Revision: 2.99 $ =~ /(\d+)/g;
     require XSLoader;
     XSLoader::load( __PACKAGE__, $VERSION );
 }
 
 use Exporter 5.57 'import';
 
+use Carp ();
 our @CARP_NOT = qw(Encode::Encoder);
 
 # Public, encouraged API is exported by default
@@ -170,134 +171,6 @@ sub clone_encoding($) {
     return Storable::dclone($obj);
 }
 
-sub encode($$;$) {
-    my ( $name, $string, $check ) = @_;
-    return undef unless defined $string;
-    $string .= '';    # stringify;
-    $check ||= 0;
-    unless ( defined $name ) {
-        require Carp;
-        Carp::croak("Encoding name should not be undef");
-    }
-    my $enc = find_encoding($name);
-    unless ( defined $enc ) {
-        require Carp;
-        Carp::croak("Unknown encoding '$name'");
-    }
-    # For Unicode, warnings need to be caught and re-issued at this level
-    # so that callers can disable utf8 warnings lexically.
-    my $octets;
-    if ( ref($enc) eq 'Encode::Unicode' ) {
-        my $warn = '';
-        {
-            local $SIG{__WARN__} = sub { $warn = shift };
-            $octets = $enc->encode( $string, $check );
-        }
-        warnings::warnif('utf8', $warn) if length $warn;
-    }
-    else {
-        $octets = $enc->encode( $string, $check );
-    }
-    $_[1] = $string if $check and !ref $check and !( $check & LEAVE_SRC );
-    return $octets;
-}
-*str2bytes = \&encode;
-
-sub decode($$;$) {
-    my ( $name, $octets, $check ) = @_;
-    return undef unless defined $octets;
-    $octets .= '';
-    $check ||= 0;
-    my $enc = find_encoding($name);
-    unless ( defined $enc ) {
-        require Carp;
-        Carp::croak("Unknown encoding '$name'");
-    }
-    # For Unicode, warnings need to be caught and re-issued at this level
-    # so that callers can disable utf8 warnings lexically.
-    my $string;
-    if ( ref($enc) eq 'Encode::Unicode' ) {
-        my $warn = '';
-        {
-            local $SIG{__WARN__} = sub { $warn = shift };
-            $string = $enc->decode( $octets, $check );
-        }
-        warnings::warnif('utf8', $warn) if length $warn;
-    }
-    else {
-        $string = $enc->decode( $octets, $check );
-    }
-    $_[1] = $octets if $check and !ref $check and !( $check & LEAVE_SRC );
-    return $string;
-}
-*bytes2str = \&decode;
-
-sub from_to($$$;$) {
-    my ( $string, $from, $to, $check ) = @_;
-    return undef unless defined $string;
-    $check ||= 0;
-    my $f = find_encoding($from);
-    unless ( defined $f ) {
-        require Carp;
-        Carp::croak("Unknown encoding '$from'");
-    }
-    my $t = find_encoding($to);
-    unless ( defined $t ) {
-        require Carp;
-        Carp::croak("Unknown encoding '$to'");
-    }
-
-    # For Unicode, warnings need to be caught and re-issued at this level
-    # so that callers can disable utf8 warnings lexically.
-    my $uni;
-    if ( ref($f) eq 'Encode::Unicode' ) {
-        my $warn = '';
-        {
-            local $SIG{__WARN__} = sub { $warn = shift };
-            $uni = $f->decode($string);
-        }
-        warnings::warnif('utf8', $warn) if length $warn;
-    }
-    else {
-        $uni = $f->decode($string);
-    }
-
-    if ( ref($t) eq 'Encode::Unicode' ) {
-        my $warn = '';
-        {
-            local $SIG{__WARN__} = sub { $warn = shift };
-            $_[0] = $string = $t->encode( $uni, $check );
-        }
-        warnings::warnif('utf8', $warn) if length $warn;
-    }
-    else {
-        $_[0] = $string = $t->encode( $uni, $check );
-    }
-
-    return undef if ( $check && length($uni) );
-    return defined( $_[0] ) ? length($string) : undef;
-}
-
-sub encode_utf8($) {
-    my ($str) = @_;
-    return undef unless defined $str;
-    utf8::encode($str);
-    return $str;
-}
-
-my $utf8enc;
-
-sub decode_utf8($;$) {
-    my ( $octets, $check ) = @_;
-    return undef unless defined $octets;
-    $octets .= '';
-    $check   ||= 0;
-    $utf8enc ||= find_encoding('utf8');
-    my $string = $utf8enc->decode( $octets, $check );
-    $_[0] = $octets if $check and !ref $check and !( $check & LEAVE_SRC );
-    return $string;
-}
-
 onBOOT;
 
 if ($ON_EBCDIC) {
@@ -824,6 +697,12 @@ code to do exactly that:
 This is the same as C<FB_QUIET> above, except that instead of being silent
 on errors, it issues a warning.  This is handy for when you are debugging.
 
+B<CAVEAT>: All warnings from Encode module are reported, independently of
+L<pragma warnings|warnings> settings. If you want to follow settings of
+lexical warnings configured by L<pragma warnings|warnings> then append
+also check value C<ENCODE::ONLY_PRAGMA_WARNINGS>. This value is available
+since Encode version 2.99.
+
 =head3 FB_PERLQQ FB_HTMLCREF FB_XMLCREF
 
 =over 2
diff --git a/cpan/Encode/Encode.xs b/cpan/Encode/Encode.xs
index 774c2b1fec..ddc1b1f366 100644
--- a/cpan/Encode/Encode.xs
+++ b/cpan/Encode/Encode.xs
@@ -1,8 +1,9 @@
 /*
- $Id: Encode.xs,v 2.43 2018/02/21 12:14:33 dankogai Exp dankogai $
+ $Id: Encode.xs,v 2.45 2019/01/21 03:13:35 dankogai Exp $
  */
 
 #define PERL_NO_GET_CONTEXT
+#define IN_ENCODE_XS
 #include "EXTERN.h"
 #include "perl.h"
 #include "XSUB.h"
@@ -20,26 +21,16 @@
    encode_method().  1 is recommended. 2 restores NI-S original */
 #define ENCODE_XS_USEFP   1
 
-#define UNIMPLEMENTED(x,y) static y x (SV *sv, char *encoding) {	\
-			Perl_croak_nocontext("panic_unimplemented");	\
-                        PERL_UNUSED_VAR(sv); \
-                        PERL_UNUSED_VAR(encoding); \
-             return (y)0; /* fool picky compilers */ \
-                         }
-/**/
-
-UNIMPLEMENTED(_encoded_utf8_to_bytes, I32)
-UNIMPLEMENTED(_encoded_bytes_to_utf8, I32)
-
 #ifndef SvIV_nomg
 #define SvIV_nomg SvIV
 #endif
 
-#ifndef UTF8_DISALLOW_ILLEGAL_INTERCHANGE
-#  define UTF8_DISALLOW_ILLEGAL_INTERCHANGE 0
-#  define UTF8_ALLOW_NON_STRICT (UTF8_ALLOW_FE_FF|UTF8_ALLOW_SURROGATE|UTF8_ALLOW_FFFF)
-#else
-#  define UTF8_ALLOW_NON_STRICT 0
+#ifndef SvTRUE_nomg
+#define SvTRUE_nomg SvTRUE
+#endif
+
+#ifndef SVfARG
+#define SVfARG(p) ((void*)(p))
 #endif
 
 static void
@@ -66,16 +57,6 @@ Encode_XSEncoding(pTHX_ encode_t * enc)
     SvREFCNT_dec(sv);
 }
 
-static void
-call_failure(SV * routine, U8 * done, U8 * dest, U8 * orig)
-{
-    /* Exists for breakpointing */
-    PERL_UNUSED_VAR(routine);
-    PERL_UNUSED_VAR(done);
-    PERL_UNUSED_VAR(dest);
-    PERL_UNUSED_VAR(orig);
-}
-
 static void
 utf8_safe_downgrade(pTHX_ SV ** src, U8 ** s, STRLEN * slen, bool modify)
 {
@@ -164,7 +145,7 @@ do_bytes_fallback_cb(pTHX_ U8 *s, STRLEN slen, SV *fallback_cb)
 
 static SV *
 encode_method(pTHX_ const encode_t * enc, const encpage_t * dir, SV * src, U8 * s, STRLEN slen,
-	      int check, STRLEN * offset, SV * term, int * retcode, 
+	      IV check, STRLEN * offset, SV * term, int * retcode, 
 	      SV *fallback_cb)
 {
     STRLEN tlen  = slen;
@@ -258,7 +239,7 @@ encode_method(pTHX_ const encode_t * enc, const encpage_t * dir, SV * src, U8 *
                    (UV)ch, enc->name[0]);
             return &PL_sv_undef; /* never reaches but be safe */
         }
-        if (check & ENCODE_WARN_ON_ERR){
+        if (encode_ckWARN(check, WARN_UTF8)) {
             Perl_warner(aTHX_ packWARN(WARN_UTF8),
                 ERR_ENCODE_NOMAP, (UV)ch, enc->name[0]);
         }
@@ -297,7 +278,7 @@ encode_method(pTHX_ const encode_t * enc, const encpage_t * dir, SV * src, U8 *
                               enc->name[0], (UV)s[slen]);
             return &PL_sv_undef; /* never reaches but be safe */
         }
-        if (check & ENCODE_WARN_ON_ERR){
+        if (encode_ckWARN(check, WARN_UTF8)) {
             Perl_warner(
             aTHX_ packWARN(WARN_UTF8),
             ERR_DECODE_NOMAP,
@@ -386,70 +367,6 @@ strict_utf8(pTHX_ SV* sv)
     return SvTRUE(*svp);
 }
 
-/* Modern perls have the capability to do this more efficiently and portably */
-#ifdef utf8n_to_uvchr_msgs
-# define CAN_USE_BASE_PERL
-#endif
-
-#ifndef CAN_USE_BASE_PERL
-
-/*
- * https://github.com/dankogai/p5-encode/pull/56#issuecomment-231959126
- */
-#ifndef UNICODE_IS_NONCHAR
-#define UNICODE_IS_NONCHAR(c) ((c >= 0xFDD0 && c <= 0xFDEF) || (c & 0xFFFE) == 0xFFFE)
-#endif
-
-#ifndef UNICODE_IS_SUPER
-#define UNICODE_IS_SUPER(c) (c > PERL_UNICODE_MAX)
-#endif
-
-#define UNICODE_IS_STRICT(c) (!UNICODE_IS_SURROGATE(c) && !UNICODE_IS_NONCHAR(c) && !UNICODE_IS_SUPER(c))
-
-#ifndef UTF_ACCUMULATION_OVERFLOW_MASK
-#ifndef CHARBITS
-#define CHARBITS CHAR_BIT
-#endif
-#define UTF_ACCUMULATION_OVERFLOW_MASK (((UV) UTF_CONTINUATION_MASK) << ((sizeof(UV) * CHARBITS) - UTF_ACCUMULATION_SHIFT))
-#endif
-
-/*
- * Convert non strict utf8 sequence of len >= 2 to unicode codepoint
- */
-static UV
-convert_utf8_multi_seq(U8* s, STRLEN len, STRLEN *rlen)
-{
-    UV uv;
-    U8 *ptr = s;
-    bool overflowed = 0;
-
-    uv = NATIVE_TO_UTF(*s) & UTF_START_MASK(UTF8SKIP(s));
-
-    len--;
-    s++;
-
-    while (len--) {
-        if (!UTF8_IS_CONTINUATION(*s)) {
-            *rlen = s-ptr;
-            return 0;
-        }
-        if (uv & UTF_ACCUMULATION_OVERFLOW_MASK)
-            overflowed = 1;
-        uv = UTF8_ACCUMULATE(uv, *s);
-        s++;
-    }
-
-    *rlen = s-ptr;
-
-    if (overflowed || *rlen > (STRLEN)UNISKIP(uv)) {
-        return 0;
-    }
-
-    return uv;
-}
-
-#endif  /* CAN_USE_BASE_PERL */
-
 static U8*
 process_utf8(pTHX_ SV* dst, U8* s, U8* e, SV *check_sv,
              bool encode, bool strict, bool stop_at_partial)
@@ -472,16 +389,20 @@ process_utf8(pTHX_ SV* dst, U8* s, U8* e, SV *check_sv,
     UV uv;
     STRLEN ulen;
     SV *fallback_cb;
-    int check;
+    IV check;
     U8 *d;
     STRLEN dlen;
     char esc[UTF8_MAXLEN * 6 + 1];
     STRLEN i;
     const U32 flags = (strict)
                     ? UTF8_DISALLOW_ILLEGAL_INTERCHANGE
-                    : UTF8_ALLOW_NON_STRICT;
+                    : 0;
 
-    if (SvROK(check_sv)) {
+    if (!SvOK(check_sv)) {
+	fallback_cb = &PL_sv_undef;
+	check = 0;
+    }
+    else if (SvROK(check_sv)) {
 	/* croak("UTF-8 decoder doesn't support callback CHECK"); */
 	fallback_cb = check_sv;
 	check = ENCODE_PERLQQ|ENCODE_LEAVE_SRC; /* same as perlqq */
@@ -501,9 +422,6 @@ process_utf8(pTHX_ SV* dst, U8* s, U8* e, SV *check_sv,
 
     while (s < e) {
 
-#ifdef CAN_USE_BASE_PERL    /* Use the much faster, portable implementation if
-                               available */
-
         /* If there were no errors, this will be 'e'; otherwise it will point
          * to the first byte of the erroneous input */
         const U8* e_or_where_failed;
@@ -531,63 +449,7 @@ process_utf8(pTHX_ SV* dst, U8* s, U8* e, SV *check_sv,
          * point, or the best substitution for it */
         uv = utf8n_to_uvchr(s, e - s, &ulen, UTF8_ALLOW_ANY);
 
-#else   /* Use code for earlier perls */
-
-        ((void)sizeof(flags));  /* Avoid compiler warning */
-
-        if (UTF8_IS_INVARIANT(*s)) {
-            *d++ = *s++;
-            continue;
-        }
-
-        uv = 0;
-        ulen = 1;
-        if (! UTF8_IS_CONTINUATION(*s)) {
-            /* Not an invariant nor a continuation; must be a start byte.  (We
-             * can't test for UTF8_IS_START as that excludes things like \xC0
-             * which are start bytes, but always lead to overlongs */
-
-            U8 skip = UTF8SKIP(s);
-            if ((s + skip) > e) {
-                /* just calculate ulen, in pathological cases can be smaller then e-s */
-                if (e-s >= 2)
-                    convert_utf8_multi_seq(s, e-s, &ulen);
-                else
-                    ulen = 1;
-
-                if (stop_at_partial && ulen == (STRLEN)(e-s))
-                    break;
-
-                goto malformed_byte;
-            }
-
-            uv = convert_utf8_multi_seq(s, skip, &ulen);
-            if (uv == 0)
-                goto malformed_byte;
-            else if (strict && !UNICODE_IS_STRICT(uv))
-                goto malformed;
-
-
-             /* Whole char is good */
-             memcpy(d, s, skip);
-             d += skip;
-             s += skip;
-             continue;
-        }
-
... 84571 lines suppressed ...

-- 
Perl5 Master Repository



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