develooper Front page | perl.perl5.changes | Postings from February 2018

[perl.git] branch smoke-me/leont/less-fragile-encoding updated.v5.27.8-150-g849433b4f0

From:
Leon Timmermans
Date:
February 4, 2018 11:53
Subject:
[perl.git] branch smoke-me/leont/less-fragile-encoding updated.v5.27.8-150-g849433b4f0
Message ID:
E1eiIrC-0000iY-A9@git.dc.perl.space
In perl.git, the branch smoke-me/leont/less-fragile-encoding has been updated

<https://perl5.git.perl.org/perl.git/commitdiff/849433b4f0231124f1448973fd44bc044b12e62d?hp=a64eaf63b9e70e502d64f489a217fd6c4ede6c31>

  discards  a64eaf63b9e70e502d64f489a217fd6c4ede6c31 (commit)
- Log -----------------------------------------------------------------
commit 849433b4f0231124f1448973fd44bc044b12e62d
Author: Leon Timmermans <fawaka@gmail.com>
Date:   Thu Jan 4 19:56:03 2018 +0100

    Disallow coderef in $PerlIO::encoding::fallback
    
    Encode allows one to pass a coderef instead of a set of flags to handle.
    This however doesn't allow one to pass STOP_AT_PARTIAL, which means it
    has always been buggy on buffer boundaries. With my new automatic
    STOP_AT_PARTIAL passing this would result in an unpredictable value.

commit 35d99902af4832a40c4aa9d88895f98aa0b22755
Author: Leon Timmermans <fawaka@gmail.com>
Date:   Thu Dec 28 19:23:03 2017 +0100

    Enforce STOP_AT_PARTIAL in $PerlIO::encoding::fallback
    
    PerlIO::encoding has a $fallback variable that allows one to set the
    behavior on a encoding/decoding error, for example to make it throw an
    exception on error. What is not documented (actually the example in the
    documentation is even missing this) is that PerlIO::encoding needs the
    (equally undocumented) Encode::STOP_AT_PARTIAL flag to be set, otherwise
    a multi-byte character spanning buffer boundaries will be interpreted as
    two invalid byte sequences. I could have fixed the documentation, but
    instead I fixed the code to always pass this flag to Encode, simplifying
    the use and making the current documentation correct again.

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

Summary of changes:
 AUTHORS                                            |    1 +
 Cross/Makefile-cross-SH                            |    4 -
 Cross/config.sh-arm-linux                          |   40 +-
 Cross/config.sh-arm-linux-n770                     |   40 +-
 INSTALL                                            |   30 +-
 MANIFEST                                           |    7 +-
 META.json                                          |    2 +-
 META.yml                                           |    2 +-
 Makefile.SH                                        |   12 +-
 NetWare/Makefile                                   |    4 +-
 NetWare/config_H.wc                                |   10 +-
 Porting/Maintainers.pl                             |   17 +-
 Porting/cmpVERSION.pl                              |    1 -
 Porting/config.sh                                  |   42 +-
 Porting/config_H                                   |   18 +-
 Porting/epigraphs.pod                              |   32 +
 Porting/perldelta_template.pod                     |    2 +-
 Porting/release_managers_guide.pod                 |   10 +-
 Porting/release_schedule.pod                       |    4 +-
 README                                             |    3 +-
 README.haiku                                       |    4 +-
 README.macosx                                      |    8 +-
 README.os2                                         |    2 +-
 README.vms                                         |    4 +-
 charclass_invlists.h                               |  162 +-
 configure.com                                      |   28 +-
 cop.h                                              |   24 +-
 cpan/Encode/Encode.pm                              |   38 +-
 cpan/Encode/Makefile.PL                            |    2 +-
 cpan/Encode/lib/Encode/Alias.pm                    |    4 +-
 cpan/Encode/t/decode.t                             |    2 +-
 cpan/Encode/t/mime-name.t                          |    2 +-
 cpan/Socket/Makefile.PL                            |   83 +-
 cpan/Socket/Socket.pm                              |   50 +-
 cpan/Socket/Socket.xs                              |  170 +-
 cpan/Socket/t/getaddrinfo.t                        |   30 +-
 cpan/Socket/t/sockaddr.t                           |   48 +-
 cpan/Socket/t/socketpair.t                         |    6 +-
 cpan/autodie/lib/autodie/exception.pm              |   11 +-
 cpan/experimental/t/basic.t                        |   39 +-
 dist/Data-Dumper/Dumper.pm                         |    4 +-
 dist/Data-Dumper/Dumper.xs                         |   11 +-
 dist/Data-Dumper/t/dumper.t                        |   32 +-
 dist/Devel-PPPort/PPPort_pm.PL                     |   12 +-
 dist/Devel-PPPort/parts/inc/HvNAME                 |    2 +-
 dist/Devel-PPPort/parts/inc/call                   |    4 +-
 dist/Devel-PPPort/parts/inc/mess                   |  518 +++++
 dist/Devel-PPPort/parts/inc/misc                   |    5 +-
 dist/Devel-PPPort/parts/inc/ppphtest               |    1 +
 dist/Devel-PPPort/parts/inc/pv_tools               |    6 +-
 dist/Devel-PPPort/parts/inc/threads                |    4 +-
 dist/Devel-PPPort/parts/todo/5006000               |    2 -
 dist/Devel-PPPort/parts/todo/5010001               |    1 -
 dist/Devel-PPPort/parts/todo/5013001               |    4 -
 dist/Devel-PPPort/parts/todo/5013003               |    1 -
 dist/Devel-PPPort/parts/todo/5019003               |    1 -
 dist/Devel-PPPort/t/HvNAME.t                       |    2 +-
 dist/Devel-PPPort/t/mess.t                         |  284 +++
 dist/Devel-PPPort/t/ppphtest.t                     |    1 +
 dist/Devel-PPPort/t/pv_tools.t                     |    6 +-
 dist/Module-CoreList/Changes                       |    5 +
 dist/Module-CoreList/MANIFEST                      |    1 -
 dist/Module-CoreList/lib/Module/CoreList.pm        |   70 +-
 dist/Module-CoreList/lib/Module/CoreList.pod       |    3 -
 .../lib/Module/CoreList/TieHashDelta.pm            |   77 -
 dist/Module-CoreList/lib/Module/CoreList/Utils.pm  |    9 +-
 dist/Module-CoreList/t/find_modules.t              |    8 +-
 dist/Module-CoreList/t/is_core.t                   |    5 +-
 dist/Module-CoreList/t/maintainer.t                |    1 -
 dist/PathTools/Cwd.pm                              |    9 +-
 dist/PathTools/t/cwd_enoent.t                      |    6 +-
 dist/Time-HiRes/Changes                            |   30 +
 dist/Time-HiRes/HiRes.pm                           |   17 +-
 dist/Time-HiRes/HiRes.xs                           |    4 +-
 dist/Time-HiRes/Makefile.PL                        |   14 +-
 dist/Time-HiRes/fallback/const-c.inc               |  352 +++-
 dist/Time-HiRes/fallback/const-xs.inc              |    6 +-
 dist/Time-HiRes/t/alarm.t                          |    3 +
 dist/Time-HiRes/t/utime.t                          |  104 +-
 dist/XSLoader/XSLoader_pm.PL                       |   11 +-
 dist/if/if.pm                                      |   88 +-
 dist/if/t/if.t                                     |  100 +-
 dist/threads/t/exit.t                              |   10 +-
 dist/threads/t/thread.t                            |    2 +-
 doop.c                                             |  245 +--
 dump.c                                             |   52 +-
 embed.fnc                                          |   70 +-
 embed.h                                            |   33 +-
 embedvar.h                                         |    3 +
 ext/B/B.pm                                         |    2 +-
 ext/B/B.xs                                         |   26 +-
 ext/B/t/f_map.t                                    |    4 +-
 ext/B/t/optree_samples.t                           |   20 +-
 ext/Errno/Errno_pm.PL                              |    4 +-
 ext/Opcode/Opcode.pm                               |    8 +-
 ext/POSIX/Makefile.PL                              |    6 +-
 ext/POSIX/POSIX.xs                                 |  104 +-
 ext/POSIX/lib/POSIX.pm                             |    5 +-
 ext/POSIX/t/export.t                               |    6 +-
 ext/PerlIO-encoding/encoding.xs                    |    4 +-
 ext/Pod-Functions/Functions_pm.PL                  |    2 +-
 ext/Pod-Functions/t/Functions.t                    |    2 +-
 ext/XS-APItest/APItest.pm                          |    2 +-
 ext/XS-APItest/APItest.xs                          |   55 +-
 ext/XS-APItest/t/locale.t                          |   47 +-
 ext/XS-APItest/t/utf8_warn_base.pl                 | 1400 +++++++-------
 feature.h                                          |   28 +-
 gv.c                                               |    5 +-
 handy.h                                            |    1 +
 hints/catamount.sh                                 |    4 +-
 hints/darwin.sh                                    |    4 +
 hints/freebsd.sh                                   |    7 +
 hints/hpux.sh                                      |    7 +
 inline.h                                           |  187 +-
 intrpvar.h                                         |    8 +
 keywords.c                                         |  181 +-
 keywords.h                                         |  467 ++---
 lib/B/Deparse-core.t                               |    6 +-
 lib/B/Deparse.pm                                   |   96 +-
 lib/B/Deparse.t                                    |   74 +-
 lib/B/Op_private.pm                                |   12 +-
 lib/Unicode/UCD.pm                                 |   72 +-
 lib/feature.pm                                     |   24 +-
 lib/overload.pm                                    |   35 +-
 lib/overload.t                                     |   12 +-
 lib/utf8.pm                                        |    4 +-
 locale.c                                           | 2030 +++++++++++---------
 mg.c                                               |   18 +-
 numeric.c                                          |   17 +-
 op.c                                               |  524 +++--
 op.h                                               |   16 +
 opcode.h                                           |  282 +--
 opnames.h                                          |  358 ++--
 pad.c                                              |   10 +-
 patchlevel.h                                       |    4 +-
 perl.c                                             |   67 +-
 perl.h                                             |  104 +-
 perl_langinfo.h                                    |   14 +-
 perly.act                                          |  810 ++++----
 perly.h                                            |   93 +-
 perly.tab                                          | 1620 ++++++++--------
 perly.y                                            |  121 +-
 plan9/config.plan9                                 |   10 +-
 plan9/config_sh.sample                             |   38 +-
 pod/.gitignore                                     |    2 +-
 pod/perl.pod                                       |    1 +
 pod/perl5278delta.pod                              |  524 +++++
 pod/perl588delta.pod                               |    4 +-
 pod/perl589delta.pod                               |    2 +-
 pod/perldebguts.pod                                |   28 +-
 pod/perldelta.pod                                  |   57 +-
 pod/perldeprecation.pod                            |   68 +-
 pod/perldiag.pod                                   |  141 +-
 pod/perlembed.pod                                  |    6 +-
 pod/perlexperiment.pod                             |   26 +-
 pod/perlfunc.pod                                   |   59 +-
 pod/perlhist.pod                                   |    1 +
 pod/perlintro.pod                                  |    4 +-
 pod/perlipc.pod                                    |    4 +-
 pod/perllocale.pod                                 |    8 +-
 pod/perlop.pod                                     |  362 +++-
 pod/perlpolicy.pod                                 |   46 +-
 pod/perlport.pod                                   |   12 +-
 pod/perlre.pod                                     |    6 +-
 pod/perlrun.pod                                    |   13 +-
 pod/perlsub.pod                                    |   33 +-
 pod/perlsyn.pod                                    |  529 +++--
 pod/perltrap.pod                                   |    5 +-
 pp.c                                               |    8 +-
 pp_ctl.c                                           |  727 ++++++-
 pp_hot.c                                           |   16 +-
 pp_pack.c                                          |    4 +-
 pp_proto.h                                         |    6 +-
 pp_sys.c                                           |    4 +-
 proto.h                                            |  130 +-
 regcharclass.h                                     |    2 +-
 regcomp.c                                          |  351 +++-
 regcomp.sym                                        |    4 +
 regen/feature.pl                                   |   18 +-
 regen/keywords.pl                                  |   10 +-
 regen/mk_invlists.pl                               |   25 +-
 regen/op_private                                   |   14 +-
 regen/opcodes                                      |   14 +-
 regexec.c                                          | 1535 ++++++++++-----
 regnodes.h                                         |  323 ++--
 scope.c                                            |    1 -
 sv.c                                               |   50 +-
 t/TEST                                             |    3 +-
 t/io/fs.t                                          |    1 +
 t/io/open.t                                        |   19 +-
 t/lib/croak/op                                     |    6 -
 t/lib/croak/pp_ctl                                 |   24 +-
 t/lib/feature/switch                               |  104 +-
 t/lib/warnings/9uninit                             |    7 +
 t/lib/warnings/op                                  |   32 +-
 t/lib/warnings/utf8                                |    5 +-
 t/loc_tools.pl                                     |   67 +-
 t/op/array.t                                       |   69 +-
 t/op/blocks.t                                      |   15 +-
 t/op/bop.t                                         |  111 +-
 t/op/coreamp.t                                     |   20 +-
 t/op/coresubs.t                                    |    2 +-
 t/op/cproto.t                                      |    7 +-
 t/op/exec.t                                        |   10 +-
 t/op/given.t                                       |  238 ---
 t/op/goto.t                                        |   50 +-
 t/op/list.t                                        |   42 +-
 t/op/postfixderef.t                                |   25 +-
 t/op/signatures.t                                  |   37 +-
 t/op/smartmatch.t                                  |  661 ++++++-
 t/op/sprintf2.t                                    |    7 +
 t/op/state.t                                       |   27 +-
 t/op/switch.t                                      |  765 +++++---
 t/op/taint.t                                       |   17 +-
 t/op/tie_fetch_count.t                             |    6 +-
 t/op/tr.t                                          |  428 ++++-
 t/op/warn.t                                        |   21 +-
 t/op/whereis.t                                     |   88 -
 t/op/whereso.t                                     |  217 ---
 t/porting/corelist.t                               |    3 +-
 t/porting/customized.dat                           |    6 +-
 t/re/anyof.t                                       |    2 +-
 t/re/pat_psycho.t                                  |    5 +-
 t/re/re_tests                                      |    4 +
 t/re/reg_mesg.t                                    |    2 +-
 t/re/regexp.t                                      |   11 +-
 t/re/script_run.t                                  |   10 +-
 t/run/switches.t                                   |   30 +-
 toke.c                                             |   23 +-
 universal.c                                        |   34 -
 utf8.c                                             |  304 ++-
 utf8.h                                             |    2 +
 vms/descrip_mms.template                           |    2 +-
 vms/vms.c                                          |  331 ++--
 vutil.c                                            |   31 +-
 win32/GNUmakefile                                  |    6 +-
 win32/Makefile                                     |    6 +-
 win32/config.gc                                    |    2 +-
 win32/config_H.gc                                  |    2 +-
 win32/config_sh.PL                                 |   24 +-
 win32/makefile.mk                                  |    6 +-
 win32/pod.mak                                      |    4 +
 242 files changed, 14134 insertions(+), 7334 deletions(-)
 create mode 100644 dist/Devel-PPPort/parts/inc/mess
 create mode 100644 dist/Devel-PPPort/t/mess.t
 delete mode 100644 dist/Module-CoreList/lib/Module/CoreList/TieHashDelta.pm
 create mode 100644 pod/perl5278delta.pod
 delete mode 100644 t/op/given.t
 delete mode 100644 t/op/whereis.t
 delete mode 100644 t/op/whereso.t

diff --git a/AUTHORS b/AUTHORS
index e2c794510e..e5295161bc 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -438,6 +438,7 @@ Geoffrey F. Green		<geoff-public@stuebegreen.com>
 Geoffrey T. Dairiki		<dairiki@dairiki.org>
 Georg Schwarz			<geos@epost.de>
 George Greer			<perl@greerga.m-l.org>
+George Hartzell			<georgewh@gene.com>
 George Necula			<necula@eecs.berkeley.edu>
 Geraint A Edwards		<gedge@serf.org>
 Gerard Goossen			<gerard@ggoossen.net>
diff --git a/Cross/Makefile-cross-SH b/Cross/Makefile-cross-SH
index 90f9f6f72b..85fc64afc2 100644
--- a/Cross/Makefile-cross-SH
+++ b/Cross/Makefile-cross-SH
@@ -856,10 +856,6 @@ CHMOD_W = chmod +w
 # with your existing copy of perl
 # (make regen_headers is kept for backwards compatibility)
 
-AUTOGEN_FILES = opcode.h opnames.h pp_proto.h proto.h embed.h embedvar.h \
-		perlapi.h perlapi.c regnodes.h warnings.h lib/warnings.pm \
-		lib/feature.pm feature.h
-
 .PHONY: regen_headers regen_all
 
 regen regen_headers:	FORCE
diff --git a/Cross/config.sh-arm-linux b/Cross/config.sh-arm-linux
index 09fd7c70c1..17f15323eb 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='8'
+api_subversion='9'
 api_version='27'
-api_versionstring='5.27.8'
+api_versionstring='5.27.9'
 ar='ar'
-archlib='/usr/lib/perl5/5.27.8/armv4l-linux'
-archlibexp='/usr/lib/perl5/5.27.8/armv4l-linux'
+archlib='/usr/lib/perl5/5.27.9/armv4l-linux'
+archlibexp='/usr/lib/perl5/5.27.9/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.27.8/armv4l-linux/CORE'
+ccdlflags='-rdynamic -Wl,-rpath,/usr/lib/perl5/5.27.9/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.27.8/armv4l-linux'
+installarchlib='./install_me_here/usr/lib/perl5/5.27.9/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.27.8'
+installprivlib='./install_me_here/usr/lib/perl5/5.27.9'
 installscript='./install_me_here/usr/bin'
-installsitearch='./install_me_here/usr/lib/perl5/site_perl/5.27.8/armv4l-linux'
+installsitearch='./install_me_here/usr/lib/perl5/site_perl/5.27.9/armv4l-linux'
 installsitebin='./install_me_here/usr/bin'
 installsitehtml1dir=''
 installsitehtml3dir=''
-installsitelib='./install_me_here/usr/lib/perl5/site_perl/5.27.8'
+installsitelib='./install_me_here/usr/lib/perl5/site_perl/5.27.9'
 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.27.8'
-privlibexp='/usr/lib/perl5/5.27.8'
+privlib='/usr/lib/perl5/5.27.9'
+privlibexp='/usr/lib/perl5/5.27.9'
 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.27.8/armv4l-linux'
-sitearchexp='/usr/lib/perl5/site_perl/5.27.8/armv4l-linux'
+sitearch='/usr/lib/perl5/site_perl/5.27.9/armv4l-linux'
+sitearchexp='/usr/lib/perl5/site_perl/5.27.9/armv4l-linux'
 sitebin='/usr/bin'
 sitebinexp='/usr/bin'
 sitehtml1dir=''
 sitehtml1direxp=''
 sitehtml3dir=''
 sitehtml3direxp=''
-sitelib='/usr/lib/perl5/site_perl/5.27.8'
+sitelib='/usr/lib/perl5/site_perl/5.27.9'
 sitelib_stem='/usr/lib/perl5/site_perl'
-sitelibexp='/usr/lib/perl5/site_perl/5.27.8'
+sitelibexp='/usr/lib/perl5/site_perl/5.27.9'
 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='8'
+subversion='9'
 sysman='/usr/share/man/man1'
 tail=''
 tar=''
@@ -1171,8 +1171,8 @@ vendorprefix=''
 vendorprefixexp=''
 vendorscript=''
 vendorscriptexp=''
-version='5.27.8'
-version_patchlevel_string='version 27 subversion 8'
+version='5.27.9'
+version_patchlevel_string='version 27 subversion 9'
 versiononly='undef'
 vi=''
 xlibpth='/usr/lib/386 /lib/386'
@@ -1186,9 +1186,9 @@ config_args=''
 config_argc=0
 PERL_REVISION=5
 PERL_VERSION=27
-PERL_SUBVERSION=8
+PERL_SUBVERSION=9
 PERL_API_REVISION=5
 PERL_API_VERSION=27
-PERL_API_SUBVERSION=8
+PERL_API_SUBVERSION=9
 PERL_PATCHLEVEL=
 PERL_CONFIG_SH=true
diff --git a/Cross/config.sh-arm-linux-n770 b/Cross/config.sh-arm-linux-n770
index 69cddee25e..ffee4b753b 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='8'
+api_subversion='9'
 api_version='27'
-api_versionstring='5.27.8'
+api_versionstring='5.27.9'
 ar='ar'
-archlib='/usr/lib/perl5/5.27.8/armv4l-linux'
-archlibexp='/usr/lib/perl5/5.27.8/armv4l-linux'
+archlib='/usr/lib/perl5/5.27.9/armv4l-linux'
+archlibexp='/usr/lib/perl5/5.27.9/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.27.8/armv4l-linux/CORE'
+ccdlflags='-rdynamic -Wl,-rpath,/usr/lib/perl5/5.27.9/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.27.8/armv4l-linux'
+installarchlib='./install_me_here/usr/lib/perl5/5.27.9/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.27.8'
+installprivlib='./install_me_here/usr/lib/perl5/5.27.9'
 installscript='./install_me_here/usr/bin'
-installsitearch='./install_me_here/usr/lib/perl5/site_perl/5.27.8/armv4l-linux'
+installsitearch='./install_me_here/usr/lib/perl5/site_perl/5.27.9/armv4l-linux'
 installsitebin='./install_me_here/usr/bin'
 installsitehtml1dir=''
 installsitehtml3dir=''
-installsitelib='./install_me_here/usr/lib/perl5/site_perl/5.27.8'
+installsitelib='./install_me_here/usr/lib/perl5/site_perl/5.27.9'
 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.27.8'
-privlibexp='/usr/lib/perl5/5.27.8'
+privlib='/usr/lib/perl5/5.27.9'
+privlibexp='/usr/lib/perl5/5.27.9'
 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.27.8/armv4l-linux'
-sitearchexp='/usr/lib/perl5/site_perl/5.27.8/armv4l-linux'
+sitearch='/usr/lib/perl5/site_perl/5.27.9/armv4l-linux'
+sitearchexp='/usr/lib/perl5/site_perl/5.27.9/armv4l-linux'
 sitebin='/usr/bin'
 sitebinexp='/usr/bin'
 sitehtml1dir=''
 sitehtml1direxp=''
 sitehtml3dir=''
 sitehtml3direxp=''
-sitelib='/usr/lib/perl5/site_perl/5.27.8'
+sitelib='/usr/lib/perl5/site_perl/5.27.9'
 sitelib_stem='/usr/lib/perl5/site_perl'
-sitelibexp='/usr/lib/perl5/site_perl/5.27.8'
+sitelibexp='/usr/lib/perl5/site_perl/5.27.9'
 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='8'
+subversion='9'
 sysman='/usr/share/man/man1'
 tail=''
 tar=''
@@ -1169,8 +1169,8 @@ vendorprefix=''
 vendorprefixexp=''
 vendorscript=''
 vendorscriptexp=''
-version='5.27.8'
-version_patchlevel_string='version 27 subversion 8'
+version='5.27.9'
+version_patchlevel_string='version 27 subversion 9'
 versiononly='undef'
 vi=''
 xlibpth='/usr/lib/386 /lib/386'
@@ -1184,9 +1184,9 @@ config_args=''
 config_argc=0
 PERL_REVISION=5
 PERL_VERSION=27
-PERL_SUBVERSION=8
+PERL_SUBVERSION=9
 PERL_API_REVISION=5
 PERL_API_VERSION=27
-PERL_API_SUBVERSION=8
+PERL_API_SUBVERSION=9
 PERL_PATCHLEVEL=
 PERL_CONFIG_SH=true
diff --git a/INSTALL b/INSTALL
index be3008a4a8..13484ce71b 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.27.8.
+By default, Configure will use the following directories for 5.27.9.
 $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.27.8 is not binary compatible with earlier versions of Perl.
+Perl 5.27.9 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.27.8
+	sh Configure -Dprefix=/opt/perl5.27.9
 
-and adding /opt/perl5.27.8/bin to the shell PATH variable.  Such users
+and adding /opt/perl5.27.9/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.
 
@@ -2530,13 +2530,13 @@ seriously consider using a separate directory, since development
 subversions may not have all the compatibility wrinkles ironed out
 yet.
 
-=head2 Upgrading from 5.27.6 or earlier
+=head2 Upgrading from 5.27.8 or earlier
 
-B<Perl 5.27.8 may not be binary compatible with Perl 5.27.6 or
+B<Perl 5.27.9 may not be binary compatible with Perl 5.27.8 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.27.8.  If you find you do need to rebuild an extension with
-5.27.8, you may safely do so without disturbing the older
+used with 5.27.9.  If you find you do need to rebuild an extension with
+5.27.9, 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.27.8 is as follows (under $Config{prefix}):
+in Linux with perl-5.27.9 is as follows (under $Config{prefix}):
 
   ./bin/perl
-  ./lib/perl5/5.27.8/strict.pm
-  ./lib/perl5/5.27.8/warnings.pm
-  ./lib/perl5/5.27.8/i686-linux/File/Glob.pm
-  ./lib/perl5/5.27.8/feature.pm
-  ./lib/perl5/5.27.8/XSLoader.pm
-  ./lib/perl5/5.27.8/i686-linux/auto/File/Glob/Glob.so
+  ./lib/perl5/5.27.9/strict.pm
+  ./lib/perl5/5.27.9/warnings.pm
+  ./lib/perl5/5.27.9/i686-linux/File/Glob.pm
+  ./lib/perl5/5.27.9/feature.pm
+  ./lib/perl5/5.27.9/XSLoader.pm
+  ./lib/perl5/5.27.9/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 f34c9ee8b7..96c8da5b5e 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -3172,6 +3172,7 @@ dist/Devel-PPPort/parts/inc/HvNAME	Devel::PPPort include
 dist/Devel-PPPort/parts/inc/limits	Devel::PPPort include
 dist/Devel-PPPort/parts/inc/magic	Devel::PPPort include
 dist/Devel-PPPort/parts/inc/memory	Devel::PPPort include
+dist/Devel-PPPort/parts/inc/mess	Devel::PPPort include
 dist/Devel-PPPort/parts/inc/misc	Devel::PPPort include
 dist/Devel-PPPort/parts/inc/mPUSH	Devel::PPPort include
 dist/Devel-PPPort/parts/inc/MY_CXT	Devel::PPPort include
@@ -3352,6 +3353,7 @@ dist/Devel-PPPort/t/HvNAME.t		Devel::PPPort test file
 dist/Devel-PPPort/t/limits.t		Devel::PPPort test file
 dist/Devel-PPPort/t/magic.t		Devel::PPPort test file
 dist/Devel-PPPort/t/memory.t		Devel::PPPort test file
+dist/Devel-PPPort/t/mess.t		Devel::PPPort test file
 dist/Devel-PPPort/t/misc.t		Devel::PPPort test file
 dist/Devel-PPPort/t/mPUSH.t		Devel::PPPort test file
 dist/Devel-PPPort/t/MY_CXT.t		Devel::PPPort test file
@@ -3583,7 +3585,6 @@ dist/Module-CoreList/corelist			The corelist command-line utility
 dist/Module-CoreList/identify-dependencies	A usage example for Module::CoreList
 dist/Module-CoreList/lib/Module/CoreList.pm	Module::CoreList
 dist/Module-CoreList/lib/Module/CoreList.pod	Module::CoreList
-dist/Module-CoreList/lib/Module/CoreList/TieHashDelta.pm	Module::CoreList guts
 dist/Module-CoreList/lib/Module/CoreList/Utils.pm	Module::CoreList guts
 dist/Module-CoreList/Makefile.PL		Module::CoreList
 dist/Module-CoreList/MANIFEST			Module::CoreList
@@ -5038,6 +5039,7 @@ pod/perl5274delta.pod		Perl changes in version 5.27.4
 pod/perl5275delta.pod		Perl changes in version 5.27.5
 pod/perl5276delta.pod		Perl changes in version 5.27.6
 pod/perl5277delta.pod		Perl changes in version 5.27.7
+pod/perl5278delta.pod		Perl changes in version 5.27.8
 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
@@ -5672,7 +5674,6 @@ t/op/fork.t			See if fork works
 t/op/fresh_perl_utf8.t		UTF8 tests for pads and gvs
 t/op/getpid.t			See if $$ and getppid work with threads
 t/op/getppid.t			See if getppid works
-t/op/given.t			See if given works
 t/op/glob.t			See if <*> works
 t/op/gmagic.t			See if GMAGIC works
 t/op/goto.t			See if goto works
@@ -5814,8 +5815,6 @@ t/op/ver.t			See if v-strings and the %v format flag work
 t/op/waitpid.t			See if waitpid works
 t/op/wantarray.t		See if wantarray works
 t/op/warn.t			See if warn works
-t/op/whereis.t			See if whereis works
-t/op/whereso.t			See if whereso works
 t/op/while.t			See if while loops work
 t/op/write.t			See if write works (formats work)
 t/op/yadayada.t			See if ... works
diff --git a/META.json b/META.json
index 53d429c316..b38b9591c4 100644
--- a/META.json
+++ b/META.json
@@ -127,6 +127,6 @@
          "url" : "http://perl5.git.perl.org/"
       }
    },
-   "version" : "5.027008",
+   "version" : "5.027009",
    "x_serialization_backend" : "JSON::PP version 2.97001"
 }
diff --git a/META.yml b/META.yml
index e3845d07dd..50b4b49df8 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.027008'
+version: '5.027009'
 x_serialization_backend: 'CPAN::Meta::YAML version 0.018'
diff --git a/Makefile.SH b/Makefile.SH
index bb0edabd63..b0f70cf045 100755
--- a/Makefile.SH
+++ b/Makefile.SH
@@ -570,7 +570,7 @@ esac
 
 $spitshell >>$Makefile <<'!NO!SUBS!'
 
-perltoc_pod_prereqs = extra.pods pod/perl5278delta.pod pod/perlapi.pod pod/perlintern.pod pod/perlmodlib.pod pod/perluniprops.pod
+perltoc_pod_prereqs = extra.pods pod/perl5279delta.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
 
@@ -1120,9 +1120,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/perl5278delta.pod: pod/perldelta.pod
-	$(RMS) pod/perl5278delta.pod
-	$(LNS) perldelta.pod pod/perl5278delta.pod
+pod/perl5279delta.pod: pod/perldelta.pod
+	$(RMS) pod/perl5279delta.pod
+	$(LNS) perldelta.pod pod/perl5279delta.pod
 
 extra.pods: $(MINIPERL_EXE)
 	-@test ! -f extra.pods || rm -f `cat extra.pods`
@@ -1254,10 +1254,6 @@ CHMOD_W = chmod +w
 # with your existing copy of perl
 # (make regen_headers is kept for backwards compatibility)
 
-AUTOGEN_FILES = opcode.h opnames.h pp_proto.h proto.h embed.h embedvar.h \
-		perlapi.h perlapi.c regnodes.h warnings.h lib/warnings.pm \
-		lib/feature.pm feature.h
-
 .PHONY: regen_headers regen_all
 
 regen:	FORCE
diff --git a/NetWare/Makefile b/NetWare/Makefile
index edf80491c2..e2be43b4d7 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.27.8 for NetWare"
+MODULE_DESC     = "Perl 5.27.9 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.27.8
+INST_VER	= \5.27.9
 
 #
 # 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 32f94cddd0..dbdf10e766 100644
--- a/NetWare/config_H.wc
+++ b/NetWare/config_H.wc
@@ -898,7 +898,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.27.8\\lib\\NetWare-x86-multi-thread"		/**/
+#define ARCHLIB "c:\\perl\\5.27.9\\lib\\NetWare-x86-multi-thread"		/**/
 /*#define ARCHLIB_EXP ""	/**/
 
 /* ARCHNAME:
@@ -929,8 +929,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.27.8\\bin\\NetWare-x86-multi-thread"	/**/
-#define BIN_EXP "c:\\perl\\5.27.8\\bin\\NetWare-x86-multi-thread"	/**/
+#define BIN "c:\\perl\\5.27.9\\bin\\NetWare-x86-multi-thread"	/**/
+#define BIN_EXP "c:\\perl\\5.27.9\\bin\\NetWare-x86-multi-thread"	/**/
 
 /* BYTEORDER:
  *	This symbol holds the hexadecimal constant defined in byteorder,
@@ -2889,7 +2889,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.27.8\\lib\\NetWare-x86-multi-thread"		/**/
+#define SITEARCH "c:\\perl\\site\\5.27.9\\lib\\NetWare-x86-multi-thread"		/**/
 /*#define SITEARCH_EXP ""	/**/
 
 /* SITELIB:
@@ -2912,7 +2912,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.27.8\\lib"		/**/
+#define SITELIB "c:\\perl\\site\\5.27.9\\lib"		/**/
 /*#define SITELIB_EXP ""	/**/
 #define SITELIB_STEM ""		/**/
 
diff --git a/Porting/Maintainers.pl b/Porting/Maintainers.pl
index 62dbf7e7ac..a2ffc61a98 100755
--- a/Porting/Maintainers.pl
+++ b/Porting/Maintainers.pl
@@ -394,7 +394,7 @@ use File::Glob qw(:case);
     },
 
     'Encode' => {
-        'DISTRIBUTION' => 'DANKOGAI/Encode-2.93.tar.gz',
+        'DISTRIBUTION' => 'DANKOGAI/Encode-2.94.tar.gz',
         'FILES'        => q[cpan/Encode],
     },
 
@@ -808,7 +808,7 @@ use File::Glob qw(:case);
     },
 
     'Module::CoreList' => {
-        'DISTRIBUTION' => 'BINGOS/Module-CoreList-5.20171220.tar.gz',
+        'DISTRIBUTION' => 'BINGOS/Module-CoreList-5.20180120.tar.gz',
         'FILES'        => q[dist/Module-CoreList],
     },
 
@@ -1001,13 +1001,8 @@ use File::Glob qw(:case);
     },
 
     'Socket' => {
-        'DISTRIBUTION' => 'PEVANS/Socket-2.020.tar.gz',
+        'DISTRIBUTION' => 'PEVANS/Socket-2.027.tar.gz',
         'FILES'        => q[cpan/Socket],
-
-        # https://rt.cpan.org/Ticket/Display.html?id=106797
-        # https://rt.cpan.org/Ticket/Display.html?id=107058
-        # https://rt.cpan.org/Ticket/Display.html?id=111707
-        'CUSTOMIZED'   => [ qw[ Socket.pm Socket.xs ] ],
     },
 
     'Storable' => {
@@ -1165,7 +1160,7 @@ use File::Glob qw(:case);
     },
 
     'threads' => {
-        'DISTRIBUTION' => 'JDHEDDEN/threads-2.16.tar.gz',
+        'DISTRIBUTION' => 'JDHEDDEN/threads-2.21.tar.gz',
         'FILES'        => q[dist/threads],
         'EXCLUDED'     => [
             qr{^examples/},
@@ -1177,7 +1172,7 @@ use File::Glob qw(:case);
     },
 
     'threads::shared' => {
-        'DISTRIBUTION' => 'JDHEDDEN/threads-shared-1.57.tar.gz',
+        'DISTRIBUTION' => 'JDHEDDEN/threads-shared-1.58.tar.gz',
         'FILES'        => q[dist/threads-shared],
         'EXCLUDED'     => [
             qw( examples/class.pl
@@ -1199,7 +1194,7 @@ use File::Glob qw(:case);
     },
 
     'Time::HiRes' => {
-        'DISTRIBUTION' => 'JHI/Time-HiRes-1.9750.tar.gz',
+        'DISTRIBUTION' => 'JHI/Time-HiRes-1.9752.tar.gz',
         'FILES'        => q[dist/Time-HiRes],
     },
 
diff --git a/Porting/cmpVERSION.pl b/Porting/cmpVERSION.pl
index e7ae68d6f8..4041350091 100755
--- a/Porting/cmpVERSION.pl
+++ b/Porting/cmpVERSION.pl
@@ -97,7 +97,6 @@ my %skip;
     'dist/Attribute-Handlers/demo/MyClass.pm', # it's just demonstration code
     'dist/Exporter/lib/Exporter/Heavy.pm',
     'dist/Module-CoreList/lib/Module/CoreList.pm',
-    'dist/Module-CoreList/lib/Module/CoreList/TieHashDelta.pm',
     'dist/Module-CoreList/lib/Module/CoreList/Utils.pm',
     'lib/Carp/Heavy.pm',
     'lib/Config.pm',		# no version number but contents will vary
diff --git a/Porting/config.sh b/Porting/config.sh
index 8f31a0305b..05028e85c8 100644
--- a/Porting/config.sh
+++ b/Porting/config.sh
@@ -44,12 +44,12 @@ afsroot='/afs'
 alignbytes='8'
 aphostname=''
 api_revision='5'
-api_subversion='8'
+api_subversion='9'
 api_version='27'
-api_versionstring='5.27.8'
+api_versionstring='5.27.9'
 ar='ar'
-archlib='/opt/perl/lib/5.27.8/x86_64-linux'
-archlibexp='/opt/perl/lib/5.27.8/x86_64-linux'
+archlib='/opt/perl/lib/5.27.9/x86_64-linux'
+archlibexp='/opt/perl/lib/5.27.9/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.27.8/x86_64-linux'
+installarchlib='/opt/perl/lib/5.27.9/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.27.8'
+installprivlib='/opt/perl/lib/5.27.9'
 installscript='/opt/perl/bin'
-installsitearch='/opt/perl/lib/site_perl/5.27.8/x86_64-linux'
+installsitearch='/opt/perl/lib/site_perl/5.27.9/x86_64-linux'
 installsitebin='/opt/perl/bin'
 installsitehtml1dir=''
 installsitehtml3dir=''
-installsitelib='/opt/perl/lib/site_perl/5.27.8'
+installsitelib='/opt/perl/lib/site_perl/5.27.9'
 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.27.8'
+perlpath='/opt/perl/bin/perl5.27.9'
 pg='pg'
 phostname=''
 pidtype='pid_t'
@@ -989,8 +989,8 @@ pmake=''
 pr=''
 prefix='/opt/perl'
 prefixexp='/opt/perl'
-privlib='/opt/perl/lib/5.27.8'
-privlibexp='/opt/perl/lib/5.27.8'
+privlib='/opt/perl/lib/5.27.9'
+privlibexp='/opt/perl/lib/5.27.9'
 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.27.8/x86_64-linux'
-sitearchexp='/opt/perl/lib/site_perl/5.27.8/x86_64-linux'
+sitearch='/opt/perl/lib/site_perl/5.27.9/x86_64-linux'
+sitearchexp='/opt/perl/lib/site_perl/5.27.9/x86_64-linux'
 sitebin='/opt/perl/bin'
 sitebinexp='/opt/perl/bin'
 sitehtml1dir=''
 sitehtml1direxp=''
 sitehtml3dir=''
 sitehtml3direxp=''
-sitelib='/opt/perl/lib/site_perl/5.27.8'
+sitelib='/opt/perl/lib/site_perl/5.27.9'
 sitelib_stem='/opt/perl/lib/site_perl'
-sitelibexp='/opt/perl/lib/site_perl/5.27.8'
+sitelibexp='/opt/perl/lib/site_perl/5.27.9'
 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.27.8'
+startperl='#!/opt/perl/bin/perl5.27.9'
 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='8'
+subversion='9'
 sysman='/usr/share/man/man1'
 sysroot=''
 tail=''
@@ -1201,8 +1201,8 @@ vendorprefix=''
 vendorprefixexp=''
 vendorscript=''
 vendorscriptexp=''
-version='5.27.8'
-version_patchlevel_string='version 27 subversion 8'
+version='5.27.9'
+version_patchlevel_string='version 27 subversion 9'
 versiononly='define'
 vi=''
 xlibpth='/usr/lib/386 /lib/386'
@@ -1212,10 +1212,10 @@ zcat=''
 zip='zip'
 PERL_REVISION=5
 PERL_VERSION=27
-PERL_SUBVERSION=8
+PERL_SUBVERSION=9
 PERL_API_REVISION=5
 PERL_API_VERSION=27
-PERL_API_SUBVERSION=8
+PERL_API_SUBVERSION=9
 PERL_PATCHLEVEL=''
 PERL_CONFIG_SH=true
 : Variables propagated from previous config.sh file.
diff --git a/Porting/config_H b/Porting/config_H
index 798b6fee3b..cabfc8c04f 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.27.8/x86_64-linux"		/**/
-#define ARCHLIB_EXP "/opt/perl/lib/5.27.8/x86_64-linux"		/**/
+#define ARCHLIB "/opt/perl/lib/5.27.9/x86_64-linux"		/**/
+#define ARCHLIB_EXP "/opt/perl/lib/5.27.9/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.27.8"		/**/
-#define PRIVLIB_EXP "/opt/perl/lib/5.27.8"		/**/
+#define PRIVLIB "/opt/perl/lib/5.27.9"		/**/
+#define PRIVLIB_EXP "/opt/perl/lib/5.27.9"		/**/
 
 /* 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.27.8/x86_64-linux"		/**/
-#define SITEARCH_EXP "/opt/perl/lib/site_perl/5.27.8/x86_64-linux"		/**/
+#define SITEARCH "/opt/perl/lib/site_perl/5.27.9/x86_64-linux"		/**/
+#define SITEARCH_EXP "/opt/perl/lib/site_perl/5.27.9/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.27.8"		/**/
-#define SITELIB_EXP "/opt/perl/lib/site_perl/5.27.8"		/**/
+#define SITELIB "/opt/perl/lib/site_perl/5.27.9"		/**/
+#define SITELIB_EXP "/opt/perl/lib/site_perl/5.27.9"		/**/
 #define SITELIB_STEM "/opt/perl/lib/site_perl"		/**/
 
 /* PERL_VENDORARCH:
@@ -4120,7 +4120,7 @@
  *	script to make sure (one hopes) that it runs with perl and not
  *	some shell.
  */
-#define STARTPERL "#!/opt/perl/bin/perl5.27.8"		/**/
+#define STARTPERL "#!/opt/perl/bin/perl5.27.9"		/**/
 
 /* 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 28e9dd7f39..0265383570 100644
--- a/Porting/epigraphs.pod
+++ b/Porting/epigraphs.pod
@@ -17,6 +17,38 @@ Consult your favorite dictionary for details.
 
 =head1 EPIGRAPHS
 
+=head2 v5.27.8 - Jasper Fforde, "Shades of Grey"
+
+L<Announced on 2018-01-20 by Abigail|http://nntp.perl.org/group/perl.perl5.porters/248914>
+
+2.4.16.55.021: Males are to wear dresscode #6 during inter-Collective
+travel. Hats are encouraged, but not required.
+
+9.3.88.32.025: The cucumber and tomato are both fruit; the avocado
+is a nut. To assist with the dietary requirements of vegetarians,
+on the first Tuesday of the month a chicken is officially a vegetable.
+
+5.3.21.01.002: Once allocated, postcodes are permanent, and for life.
+
+6.1.02.11.235: Artifacture from before the Something That Happened
+may be collected, so long it does not appear on the Leapback list
+or possess color above 23 percent saturation.
+
+2.3.06.02.087: Unnecessary sharpening of pencils constitutes a waste
+of public resources, and will be punished as appropriate.
+
+2.1.01.05.002: All children are to attent school until the age of
+sixteen or until they have learned everything, whichever be the sooner.
+
+1.3.02.06.023: There shall be no staring at the sun, however good
+the reason.
+
+1.1.19.02.006: Team sports are mandatory in order to build character.
+Character is there to give purpose to team sports.
+
+2.3.03.01.006: Juggling shall not be practiced after 4:00 pm.
+
+
 =head2 v5.27.7 - Terry Pratchett, "Hogfather"
 
 L<Announced on 2017-12-20 by Chris 'BinGOs' Williams|https://www.nntp.perl.org/group/perl.perl5.porters/2017/12/msg248274.html>
diff --git a/Porting/perldelta_template.pod b/Porting/perldelta_template.pod
index 3548609762..0a4c82b0ea 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.27.8..HEAD
+  perl Porting/acknowledgements.pl v5.27.9..HEAD
 
 =head1 Reporting Bugs
 
diff --git a/Porting/release_managers_guide.pod b/Porting/release_managers_guide.pod
index f43adf2a39..b2528ebe23 100644
--- a/Porting/release_managers_guide.pod
+++ b/Porting/release_managers_guide.pod
@@ -598,7 +598,6 @@ It may also happen that C<Module::CoreList> has been modified in blead, and
 hence has a new version number already.  (But make sure it is not the same
 number as a CPAN release.)
 
-C<$Module::CoreList::TieHashDelta::VERSION> and
 C<$Module::CoreList::Utils::VERSION> should always be equal to
 C<$Module::CoreList::VERSION>. If necessary, bump those two versions to match
 before proceeding.
@@ -615,10 +614,6 @@ F<dist/Module-CoreList/lib/Module/CoreList.pm>
 
 F<dist/Module-CoreList/lib/Module/CoreList/Utils.pm>
 
-=item *
-
-F<dist/Module-CoreList/lib/Module/CoreList/TieHashDelta.pm>
-
 =back
 
 =head4 Update C<Module::CoreList> with module version data for the new release.
@@ -1452,9 +1447,8 @@ which should be identical to what is currently in blead.
 
 =item *
 
-Bump the $VERSION in F<dist/Module-CoreList/lib/Module/CoreList.pm>,
-F<dist/Module-CoreList/lib/Module/CoreList/TieHashDelta.pm> and
-F<dist/Module-CoreList/lib/Module/CoreList/Utils.pm>.
+Bump the $VERSION in F<dist/Module-CoreList/lib/Module/CoreList.pm>
+and F<dist/Module-CoreList/lib/Module/CoreList/Utils.pm>.
 
 =item *
 
diff --git a/Porting/release_schedule.pod b/Porting/release_schedule.pod
index e8fd18ecca..878e6ee83b 100644
--- a/Porting/release_schedule.pod
+++ b/Porting/release_schedule.pod
@@ -64,8 +64,8 @@ you should reset the version numbers to the next blead series.
   2017-09-20  5.27.4 ✓        John Anderson
   2017-10-20  5.27.5 ✓        Steve Hay
   2017-11-20  5.27.6 ✓        Karen Etheridge
-  2017-12-20  5.27.7          BinGOs
-  2018-01-20  5.27.8          Abigail
+  2017-12-20  5.27.7 ✓        BinGOs
+  2018-01-20  5.27.8 ✓        Abigail
   2018-02-20  5.27.9          Renee Backer
   2018-03-20  5.27.10         Todd Rinaldo
 
diff --git a/README b/README
index 02ac59ca4c..dc4f3a727c 100644
--- a/README
+++ b/README
@@ -1,6 +1,7 @@
 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 by Larry Wall and others.  All rights reserved.
+2013, 2014, 2015, 2016, 2017, 2018 by Larry Wall and others.
+All rights reserved.
 
 
 
diff --git a/README.haiku b/README.haiku
index fc531bd423..e9aef57414 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.27.8/BePC-haiku/CORE/libperl.so .
+  cd /boot/common/lib; ln -s perl5/5.27.9/BePC-haiku/CORE/libperl.so .
 
-Replace C<5.27.8> with your respective version of Perl.
+Replace C<5.27.9> with your respective version of Perl.
 
 =head1 KNOWN PROBLEMS
 
diff --git a/README.macosx b/README.macosx
index 6509f036b7..ca590633b2 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.27.8.tar.gz
-  tar -xzf perl-5.27.8.tar.gz
-  cd perl-5.27.8
+  curl -O http://www.cpan.org/src/perl-5.27.9.tar.gz
+  tar -xzf perl-5.27.9.tar.gz
+  cd perl-5.27.9
   ./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.27.8 as of this writing) builds without changes
+The latest Perl release (5.27.9 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 5d9eb3ce5a..a427b1e505 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.27.8/
+  unzip perl_ste.zip -d f:/perllib/lib/site_perl/5.27.9/
 
 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 11b89605c3..f7d82d93e2 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^.27^.8.tar
+    vmstar -xvf perl-5^.27^.9.tar
 
 Then set default to the top-level source directory like so:
 
-    set default [.perl-5^.27^.8]
+    set default [.perl-5^.27^.9]
 
 and proceed with configuration as described in the next section.
 
diff --git a/charclass_invlists.h b/charclass_invlists.h
index 0c2e8b5830..60c64ef157 100644
--- a/charclass_invlists.h
+++ b/charclass_invlists.h
@@ -1627,6 +1627,52 @@ static const UV Cased_invlist[] = { /* for ASCII/Latin1 */
 
 #endif	/* defined(PERL_IN_PERL_C) */
 
+#if defined(PERL_IN_LOCALE_C)
+
+static const UV Currency_Symbol_invlist[] = { /* for ASCII/Latin1 */
+	35,	/* Number of elements */
+	148565664, /* Version and data structure type */
+	1,	/* 0 if the list starts at 0;
+		   1 if it starts at the element beyond 0 */
+	0x0,
+	0x24,
+	0x25,
+	0xA2,
+	0xA6,
+	0x58F,
+	0x590,
+	0x60B,
+	0x60C,
+	0x9F2,
+	0x9F4,
+	0x9FB,
+	0x9FC,
+	0xAF1,
+	0xAF2,
+	0xBF9,
+	0xBFA,
+	0xE3F,
+	0xE40,
+	0x17DB,
+	0x17DC,
+	0x20A0,
+	0x20C0,
+	0xA838,
+	0xA839,
+	0xFDFC,
+	0xFDFD,
+	0xFE69,
+	0xFE6A,
+	0xFF04,
+	0xFF05,
+	0xFFE0,
+	0xFFE2,
+	0xFFE5,
+	0xFFE7
+};
+
+#endif	/* defined(PERL_IN_LOCALE_C) */
+
 #if defined(PERL_IN_REGCOMP_C)
 
 static const UV NonL1_Perl_Non_Final_Folds_invlist[] = { /* for ASCII/Latin1 */
@@ -20347,7 +20393,7 @@ static const UV _Perl_SCX_invlist[] = { /* for ASCII/Latin1 */
 
 #endif	/* defined(PERL_IN_PERL_C) */
 
-#if defined(PERL_IN_REGEXEC_C)
+#if defined(PERL_CORE) || defined(PERL_EXT)
 
 /* Negative enum values indicate the need to use an auxiliary table
  * consisting of the list of enums this one expands to.  The absolute
@@ -22708,7 +22754,7 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for ASCII/Latin1 */
 	SCX_Unknown
 };
 
-#endif	/* defined(PERL_IN_REGEXEC_C) */
+#endif	/* defined(PERL_CORE) || defined(PERL_EXT) */
 
 #if defined(PERL_IN_PERL_C)
 
@@ -37788,6 +37834,56 @@ static const UV Cased_invlist[] = { /* for EBCDIC 1047 */
 
 #endif	/* defined(PERL_IN_PERL_C) */
 
+#if defined(PERL_IN_LOCALE_C)
+
+static const UV Currency_Symbol_invlist[] = { /* for EBCDIC 1047 */
+	39,	/* Number of elements */
+	148565664, /* Version and data structure type */
+	1,	/* 0 if the list starts at 0;
+		   1 if it starts at the element beyond 0 */
+	0x0,
+	0x4A,
+	0x4B,
+	0x5B,
+	0x5C,
+	0x9F,
+	0xA0,
+	0xB1,
+	0xB3,
+	0x58F,
+	0x590,
+	0x60B,
+	0x60C,
+	0x9F2,
+	0x9F4,
+	0x9FB,
+	0x9FC,
+	0xAF1,
+	0xAF2,
+	0xBF9,
+	0xBFA,
+	0xE3F,
+	0xE40,
+	0x17DB,
+	0x17DC,
+	0x20A0,
+	0x20C0,
+	0xA838,
+	0xA839,
+	0xFDFC,
+	0xFDFD,
+	0xFE69,
+	0xFE6A,
+	0xFF04,
+	0xFF05,
+	0xFFE0,
+	0xFFE2,
+	0xFFE5,
+	0xFFE7
+};
+
+#endif	/* defined(PERL_IN_LOCALE_C) */
+
 #if defined(PERL_IN_REGCOMP_C)
 
 static const UV NonL1_Perl_Non_Final_Folds_invlist[] = { /* for EBCDIC 1047 */
@@ -56688,7 +56784,7 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 1047 */
 
 #endif	/* defined(PERL_IN_PERL_C) */
 
-#if defined(PERL_IN_REGEXEC_C)
+#if defined(PERL_CORE) || defined(PERL_EXT)
 
 /* Negative enum values indicate the need to use an auxiliary table
  * consisting of the list of enums this one expands to.  The absolute
@@ -59075,7 +59171,7 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 1047 */
 	SCX_Unknown
 };
 
-#endif	/* defined(PERL_IN_REGEXEC_C) */
+#endif	/* defined(PERL_CORE) || defined(PERL_EXT) */
 
 #if defined(PERL_IN_PERL_C)
 
@@ -74363,6 +74459,56 @@ static const UV Cased_invlist[] = { /* for EBCDIC 037 */
 
 #endif	/* defined(PERL_IN_PERL_C) */
 
+#if defined(PERL_IN_LOCALE_C)
+
+static const UV Currency_Symbol_invlist[] = { /* for EBCDIC 037 */
+	39,	/* Number of elements */
+	148565664, /* Version and data structure type */
+	1,	/* 0 if the list starts at 0;
+		   1 if it starts at the element beyond 0 */
+	0x0,
+	0x4A,
+	0x4B,
+	0x5B,
+	0x5C,
+	0x9F,
+	0xA0,
+	0xB1,
+	0xB3,
+	0x58F,
+	0x590,
+	0x60B,
+	0x60C,
+	0x9F2,
+	0x9F4,
+	0x9FB,
+	0x9FC,
+	0xAF1,
+	0xAF2,
+	0xBF9,
+	0xBFA,
+	0xE3F,
+	0xE40,
+	0x17DB,
+	0x17DC,
+	0x20A0,
+	0x20C0,
+	0xA838,
+	0xA839,
+	0xFDFC,
+	0xFDFD,
+	0xFE69,
+	0xFE6A,
+	0xFF04,
+	0xFF05,
+	0xFFE0,
+	0xFFE2,
+	0xFFE5,
+	0xFFE7
+};
+
+#endif	/* defined(PERL_IN_LOCALE_C) */
+
 #if defined(PERL_IN_REGCOMP_C)
 
 static const UV NonL1_Perl_Non_Final_Folds_invlist[] = { /* for EBCDIC 037 */
@@ -93239,7 +93385,7 @@ static const UV _Perl_SCX_invlist[] = { /* for EBCDIC 037 */
 
 #endif	/* defined(PERL_IN_PERL_C) */
 
-#if defined(PERL_IN_REGEXEC_C)
+#if defined(PERL_CORE) || defined(PERL_EXT)
 
 /* Negative enum values indicate the need to use an auxiliary table
  * consisting of the list of enums this one expands to.  The absolute
@@ -95622,7 +95768,7 @@ static const SCX_enum _Perl_SCX_invmap[] = { /* for EBCDIC 037 */
 	SCX_Unknown
 };
 
-#endif	/* defined(PERL_IN_REGEXEC_C) */
+#endif	/* defined(PERL_CORE) || defined(PERL_EXT) */
 
 #if defined(PERL_IN_PERL_C)
 
@@ -109344,7 +109490,7 @@ static const U8 WB_table[24][24] = {
 #endif	/* defined(PERL_IN_REGEXEC_C) */
 
 /* Generated from:
- * 0512c6af7435cd0cb3482d76f1ce75e6a310694d3f3dbf9091678b785a7e72e5 lib/Unicode/UCD.pm
+ * 4d64b650346ff9ddbcd3986f0da13f3be2379d64c574a120ca7f534d8d17934c lib/Unicode/UCD.pm
  * ff4404ec64f308bdf7714c50f9fdf0d1d0bf3c34db4d0a67e58ef0c6f88e818f lib/unicore/ArabicShaping.txt
  * 292171a0a1c13d7e581e8781eb4cdf248243b1ab267354a63c7a14429dea2740 lib/unicore/BidiBrackets.txt
  * 8f2695cc42989a79a715ab0d2892bd0c998759180cfdfb998674447f48231940 lib/unicore/BidiMirroring.txt
@@ -109391,5 +109537,5 @@ static const U8 WB_table[24][24] = {
  * 5671c3de473b25e7ea47097e4906260624dfabe3e9b1739f490aecbc3d858459 lib/unicore/mktables
  * 21653d2744fdd071f9ef138c805393901bb9547cf3e777ebf50215a191f986ea lib/unicore/version
  * 913d2f93f3cb6cdf1664db888bf840bc4eb074eef824e082fceda24a9445e60c regen/charset_translations.pl
- * 96d24865abfd8722af2d489b37b94c88eb4239036fedd6d902942543fdaaefdd regen/mk_invlists.pl
+ * 4898ec84e2b81e8bf948dcdb1c015c14f258cc652337122719885a276ea46d7b regen/mk_invlists.pl
  * ex: set ro: */
diff --git a/configure.com b/configure.com
index cde3dd4831..7148d374bd 100644
--- a/configure.com
+++ b/configure.com
@@ -5353,6 +5353,7 @@ $ d_sigaction="define"
 $ d_siginfo_si_addr="define"
 $ d_siginfo_si_band="define"
 $ d_siginfo_si_errno="define"
+$ d_siginfo_si_fd="define"
 $ d_siginfo_si_pid="define"
 $ d_siginfo_si_status="define"
 $ d_siginfo_si_uid="define"
@@ -6008,6 +6009,7 @@ $ WC "d_double_style_vax='" + d_double_style_vax + "'"
 $ WC "d_drand48proto='" + d_drand48proto + "'"
 $ WC "d_dup2='define'"
 $ WC "d_dup3='undef'"
+$ WC "d_duplocale='undef'"
 $ WC "d_eaccess='undef'"
 $ WC "d_endgrent='define'"
 $ WC "d_endhent='" + d_endhent + "'"
@@ -6021,9 +6023,14 @@ $ WC "d_erfc='" + d_erfc + "'"
 $ WC "d_eunice='undef'"
 $ WC "d_exp2='" + d_exp2 + "'"
 $ WC "d_expm1='" + d_expm1 + "'"
-$ WC "d_fchmod='undef'"
+$ IF ("''F$EXTRACT(1,3, F$GETSYI(""VERSION""))'".GES."8.3")
+$ THEN
+$   WC "d_fchmod='define'"
+$ ELSE
+$   WC "d_fchmod='undef'"
+$ ENDIF
 $ WC "d_fchdir='undef'"
-$ WC "d_fchown='undef'"
+$ WC "d_fchown='define'"
 $ WC "d_fcntl='" + d_fcntl + "'"
 $ WC "d_fcntl_can_lock='" + d_fcntl_can_lock + "'"
 $ WC "d_fd_set='" + d_fd_set + "'"
@@ -6175,8 +6182,8 @@ $ WC "d_madvise='undef'"
 $ WC "d_malloc_size='undef'"
 $ WC "d_malloc_good_size='undef'"
 $ WC "d_mblen='" + d_mblen + "'"
-$ WC "d_mbrlen='undef'"
-$ WC "d_mbrtowc='undef'"
+$ WC "d_mbrlen='define'"
+$ WC "d_mbrtowc='define'"
 $ WC "d_mbstowcs='" + d_mbstowcs + "'"
 $ WC "d_mbtowc='" + d_mbtowc + "'"
 $ WC "d_memmem='undef'"
@@ -6258,11 +6265,13 @@ $ WC "d_pwpasswd='define'"
 $ WC "d_pwquota='undef'"
 $ WC "d_qgcvt='undef'"
 $ WC "d_quad='" + d_quad + "'"
+$ WC "d_re_comp='undef'"
 $ WC "d_readdir='define'"
 $ WC "d_readlink='" + d_readlink + "'"
-$ WC "d_readv='undef'"
+$ WC "d_readv='define'"
 $ WC "d_realpath='" + d_realpath + "'"
-$ WC "d_recvmsg='undef'"
+$ WC "d_recvmsg='define'"
+$ WC "d_regcmp='undef'"
 $ WC "d_regcomp='undef'"
 $ WC "d_remainder='" + d_remainder + "'"
 $ WC "d_remquo='" + d_remquo + "'"
@@ -6294,7 +6303,7 @@ $   WC "d_semctl_semun='undef'"
 $   WC "d_semget='undef'"
 $   WC "d_semop='undef'"
 $ ENDIF
-$ WC "d_sendmsg='undef'"
+$ WC "d_sendmsg='define'"
 $ WC "d_setegid='undef'"
 $ WC "d_setenv='" + d_setenv + "'"
 $ WC "d_seteuid='" + d_seteuid + "'"
@@ -6331,6 +6340,7 @@ $ WC "d_sigaction='" + d_sigaction + "'"
 $ WC "d_siginfo_si_addr='" + d_siginfo_si_addr + "'"
 $ WC "d_siginfo_si_band='" + d_siginfo_si_band + "'"
 $ WC "d_siginfo_si_errno='" + d_siginfo_si_errno + "'"
+$ WC "d_siginfo_si_fd='" + d_siginfo_si_fd + "'"
 $ WC "d_siginfo_si_pid='" + d_siginfo_si_pid + "'"
 $ WC "d_siginfo_si_status='" + d_siginfo_si_status + "'"
 $ WC "d_siginfo_si_uid='" + d_siginfo_si_uid + "'"
@@ -6443,7 +6453,7 @@ $ WC "d_wcscmp='define'"
 $ WC "d_wcstombs='define'"
 $ WC "d_wcsxfrm='define'"
 $ WC "d_wctomb='define'"
-$ WC "d_writev='undef'"
+$ WC "d_writev='define'"
 $ WC "d_xenix='undef'"
 $ WC "db_hashtype=' '"
 $ WC "db_prefixtype=' '"
@@ -6882,7 +6892,7 @@ $ WC "d_endprotoent_r='undef'"
 $ WC "d_endpwent_r='undef'"
 $ WC "d_endservent_r='undef'"
 $ WC "d_freelocale='undef'"
-$ WC "d_gai_strerror='undef'"
+$ WC "d_gai_strerror='define'"
 $ WC "d_getgrent_r='undef'"
 $ WC "d_getgrgid_r='" + d_getgrgid_r + "'"
 $ WC "d_getgrnam_r='" + d_getgrnam_r + "'"
diff --git a/cop.h b/cop.h
index f6853573b3..5c66752859 100644
--- a/cop.h
+++ b/cop.h
@@ -721,9 +721,10 @@ struct block_loop {
 
 
 
-/* whereso context */
-struct block_whereso {
+/* given/when context */
+struct block_givwhen {
 	OP *leave_op;
+        SV *defsv_save; /* the original $_ */
 };
 
 
@@ -747,7 +748,7 @@ struct block {
 	struct block_format	blku_format;
 	struct block_eval	blku_eval;
 	struct block_loop	blku_loop;
-	struct block_whereso	blku_whereso;
+	struct block_givwhen	blku_givwhen;
     } blk_u;
 };
 #define blk_oldsp	cx_u.cx_blk.blku_oldsp
@@ -763,7 +764,7 @@ struct block {
 #define blk_format	cx_u.cx_blk.blk_u.blku_format
 #define blk_eval	cx_u.cx_blk.blk_u.blku_eval
 #define blk_loop	cx_u.cx_blk.blk_u.blku_loop
-#define blk_whereso	cx_u.cx_blk.blk_u.blku_whereso
+#define blk_givwhen	cx_u.cx_blk.blk_u.blku_givwhen
 
 #define CX_DEBUG(cx, action)						\
     DEBUG_l(								\
@@ -856,11 +857,16 @@ struct context {
    and a static array of context names in pp_ctl.c  */
 #define CXTYPEMASK	0xf
 #define CXt_NULL	0 /* currently only used for sort BLOCK */
-#define CXt_WHERESO	1
+#define CXt_WHEN	1
 #define CXt_BLOCK	2
-/* be careful of the ordering of these six. Macros like CxTYPE_is_LOOP,
+/* When micro-optimising :-) keep GIVEN next to the LOOPs, as these 5 share a
+   jump table in pp_ctl.c
+   The first 4 don't have a 'case' in at least one switch statement in pp_ctl.c
+*/
+#define CXt_GIVEN	3
+
+/* be careful of the ordering of these five. Macros like CxTYPE_is_LOOP,
  * CxFOREACH compare ranges */
-#define CXt_LOOP_GIVEN	3 /* given (...)    { ...; } */
 #define CXt_LOOP_ARY	4 /* for (@ary)     { ...; } */
 #define CXt_LOOP_LAZYSV	5 /* for ('a'..'z') { ...; } */
 #define CXt_LOOP_LAZYIV	6 /* for (1..9)     { ...; } */
@@ -886,6 +892,8 @@ struct context {
 
 /* private flags for CXt_LOOP */
 
+/* this is only set in conjunction with CXp_FOR_GV */
+#define CXp_FOR_DEF	0x10	/* foreach using $_ */
 /* these 3 are mutually exclusive */
 #define CXp_FOR_LVREF	0x20	/* foreach using \$var */
 #define CXp_FOR_GV	0x40	/* foreach using package var */
@@ -897,7 +905,7 @@ struct context {
 #define CXp_ONCE	0x10	/* What was sbu_once in struct subst */
 
 #define CxTYPE(c)	((c)->cx_type & CXTYPEMASK)
-#define CxTYPE_is_LOOP(c) (   CxTYPE(cx) >= CXt_LOOP_GIVEN              \
+#define CxTYPE_is_LOOP(c) (   CxTYPE(cx) >= CXt_LOOP_ARY                \
                            && CxTYPE(cx) <= CXt_LOOP_PLAIN)
 #define CxMULTICALL(c)	((c)->cx_type & CXp_MULTICALL)
 #define CxREALEVAL(c)	(((c)->cx_type & (CXTYPEMASK|CXp_REAL))		\
diff --git a/cpan/Encode/Encode.pm b/cpan/Encode/Encode.pm
index 035169c594..249ac6b138 100644
--- a/cpan/Encode/Encode.pm
+++ b/cpan/Encode/Encode.pm
@@ -1,5 +1,5 @@
 #
-# $Id: Encode.pm,v 2.93 2017/10/06 22:21:33 dankogai Exp $
+# $Id: Encode.pm,v 2.94 2018/01/09 05:53:00 dankogai Exp dankogai $
 #
 package Encode;
 use strict;
@@ -7,7 +7,7 @@ use warnings;
 use constant DEBUG => !!$ENV{PERL_ENCODE_DEBUG};
 our $VERSION;
 BEGIN {
-    $VERSION = sprintf "%d.%02d", q$Revision: 2.93 $ =~ /(\d+)/g;
+    $VERSION = sprintf "%d.%02d", q$Revision: 2.94 $ =~ /(\d+)/g;
     require XSLoader;
     XSLoader::load( __PACKAGE__, $VERSION );
 }
@@ -949,38 +949,11 @@ different kinds of strings and string-operations in Perl: one a
 byte-oriented mode  for when the internal UTF8 flag is off, and the other a
 character-oriented mode for when the internal UTF8 flag is on.
 
-Here is how C<Encode> handles the UTF8 flag.
-
-=over 2
-
-=item *
-
-When you I<encode>, the resulting UTF8 flag is always B<off>.
-
-=item *
-
-When you I<decode>, the resulting UTF8 flag is B<on>--I<unless> you can
-unambiguously represent data.  Here is what we mean by "unambiguously".
-After C<$str = decode("foo", $octet)>,
-
-  When $octet is...    The UTF8 flag in $str is
-  ---------------------------------------------
-  In ASCII only (or EBCDIC only)            OFF
-  In ISO-8859-1                              ON
-  In any other Encoding                      ON
-  ---------------------------------------------
-
-As you see, there is one exception: in ASCII.  That way you can assume
-Goal #1.  And with C<Encode>, Goal #2 is assumed but you still have to be
-careful in the cases mentioned in the B<CAVEAT> paragraphs above.
-
 This UTF8 flag is not visible in Perl scripts, exactly for the same reason
 you cannot (or rather, you I<don't have to>) see whether a scalar contains
 a string, an integer, or a floating-point number.   But you can still peek
 and poke these if you will.  See the next section.
 
-=back
-
 =head2 Messing with Perl's Internals
 
 The following API uses parts of Perl's internals in the current
@@ -995,6 +968,13 @@ release.
 If I<CHECK> is true, also checks whether I<STRING> contains well-formed
 UTF-8.  Returns true if successful, false otherwise.
 
+Typically only necessary for debugging and testing.  Don't use this flag as
+a marker to distinguish character and binary data, that should be decided
+for each variable when you write your code.
+
+B<CAVEAT>: If I<STRING> has UTF8 flag set, it does B<NOT> mean that
+I<STRING> is UTF-8 encoded and vice-versa.
+
 As of Perl 5.8.1, L<utf8> also has the C<utf8::is_utf8> function.
 
 =head3 _utf8_on
diff --git a/cpan/Encode/Makefile.PL b/cpan/Encode/Makefile.PL
index b52ad6c102..8c20d20226 100644
--- a/cpan/Encode/Makefile.PL
+++ b/cpan/Encode/Makefile.PL
@@ -1,5 +1,5 @@
 #
-# $Id: Makefile.PL,v 2.22 2017/10/06 22:21:53 dankogai Exp dankogai $
+# $Id: Makefile.PL,v 2.22 2017/10/06 22:21:53 dankogai Exp $
 #
 use 5.007003;
 use strict;
diff --git a/cpan/Encode/lib/Encode/Alias.pm b/cpan/Encode/lib/Encode/Alias.pm
index 6dcd112a40..dbfa01b618 100644
--- a/cpan/Encode/lib/Encode/Alias.pm
+++ b/cpan/Encode/lib/Encode/Alias.pm
@@ -1,7 +1,7 @@
 package Encode::Alias;
 use strict;
 use warnings;
-our $VERSION = do { my @r = ( q$Revision: 2.23 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r };
+our $VERSION = do { my @r = ( q$Revision: 2.24 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r };
 use constant DEBUG => !!$ENV{PERL_ENCODE_DEBUG};
 
 use Exporter 'import';
@@ -270,7 +270,7 @@ sub init_aliases {
     define_alias( qr/\bUTF-8$/i => '"utf-8-strict"' );
 
     # At last, Map white space and _ to '-'
-    define_alias( qr/^(\S+)[\s_]+(.*)$/i => '"$1-$2"' );
+    define_alias( qr/^([^\s_]+)[\s_]+([^\s_]*)$/i => '"$1-$2"' );
 }
 
 1;
diff --git a/cpan/Encode/t/decode.t b/cpan/Encode/t/decode.t
index 0cc6c87644..93c992cf54 100644
--- a/cpan/Encode/t/decode.t
+++ b/cpan/Encode/t/decode.t
@@ -1,5 +1,5 @@
 #
-# $Id: decode.t,v 1.4 2017/10/06 22:21:53 dankogai Exp dankogai $
+# $Id: decode.t,v 1.4 2017/10/06 22:21:53 dankogai Exp $
 #
 use strict;
 use Encode qw(decode_utf8 FB_CROAK find_encoding decode);
diff --git a/cpan/Encode/t/mime-name.t b/cpan/Encode/t/mime-name.t
index 46bd4bf96b..cec86c0362 100644
--- a/cpan/Encode/t/mime-name.t
+++ b/cpan/Encode/t/mime-name.t
@@ -1,5 +1,5 @@
 #
-# $Id: mime-name.t,v 1.3 2017/10/06 22:21:53 dankogai Exp dankogai $
+# $Id: mime-name.t,v 1.3 2017/10/06 22:21:53 dankogai Exp $
 # This script is written in utf8
 #
 BEGIN {
diff --git a/cpan/Socket/Makefile.PL b/cpan/Socket/Makefile.PL
index 3bad65516d..5eab38080a 100644
--- a/cpan/Socket/Makefile.PL
+++ b/cpan/Socket/Makefile.PL
@@ -14,7 +14,7 @@ sub check_for
 {
     my %args = @_;
     return if $ENV{PERL_CORE};
-    return if defined $Config{$args{confkey}};
+    return if defined $args{confkey} and defined $Config{$args{confkey}};
 
     require ExtUtils::CBuilder;
     $cb ||= ExtUtils::CBuilder->new( quiet => 1 );
@@ -77,12 +77,13 @@ sub check_for_func
 }
 
 my %defines = (
-    # -Dfoo               func()        $Config{key}
-    HAS_GETADDRINFO => [ "getaddrinfo", "d_getaddrinfo" ],
-    HAS_GETNAMEINFO => [ "getnameinfo", "d_getnameinfo" ],
-    HAS_INET_ATON   => [ "inet_aton",   "d_inetaton" ],
-    HAS_INETNTOP    => [ "inet_ntop",   "d_inetntop" ],
-    HAS_INETPTON    => [ "inet_pton",   "d_inetpton" ],
+    # -Dfoo                func()         $Config{key}
+    HAS_GETADDRINFO  => [ "getaddrinfo",  "d_getaddrinfo" ],
+    HAS_GETNAMEINFO  => [ "getnameinfo",  "d_getnameinfo" ],
+    HAS_GAI_STRERROR => [ "gai_strerror", "d_gai_strerror" ],
+    HAS_INET_ATON    => [ "inet_aton",    "d_inetaton" ],
+    HAS_INETNTOP     => [ "inet_ntop",    "d_inetntop" ],
+    HAS_INETPTON     => [ "inet_pton",    "d_inetpton" ],
 );
 
 foreach my $define ( sort keys %defines ) {
@@ -177,20 +178,25 @@ my @names = (
 
 	IOV_MAX
 
-	IP_ADD_MEMBERSHIP IP_ADD_SOURCE_MEMBERSHIP IP_DROP_MEMBERSHIP
-	IP_DROP_SOURCE_MEMBERSHIP IP_HDRINCL IP_MULTICAST_IF IP_MULTICAST_LOOP
-	IP_MULTICAST_TTL IP_OPTIONS IP_RECVOPTS IP_RECVRETOPTS IP_RETOPTS IP_TOS
-	IP_TTL
+	IP_ADD_MEMBERSHIP IP_ADD_SOURCE_MEMBERSHIP IP_BIND_ADDRESS_NO_PORT
+	IP_DROP_MEMBERSHIP IP_DROP_SOURCE_MEMBERSHIP IP_FREEBIND IP_HDRINCL
+	IP_MULTICAST_ALL IP_MULTICAST_IF IP_MULTICAST_LOOP IP_MULTICAST_TTL
+	IP_MTU IP_MTU_DISCOVER IP_NODEFRAG IP_OPTIONS IP_RECVERR IP_RECVOPTS
+	IP_RECVRETOPTS IP_RETOPTS IP_TOS IP_TRANSPARENT IP_TTL
+
+	IP_PMTUDISC_DO IP_PMTUDISC_DONT IP_PMTUDISC_PROBE IP_PMTUDISC_WANT
 
 	IPTOS_LOWDELAY IPTOS_THROUGHPUT IPTOS_RELIABILITY IPTOS_MINCOST
 
-	IPV6_ADD_MEMBERSHIP IPV6_DROP_MEMBERSHIP IPV6_JOIN_GROUP
+	IPV6_ADDRFROM IPV6_ADD_MEMBERSHIP IPV6_DROP_MEMBERSHIP IPV6_JOIN_GROUP
 	IPV6_LEAVE_GROUP IPV6_MTU IPV6_MTU_DISCOVER IPV6_MULTICAST_HOPS
-	IPV6_MULTICAST_IF IPV6_MULTICAST_LOOP IPV6_UNICAST_HOPS IPV6_V6ONLY
+	IPV6_MULTICAST_IF IPV6_MULTICAST_LOOP IPV6_RECVERR IPV6_ROUTER_ALERT
+	IPV6_UNICAST_HOPS IPV6_V6ONLY
 
 	MSG_BCAST MSG_BTAG MSG_CTLFLAGS MSG_CTLIGNORE MSG_DONTWAIT MSG_EOF
-	MSG_EOR MSG_ERRQUEUE MSG_ETAG MSG_FIN MSG_MAXIOVLEN MSG_MCAST
-	MSG_NOSIGNAL MSG_RST MSG_SYN MSG_TRUNC MSG_URG MSG_WAITALL MSG_WIRE
+	MSG_EOR MSG_ERRQUEUE MSG_ETAG MSG_FASTOPEN MSG_FIN MSG_MAXIOVLEN
+	MSG_MCAST MSG_NOSIGNAL MSG_RST MSG_SYN MSG_TRUNC MSG_URG MSG_WAITALL
+	MSG_WIRE
 
 	NI_DGRAM NI_IDN NI_IDN_ALLOW_UNASSIGNED NI_IDN_USE_STD3_ASCII_RULES
 	NI_NAMEREQD NI_NOFQDN NI_NUMERICHOST NI_NUMERICSERV
@@ -213,32 +219,35 @@ my @names = (
 	SO_ACCEPTCONN SO_ATTACH_FILTER SO_BACKLOG SO_BINDTODEVICE SO_BROADCAST
 	SO_BSDCOMPAT SO_BUSY_POLL SO_CHAMELEON SO_DEBUG SO_DETACH_FILTER
 	SO_DGRAM_ERRIND SO_DOMAIN SO_DONTLINGER SO_DONTROUTE SO_ERROR SO_FAMILY
-	SO_KEEPALIVE SO_LINGER SO_MARK SO_OOBINLINE SO_PASSCRED SO_PASSIFNAME
-	SO_PEEK_OFF SO_PEERCRED SO_PRIORITY SO_PROTOCOL SO_PROTOTYPE SO_RCVBUF
-	SO_RCVLOWAT SO_RCVTIMEO SO_REUSEADDR SO_REUSEPORT
-	SO_SECURITY_AUTHENTICATION SO_SECURITY_ENCRYPTION_NETWORK
-	SO_SECURITY_ENCRYPTION_TRANSPORT SO_SNDBUF SO_SNDLOWAT SO_SNDTIMEO
-	SO_STATE SO_TIMESTAMP SO_TYPE SO_USELOOPBACK SO_XOPEN SO_XSE
-
-	TCP_CONGESTION TCP_CONNECTIONTIMEOUT TCP_CORK TCP_DEFER_ACCEPT TCP_INFO
-	TCP_INIT_CWND TCP_KEEPALIVE TCP_KEEPCNT TCP_KEEPIDLE TCP_KEEPINTVL
-	TCP_LINGER2 TCP_MAXRT TCP_MAXSEG TCP_MD5SIG TCP_NODELAY TCP_NOOPT
-	TCP_NOPUSH TCP_QUICKACK TCP_SACK_ENABLE TCP_STDURG TCP_SYNCNT
+	SO_KEEPALIVE SO_LINGER SO_LOCK_FILTER SO_MARK SO_OOBINLINE SO_PASSCRED
+	SO_PASSIFNAME SO_PEEK_OFF SO_PEERCRED SO_PRIORITY SO_PROTOCOL
+	SO_PROTOTYPE SO_RCVBUF SO_RCVBUFFORCE SO_RCVLOWAT SO_RCVTIMEO
+	SO_REUSEADDR SO_REUSEPORT SO_RXQ_OVFL SO_SECURITY_AUTHENTICATION
+	SO_SECURITY_ENCRYPTION_NETWORK SO_SECURITY_ENCRYPTION_TRANSPORT
+	SO_SNDBUF SO_SNDBUFFORCE SO_SNDLOWAT SO_SNDTIMEO SO_STATE SO_TIMESTAMP
+	SO_TYPE SO_USELOOPBACK SO_XOPEN SO_XSE
+
+	TCP_CONGESTION TCP_CONNECTIONTIMEOUT TCP_CORK TCP_DEFER_ACCEPT
+	TCP_FASTOPEN TCP_INFO TCP_INIT_CWND TCP_KEEPALIVE TCP_KEEPCNT
+	TCP_KEEPIDLE TCP_KEEPINTVL TCP_LINGER2 TCP_MAXRT TCP_MAXSEG
+	TCP_MD5SIG TCP_NODELAY TCP_NOOPT TCP_NOPUSH TCP_QUICKACK
+	TCP_SACK_ENABLE TCP_STDURG TCP_SYNCNT TCP_USER_TIMEOUT
 	TCP_WINDOW_CLAMP
 
 	UIO_MAXIOV
     ),
-    {name=>"IPPROTO_IP",   type=>"IV", default=>["IV",   0]},
-    {name=>"IPPROTO_IPV6", type=>"IV", default=>["IV",  41]},
-    {name=>"IPPROTO_RAW",  type=>"IV", default=>["IV", 255]},
-    {name=>"IPPROTO_ICMP", type=>"IV", default=>["IV",   1]},
-    {name=>"IPPROTO_IGMP", type=>"IV", default=>["IV",   2]},
-    {name=>"IPPROTO_TCP",  type=>"IV", default=>["IV",   6]},
-    {name=>"IPPROTO_UDP",  type=>"IV", default=>["IV",  17]},
-    {name=>"IPPROTO_GRE",  type=>"IV", default=>["IV",  47]},
-    {name=>"IPPROTO_ESP",  type=>"IV", default=>["IV",  50]},
-    {name=>"IPPROTO_AH",   type=>"IV", default=>["IV",  51]},
-    {name=>"IPPROTO_SCTP", type=>"IV", default=>["IV", 132]},
+    {name=>"IPPROTO_IP",     type=>"IV", default=>["IV",   0]},
+    {name=>"IPPROTO_IPV6",   type=>"IV", default=>["IV",  41]},
+    {name=>"IPPROTO_RAW",    type=>"IV", default=>["IV", 255]},
+    {name=>"IPPROTO_ICMP",   type=>"IV", default=>["IV",   1]},
+    {name=>"IPPROTO_IGMP",   type=>"IV", default=>["IV",   2]},
+    {name=>"IPPROTO_TCP",    type=>"IV", default=>["IV",   6]},
+    {name=>"IPPROTO_UDP",    type=>"IV", default=>["IV",  17]},
+    {name=>"IPPROTO_GRE",    type=>"IV", default=>["IV",  47]},
+    {name=>"IPPROTO_ESP",    type=>"IV", default=>["IV",  50]},
+    {name=>"IPPROTO_AH",     type=>"IV", default=>["IV",  51]},
+    {name=>"IPPROTO_ICMPV6", type=>"IV", default=>["IV",  58]},
+    {name=>"IPPROTO_SCTP",   type=>"IV", default=>["IV", 132]},
     {name=>"SHUT_RD",   type=>"IV", default=>["IV", "0"]},
     {name=>"SHUT_WR",   type=>"IV", default=>["IV", "1"]},
     {name=>"SHUT_RDWR", type=>"IV", default=>["IV", "2"]},
diff --git a/cpan/Socket/Socket.pm b/cpan/Socket/Socket.pm
index 833f0fc365..370deef103 100644
--- a/cpan/Socket/Socket.pm
+++ b/cpan/Socket/Socket.pm
@@ -3,8 +3,7 @@ package Socket;
 use strict;
 { use 5.006001; }
 
-our $VERSION = '2.020_04'; # patched in perl5.git
-$VERSION =~ tr/_//d;       # make $VERSION numeric
+our $VERSION = '2.027';
 
 =head1 NAME
 
@@ -109,6 +108,10 @@ C<SOL_SOCKET> level.
 Socket option name constants for IPv4 socket options at the C<IPPROTO_IP>
 level.
 
+=head2 IP_PMTUDISC_WANT, IP_PMTUDISC_DONT, ...
+
+Socket option value contants for C<IP_MTU_DISCOVER> socket option.
+
 =head2 IPTOS_LOWDELAY, IPTOS_THROUGHPUT, IPTOS_RELIABILITY, ...
 
 Socket option value constants for C<IP_TOS> socket option.
@@ -181,6 +184,9 @@ arguments packed in and C<AF_INET> filled in. For Internet domain sockets,
 this structure is normally what you need for the arguments in bind(),
 connect(), and send().
 
+An undefined $port argument is taken as zero; an undefined $ip_address is
+considered a fatal error.
+
 =head2 ($port, $ip_address) = unpack_sockaddr_in $sockaddr
 
 Takes a C<sockaddr_in> structure (as returned by pack_sockaddr_in(),
@@ -210,6 +216,9 @@ inet_pton()), optionally a scope ID number, and optionally a flow label
 number. Returns the C<sockaddr_in6> structure with those arguments packed in
 and C<AF_INET6> filled in. IPv6 equivalent of pack_sockaddr_in().
 
+An undefined $port argument is taken as zero; an undefined $ip6_address is
+considered a fatal error.
+
 =head2 ($port, $ip6_address, $scope_id, $flowinfo) = unpack_sockaddr_in6 $sockaddr
 
 Takes a C<sockaddr_in6> structure. Returns a list of four elements: the port
@@ -385,7 +394,7 @@ Restrict to only generating addresses for this protocol
 The return value will be a list; the first value being an error indication,
 followed by a list of address structures (if no error occurred).
 
-The error value will be a dualvar; comparable to the C<EI_*> error constants,
+The error value will be a dualvar; comparable to the C<EAI_*> error constants,
 or printable as a human-readable error message string. If no error occurred it
 will be zero numerically and an empty string.
 
@@ -453,7 +462,7 @@ constants, or defaults to 0 if unspecified.
 The return value will be a list; the first value being an error condition,
 followed by the hostname and service name.
 
-The error value will be a dualvar; comparable to the C<EI_*> error constants,
+The error value will be a dualvar; comparable to the C<EAI_*> error constants,
 or printable as a human-readable error message string. The host and service
 names will be plain strings.
 
@@ -723,11 +732,11 @@ our @EXPORT = qw(
 	SO_SECURITY_ENCRYPTION_TRANSPORT SO_SNDBUF SO_SNDLOWAT SO_SNDTIMEO
 	SO_STATE SO_TYPE SO_USELOOPBACK SO_XOPEN SO_XSE
 
-	IP_OPTIONS IP_HDRINCL IP_TOS IP_TTL IP_RECVOPTS IP_RECVRETOPTS
-	IP_RETOPTS
+	IP_HDRINCL IP_OPTIONS IP_RECVOPTS IP_RECVRETOPTS IP_RETOPTS IP_TOS
+	IP_TTL
 
 	MSG_BCAST MSG_BTAG MSG_CTLFLAGS MSG_CTLIGNORE MSG_CTRUNC MSG_DONTROUTE
-	MSG_DONTWAIT MSG_EOF MSG_EOR MSG_ERRQUEUE MSG_ETAG MSG_FIN
... 31543 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