diff options
author | Andrew Fresh <afresh1@cvs.openbsd.org> | 2019-02-13 21:15:34 +0000 |
---|---|---|
committer | Andrew Fresh <afresh1@cvs.openbsd.org> | 2019-02-13 21:15:34 +0000 |
commit | d2c9f98f1b74ae5c532fb5e2469c5e0996749e7c (patch) | |
tree | 1d85fdd81cf8510b8553437222e20373c1f2ec0e /gnu/usr.bin/perl/Porting | |
parent | 0cc2c999dde616622e1c1a39da60828645040e47 (diff) |
Fix merge issues, remove excess files - match perl-5.28.1 dist
looking good sthen@, Great! bluhm@
Diffstat (limited to 'gnu/usr.bin/perl/Porting')
31 files changed, 4414 insertions, 2816 deletions
diff --git a/gnu/usr.bin/perl/Porting/Glossary b/gnu/usr.bin/perl/Porting/Glossary index 750351e77ce..e9adc57685c 100644 --- a/gnu/usr.bin/perl/Porting/Glossary +++ b/gnu/usr.bin/perl/Porting/Glossary @@ -41,10 +41,6 @@ alignbytes (alignbytes.U): double-- or a long double when applicable. Usual values are 2, 4 and 8. The default is eight, for safety. -ansi2knr (ansi2knr.U): - This variable is set if the user needs to run ansi2knr. - Currently, this is not supported, so we just abort. - aphostname (d_gethname.U): This variable contains the command which can be used to compute the host name. The command is fully qualified by its absolute path, to make @@ -397,6 +393,10 @@ d__fwalk (d__fwalk.U): This variable conditionally defines HAS__FWALK if _fwalk() is available to apply a function to all the file handles. +d_accept4 (d_accept4.U): + This variable conditionally defines HAS_ACCEPT4 if accept4() is + available to accept socket connections. + d_access (d_access.U): This variable conditionally defines HAS_ACCESS if the access() system call is available to check for access permissions using real IDs. @@ -495,14 +495,6 @@ d_backtrace (d_backtrace.U): indicates to the C program that the backtrace() routine is available to get a stack trace. -d_bcmp (d_bcmp.U): - This variable conditionally defines the HAS_BCMP symbol if - the bcmp() routine is available to compare strings. - -d_bcopy (d_bcopy.U): - This variable conditionally defines the HAS_BCOPY symbol if - the bcopy() routine is available to copy strings. - d_bsd (Guess.U): This symbol conditionally defines the symbol BSD when running on a BSD system. @@ -516,6 +508,11 @@ d_bsdsetpgrp (d_setpgrp.U): setpgrp needs two arguments whereas USG one needs none. See also d_setpgid for a POSIX interface. +d_builtin_add_overflow (d_builtin_overflow.U): + This variable conditionally defines HAS_BUILTIN_ADD_OVERFLOW, which + indicates that the compiler supports __builtin_add_overflow(x,y,&z) + for safely adding x and y into z while checking for overflow. + d_builtin_choose_expr (d_builtin.U): This conditionally defines HAS_BUILTIN_CHOOSE_EXPR, which indicates that the compiler supports __builtin_choose_expr(x,y,z). @@ -530,9 +527,15 @@ d_builtin_expect (d_builtin.U): __builtin_expect to provide the compiler with branch prediction information. -d_bzero (d_bzero.U): - This variable conditionally defines the HAS_BZERO symbol if - the bzero() routine is available to set memory to 0. +d_builtin_mul_overflow (d_builtin_overflow.U): + This variable conditionally defines HAS_BUILTIN_MUL_OVERFLOW, which + indicates that the compiler supports __builtin_mul_overflow(x,y,&z) + for safely multiplying x and y into z while checking for overflow. + +d_builtin_sub_overflow (d_builtin_overflow.U): + This variable conditionally defines HAS_BUILTIN_SUB_OVERFLOW, which + indicates that the compiler supports __builtin_sub_overflow(x,y,&z) + for safely subtracting y from x into z while checking for overflow. d_c99_variadic_macros (d_c99_variadic.U): This variable conditionally defines the HAS_C99_VARIADIC_MACROS @@ -552,11 +555,6 @@ d_cbrt (d_cbrt.U): indicates to the C program that the cbrt() (cube root) function is available. -d_charvspr (d_vprintf.U): - This variable conditionally defines CHARVSPRINTF if this system - has vsprintf returning type (char*). The trend seems to be to - declare it as "int vsprintf()". - d_chown (d_chown.U): This variable conditionally defines the HAS_CHOWN symbol, which indicates to the C program that the chown() routine is available. @@ -642,11 +640,6 @@ d_cuserid (d_cuserid.U): indicates to the C program that the cuserid() routine is available to get character login names. -d_dbl_dig (d_dbl_dig.U): - This variable conditionally defines d_dbl_dig if this system's - header files provide DBL_DIG, which is the number of significant - digits in a double precision number. - d_dbminitproto (d_dbminitproto.U): This variable conditionally defines the HAS_DBMINIT_PROTO symbol, which indicates to the C program that the system provides @@ -699,6 +692,38 @@ d_dosuid (d_dosuid.U): tells the C program that it should insert setuid emulation code on hosts which have setuid #! scripts disabled. +d_double_has_inf (longdblfio.U): + This variable conditionally defines the symbol DOUBLE_HAS_INF + which indicates that the double type has an infinity. + +d_double_has_nan (longdblfio.U): + This variable conditionally defines the symbol DOUBLE_HAS_NAN + which indicates that the double type has a not-a-number. + +d_double_has_negative_zero (longdblfio.U): + This variable conditionally defines the symbol DOUBLE_HAS_NEGATIVE_ZERO + which indicates that the double type has a negative zero. + +d_double_has_subnormals (longdblfio.U): + This variable conditionally defines the symbol DOUBLE_HAS_SUBNORMALS + which indicates that the double type has subnormals (denormals). + +d_double_style_cray (longdblfio.U): + This variable conditionally defines the symbol DOUBLE_STYLE_CRAY + which indicates that the double is the 64-bit CRAY mainframe format. + +d_double_style_ibm (longdblfio.U): + This variable conditionally defines the symbol DOUBLE_STYLE_IBM, + which indicates that the double is the 64-bit IBM mainframe format. + +d_double_style_ieee (longdblfio.U): + This variable conditionally defines the symbol DOUBLE_STYLE_IEEE, + which indicates that the double is the 64-bit IEEE 754. + +d_double_style_vax (longdblfio.U): + This variable conditionally defines the symbol DOUBLE_STYLE_VAX, + which indicates that the double is the 64-bit VAX format D or G. + d_drand48_r (d_drand48_r.U): This variable conditionally defines the HAS_DRAND48_R symbol, which indicates to the C program that the drand48_r() @@ -714,6 +739,10 @@ d_dup2 (d_dup2.U): This variable conditionally defines HAS_DUP2 if dup2() is available to duplicate file descriptors. +d_dup3 (d_dup3.U): + This variable conditionally defines HAS_DUP3 if dup3() is + available to duplicate file descriptors. + d_duplocale (d_newlocale.U): This variable conditionally defines the HAS_DUPLOCALE symbol, which indicates to the C program that the duplocale() routine is available @@ -817,6 +846,10 @@ d_fchmod (d_fchmod.U): indicates to the C program that the fchmod() routine is available to change mode of opened files. +d_fchmodat (d_fsat.U): + This variable conditionally defines the HAS_FCHMODAT symbol, which + indicates the POSIX fchmodat() function is available. + d_fchown (d_fchown.U): This variable conditionally defines the HAS_FCHOWN symbol, which indicates to the C program that the fchown() routine is available @@ -983,6 +1016,12 @@ d_futimes (d_futimes.U): This variable conditionally defines the HAS_FUTIMES symbol, which indicates to the C program that the futimes() routine is available. +d_gai_strerror (d_gai_strerror.U): + This variable conditionally defines the HAS_GAI_STRERROR symbol + if the gai_strerror() routine is available and can be used to + translate error codes returned by getaddrinfo() into human + readable strings. + d_Gconvert (d_gconvert.U): This variable holds what Gconvert is defined as to convert floating point numbers into strings. By default, Configure @@ -1352,10 +1391,6 @@ d_inc_version_list (inc_version_list.U): This variable conditionally defines PERL_INC_VERSION_LIST. It is set to undef when PERL_INC_VERSION_LIST is empty. -d_index (d_strchr.U): - This variable conditionally defines HAS_INDEX if index() and - rindex() are available for string searching. - d_inetaton (d_inetaton.U): This variable conditionally defines the HAS_INET_ATON symbol, which indicates to the C program that the inet_aton() function is available @@ -1487,6 +1522,10 @@ d_link (d_link.U): This variable conditionally defines HAS_LINK if link() is available to create hard links. +d_linkat (d_fsat.U): + This variable conditionally defines the HAS_LINKAT symbol, which + indicates the POSIX linkat() function is available. + d_llrint (d_llrint.U): This variable conditionally defines the HAS_LLRINT symbol, which indicates to the C program that the llrint() routine is available @@ -1509,6 +1548,10 @@ d_llroundl (d_llroundl.U): indicates to the C program that the llroundl() routine is available to return the long long value nearest to x away from zero. +d_localeconv_l (d_localeconv_l.U): + This variable conditionally defines the HAS_LOCALECONV_L symbol, which + indicates to the C program that the localeconv_l() routine is available. + d_localtime64 (d_timefuncs64.U): This variable conditionally defines the HAS_LOCALTIME64 symbol, which indicates to the C program that the localtime64 () routine is available. @@ -1545,6 +1588,30 @@ d_logb (d_logb.U): indicates to the C program that the logb() routine is available to extract the exponent of x. +d_long_double_style_ieee (d_longdbl.U): + This variable conditionally defines LONG_DOUBLE_STYLE_IEEE + if the long double is any of the IEEE 754 style long doubles: + LONG_DOUBLE_STYLE_IEEE_STD, LONG_DOUBLE_STYLE_IEEE_EXTENDED, + LONG_DOUBLE_STYLE_IEEE_DOUBLEDOUBLE. + +d_long_double_style_ieee_doubledouble (d_longdbl.U): + This variable conditionally defines LONG_DOUBLE_STYLE_IEEE_DOUBLEDOUBLE + if the long double is the 128-bit IEEE 754 double-double. + +d_long_double_style_ieee_extended (d_longdbl.U): + This variable conditionally defines LONG_DOUBLE_STYLE_IEEE_EXTENDED + if the long double is the 80-bit IEEE 754 extended precision. + Note that despite the 'extended' this is less than the 'std', + since thisis an extension of the double precision. + +d_long_double_style_ieee_std (d_longdbl.U): + This variable conditionally defines LONG_DOUBLE_STYLE_IEEE_STD + if the long double is the 128-bit IEEE 754. + +d_long_double_style_vax (d_longdbl.U): + This variable conditionally defines LONG_DOUBLE_STYLE_VAX + if the long double is the 128-bit VAX format H. + d_longdbl (d_longdbl.U): This variable conditionally defines HAS_LONG_DOUBLE if the long double type is supported. @@ -1602,6 +1669,16 @@ d_mblen (d_mblen.U): indicates to the C program that the mblen() routine is available to find the number of bytes in a multibye character. +d_mbrlen (d_mbrlen.U): + This variable conditionally defines the HAS_MBRLEN symbol if the + mbrlen() routine is available to be used to get the length of + multi-byte character strings. + +d_mbrtowc (d_mbrtowc.U): + This variable conditionally defines the HAS_MBRTOWC symbol if the + mbrtowc() routine is available to be used to convert a multi-byte + character into a wide character. + d_mbstowcs (d_mbstowcs.U): This variable conditionally defines the HAS_MBSTOWCS symbol, which indicates to the C program that the mbstowcs() routine is available @@ -1612,36 +1689,17 @@ d_mbtowc (d_mbtowc.U): indicates to the C program that the mbtowc() routine is available to convert multibyte to a wide character. -d_memchr (d_memchr.U): - This variable conditionally defines the HAS_MEMCHR symbol, which - indicates to the C program that the memchr() routine is available - to locate characters within a C string. - -d_memcmp (d_memcmp.U): - This variable conditionally defines the HAS_MEMCMP symbol, which - indicates to the C program that the memcmp() routine is available - to compare blocks of memory. - -d_memcpy (d_memcpy.U): - This variable conditionally defines the HAS_MEMCPY symbol, which - indicates to the C program that the memcpy() routine is available - to copy blocks of memory. - d_memmem (d_memmem.U): This variable conditionally defines the HAS_MEMMEM symbol, which indicates to the C program that the memmem() routine is available to return a pointer to the start of the first occurance of a substring in a memory area (or NULL if not found). -d_memmove (d_memmove.U): - This variable conditionally defines the HAS_MEMMOVE symbol, which - indicates to the C program that the memmove() routine is available - to copy potentially overlapping blocks of memory. - -d_memset (d_memset.U): - This variable conditionally defines the HAS_MEMSET symbol, which - indicates to the C program that the memset() routine is available - to set blocks of memory. +d_memrchr (d_memrchr.U): + This variable conditionally defines the HAS_MEMRCHR symbol, which + indicates to the C program that the memrchr() routine is available + to return a pointer to the last occurrence of a byte in a memory + area (or NULL if not found). d_mkdir (d_mkdir.U): This variable conditionally defines the HAS_MKDIR symbol, which @@ -1657,6 +1715,11 @@ d_mkfifo (d_mkfifo.U): This variable conditionally defines the HAS_MKFIFO symbol, which indicates to the C program that the mkfifo() routine is available. +d_mkostemp (d_mkostemp.U): + This variable conditionally defines HAS_MKOSTEMP if mkostemp() is + available to exclusively create and open a uniquely named (with a + suffix) temporary file. + d_mkstemp (d_mkstemp.U): This variable conditionally defines the HAS_MKSTEMP symbol, which indicates to the C program that the mkstemp() routine is available @@ -1760,6 +1823,10 @@ d_nan (d_nan.U): This variable conditionally defines HAS_NAN if nan() is available to generate NaN. +d_nanosleep (d_nanosleep.U): + This variable conditionally defines HAS_NANOSLEEP + if nanosleep() is available to sleep with 1E-9 sec accuracy. + d_ndbm (i_ndbm.U): This variable conditionally defines the HAS_NDBM symbol, which indicates that both the ndbm.h include file and an appropriate ndbm @@ -1835,6 +1902,10 @@ d_open3 (d_open3.U): which indicates to the C program that the 3 argument version of the open(2) function is available. +d_openat (d_fsat.U): + This variable conditionally defines the HAS_OPENAT symbol, which + indicates the POSIX openat() function is available. + d_pathconf (d_pathconf.U): This variable conditionally defines the HAS_PATHCONF symbol, which indicates to the C program that the pathconf() routine is available @@ -1861,6 +1932,11 @@ d_pipe (d_pipe.U): indicates to the C program that the pipe() routine is available to create an inter-process channel. +d_pipe2 (d_pipe2.U): + This variable conditionally defines the HAS_PIPE2 symbol, which + indicates to the C program that the pipe2() routine is available + to create an inter-process channel. + d_poll (d_poll.U): This variable conditionally defines the HAS_POLL symbol, which indicates to the C program that the poll() routine is available @@ -2009,6 +2085,11 @@ d_quad (quadtype.U): This variable, if defined, tells that there's a 64-bit integer type, quadtype. +d_querylocale (d_newlocale.U): + This variable conditionally defines the HAS_QUERYLOCALE symbol, which + indicates to the C program that the querylocale() routine is available + to return the name of the locale for a category mask. + d_random_r (d_random_r.U): This variable conditionally defines the HAS_RANDOM_R symbol, which indicates to the C program that the random_r() @@ -2070,6 +2151,10 @@ d_rename (d_rename.U): indicates to the C program that the rename() routine is available to rename files. +d_renameat (d_fsat.U): + This variable conditionally defines the HAS_RENAMEAT symbol, which + indicates the POSIX renameat() function is available. + d_rewinddir (d_readdir.U): This variable conditionally defines HAS_REWINDDIR if rewinddir() is available. @@ -2086,21 +2171,6 @@ d_round (d_round.U): This variable conditionally defines the HAS_ROUND symbol, which indicates to the C program that the round() routine is available. -d_safebcpy (d_safebcpy.U): - This variable conditionally defines the HAS_SAFE_BCOPY symbol if - the bcopy() routine can do overlapping copies. Normally, you - should probably use memmove(). - -d_safemcpy (d_safemcpy.U): - This variable conditionally defines the HAS_SAFE_MEMCPY symbol if - the memcpy() routine can do overlapping copies. - For overlapping copies, memmove() should be used, if available. - -d_sanemcmp (d_sanemcmp.U): - This variable conditionally defines the HAS_SANE_MEMCMP symbol if - the memcpy() routine is available and can be used to compare relative - magnitudes of chars with their high bits set. - d_sbrkproto (d_sbrkproto.U): This variable conditionally defines the HAS_SBRK_PROTO symbol, which indicates to the C program that the system provides @@ -2443,12 +2513,6 @@ d_socks5_init (d_socks5_init.U): This variable conditionally defines the HAS_SOCKS5_INIT symbol, which indicates to the C program that the socks5_init() routine is available. -d_sprintf_returns_strlen (d_sprintf_len.U): - This variable defines whether sprintf returns the length of the string - (as per the ANSI spec). Some C libraries retain compatibility with - pre-ANSI C and return a pointer to the passed in buffer; for these - this variable will be undef. - d_sqrtl (d_sqrtl.U): This variable conditionally defines the HAS_SQRTL symbol, which indicates to the C program that the sqrtl() routine is available. @@ -2535,28 +2599,15 @@ d_stdstdio (d_stdstdio.U): has a FILE structure declaring usable _ptr and _cnt fields (or equivalent) in stdio.h. -d_strchr (d_strchr.U): - This variable conditionally defines HAS_STRCHR if strchr() and - strrchr() are available for string searching. - d_strcoll (d_strcoll.U): This variable conditionally defines HAS_STRCOLL if strcoll() is available to compare strings using collating information. -d_strctcpy (d_strctcpy.U): - This variable conditionally defines the USE_STRUCT_COPY symbol, which - indicates to the C program that this C compiler knows how to copy - structures. - -d_strerrm (d_strerror.U): - This variable holds what Strerror is defined as to translate an error - code condition into an error message string. It could be 'strerror' - or a more complex macro emulating strerror with sys_errlist[], or the - "unknown" string when both strerror and sys_errlist are missing. - -d_strerror (d_strerror.U): - This variable conditionally defines HAS_STRERROR if strerror() is - available to translate error numbers to strings. +d_strerror_l (d_strerror_l.U): + This variable conditionally defines the HAS_STRERROR_L symbol, which + indicates to the C program that the strerror_l() routine is available + to return the error message for a given errno value in a particular + locale (identified by a locale_t object). d_strerror_r (d_strerror_r.U): This variable conditionally defines the HAS_STRERROR_R symbol, @@ -2575,6 +2626,10 @@ d_strlcpy (d_strlcpy.U): This variable conditionally defines the HAS_STRLCPY symbol, which indicates to the C program that the strlcpy () routine is available. +d_strnlen (d_strnlen.U): + This variable conditionally defines the HAS_STRNLEN symbol, which + indicates to the C program that the strnlen () routine is available. + d_strtod (d_strtod.U): This variable conditionally defines the HAS_STRTOD symbol, which indicates to the C program that the strtod() routine is available @@ -2589,6 +2644,10 @@ d_strtold (d_strtold.U): This variable conditionally defines the HAS_STRTOLD symbol, which indicates to the C program that the strtold() routine is available. +d_strtold_l (d_strtold_l.U): + This variable conditionally defines the HAS_STRTOLD_L symbol, which + indicates to the C program that the strtold_l() routine is available. + d_strtoll (d_strtoll.U): This variable conditionally defines the HAS_STRTOLL symbol, which indicates to the C program that the strtoll() routine is available. @@ -2675,6 +2734,11 @@ d_tgamma (d_tgamma.U): indicates to the C program that the tgamma() routine is available for the gamma function. See also d_lgamma. +d_thread_safe_nl_langinfo_l (d_nl_langinfo_l.U): + This variable contains the eventual value of the + HAS_THREAD_SAFE_NL_LANGINFO_L symbol, which indicates if the + nl_langinfo_l() function exists and is thread-safe. + d_time (d_time.U): This variable conditionally defines the HAS_TIME symbol, which indicates that the time() routine exists. The time() routine is normally @@ -2748,6 +2812,10 @@ d_union_semun (d_union_semun.U): This variable conditionally defines HAS_UNION_SEMUN if the union semun is defined by including <sys/sem.h>. +d_unlinkat (d_fsat.U): + This variable conditionally defines the HAS_UNLINKAT symbol, which + indicates the POSIX unlinkat() function isavailable. + d_unordered (d_unordered.U): This variable conditionally defines the HAS_UNORDERED symbol, which indicates to the C program that the unordered() routine is available. @@ -2806,16 +2874,6 @@ d_voidtty (i_sysioctl.U): Otherwise (on USG probably), it is enough to close the standard file descriptors and do a setpgrp(). -d_volatile (d_volatile.U): - This variable conditionally defines the HASVOLATILE symbol, which - indicates to the C program that this C compiler knows about the - volatile declaration. - -d_vprintf (d_vprintf.U): - This variable conditionally defines the HAS_VPRINTF symbol, which - indicates to the C program that the vprintf() routine is available - to printf with a pointer to an argument list. - d_vsnprintf (d_snprintf.U): This variable conditionally defines the HAS_VSNPRINTF symbol, which indicates to the C program that the vsnprintf () library function @@ -2886,6 +2944,9 @@ db_version_patch (i_db.U): Berkeley DB found in the <db.h> header file. For DB version 1 this is always 0. +default_inc_excludes_dot (defaultincdot.U): + When defined, remove the legacy '.' from @INC + direntrytype (i_dirent.U): This symbol is set to 'struct direct' or 'struct dirent' depending on whether dirent is available or not. You should use this pseudo type to @@ -2913,6 +2974,12 @@ doublekind (longdblfio.U): 6 = IEEE 754 128-bit big endian, 7 = IEEE 754 64-bit mixed endian le-be, 8 = IEEE 754 64-bit mixed endian be-le, + 9 = VAX 32bit little endian F float format + 10 = VAX 64bit little endian D float format + 11 = VAX 64bit little endian G float format + 12 = IBM 32bit format + 13 = IBM 64bit format + 14 = Cray 64bit format -1 = unknown format. doublemantbits (mantbits.U): @@ -2949,6 +3016,11 @@ dtrace (usedtrace.U): dtraceobject (dtraceobject.U): Whether we need to build an object file with the dtrace tool. +dtracexnolibs (dtraceobject.U): + Whether dtrace accepts -xnolibs. If available we call dtrace -h + and dtrace -G with -xnolibs to allow dtrace to run in a jail on + FreeBSD. + dynamic_ext (Extensions.U): This variable holds a list of XS extension files we want to link dynamically into the package. It is used by Makefile. @@ -3381,11 +3453,6 @@ i_arpainet (i_arpainet.U): This variable conditionally defines the I_ARPA_INET symbol, and indicates whether a C program should include <arpa/inet.h>. -i_assert (i_assert.U): - This variable conditionally defines the I_ASSERT symbol, which - indicates to the C program that <assert.h> exists and could be - included. - i_bfd (i_bfd.U): This variable conditionally defines the I_BFD symbol, and indicates whether a C program can include <bfd.h>. @@ -3430,11 +3497,6 @@ i_fenv (i_fenv.U): indicates to the C program that <fenv.h> exists and should be included. -i_float (i_float.U): - This variable conditionally defines the I_FLOAT symbol, and indicates - whether a C program may include <float.h> to get symbols like DBL_MAX - or DBL_MIN, i.e. machine dependent floating point values. - i_fp (i_fp.U): This variable conditionally defines the I_FP symbol, and indicates whether a C program should include <fp.h>. @@ -3480,11 +3542,6 @@ i_libutil (i_libutil.U): This variable conditionally defines the I_LIBUTIL symbol, and indicates whether a C program should include <libutil.h>. -i_limits (i_limits.U): - This variable conditionally defines the I_LIMITS symbol, and indicates - whether a C program may include <limits.h> to get symbols like WORD_BIT - and friends. - i_locale (i_locale.U): This variable conditionally defines the I_LOCALE symbol, and indicates whether a C program should include <locale.h>. @@ -3501,14 +3558,6 @@ i_mallocmalloc (i_mallocmalloc.U): This variable conditionally defines the I_MALLOCMALLOC symbol, and indicates whether a C program should include <malloc/malloc.h>. -i_math (i_math.U): - This variable conditionally defines the I_MATH symbol, and indicates - whether a C program may include <math.h>. - -i_memory (i_memory.U): - This variable conditionally defines the I_MEMORY symbol, and indicates - whether a C program should include <memory.h>. - i_mntent (i_mntent.U): This variable conditionally defines the I_MNTENT symbol, and indicates whether a C program should include <mntent.h>. @@ -3574,34 +3623,18 @@ i_socks (i_socks.U): This variable conditionally defines the I_SOCKS symbol, and indicates whether a C program should include <socks.h>. -i_stdarg (i_varhdr.U): - This variable conditionally defines the I_STDARG symbol, which - indicates to the C program that <stdarg.h> exists and should - be included. - i_stdbool (i_stdbool.U): This variable conditionally defines the I_STDBOOL symbol, which indicates to the C program that <stdbool.h> exists and should be included. -i_stddef (i_stddef.U): - This variable conditionally defines the I_STDDEF symbol, which - indicates to the C program that <stddef.h> exists and should - be included. - i_stdint (i_stdint.U): This variable conditionally defines the I_STDINT symbol, which indicates to the C program that <stdint.h> exists and should be included. i_stdlib (i_stdlib.U): - This variable conditionally defines the I_STDLIB symbol, which - indicates to the C program that <stdlib.h> exists and should - be included. - -i_string (i_string.U): - This variable conditionally defines the I_STRING symbol, which - indicates that <string.h> should be included rather than <strings.h>. + This variable unconditionally defines the I_STDLIB symbol. i_sunmath (i_sunmath.U): This variable conditionally defines the I_SUNMATH symbol, and indicates @@ -3639,8 +3672,8 @@ i_syslog (i_syslog.U): and indicates whether a C program should include <syslog.h>. i_sysmman (i_sysmman.U): - This variable conditionally defines the I_SYS_MMAN symbol, and - indicates whether a C program should include <sys/mman.h>. + This variable conditionally defines the I_SYS_MMAN symbol, + and indicates whether a C program should include <sys/mman.h>. i_sysmode (i_sysmode.U): This variable conditionally defines the I_SYSMODE symbol, @@ -3741,7 +3774,7 @@ i_termios (i_termio.U): to be included. i_time (i_time.U): - This variable conditionally defines I_TIME, which indicates + This variable unconditionally defines I_TIME, which indicates to the C program that it should include <time.h>. i_unistd (i_unistd.U): @@ -3756,23 +3789,14 @@ i_utime (i_utime.U): This variable conditionally defines the I_UTIME symbol, and indicates whether a C program should include <utime.h>. -i_values (i_values.U): - This variable conditionally defines the I_VALUES symbol, and indicates - whether a C program may include <values.h> to get symbols like MAXLONG - and friends. - -i_varargs (i_varhdr.U): - This variable conditionally defines I_VARARGS, which indicates - to the C program that it should include <varargs.h>. - -i_varhdr (i_varhdr.U): - Contains the name of the header to be included to get va_dcl definition. - Typically one of varargs.h or stdarg.h. - i_vfork (i_vfork.U): This variable conditionally defines the I_VFORK symbol, and indicates whether a C program should include vfork.h. +i_wchar (i_wchar.U): + This variable conditionally defines the I_WCHAR symbol, + that indicates whether a C program may include <wchar.h>. + i_xlocale (d_newlocale.U): This symbol, if defined, indicates to the C program that it should include <xlocale.h> to get uselocale() and its friends @@ -4170,8 +4194,9 @@ longdblkind (d_longdbl.U): 4 = x86 80-bit big endian, 5 = double-double 128-bit little endian, 6 = double-double 128-bit big endian, - 7 = 128-bit mixed double-double (64-bit LEs in BE), - 8 = 128-bit mixed double-double (64-bit BEs in LE), + 7 = 128-bit mixed-endian double-double (64-bit LEs in BE), + 8 = 128-bit mixed-endian double-double (64-bit BEs in LE), + 9 = 128-bit PDP-style mixed-endian long doubles, -1 = unknown format. longdblmantbits (mantbits.U): @@ -4684,10 +4709,6 @@ procselfexe (d_procselfexe.U): of the symbolic link pointing to the absolute pathname of the executing program. -prototype (prototype.U): - This variable holds the eventual value of CAN_PROTOTYPE, which - indicates the C compiler can handle function prototypes. - ptrsize (ptrsize.U): This variable contains the value of the PTRSIZE symbol, which indicates to the C program how many bytes there are in a pointer. @@ -4900,6 +4921,7 @@ shrpenv (libperl.U): or shrpenv='' See the main perl Makefile.SH for actual working usage. + Alternatively, we might be able to use a command line option such as -R $archlibexp/CORE (Solaris) or -Wl,-rpath $archlibexp/CORE (Linux). @@ -5280,10 +5302,6 @@ strerror_r_proto (d_strerror_r.U): REENTRANT_PROTO_T_ABC macros of reentr.h if d_strerror_r is defined. -strings (i_string.U): - This variable holds the full path of the string header that will be - used. Typically /usr/include/string.h or /usr/include/strings.h. - submit (Loc.U): This variable is defined but not used by Configure. The value is the empty string and is not useful. @@ -5656,11 +5674,6 @@ uvXUformat (perlxvf.U): This variable contains the format string used for printing a Perl UV as an unsigned hexadecimal integer in uppercase ABCDEF. -vaproto (vaproto.U): - This variable conditionally defines CAN_VAPROTO on systems supporting - prototype declaration of functions with a variable number of - arguments. See also prototype. - vendorarch (vendorarch.U): This variable contains the value of the PERL_VENDORARCH symbol. It may have a ~ on the front. diff --git a/gnu/usr.bin/perl/Porting/Maintainers.pl b/gnu/usr.bin/perl/Porting/Maintainers.pl index a4c6ab566f3..4f039f7ad0c 100644 --- a/gnu/usr.bin/perl/Porting/Maintainers.pl +++ b/gnu/usr.bin/perl/Porting/Maintainers.pl @@ -85,7 +85,7 @@ use File::Glob qw(:case); # DEPRECATED contains the *first* version of Perl in which the module # was considered deprecated. It should only be present if the module is -# actually deprecated. Such modules should use deprecated.pm to +# actually deprecated. Such modules should use deprecate.pm to # issue a warning if used. E.g.: # # use if $] >= 5.011, 'deprecate'; @@ -120,20 +120,12 @@ use File::Glob qw(:case); %Modules = ( 'Archive::Tar' => { - 'DISTRIBUTION' => 'BINGOS/Archive-Tar-2.04.tar.gz', + 'DISTRIBUTION' => 'BINGOS/Archive-Tar-2.30.tar.gz', 'FILES' => q[cpan/Archive-Tar], 'BUGS' => 'bug-archive-tar@rt.cpan.org', 'EXCLUDED' => [ qw(t/07_ptardiff.t), ], - 'CUSTOMIZED' => [ - # https://rt.perl.org/Ticket/Display.html?id=127834 - qw( - bin/ptar bin/ptardiff bin/ptargrep - lib/Archive/Tar.pm lib/Archive/Tar/Constant.pm - lib/Archive/Tar/File.pm - ) - ], }, 'Attribute::Handlers' => { @@ -164,8 +156,15 @@ use File::Glob qw(:case); t/system.t ) ], - # CPAN RT 105344 - 'CUSTOMIZED' => [ qw[ t/mkdir.t ] ], + 'CUSTOMIZED' => [ + # CPAN RT 105344 + 't/mkdir.t', + # smartmatch changes + 'lib/autodie/exception.pm', + 'lib/autodie/hints.pm', + 't/exceptions.t', + 't/lib/Hints_pod_examples.pm', + ], }, 'AutoLoader' => { @@ -175,15 +174,16 @@ use File::Glob qw(:case); }, 'autouse' => { - 'DISTRIBUTION' => 'WOLFSAGE/autouse-1.08.tar.gz', + 'DISTRIBUTION' => 'RJBS/autouse-1.11.tar.gz', 'FILES' => q[dist/autouse], 'EXCLUDED' => [qr{^t/release-.*\.t}], }, 'B::Debug' => { - 'DISTRIBUTION' => 'RURBAN/B-Debug-1.23.tar.gz', + 'DISTRIBUTION' => 'RURBAN/B-Debug-1.26.tar.gz', 'FILES' => q[cpan/B-Debug], 'EXCLUDED' => ['t/pod.t'], + 'DEPRECATED' => '5.027003', }, 'base' => { @@ -192,10 +192,9 @@ use File::Glob qw(:case); }, 'bignum' => { - 'DISTRIBUTION' => 'PJACKLAM/bignum-0.42.tar.gz', + 'DISTRIBUTION' => 'PJACKLAM/bignum-0.49.tar.gz', 'FILES' => q[cpan/bignum], 'EXCLUDED' => [ - qr{^inc/Module/}, qr{^t/author-}, qw( t/00sig.t t/01load.t @@ -203,14 +202,6 @@ use File::Glob qw(:case); t/03podcov.t ), ], - 'CUSTOMIZED' => [ - # https://rt.perl.org/Ticket/Display.html?id=127834 - qw( - lib/Math/BigFloat/Trace.pm - lib/Math/BigInt/Trace.pm lib/bigint.pm - lib/bignum.pm lib/bigrat.pm - ) - ], }, 'Carp' => { @@ -219,7 +210,7 @@ use File::Glob qw(:case); }, 'Compress::Raw::Bzip2' => { - 'DISTRIBUTION' => 'PMQS/Compress-Raw-Bzip2-2.069.tar.gz', + 'DISTRIBUTION' => 'PMQS/Compress-Raw-Bzip2-2.074.tar.gz', 'FILES' => q[cpan/Compress-Raw-Bzip2], 'EXCLUDED' => [ qr{^t/Test/}, @@ -230,7 +221,7 @@ use File::Glob qw(:case); }, 'Compress::Raw::Zlib' => { - 'DISTRIBUTION' => 'PMQS/Compress-Raw-Zlib-2.069.tar.gz', + 'DISTRIBUTION' => 'PMQS/Compress-Raw-Zlib-2.076.tar.gz', 'FILES' => q[cpan/Compress-Raw-Zlib], 'EXCLUDED' => [ @@ -243,7 +234,7 @@ use File::Glob qw(:case); }, 'Config::Perl::V' => { - 'DISTRIBUTION' => 'HMBRAND/Config-Perl-V-0.25.tgz', + 'DISTRIBUTION' => 'HMBRAND/Config-Perl-V-0.29.tgz', 'FILES' => q[cpan/Config-Perl-V], 'EXCLUDED' => [qw( examples/show-v.pl @@ -264,7 +255,7 @@ use File::Glob qw(:case); }, 'CPAN' => { - 'DISTRIBUTION' => 'ANDK/CPAN-2.10.tar.gz', + 'DISTRIBUTION' => 'ANDK/CPAN-2.20-TRIAL.tar.gz', 'FILES' => q[cpan/CPAN], 'EXCLUDED' => [ qr{^distroprefs/}, @@ -275,6 +266,7 @@ use File::Glob qw(:case); qw( lib/CPAN/Admin.pm scripts/cpan-mirrors PAUSE2015.pub + PAUSE2019.pub SlayMakefile t/00signature.t t/04clean_load.t @@ -299,25 +291,17 @@ use File::Glob qw(:case); t/yaml_code.yml ), ], - # See commit 3198fda65dbcd975c56916e4b98f515fab7f02e5 - 'CUSTOMIZED' => [ - qw[ lib/CPAN.pm ], - # https://rt.perl.org/Ticket/Display.html?id=127834 - qw( lib/App/Cpan.pm scripts/cpan ) - ], }, # Note: When updating CPAN-Meta the META.* files will need to be regenerated # perl -Icpan/CPAN-Meta/lib Porting/makemeta 'CPAN::Meta' => { - 'DISTRIBUTION' => 'DAGOLDEN/CPAN-Meta-2.150005.tar.gz', + 'DISTRIBUTION' => 'DAGOLDEN/CPAN-Meta-2.150010.tar.gz', 'FILES' => q[cpan/CPAN-Meta], 'EXCLUDED' => [ qw[t/00-report-prereqs.t t/00-report-prereqs.dd - t/data-test/x_deprecated-META.json - t/data-valid/x_deprecated-META.yml - t/README-data.txt], + ], qr{^xt}, qr{^history}, ], @@ -345,12 +329,12 @@ use File::Glob qw(:case); }, 'Data::Dumper' => { - 'DISTRIBUTION' => 'SMUELLER/Data-Dumper-2.154.tar.gz', + 'DISTRIBUTION' => 'SMUELLER/Data-Dumper-2.161.tar.gz', 'FILES' => q[dist/Data-Dumper], }, 'DB_File' => { - 'DISTRIBUTION' => 'PMQS/DB_File-1.835.tar.gz', + 'DISTRIBUTION' => 'PMQS/DB_File-1.840.tar.gz', 'FILES' => q[cpan/DB_File], 'EXCLUDED' => [ qr{^patches/}, @@ -362,13 +346,12 @@ use File::Glob qw(:case); }, 'Devel::PPPort' => { - 'DISTRIBUTION' => 'WOLFSAGE/Devel-PPPort-3.32.tar.gz', - # RJBS has asked MHX to have UPSTREAM be 'blead' - # (i.e. move this from cpan/ to dist/) - 'FILES' => q[cpan/Devel-PPPort], + 'DISTRIBUTION' => 'WOLFSAGE/Devel-PPPort-3.36.tar.gz', + 'FILES' => q[dist/Devel-PPPort], 'EXCLUDED' => [ 'PPPort.pm', # we use PPPort_pm.PL instead - ] + ], + 'CUSTOMIZED' => [ qw[ parts/embed.fnc ] ], }, 'Devel::SelfStubber' => { @@ -382,19 +365,19 @@ use File::Glob qw(:case); 'FILES' => q[cpan/Digest], 'EXCLUDED' => ['digest-bench'], 'CUSTOMIZED' => [ - # https://rt.perl.org/Ticket/Display.html?id=127834 + # CVE-2016-1238 qw( Digest.pm ) ], }, 'Digest::MD5' => { - 'DISTRIBUTION' => 'GAAS/Digest-MD5-2.54.tar.gz', + 'DISTRIBUTION' => 'GAAS/Digest-MD5-2.55.tar.gz', 'FILES' => q[cpan/Digest-MD5], 'EXCLUDED' => ['rfc1321.txt'], }, 'Digest::SHA' => { - 'DISTRIBUTION' => 'MSHELOR/Digest-SHA-5.95.tar.gz', + 'DISTRIBUTION' => 'MSHELOR/Digest-SHA-6.01.tar.gz', 'FILES' => q[cpan/Digest-SHA], 'EXCLUDED' => [ qw( t/pod.t @@ -402,10 +385,6 @@ use File::Glob qw(:case); examples/dups ), ], - 'CUSTOMIZED' => [ - # https://rt.perl.org/Ticket/Display.html?id=127834 - qw( lib/Digest/SHA.pm shasum ) - ], }, 'Dumpvalue' => { @@ -415,16 +394,11 @@ use File::Glob qw(:case); }, 'Encode' => { - 'DISTRIBUTION' => 'DANKOGAI/Encode-2.80.tar.gz', + 'DISTRIBUTION' => 'DANKOGAI/Encode-2.97.tar.gz', 'FILES' => q[cpan/Encode], - CUSTOMIZED => [ - qw( encoding.pm - ), - # https://rt.perl.org/Ticket/Display.html?id=127834 - qw( - Encode.pm bin/enc2xs bin/encguess bin/piconv - bin/ucmlint bin/unidump - ) + 'CUSTOMIZED' => [ + # TODO test passes on blead + 't/truncated_utf8.t', ], }, @@ -444,9 +418,17 @@ use File::Glob qw(:case); }, 'experimental' => { - 'DISTRIBUTION' => 'LEONT/experimental-0.016.tar.gz', + 'DISTRIBUTION' => 'LEONT/experimental-0.019.tar.gz', 'FILES' => q[cpan/experimental], + 'EXCLUDED' => [ + qr{^xt/}, + qr{nytprof.*} + ], 'EXCLUDED' => [qr{^xt/}], + 'CUSTOMIZED' => [ + # smartmatch changes + 't/basic.t', + ], }, 'Exporter' => { @@ -460,7 +442,7 @@ use File::Glob qw(:case); }, 'ExtUtils::CBuilder' => { - 'DISTRIBUTION' => 'AMBS/ExtUtils-CBuilder-0.280224.tar.gz', + 'DISTRIBUTION' => 'AMBS/ExtUtils-CBuilder-0.280230.tar.gz', 'FILES' => q[dist/ExtUtils-CBuilder], 'EXCLUDED' => [ qw(README.mkdn), @@ -470,7 +452,7 @@ use File::Glob qw(:case); 'ExtUtils::Constant' => { - 'DISTRIBUTION' => 'NWCLARK/ExtUtils-Constant-0.23.tar.gz', + 'DISTRIBUTION' => 'NWCLARK/ExtUtils-Constant-0.24.tar.gz', 'FILES' => q[cpan/ExtUtils-Constant], 'EXCLUDED' => [ qw( lib/ExtUtils/Constant/Aaargh56Hash.pm @@ -478,12 +460,10 @@ use File::Glob qw(:case); examples/perl_regcomp_posix_keyword.pl ), ], - # cc37ebcee3 to fix VMS failure - 'CUSTOMIZED' => [ qw(t/Constant.t) ], }, 'ExtUtils::Install' => { - 'DISTRIBUTION' => 'BINGOS/ExtUtils-Install-2.04.tar.gz', + 'DISTRIBUTION' => 'BINGOS/ExtUtils-Install-2.14.tar.gz', 'FILES' => q[cpan/ExtUtils-Install], 'EXCLUDED' => [ qw( t/lib/Test/Builder.pm @@ -497,7 +477,7 @@ use File::Glob qw(:case); }, 'ExtUtils::MakeMaker' => { - 'DISTRIBUTION' => 'BINGOS/ExtUtils-MakeMaker-7.10.tar.gz', + 'DISTRIBUTION' => 'BINGOS/ExtUtils-MakeMaker-7.34.tar.gz', 'FILES' => q[cpan/ExtUtils-MakeMaker], 'EXCLUDED' => [ qr{^t/lib/Test/}, @@ -509,50 +489,6 @@ use File::Glob qw(:case); 'README.packaging', 'lib/ExtUtils/MakeMaker/version/vpp.pm', ], - # Upstreamed as https://github.com/Perl-Toolchain-Gang/ExtUtils-MakeMaker/commit/ede9ea4a - 'CUSTOMIZED' => [ - qq[lib/ExtUtils/MakeMaker.pm], - qq[t/prereq.t], - qq[t/vstrings.t], - # Upstreamed as https://github.com/Perl-Toolchain-Gang/ExtUtils-MakeMaker/commit/dd1e236ab - qq[lib/ExtUtils/MM_VMS.pm], - # Not yet submitted - qq[t/lib/MakeMaker/Test/NoXS.pm], - # Backported commits from upstream - qw(lib/ExtUtils/Command/MM.pm - lib/ExtUtils/Liblist.pm - lib/ExtUtils/Liblist/Kid.pm - lib/ExtUtils/MM.pm - lib/ExtUtils/MM_AIX.pm - lib/ExtUtils/MM_Any.pm - lib/ExtUtils/MM_BeOS.pm - lib/ExtUtils/MM_Cygwin.pm - lib/ExtUtils/MM_DOS.pm - lib/ExtUtils/MM_Darwin.pm - lib/ExtUtils/MM_MacOS.pm - lib/ExtUtils/MM_NW5.pm - lib/ExtUtils/MM_OS2.pm - lib/ExtUtils/MM_QNX.pm - lib/ExtUtils/MM_UWIN.pm - lib/ExtUtils/MM_Unix.pm - lib/ExtUtils/MM_VOS.pm - lib/ExtUtils/MM_Win32.pm - lib/ExtUtils/MM_Win95.pm - lib/ExtUtils/MY.pm - lib/ExtUtils/MakeMaker/Config.pm - lib/ExtUtils/MakeMaker/FAQ.pod - lib/ExtUtils/MakeMaker/Tutorial.pod - lib/ExtUtils/MakeMaker/version.pm - lib/ExtUtils/MakeMaker/version/regex.pm - lib/ExtUtils/Mkbootstrap.pm - lib/ExtUtils/Mksymlists.pm - lib/ExtUtils/testlib.pm - t/cd.t - t/echo.t - ), - # https://rt.perl.org/Ticket/Display.html?id=127834 - qw( bin/instmodsh lib/ExtUtils/Command.pm ), - ], }, 'ExtUtils::Manifest' => { @@ -565,28 +501,22 @@ use File::Glob qw(:case); }, 'ExtUtils::ParseXS' => { - 'DISTRIBUTION' => 'SMUELLER/ExtUtils-ParseXS-3.30.tar.gz', + 'DISTRIBUTION' => 'SMUELLER/ExtUtils-ParseXS-3.35.tar.gz', 'FILES' => q[dist/ExtUtils-ParseXS], }, 'File::Fetch' => { - 'DISTRIBUTION' => 'BINGOS/File-Fetch-0.48.tar.gz', + 'DISTRIBUTION' => 'BINGOS/File-Fetch-0.56.tar.gz', 'FILES' => q[cpan/File-Fetch], - 'CUSTOMIZED' => [ - # https://rt.perl.org/Ticket/Display.html?id=127834 - qw( lib/File/Fetch.pm ) - ], }, 'File::Path' => { - 'DISTRIBUTION' => 'RICHE/File-Path-2.12.tar.gz', + 'DISTRIBUTION' => 'JKEENAN/File-Path-2.15.tar.gz', 'FILES' => q[cpan/File-Path], 'EXCLUDED' => [ qw(t/Path-Class.t), qr{^xt/}, ], - # https://github.com/rpcme/File-Path/pull/34 - 'CUSTOMIZED' => [ qw( lib/File/Path.pm t/Path_win32.t ) ], }, 'File::Temp' => { @@ -602,7 +532,7 @@ use File::Glob qw(:case); }, 'Filter::Simple' => { - 'DISTRIBUTION' => 'SMUELLER/Filter-Simple-0.91.tar.gz', + 'DISTRIBUTION' => 'SMUELLER/Filter-Simple-0.94.tar.gz', 'FILES' => q[dist/Filter-Simple], 'EXCLUDED' => [ qr{^demo/} @@ -610,7 +540,7 @@ use File::Glob qw(:case); }, 'Filter::Util::Call' => { - 'DISTRIBUTION' => 'RURBAN/Filter-1.55.tar.gz', + 'DISTRIBUTION' => 'RURBAN/Filter-1.58.tar.gz', 'FILES' => q[cpan/Filter-Util-Call pod/perlfilter.pod ], @@ -631,6 +561,7 @@ use File::Glob qw(:case); t/sh.t t/tee.t t/z_kwalitee.t + t/z_manifest.t t/z_meta.t t/z_perl_minimum_version.t t/z_pod-coverage.t @@ -638,15 +569,15 @@ use File::Glob qw(:case); ), ], 'MAP' => { - 'Call/' => 'cpan/Filter-Util-Call/', - 'filter-util.pl' => 'cpan/Filter-Util-Call/filter-util.pl', - 'perlfilter.pod' => 'pod/perlfilter.pod', - '' => 'cpan/Filter-Util-Call/', + 'Call/' => 'cpan/Filter-Util-Call/', + 't/filter-util.pl' => 'cpan/Filter-Util-Call/filter-util.pl', + 'perlfilter.pod' => 'pod/perlfilter.pod', + '' => 'cpan/Filter-Util-Call/', }, }, 'Getopt::Long' => { - 'DISTRIBUTION' => 'JV/Getopt-Long-2.48.tar.gz', + 'DISTRIBUTION' => 'JV/Getopt-Long-2.50.tar.gz', 'FILES' => q[cpan/Getopt-Long], 'EXCLUDED' => [ qr{^examples/}, @@ -658,7 +589,7 @@ use File::Glob qw(:case); }, 'HTTP::Tiny' => { - 'DISTRIBUTION' => 'DAGOLDEN/HTTP-Tiny-0.056.tar.gz', + 'DISTRIBUTION' => 'DAGOLDEN/HTTP-Tiny-0.070.tar.gz', 'FILES' => q[cpan/HTTP-Tiny], 'EXCLUDED' => [ 't/00-report-prereqs.t', @@ -669,10 +600,6 @@ use File::Glob qw(:case); qr/^eg/, qr/^xt/ ], - 'CUSTOMIZED' => [ - # https://rt.perl.org/Ticket/Display.html?id=127834 - qw( lib/HTTP/Tiny.pm ) - ], }, 'I18N::Collate' => { @@ -686,7 +613,7 @@ use File::Glob qw(:case); }, 'if' => { - 'DISTRIBUTION' => 'RJBS/if-0.0606.tar.gz', + 'DISTRIBUTION' => 'XSAWYERX/if-0.0608.tar.gz', 'FILES' => q[dist/if], }, @@ -697,7 +624,7 @@ use File::Glob qw(:case); }, 'IO-Compress' => { - 'DISTRIBUTION' => 'PMQS/IO-Compress-2.069.tar.gz', + 'DISTRIBUTION' => 'PMQS/IO-Compress-2.074.tar.gz', 'FILES' => q[cpan/IO-Compress], 'EXCLUDED' => [ qr{^examples/}, @@ -706,41 +633,10 @@ use File::Glob qw(:case); 't/010examples-zlib.t', 't/cz-05examples.t', ], - 'CUSTOMIZED' => [ - # https://rt.perl.org/Ticket/Display.html?id=127834 - qw( - bin/zipdetails lib/Compress/Zlib.pm - lib/IO/Compress/Adapter/Bzip2.pm - lib/IO/Compress/Adapter/Deflate.pm - lib/IO/Compress/Adapter/Identity.pm - lib/IO/Compress/Base.pm - lib/IO/Compress/Base/Common.pm - lib/IO/Compress/Bzip2.pm - lib/IO/Compress/Deflate.pm - lib/IO/Compress/Gzip.pm - lib/IO/Compress/Gzip/Constants.pm - lib/IO/Compress/RawDeflate.pm - lib/IO/Compress/Zip.pm - lib/IO/Compress/Zip/Constants.pm - lib/IO/Compress/Zlib/Constants.pm - lib/IO/Compress/Zlib/Extra.pm - lib/IO/Uncompress/Adapter/Bunzip2.pm - lib/IO/Uncompress/Adapter/Identity.pm - lib/IO/Uncompress/Adapter/Inflate.pm - lib/IO/Uncompress/AnyInflate.pm - lib/IO/Uncompress/AnyUncompress.pm - lib/IO/Uncompress/Base.pm - lib/IO/Uncompress/Bunzip2.pm - lib/IO/Uncompress/Gunzip.pm - lib/IO/Uncompress/Inflate.pm - lib/IO/Uncompress/RawInflate.pm - lib/IO/Uncompress/Unzip.pm - ) - ], }, 'IO::Socket::IP' => { - 'DISTRIBUTION' => 'PEVANS/IO-Socket-IP-0.37.tar.gz', + 'DISTRIBUTION' => 'PEVANS/IO-Socket-IP-0.39.tar.gz', 'FILES' => q[cpan/IO-Socket-IP], 'EXCLUDED' => [ qr{^examples/}, @@ -753,39 +649,23 @@ use File::Glob qw(:case); }, 'IPC::Cmd' => { - 'DISTRIBUTION' => 'BINGOS/IPC-Cmd-0.92.tar.gz', + 'DISTRIBUTION' => 'BINGOS/IPC-Cmd-1.00.tar.gz', 'FILES' => q[cpan/IPC-Cmd], - 'CUSTOMIZED' => [ - # https://rt.perl.org/Ticket/Display.html?id=127834 - qw( lib/IPC/Cmd.pm ) - ], }, 'IPC::SysV' => { - 'DISTRIBUTION' => 'MHX/IPC-SysV-2.04.tar.gz', + 'DISTRIBUTION' => 'MHX/IPC-SysV-2.07.tar.gz', 'FILES' => q[cpan/IPC-SysV], 'EXCLUDED' => [ qw( const-c.inc const-xs.inc ), ], - 'CUSTOMIZED' => [ - # CPAN #118827 - qw(t/ipcsysv.t - lib/IPC/Msg.pm - lib/IPC/Semaphore.pm - lib/IPC/SharedMem.pm - lib/IPC/SysV.pm), - ], }, 'JSON::PP' => { - 'DISTRIBUTION' => 'MAKAMAKA/JSON-PP-2.27300.tar.gz', + 'DISTRIBUTION' => 'ISHIGAKI/JSON-PP-2.97001.tar.gz', 'FILES' => q[cpan/JSON-PP], - 'CUSTOMIZED' => [ - # https://rt.perl.org/Ticket/Display.html?id=127834 - qw( bin/json_pp lib/JSON/PP.pm ) - ], }, 'lib' => { @@ -799,7 +679,7 @@ use File::Glob qw(:case); }, 'libnet' => { - 'DISTRIBUTION' => 'SHAY/libnet-3.08.tar.gz', + 'DISTRIBUTION' => 'SHAY/libnet-3.11.tar.gz', 'FILES' => q[cpan/libnet], 'EXCLUDED' => [ qw( Configure @@ -811,20 +691,10 @@ use File::Glob qw(:case); qr(^demos/), qr(^t/external/), ], - 'CUSTOMIZED' => [ - qw( - lib/Net/Cmd.pm lib/Net/Config.pm - lib/Net/Domain.pm lib/Net/FTP.pm lib/Net/FTP/A.pm - lib/Net/FTP/E.pm lib/Net/FTP/I.pm - lib/Net/FTP/L.pm lib/Net/FTP/dataconn.pm - lib/Net/NNTP.pm lib/Net/Netrc.pm lib/Net/POP3.pm - lib/Net/SMTP.pm lib/Net/Time.pm - ) - ], }, 'Locale-Codes' => { - 'DISTRIBUTION' => 'SBECK/Locale-Codes-3.37.tar.gz', + 'DISTRIBUTION' => 'SBECK/Locale-Codes-3.56.tar.gz', 'FILES' => q[cpan/Locale-Codes], 'EXCLUDED' => [ qw( README.first @@ -839,7 +709,7 @@ use File::Glob qw(:case); }, 'Locale::Maketext' => { - 'DISTRIBUTION' => 'TODDR/Locale-Maketext-1.26.tar.gz', + 'DISTRIBUTION' => 'TODDR/Locale-Maketext-1.28.tar.gz', 'FILES' => q[dist/Locale-Maketext], 'EXCLUDED' => [ qw( @@ -854,16 +724,15 @@ use File::Glob qw(:case); 'DISTRIBUTION' => 'JESSE/Locale-Maketext-Simple-0.21.tar.gz', 'FILES' => q[cpan/Locale-Maketext-Simple], 'CUSTOMIZED' => [ - # https://rt.perl.org/Ticket/Display.html?id=127834 + # CVE-2016-1238 qw( lib/Locale/Maketext/Simple.pm ) ], }, 'Math::BigInt' => { - 'DISTRIBUTION' => 'PJACKLAM/Math-BigInt-1.999715.tar.gz', + 'DISTRIBUTION' => 'PJACKLAM/Math-BigInt-1.999811.tar.gz', 'FILES' => q[cpan/Math-BigInt], 'EXCLUDED' => [ - qr{^inc/}, qr{^examples/}, qr{^t/author-}, qw( t/00sig.t @@ -875,10 +744,11 @@ use File::Glob qw(:case); }, 'Math::BigInt::FastCalc' => { - 'DISTRIBUTION' => 'PJACKLAM/Math-BigInt-FastCalc-0.40.tar.gz', + 'DISTRIBUTION' => 'PJACKLAM/Math-BigInt-FastCalc-0.5006.tar.gz', 'FILES' => q[cpan/Math-BigInt-FastCalc], 'EXCLUDED' => [ - qr{^inc/}, + qr{^t/author-}, + qr{^t/Math/BigInt/Lib/TestUtil.pm}, qw( t/00sig.t t/01load.t t/02pod.t @@ -898,19 +768,14 @@ use File::Glob qw(:case); }, 'Math::BigRat' => { - 'DISTRIBUTION' => 'PJACKLAM/Math-BigRat-0.260802.tar.gz', + 'DISTRIBUTION' => 'PJACKLAM/Math-BigRat-0.2613.tar.gz', 'FILES' => q[cpan/Math-BigRat], 'EXCLUDED' => [ - qr{^inc/}, + qr{^t/author-}, qw( t/00sig.t t/01load.t t/02pod.t t/03podcov.t - t/blog-mbr.t - ), - ], - 'CUSTOMIZED' => [ - qw( lib/Math/BigRat.pm ), ], }, @@ -918,6 +783,11 @@ use File::Glob qw(:case); 'Math::Complex' => { 'DISTRIBUTION' => 'ZEFRAM/Math-Complex-1.59.tar.gz', 'FILES' => q[cpan/Math-Complex], + 'CUSTOMIZED' => [ + 'lib/Math/Complex.pm', # CPAN RT 118467 + 't/Complex.t', # CPAN RT 118467 + 't/Trig.t', # CPAN RT 118467 + ], 'EXCLUDED' => [ qw( t/pod.t t/pod-coverage.t @@ -930,7 +800,7 @@ use File::Glob qw(:case); 'FILES' => q[cpan/Memoize], 'EXCLUDED' => ['article.html'], 'CUSTOMIZED' => [ - # https://rt.perl.org/Ticket/Display.html?id=127834 + # CVE-2016-1238 qw( Memoize.pm ) ], }, @@ -942,7 +812,7 @@ use File::Glob qw(:case); }, 'Module::CoreList' => { - 'DISTRIBUTION' => 'BINGOS/Module-CoreList-5.20160320.tar.gz', + 'DISTRIBUTION' => 'BINGOS/Module-CoreList-5.20180420.tar.gz', 'FILES' => q[dist/Module-CoreList], }, @@ -952,7 +822,7 @@ use File::Glob qw(:case); }, 'Module::Load::Conditional' => { - 'DISTRIBUTION' => 'BINGOS/Module-Load-Conditional-0.64.tar.gz', + 'DISTRIBUTION' => 'BINGOS/Module-Load-Conditional-0.68.tar.gz', 'FILES' => q[cpan/Module-Load-Conditional], }, @@ -962,7 +832,7 @@ use File::Glob qw(:case); }, 'Module::Metadata' => { - 'DISTRIBUTION' => 'ETHER/Module-Metadata-1.000031-TRIAL.tar.gz', + 'DISTRIBUTION' => 'ETHER/Module-Metadata-1.000033.tar.gz', 'FILES' => q[cpan/Module-Metadata], 'EXCLUDED' => [ qw(t/00-report-prereqs.t), @@ -973,14 +843,27 @@ use File::Glob qw(:case); }, 'Net::Ping' => { - 'DISTRIBUTION' => 'SMPETERS/Net-Ping-2.41.tar.gz', + 'DISTRIBUTION' => 'RURBAN/Net-Ping-2.61.tar.gz', 'FILES' => q[dist/Net-Ping], + 'EXCLUDED' => [ + qw(README.md.PL), + qw(t/020_external.t), + qw(t/600_pod.t), + qw(t/601_pod-coverage.t), + ], + 'CUSTOMIZED' => [ + qw( t/000_load.t + t/001_new.t + t/500_ping_icmp.t), + ], + }, 'NEXT' => { - 'DISTRIBUTION' => 'FLORA/NEXT-0.65.tar.gz', + 'DISTRIBUTION' => 'NEILB/NEXT-0.67.tar.gz', 'FILES' => q[cpan/NEXT], 'EXCLUDED' => [qr{^demo/}], + 'CUSTOMIZED' => [ qw(lib/NEXT.pm t/next.t) ], }, 'Params::Check' => { @@ -989,24 +872,15 @@ use File::Glob qw(:case); }, 'parent' => { - 'DISTRIBUTION' => 'CORION/parent-0.234.tar.gz', + 'DISTRIBUTION' => 'CORION/parent-0.236.tar.gz', 'FILES' => q[cpan/parent], - }, - - 'Parse::CPAN::Meta' => { - 'DISTRIBUTION' => 'DAGOLDEN/Parse-CPAN-Meta-1.4417.tar.gz', - 'FILES' => q[cpan/Parse-CPAN-Meta], 'EXCLUDED' => [ - qw[t/00-report-prereqs.dd], - qw[t/00-report-prereqs.t], - qr{^xt}, + qr{^xt} ], - # https://github.com/Perl-Toolchain-Gang/CPAN-Meta/pull/119 - 'CUSTOMIZED' => [ qw[ lib/Parse/CPAN/Meta.pm t/02_api.t ] ], }, 'PathTools' => { - 'DISTRIBUTION' => 'RJBS/PathTools-3.62.tar.gz', + 'DISTRIBUTION' => 'XSAWYERX/PathTools-3.74.tar.gz', 'FILES' => q[dist/PathTools], 'EXCLUDED' => [ qr{^t/lib/Test/}, @@ -1015,13 +889,13 @@ use File::Glob qw(:case); }, 'Perl::OSType' => { - 'DISTRIBUTION' => 'DAGOLDEN/Perl-OSType-1.009.tar.gz', + 'DISTRIBUTION' => 'DAGOLDEN/Perl-OSType-1.010.tar.gz', 'FILES' => q[cpan/Perl-OSType], 'EXCLUDED' => [qw(tidyall.ini), qr/^xt/, qr{^t/00-}], }, 'perlfaq' => { - 'DISTRIBUTION' => 'LLAP/perlfaq-5.021010.tar.gz', + 'DISTRIBUTION' => 'LLAP/perlfaq-5.021011.tar.gz', 'FILES' => q[cpan/perlfaq], 'EXCLUDED' => [ qw( inc/CreateQuestionList.pm @@ -1029,6 +903,8 @@ use File::Glob qw(:case); t/00-compile.t), qr{^xt/}, ], + + 'CUSTOMIZED' => [ qw[ lib/perlfaq5.pod lib/perlfaq8.pod ] ], }, 'PerlIO::via::QuotedPrint' => { @@ -1037,8 +913,14 @@ use File::Glob qw(:case); }, 'Pod::Checker' => { - 'DISTRIBUTION' => 'MAREKR/Pod-Checker-1.60.tar.gz', + 'DISTRIBUTION' => 'MAREKR/Pod-Checker-1.73.tar.gz', 'FILES' => q[cpan/Pod-Checker], + 'CUSTOMIZED' => [ qw[ + t/pod/contains_bad_pod.xr + t/pod/selfcheck.t + t/pod/testcmp.pl + t/pod/testpchk.pl + ] ], }, 'Pod::Escapes' => { @@ -1052,42 +934,53 @@ use File::Glob qw(:case); }, 'Pod::Perldoc' => { - 'DISTRIBUTION' => 'MALLEN/Pod-Perldoc-3.25.tar.gz', + 'DISTRIBUTION' => 'MALLEN/Pod-Perldoc-3.28.tar.gz', 'FILES' => q[cpan/Pod-Perldoc], # Note that we use the CPAN-provided Makefile.PL, since it # contains special handling of the installation of perldoc.pod - # In blead, the perldoc executable is generated by perldoc.PL - # instead - # XXX We can and should fix this, but clean up the DRY-failure in utils - # first - 'EXCLUDED' => ['perldoc'], + 'EXCLUDED' => [ + # In blead, the perldoc executable is generated by perldoc.PL + # instead + # XXX We can and should fix this, but clean up the DRY-failure in + # utils first + 'perldoc', + + # https://rt.cpan.org/Ticket/Display.html?id=116827 + 't/02_module_pod_output.t' + ], - # https://rt.cpan.org/Ticket/Display.html?id=106798 - # https://rt.cpan.org/Ticket/Display.html?id=110368 - 'CUSTOMIZED' => [ qw[ lib/Pod/Perldoc.pm ] ], + 'CUSTOMIZED' => [ + # [rt.cpan.org #88204], [rt.cpan.org #120229] + 'lib/Pod/Perldoc.pm', + ], }, 'Pod::Simple' => { - 'DISTRIBUTION' => 'MARCGREEN/Pod-Simple-3.32.tar.gz', + 'DISTRIBUTION' => 'KHW/Pod-Simple-3.35.tar.gz', 'FILES' => q[cpan/Pod-Simple], }, 'Pod::Usage' => { - 'DISTRIBUTION' => 'MAREKR/Pod-Usage-1.68.tar.gz', + 'DISTRIBUTION' => 'MAREKR/Pod-Usage-1.69.tar.gz', 'FILES' => q[cpan/Pod-Usage], }, 'podlators' => { - 'DISTRIBUTION' => 'RRA/podlators-4.07.tar.gz', + 'DISTRIBUTION' => 'RRA/podlators-4.10.tar.gz', 'FILES' => q[cpan/podlators pod/perlpodstyle.pod], + 'EXCLUDED' => [ + qr{^docs/metadata/}, + ], 'MAP' => { '' => 'cpan/podlators/', # this file lives outside the cpan/ directory - 'pod/perlpodstyle' => 'pod/perlpodstyle.pod', + 'pod/perlpodstyle.pod' => 'pod/perlpodstyle.pod', }, + + 'CUSTOMIZED' => [ qw[ pod/perlpodstyle.pod ] ], }, 'Safe' => { @@ -1095,21 +988,9 @@ use File::Glob qw(:case); 'FILES' => q[dist/Safe], }, - 'Scalar-List-Utils' => { - 'DISTRIBUTION' => 'PEVANS/Scalar-List-Utils-1.42.tar.gz', + 'Scalar::Util' => { + 'DISTRIBUTION' => 'PEVANS/Scalar-List-Utils-1.50.tar.gz', 'FILES' => q[cpan/Scalar-List-Utils], - # Waiting to be merged upstream: - # https://github.com/Scalar-List-Utils/Scalar-List-Utils/pull/24 - # https://rt.cpan.org/Public/Bug/Display.html?id=105415 - 'CUSTOMIZED' => [ - qw( ListUtil.xs - lib/List/Util.pm - lib/List/Util/XS.pm - lib/Scalar/Util.pm - lib/Sub/Util.pm - t/product.t - ) - ], }, 'Search::Dict' => { @@ -1118,19 +999,14 @@ use File::Glob qw(:case); }, 'SelfLoader' => { - 'DISTRIBUTION' => 'SMUELLER/SelfLoader-1.20.tar.gz', + 'DISTRIBUTION' => 'SMUELLER/SelfLoader-1.24.tar.gz', 'FILES' => q[dist/SelfLoader], 'EXCLUDED' => ['t/00pod.t'], }, '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' => { @@ -1142,7 +1018,7 @@ use File::Glob qw(:case); }, 'Sys::Syslog' => { - 'DISTRIBUTION' => 'SAPER/Sys-Syslog-0.33.tar.gz', + 'DISTRIBUTION' => 'SAPER/Sys-Syslog-0.35.tar.gz', 'FILES' => q[cpan/Sys-Syslog], 'EXCLUDED' => [ qr{^eg/}, @@ -1156,15 +1032,13 @@ use File::Glob qw(:case); win32/PerlLog.RES ), ], - 'CUSTOMIZED' => [ - qw( Syslog.pm ) - ], }, 'Term::ANSIColor' => { - 'DISTRIBUTION' => 'RRA/Term-ANSIColor-4.04.tar.gz', + 'DISTRIBUTION' => 'RRA/Term-ANSIColor-4.06.tar.gz', 'FILES' => q[cpan/Term-ANSIColor], 'EXCLUDED' => [ + qr{^docs/}, qr{^examples/}, qr{^t/data/}, qr{^t/docs/}, @@ -1196,7 +1070,7 @@ use File::Glob qw(:case); }, 'Test::Harness' => { - 'DISTRIBUTION' => 'LEONT/Test-Harness-3.36.tar.gz', + 'DISTRIBUTION' => 'LEONT/Test-Harness-3.42.tar.gz', 'FILES' => q[cpan/Test-Harness], 'EXCLUDED' => [ qr{^examples/}, @@ -1209,68 +1083,18 @@ use File::Glob qw(:case); t/lib/if.pm ), ], - 'CUSTOMIZED' => [ - # https://rt.perl.org/Ticket/Display.html?id=127834 - qw( - bin/prove lib/App/Prove.pm lib/App/Prove/State.pm - lib/App/Prove/State/Result.pm - lib/App/Prove/State/Result/Test.pm - lib/TAP/Base.pm lib/TAP/Formatter/Base.pm - lib/TAP/Formatter/Color.pm - lib/TAP/Formatter/Console.pm - lib/TAP/Formatter/Console/ParallelSession.pm - lib/TAP/Formatter/Console/Session.pm - lib/TAP/Formatter/File.pm - lib/TAP/Formatter/File/Session.pm - lib/TAP/Formatter/Session.pm lib/TAP/Harness.pm - lib/TAP/Harness/Env.pm lib/TAP/Object.pm - lib/TAP/Parser.pm lib/TAP/Parser/Aggregator.pm - lib/TAP/Parser/Grammar.pm - lib/TAP/Parser/Iterator.pm - lib/TAP/Parser/Iterator/Array.pm - lib/TAP/Parser/Iterator/Process.pm - lib/TAP/Parser/Iterator/Stream.pm - lib/TAP/Parser/IteratorFactory.pm - lib/TAP/Parser/Multiplexer.pm - lib/TAP/Parser/Result.pm - lib/TAP/Parser/Result/Bailout.pm - lib/TAP/Parser/Result/Comment.pm - lib/TAP/Parser/Result/Plan.pm - lib/TAP/Parser/Result/Pragma.pm - lib/TAP/Parser/Result/Test.pm - lib/TAP/Parser/Result/Unknown.pm - lib/TAP/Parser/Result/Version.pm - lib/TAP/Parser/Result/YAML.pm - lib/TAP/Parser/ResultFactory.pm - lib/TAP/Parser/Scheduler.pm - lib/TAP/Parser/Scheduler/Job.pm - lib/TAP/Parser/Scheduler/Spinner.pm - lib/TAP/Parser/Source.pm - lib/TAP/Parser/SourceHandler.pm - lib/TAP/Parser/SourceHandler/Executable.pm - lib/TAP/Parser/SourceHandler/File.pm - lib/TAP/Parser/SourceHandler/Handle.pm - lib/TAP/Parser/SourceHandler/Perl.pm - lib/TAP/Parser/SourceHandler/RawTAP.pm - lib/TAP/Parser/YAMLish/Reader.pm - lib/TAP/Parser/YAMLish/Writer.pm - lib/Test/Harness.pm - ) - ], }, 'Test::Simple' => { - 'DISTRIBUTION' => 'EXODIST/Test-Simple-1.001014.tar.gz', + 'DISTRIBUTION' => 'EXODIST/Test-Simple-1.302133.tar.gz', 'FILES' => q[cpan/Test-Simple], 'EXCLUDED' => [ - qr{^t/xt}, - qr{^xt}, - qw( .perlcriticrc - .perltidyrc - examples/indent.pl - examples/subtest.t + qr{^examples/}, + qr{^xt/}, + qw( appveyor.yml t/00compile.t - t/xxx-changes_updated.t + t/00-report.t + t/zzz-check-breaks.t ), ], }, @@ -1316,7 +1140,7 @@ use File::Glob qw(:case); # correct for this (and Thread::Semaphore, threads, and threads::shared) # to be under dist/ rather than cpan/ 'Thread::Queue' => { - 'DISTRIBUTION' => 'JDHEDDEN/Thread-Queue-3.09.tar.gz', + 'DISTRIBUTION' => 'JDHEDDEN/Thread-Queue-3.12.tar.gz', 'FILES' => q[dist/Thread-Queue], 'EXCLUDED' => [ qr{^examples/}, @@ -1328,7 +1152,7 @@ use File::Glob qw(:case); }, 'Thread::Semaphore' => { - 'DISTRIBUTION' => 'JDHEDDEN/Thread-Semaphore-2.12.tar.gz', + 'DISTRIBUTION' => 'JDHEDDEN/Thread-Semaphore-2.13.tar.gz', 'FILES' => q[dist/Thread-Semaphore], 'EXCLUDED' => [ qw( examples/semaphore.pl @@ -1340,7 +1164,7 @@ use File::Glob qw(:case); }, 'threads' => { - 'DISTRIBUTION' => 'JDHEDDEN/threads-2.07.tar.gz', + 'DISTRIBUTION' => 'JDHEDDEN/threads-2.21.tar.gz', 'FILES' => q[dist/threads], 'EXCLUDED' => [ qr{^examples/}, @@ -1352,7 +1176,7 @@ use File::Glob qw(:case); }, 'threads::shared' => { - 'DISTRIBUTION' => 'JDHEDDEN/threads-shared-1.51.tar.gz', + 'DISTRIBUTION' => 'JDHEDDEN/threads-shared-1.58.tar.gz', 'FILES' => q[dist/threads-shared], 'EXCLUDED' => [ qw( examples/class.pl @@ -1374,25 +1198,32 @@ use File::Glob qw(:case); }, 'Time::HiRes' => { - 'DISTRIBUTION' => 'JHI/Time-HiRes-1.9741.tar.gz', + 'DISTRIBUTION' => 'JHI/Time-HiRes-1.9759.tar.gz', 'FILES' => q[dist/Time-HiRes], }, 'Time::Local' => { - 'DISTRIBUTION' => 'DROLSKY/Time-Local-1.2300.tar.gz', + 'DISTRIBUTION' => 'DROLSKY/Time-Local-1.25.tar.gz', 'FILES' => q[cpan/Time-Local], 'EXCLUDED' => [ - qr{^t/release-.*\.t}, + qr{^xt/}, + qw( perlcriticrc + perltidyrc + tidyall.ini + t/00-report-prereqs.t + t/00-report-prereqs.dd + ), ], }, 'Time::Piece' => { - 'DISTRIBUTION' => 'ESAYM/Time-Piece-1.31.tar.gz', + 'DISTRIBUTION' => 'ESAYM/Time-Piece-1.3204.tar.gz', 'FILES' => q[cpan/Time-Piece], + 'EXCLUDED' => [ qw[reverse_deps.txt] ], }, 'Unicode::Collate' => { - 'DISTRIBUTION' => 'SADAHIRO/Unicode-Collate-1.14.tar.gz', + 'DISTRIBUTION' => 'SADAHIRO/Unicode-Collate-1.25.tar.gz', 'FILES' => q[cpan/Unicode-Collate], 'EXCLUDED' => [ qr{N$}, @@ -1407,7 +1238,7 @@ use File::Glob qw(:case); 'Unicode::Normalize' => { 'DISTRIBUTION' => 'KHW/Unicode-Normalize-1.25.tar.gz', - 'FILES' => q[cpan/Unicode-Normalize], + 'FILES' => q[dist/Unicode-Normalize], 'EXCLUDED' => [ qw( MANIFEST.N Normalize.pmN @@ -1418,7 +1249,7 @@ use File::Glob qw(:case); }, 'version' => { - 'DISTRIBUTION' => 'JPEACOCK/version-0.9916.tar.gz', + 'DISTRIBUTION' => 'JPEACOCK/version-0.9918.tar.gz', 'FILES' => q[cpan/version vutil.c vutil.h vxs.inc], 'EXCLUDED' => [ qr{^vutil/lib/}, @@ -1427,7 +1258,7 @@ use File::Glob qw(:case); 'vutil/vxs.xs', 't/00impl-pp.t', 't/survey_locales', - 'lib/version/vpp.pm', + 'vperl/vpp.pm', ], # When adding the CPAN-distributed files for version.pm, it is necessary @@ -1435,11 +1266,11 @@ use File::Glob qw(:case); # only necessary with the CPAN release. 'CUSTOMIZED' => [ qw( lib/version.pm + vxs.inc ), ], 'MAP' => { - 'vperl/' => 'cpan/version/lib/version/', 'vutil/' => '', '' => 'cpan/version/', }, @@ -1468,7 +1299,7 @@ use File::Glob qw(:case); }, 'XSLoader' => { - 'DISTRIBUTION' => 'SAPER/XSLoader-0.16.tar.gz', + 'DISTRIBUTION' => 'SAPER/XSLoader-0.24.tar.gz', 'FILES' => q[dist/XSLoader], 'EXCLUDED' => [ qr{^eg/}, @@ -1558,6 +1389,7 @@ use File::Glob qw(:case); lib/FileHandle.{pm,t} lib/FindBin.{pm,t} lib/Getopt/Std.{pm,t} + lib/Internals.pod lib/Internals.t lib/meta_notation.{pm,t} lib/Net/hostent.{pm,t} @@ -1606,12 +1438,14 @@ use File::Glob qw(:case); lib/integer.{pm,t} lib/less.{pm,t} lib/locale.{pm,t} + lib/locale_threads.t lib/open.{pm,t} lib/overload/numbers.pm lib/overloading.{pm,t} lib/overload{.pm,.t,64.t} lib/perl5db.{pl,t} lib/perl5db/ + lib/perlbug.t lib/sigtrap.{pm,t} lib/sort.{pm,t} lib/strict.{pm,t} @@ -1623,9 +1457,6 @@ use File::Glob qw(:case); lib/vmsish.{pm,t} ], }, - 'openbsd' => { - 'FILES' => q[lib/Config_git.pl], - }, ); # legacy CPAN flag diff --git a/gnu/usr.bin/perl/Porting/README.pod b/gnu/usr.bin/perl/Porting/README.pod index 21a0414e96d..110e9f0df61 100644 --- a/gnu/usr.bin/perl/Porting/README.pod +++ b/gnu/usr.bin/perl/Porting/README.pod @@ -186,6 +186,11 @@ This file is built by F<metaconfig>. This file contains a description of all the shell variables whose value is determined by the Configure script. It later gets incorporated into the pod for F<Config.pm>. +=head2 F<harness-timer-report.pl> + +For analyzing the output of "env HARNESS_TIMER=1 make test", to find +outliers of test execution times. + =head2 F<how_to_write_a_perldelta.pod> This file contains a specification as to how to write a perldelta pod. @@ -245,10 +250,18 @@ web page to use to generate the snapshot files. This script outputs a list of files in F<MANIFEST> which don't exist and a list of files that exist and aren't in F<MANIFEST>. +=head2 F<manifest_lib.pl> + +This library provides functions used in checking and sorting the F<MANIFEST>. + =head2 F<manisort> This script sorts the files in F<MANIFEST>. +=head2 F<mksample> + +This script regenerates F<Porting/config.sh> and F<Porting/config_H>. + =head2 F<new-perldelta.pl> This script automates the process for creating perldelta.pl. diff --git a/gnu/usr.bin/perl/Porting/add-package.pl b/gnu/usr.bin/perl/Porting/add-package.pl index ee03c45b685..012aa77894c 100755 --- a/gnu/usr.bin/perl/Porting/add-package.pl +++ b/gnu/usr.bin/perl/Porting/add-package.pl @@ -374,7 +374,7 @@ my @ChangedFiles; ### update the manifest { my $file = $Repo . '/MANIFEST'; my @manifest; - { open my $fh, "<$file" or die "Could not open $file: $!"; + { open my $fh, '<', $file or die "Could not open $file: $!"; @manifest = <$fh>; close $fh; } @@ -414,7 +414,7 @@ my @ChangedFiles; push @manifest, values %pkg_files; { chmod 0644, $file; - open my $fh, ">$file" or die "Could not open $file for writing: $!"; + open my $fh, '>', $file or die "Could not open $file for writing: $!"; #print $fh sort { lc $a cmp lc $b } @manifest; ### XXX stolen from pod/buildtoc:sub do_manifest print $fh diff --git a/gnu/usr.bin/perl/Porting/bench.pl b/gnu/usr.bin/perl/Porting/bench.pl index 94732fe0e3f..6087dca1388 100755 --- a/gnu/usr.bin/perl/Porting/bench.pl +++ b/gnu/usr.bin/perl/Porting/bench.pl @@ -14,19 +14,31 @@ perls. # Basic: run the tests in t/perf/benchmarks against two or # more perls - bench.pl [options] perl1[=label1] perl2[=label2] ... + bench.pl [options] perlA[=labelA] perlB[=labelB] ... - # Run bench.pl's own built-in sanity tests + # run the tests against the same perl twice, with varying options - bench.pl --action=selftest + bench.pl [options] perlA=bigint --args='-Mbigint' perlA=plain + + # Run bench on blead, saving results to file; then modify the blead + # binary, and benchmark again, comparing against the saved results + + bench.pl [options] --write=blead.time ./perl=blead + # ... hack hack hack, updating ./perl ... + bench.pl --read=blead.time ./perl=hacked + + # You can also combine --read with --write and new benchmark runs + + bench.pl --read=blead.time --write=last.time -- ./perl=hacked =head1 DESCRIPTION By default, F<bench.pl> will run code snippets found in F<t/perf/benchmarks> (or similar) under cachegrind, in order to calculate how many instruction reads, data writes, branches, cache misses, etc. that -one execution of the snippet uses. It will run them against two or more -perl executables and show how much each test has gotten better or worse. +one execution of the snippet uses. Usually it will run them against two or +more perl executables and show how much each test has gotten better or +worse. It is modelled on the F<perlbench> tool, but since it measures instruction reads etc., rather than timings, it is much more precise and reproducible. @@ -37,13 +49,42 @@ measurements, such as instruction reads, conditional branch misses etc. There are options to write the raw data to a file, and to read it back. This means that you can view the same run data in different views with -different selection and sort options. +different selection and sort options. You can also use this mechanism +to save the results of timing one perl, and then read it back while timing +a modification, so that you don't have rerun the same tests on the same +perl over and over, or have two perl executables built at the same time. The optional C<=label> after each perl executable is used in the display -output. +output. If you are doing a two step benchmark then you should provide +a label for at least the "base" perl. If a label isn't specified, it +defaults to the name of the perl executable. Labels must be unique across +all current executables, plus any previous ones obtained via --read. + +In its most general form, the specification of a perl executable is: + + path/perl=+mylabel --args='-foo -bar' --args='-baz' \ + --env='A=a' --env='B=b' + +This defines how to run the executable F<path/perl>. It has a label, +which due to the C<+>, is appended to the binary name to give a label of +C<path/perl=+mylabel> (without the C<+>, the label would be just +C<mylabel>). + +It can be optionally followed by one or more C<--args> or C<--env> +switches, which specify extra command line arguments or environment +variables to use when invoking that executable. Each C<--env> switch +should be of the form C<--env=VARIABLE=value>. Any C<--arg> values are +concatenated to the eventual command line, along with the global +C<--perlargs> value if any. The above would cause a system() call looking +something like: + + PERL_HASH_SEED=0 A=a B=b valgrind --tool=cachegrind \ + path/perl -foo -bar -baz .... =head1 OPTIONS +=head2 General options + =over 4 =item * @@ -56,68 +97,114 @@ I<selftest>, which runs some basic sanity checks and produces TAP output. =item * ---average +--debug -Only display the overall average, rather than the results for each -individual test. +Enable debugging output. =item * ---benchfile=I<foo> +---help -The path of the file which contains the benchmarks (F<t/perf/benchmarks> -by default). +Display basic usage information. =item * ---bisect=I<field,minval,maxval> +-v +--verbose -Run a single test against one perl and exit with a zero status if the -named field is in the specified range; exit 1 otherwise. It will complain -if more than one test or perl has been specified. It is intended to be -called as part of a bisect run, to determine when something changed. -For example, +Display progress information. - bench.pl -j 8 --tests=foo --bisect=Ir,100,105 --perlargs=-Ilib \ - ./miniperl +=back -might be called from bisect to find when the number of instruction reads -for test I<foo> falls outside the range 100..105. +=head2 Test selection options + +=over 4 =item * ---compact=<Iperl> +--tests=I<FOO> + +Specify a subset of tests to run (or in the case of C<--read>, to read). +It may be either a comma-separated list of test names, or a regular +expression. For example + + --tests=expr::assign::scalar_lex,expr::assign::2list_lex + --tests=/^expr::/ + + +=back + +=head2 Input options + +=over 4 -Display the results for a single perl executable in a compact form. -Which perl to display is specified in the same manner as C<--norm>. =item * ---debug +-r I<file> +--read=I<file> + +Read in saved data from a previous C<--write> run from the specified file. +If C<--tests> is present too, then only tests matching those conditions +are read from the file. + +C<--read> may be specified multiple times, in which case the results +across all files are aggregated. The list of test names from each file +(after filtering by C<--tests>) must be identical across all files. + +This list of tests is used instead of that obtained from the normal +benchmark file (or C<--benchfile>) for any benchmarks that are run. + +The perl labels must be unique across all read in test results. + +Requires C<JSON::PP> to be available. + +=back + +=head2 Benchmarking options -Enable verbose debugging output. +Benchmarks will be run for all perls specified on the command line. +These options can be used to modify the benchmarking behavior: + +=over 4 =item * ---fields=I<a,b,c> +--autolabel -Display only the specified fields; for example, +Generate a unique label for every executable which doesn't have an +explicit C<=label>. Works by stripping out common prefixes and suffixes +from the executable names, then for any non-unique names, appending +C<-0>, C<-1>, etc. text directly surrounding the unique part which look +like version numbers (i.e. which match C</[0-9\.]+/>) aren't stripped. +For example, - --fields=Ir,Ir_m,Ir_mm + perl-5.20.0-threaded perl-5.22.0-threaded perl-5.24.0-threaded + +stripped to unique parts would be: + + 20 22 24 + +but is actually only stripped down to: + + 5.20.0 5.22.0 5.24.0 + +If the final results are plain integers, they are prefixed with "p" +to avoid looking like column numbers to switches like C<--norm=2>. -If only one field is selected, the output is in more compact form. =item * ---grindargs=I<foo> +--benchfile=I<foo> -Optional command-line arguments to pass to cachegrind invocations. +The path of the file which contains the benchmarks (F<t/perf/benchmarks> +by default). =item * ----help +--grindargs=I<foo> -Display basic usage information. +Optional command-line arguments to pass to all cachegrind invocations. =item * @@ -125,80 +212,140 @@ Display basic usage information. --jobs=I<N> Run I<N> jobs in parallel (default 1). This determines how many cachegrind -process will running at a time, and should generally be set to the number +process will run at a time, and should generally be set to the number of CPUs available. =item * ---norm=I<foo> +--perlargs=I<foo> -Specify which perl column in the output to treat as the 100% norm. -It may be a column number (0..N-1) or a perl executable name or label. -It defaults to the leftmost column. +Optional command-line arguments to pass to every perl executable. This +may optionaly be combined with C<--args> switches following individual +perls. For example: + + bench.pl --perlargs='-Ilib -It/lib' .... \ + perlA --args='-Mstrict' \ + perlB --args='-Mwarnings' + +would cause the invocations + + perlA -Ilib -It/lib -Mstrict + perlB -Ilib -It/lib -Mwarnings + +=back + +=head2 Output options + +Any results accumulated via --read or by running benchmarks can be output +in any or all of these three ways: + +=over 4 =item * ---perlargs=I<foo> +-w I<file> +--write=I<file> + +Save the raw data to the specified file. It can be read back later with +C<--read>. If combined with C<--read> then the output file will be +the merge of the file read and any additional perls added on the command +line. -Optional command-line arguments to pass to each perl that is run as part of -a cachegrind session. For example, C<--perlargs=-Ilib>. +Requires C<JSON::PP> to be available. =item * ---raw +--bisect=I<field,minval,maxval> -Display raw data counts rather than percentages in the outputs. This -allows you to see the exact number of intruction reads, branch misses etc. -for each test/perl combination. It also causes the C<AVERAGE> display -per field to be calculated based on the average of each tests's count -rather than average of each percentage. This means that tests with very -high counts will dominate. +Exit with a zero status if the named field is in the specified range; +exit with 1 otherwise. It will complain if more than one test or perl has +been specified. It is intended to be called as part of a bisect run, to +determine when something changed. For example, + + bench.pl -j 8 --tests=foo --bisect=Ir,100,105 --perlargs=-Ilib \ + ./miniperl + +might be called from bisect to find when the number of instruction reads +for test I<foo> falls outside the range 100..105. =item * ---sort=I<field:perl> +--show -Order the tests in the output based on the value of I<field> in the -column I<perl>. The I<perl> value is as per C<--norm>. For example +Display the results to stdout in human-readable form. This is enabled by +default, except with --write and --bisect. The following sub-options alter +how --show behaves. - bench.pl --sort=Dw:perl-5.20.0 \ - perl-5.16.0 perl-5.18.0 perl-5.20.0 +=over 4 =item * --r I<file> ---read=I<file> +--average -Read in saved data from a previous C<--write> run from the specified file. +Only display the overall average, rather than the results for each +individual test. -Requires C<JSON::PP> to be available. +=item * + +--compact=I<perl> + +Display the results for a single perl executable in a compact form. +Which perl to display is specified in the same manner as C<--norm>. =item * ---tests=I<FOO> +--fields=I<a,b,c> -Specify a subset of tests to run (or in the case of C<--read>, to display). -It may be either a comma-separated list of test names, or a regular -expression. For example +Display only the specified fields; for example, - --tests=expr::assign::scalar_lex,expr::assign::2list_lex - --tests=/^expr::/ + --fields=Ir,Ir_m,Ir_mm + +If only one field is selected, the output is in more compact form. =item * ---verbose +--norm=I<foo> -Display progress information. +Specify which perl column in the output to treat as the 100% norm. +It may be: + +=over + +* a column number (0..N-1), + +* a negative column number (-1..-N) which counts from the right (so -1 is +the right-most column), + +* or a perl executable name, + +* or a perl executable label. + +=back + +It defaults to the leftmost column. =item * --w I<file> ---write=I<file> +--raw -Save the raw data to the specified file. It can be read back later with -C<--read>. +Display raw data counts rather than percentages in the outputs. This +allows you to see the exact number of intruction reads, branch misses etc. +for each test/perl combination. It also causes the C<AVERAGE> display +per field to be calculated based on the average of each tests's count +rather than average of each percentage. This means that tests with very +high counts will dominate. -Requires C<JSON::PP> to be available. +=item * + +--sort=I<field:perl> + +Order the tests in the output based on the value of I<field> in the +column I<perl>. The I<perl> value is as per C<--norm>. For example + + bench.pl --sort=Dw:perl-5.20.0 \ + perl-5.16.0 perl-5.18.0 perl-5.20.0 + +=back =back @@ -209,7 +356,7 @@ Requires C<JSON::PP> to be available. use 5.010000; use warnings; use strict; -use Getopt::Long qw(:config no_auto_abbrev); +use Getopt::Long qw(:config no_auto_abbrev require_order); use IPC::Open2 (); use IO::Select; use IO::File; @@ -227,52 +374,88 @@ my %VALID_FIELDS = map { $_ => 1 } sub usage { die <<EOF; -usage: $0 [options] perl[=label] ... - --action=foo What action to perform [default: grind]. - --average Only display average, not individual test results. - --benchfile=foo File containing the benchmarks; - [default: t/perf/benchmarks]. - --bisect=f,min,max run a single test against one perl and exit with a - zero status if the named field is in the specified - range; exit 1 otherwise. - --compact=perl Display the results of a single perl in compact form. - Which perl specified like --norm +Usage: $0 [options] -- perl[=label] ... + +General options: + + --action=foo What action to perform [default: grind]: + grind run the code under cachegrind + selftest perform a selftest; produce TAP output --debug Enable verbose debugging output. - --fields=a,b,c Display only the specified fields (e.g. Ir,Ir_m,Ir_mm). - --grindargs=foo Optional command-line args to pass to cachegrind. --help Display this help. + -v|--verbose Display progress information. + + +Selection: + + --tests=FOO Select only the specified tests for reading, benchmarking + and display. FOO may be either a list of tests or + a pattern: 'foo,bar,baz' or '/regex/'; + [default: all tests]. + +Input: + + -r|--read=file Read in previously saved data from the specified file. + May be repeated, and be used together with new + benchmarking to create combined results. + +Benchmarking: + Benchmarks will be run for any perl specified on the command line. + These options can be used to modify the benchmarking behavior: + + --autolabel generate labels for any executables without one + --benchfile=foo File containing the benchmarks. + [default: t/perf/benchmarks]. + --grindargs=foo Optional command-line args to pass to cachegrind. -j|--jobs=N Run N jobs in parallel [default 1]. - --norm=perl Which perl column to treat as 100%; may be a column - number (0..N-1) or a perl executable name or label; - [default: 0]. --perlargs=foo Optional command-line args to pass to each perl to run. - --raw Display raw data counts rather than percentages. - --sort=field:perl Sort the tests based on the value of 'field' in the + +Output: + Any results accumulated via --read or running benchmarks can be output + in any or all of these three ways: + + -w|--write=file Save the raw data to the specified file (may be read + back later with --read). + + --bisect=f,min,max Exit with a zero status if the named field f is in + the specified min..max range; exit 1 otherwise. + Produces no other output. Only legal if a single + benchmark test has been specified. + + --show Display the results to stdout in human-readable form. + This is enabled by default, except with --write and + --bisect. The following sub-options alter how + --show behaves. + + --average Only display average, not individual test results. + --compact=perl Display the results of a single perl in compact form. + Which perl specified like --norm + --fields=a,b,c Display only the specified fields (e.g. Ir,Ir_m,Ir_mm). + --norm=perl Which perl column to treat as 100%; may be a column + number (0..N-1) or a perl executable name or label; + [default: 0]. + --raw Display raw data counts rather than percentages. + --sort=field:perl Sort the tests based on the value of 'field' in the column 'perl'. The perl value is as per --norm. - -r|--read=file Read in previously saved data from the specified file. - --tests=FOO Select only the specified tests from the benchmarks file; - FOO may be either of the form 'foo,bar' or '/regex/'; - [default: all tests]. - --verbose Display progress information. - -w|--write=file Save the raw data to the specified file. ---action is one of: - grind run the code under cachegrind - selftest perform a selftest; produce TAP output The command line ends with one or more specified perl executables, which will be searched for in the current \$PATH. Each binary name may have an optional =LABEL appended, which will be used rather than the -executable name in output. E.g. +executable name in output. The labels must be unique across all current +executables and previous runs obtained via --read. Each executable may +optionally be succeeded by --args= and --env= to specify per-executable +arguments and environmenbt variables: - perl-5.20.1=PRE-BUGFIX perl-5.20.1-new=POST-BUGFIX + perl-5.24.0=strict --args='-Mwarnings -Mstrict' --env='FOO=foo' \ + perl-5.24.0=plain EOF } my %OPTS = ( action => 'grind', average => 0, - benchfile => 't/perf/benchmarks', + benchfile => undef, bisect => undef, compact => undef, debug => 0, @@ -283,6 +466,7 @@ my %OPTS = ( perlargs => '', raw => 0, read => undef, + show => undef, sort => undef, tests => undef, verbose => 0, @@ -296,31 +480,29 @@ my %OPTS = ( GetOptions( 'action=s' => \$OPTS{action}, 'average' => \$OPTS{average}, + 'autolabel' => \$OPTS{autolabel}, 'benchfile=s' => \$OPTS{benchfile}, 'bisect=s' => \$OPTS{bisect}, 'compact=s' => \$OPTS{compact}, 'debug' => \$OPTS{debug}, 'grindargs=s' => \$OPTS{grindargs}, - 'help' => \$OPTS{help}, + 'help|h' => \$OPTS{help}, 'fields=s' => \$OPTS{fields}, 'jobs|j=i' => \$OPTS{jobs}, 'norm=s' => \$OPTS{norm}, 'perlargs=s' => \$OPTS{perlargs}, 'raw' => \$OPTS{raw}, - 'read|r=s' => \$OPTS{read}, + 'read|r=s@' => \$OPTS{read}, + 'show' => \$OPTS{show}, 'sort=s' => \$OPTS{sort}, 'tests=s' => \$OPTS{tests}, - 'verbose' => \$OPTS{verbose}, + 'v|verbose' => \$OPTS{verbose}, 'write|w=s' => \$OPTS{write}, - ) or usage; + ) or die "Use the -h option for usage information.\n"; usage if $OPTS{help}; - if (defined $OPTS{read} and defined $OPTS{write}) { - die "Error: can't specify both --read and --write options\n"; - } - if (defined $OPTS{read} or defined $OPTS{write}) { # fail early if it's not present require JSON::PP; @@ -349,7 +531,7 @@ my %OPTS = ( . "'$OPTS{sort}'\n"; } my ($field, $perl) = @s; - die "Error: --sort: unknown field '$field\n" + die "Error: --sort: unknown field '$field'\n" unless $VALID_FIELDS{$field}; # the 'perl' value will be validated later, after we have processed # the perls @@ -357,39 +539,16 @@ my %OPTS = ( $OPTS{'sort-perl'} = $perl; } - if ($OPTS{action} eq 'selftest') { - if (@ARGV) { - die "Error: no perl executables may be specified with --read\n" - } - } - elsif (defined $OPTS{bisect}) { - die "Error: exactly one perl executable must be specified for bisect\n" - unless @ARGV == 1; - die "Error: Can't specify both --bisect and --read\n" - if defined $OPTS{read}; - die "Error: Can't specify both --bisect and --write\n" - if defined $OPTS{write}; - } - elsif (defined $OPTS{read}) { - if (@ARGV) { - die "Error: no perl executables may be specified with --read\n" - } - } - elsif ($OPTS{raw}) { - unless (@ARGV) { - die "Error: at least one perl executable must be specified\n"; - } - } - else { - unless (@ARGV >= 2) { - die "Error: at least two perl executables must be specified\n"; - } - } + # show is the default output action + $OPTS{show} = 1 unless $OPTS{write} || $OPTS{bisect}; if ($OPTS{action} eq 'grind') { do_grind(\@ARGV); } elsif ($OPTS{action} eq 'selftest') { + if (@ARGV) { + die "Error: no perl executables may be specified with selftest\n" + } do_selftest(); } } @@ -417,13 +576,24 @@ sub filter_tests { else { my %t; for (split /,/, $opt) { - die "Error: no such test found: '$_'\n" unless exists $tests->{$_}; $t{$_} = 1; + next if exists $tests->{$_}; + + my $e = "Error: no such test found: '$_'\n"; + if ($OPTS{verbose}) { + $e .= "Valid test names are:\n"; + $e .= " $_\n" for sort keys %$tests; + } + else { + $e .= "Re-run with --verbose for a list of valid tests.\n"; + } + die $e; } for (keys %$tests) { delete $tests->{$_} unless exists $t{$_}; } } + die "Error: no tests to run\n" unless %$tests; } @@ -434,12 +604,44 @@ sub filter_tests { sub read_tests_file { my ($file) = @_; - my $ta = do $file; + my $ta; + { + local @INC = ('.'); + $ta = do $file; + } unless ($ta) { - die "Error: can't parse '$file': $@\n" if $@; + die "Error: can't load '$file': code didn't return a true value\n" + if defined $ta; + die "Error: can't parse '$file':\n$@\n" if $@; die "Error: can't read '$file': $!\n"; } + # validate and process each test + + { + my %valid = map { $_ => 1 } qw(desc setup code pre post compile); + my @tests = @$ta; + if (!@tests || @tests % 2 != 0) { + die "Error: '$file' does not contain evenly paired test names and hashes\n"; + } + while (@tests) { + my $name = shift @tests; + my $hash = shift @tests; + + unless ($name =~ /^[a-zA-Z]\w*(::\w+)*$/) { + die "Error: '$file': invalid test name: '$name'\n"; + } + + for (sort keys %$hash) { + die "Error: '$file': invalid key '$_' for test '$name'\n" + unless exists $valid{$_}; + } + + # make description default to the code + $hash->{desc} = $hash->{code} unless exists $hash->{desc}; + } + } + my @orig_order; for (my $i=0; $i < @$ta; $i += 2) { push @orig_order, $ta->[$i]; @@ -451,23 +653,40 @@ sub read_tests_file { } -# Process the perl/column argument of options like --norm and --sort. -# Return the index of the matching perl. +# Process the perl name/label/column argument of options like --norm and +# --sort. Return the index of the matching perl. sub select_a_perl { my ($perl, $perls, $who) = @_; + $perls ||= []; + my $n = @$perls; + + if ($perl =~ /^-([0-9]+)$/) { + my $p = $1; + die "Error: $who value $perl outside range -1..-$n\n" + if $p < 1 || $p > $n; + return $n - $p; + } - if ($perl =~ /^[0-9]$/) { + if ($perl =~ /^[0-9]+$/) { die "Error: $who value $perl outside range 0.." . $#$perls . "\n" - unless $perl < @$perls; + unless $perl < $n; return $perl; } else { my @perl = grep $perls->[$_][0] eq $perl || $perls->[$_][1] eq $perl, 0..$#$perls; - die "Error: $who: unrecognised perl '$perl'\n" - unless @perl; + unless (@perl) { + my $valid = ''; + for (@$perls) { + $valid .= " $_->[1]"; + $valid .= " $_->[0]" if $_->[0] ne $_->[1]; + $valid .= "\n"; + } + die "Error: $who: unrecognised perl '$perl'\n" + . "Valid perl names are:\n$valid"; + } die "Error: $who: ambiguous perl '$perl'\n" if @perl > 1; return $perl[0]; @@ -475,36 +694,195 @@ sub select_a_perl { } -# Validate the list of perl=label on the command line. -# Return a list of [ exe, label ] pairs. +# Validate the list of perl executables on the command line. +# The general form is +# +# a_perl_exe[=label] [ --args='perl args'] [ --env='FOO=foo' ] +# +# Return a list of [ exe, label, {env}, 'args' ] tuples + +sub process_executables_list { + my ($read_perls, @cmd_line_args) = @_; + + my @results; # returned, each item is [ perlexe, label, {env}, 'args' ] + my %seen_from_reads = map { $_->[1] => 1 } @$read_perls; + my %seen; + my @labels; + + while (@cmd_line_args) { + my $item = shift @cmd_line_args; + + if ($item =~ /^--(.*)$/) { + my ($switch, $val) = split /=/, $1, 2; + die "Error: unrecognised executable switch '--$switch'\n" + unless $switch =~ /^(args|env)$/; + + die "Error: --$switch without a preceding executable name\n" + unless @results; + + unless (defined $val) { + $val = shift @cmd_line_args; + die "Error: --$switch is missing value\n" + unless defined $val; + } + + if ($switch eq 'args') { + $results[-1][3] .= " $val"; + } + else { + # --env + $val =~ /^(\w+)=(.*)$/ + or die "Error: --env is missing =value\n"; + $results[-1][2]{$1} = $2; + } + + next; + } + + # whatever is left must be the name of an executable + + my ($perl, $label) = split /=/, $item, 2; + push @labels, $label; + unless ($OPTS{autolabel}) { + $label //= $perl; + $label = $perl.$label if $label =~ /^\+/; + } + + die "Error: duplicate label '$label': " + . "each executable must have a unique label\n" + if defined $label && $seen{$label}++; + + die "Error: duplicate label '$label': " + . "seen both in --read file and on command line\n" + if defined $label && $seen_from_reads{$label}; -sub process_perls { - my @results; - for my $p (@_) { - my ($perl, $label) = split /=/, $p, 2; - $label //= $perl; my $r = qx($perl -e 'print qq(ok\n)' 2>&1); - die "Error: unable to execute '$perl': $r" if $r ne "ok\n"; - push @results, [ $perl, $label ]; + die "Error: unable to execute '$perl': $r\n" if $r ne "ok\n"; + + push @results, [ $perl, $label, { }, '' ]; + } + + # make args '' by default + for (@results) { + push @$_, '' unless @$_ > 3; + } + + if ($OPTS{autolabel}) { + + # create a list of [ 'perl-path', $i ] pairs for all + # $results[$i] which don't have a label + my @labels; + for (0..$#results) { + push @labels, [ $results[$_][0], $_ ] + unless defined $results[$_][1]; + } + + if (@labels) { + # strip off common prefixes + my $pre = ''; + STRIP_PREFIX: + while (length $labels[0][0]) { + my $c = substr($labels[0][0], 0, 1); + for my $i (1..$#labels) { + last STRIP_PREFIX if substr($labels[$i][0], 0, 1) ne $c; + } + substr($labels[$_][0], 0, 1) = '' for 0..$#labels; + $pre .= $c; + } + # add back any final "version-ish" prefix + $pre =~ s/^.*?([0-9\.]*)$/$1/; + substr($labels[$_][0], 0, 0) = $pre for 0..$#labels; + + # strip off common suffixes + my $post = ''; + STRIP_SUFFFIX: + while (length $labels[0][0]) { + my $c = substr($labels[0][0], -1, 1); + for my $i (1..$#labels) { + last STRIP_SUFFFIX if substr($labels[$i][0], -1, 1) ne $c; + } + chop $labels[$_][0] for 0..$#labels; + $post = "$c$post"; + } + # add back any initial "version-ish" suffix + $post =~ s/^([0-9\.]*).*$/$1/; + $labels[$_][0] .= $post for 0..$#labels; + + # avoid degenerate empty string for single executable name + $labels[0][0] = '0' if @labels == 1 && !length $labels[0][0]; + + # if the auto-generated labels are plain integers, prefix + # them with 'p' (for perl) to distinguish them from column + # indices (otherwise e.g. --norm=2 is ambiguous) + + if ($labels[0][0] =~ /^\d*$/) { + $labels[$_][0] = "p$labels[$_][0]" for 0..$#labels; + } + + # now de-duplicate labels + + my (%seen, %index); + $seen{$read_perls->[$_][1]}++ for 0..$#$read_perls; + $seen{$labels[$_][0]}++ for 0..$#labels; + + for my $i (0..$#labels) { + my $label = $labels[$i][0]; + next unless $seen{$label} > 1; + my $d = length($label) ? '-' : ''; + my $n = $index{$label} // 0; + $n++ while exists $seen{"$label$d$n"}; + $labels[$i][0] .= "$d$n"; + $index{$label} = $n + 1; + } + + # finally, store them + $results[$_->[1]][1]= $_->[0] for @labels; + } } + + return @results; } -# Return a string containing perl test code wrapped in a loop -# that runs $ARGV[0] times +# Return a string containing a perl program which runs the benchmark code +# $ARGV[0] times. If $body is true, include the main body (setup) in +# the loop; otherwise create an empty loop with just pre and post. +# Note that an empty body is handled with '1;' so that a completely empty +# loop has a single nextstate rather than a stub op, so more closely +# matches the active loop; e.g.: +# {1;} => nextstate; unstack +# {$x=1;} => nextstate; const; gvsv; sassign; unstack +# Note also that each statement is prefixed with a label; this avoids +# adjacent nextstate ops being optimised away. +# +# A final 1; statement is added so that the code is always in void +# context. +# +# It the compile flag is set for a test, the body of the loop is wrapped in +# eval 'sub { .... }' to measure compile time rather than execution time sub make_perl_prog { - my ($test, $desc, $setup, $code) = @_; + my ($name, $test, $body) = @_; + my ($desc, $setup, $code, $pre, $post, $compile) = + @$test{qw(desc setup code pre post compile)}; + + $setup //= ''; + $pre = defined $pre ? "_PRE_: $pre; " : ""; + $post = defined $post ? "_POST_: $post; " : ""; + $code = $body ? $code : "1"; + $code = "_CODE_: $code; "; + my $full = "$pre$code$post _CXT_: 1; "; + $full = "eval q{sub { $full }};" if $compile; return <<EOF; # $desc -package $test; +package $name; BEGIN { srand(0) } $setup; for my \$__loop__ (1..\$ARGV[0]) { - $code; + $full } EOF } @@ -563,10 +941,11 @@ sub parse_cachegrind { # Handle the 'grind' action sub do_grind { - my ($perl_args) = @_; # the residue of @ARGV after option processing + my ($cmd_line_args) = @_; # the residue of @ARGV after option processing - my ($loop_counts, $perls, $results, $tests, $order); + my ($loop_counts, $perls, $results, $tests, $order, @run_perls); my ($bisect_field, $bisect_min, $bisect_max); + my ($done_read, $processed, $averages, %seen_labels); if (defined $OPTS{bisect}) { ($bisect_field, $bisect_min, $bisect_max) = split /,/, $OPTS{bisect}, 3; @@ -583,48 +962,125 @@ sub do_grind { if $bisect_min > $bisect_max; } - if (defined $OPTS{read}) { - open my $in, '<:encoding(UTF-8)', $OPTS{read} - or die " Error: can't open $OPTS{read} for reading: $!\n"; + # Read in previous benchmark results + + foreach my $file (@{$OPTS{read}}) { + open my $in, '<:encoding(UTF-8)', $file + or die "Error: can't open '$file' for reading: $!\n"; my $data = do { local $/; <$in> }; close $in; my $hash = JSON::PP::decode_json($data); if (int($FORMAT_VERSION) < int($hash->{version})) { die "Error: unsupported version $hash->{version} in file" - . "'$OPTS{read}' (too new)\n"; + . " '$file' (too new)\n"; } - ($loop_counts, $perls, $results, $tests, $order) = + my ($read_loop_counts, $read_perls, $read_results, $read_tests, $read_order) = @$hash{qw(loop_counts perls results tests order)}; - filter_tests($results); - filter_tests($tests); + # check file contents for consistency + my $k_o = join ';', sort @$read_order; + my $k_r = join ';', sort keys %$read_results; + my $k_t = join ';', sort keys %$read_tests; + die "File '$file' contains no results\n" unless length $k_r; + die "File '$file' contains differing test and results names\n" + unless $k_r eq $k_t; + die "File '$file' contains differing test and sort order names\n" + unless $k_o eq $k_t; + + # delete tests not matching --tests= criteria, if any + filter_tests($read_results); + filter_tests($read_tests); + + for my $perl (@$read_perls) { + my $label = $perl->[1]; + die "Error: duplicate label '$label': seen in file '$file'\n" + if exists $seen_labels{$label}; + $seen_labels{$label}++; + } - if (!$order) { - $order = [ sort keys %$tests ]; + if (!$done_read) { + ($loop_counts, $perls, $results, $tests, $order) = + ($read_loop_counts, $read_perls, $read_results, $read_tests, $read_order); + $done_read = 1; + } + else { + # merge results across multiple files + + if ( join(';', sort keys %$tests) + ne join(';', sort keys %$read_tests)) + { + my $err = "Can't merge multiple read files: " + . "they contain differing test sets.\n"; + if ($OPTS{verbose}) { + $err .= "Previous tests:\n"; + $err .= " $_\n" for sort keys %$tests; + $err .= "tests from '$file':\n"; + $err .= " $_\n" for sort keys %$read_tests; + } + else { + $err .= "Re-run with --verbose to see the differences.\n"; + } + die $err; + } + + if ("@$read_loop_counts" ne "@$loop_counts") { + die "Can't merge multiple read files: differing loop counts:\n" + . " (previous=(@$loop_counts), " + . "'$file'=(@$read_loop_counts))\n"; + } + + push @$perls, @{$read_perls}; + foreach my $test (keys %{$read_results}) { + foreach my $label (keys %{$read_results->{$test}}) { + $results->{$test}{$label}= $read_results->{$test}{$label}; + } + } } } - else { - # How many times to execute the loop for the two trials. The lower - # value is intended to do the loop enough times that branch - # prediction has taken hold; the higher loop allows us to see the - # branch misses after that - $loop_counts = [10, 20]; + die "Error: --benchfile cannot be used when --read is present\n" + if $done_read && defined $OPTS{benchfile}; - ($tests, $order) = read_tests_file($OPTS{benchfile}); - die "Error: only a single test may be specified with --bisect\n" - if defined $OPTS{bisect} and keys %$tests != 1; + # Gather list of perls to benchmark: - $perls = [ process_perls(@$perl_args) ]; + if (@$cmd_line_args) { + unless ($done_read) { + # How many times to execute the loop for the two trials. The lower + # value is intended to do the loop enough times that branch + # prediction has taken hold; the higher loop allows us to see the + # branch misses after that + $loop_counts = [10, 20]; + ($tests, $order) = + read_tests_file($OPTS{benchfile} // 't/perf/benchmarks'); + } - $results = grind_run($tests, $order, $perls, $loop_counts); + @run_perls = process_executables_list($perls, @$cmd_line_args); + push @$perls, @run_perls; } - # now that we have a list of perls, use it to process the - # 'perl' component of the --norm and --sort args + # strip @$order to just the actual tests present + $order = [ grep exists $tests->{$_}, @$order ]; + + # Now we know what perls and tests we have, do extra option processing + # and checking (done before grinding, so time isn't wasted if we die). + + if (!$perls or !@$perls) { + die "Error: nothing to do: no perls to run, no data to read.\n"; + } + if (@$perls < 2 and $OPTS{show} and !$OPTS{raw}) { + die "Error: need at least 2 perls for comparison.\n" + } + + if ($OPTS{bisect}) { + die "Error: exactly one perl executable must be specified for bisect\n" + unless @$perls == 1; + die "Error: only a single test may be specified with --bisect\n" + unless keys %$tests == 1; + } $OPTS{norm} = select_a_perl($OPTS{norm}, $perls, "--norm"); + if (defined $OPTS{'sort-perl'}) { $OPTS{'sort-perl'} = select_a_perl($OPTS{'sort-perl'}, $perls, "--sort"); @@ -634,6 +1090,17 @@ sub do_grind { $OPTS{'compact'} = select_a_perl($OPTS{'compact'}, $perls, "--compact"); } + + + # Run the benchmarks; accumulate with any previously read # results. + + if (@run_perls) { + $results = grind_run($tests, $order, \@run_perls, $loop_counts, $results); + } + + + # Handle the 3 forms of output + if (defined $OPTS{write}) { my $json = JSON::PP::encode_json({ version => $FORMAT_VERSION, @@ -645,28 +1112,19 @@ sub do_grind { }); open my $out, '>:encoding(UTF-8)', $OPTS{write} - or die " Error: can't open $OPTS{write} for writing: $!\n"; + or die "Error: can't open '$OPTS{write}' for writing: $!\n"; print $out $json or die "Error: writing to file '$OPTS{write}': $!\n"; close $out or die "Error: closing file '$OPTS{write}': $!\n"; } - else { - my ($processed, $averages) = + + if ($OPTS{show} or $OPTS{bisect}) { + # numerically process the raw data + ($processed, $averages) = grind_process($results, $perls, $loop_counts); + } - if (defined $OPTS{bisect}) { - my @r = values %$results; - die "Panic: expected exactly one test result in bisect\n" - if @r != 1; - @r = values %{$r[0]}; - die "Panic: expected exactly one perl result in bisect\n" - if @r != 1; - my $c = $r[0]{$bisect_field}; - die "Panic: no result in bisect for field '$bisect_field'\n" - unless defined $c; - exit 0 if $bisect_min <= $c and $c <= $bisect_max; - exit 1; - } - elsif (defined $OPTS{compact}) { + if ($OPTS{show}) { + if (defined $OPTS{compact}) { grind_print_compact($processed, $averages, $OPTS{compact}, $perls, $tests, $order); } @@ -674,6 +1132,24 @@ sub do_grind { grind_print($processed, $averages, $perls, $tests, $order); } } + + if ($OPTS{bisect}) { + # these panics shouldn't happen if the bisect checks above are sound + my @r = values %$results; + die "Panic: expected exactly one test result in bisect\n" + if @r != 1; + @r = values %{$r[0]}; + die "Panic: expected exactly one perl result in bisect\n" + if @r != 1; + my $c = $r[0]{$bisect_field}; + die "Panic: no result in bisect for field '$bisect_field'\n" + unless defined $c; + + print "Bisect: $bisect_field had the value $c\n"; + + exit 0 if $bisect_min <= $c and $c <= $bisect_max; + exit 1; + } } @@ -682,7 +1158,7 @@ sub do_grind { # Return a hash ref suitable for input to grind_process() sub grind_run { - my ($tests, $order, $perls, $counts) = @_; + my ($tests, $order, $perls, $counts, $results) = @_; # Build a list of all the jobs to run @@ -691,31 +1167,30 @@ sub grind_run { for my $test (grep $tests->{$_}, @$order) { # Create two test progs: one with an empty loop and one with code. - # Note that the empty loop is actually '{1;}' rather than '{}'; - # this causes the loop to have a single nextstate rather than a - # stub op, so more closely matches the active loop; e.g.: - # {1;} => nextstate; unstack - # {$x=1;} => nextstate; const; gvsv; sassign; unstack my @prog = ( - make_perl_prog($test, @{$tests->{$test}}{qw(desc setup)}, '1'), - make_perl_prog($test, @{$tests->{$test}}{qw(desc setup code)}), + make_perl_prog($test, $tests->{$test}, 0), + make_perl_prog($test, $tests->{$test}, 1), ); for my $p (@$perls) { - my ($perl, $label) = @$p; + my ($perl, $label, $env, $args) = @$p; # Run both the empty loop and the active loop # $counts->[0] and $counts->[1] times. for my $i (0,1) { for my $j (0,1) { - my $cmd = "PERL_HASH_SEED=0 " + my $envstr = ''; + if (ref $env) { + $envstr .= "$_=$env->{$_} " for sort keys %$env; + } + my $cmd = "PERL_HASH_SEED=0 $envstr" . "valgrind --tool=cachegrind --branch-sim=yes " . "--cachegrind-out-file=/dev/null " . "$OPTS{grindargs} " - . "$perl $OPTS{perlargs} - $counts->[$j] 2>&1"; + . "$perl $OPTS{perlargs} $args - $counts->[$j] 2>&1"; # for debugging and error messages - my $id = "$test/$perl " + my $id = "$test/$label " . ($i ? "active" : "empty") . "/" . ($j ? "long" : "short") . " loop"; @@ -742,7 +1217,6 @@ sub grind_run { my $running = 0; # count of executing jobs my %pids; # map pids to jobs my %fds; # map fds to jobs - my %results; my $select = IO::Select->new(); while (@jobs or $running) { @@ -843,7 +1317,7 @@ sub grind_run { . "Output\n$o"; } - $results{$j->{test}}{$j->{perl}}[$j->{active}][$j->{loopix}] + $results->{$j->{test}}{$j->{plabel}}[$j->{active}][$j->{loopix}] = parse_cachegrind($output, $j->{id}, $j->{perl}); } @@ -866,7 +1340,7 @@ sub grind_run { } } - return \%results; + return $results; } @@ -875,7 +1349,7 @@ sub grind_run { # grind_process(): process the data that has been extracted from # cachgegrind's output. # -# $res is of the form ->{benchmark_name}{perl_name}[active][count]{field_name}, +# $res is of the form ->{benchmark_name}{perl_label}[active][count]{field_name}, # where active is 0 or 1 indicating an empty or active loop, # count is 0 or 1 indicating a short or long loop. E.g. # @@ -890,8 +1364,8 @@ sub grind_run { # # return \%output, \%averages, where # -# $output{benchmark_name}{perl_name}{field_name} = N -# $averages{perl_name}{field_name} = M +# $output{benchmark_name}{perl_label}{field_name} = N +# $averages{perl_label}{field_name} = M # # where N is the raw count ($OPTS{raw}), or count_perl0/count_perlI otherwise; # M is the average raw count over all tests ($OPTS{raw}), or @@ -902,9 +1376,9 @@ sub grind_process { # Process the four results for each test/perf combo: # Convert - # $res->{benchmark_name}{perl_name}[active][count]{field_name} = n + # $res->{benchmark_name}{perl_label}[active][count]{field_name} = n # to - # $res->{benchmark_name}{perl_name}{field_name} = averaged_n + # $res->{benchmark_name}{perl_label}{field_name} = averaged_n # # $r[0][1] - $r[0][0] is the time to do ($counts->[1]-$counts->[0]) # empty loops, eliminating startup time @@ -932,7 +1406,7 @@ sub grind_process { my %counts; my %data; - my $perl_norm = $perls->[$OPTS{norm}][0]; # the name of the reference perl + my $perl_norm = $perls->[$OPTS{norm}][1]; # the label of the reference perl for my $test_name (keys %$res) { my $res1 = $res->{$test_name}; @@ -1057,7 +1531,7 @@ sub sorted_test_names { unless ($OPTS{average}) { if (defined $OPTS{'sort-field'}) { my ($field, $perlix) = @OPTS{'sort-field', 'sort-perl'}; - my $perl = $perls->[$perlix][0]; + my $perl = $perls->[$perlix][1]; @names = sort { $results->{$a}{$perl}{$field} @@ -1076,118 +1550,141 @@ sub sorted_test_names { } +# format one cell data item + +sub grind_format_cell { + my ($val, $width) = @_; + my $s; + if (!defined $val) { + return sprintf "%*s", $width, '-'; + } + elsif (abs($val) >= 1_000_000) { + # avoid displaying very large numbers (which might be the + # result of e.g. 1 / 0.000001) + return sprintf "%*s", $width, 'Inf'; + } + elsif ($OPTS{raw}) { + return sprintf "%*.1f", $width, $val; + } + else { + return sprintf "%*.2f", $width, $val * 100; + } +} + # grind_print(): display the tabulated results of all the cachegrinds. # # Arguments are of the form: -# $results->{benchmark_name}{perl_name}{field_name} = N -# $averages->{perl_name}{field_name} = M +# $results->{benchmark_name}{perl_label}{field_name} = N +# $averages->{perl_label}{field_name} = M # $perls = [ [ perl-exe, perl-label ], ... ] # $tests->{test_name}{desc => ..., ...} +# $order = [ 'foo::bar1', ... ] # order to display tests sub grind_print { my ($results, $averages, $perls, $tests, $order) = @_; my @perl_names = map $_->[0], @$perls; + my @perl_labels = map $_->[1], @$perls; my %perl_labels; $perl_labels{$_->[0]} = $_->[1] for @$perls; - my $field_label_width = 6; - # Calculate the width to display for each column. - my $min_width = $OPTS{raw} ? 8 : 6; - my @widths = map { length($_) < $min_width ? $min_width : length($_) } - @perl_labels{@perl_names}; - # Print standard header. grind_blurb($perls); my @test_names = sorted_test_names($results, $order, $perls); + my @fields = qw(Ir Dr Dw COND IND + COND_m IND_m + Ir_m1 Dr_m1 Dw_m1 + Ir_mm Dr_mm Dw_mm + ); + + if ($OPTS{fields}) { + @fields = grep exists $OPTS{fields}{$_}, @fields; + } + # If only a single field is to be displayed, use a more compact # format with only a single line of output per test. - my $one_field = defined $OPTS{fields} && keys(%{$OPTS{fields}}) == 1; + my $one_field = @fields == 1; - if ($one_field) { - print "Results for field " . (keys(%{$OPTS{fields}}))[0] . ".\n"; + # The width of column 0: this is either field names, or for + # $one_field, test names - # The first column will now contain test names rather than - # field names; Calculate the max width. + my $width0 = 0; + for ($one_field ? @test_names : @fields) { + $width0 = length if length > $width0; + } - $field_label_width = 0; - for (@test_names) { - $field_label_width = length if length > $field_label_width; - } + # Calculate the widths of the data columns - # Print the perl executables header. + my @widths = map length, @perl_labels; - print "\n"; - for my $i (0,1) { - print " " x $field_label_width; - for (0..$#widths) { - printf " %*s", $widths[$_], - $i ? ('-' x$widths[$_]) : $perl_labels{$perl_names[$_]}; + for my $test (@test_names) { + my $res = ($test eq 'AVERAGE') ? $averages : $results->{$test}; + for my $field (@fields) { + for my $i (0..$#widths) { + my $l = length grind_format_cell( + $res->{$perl_labels[$i]}{$field}, 1); + $widths[$i] = $l if $l > $widths[$i]; } - print "\n"; } } - # Dump the results for each test. + # Print the results for each test - for my $test_name (@test_names) { + for my $test (0..$#test_names) { + my $test_name = $test_names[$test]; my $doing_ave = ($test_name eq 'AVERAGE'); - my $res1 = $doing_ave ? $averages : $results->{$test_name}; + my $res = $doing_ave ? $averages : $results->{$test_name}; + + # print per-test header - unless ($one_field) { + if ($one_field) { + print "\nResults for field $fields[0]\n\n" if $test == 0; + } + else { print "\n$test_name"; print "\n$tests->{$test_name}{desc}" unless $doing_ave; print "\n\n"; + } - # Print the perl executables header. + # Print the perl executable names header. + + if (!$one_field || $test == 0) { for my $i (0,1) { - print " " x $field_label_width; + print " " x $width0; for (0..$#widths) { printf " %*s", $widths[$_], - $i ? ('-' x$widths[$_]) : $perl_labels{$perl_names[$_]}; + $i ? ('-' x$widths[$_]) : $perl_labels[$_]; } print "\n"; } } - for my $field (qw(Ir Dr Dw COND IND - N - COND_m IND_m - N - Ir_m1 Dr_m1 Dw_m1 - N - Ir_mm Dr_mm Dw_mm - )) - { - next if $OPTS{fields} and ! exists $OPTS{fields}{$field}; + my $field_suffix = ''; - if ($field eq 'N') { - print "\n"; - next; - } + # print a line of data + for my $field (@fields) { if ($one_field) { - printf "%-*s", $field_label_width, $test_name; + printf "%-*s", $width0, $test_name; } else { - printf "%*s", $field_label_width, $field; + # If there are enough fields, print a blank line + # between groups of fields that have the same suffix + if (@fields > 4) { + my $s = ''; + $s = $1 if $field =~ /(_\w+)$/; + print "\n" if $s ne $field_suffix; + $field_suffix = $s; + } + printf "%*s", $width0, $field; } for my $i (0..$#widths) { - my $res2 = $res1->{$perl_names[$i]}; - my $p = $res2->{$field}; - if (!defined $p) { - printf " %*s", $widths[$i], '-'; - } - elsif ($OPTS{raw}) { - printf " %*.1f", $widths[$i], $p; - } - else { - printf " %*.2f", $widths[$i], $p * 100; - } + print " ", grind_format_cell($res->{$perl_labels[$i]}{$field}, + $widths[$i]); } print "\n"; } @@ -1201,18 +1698,15 @@ sub grind_print { # which perl to display. # # Arguments are of the form: -# $results->{benchmark_name}{perl_name}{field_name} = N -# $averages->{perl_name}{field_name} = M +# $results->{benchmark_name}{perl_label}{field_name} = N +# $averages->{perl_label}{field_name} = M # $perls = [ [ perl-exe, perl-label ], ... ] # $tests->{test_name}{desc => ..., ...} +# $order = [ 'foo::bar1', ... ] # order to display tests sub grind_print_compact { my ($results, $averages, $which_perl, $perls, $tests, $order) = @_; - - # the width to display for each column. - my $width = $OPTS{raw} ? 7 : 6; - # Print standard header. grind_blurb($perls); @@ -1232,31 +1726,48 @@ sub grind_print_compact { @fields = grep exists $OPTS{fields}{$_}, @fields; } - printf " %*s", $width, $_ for @fields; + # calculate the the max width of the test names + + my $name_width = 0; + for (@test_names) { + $name_width = length if length > $name_width; + } + + # Calculate the widths of the data columns + + my @widths = map length, @fields; + + for my $test (@test_names) { + my $res = ($test eq 'AVERAGE') ? $averages : $results->{$test}; + $res = $res->{$perls->[$which_perl][1]}; + for my $i (0..$#fields) { + my $l = length grind_format_cell($res->{$fields[$i]}, 1); + $widths[$i] = $l if $l > $widths[$i]; + } + } + + # Print header + + printf " %*s", $widths[$_], $fields[$_] for 0..$#fields; print "\n"; - printf " %*s", $width, '------' for @fields; + printf " %*s", $_, ('-' x $_) for @widths; print "\n"; + # Print the results for each test + for my $test_name (@test_names) { my $doing_ave = ($test_name eq 'AVERAGE'); my $res = $doing_ave ? $averages : $results->{$test_name}; - $res = $res->{$perls->[$which_perl][0]}; - - for my $field (@fields) { - my $p = $res->{$field}; - if (!defined $p) { - printf " %*s", $width, '-'; - } - elsif ($OPTS{raw}) { - printf " %*.1f", $width, $p; - } - else { - printf " %*.2f", $width, $p * 100; - } - + $res = $res->{$perls->[$which_perl][1]}; + my $desc = $doing_ave + ? $test_name + : sprintf "%-*s %s", $name_width, $test_name, + $tests->{$test_name}{desc}; + + for my $i (0..$#fields) { + print " ", grind_format_cell($res->{$fields[$i]}, $widths[$i]); } - - print " $test_name\n"; + print " $desc\n"; } } @@ -1315,8 +1826,10 @@ EOF }, ); - for ('t', '.') { - last if require "$_/test.pl"; + for ('./t', '.') { + my $t = "$_/test.pl"; + next unless -f $t; + require $t; } plan(@tests / 3 * keys %VALID_FIELDS); diff --git a/gnu/usr.bin/perl/Porting/bisect-runner.pl b/gnu/usr.bin/perl/Porting/bisect-runner.pl index 5c228b8f366..00319211c97 100644 --- a/gnu/usr.bin/perl/Porting/bisect-runner.pl +++ b/gnu/usr.bin/perl/Porting/bisect-runner.pl @@ -67,6 +67,7 @@ unless(GetOptions(\%options, 'all-fixups', 'early-fixup=s@', 'late-fixup=s@', 'valgrind', 'check-args', 'check-shebang!', 'usage|help|?', 'gold=s', 'module=s', 'with-module=s', 'cpan-config-dir=s', + 'test-module=s', 'no-module-tests', 'A=s@', 'D=s@' => sub { my (undef, $val) = @_; @@ -127,9 +128,23 @@ if (defined $target && $target =~ /\.t\z/) { } pod2usage(exitval => 255, verbose => 1) - unless @ARGV || $match || $options{'test-build'} || defined $options{'one-liner'} || defined $options{module}; + unless @ARGV || $match || $options{'test-build'} + || defined $options{'one-liner'} || defined $options{module} + || defined $options{'test-module'}; pod2usage(exitval => 255, verbose => 1) if !$options{'one-liner'} && ($options{l} || $options{w}); +if ($options{'no-module-tests'} && $options{module}) { + print STDERR "--module and --no-module-tests are exclusive.\n\n"; + pod2usage(exitval => 255, verbose => 1) +} +if ($options{'no-module-tests'} && $options{'test-module'}) { + print STDERR "--test-module and --no-module-tests are exclusive.\n\n"; + pod2usage(exitval => 255, verbose => 1) +} +if ($options{module} && $options{'test-module'}) { + print STDERR "--module and --test-module are exclusive.\n\n"; + pod2usage(exitval => 255, verbose => 1) +} check_shebang($ARGV[0]) if $options{'check-shebang'} && @ARGV && !$options{match}; @@ -598,6 +613,33 @@ For example: =item * +--no-module-tests + +Use in conjunction with I<--with-module> to install the modules without +running their tests. This can be a big time saver. + +For example: + + .../Porting/bisect.pl --with-module=Moose --no-module-tests \ + -e 'use Moose; ...' + +=item * + +--test-module + +This is like I<--module>, but just runs the module's tests, instead of +installing it. + +WARNING: This is a somewhat experimental option, known to work on recent +CPAN shell versions. If you use this option and strange things happen, +please report them. + +Usually, you can just use I<--module>, but if you are getting inconsistent +installation failures and you just want to see when the tests started +failing, you might find this option useful. + +=item * + --cpan-config-dir /home/blah/custom If defined, this will cause L<CPAN> to look for F<CPAN/MyConfig.pm> inside of @@ -1249,7 +1291,7 @@ sub match_and_exit { while (<$fh>) { if ($_ =~ $re) { ++$matches; - if (/[^[:^cntrl:]\h\v]/a) { # Matches non-spacing non-C1 controls + if (/[^[:^cntrl:]\h\v]/) { # Matches non-spacing non-C1 controls print "Binary file $file matches\n"; } else { $_ .= "\n" unless /\n\z/; @@ -1381,7 +1423,8 @@ push @ARGS, map {"-A$_"} @{$options{A}}; my $prefix; # Testing a module? We need to install perl/cpan modules to a temp dir -if ($options{module} || $options{'with-module'}) { +if ($options{module} || $options{'with-module'} || $options{'test-module'}) +{ $prefix = tempdir(CLEANUP => 1); push @ARGS, "-Dprefix=$prefix"; @@ -1403,7 +1446,15 @@ if (-f 'config.sh') { # Emulate noextensions if Configure doesn't support it. fake_noextensions() if $major < 10 && $defines{noextensions}; - system_or_die('./Configure -S'); + if (system './Configure -S') { + # See commit v5.23.5-89-g7a4fcb3. Configure may try to run + # ./optdef.sh instead of UU/optdef.sh. Copying the file is + # easier than patching Configure (which mentions optdef.sh multi- + # ple times). + require File::Copy; + File::Copy::copy("UU/optdef.sh", "./optdef.sh"); + system_or_die('./Configure -S'); + } } if ($target =~ /config\.s?h/) { @@ -1463,12 +1514,40 @@ if ($target ne 'miniperl') { system "$options{make} $j $real_target </dev/null"; } -# Testing a cpan module? See if it will install -if ($options{module} || $options{'with-module'}) { +my $expected_file_found = $expected_file =~ /perl$/ + ? -x $expected_file : -r $expected_file; + +if ($expected_file_found && $expected_file eq 't/perl') { + # Check that it isn't actually pointing to ../miniperl, which will happen + # if the sanity check ./miniperl -Ilib -MExporter -e '<?>' fails, and + # Makefile tries to run minitest. + + # Of course, helpfully sometimes it's called ../perl, other times .././perl + # and who knows if that list is exhaustive... + my ($dev0, $ino0) = stat 't/perl'; + my ($dev1, $ino1) = stat 'perl'; + unless (defined $dev0 && defined $dev1 && $dev0 == $dev1 && $ino0 == $ino1) { + undef $expected_file_found; + my $link = readlink $expected_file; + warn "'t/perl' => '$link', not 'perl'"; + die_255("Could not realink t/perl: $!") unless defined $link; + } +} + +my $just_testing = 0; + +if ($options{'test-build'}) { + report_and_exit($expected_file_found, 'could build', 'could not build', + $real_target); +} elsif (!$expected_file_found) { + skip("could not build $real_target"); +} elsif (my $mod_opt = $options{module} || $options{'with-module'} + || ($just_testing++, $options{'test-module'})) { + # Testing a cpan module? See if it will install # First we need to install this perl somewhere system_or_die('./installperl'); - my @m = split(',', $options{module} || $options{'with-module'}); + my @m = split(',', $mod_opt); my $bdir = File::Temp::tempdir( CLEANUP => 1, @@ -1501,10 +1580,18 @@ if ($options{module} || $options{'with-module'}) { s/-/::/g if /-/ and !m|/|; } my $install = join ",", map { "'$_'" } @m; + if ($just_testing) { + $install = "test($install)"; + } elsif ($options{'no-module-tests'}) { + $install = "notest('install',$install)"; + } else { + $install = "install($install)"; + } my $last = $m[-1]; - my $shellcmd = "install($install); die unless CPAN::Shell->expand(Module => '$last')->uptodate;"; + my $status_method = $just_testing ? 'test' : 'uptodate'; + my $shellcmd = "$install; die unless CPAN::Shell->expand(Module => '$last')->$status_method;"; - if ($options{module}) { + if ($options{module} || $options{'test-module'}) { run_report_and_exit(@cpanshell, $shellcmd); } else { my $ret = run_with_options({setprgp => $options{setpgrp}, @@ -1519,33 +1606,6 @@ if ($options{module} || $options{'with-module'}) { } } -my $expected_file_found = $expected_file =~ /perl$/ - ? -x $expected_file : -r $expected_file; - -if ($expected_file_found && $expected_file eq 't/perl') { - # Check that it isn't actually pointing to ../miniperl, which will happen - # if the sanity check ./miniperl -Ilib -MExporter -e '<?>' fails, and - # Makefile tries to run minitest. - - # Of course, helpfully sometimes it's called ../perl, other times .././perl - # and who knows if that list is exhaustive... - my ($dev0, $ino0) = stat 't/perl'; - my ($dev1, $ino1) = stat 'perl'; - unless (defined $dev0 && defined $dev1 && $dev0 == $dev1 && $ino0 == $ino1) { - undef $expected_file_found; - my $link = readlink $expected_file; - warn "'t/perl' => '$link', not 'perl'"; - die_255("Could not realink t/perl: $!") unless defined $link; - } -} - -if ($options{'test-build'}) { - report_and_exit($expected_file_found, 'could build', 'could not build', - $real_target); -} elsif (!$expected_file_found) { - skip("could not build $real_target"); -} - match_and_exit($real_target, @ARGV) if $match; if (defined $options{'one-liner'}) { diff --git a/gnu/usr.bin/perl/Porting/bisect.pl b/gnu/usr.bin/perl/Porting/bisect.pl index 68d68d135b8..82b9ae7cdeb 100644 --- a/gnu/usr.bin/perl/Porting/bisect.pl +++ b/gnu/usr.bin/perl/Porting/bisect.pl @@ -61,8 +61,10 @@ if (!defined $jobs && while (<$fh>) { ++$cpus if /^processor\s+:\s+\d+$/; } - } elsif (-x '/sbin/sysctl') { - $cpus = $1 if `/sbin/sysctl hw.ncpu` =~ /^hw\.ncpu: (\d+)$/; + } elsif (-x '/sbin/sysctl' || -x '/usr/sbin/sysctl') { + my $sysctl = '/sbin/sysctl'; + $sysctl = "/usr$sysctl" unless -x $sysctl; + $cpus = $1 if `$sysctl hw.ncpu` =~ /^hw\.ncpu: (\d+)$/; } elsif (-x '/usr/bin/getconf') { $cpus = $1 if `/usr/bin/getconf _NPROCESSORS_ONLN` =~ /^(\d+)$/; } diff --git a/gnu/usr.bin/perl/Porting/checkAUTHORS.pl b/gnu/usr.bin/perl/Porting/checkAUTHORS.pl index 655edc4ea6b..800bbeb2ce1 100755 --- a/gnu/usr.bin/perl/Porting/checkAUTHORS.pl +++ b/gnu/usr.bin/perl/Porting/checkAUTHORS.pl @@ -190,6 +190,9 @@ sub generate_known_author_map { # Randy W. Sims "ml-perl\100thepierianspring.org", + # Jason Hord + "pravus\100cpan.org", + # perl internal addresses "perl5-porters\100africa.nicoh.com", "perlbug\100perl.org",, @@ -215,7 +218,7 @@ sub read_authors_files { return unless (@authors); my (%count, %raw); foreach my $filename (@authors) { - open FH, "<$filename" or die "Can't open $filename: $!"; + open FH, '<', $filename or die "Can't open $filename: $!"; binmode FH, ':encoding(UTF-8)'; while (<FH>) { next if /^\#/; @@ -226,7 +229,7 @@ sub read_authors_files { $name =~ s/\s*\z//; $raw{$email} = $name; $count{$email}++; - } elsif (/^([-A-Za-z0-9 .\'À-ÖØöø-ÿ]+)[\t\n]/) { + } elsif (/^([- .'\w]+)[\t\n]/) { # Name only $untraced{$1}++; @@ -593,11 +596,13 @@ damian\100conway.org damian\100cs.monash.edu.au dan\100sidhe.org sugalsd\100lbcc.cc.or.us + sugalskd\100osshe.edu daniel\100bitpusher.com daniel\100biz.bitpusher.com +dave\100mag-sol.com dave\100dave.org.uk david.dyck\100fluke.com dcd\100tc.fluke.com david\100justatheory.com david\100wheeler.net + david\100kineticode.com + david\100wheeler.com + david\100wheeler.net +whatever\100davidnicol.com davidnicol\100gmail.com dennis\100booking.com dennis\100camel.ams6.corp.booking.com + dennis.kaarsemaker\100booking.com + dennis\100kaarsemaker.net @@ -625,6 +630,7 @@ fugazi\100zyx.net larrysh\100cpan.org gbacon\100itsc.uah.edu gbacon\100adtrn-srv4.adtran.com gerberb\100zenez.com root\100devsys0.zenez.com gfuji\100cpan.org g.psy.va\100gmail.com +genesullivan50\100yahoo.com gsullivan\100cpan.org gerard\100ggoossen.net gerard\100tty.nl gibreel\100pobox.com stephen.zander\100interlock.mckesson.com + srz\100loopback @@ -660,6 +666,7 @@ jasons\100cs.unm.edu jasons\100sandy-home.arc.unm.edu jbuehler\100hekimian.com jhpb\100hekimian.com jcromie\100100divsol.com jcromie\100cpan.org + jim.cromie\100gmail.com +jd\100cpanel.net lightsey\100debian.org jdhedden\100cpan.org jerry\100hedden.us + jdhedden\1001979.usna.com + jdhedden\100gmail.com @@ -689,6 +696,7 @@ jpeacock\100messagesystems.com john.peacock\100havurah-software.org + jpeacock\100jpeacock-hp.doesntexist.org + jpeacock\100cpan.org + jpeacock\100rowman.com +james.schneider\100db.com jschneid\100netilla.com jpl.jpl\100gmail.com jpl\100research.att.com jql\100accessone.com jql\100jql.accessone.com jsm28\100hermes.cam.ac.uk jsm28\100cam.ac.uk @@ -731,6 +739,7 @@ marcel\100codewerk.com gr\100univie.ac.at + hanekomu\100gmail.com marcgreen\100cpan.org marcgreen\100wpi.edu markleightonfisher\100gmail.com fisherm\100tce.com ++ mark-fisher\100mindspring.com mark.p.lutz\100boeing.com tecmpl1\100triton.ca.boeing.com marnix\100gmail.com pttesac!marnix!vanam marty+p5p\100kasei.com marty\100martian.org @@ -831,6 +840,7 @@ module@renee-baecker.de renee.baecker\100smart-websolutions.de + otrs\100ubuntu.(none) + perl\100renee-baecker.de + reb\100perl-services.de ++ info\100perl-services.de richard.foley\100rfi.net richard.foley\100t-online.de + richard.foley\100ubs.com + richard.foley\100ubsw.com @@ -874,6 +884,7 @@ schwern\100pobox.com schwern\100gmail.com + schwern\100athens.arena-i.com + schwern\100blackrider.aocn.com + schwern\100ool-18b93024.dyn.optonline.net +scop\100cs132170.pp.htv.fi ville.skytta\100iki.fi scotth\100sgi.com author scotth\100sgi.com 842220273 +0000 + schotth\100sgi.com schwab\100suse.de schwab\100issan.informatik.uni-dortmund.de diff --git a/gnu/usr.bin/perl/Porting/checkcfguse.pl b/gnu/usr.bin/perl/Porting/checkcfguse.pl index af3dd12cb1e..986d4f90411 100755 --- a/gnu/usr.bin/perl/Porting/checkcfguse.pl +++ b/gnu/usr.bin/perl/Porting/checkcfguse.pl @@ -47,7 +47,7 @@ my @PAT = print STDERR "$0: Looking for symbols...\n"; for my $pat (@PAT) { for my $fn (map { glob($_) } @{ $pat->[0] }) { - if (open(my $fh, $fn)) { + if (open(my $fh, '<', $fn)) { while (<$fh>) { for my $p (@$pat) { for my $sym (/$p/g) { @@ -70,7 +70,7 @@ delete $SYM{'const'}; my $SYM = join("|", sort { length($b) <=> length($a) || $a cmp $b } keys %SYM); -open(my $mani, "MANIFEST") or die "$0: Failed to open MANIFEST\n"; +open(my $mani, '<', "MANIFEST") or die "$0: Failed to open MANIFEST\n"; my %found; while (<$mani>) { @@ -80,7 +80,7 @@ while (<$mani>) { # from metaconfig generated files that refer to # the config symbols, and from pods. next if $fn =~ m{^(?:config_h.SH|Configure|configure\.com|Porting/(?:config|Glossary)|(?:NetWare|plan9|win32)/(?:config|(?:GNU)?[Mm]akefile)|uconfig)|\.pod$}; - open my $fh, $fn or die qq[$0: Failed to open $fn: $!]; + open my $fh, '<', $fn or die qq[$0: Failed to open $fn: $!]; while (<$fh>) { while (/\b($SYM)\b/go) { $found{$1}{$fn}++; diff --git a/gnu/usr.bin/perl/Porting/checkcfgvar.pl b/gnu/usr.bin/perl/Porting/checkcfgvar.pl index 4dc93df85ed..ce72fe56af3 100755 --- a/gnu/usr.bin/perl/Porting/checkcfgvar.pl +++ b/gnu/usr.bin/perl/Porting/checkcfgvar.pl @@ -36,7 +36,7 @@ GetOptions ( $default and $default =~ s/^'(.*)'$/$1/; # Will be quoted on generation -require 'regen/regen_lib.pl' if $opt_r; +require './regen/regen_lib.pl' if $opt_r; my $MASTER_CFG = "config_h.SH"; # Inclusive bounds on the main part of the file, $section == 1 below: @@ -48,6 +48,7 @@ my @CFG = ( # We can't base our check on $], because that's the version of the # perl that we are running, not the version of the source tree. "Cross/config.sh-arm-linux", + "Cross/config.sh-arm-linux-n770", "NetWare/config.wc", "symbian/config.sh", "uconfig.sh", diff --git a/gnu/usr.bin/perl/Porting/cmpVERSION.pl b/gnu/usr.bin/perl/Porting/cmpVERSION.pl index 1be598ed5f6..40413500910 100644 --- a/gnu/usr.bin/perl/Porting/cmpVERSION.pl +++ b/gnu/usr.bin/perl/Porting/cmpVERSION.pl @@ -84,6 +84,7 @@ my %skip; 'cpan/ExtUtils-Install/t/lib/MakeMaker/Test/Setup/BFD.pm', # just a test module 'cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Setup/BFD.pm', # just a test module 'cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Setup/XS.pm', # just a test module + 'cpan/IO-Compress/lib/File/GlobMapper.pm', # upstream needs to supply $VERSION 'cpan/Math-BigInt/t/Math/BigFloat/Subclass.pm', # just a test module 'cpan/Math-BigInt/t/Math/BigInt/BareCalc.pm', # just a test module 'cpan/Math-BigInt/t/Math/BigInt/Scalar.pm', # just a test module @@ -95,6 +96,8 @@ my %skip; 'cpan/version/t/coretests.pm', # just a test module '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/Utils.pm', 'lib/Carp/Heavy.pm', 'lib/Config.pm', # no version number but contents will vary 'win32/FindExt.pm', @@ -169,6 +172,7 @@ unless (%module_diffs) { } printf "1..%d\n" => scalar keys %module_diffs if $tap; +print "#\n# Comparing against $tag_to_compare ....\n#\n" if $tap; my $count; my $diff_cmd = "git --no-pager diff $tag_to_compare "; @@ -194,9 +198,14 @@ foreach my $pm_file (sort keys %module_diffs) { print "ok $count - $pm_file\n" if $tap; } else { if ($tap) { + print "#\n# " . '-' x 75 . "\n" + . "# Version number ($pm_version) unchanged since" + . " $tag_to_compare, but contents have changed:\n#\n"; foreach (sort @{$module_diffs{$pm_file}}) { print "# $_" for `$diff_cmd $q$_$q`; } + print "# " . '-' x 75 . "\n"; + if (exists $skip_versions{$pm_file} and grep $pm_version eq $_, @{$skip_versions{$pm_file}}) { print "ok $count - SKIP $pm_file version $pm_version\n"; diff --git a/gnu/usr.bin/perl/Porting/config.sh b/gnu/usr.bin/perl/Porting/config.sh index 38c2ecb0364..4ad30bf288b 100644 --- a/gnu/usr.bin/perl/Porting/config.sh +++ b/gnu/usr.bin/perl/Porting/config.sh @@ -8,17 +8,23 @@ # Package name : perl5 # Source directory : . -# Configuration time: Sat Apr 23 12:25:12 BST 2016 -# Configured by : aaron -# Target system : darwin daybreak 13.4.0 darwin kernel version 13.4.0: mon jan 11 18:17:34 pst 2016; root:xnu-2422.115.15~1release_x86_64 x86_64 i386 macbookpro11,3 darwin +# Configuration time: Fri Dec 22 16:17:32 GMT 2017 +# Configured by : yourname +# Target system : linux barba.rous.org 3.16.0-4-amd64 #1 smp debian 3.16.43-2+deb8u2 (2017-06-26) x86_64 gnulinux : Configure command line arguments. -config_arg0='Configure' -config_args='-des -Dusedevel -Dprefix=/tmp/mblead' -config_argc=3 -config_arg1='-des' -config_arg2='-Dusedevel' -config_arg3='-Dprefix=/tmp/mblead' +config_arg0='./Configure' +config_args='-Dprefix=/opt/perl -Dcf_by=yourname -Dcf_email=yourname@yourhost.yourplace.com -Dperladmin=yourname@yourhost.yourplace.com -Dmydomain=.yourplace.com -Dmyhostname=yourhost -Duse64bitint -Dusedevel -dE' +config_argc=9 +config_arg1='-Dprefix=/opt/perl' +config_arg2='-Dcf_by=yourname' +config_arg3='-Dcf_email=yourname@yourhost.yourplace.com' +config_arg4='-Dperladmin=yourname@yourhost.yourplace.com' +config_arg5='-Dmydomain=.yourplace.com' +config_arg6='-Dmyhostname=yourhost' +config_arg7='-Duse64bitint' +config_arg8='-Dusedevel' +config_arg9='-dE' Author='' Date='' @@ -36,42 +42,41 @@ _o='.o' afs='false' afsroot='/afs' alignbytes='8' -ansi2knr='' -aphostname='/bin/hostname' +aphostname='' api_revision='5' api_subversion='0' -api_version='24' -api_versionstring='5.24.0' +api_version='28' +api_versionstring='5.28.0' ar='ar' -archlib='/tmp/mblead/lib/perl5/5.24.3/darwin-2level' -archlibexp='/tmp/mblead/lib/perl5/5.24.3/darwin-2level' +archlib='/opt/perl/lib/5.28.1/x86_64-linux' +archlibexp='/opt/perl/lib/5.28.1/x86_64-linux' archname64='' -archname='darwin-2level' +archname='x86_64-linux' archobjs='' asctime_r_proto='0' awk='awk' baserev='5.0' bash='' -bin='/tmp/mblead/bin' -bin_ELF='undef' -binexp='/tmp/mblead/bin' +bin='/opt/perl/bin' +bin_ELF='define' +binexp='/opt/perl/bin' bison='bison' byacc='byacc' -byteorder='ffff' +byteorder='12345678' c='' castflags='0' cat='cat' cc='cc' -cccdlflags=' ' -ccdlflags=' ' -ccflags='-fno-common -DPERL_DARWIN -mmacosx-version-min=10.9 -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -I/opt/local/include -DPERL_USE_SAFE_PUTENV' -ccflags_uselargefiles='' +cccdlflags='-fPIC' +ccdlflags='-Wl,-E' +ccflags='-fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2' +ccflags_uselargefiles='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64' ccname='gcc' ccsymbols='' ccversion='' -cf_by='aaron' -cf_email='aaron@daybreak.nonet' -cf_time='Sat Apr 23 12:25:12 BST 2016' +cf_by='yourname' +cf_email='yourname@yourhost.yourplace.com' +cf_time='Fri Dec 22 16:17:32 GMT 2017' charbits='8' charsize='1' chgrp='' @@ -86,18 +91,18 @@ cpio='' cpp='cpp' cpp_stuff='42' cppccsymbols='' -cppflags='-fno-common -DPERL_DARWIN -mmacosx-version-min=10.9 -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -I/opt/local/include' +cppflags='-fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include' cpplast='-' cppminus='-' cpprun='cc -E' cppstdin='cc -E' -cppsymbols='_FORTIFY_SOURCE=2 _LP64=1 __BYTE_ORDER__=1234 __GNUC_MINOR__=2 __GNUC__=4 __LITTLE_ENDIAN__=1 __LP64__=1 __MACH__=1 __PIC__=2 __STDC__=1 __amd64=1 __amd64__=1 __clang__=1 __pic__=2 __x86_64=1 __x86_64__=1' +cppsymbols='_FILE_OFFSET_BITS=64 _LARGEFILE_SOURCE=1 _LP64=1 _POSIX_C_SOURCE=200809L _POSIX_SOURCE=1 _STDC_PREDEF_H=1 __ATOMIC_ACQUIRE=2 __ATOMIC_ACQ_REL=4 __ATOMIC_CONSUME=1 __ATOMIC_HLE_ACQUIRE=65536 __ATOMIC_HLE_RELEASE=131072 __ATOMIC_RELAXED=0 __ATOMIC_RELEASE=3 __ATOMIC_SEQ_CST=5 __BIGGEST_ALIGNMENT__=16 __BYTE_ORDER__=1234 __CHAR16_TYPE__=short\ unsigned\ int __CHAR32_TYPE__=unsigned\ int __CHAR_BIT__=8 __DBL_DECIMAL_DIG__=17 __DBL_DENORM_MIN__=((double)4.94065645841246544177e-324L) __DBL_DIG__=15 __DBL_EPSILON__=((double)2.22044604925031308085e-16L) __DBL_HAS_DENORM__=1 __DBL_HAS_INFINITY__=1 __DBL_HAS_QUIET_NAN__=1 __DBL_MANT_DIG__=53 __DBL_MAX_10_EXP__=308 __DBL_MAX_EXP__=1024 __DBL_MAX__=((double)1.79769313486231570815e+308L) __DBL_MIN_10_EXP__=(-307) __DBL_MIN_EXP__=(-1021) __DBL_MIN__=((double)2.22507385850720138309e-308L) __DEC128_EPSILON__=1E-33DL __DEC128_MANT_DIG__=34 __DEC128_MAX_EXP__=6145 __DEC128_MAX__=9.999999999999999999999999999999999E6144DL __DEC128_MIN_EXP__=(-6142) __DEC128_MIN__=1E-6143DL __DEC128_SUBNORMAL_MIN__=0.000000000000000000000000000000001E-6143DL __DEC32_EPSILON__=1E-6DF __DEC32_MANT_DIG__=7 __DEC32_MAX_EXP__=97 __DEC32_MAX__=9.999999E96DF __DEC32_MIN_EXP__=(-94) __DEC32_MIN__=1E-95DF __DEC32_SUBNORMAL_MIN__=0.000001E-95DF __DEC64_EPSILON__=1E-15DD __DEC64_MANT_DIG__=16 __DEC64_MAX_EXP__=385 __DEC64_MAX__=9.999999999999999E384DD __DEC64_MIN_EXP__=(-382) __DEC64_MIN__=1E-383DD __DEC64_SUBNORMAL_MIN__=0.000000000000001E-383DD __DECIMAL_BID_FORMAT__=1 __DECIMAL_DIG__=21 __DEC_EVAL_METHOD__=2 __ELF__=1 __FINITE_MATH_ONLY__=0 __FLOAT_WORD_ORDER__=1234 __FLT_DECIMAL_DIG__=9 __FLT_DENORM_MIN__=1.40129846432481707092e-45F __FLT_DIG__=6 __FLT_EPSILON__=1.19209289550781250000e-7F __FLT_EVAL_METHOD__=0 __FLT_HAS_DENORM__=1 __FLT_HAS_INFINITY__=1 __FLT_HAS_QUIET_NAN__=1 __FLT_MANT_DIG__=24 __FLT_MAX_10_EXP__=38 __FLT_MAX_EXP__=128 __FLT_MAX__=3.40282346638528859812e+38F __FLT_MIN_10_EXP__=(-37) __FLT_MIN_EXP__=(-125) __FLT_MIN__=1.17549435082228750797e-38F __FLT_RADIX__=2 __FXSR__=1 __GCC_ATOMIC_BOOL_LOCK_FREE=2 __GCC_ATOMIC_CHAR16_T_LOCK_FREE=2 __GCC_ATOMIC_CHAR32_T_LOCK_FREE=2 __GCC_ATOMIC_CHAR_LOCK_FREE=2 __GCC_ATOMIC_INT_LOCK_FREE=2 __GCC_ATOMIC_LLONG_LOCK_FREE=2 __GCC_ATOMIC_LONG_LOCK_FREE=2 __GCC_ATOMIC_POINTER_LOCK_FREE=2 __GCC_ATOMIC_SHORT_LOCK_FREE=2 __GCC_ATOMIC_TEST_AND_SET_TRUEVAL=1 __GCC_ATOMIC_WCHAR_T_LOCK_FREE=2 __GCC_HAVE_DWARF2_CFI_ASM=1 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1=1 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2=1 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4=1 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8=1 __GCC_IEC_559=2 __GCC_IEC_559_COMPLEX=2 __GLIBC_MINOR__=19 __GLIBC__=2 __GNUC_GNU_INLINE__=1 __GNUC_MINOR__=9 __GNUC_PATCHLEVEL__=2 __GNUC__=4 __GNU_LIBRARY__=6 __GXX_ABI_VERSION=1002 __INT16_C=__INT16_C __INT16_MAX__=32767 __INT16_TYPE__=short\ int __INT32_C=__INT32_C __INT32_MAX__=2147483647 __INT32_TYPE__=int __INT64_C=__INT64_C __INT64_MAX__=9223372036854775807L __INT64_TYPE__=long\ int __INT8_C=__INT8_C __INT8_MAX__=127 __INT8_TYPE__=signed\ char __INTMAX_C=__INTMAX_C __INTMAX_MAX__=9223372036854775807L __INTMAX_TYPE__=long\ int __INTPTR_MAX__=9223372036854775807L __INTPTR_TYPE__=long\ int __INT_FAST16_MAX__=9223372036854775807L __INT_FAST16_TYPE__=long\ int __INT_FAST32_MAX__=9223372036854775807L __INT_FAST32_TYPE__=long\ int __INT_FAST64_MAX__=9223372036854775807L __INT_FAST64_TYPE__=long\ int __INT_FAST8_MAX__=127 __INT_FAST8_TYPE__=signed\ char __INT_LEAST16_MAX__=32767 __INT_LEAST16_TYPE__=short\ int __INT_LEAST32_MAX__=2147483647 __INT_LEAST32_TYPE__=int __INT_LEAST64_MAX__=9223372036854775807L __INT_LEAST64_TYPE__=long\ int __INT_LEAST8_MAX__=127 __INT_LEAST8_TYPE__=signed\ char __INT_MAX__=2147483647 __LDBL_DENORM_MIN__=3.64519953188247460253e-4951L __LDBL_DIG__=18 __LDBL_EPSILON__=1.08420217248550443401e-19L __LDBL_HAS_DENORM__=1 __LDBL_HAS_INFINITY__=1 __LDBL_HAS_QUIET_NAN__=1 __LDBL_MANT_DIG__=64 __LDBL_MAX_10_EXP__=4932 __LDBL_MAX_EXP__=16384 __LDBL_MAX__=1.18973149535723176502e+4932L __LDBL_MIN_10_EXP__=(-4931) __LDBL_MIN_EXP__=(-16381) __LDBL_MIN__=3.36210314311209350626e-4932L __LONG_LONG_MAX__=9223372036854775807LL __LONG_MAX__=9223372036854775807L __LP64__=1 __MMX__=1 __ORDER_BIG_ENDIAN__=4321 __ORDER_LITTLE_ENDIAN__=1234 __ORDER_PDP_ENDIAN__=3412 __PRAGMA_REDEFINE_EXTNAME=1 __PTRDIFF_MAX__=9223372036854775807L __PTRDIFF_TYPE__=long\ int __REGISTER_PREFIX__= __SCHAR_MAX__=127 __SHRT_MAX__=32767 __SIG_ATOMIC_MAX__=2147483647 __SIG_ATOMIC_MIN__=(-2147483647\ -\ 1) __SIG_ATOMIC_TYPE__=int __SIZEOF_DOUBLE__=8 __SIZEOF_FLOAT__=4 __SIZEOF_INT128__=16 __SIZEOF_INT__=4 __SIZEOF_LONG_DOUBLE__=16 __SIZEOF_LONG_LONG__=8 __SIZEOF_LONG__=8 __SIZEOF_POINTER__=8 __SIZEOF_PTRDIFF_T__=8 __SIZEOF_SHORT__=2 __SIZEOF_SIZE_T__=8 __SIZEOF_WCHAR_T__=4 __SIZEOF_WINT_T__=4 __SIZE_MAX__=18446744073709551615UL __SIZE_TYPE__=long\ unsigned\ int __SSE2_MATH__=1 __SSE2__=1 __SSE_MATH__=1 __SSE__=1 __STDC_HOSTED__=1 __STDC_IEC_559_COMPLEX__=1 __STDC_IEC_559__=1 __STDC_ISO_10646__=201103L __STDC_NO_THREADS__=1 __STDC__=1 __UINT16_C=__UINT16_C __UINT16_MAX__=65535 __UINT16_TYPE__=short\ unsigned\ int __UINT32_C=__UINT32_C __UINT32_MAX__=4294967295U __UINT32_TYPE__=unsigned\ int __UINT64_C=__UINT64_C __UINT64_MAX__=18446744073709551615UL __UINT64_TYPE__=long\ unsigned\ int __UINT8_C=__UINT8_C __UINT8_MAX__=255 __UINT8_TYPE__=unsigned\ char __UINTMAX_C=__UINTMAX_C __UINTMAX_MAX__=18446744073709551615UL __UINTMAX_TYPE__=long\ unsigned\ int __UINTPTR_MAX__=18446744073709551615UL __UINTPTR_TYPE__=long\ unsigned\ int __UINT_FAST16_MAX__=18446744073709551615UL __UINT_FAST16_TYPE__=long\ unsigned\ int __UINT_FAST32_MAX__=18446744073709551615UL __UINT_FAST32_TYPE__=long\ unsigned\ int __UINT_FAST64_MAX__=18446744073709551615UL __UINT_FAST64_TYPE__=long\ unsigned\ int __UINT_FAST8_MAX__=255 __UINT_FAST8_TYPE__=unsigned\ char __UINT_LEAST16_MAX__=65535 __UINT_LEAST16_TYPE__=short\ unsigned\ int __UINT_LEAST32_MAX__=4294967295U __UINT_LEAST32_TYPE__=unsigned\ int __UINT_LEAST64_MAX__=18446744073709551615UL __UINT_LEAST64_TYPE__=long\ unsigned\ int __UINT_LEAST8_MAX__=255 __UINT_LEAST8_TYPE__=unsigned\ char __USER_LABEL_PREFIX__= __USE_BSD=1 __USE_FILE_OFFSET64=1 __USE_LARGEFILE=1 __USE_MISC=1 __USE_POSIX199309=1 __USE_POSIX199506=1 __USE_POSIX2=1 __USE_POSIX=1 __USE_SVID=1 __VERSION__="4.9.2" __WCHAR_MAX__=2147483647 __WCHAR_MIN__=(-2147483647\ -\ 1) __WCHAR_TYPE__=int __WINT_MAX__=4294967295U __WINT_MIN__=0U __WINT_TYPE__=unsigned\ int __amd64=1 __amd64__=1 __code_model_small__=1 __gnu_linux__=1 __has_include=__has_include __has_include_next=__has_include_next __k8=1 __k8__=1 __linux=1 __linux__=1 __unix=1 __unix__=1 __x86_64=1 __x86_64__=1 linux=1 unix=1' crypt_r_proto='0' cryptlib='' csh='csh' ctermid_r_proto='0' ctime_r_proto='0' -d_Gconvert='sprintf((b),"%.*g",(n),(x))' +d_Gconvert='gcvt((x),(n),(b))' d_PRIEUldbl='define' d_PRIFUldbl='define' d_PRIGUldbl='define' @@ -112,6 +117,7 @@ d_PRIu64='define' d_PRIx64='define' d_SCNfldbl='define' d__fwalk='undef' +d_accept4='define' d_access='define' d_accessx='undef' d_acosh='define' @@ -133,24 +139,23 @@ d_attribute_pure='define' d_attribute_unused='define' d_attribute_warn_unused_result='define' d_backtrace='define' -d_bcmp='define' -d_bcopy='define' -d_bsd='define' +d_bsd='undef' d_bsdgetpgrp='undef' d_bsdsetpgrp='undef' +d_builtin_add_overflow='undef' d_builtin_choose_expr='define' d_builtin_expect='define' -d_bzero='define' +d_builtin_mul_overflow='undef' +d_builtin_sub_overflow='undef' d_c99_variadic_macros='define' d_casti32='undef' d_castneg='define' d_cbrt='define' -d_charvspr='undef' d_chown='define' d_chroot='define' d_chsize='undef' d_class='undef' -d_clearenv='undef' +d_clearenv='define' d_closedir='define' d_cmsghdr_s='define' d_const='define' @@ -164,24 +169,32 @@ d_ctermid='define' d_ctermid_r='undef' d_ctime64='undef' d_ctime_r='undef' -d_cuserid='undef' -d_dbl_dig='define' -d_dbminitproto='undef' +d_cuserid='define' +d_dbminitproto='define' d_difftime64='undef' d_difftime='define' d_dir_dd_fd='undef' d_dirfd='define' -d_dirnamlen='define' +d_dirnamlen='undef' d_dladdr='define' d_dlerror='define' d_dlopen='define' d_dlsymun='undef' d_dosuid='undef' +d_double_has_inf='define' +d_double_has_nan='define' +d_double_has_negative_zero='define' +d_double_has_subnormals='define' +d_double_style_cray='undef' +d_double_style_ibm='undef' +d_double_style_ieee='define' +d_double_style_vax='undef' d_drand48_r='undef' d_drand48proto='define' d_dup2='define' +d_dup3='define' d_duplocale='define' -d_eaccess='undef' +d_eaccess='define' d_endgrent='define' d_endgrent_r='undef' d_endhent='define' @@ -203,6 +216,7 @@ d_expm1='define' d_faststdio='define' d_fchdir='define' d_fchmod='define' +d_fchmodat='define' d_fchown='define' d_fcntl='define' d_fcntl_can_lock='define' @@ -210,11 +224,11 @@ d_fd_macros='define' d_fd_set='define' d_fdclose='undef' d_fdim='define' -d_fds_bits='define' +d_fds_bits='undef' d_fegetround='define' d_fgetpos='define' -d_finite='undef' -d_finitel='undef' +d_finite='define' +d_finitel='define' d_flexfnam='define' d_flock='define' d_flockproto='define' @@ -242,12 +256,13 @@ d_fsync='define' d_ftello='define' d_ftime='undef' d_futimes='define' +d_gai_strerror='define' d_gdbm_ndbm_h_uses_prototypes='undef' d_gdbmndbm_h_uses_prototypes='undef' d_getaddrinfo='define' d_getcwd='define' d_getespwnam='undef' -d_getfsstat='define' +d_getfsstat='undef' d_getgrent='define' d_getgrent_r='undef' d_getgrgid_r='undef' @@ -265,7 +280,7 @@ d_getitimer='define' d_getlogin='define' d_getlogin_r='undef' d_getmnt='undef' -d_getmntent='undef' +d_getmntent='define' d_getnameinfo='define' d_getnbyaddr='define' d_getnbyname='define' @@ -299,20 +314,19 @@ d_getservbyname_r='undef' d_getservbyport_r='undef' d_getservent_r='undef' d_getservprotos='define' -d_getspnam='undef' +d_getspnam='define' d_getspnam_r='undef' d_gettimeod='define' d_gmtime64='undef' d_gmtime_r='undef' -d_gnulibc='undef' +d_gnulibc='define' d_grpasswd='define' -d_hasmntopt='undef' +d_hasmntopt='define' d_htonl='define' d_hypot='define' d_ilogb='define' d_ilogbl='define' d_inc_version_list='undef' -d_index='undef' d_inetaton='define' d_inetntop='define' d_inetpton='define' @@ -326,13 +340,13 @@ d_isblank='define' d_isfinite='define' d_isfinitel='undef' d_isinf='define' -d_isinfl='undef' +d_isinfl='define' d_isless='undef' d_isnan='define' -d_isnanl='undef' +d_isnanl='define' d_isnormal='define' d_j0='define' -d_j0l='undef' +d_j0l='define' d_killpg='define' d_lc_monetary_2008='define' d_lchown='define' @@ -340,13 +354,15 @@ d_ldbl_dig='define' d_ldexpl='define' d_lgamma='define' d_lgamma_r='define' -d_libm_lib_version='undef' +d_libm_lib_version='define' d_libname_unique='undef' d_link='define' +d_linkat='define' d_llrint='define' d_llrintl='define' d_llround='define' d_llroundl='define' +d_localeconv_l='undef' d_localtime64='undef' d_localtime_r='undef' d_localtime_r_needs_tzset='undef' @@ -355,6 +371,11 @@ d_lockf='define' d_log1p='define' d_log2='define' d_logb='define' +d_long_double_style_ieee='define' +d_long_double_style_ieee_doubledouble='undef' +d_long_double_style_ieee_extended='define' +d_long_double_style_ieee_std='undef' +d_long_double_style_vax='undef' d_longdbl='define' d_longlong='define' d_lrint='define' @@ -364,20 +385,19 @@ d_lroundl='define' d_lseekproto='define' d_lstat='define' d_madvise='define' -d_malloc_good_size='define' -d_malloc_size='define' +d_malloc_good_size='undef' +d_malloc_size='undef' d_mblen='define' +d_mbrlen='define' +d_mbrtowc='define' d_mbstowcs='define' d_mbtowc='define' -d_memchr='define' -d_memcmp='define' -d_memcpy='define' d_memmem='define' -d_memmove='define' -d_memset='define' +d_memrchr='define' d_mkdir='define' d_mkdtemp='define' d_mkfifo='define' +d_mkostemp='define' d_mkstemp='define' d_mkstemps='define' d_mktime64='undef' @@ -391,7 +411,7 @@ d_msg_ctrunc='define' d_msg_dontroute='define' d_msg_oob='define' d_msg_peek='define' -d_msg_proxy='undef' +d_msg_proxy='define' d_msgctl='define' d_msgget='define' d_msghdr_s='define' @@ -401,8 +421,9 @@ d_msync='define' d_munmap='define' d_mymalloc='undef' d_nan='define' +d_nanosleep='define' d_ndbm='define' -d_ndbm_h_uses_prototypes='define' +d_ndbm_h_uses_prototypes='undef' d_nearbyint='define' d_newlocale='define' d_nextafter='define' @@ -416,32 +437,35 @@ d_old_pthread_create_joinable='undef' d_oldpthreads='undef' d_oldsock='undef' d_open3='define' +d_openat='define' d_pathconf='define' d_pause='define' d_perl_otherlibdirs='undef' d_phostname='undef' +d_pipe2='define' d_pipe='define' -d_poll='undef' +d_poll='define' d_portable='define' -d_prctl='undef' -d_prctl_set_name='undef' -d_printf_format_null='define' -d_procselfexe='undef' +d_prctl='define' +d_prctl_set_name='define' +d_printf_format_null='undef' +d_procselfexe='define' d_pseudofork='undef' d_pthread_atfork='define' d_pthread_attr_setscope='define' -d_pthread_yield='undef' +d_pthread_yield='define' d_ptrdiff_t='define' d_pwage='undef' -d_pwchange='define' -d_pwclass='define' +d_pwchange='undef' +d_pwclass='undef' d_pwcomment='undef' -d_pwexpire='define' +d_pwexpire='undef' d_pwgecos='define' d_pwpasswd='define' d_pwquota='undef' -d_qgcvt='undef' +d_qgcvt='define' d_quad='define' +d_querylocale='undef' d_random_r='undef' d_re_comp='undef' d_readdir64_r='undef' @@ -455,13 +479,11 @@ d_regcomp='define' d_remainder='define' d_remquo='define' d_rename='define' +d_renameat='define' d_rewinddir='define' d_rint='define' d_rmdir='define' d_round='define' -d_safebcpy='undef' -d_safemcpy='undef' -d_sanemcmp='define' d_sbrkproto='define' d_scalbn='define' d_scalbnl='define' @@ -499,11 +521,11 @@ d_setprotoent_r='undef' d_setpwent='define' d_setpwent_r='undef' d_setregid='define' -d_setresgid='undef' -d_setresuid='undef' +d_setresgid='define' +d_setresuid='define' d_setreuid='define' -d_setrgid='define' -d_setruid='define' +d_setrgid='undef' +d_setruid='undef' d_setsent='define' d_setservent_r='undef' d_setsid='define' @@ -518,7 +540,7 @@ d_sigaction='define' d_siginfo_si_addr='define' d_siginfo_si_band='define' d_siginfo_si_errno='define' -d_siginfo_si_fd='undef' +d_siginfo_si_fd='define' d_siginfo_si_pid='define' d_siginfo_si_status='define' d_siginfo_si_uid='define' @@ -530,14 +552,13 @@ d_sin6_scope_id='define' d_sitearch='define' d_snprintf='define' d_sockaddr_in6='define' -d_sockaddr_sa_len='define' +d_sockaddr_sa_len='undef' d_sockatmark='define' d_sockatmarkproto='define' d_socket='define' d_socklen_t='define' d_sockpair='define' d_socks5_init='undef' -d_sprintf_returns_strlen='define' d_sqrtl='define' d_srand48_r='undef' d_srandom_r='undef' @@ -549,25 +570,25 @@ d_statfs_f_flags='define' d_statfs_s='define' d_static_inline='define' d_statvfs='define' -d_stdio_cnt_lval='define' +d_stdio_cnt_lval='undef' d_stdio_ptr_lval='define' -d_stdio_ptr_lval_nochange_cnt='define' -d_stdio_ptr_lval_sets_cnt='undef' +d_stdio_ptr_lval_nochange_cnt='undef' +d_stdio_ptr_lval_sets_cnt='define' d_stdio_stream_array='undef' d_stdiobase='define' d_stdstdio='define' -d_strchr='define' d_strcoll='define' -d_strctcpy='define' -d_strerrm='strerror(e)' -d_strerror='define' +d_strerror_l='define' d_strerror_r='undef' d_strftime='define' -d_strlcat='define' -d_strlcpy='define' +d_strlcat='undef' +d_strlcpy='undef' +d_strnlen='define' d_strtod='define' +d_strtod_l='undef' d_strtol='define' d_strtold='define' +d_strtold_l='define' d_strtoll='define' d_strtoq='define' d_strtoul='define' @@ -587,6 +608,7 @@ d_tcsetpgrp='define' d_telldir='define' d_telldirproto='define' d_tgamma='define' +d_thread_safe_nl_langinfo_l='undef' d_time='define' d_timegm='define' d_times='define' @@ -602,23 +624,22 @@ d_u32align='define' d_ualarm='define' d_umask='define' d_uname='define' -d_union_semun='define' +d_union_semun='undef' +d_unlinkat='define' d_unordered='undef' d_unsetenv='define' d_uselocale='define' d_usleep='define' d_usleepproto='define' -d_ustat='undef' +d_ustat='define' d_vendorarch='undef' d_vendorbin='undef' d_vendorlib='undef' d_vendorscript='undef' -d_vfork='define' +d_vfork='undef' d_void_closedir='undef' d_voidsig='define' d_voidtty='' -d_volatile='define' -d_vprintf='define' d_vsnprintf='define' d_wait4='define' d_waitpid='define' @@ -629,13 +650,14 @@ d_wctomb='define' d_writev='define' d_xenix='undef' date='date' -db_hashtype='int' -db_prefixtype='int' -db_version_major='1' -db_version_minor='0' -db_version_patch='0' +db_hashtype='u_int32_t' +db_prefixtype='size_t' +db_version_major='5' +db_version_minor='1' +db_version_patch='29' +default_inc_excludes_dot='define' direntrytype='struct dirent' -dlext='bundle' +dlext='so' dlsrc='dl_dlopen.xs' doubleinfbytes='0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f' doublekind='3' @@ -646,7 +668,8 @@ drand01='Perl_drand48()' drand48_r_proto='0' dtrace='' dtraceobject='' -dynamic_ext='B Compress/Raw/Bzip2 Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/DosGlob File/Glob Filter/Util/Call GDBM_File Hash/Util Hash/Util/FieldHash I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc NDBM_File Opcode POSIX PerlIO/encoding PerlIO/mmap PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Tie/Hash/NamedCapture Time/HiRes Time/Piece Unicode/Collate Unicode/Normalize XS/APItest XS/Typemap arybase attributes mro re threads threads/shared' +dtracexnolibs='' +dynamic_ext='B Compress/Raw/Bzip2 Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/DosGlob File/Glob Filter/Util/Call GDBM_File Hash/Util Hash/Util/FieldHash I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc NDBM_File ODBM_File Opcode POSIX PerlIO/encoding PerlIO/mmap PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Tie/Hash/NamedCapture Time/HiRes Time/Piece Unicode/Collate Unicode/Normalize XS/APItest XS/Typemap arybase attributes mro re threads threads/shared' eagain='EAGAIN' ebcdic='undef' echo='echo' @@ -661,24 +684,24 @@ endservent_r_proto='0' eunicefix=':' exe_ext='' expr='expr' -extensions='B Compress/Raw/Bzip2 Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/DosGlob File/Glob Filter/Util/Call GDBM_File Hash/Util Hash/Util/FieldHash I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc NDBM_File Opcode POSIX PerlIO/encoding PerlIO/mmap PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Tie/Hash/NamedCapture Time/HiRes Time/Piece Unicode/Collate Unicode/Normalize XS/APItest XS/Typemap arybase attributes mro re threads threads/shared Archive/Tar Attribute/Handlers AutoLoader B/Debug CPAN CPAN/Meta CPAN/Meta/Requirements CPAN/Meta/YAML Carp Config/Perl/V Devel/SelfStubber Digest Dumpvalue Env Errno Exporter ExtUtils/CBuilder ExtUtils/Constant ExtUtils/Install ExtUtils/MakeMaker ExtUtils/Manifest ExtUtils/Miniperl ExtUtils/ParseXS File/Fetch File/Find File/Path File/Temp FileCache Filter/Simple Getopt/Long HTTP/Tiny I18N/Collate I18N/LangTags IO/Compress IO/Socket/IP IO/Zlib IPC/Cmd IPC/Open3 JSON/PP Locale/Codes Locale/Maketext Locale/Maketext/Simple Math/BigInt Math/BigRat Math/Complex Memoize Module/CoreList Module/Load Module/Load/Conditional Module/Loaded Module/Metadata NEXT Net/Ping Params/Check Parse/CPAN/Meta Perl/OSType PerlIO/via/QuotedPrint Pod/Checker Pod/Escapes Pod/Functions Pod/Html Pod/Parser Pod/Perldoc Pod/Simple Pod/Usage Safe Search/Dict SelfLoader Term/ANSIColor Term/Cap Term/Complete Term/ReadLine Test Test/Harness Test/Simple Text/Abbrev Text/Balanced Text/ParseWords Text/Tabs Thread/Queue Thread/Semaphore Tie/File Tie/Memoize Tie/RefHash Time/Local XSLoader autodie autouse base bignum constant encoding/warnings experimental if lib libnet parent perlfaq podlators version' +extensions='B Compress/Raw/Bzip2 Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/DosGlob File/Glob Filter/Util/Call GDBM_File Hash/Util Hash/Util/FieldHash I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc NDBM_File ODBM_File Opcode POSIX PerlIO/encoding PerlIO/mmap PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Tie/Hash/NamedCapture Time/HiRes Time/Piece Unicode/Collate Unicode/Normalize XS/APItest XS/Typemap arybase attributes mro re threads threads/shared Archive/Tar Attribute/Handlers AutoLoader B/Debug CPAN CPAN/Meta CPAN/Meta/Requirements CPAN/Meta/YAML Carp Config/Perl/V Devel/SelfStubber Digest Dumpvalue Env Errno Exporter ExtUtils/CBuilder ExtUtils/Constant ExtUtils/Install ExtUtils/MakeMaker ExtUtils/Manifest ExtUtils/Miniperl ExtUtils/ParseXS File/Fetch File/Find File/Path File/Temp FileCache Filter/Simple Getopt/Long HTTP/Tiny I18N/Collate I18N/LangTags IO/Compress IO/Socket/IP IO/Zlib IPC/Cmd IPC/Open3 JSON/PP Locale/Codes Locale/Maketext Locale/Maketext/Simple Math/BigInt Math/BigRat Math/Complex Memoize Module/CoreList Module/Load Module/Load/Conditional Module/Loaded Module/Metadata NEXT Net/Ping Params/Check Perl/OSType PerlIO/via/QuotedPrint Pod/Checker Pod/Escapes Pod/Functions Pod/Html Pod/Parser Pod/Perldoc Pod/Simple Pod/Usage Safe Search/Dict SelfLoader Term/ANSIColor Term/Cap Term/Complete Term/ReadLine Test Test/Harness Test/Simple Text/Abbrev Text/Balanced Text/ParseWords Text/Tabs Thread/Queue Thread/Semaphore Tie/File Tie/Memoize Tie/RefHash Time/Local XSLoader autodie autouse base bignum constant encoding/warnings experimental if lib libnet parent perlfaq podlators version' extern_C='extern' extras='' fflushNULL='define' fflushall='undef' find='' -firstmakefile='GNUmakefile' +firstmakefile='makefile' flex='' -fpossize='8' +fpossize='16' fpostype='fpos_t' freetype='void' from=':' -full_ar='/opt/local/bin/ar' +full_ar='/usr/bin/ar' full_csh='/bin/csh' -full_sed='/opt/local/libexec/gnubin/sed' +full_sed='/bin/sed' gccansipedantic='' gccosandvers='' -gccversion='4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)' +gccversion='4.9.2' getgrent_r_proto='0' getgrgid_r_proto='0' getgrnam_r_proto='0' @@ -706,15 +729,15 @@ gidtype='gid_t' glibpth='/usr/shlib /lib /usr/lib /usr/lib/386 /lib/386 /usr/ccs/lib /usr/ucblib /usr/local/lib ' gmake='gmake' gmtime_r_proto='0' -gnulibc_version='' +gnulibc_version='2.19' grep='grep' groupcat='cat /etc/group' groupstype='gid_t' gzip='gzip' h_fcntl='false' h_sysfile='true' -hint='previous' -hostcat='cat /etc/hosts' +hint='recommended' +hostcat='' hostgenerate='' hostosname='' hostperl='' @@ -731,61 +754,53 @@ i64type='long' i8size='1' i8type='signed char' i_arpainet='define' -i_assert='define' i_bfd='undef' i_bsdioctl='' -i_crypt='undef' +i_crypt='define' i_db='define' -i_dbm='undef' +i_dbm='define' i_dirent='define' i_dlfcn='define' i_execinfo='define' i_fcntl='undef' i_fenv='define' -i_float='define' i_fp='undef' i_fp_class='undef' i_gdbm='define' -i_gdbm_ndbm='undef' +i_gdbm_ndbm='define' i_gdbmndbm='undef' i_grp='define' i_ieeefp='undef' i_inttypes='define' i_langinfo='define' i_libutil='undef' -i_limits='define' i_locale='define' i_machcthr='undef' -i_malloc='undef' -i_mallocmalloc='define' -i_math='define' -i_memory='undef' -i_mntent='undef' -i_ndbm='define' +i_malloc='define' +i_mallocmalloc='undef' +i_mntent='define' +i_ndbm='undef' i_netdb='define' i_neterrno='undef' i_netinettcp='define' i_niin='define' -i_poll='undef' +i_poll='define' i_prot='undef' i_pthread='define' i_pwd='define' -i_quadmath='undef' +i_quadmath='define' i_rpcsvcdbm='undef' i_sgtty='undef' -i_shadow='undef' +i_shadow='define' i_socks='undef' -i_stdarg='define' i_stdbool='define' -i_stddef='define' i_stdint='define' i_stdlib='define' -i_string='define' i_sunmath='undef' i_sysaccess='undef' i_sysdir='define' i_sysfile='define' -i_sysfilio='define' +i_sysfilio='undef' i_sysin='undef' i_sysioctl='define' i_syslog='define' @@ -798,9 +813,9 @@ i_syspoll='define' i_sysresrc='define' i_syssecrt='undef' i_sysselct='define' -i_syssockio='define' +i_syssockio='undef' i_sysstat='define' -i_sysstatfs='undef' +i_sysstatfs='define' i_sysstatvfs='define' i_systime='define' i_systimek='undef' @@ -809,45 +824,43 @@ i_systypes='define' i_sysuio='define' i_sysun='define' i_sysutsname='define' -i_sysvfs='undef' +i_sysvfs='define' i_syswait='define' i_termio='undef' i_termios='define' -i_time='undef' +i_time='define' i_unistd='define' -i_ustat='undef' +i_ustat='define' i_utime='define' -i_values='undef' -i_varargs='undef' -i_varhdr='stdarg.h' i_vfork='undef' +i_wchar='define' i_xlocale='define' -ignore_versioned_solibs='' +ignore_versioned_solibs='y' inc_version_list='' inc_version_list_init='0' incpath='' -incpth='/usr/local/include /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/6.0/include /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include /usr/include /usr/local/include /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/6.0/include /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include /usr/include /usr/local/include /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/6.0/include /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include /usr/include' +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='/tmp/mblead/bin' -installarchlib='/tmp/mblead/lib/perl5/5.24.3/darwin-2level' -installbin='/tmp/mblead/bin' +initialinstalllocation='/opt/perl/bin' +installarchlib='/opt/perl/lib/5.28.1/x86_64-linux' +installbin='/opt/perl/bin' installhtml1dir='' installhtml3dir='' -installman1dir='/tmp/mblead/man/man1' -installman3dir='/tmp/mblead/man/man3' -installprefix='/tmp/mblead' -installprefixexp='/tmp/mblead' -installprivlib='/tmp/mblead/lib/perl5/5.24.3' -installscript='/tmp/mblead/bin' -installsitearch='/tmp/mblead/lib/perl5/site_perl/5.24.3/darwin-2level' -installsitebin='/tmp/mblead/bin' +installman1dir='/opt/perl/man/man1' +installman3dir='/opt/perl/man/man3' +installprefix='/opt/perl' +installprefixexp='/opt/perl' +installprivlib='/opt/perl/lib/5.28.1' +installscript='/opt/perl/bin' +installsitearch='/opt/perl/lib/site_perl/5.28.1/x86_64-linux' +installsitebin='/opt/perl/bin' installsitehtml1dir='' installsitehtml3dir='' -installsitelib='/tmp/mblead/lib/perl5/site_perl/5.24.3' -installsiteman1dir='/tmp/mblead/man/man1' -installsiteman3dir='/tmp/mblead/man/man3' -installsitescript='/tmp/mblead/bin' -installstyle='lib/perl5' +installsitelib='/opt/perl/lib/site_perl/5.28.1' +installsiteman1dir='/opt/perl/man/man1' +installsiteman3dir='/opt/perl/man/man3' +installsitescript='/opt/perl/bin' +installstyle='lib' installusrbinperl='undef' installvendorarch='' installvendorbin='' @@ -862,38 +875,38 @@ issymlink='test -h' ivdformat='"ld"' ivsize='8' ivtype='long' -known_extensions='Amiga/ARexx Amiga/Exec Archive/Tar Attribute/Handlers AutoLoader B B/Debug CPAN CPAN/Meta CPAN/Meta/Requirements CPAN/Meta/YAML Carp Compress/Raw/Bzip2 Compress/Raw/Zlib Config/Perl/V Cwd DB_File Data/Dumper Devel/PPPort Devel/Peek Devel/SelfStubber Digest Digest/MD5 Digest/SHA Dumpvalue Encode Env Errno Exporter ExtUtils/CBuilder ExtUtils/Constant ExtUtils/Install ExtUtils/MakeMaker ExtUtils/Manifest ExtUtils/Miniperl ExtUtils/ParseXS Fcntl File/DosGlob File/Fetch File/Find File/Glob File/Path File/Temp FileCache Filter/Simple Filter/Util/Call GDBM_File Getopt/Long HTTP/Tiny Hash/Util Hash/Util/FieldHash I18N/Collate I18N/LangTags I18N/Langinfo IO IO/Compress IO/Socket/IP IO/Zlib IPC/Cmd IPC/Open3 IPC/SysV JSON/PP List/Util Locale/Codes Locale/Maketext Locale/Maketext/Simple MIME/Base64 Math/BigInt Math/BigInt/FastCalc Math/BigRat Math/Complex Memoize Module/CoreList Module/Load Module/Load/Conditional Module/Loaded Module/Metadata NDBM_File NEXT Net/Ping ODBM_File Opcode POSIX Params/Check Parse/CPAN/Meta Perl/OSType PerlIO/encoding PerlIO/mmap PerlIO/scalar PerlIO/via PerlIO/via/QuotedPrint Pod/Checker Pod/Escapes Pod/Functions Pod/Html Pod/Parser Pod/Perldoc Pod/Simple Pod/Usage SDBM_File Safe Search/Dict SelfLoader Socket Storable Sys/Hostname Sys/Syslog Term/ANSIColor Term/Cap Term/Complete Term/ReadLine Test Test/Harness Test/Simple Text/Abbrev Text/Balanced Text/ParseWords Text/Tabs Thread/Queue Thread/Semaphore Tie/File Tie/Hash/NamedCapture Tie/Memoize Tie/RefHash Time/HiRes Time/Local Time/Piece Unicode/Collate Unicode/Normalize VMS/DCLsym VMS/Filespec VMS/Stdio Win32 Win32API/File Win32CORE XS/APItest XS/Typemap XSLoader arybase attributes autodie autouse base bignum constant encoding/warnings experimental if lib libnet mro parent perlfaq podlators re threads threads/shared version ' +known_extensions='Amiga/ARexx Amiga/Exec Archive/Tar Attribute/Handlers AutoLoader B B/Debug CPAN CPAN/Meta CPAN/Meta/Requirements CPAN/Meta/YAML Carp Compress/Raw/Bzip2 Compress/Raw/Zlib Config/Perl/V Cwd DB_File Data/Dumper Devel/PPPort Devel/Peek Devel/SelfStubber Digest Digest/MD5 Digest/SHA Dumpvalue Encode Env Errno Exporter ExtUtils/CBuilder ExtUtils/Constant ExtUtils/Install ExtUtils/MakeMaker ExtUtils/Manifest ExtUtils/Miniperl ExtUtils/ParseXS Fcntl File/DosGlob File/Fetch File/Find File/Glob File/Path File/Temp FileCache Filter/Simple Filter/Util/Call GDBM_File Getopt/Long HTTP/Tiny Hash/Util Hash/Util/FieldHash I18N/Collate I18N/LangTags I18N/Langinfo IO IO/Compress IO/Socket/IP IO/Zlib IPC/Cmd IPC/Open3 IPC/SysV JSON/PP List/Util Locale/Codes Locale/Maketext Locale/Maketext/Simple MIME/Base64 Math/BigInt Math/BigInt/FastCalc Math/BigRat Math/Complex Memoize Module/CoreList Module/Load Module/Load/Conditional Module/Loaded Module/Metadata NDBM_File NEXT Net/Ping ODBM_File Opcode POSIX Params/Check Perl/OSType PerlIO/encoding PerlIO/mmap PerlIO/scalar PerlIO/via PerlIO/via/QuotedPrint Pod/Checker Pod/Escapes Pod/Functions Pod/Html Pod/Parser Pod/Perldoc Pod/Simple Pod/Usage SDBM_File Safe Search/Dict SelfLoader Socket Storable Sys/Hostname Sys/Syslog Term/ANSIColor Term/Cap Term/Complete Term/ReadLine Test Test/Harness Test/Simple Text/Abbrev Text/Balanced Text/ParseWords Text/Tabs Thread/Queue Thread/Semaphore Tie/File Tie/Hash/NamedCapture Tie/Memoize Tie/RefHash Time/HiRes Time/Local Time/Piece Unicode/Collate Unicode/Normalize VMS/DCLsym VMS/Filespec VMS/Stdio Win32 Win32API/File Win32CORE XS/APItest XS/Typemap XSLoader arybase attributes autodie autouse base bignum constant encoding/warnings experimental if lib libnet mro parent perlfaq podlators re threads threads/shared version ' ksh='' ld='cc' -ld_can_script='undef' -lddlflags=' -mmacosx-version-min=10.9 -bundle -undefined dynamic_lookup -L/usr/local/lib -L/opt/local/lib -fstack-protector' -ldflags=' -mmacosx-version-min=10.9 -fstack-protector -L/usr/local/lib -L/opt/local/lib' +ld_can_script='define' +lddlflags='-shared -O2 -L/usr/local/lib -fstack-protector-strong' +ldflags=' -fstack-protector-strong -L/usr/local/lib' ldflags_uselargefiles='' -ldlibpthname='DYLD_LIBRARY_PATH' +ldlibpthname='LD_LIBRARY_PATH' less='less' lib_ext='.a' -libc='' +libc='libc-2.19.so' libperl='libperl.a' -libpth='/usr/local/lib /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/6.0/lib /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib /usr/lib /opt/local/lib /usr/local/lib /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/6.0/lib /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib /usr/lib /usr/local/lib /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/6.0/lib /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib /usr/lib' -libs='-lpthread -lgdbm -ldbm -ldl -lm -lutil -lc' -libsdirs='' -libsfiles='' -libsfound='' -libspath=' /usr/local/lib /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/6.0/lib /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib /usr/lib /opt/local/lib /usr/local/lib /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/6.0/lib /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib /usr/lib /usr/local/lib /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/6.0/lib /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib /usr/lib' -libswanted='cl pthread socket bind inet nsl ndbm gdbm dbm db malloc dl ld sun m crypt sec util c cposix posix ucb bsd BSD' +libpth='/usr/local/lib /usr/lib/gcc/x86_64-linux-gnu/4.9/include-fixed /usr/include/x86_64-linux-gnu /usr/lib /lib/x86_64-linux-gnu /lib/../lib /usr/lib/x86_64-linux-gnu /usr/lib/../lib /lib' +libs='-lpthread -lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lc -lgdbm_compat' +libsdirs=' /usr/lib/x86_64-linux-gnu' +libsfiles=' libpthread.so libnsl.so libgdbm.so libdb.so libdl.so libm.so libcrypt.so libutil.so libc.so libgdbm_compat.so' +libsfound=' /usr/lib/x86_64-linux-gnu/libpthread.so /usr/lib/x86_64-linux-gnu/libnsl.so /usr/lib/x86_64-linux-gnu/libgdbm.so /usr/lib/x86_64-linux-gnu/libdb.so /usr/lib/x86_64-linux-gnu/libdl.so /usr/lib/x86_64-linux-gnu/libm.so /usr/lib/x86_64-linux-gnu/libcrypt.so /usr/lib/x86_64-linux-gnu/libutil.so /usr/lib/x86_64-linux-gnu/libc.so /usr/lib/x86_64-linux-gnu/libgdbm_compat.so' +libspath=' /usr/local/lib /usr/lib/gcc/x86_64-linux-gnu/4.9/include-fixed /usr/include/x86_64-linux-gnu /usr/lib /lib/x86_64-linux-gnu /lib/../lib /usr/lib/x86_64-linux-gnu /usr/lib/../lib /lib' +libswanted='cl pthread cl pthread socket inet nsl gdbm dbm db malloc dl ld sun m crypt sec util c cposix posix ucb BSD gdbm_compat' libswanted_uselargefiles='' line='' lint='' lkflags='' ln='ln' -lns='/opt/local/libexec/gnubin/ln -s' +lns='/bin/ln -s' localtime_r_proto='0' locincpth='/usr/local/include /opt/local/include /usr/gnu/include /opt/gnu/include /usr/GNU/include /opt/GNU/include' loclibpth='/usr/local/lib /opt/local/lib /usr/gnu/lib /opt/gnu/lib /usr/GNU/lib /opt/GNU/lib' longdblinfbytes='0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00' longdblkind='3' longdblmantbits='64' -longdblnanbytes='0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00' +longdblnanbytes='0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00' longdblsize='16' longlongsize='8' longsize='8' @@ -909,11 +922,11 @@ make_set_make='#' mallocobj='' mallocsrc='' malloctype='void *' -man1dir='/tmp/mblead/man/man1' -man1direxp='/tmp/mblead/man/man1' +man1dir='/opt/perl/man/man1' +man1direxp='/opt/perl/man/man1' man1ext='1' -man3dir='/tmp/mblead/man/man3' -man3direxp='/tmp/mblead/man/man3' +man3dir='/opt/perl/man/man3' +man3direxp='/opt/perl/man/man3' man3ext='3' mips_type='' mistrustnm='' @@ -921,12 +934,12 @@ mkdir='mkdir' mmaptype='void *' modetype='mode_t' more='more' -multiarch='define' +multiarch='undef' mv='' -myarchname='i386-darwin' -mydomain='.nonet' -myhostname='daybreak' -myuname='darwin daybreak 13.4.0 darwin kernel version 13.4.0: mon jan 11 18:17:34 pst 2016; root:xnu-2422.115.15~1release_x86_64 x86_64 i386 macbookpro11,3 darwin ' +myarchname='x86_64-linux' +mydomain='.yourplace.com' +myhostname='yourhost' +myuname='linux barba.rous.org 3.16.0-4-amd64 #1 smp debian 3.16.43-2+deb8u2 (2017-06-26) x86_64 gnulinux ' n='-n' need_va_copy='define' netdb_hlen_type='size_t' @@ -935,8 +948,8 @@ netdb_name_type='const char *' netdb_net_type='in_addr_t' nm='nm' nm_opt='' -nm_so_opt='' -nonxs_ext='Archive/Tar Attribute/Handlers AutoLoader B/Debug CPAN CPAN/Meta CPAN/Meta/Requirements CPAN/Meta/YAML Carp Config/Perl/V Devel/SelfStubber Digest Dumpvalue Env Errno Exporter ExtUtils/CBuilder ExtUtils/Constant ExtUtils/Install ExtUtils/MakeMaker ExtUtils/Manifest ExtUtils/Miniperl ExtUtils/ParseXS File/Fetch File/Find File/Path File/Temp FileCache Filter/Simple Getopt/Long HTTP/Tiny I18N/Collate I18N/LangTags IO/Compress IO/Socket/IP IO/Zlib IPC/Cmd IPC/Open3 JSON/PP Locale/Codes Locale/Maketext Locale/Maketext/Simple Math/BigInt Math/BigRat Math/Complex Memoize Module/CoreList Module/Load Module/Load/Conditional Module/Loaded Module/Metadata NEXT Net/Ping Params/Check Parse/CPAN/Meta Perl/OSType PerlIO/via/QuotedPrint Pod/Checker Pod/Escapes Pod/Functions Pod/Html Pod/Parser Pod/Perldoc Pod/Simple Pod/Usage Safe Search/Dict SelfLoader Term/ANSIColor Term/Cap Term/Complete Term/ReadLine Test Test/Harness Test/Simple Text/Abbrev Text/Balanced Text/ParseWords Text/Tabs Thread/Queue Thread/Semaphore Tie/File Tie/Memoize Tie/RefHash Time/Local XSLoader autodie autouse base bignum constant encoding/warnings experimental if lib libnet parent perlfaq podlators version' +nm_so_opt='--dynamic' +nonxs_ext='Archive/Tar Attribute/Handlers AutoLoader B/Debug CPAN CPAN/Meta CPAN/Meta/Requirements CPAN/Meta/YAML Carp Config/Perl/V Devel/SelfStubber Digest Dumpvalue Env Errno Exporter ExtUtils/CBuilder ExtUtils/Constant ExtUtils/Install ExtUtils/MakeMaker ExtUtils/Manifest ExtUtils/Miniperl ExtUtils/ParseXS File/Fetch File/Find File/Path File/Temp FileCache Filter/Simple Getopt/Long HTTP/Tiny I18N/Collate I18N/LangTags IO/Compress IO/Socket/IP IO/Zlib IPC/Cmd IPC/Open3 JSON/PP Locale/Codes Locale/Maketext Locale/Maketext/Simple Math/BigInt Math/BigRat Math/Complex Memoize Module/CoreList Module/Load Module/Load/Conditional Module/Loaded Module/Metadata NEXT Net/Ping Params/Check Perl/OSType PerlIO/via/QuotedPrint Pod/Checker Pod/Escapes Pod/Functions Pod/Html Pod/Parser Pod/Perldoc Pod/Simple Pod/Usage Safe Search/Dict SelfLoader Term/ANSIColor Term/Cap Term/Complete Term/ReadLine Test Test/Harness Test/Simple Text/Abbrev Text/Balanced Text/ParseWords Text/Tabs Thread/Queue Thread/Semaphore Tie/File Tie/Memoize Tie/RefHash Time/Local XSLoader autodie autouse base bignum constant encoding/warnings experimental if lib libnet parent perlfaq podlators version' nroff='nroff' nvEUformat='"E"' nvFUformat='"F"' @@ -952,35 +965,34 @@ nvtype='double' o_nonblock='O_NONBLOCK' obj_ext='.o' old_pthread_create_joinable='' -optimize='-O3' +optimize='-O2' orderlib='false' -osname='darwin' -osvers='13.4.0' +osname='linux' +osvers='3.16.0-4-amd64' otherlibdirs=' ' package='perl5' -pager='/Users/aaron/usr/bin/less -R' +pager='/usr/bin/less -R' passcat='cat /etc/passwd' -patchlevel='24' +patchlevel='27' path_sep=':' -perl5='/Users/aaron/perl5/perlbrew/perls/perl-5.22.0/bin/perl' +perl5='/usr/bin/perl' perl='perl' perl_patchlevel='' perl_static_inline='static __inline__' -perladmin='aaron@daybreak.nonet' -perllibs='-lpthread -ldl -lm -lutil -lc' -perlpath='/tmp/mblead/bin/perl5.24.3' +perladmin='yourname@yourhost.yourplace.com' +perllibs='-lpthread -lnsl -ldl -lm -lcrypt -lutil -lc' +perlpath='/opt/perl/bin/perl5.28.1' pg='pg' -phostname='hostname' +phostname='' pidtype='pid_t' -plibpth='' +plibpth='/lib/x86_64-linux-gnu/4.9 /lib/x86_64-linux-gnu /lib/../lib /usr/lib/x86_64-linux-gnu/4.9 /usr/lib/x86_64-linux-gnu /usr/lib/../lib /lib /usr/lib' pmake='' pr='' -prefix='/tmp/mblead' -prefixexp='/tmp/mblead' -privlib='/tmp/mblead/lib/perl5/5.24.3' -privlibexp='/tmp/mblead/lib/perl5/5.24.3' -procselfexe='' -prototype='define' +prefix='/opt/perl' +prefixexp='/opt/perl' +privlib='/opt/perl/lib/5.28.1' +privlibexp='/opt/perl/lib/5.28.1' +procselfexe='"/proc/self/exe"' ptrsize='8' quadkind='2' quadtype='long' @@ -988,20 +1000,20 @@ randbits='48' randfunc='Perl_drand48' random_r_proto='0' randseedtype='U32' -ranlib='ranlib' +ranlib=':' rd_nodata='-1' readdir64_r_proto='0' readdir_r_proto='0' revision='5' rm='rm' -rm_try='/opt/local/libexec/gnubin/rm -f try try a.out .out try.[cho] try..o core core.try* try.core*' +rm_try='/bin/rm -f try try a.out .out try.[cho] try..o core core.try* try.core*' rmail='' run='' runnm='false' sGMTIME_max='67768036191676799' sGMTIME_min='-62167219200' sLOCALTIME_max='67768036191676799' -sLOCALTIME_min='-62167219200' +sLOCALTIME_min='-62167219125' sPRIEUldbl='"LE"' sPRIFUldbl='"LF"' sPRIGUldbl='"LG"' @@ -1016,11 +1028,11 @@ sPRIu64='"lu"' sPRIx64='"lx"' sSCNfldbl='"Lf"' sched_yield='sched_yield()' -scriptdir='/tmp/mblead/bin' -scriptdirexp='/tmp/mblead/bin' +scriptdir='/opt/perl/bin' +scriptdirexp='/opt/perl/bin' sed='sed' seedfunc='Perl_drand48_init' -selectminbits='32' +selectminbits='64' selecttype='fd_set *' sendmail='' setgrent_r_proto='0' @@ -1037,37 +1049,37 @@ shmattype='void *' shortsize='2' shrpenv='' shsharp='true' -sig_count='32' -sig_name='ZERO HUP INT QUIT ILL TRAP ABRT EMT FPE KILL BUS SEGV SYS PIPE ALRM TERM URG STOP TSTP CONT CHLD TTIN TTOU IO XCPU XFSZ VTALRM PROF WINCH INFO USR1 USR2 IOT ' -sig_name_init='"ZERO", "HUP", "INT", "QUIT", "ILL", "TRAP", "ABRT", "EMT", "FPE", "KILL", "BUS", "SEGV", "SYS", "PIPE", "ALRM", "TERM", "URG", "STOP", "TSTP", "CONT", "CHLD", "TTIN", "TTOU", "IO", "XCPU", "XFSZ", "VTALRM", "PROF", "WINCH", "INFO", "USR1", "USR2", "IOT", 0' -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 27 28 29 30 31 6 ' -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, 6, 0' -sig_size='33' +sig_count='65' +sig_name='ZERO HUP INT QUIT ILL TRAP ABRT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH IO PWR SYS NUM32 NUM33 RTMIN NUM35 NUM36 NUM37 NUM38 NUM39 NUM40 NUM41 NUM42 NUM43 NUM44 NUM45 NUM46 NUM47 NUM48 NUM49 NUM50 NUM51 NUM52 NUM53 NUM54 NUM55 NUM56 NUM57 NUM58 NUM59 NUM60 NUM61 NUM62 NUM63 RTMAX IOT CLD POLL UNUSED ' +sig_name_init='"ZERO", "HUP", "INT", "QUIT", "ILL", "TRAP", "ABRT", "BUS", "FPE", "KILL", "USR1", "SEGV", "USR2", "PIPE", "ALRM", "TERM", "STKFLT", "CHLD", "CONT", "STOP", "TSTP", "TTIN", "TTOU", "URG", "XCPU", "XFSZ", "VTALRM", "PROF", "WINCH", "IO", "PWR", "SYS", "NUM32", "NUM33", "RTMIN", "NUM35", "NUM36", "NUM37", "NUM38", "NUM39", "NUM40", "NUM41", "NUM42", "NUM43", "NUM44", "NUM45", "NUM46", "NUM47", "NUM48", "NUM49", "NUM50", "NUM51", "NUM52", "NUM53", "NUM54", "NUM55", "NUM56", "NUM57", "NUM58", "NUM59", "NUM60", "NUM61", "NUM62", "NUM63", "RTMAX", "IOT", "CLD", "POLL", "UNUSED", 0' +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 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 ' +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='/tmp/mblead/lib/perl5/site_perl/5.24.3/darwin-2level' -sitearchexp='/tmp/mblead/lib/perl5/site_perl/5.24.3/darwin-2level' -sitebin='/tmp/mblead/bin' -sitebinexp='/tmp/mblead/bin' +sitearch='/opt/perl/lib/site_perl/5.28.1/x86_64-linux' +sitearchexp='/opt/perl/lib/site_perl/5.28.1/x86_64-linux' +sitebin='/opt/perl/bin' +sitebinexp='/opt/perl/bin' sitehtml1dir='' sitehtml1direxp='' sitehtml3dir='' sitehtml3direxp='' -sitelib='/tmp/mblead/lib/perl5/site_perl/5.24.3' -sitelib_stem='/tmp/mblead/lib/perl5/site_perl' -sitelibexp='/tmp/mblead/lib/perl5/site_perl/5.24.3' -siteman1dir='/tmp/mblead/man/man1' -siteman1direxp='/tmp/mblead/man/man1' -siteman3dir='/tmp/mblead/man/man3' -siteman3direxp='/tmp/mblead/man/man3' -siteprefix='/tmp/mblead' -siteprefixexp='/tmp/mblead' -sitescript='/tmp/mblead/bin' -sitescriptexp='/tmp/mblead/bin' +sitelib='/opt/perl/lib/site_perl/5.28.1' +sitelib_stem='/opt/perl/lib/site_perl' +sitelibexp='/opt/perl/lib/site_perl/5.28.1' +siteman1dir='/opt/perl/man/man1' +siteman1direxp='/opt/perl/man/man1' +siteman3dir='/opt/perl/man/man3' +siteman3direxp='/opt/perl/man/man3' +siteprefix='/opt/perl' +siteprefixexp='/opt/perl' +sitescript='/opt/perl/bin' +sitescriptexp='/opt/perl/bin' sizesize='8' sizetype='size_t' sleep='' smail='' -so='dylib' +so='so' sockethdr='' socketlib='' socksizetype='socklen_t' @@ -1080,20 +1092,19 @@ src='.' ssizetype='ssize_t' st_ino_sign='1' st_ino_size='8' -startperl='#!/tmp/mblead/bin/perl5.24.3' +startperl='#!/opt/perl/bin/perl5.28.1' startsh='#!/bin/sh' static_ext=' ' stdchar='char' -stdio_base='((fp)->_ub._base ? (fp)->_ub._base : (fp)->_bf._base)' -stdio_bufsiz='((fp)->_ub._base ? (fp)->_ub._size : (fp)->_bf._size)' -stdio_cnt='((fp)->_r)' +stdio_base='((fp)->_IO_read_base)' +stdio_bufsiz='((fp)->_IO_read_end - (fp)->_IO_read_base)' +stdio_cnt='((fp)->_IO_read_end - (fp)->_IO_read_ptr)' stdio_filbuf='' -stdio_ptr='((fp)->_p)' +stdio_ptr='((fp)->_IO_read_ptr)' stdio_stream_array='' strerror_r_proto='0' -strings='/usr/include/string.h' submit='' -subversion='3' +subversion='1' sysman='/usr/share/man/man1' sysroot='' tail='' @@ -1108,7 +1119,7 @@ targetsh='/bin/sh' tbl='' tee='' test='test' -timeincl='/usr/include/sys/time.h ' +timeincl='/usr/include/x86_64-linux-gnu/sys/time.h ' timetype='time_t' tmpnam_r_proto='0' to=':' @@ -1150,7 +1161,7 @@ usemorebits='undef' usemultiplicity='undef' usemymalloc='n' usenm='false' -usensgetexecutablepath='define' +usensgetexecutablepath='undef' useopcode='true' useperlio='define' useposix='true' @@ -1163,7 +1174,7 @@ usesocks='undef' usethreads='undef' usevendorprefix='undef' useversionedarchname='undef' -usevfork='true' +usevfork='false' usrinc='/usr/include' uuname='' uvXUformat='"lX"' @@ -1172,7 +1183,6 @@ uvsize='8' uvtype='unsigned long' uvuformat='"lu"' uvxformat='"lx"' -vaproto='define' vendorarch='' vendorarchexp='' vendorbin='' @@ -1192,8 +1202,8 @@ vendorprefix='' vendorprefixexp='' vendorscript='' vendorscriptexp='' -version='5.24.3' -version_patchlevel_string='version 24 subversion 3' +version='5.28.1' +version_patchlevel_string='version 28 subversion 1' versiononly='define' vi='' xlibpth='/usr/lib/386 /lib/386' @@ -1202,10 +1212,12 @@ yaccflags='' zcat='' zip='zip' PERL_REVISION=5 -PERL_VERSION=24 -PERL_SUBVERSION=3 +PERL_VERSION=28 +PERL_SUBVERSION=1 PERL_API_REVISION=5 -PERL_API_VERSION=24 +PERL_API_VERSION=28 PERL_API_SUBVERSION=0 PERL_PATCHLEVEL='' PERL_CONFIG_SH=true +: Variables propagated from previous config.sh file. +libdb_needs_pthread='N' diff --git a/gnu/usr.bin/perl/Porting/config_H b/gnu/usr.bin/perl/Porting/config_H index b8c3037ea44..63c33714d60 100644 --- a/gnu/usr.bin/perl/Porting/config_H +++ b/gnu/usr.bin/perl/Porting/config_H @@ -13,9 +13,9 @@ /* Package name : perl5 * Source directory : . - * Configuration time: Fri Jan 7 14:19:01 CET 2011 - * Configured by : merijn - * Target system : linux tux09.procura.nl 2.6.34.7-0.7-desktop #1 smp preempt 2010-12-13 11:13:53 +0100 i686 i686 i386 gnulinux + * Configuration time: Fri Dec 22 16:17:32 GMT 2017 + * Configured by : yourname + * Target system : linux barba.rous.org 3.16.0-4-amd64 #1 smp debian 3.16.43-2+deb8u2 (2017-06-26) x86_64 gnulinux */ #ifndef _config_h_ @@ -24,7 +24,7 @@ /* LOC_SED: * This symbol holds the complete pathname to the sed program. */ -#define LOC_SED "/usr/bin/sed" /**/ +#define LOC_SED "/bin/sed" /**/ /* HAS_ALARM: * This symbol, if defined, indicates that the alarm routine is @@ -32,23 +32,11 @@ */ #define HAS_ALARM /**/ -/* HAS_BCMP: - * This symbol is defined if the bcmp() routine is available to - * compare blocks of memory. +/* HAS_CBRT: + * This symbol, if defined, indicates that the cbrt() (cube root) + * function is available. */ -#define HAS_BCMP /**/ - -/* HAS_BCOPY: - * This symbol is defined if the bcopy() routine is available to - * copy blocks of memory. - */ -#define HAS_BCOPY /**/ - -/* HAS_BZERO: - * This symbol is defined if the bzero() routine is available to - * set a memory block to 0. - */ -#define HAS_BZERO /**/ +#define HAS_CBRT /**/ /* HAS_CHOWN: * This symbol, if defined, indicates that the chown routine is @@ -86,14 +74,6 @@ */ #define HAS_CUSERID /**/ -/* HAS_DBL_DIG: - * This symbol, if defined, indicates that this system's <float.h> - * or <limits.h> defines the symbol DBL_DIG, which is the number - * of significant digits in a double precision number. If this - * symbol is not defined, a guess of 15 is usually pretty good. - */ -#define HAS_DBL_DIG /* */ - /* HAS_DIFFTIME: * This symbol, if defined, indicates that the difftime routine is * available. @@ -180,7 +160,7 @@ #define HAS_GETLOGIN /**/ /* HAS_GETPGID: - * This symbol, if defined, indicates to the C program that + * This symbol, if defined, indicates to the C program that * the getpgid(pid) function is available to get the * process group id. */ @@ -250,42 +230,16 @@ /* HAS_MBSTOWCS: * This symbol, if defined, indicates that the mbstowcs routine is - * available to covert a multibyte string into a wide character string. + * available to convert a multibyte string into a wide character string. */ #define HAS_MBSTOWCS /**/ /* HAS_MBTOWC: * This symbol, if defined, indicates that the mbtowc routine is available - * to covert a multibyte to a wide character. + * to convert a multibyte to a wide character. */ #define HAS_MBTOWC /**/ -/* HAS_MEMCMP: - * This symbol, if defined, indicates that the memcmp routine is available - * to compare blocks of memory. - */ -#define HAS_MEMCMP /**/ - -/* HAS_MEMCPY: - * This symbol, if defined, indicates that the memcpy routine is available - * to copy blocks of memory. - */ -#define HAS_MEMCPY /**/ - -/* HAS_MEMMOVE: - * This symbol, if defined, indicates that the memmove routine is available - * to copy potentially overlapping blocks of memory. This should be used - * only when HAS_SAFE_BCOPY is not defined. If neither is there, roll your - * own version. - */ -#define HAS_MEMMOVE /**/ - -/* HAS_MEMSET: - * This symbol, if defined, indicates that the memset routine is available - * to set blocks of memory. - */ -#define HAS_MEMSET /**/ - /* HAS_MKDIR: * This symbol, if defined, indicates that the mkdir routine is available * to create directories. Otherwise you should fork off a new process to @@ -307,6 +261,12 @@ */ #define HAS_MKTIME /**/ +/* HAS_MSG: + * This symbol, if defined, indicates that the entire msg*(2) library is + * supported (IPC mechanism based on message queues). + */ +#define HAS_MSG /**/ + /* HAS_MSYNC: * This symbol, if defined, indicates that the msync system call is * available to synchronize a mapped file. @@ -388,6 +348,13 @@ */ #define HAS_READLINK /**/ +/* HAS_REGCOMP: + * This symbol, if defined, indicates that the regcomp() routine is + * available to do some regular patern matching (usually on POSIX.2 + * conforming systems). + */ +#define HAS_REGCOMP /* POSIX.2 */ + /* HAS_RENAME: * This symbol, if defined, indicates that the rename routine is available * to rename files. Otherwise you should do the unlink(), link(), unlink() @@ -409,6 +376,12 @@ */ #define HAS_SELECT /**/ +/* HAS_SEM: + * This symbol, if defined, indicates that the entire sem*(2) library is + * supported. + */ +#define HAS_SEM /**/ + /* HAS_SETEGID: * This symbol, if defined, indicates that the setegid routine is available * to change the effective gid of the current program. @@ -503,17 +476,11 @@ */ #define HAS_SETSID /**/ -/* HAS_STRCHR: - * This symbol is defined to indicate that the strchr()/strrchr() - * functions are available for string searching. If not, try the - * index()/rindex() pair. - */ -/* HAS_INDEX: - * This symbol is defined to indicate that the index()/rindex() - * functions are available for string searching. +/* HAS_STAT: + * This symbol, if defined, indicates that the stat routine is + * available to get file status. */ -#define HAS_STRCHR /**/ -/*#define HAS_INDEX / **/ +#define HAS_STAT /**/ /* HAS_STRCOLL: * This symbol, if defined, indicates that the strcoll routine is @@ -618,7 +585,7 @@ /* HAS_WCTOMB: * This symbol, if defined, indicates that the wctomb routine is available - * to covert a wide character to a multibyte. + * to convert a wide character to a multibyte. */ #define HAS_WCTOMB /**/ @@ -626,8 +593,8 @@ * This symbol holds the type used for the second argument to * getgroups() and setgroups(). Usually, this is the same as * gidtype (gid_t) , but sometimes it isn't. - * It can be int, ushort, gid_t, etc... - * It may be necessary to include <sys/types.h> to get any + * It can be int, ushort, gid_t, etc... + * It may be necessary to include <sys/types.h> to get any * typedef'ed information. This is only required if you have * getgroups() or setgroups().. */ @@ -663,74 +630,24 @@ */ /*#define I_FCNTL / **/ -/* I_FLOAT: - * This symbol, if defined, indicates to the C program that it should - * include <float.h> to get definition of symbols like DBL_MAX or - * DBL_MIN, i.e. machine dependent floating point values. - */ -#define I_FLOAT /**/ - /* I_GDBM: * This symbol, if defined, indicates that <gdbm.h> exists and should * be included. */ #define I_GDBM /**/ -/* I_LIMITS: - * This symbol, if defined, indicates to the C program that it should - * include <limits.h> to get definition of symbols like WORD_BIT or - * LONG_MAX, i.e. machine dependant limitations. - */ -#define I_LIMITS /**/ - /* I_LOCALE: * This symbol, if defined, indicates to the C program that it should * include <locale.h>. */ #define I_LOCALE /**/ -/* I_MATH: - * This symbol, if defined, indicates to the C program that it should - * include <math.h>. - */ -#define I_MATH /**/ - -/* I_MEMORY: - * This symbol, if defined, indicates to the C program that it should - * include <memory.h>. - */ -/*#define I_MEMORY / **/ - /* I_NETINET_IN: * This symbol, if defined, indicates to the C program that it should * include <netinet/in.h>. Otherwise, you may try <sys/in.h>. */ #define I_NETINET_IN /**/ -/* I_STDBOOL: - * This symbol, if defined, indicates that <stdbool.h> exists and should - * be included. - */ -/*#define I_STDBOOL / **/ - -/* I_STDDEF: - * This symbol, if defined, indicates that <stddef.h> exists and should - * be included. - */ -#define I_STDDEF /**/ - -/* I_STDLIB: - * This symbol, if defined, indicates that <stdlib.h> exists and should - * be included. - */ -#define I_STDLIB /**/ - -/* I_STRING: - * This symbol, if defined, indicates to the C program that it should - * include <string.h> (USG systems) instead of <strings.h> (BSD systems). - */ -#define I_STRING /**/ - /* I_SYS_DIR: * This symbol, if defined, indicates to the C program that it should * include <sys/dir.h>. @@ -815,26 +732,6 @@ */ #define I_SYS_WAIT /**/ -/* I_TERMIO: - * This symbol, if defined, indicates that the program should include - * <termio.h> rather than <sgtty.h>. There are also differences in - * the ioctl() calls that depend on the value of this symbol. - */ -/* I_TERMIOS: - * This symbol, if defined, indicates that the program should include - * the POSIX termios.h rather than sgtty.h or termio.h. - * There are also differences in the ioctl() calls that depend on the - * value of this symbol. - */ -/* I_SGTTY: - * This symbol, if defined, indicates that the program should include - * <sgtty.h> rather than <termio.h>. There are also differences in - * the ioctl() calls that depend on the value of this symbol. - */ -/*#define I_TERMIO / **/ -#define I_TERMIOS /**/ -/*#define I_SGTTY / **/ - /* I_UNISTD: * This symbol, if defined, indicates to the C program that it should * include <unistd.h>. @@ -847,41 +744,17 @@ */ #define I_UTIME /**/ -/* I_VALUES: - * This symbol, if defined, indicates to the C program that it should - * include <values.h> to get definition of symbols like MINFLOAT or - * MAXLONG, i.e. machine dependant limitations. Probably, you - * should use <limits.h> instead, if it is available. - */ -#define I_VALUES /**/ - /* I_VFORK: * This symbol, if defined, indicates to the C program that it should * include vfork.h. */ /*#define I_VFORK / **/ -/* CAN_VAPROTO: - * This variable is defined on systems supporting prototype declaration - * of functions with a variable number of arguments. - */ -/* _V: - * This macro is used to declare function parameters in prototypes for - * functions with a variable number of parameters. Use double parentheses. - * For example: - * - * int printf _V((char *fmt, ...)); - * - * Remember to use the plain simple _() macro when declaring a function - * with no variable number of arguments, since it might be possible to - * have a non-effect _V() macro and still get prototypes via _(). +/* STDCHAR: + * This symbol is defined to be the type of char used in stdio.h. + * It has the values "unsigned char" or "char". */ -#define CAN_VAPROTO /**/ -#ifdef CAN_VAPROTO -#define _V(args) args -#else -#define _V(args) () -#endif +#define STDCHAR char /**/ /* INTSIZE: * This symbol contains the value of sizeof(int) so that the C @@ -896,7 +769,7 @@ * preprocessor can make decisions based on it. */ #define INTSIZE 4 /**/ -#define LONGSIZE 4 /**/ +#define LONGSIZE 8 /**/ #define SHORTSIZE 2 /**/ /* MULTIARCH: @@ -911,97 +784,59 @@ /* HAS_QUAD: * This symbol, if defined, tells that there's a 64-bit integer type, * Quad_t, and its unsigned counterpart, Uquad_t. QUADKIND will be one - * of QUAD_IS_INT, QUAD_IS_LONG, QUAD_IS_LONG_LONG, or QUAD_IS_INT64_T. + * of QUAD_IS_INT, QUAD_IS_LONG, QUAD_IS_LONG_LONG, QUAD_IS_INT64_T, + * or QUAD_IS___INT64. */ #define HAS_QUAD /**/ #ifdef HAS_QUAD -# define Quad_t long long /**/ -# define Uquad_t unsigned long long /**/ -# define QUADKIND 3 /**/ +# define Quad_t long /**/ +# define Uquad_t unsigned long /**/ +# define QUADKIND 2 /**/ # define QUAD_IS_INT 1 # define QUAD_IS_LONG 2 # define QUAD_IS_LONG_LONG 3 # define QUAD_IS_INT64_T 4 +# define QUAD_IS___INT64 5 #endif -/* USE_CROSS_COMPILE: - * This symbol, if defined, indicates that Perl is being cross-compiled. - */ -/* PERL_TARGETARCH: - * This symbol, if defined, indicates the target architecture - * Perl has been cross-compiled to. Undefined if not a cross-compile. +/* HAS_ACCESSX: + * This symbol, if defined, indicates that the accessx routine is + * available to do extended access checks. */ -#ifndef USE_CROSS_COMPILE -/*#define USE_CROSS_COMPILE / **/ -#define PERL_TARGETARCH "" /**/ -#endif +/*#define HAS_ACCESSX / **/ -/* MEM_ALIGNBYTES: - * This symbol contains the number of bytes required to align a - * double, or a long double when applicable. Usual values are 2, - * 4 and 8. The default is eight, for safety. +/* HAS_EACCESS: + * This symbol, if defined, indicates that the eaccess routine is + * available to do extended access checks. */ -#if defined(MULTIARCH) -# define MEM_ALIGNBYTES 8 -#else -#define MEM_ALIGNBYTES 4 -#endif +#define HAS_EACCESS /**/ -/* ARCHLIB: - * This variable, if defined, holds the name of the directory in - * which the user wants to put architecture-dependent public - * library files for perl5. It is most often a local directory - * such as /usr/local/lib. Programs using this variable must be - * prepared to deal with filename expansion. If ARCHLIB is the - * same as PRIVLIB, it is not defined, since presumably the - * program already searches PRIVLIB. - */ -/* ARCHLIB_EXP: - * 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. +/* I_SYS_ACCESS: + * This symbol, if defined, indicates to the C program that it should + * include <sys/access.h>. */ -#define ARCHLIB "/pro/lib/perl5/5.24.3/i686-linux-64int-ld" /**/ -#define ARCHLIB_EXP "/pro/lib/perl5/5.24.3/i686-linux-64int-ld" /**/ +/*#define I_SYS_ACCESS / **/ -/* ARCHNAME: - * This symbol holds a string representing the architecture name. - * It may be used to construct an architecture-dependant pathname - * where library files may be held under a private library, for - * instance. +/* I_SYS_SECURITY: + * This symbol, if defined, indicates to the C program that it should + * include <sys/security.h>. */ -#define ARCHNAME "i686-linux-64int-ld" /**/ +/*#define I_SYS_SECURITY / **/ -/* BIN: - * This symbol holds the path of the bin directory where the package will - * be installed. Program must be prepared to deal with ~name substitution. - */ -/* BIN_EXP: - * This symbol is the filename expanded version of the BIN symbol, for - * programs that do not want to deal with that at run-time. - */ -/* PERL_RELOCATABLE_INC: - * This symbol, if defined, indicates that we'd like to relocate entries - * in @INC at run time based on the location of the perl binary. +/* MEM_ALIGNBYTES: + * This symbol contains the number of bytes required to align a + * double, or a long double when applicable. Usual values are 2, + * 4 and 8. The default is eight, for safety. For cross-compiling + * or multiarch support, Configure will set a minimum of 8. */ -#define BIN "/pro/bin" /**/ -#define BIN_EXP "/pro/bin" /**/ -#define PERL_RELOCATABLE_INC "undef" /**/ +#define MEM_ALIGNBYTES 8 /* BYTEORDER: * This symbol holds the hexadecimal constant defined in byteorder, * in a UV, i.e. 0x1234 or 0x4321 or 0x12345678, etc... * If the compiler supports cross-compiling or multiple-architecture - * binaries (eg. on NeXT systems), use compiler-defined macros to + * binaries, use compiler-defined macros to * determine the byte order. - * On NeXT 3.2 (and greater), you can build "Fat" Multiple Architecture - * Binaries (MAB) on either big endian or little endian machines. - * The endian-ness is available at compile-time. This only matters - * for perl, where the config.h can be generated and installed on - * one system, and used by a different architecture to build an - * extension. Older versions of NeXT that might not have - * defined either *_ENDIAN__ were all on Motorola 680x0 series, - * so the default case (for NeXT) is big endian to catch them. - * This might matter for NeXT 3.0. */ #if defined(MULTIARCH) # ifdef __LITTLE_ENDIAN__ @@ -1023,12 +858,9 @@ # endif # endif # endif -# if !defined(BYTEORDER) && (defined(NeXT) || defined(__NeXT__)) -# define BYTEORDER 0x4321 -# endif #else #define BYTEORDER 0x12345678 /* large digits for MSB */ -#endif /* NeXT */ +#endif /* CHARBITS: * This symbol contains the size of a char, so that the C preprocessor @@ -1036,25 +868,6 @@ */ #define CHARBITS 8 /**/ -/* HAS_ACCESSX: - * This symbol, if defined, indicates that the accessx routine is - * available to do extended access checks. - */ -/*#define HAS_ACCESSX / **/ - -/* HAS_ASCTIME_R: - * This symbol, if defined, indicates that the asctime_r routine - * is available to asctime re-entrantly. - */ -/* ASCTIME_R_PROTO: - * This symbol encodes the prototype of asctime_r. - * It is zero if d_asctime_r is undef, and one of the - * REENTRANT_PROTO_T_ABC macros of reentr.h if d_asctime_r - * is defined. - */ -/*#define HAS_ASCTIME_R / **/ -#define ASCTIME_R_PROTO 0 /**/ - /* CASTI32: * This symbol is defined if the C compiler can cast negative * or large floating point numbers to 32-bit ints. @@ -1082,142 +895,6 @@ */ /*#define VOID_CLOSEDIR / **/ -/* HAS_CRYPT_R: - * This symbol, if defined, indicates that the crypt_r routine - * is available to crypt re-entrantly. - */ -/* CRYPT_R_PROTO: - * This symbol encodes the prototype of crypt_r. - * It is zero if d_crypt_r is undef, and one of the - * REENTRANT_PROTO_T_ABC macros of reentr.h if d_crypt_r - * is defined. - */ -/*#define HAS_CRYPT_R / **/ -#define CRYPT_R_PROTO 0 /**/ - -/* HAS_CTERMID_R: - * This symbol, if defined, indicates that the ctermid_r routine - * is available to ctermid re-entrantly. - */ -/* CTERMID_R_PROTO: - * This symbol encodes the prototype of ctermid_r. - * It is zero if d_ctermid_r is undef, and one of the - * REENTRANT_PROTO_T_ABC macros of reentr.h if d_ctermid_r - * is defined. - */ -/*#define HAS_CTERMID_R / **/ -#define CTERMID_R_PROTO 0 /**/ - -/* HAS_CTIME_R: - * This symbol, if defined, indicates that the ctime_r routine - * is available to ctime re-entrantly. - */ -/* CTIME_R_PROTO: - * This symbol encodes the prototype of ctime_r. - * It is zero if d_ctime_r is undef, and one of the - * REENTRANT_PROTO_T_ABC macros of reentr.h if d_ctime_r - * is defined. - */ -/*#define HAS_CTIME_R / **/ -#define CTIME_R_PROTO 0 /**/ - -/* HAS_DRAND48_R: - * This symbol, if defined, indicates that the drand48_r routine - * is available to drand48 re-entrantly. - */ -/* DRAND48_R_PROTO: - * This symbol encodes the prototype of drand48_r. - * It is zero if d_drand48_r is undef, and one of the - * REENTRANT_PROTO_T_ABC macros of reentr.h if d_drand48_r - * is defined. - */ -/*#define HAS_DRAND48_R / **/ -#define DRAND48_R_PROTO 0 /**/ - -/* HAS_EACCESS: - * This symbol, if defined, indicates that the eaccess routine is - * available to do extended access checks. - */ -#define HAS_EACCESS /**/ - -/* HAS_ENDGRENT_R: - * This symbol, if defined, indicates that the endgrent_r routine - * is available to endgrent re-entrantly. - */ -/* ENDGRENT_R_PROTO: - * This symbol encodes the prototype of endgrent_r. - * It is zero if d_endgrent_r is undef, and one of the - * REENTRANT_PROTO_T_ABC macros of reentr.h if d_endgrent_r - * is defined. - */ -/*#define HAS_ENDGRENT_R / **/ -#define ENDGRENT_R_PROTO 0 /**/ - -/* HAS_ENDHOSTENT_R: - * This symbol, if defined, indicates that the endhostent_r routine - * is available to endhostent re-entrantly. - */ -/* ENDHOSTENT_R_PROTO: - * This symbol encodes the prototype of endhostent_r. - * It is zero if d_endhostent_r is undef, and one of the - * REENTRANT_PROTO_T_ABC macros of reentr.h if d_endhostent_r - * is defined. - */ -/*#define HAS_ENDHOSTENT_R / **/ -#define ENDHOSTENT_R_PROTO 0 /**/ - -/* HAS_ENDNETENT_R: - * This symbol, if defined, indicates that the endnetent_r routine - * is available to endnetent re-entrantly. - */ -/* ENDNETENT_R_PROTO: - * This symbol encodes the prototype of endnetent_r. - * It is zero if d_endnetent_r is undef, and one of the - * REENTRANT_PROTO_T_ABC macros of reentr.h if d_endnetent_r - * is defined. - */ -/*#define HAS_ENDNETENT_R / **/ -#define ENDNETENT_R_PROTO 0 /**/ - -/* HAS_ENDPROTOENT_R: - * This symbol, if defined, indicates that the endprotoent_r routine - * is available to endprotoent re-entrantly. - */ -/* ENDPROTOENT_R_PROTO: - * This symbol encodes the prototype of endprotoent_r. - * It is zero if d_endprotoent_r is undef, and one of the - * REENTRANT_PROTO_T_ABC macros of reentr.h if d_endprotoent_r - * is defined. - */ -/*#define HAS_ENDPROTOENT_R / **/ -#define ENDPROTOENT_R_PROTO 0 /**/ - -/* HAS_ENDPWENT_R: - * This symbol, if defined, indicates that the endpwent_r routine - * is available to endpwent re-entrantly. - */ -/* ENDPWENT_R_PROTO: - * This symbol encodes the prototype of endpwent_r. - * It is zero if d_endpwent_r is undef, and one of the - * REENTRANT_PROTO_T_ABC macros of reentr.h if d_endpwent_r - * is defined. - */ -/*#define HAS_ENDPWENT_R / **/ -#define ENDPWENT_R_PROTO 0 /**/ - -/* HAS_ENDSERVENT_R: - * This symbol, if defined, indicates that the endservent_r routine - * is available to endservent re-entrantly. - */ -/* ENDSERVENT_R_PROTO: - * This symbol encodes the prototype of endservent_r. - * It is zero if d_endservent_r is undef, and one of the - * REENTRANT_PROTO_T_ABC macros of reentr.h if d_endservent_r - * is defined. - */ -/*#define HAS_ENDSERVENT_R / **/ -#define ENDSERVENT_R_PROTO 0 /**/ - /* HAS_FD_SET: * This symbol, when defined, indicates presence of the fd_set typedef * in <sys/types.h> @@ -1239,137 +916,7 @@ * d_Gconvert='sprintf((b),"%.*g",(n),(x))' * The last two assume trailing zeros should not be kept. */ -#define Gconvert(x,n,t,b) qgcvt((x),(n),(b)) - -/* HAS_GETGRENT_R: - * This symbol, if defined, indicates that the getgrent_r routine - * is available to getgrent re-entrantly. - */ -/* GETGRENT_R_PROTO: - * This symbol encodes the prototype of getgrent_r. - * It is zero if d_getgrent_r is undef, and one of the - * REENTRANT_PROTO_T_ABC macros of reentr.h if d_getgrent_r - * is defined. - */ -/*#define HAS_GETGRENT_R / **/ -#define GETGRENT_R_PROTO 0 /**/ - -/* HAS_GETGRGID_R: - * This symbol, if defined, indicates that the getgrgid_r routine - * is available to getgrgid re-entrantly. - */ -/* GETGRGID_R_PROTO: - * This symbol encodes the prototype of getgrgid_r. - * It is zero if d_getgrgid_r is undef, and one of the - * REENTRANT_PROTO_T_ABC macros of reentr.h if d_getgrgid_r - * is defined. - */ -/*#define HAS_GETGRGID_R / **/ -#define GETGRGID_R_PROTO 0 /**/ - -/* HAS_GETGRNAM_R: - * This symbol, if defined, indicates that the getgrnam_r routine - * is available to getgrnam re-entrantly. - */ -/* GETGRNAM_R_PROTO: - * This symbol encodes the prototype of getgrnam_r. - * It is zero if d_getgrnam_r is undef, and one of the - * REENTRANT_PROTO_T_ABC macros of reentr.h if d_getgrnam_r - * is defined. - */ -/*#define HAS_GETGRNAM_R / **/ -#define GETGRNAM_R_PROTO 0 /**/ - -/* HAS_GETHOSTBYADDR_R: - * This symbol, if defined, indicates that the gethostbyaddr_r routine - * is available to gethostbyaddr re-entrantly. - */ -/* GETHOSTBYADDR_R_PROTO: - * This symbol encodes the prototype of gethostbyaddr_r. - * It is zero if d_gethostbyaddr_r is undef, and one of the - * REENTRANT_PROTO_T_ABC macros of reentr.h if d_gethostbyaddr_r - * is defined. - */ -/*#define HAS_GETHOSTBYADDR_R / **/ -#define GETHOSTBYADDR_R_PROTO 0 /**/ - -/* HAS_GETHOSTBYNAME_R: - * This symbol, if defined, indicates that the gethostbyname_r routine - * is available to gethostbyname re-entrantly. - */ -/* GETHOSTBYNAME_R_PROTO: - * This symbol encodes the prototype of gethostbyname_r. - * It is zero if d_gethostbyname_r is undef, and one of the - * REENTRANT_PROTO_T_ABC macros of reentr.h if d_gethostbyname_r - * is defined. - */ -/*#define HAS_GETHOSTBYNAME_R / **/ -#define GETHOSTBYNAME_R_PROTO 0 /**/ - -/* HAS_GETHOSTENT_R: - * This symbol, if defined, indicates that the gethostent_r routine - * is available to gethostent re-entrantly. - */ -/* GETHOSTENT_R_PROTO: - * This symbol encodes the prototype of gethostent_r. - * It is zero if d_gethostent_r is undef, and one of the - * REENTRANT_PROTO_T_ABC macros of reentr.h if d_gethostent_r - * is defined. - */ -/*#define HAS_GETHOSTENT_R / **/ -#define GETHOSTENT_R_PROTO 0 /**/ - -/* HAS_GETLOGIN_R: - * This symbol, if defined, indicates that the getlogin_r routine - * is available to getlogin re-entrantly. - */ -/* GETLOGIN_R_PROTO: - * This symbol encodes the prototype of getlogin_r. - * It is zero if d_getlogin_r is undef, and one of the - * REENTRANT_PROTO_T_ABC macros of reentr.h if d_getlogin_r - * is defined. - */ -/*#define HAS_GETLOGIN_R / **/ -#define GETLOGIN_R_PROTO 0 /**/ - -/* HAS_GETNETBYADDR_R: - * This symbol, if defined, indicates that the getnetbyaddr_r routine - * is available to getnetbyaddr re-entrantly. - */ -/* GETNETBYADDR_R_PROTO: - * This symbol encodes the prototype of getnetbyaddr_r. - * It is zero if d_getnetbyaddr_r is undef, and one of the - * REENTRANT_PROTO_T_ABC macros of reentr.h if d_getnetbyaddr_r - * is defined. - */ -/*#define HAS_GETNETBYADDR_R / **/ -#define GETNETBYADDR_R_PROTO 0 /**/ - -/* HAS_GETNETBYNAME_R: - * This symbol, if defined, indicates that the getnetbyname_r routine - * is available to getnetbyname re-entrantly. - */ -/* GETNETBYNAME_R_PROTO: - * This symbol encodes the prototype of getnetbyname_r. - * It is zero if d_getnetbyname_r is undef, and one of the - * REENTRANT_PROTO_T_ABC macros of reentr.h if d_getnetbyname_r - * is defined. - */ -/*#define HAS_GETNETBYNAME_R / **/ -#define GETNETBYNAME_R_PROTO 0 /**/ - -/* HAS_GETNETENT_R: - * This symbol, if defined, indicates that the getnetent_r routine - * is available to getnetent re-entrantly. - */ -/* GETNETENT_R_PROTO: - * This symbol encodes the prototype of getnetent_r. - * It is zero if d_getnetent_r is undef, and one of the - * REENTRANT_PROTO_T_ABC macros of reentr.h if d_getnetent_r - * is defined. - */ -/*#define HAS_GETNETENT_R / **/ -#define GETNETENT_R_PROTO 0 /**/ +#define Gconvert(x,n,t,b) gcvt((x),(n),(b)) /* HAS_GETPAGESIZE: * This symbol, if defined, indicates that the getpagesize system call @@ -1378,149 +925,6 @@ */ #define HAS_GETPAGESIZE /**/ -/* HAS_GETPROTOBYNAME_R: - * This symbol, if defined, indicates that the getprotobyname_r routine - * is available to getprotobyname re-entrantly. - */ -/* GETPROTOBYNAME_R_PROTO: - * This symbol encodes the prototype of getprotobyname_r. - * It is zero if d_getprotobyname_r is undef, and one of the - * REENTRANT_PROTO_T_ABC macros of reentr.h if d_getprotobyname_r - * is defined. - */ -/*#define HAS_GETPROTOBYNAME_R / **/ -#define GETPROTOBYNAME_R_PROTO 0 /**/ - -/* HAS_GETPROTOBYNUMBER_R: - * This symbol, if defined, indicates that the getprotobynumber_r routine - * is available to getprotobynumber re-entrantly. - */ -/* GETPROTOBYNUMBER_R_PROTO: - * This symbol encodes the prototype of getprotobynumber_r. - * It is zero if d_getprotobynumber_r is undef, and one of the - * REENTRANT_PROTO_T_ABC macros of reentr.h if d_getprotobynumber_r - * is defined. - */ -/*#define HAS_GETPROTOBYNUMBER_R / **/ -#define GETPROTOBYNUMBER_R_PROTO 0 /**/ - -/* HAS_GETPROTOENT_R: - * This symbol, if defined, indicates that the getprotoent_r routine - * is available to getprotoent re-entrantly. - */ -/* GETPROTOENT_R_PROTO: - * This symbol encodes the prototype of getprotoent_r. - * It is zero if d_getprotoent_r is undef, and one of the - * REENTRANT_PROTO_T_ABC macros of reentr.h if d_getprotoent_r - * is defined. - */ -/*#define HAS_GETPROTOENT_R / **/ -#define GETPROTOENT_R_PROTO 0 /**/ - -/* HAS_GETPWENT_R: - * This symbol, if defined, indicates that the getpwent_r routine - * is available to getpwent re-entrantly. - */ -/* GETPWENT_R_PROTO: - * This symbol encodes the prototype of getpwent_r. - * It is zero if d_getpwent_r is undef, and one of the - * REENTRANT_PROTO_T_ABC macros of reentr.h if d_getpwent_r - * is defined. - */ -/*#define HAS_GETPWENT_R / **/ -#define GETPWENT_R_PROTO 0 /**/ - -/* HAS_GETPWNAM_R: - * This symbol, if defined, indicates that the getpwnam_r routine - * is available to getpwnam re-entrantly. - */ -/* GETPWNAM_R_PROTO: - * This symbol encodes the prototype of getpwnam_r. - * It is zero if d_getpwnam_r is undef, and one of the - * REENTRANT_PROTO_T_ABC macros of reentr.h if d_getpwnam_r - * is defined. - */ -/*#define HAS_GETPWNAM_R / **/ -#define GETPWNAM_R_PROTO 0 /**/ - -/* HAS_GETPWUID_R: - * This symbol, if defined, indicates that the getpwuid_r routine - * is available to getpwuid re-entrantly. - */ -/* GETPWUID_R_PROTO: - * This symbol encodes the prototype of getpwuid_r. - * It is zero if d_getpwuid_r is undef, and one of the - * REENTRANT_PROTO_T_ABC macros of reentr.h if d_getpwuid_r - * is defined. - */ -/*#define HAS_GETPWUID_R / **/ -#define GETPWUID_R_PROTO 0 /**/ - -/* HAS_GETSERVBYNAME_R: - * This symbol, if defined, indicates that the getservbyname_r routine - * is available to getservbyname re-entrantly. - */ -/* GETSERVBYNAME_R_PROTO: - * This symbol encodes the prototype of getservbyname_r. - * It is zero if d_getservbyname_r is undef, and one of the - * REENTRANT_PROTO_T_ABC macros of reentr.h if d_getservbyname_r - * is defined. - */ -/*#define HAS_GETSERVBYNAME_R / **/ -#define GETSERVBYNAME_R_PROTO 0 /**/ - -/* HAS_GETSERVBYPORT_R: - * This symbol, if defined, indicates that the getservbyport_r routine - * is available to getservbyport re-entrantly. - */ -/* GETSERVBYPORT_R_PROTO: - * This symbol encodes the prototype of getservbyport_r. - * It is zero if d_getservbyport_r is undef, and one of the - * REENTRANT_PROTO_T_ABC macros of reentr.h if d_getservbyport_r - * is defined. - */ -/*#define HAS_GETSERVBYPORT_R / **/ -#define GETSERVBYPORT_R_PROTO 0 /**/ - -/* HAS_GETSERVENT_R: - * This symbol, if defined, indicates that the getservent_r routine - * is available to getservent re-entrantly. - */ -/* GETSERVENT_R_PROTO: - * This symbol encodes the prototype of getservent_r. - * It is zero if d_getservent_r is undef, and one of the - * REENTRANT_PROTO_T_ABC macros of reentr.h if d_getservent_r - * is defined. - */ -/*#define HAS_GETSERVENT_R / **/ -#define GETSERVENT_R_PROTO 0 /**/ - -/* HAS_GETSPNAM_R: - * This symbol, if defined, indicates that the getspnam_r routine - * is available to getspnam re-entrantly. - */ -/* GETSPNAM_R_PROTO: - * This symbol encodes the prototype of getspnam_r. - * It is zero if d_getspnam_r is undef, and one of the - * REENTRANT_PROTO_T_ABC macros of reentr.h if d_getspnam_r - * is defined. - */ -/*#define HAS_GETSPNAM_R / **/ -#define GETSPNAM_R_PROTO 0 /**/ - -/* HAS_GMTIME_R: - * This symbol, if defined, indicates that the gmtime_r routine - * is available to gmtime re-entrantly. - */ -/* GMTIME_R_PROTO: - * This symbol encodes the prototype of gmtime_r. - * It is zero if d_gmtime_r is undef, and one of the - * REENTRANT_PROTO_T_ABC macros of reentr.h if d_gmtime_r - * is defined. - */ -/*#define HAS_GMTIME_R / **/ -#define GMTIME_R_PROTO 0 /**/ - /* HAS_GNULIBC: * This symbol, if defined, indicates to the C program that * the GNU C library is being used. A better check is to use @@ -1544,231 +948,53 @@ */ #define HAS_LCHOWN /**/ -/* HAS_LOCALTIME_R: - * This symbol, if defined, indicates that the localtime_r routine - * is available to localtime re-entrantly. - */ -/* LOCALTIME_R_NEEDS_TZSET: - * Many libc's localtime_r implementations do not call tzset, - * making them differ from localtime(), and making timezone - * changes using $ENV{TZ} without explicitly calling tzset - * impossible. This symbol makes us call tzset before localtime_r - */ -/*#define LOCALTIME_R_NEEDS_TZSET / **/ -#ifdef LOCALTIME_R_NEEDS_TZSET -#define L_R_TZSET tzset(), -#else -#define L_R_TZSET -#endif - -/* LOCALTIME_R_PROTO: - * This symbol encodes the prototype of localtime_r. - * It is zero if d_localtime_r is undef, and one of the - * REENTRANT_PROTO_T_ABC macros of reentr.h if d_localtime_r - * is defined. - */ -/*#define HAS_LOCALTIME_R / **/ -#define LOCALTIME_R_PROTO 0 /**/ - /* HAS_OPEN3: * This manifest constant lets the C program know that the three * argument form of open(2) is available. */ #define HAS_OPEN3 /**/ -/* OLD_PTHREAD_CREATE_JOINABLE: - * This symbol, if defined, indicates how to create pthread - * in joinable (aka undetached) state. NOTE: not defined - * if pthread.h already has defined PTHREAD_CREATE_JOINABLE - * (the new version of the constant). - * If defined, known values are PTHREAD_CREATE_UNDETACHED - * and __UNDETACHED. - */ -/*#define OLD_PTHREAD_CREATE_JOINABLE / **/ - -/* HAS_PTHREAD_ATFORK: - * This symbol, if defined, indicates that the pthread_atfork routine - * is available to setup fork handlers. - */ -/*#define HAS_PTHREAD_ATFORK / **/ - -/* HAS_PTHREAD_YIELD: - * This symbol, if defined, indicates that the pthread_yield - * routine is available to yield the execution of the current - * thread. sched_yield is preferable to pthread_yield. - */ -/* SCHED_YIELD: - * This symbol defines the way to yield the execution of - * the current thread. Known ways are sched_yield, - * pthread_yield, and pthread_yield with NULL. - */ -/* HAS_SCHED_YIELD: - * This symbol, if defined, indicates that the sched_yield - * routine is available to yield the execution of the current - * thread. sched_yield is preferable to pthread_yield. - */ -#define HAS_PTHREAD_YIELD /**/ -#define SCHED_YIELD sched_yield() /**/ -#define HAS_SCHED_YIELD /**/ - -/* HAS_RANDOM_R: - * This symbol, if defined, indicates that the random_r routine - * is available to random re-entrantly. - */ -/* RANDOM_R_PROTO: - * This symbol encodes the prototype of random_r. - * It is zero if d_random_r is undef, and one of the - * REENTRANT_PROTO_T_ABC macros of reentr.h if d_random_r - * is defined. - */ -/*#define HAS_RANDOM_R / **/ -#define RANDOM_R_PROTO 0 /**/ - -/* HAS_READDIR64_R: - * This symbol, if defined, indicates that the readdir64_r routine - * is available to readdir64 re-entrantly. - */ -/* READDIR64_R_PROTO: - * This symbol encodes the prototype of readdir64_r. - * It is zero if d_readdir64_r is undef, and one of the - * REENTRANT_PROTO_T_ABC macros of reentr.h if d_readdir64_r - * is defined. - */ -/*#define HAS_READDIR64_R / **/ -#define READDIR64_R_PROTO 0 /**/ - -/* HAS_READDIR_R: - * This symbol, if defined, indicates that the readdir_r routine - * is available to readdir re-entrantly. - */ -/* READDIR_R_PROTO: - * This symbol encodes the prototype of readdir_r. - * It is zero if d_readdir_r is undef, and one of the - * REENTRANT_PROTO_T_ABC macros of reentr.h if d_readdir_r - * is defined. - */ -/*#define HAS_READDIR_R / **/ -#define READDIR_R_PROTO 0 /**/ - -/* HAS_SAFE_BCOPY: - * This symbol, if defined, indicates that the bcopy routine is available - * to copy potentially overlapping memory blocks. Normally, you should - * probably use memmove() or memcpy(). If neither is defined, roll your - * own version. - */ -/*#define HAS_SAFE_BCOPY / **/ - -/* HAS_SAFE_MEMCPY: - * This symbol, if defined, indicates that the memcpy routine is available - * to copy potentially overlapping memory blocks. If you need to - * copy overlapping memory blocks, you should check HAS_MEMMOVE and - * use memmove() instead, if available. - */ -/*#define HAS_SAFE_MEMCPY / **/ - -/* HAS_SANE_MEMCMP: - * This symbol, if defined, indicates that the memcmp routine is available - * and can be used to compare relative magnitudes of chars with their high - * bits set. If it is not defined, roll your own version. - */ -#define HAS_SANE_MEMCMP /**/ - -/* HAS_SETGRENT_R: - * This symbol, if defined, indicates that the setgrent_r routine - * is available to setgrent re-entrantly. - */ -/* SETGRENT_R_PROTO: - * This symbol encodes the prototype of setgrent_r. - * It is zero if d_setgrent_r is undef, and one of the - * REENTRANT_PROTO_T_ABC macros of reentr.h if d_setgrent_r - * is defined. - */ -/*#define HAS_SETGRENT_R / **/ -#define SETGRENT_R_PROTO 0 /**/ - -/* HAS_SETHOSTENT_R: - * This symbol, if defined, indicates that the sethostent_r routine - * is available to sethostent re-entrantly. - */ -/* SETHOSTENT_R_PROTO: - * This symbol encodes the prototype of sethostent_r. - * It is zero if d_sethostent_r is undef, and one of the - * REENTRANT_PROTO_T_ABC macros of reentr.h if d_sethostent_r - * is defined. - */ -/*#define HAS_SETHOSTENT_R / **/ -#define SETHOSTENT_R_PROTO 0 /**/ - -/* HAS_SETLOCALE_R: - * This symbol, if defined, indicates that the setlocale_r routine - * is available to setlocale re-entrantly. - */ -/* SETLOCALE_R_PROTO: - * This symbol encodes the prototype of setlocale_r. - * It is zero if d_setlocale_r is undef, and one of the - * REENTRANT_PROTO_T_ABC macros of reentr.h if d_setlocale_r - * is defined. +/* HAS_SIGACTION: + * This symbol, if defined, indicates that Vr4's sigaction() routine + * is available. */ -/*#define HAS_SETLOCALE_R / **/ -#define SETLOCALE_R_PROTO 0 /**/ +#define HAS_SIGACTION /**/ -/* HAS_SETNETENT_R: - * This symbol, if defined, indicates that the setnetent_r routine - * is available to setnetent re-entrantly. - */ -/* SETNETENT_R_PROTO: - * This symbol encodes the prototype of setnetent_r. - * It is zero if d_setnetent_r is undef, and one of the - * REENTRANT_PROTO_T_ABC macros of reentr.h if d_setnetent_r - * is defined. +/* HAS_SIGINFO_SI_ERRNO: + * This symbol, if defined, indicates that siginfo_t has the + * si_errno member */ -/*#define HAS_SETNETENT_R / **/ -#define SETNETENT_R_PROTO 0 /**/ - -/* HAS_SETPROTOENT_R: - * This symbol, if defined, indicates that the setprotoent_r routine - * is available to setprotoent re-entrantly. +/* HAS_SIGINFO_SI_PID: + * This symbol, if defined, indicates that siginfo_t has the + * si_pid member */ -/* SETPROTOENT_R_PROTO: - * This symbol encodes the prototype of setprotoent_r. - * It is zero if d_setprotoent_r is undef, and one of the - * REENTRANT_PROTO_T_ABC macros of reentr.h if d_setprotoent_r - * is defined. +/* HAS_SIGINFO_SI_UID: + * This symbol, if defined, indicates that siginfo_t has the + * si_uid member */ -/*#define HAS_SETPROTOENT_R / **/ -#define SETPROTOENT_R_PROTO 0 /**/ - -/* HAS_SETPWENT_R: - * This symbol, if defined, indicates that the setpwent_r routine - * is available to setpwent re-entrantly. +/* HAS_SIGINFO_SI_ADDR: + * This symbol, if defined, indicates that siginfo_t has the + * si_addr member */ -/* SETPWENT_R_PROTO: - * This symbol encodes the prototype of setpwent_r. - * It is zero if d_setpwent_r is undef, and one of the - * REENTRANT_PROTO_T_ABC macros of reentr.h if d_setpwent_r - * is defined. +/* HAS_SIGINFO_SI_STATUS: + * This symbol, if defined, indicates that siginfo_t has the + * si_status member */ -/*#define HAS_SETPWENT_R / **/ -#define SETPWENT_R_PROTO 0 /**/ - -/* HAS_SETSERVENT_R: - * This symbol, if defined, indicates that the setservent_r routine - * is available to setservent re-entrantly. +/* HAS_SIGINFO_SI_BAND: + * This symbol, if defined, indicates that siginfo_t has the + * si_band member */ -/* SETSERVENT_R_PROTO: - * This symbol encodes the prototype of setservent_r. - * It is zero if d_setservent_r is undef, and one of the - * REENTRANT_PROTO_T_ABC macros of reentr.h if d_setservent_r - * is defined. +/* HAS_SIGINFO_SI_VALUE: + * This symbol, if defined, indicates that siginfo_t has the + * si_value member */ -/*#define HAS_SETSERVENT_R / **/ -#define SETSERVENT_R_PROTO 0 /**/ - -/* HAS_SIGACTION: - * This symbol, if defined, indicates that Vr4's sigaction() routine - * is available. - */ -#define HAS_SIGACTION /**/ +#define HAS_SIGINFO_SI_ERRNO /**/ +#define HAS_SIGINFO_SI_PID /**/ +#define HAS_SIGINFO_SI_UID /**/ +#define HAS_SIGINFO_SI_ADDR /**/ +#define HAS_SIGINFO_SI_STATUS /**/ +#define HAS_SIGINFO_SI_BAND /**/ +#define HAS_SIGINFO_SI_VALUE /**/ /* HAS_SIGSETJMP: * This variable indicates to the C program that the sigsetjmp() @@ -1801,31 +1027,26 @@ #define Siglongjmp(buf,retval) longjmp((buf),(retval)) #endif -/* HAS_SRAND48_R: - * This symbol, if defined, indicates that the srand48_r routine - * is available to srand48 re-entrantly. - */ -/* SRAND48_R_PROTO: - * This symbol encodes the prototype of srand48_r. - * It is zero if d_srand48_r is undef, and one of the - * REENTRANT_PROTO_T_ABC macros of reentr.h if d_srand48_r - * is defined. - */ -/*#define HAS_SRAND48_R / **/ -#define SRAND48_R_PROTO 0 /**/ - -/* HAS_SRANDOM_R: - * This symbol, if defined, indicates that the srandom_r routine - * is available to srandom re-entrantly. +/* HAS_STATIC_INLINE: + * This symbol, if defined, indicates that the C compiler supports + * C99-style static inline. That is, the function can't be called + * from another translation unit. */ -/* SRANDOM_R_PROTO: - * This symbol encodes the prototype of srandom_r. - * It is zero if d_srandom_r is undef, and one of the - * REENTRANT_PROTO_T_ABC macros of reentr.h if d_srandom_r - * is defined. +/* PERL_STATIC_INLINE: + * This symbol gives the best-guess incantation to use for static + * inline functions. If HAS_STATIC_INLINE is defined, this will + * give C99-style inline. If HAS_STATIC_INLINE is not defined, + * this will give a plain 'static'. It will always be defined + * to something that gives static linkage. + * Possibilities include + * static inline (c99) + * static __inline__ (gcc -ansi) + * static __inline (MSVC) + * static _inline (older MSVC) + * static (c89 compilers) */ -/*#define HAS_SRANDOM_R / **/ -#define SRANDOM_R_PROTO 0 /**/ +#define HAS_STATIC_INLINE /**/ +#define PERL_STATIC_INLINE static __inline__ /**/ /* USE_STDIO_PTR: * This symbol is defined if the _ptr and _cnt fields (or similar) @@ -1897,92 +1118,15 @@ #define FILE_bufsiz(fp) ((fp)->_IO_read_end - (fp)->_IO_read_base) #endif -/* HAS_STRERROR_R: - * This symbol, if defined, indicates that the strerror_r routine - * is available to strerror re-entrantly. - */ -/* STRERROR_R_PROTO: - * This symbol encodes the prototype of strerror_r. - * It is zero if d_strerror_r is undef, and one of the - * REENTRANT_PROTO_T_ABC macros of reentr.h if d_strerror_r - * is defined. - */ -/*#define HAS_STRERROR_R / **/ -#define STRERROR_R_PROTO 0 /**/ - -/* HAS_TMPNAM_R: - * This symbol, if defined, indicates that the tmpnam_r routine - * is available to tmpnam re-entrantly. - */ -/* TMPNAM_R_PROTO: - * This symbol encodes the prototype of tmpnam_r. - * It is zero if d_tmpnam_r is undef, and one of the - * REENTRANT_PROTO_T_ABC macros of reentr.h if d_tmpnam_r - * is defined. - */ -/*#define HAS_TMPNAM_R / **/ -#define TMPNAM_R_PROTO 0 /**/ - -/* HAS_TTYNAME_R: - * This symbol, if defined, indicates that the ttyname_r routine - * is available to ttyname re-entrantly. - */ -/* TTYNAME_R_PROTO: - * This symbol encodes the prototype of ttyname_r. - * It is zero if d_ttyname_r is undef, and one of the - * REENTRANT_PROTO_T_ABC macros of reentr.h if d_ttyname_r - * is defined. - */ -/*#define HAS_TTYNAME_R / **/ -#define TTYNAME_R_PROTO 0 /**/ - -/* HAS_VPRINTF: - * This symbol, if defined, indicates that the vprintf routine is available - * to printf with a pointer to an argument list. If unavailable, you - * may need to write your own, probably in terms of _doprnt(). - */ -/* USE_CHAR_VSPRINTF: - * This symbol is defined if this system has vsprintf() returning type - * (char*). The trend seems to be to declare it as "int vsprintf()". It - * is up to the package author to declare vsprintf correctly based on the - * symbol. - */ -#define HAS_VPRINTF /**/ -/*#define USE_CHAR_VSPRINTF / **/ - /* DOUBLESIZE: * This symbol contains the size of a double, so that the C preprocessor * can make decisions based on it. */ #define DOUBLESIZE 8 /**/ -/* I_MACH_CTHREADS: - * This symbol, if defined, indicates to the C program that it should - * include <mach/cthreads.h>. - */ -/*#define I_MACH_CTHREADS / **/ - -/* I_PTHREAD: - * This symbol, if defined, indicates to the C program that it should - * include <pthread.h>. - */ -#define I_PTHREAD /**/ - -/* I_SYS_ACCESS: - * This symbol, if defined, indicates to the C program that it should - * include <sys/access.h>. - */ -/*#define I_SYS_ACCESS / **/ - -/* I_SYS_SECURITY: - * This symbol, if defined, indicates to the C program that it should - * include <sys/security.h>. - */ -/*#define I_SYS_SECURITY / **/ - /* I_TIME: - * This symbol, if defined, indicates to the C program that it should - * include <time.h>. + * This symbol is always defined, and indicates to the C program that + * it should include <time.h>. */ /* I_SYS_TIME: * This symbol, if defined, indicates to the C program that it should @@ -2006,21 +1150,6 @@ #define HAS_TM_TM_ZONE /**/ #define HAS_TM_TM_GMTOFF /**/ -/* PERL_INC_VERSION_LIST: - * This variable specifies the list of subdirectories in over - * which perl.c:incpush() and lib/lib.pm will automatically - * search when adding directories to @INC, in a format suitable - * for a C initialization string. See the inc_version_list entry - * in Porting/Glossary for more details. - */ -/*#define PERL_INC_VERSION_LIST 0 / **/ - -/* INSTALL_USR_BIN_PERL: - * This symbol, if defined, indicates that Perl is to be installed - * also as /usr/bin/perl. - */ -/*#define INSTALL_USR_BIN_PERL / **/ - /* VAL_O_NONBLOCK: * This symbol is to be used during open() or fcntl(F_SETFL) to turn on * non-blocking I/O for the file descriptor. Note that there is no way @@ -2048,36 +1177,13 @@ #define RD_NODATA -1 #define EOF_NONBLOCK -/* PERL_OTHERLIBDIRS: - * This variable contains a colon-separated set of paths for the perl - * binary to search for additional library files or modules. - * These directories will be tacked to the end of @INC. - * Perl will automatically search below each path for version- - * and architecture-specific directories. See PERL_INC_VERSION_LIST - * for more details. - */ -/*#define PERL_OTHERLIBDIRS " " / **/ - -/* PRIVLIB: - * This symbol contains the name of the private library for this package. - * The library is private in the sense that it needn't be in anyone's - * execution path, but it should be accessible by the world. The program - * should be prepared to do ~ expansion. - */ -/* PRIVLIB_EXP: - * 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 "/pro/lib/perl5/5.24.3" /**/ -#define PRIVLIB_EXP "/pro/lib/perl5/5.24.3" /**/ - /* PTRSIZE: * This symbol contains the size of a pointer, so that the C preprocessor * can make decisions based on it. It will be sizeof(void *) if * the compiler supports (void *); otherwise it will be * sizeof(char *). */ -#define PTRSIZE 4 /**/ +#define PTRSIZE 8 /**/ /* Drand01: * This macro is to be used to generate uniformly distributed @@ -2099,11 +1205,97 @@ * function used to generate normalized random numbers. * Values include 15, 16, 31, and 48. */ -#define Drand01() drand48() /**/ -#define Rand_seed_t long /**/ -#define seedDrand01(x) srand48((Rand_seed_t)x) /**/ +#define Drand01() Perl_drand48() /**/ +#define Rand_seed_t U32 /**/ +#define seedDrand01(x) Perl_drand48_init((Rand_seed_t)x) /**/ #define RANDBITS 48 /**/ +/* SSize_t: + * This symbol holds the type used by functions that return + * a count of bytes or an error condition. It must be a signed type. + * It is usually ssize_t, but may be long or int, etc. + * It may be necessary to include <sys/types.h> or <unistd.h> + * to get any typedef'ed information. + * We will pick a type such that sizeof(SSize_t) == sizeof(Size_t). + */ +#define SSize_t ssize_t /* signed count of bytes */ + +/* EBCDIC: + * This symbol, if defined, indicates that this system uses + * EBCDIC encoding. + */ +/*#define EBCDIC / **/ + +/* ARCHLIB: + * This variable, if defined, holds the name of the directory in + * which the user wants to put architecture-dependent public + * library files for perl5. It is most often a local directory + * such as /usr/local/lib. Programs using this variable must be + * prepared to deal with filename expansion. If ARCHLIB is the + * same as PRIVLIB, it is not defined, since presumably the + * program already searches PRIVLIB. + */ +/* ARCHLIB_EXP: + * 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.28.1/x86_64-linux" /**/ +#define ARCHLIB_EXP "/opt/perl/lib/5.28.1/x86_64-linux" /**/ + +/* BIN: + * This symbol holds the path of the bin directory where the package will + * be installed. Program must be prepared to deal with ~name substitution. + */ +/* BIN_EXP: + * This symbol is the filename expanded version of the BIN symbol, for + * programs that do not want to deal with that at run-time. + */ +/* PERL_RELOCATABLE_INC: + * This symbol, if defined, indicates that we'd like to relocate entries + * in @INC at run time based on the location of the perl binary. + */ +#define BIN "/opt/perl/bin" /**/ +#define BIN_EXP "/opt/perl/bin" /**/ +#define PERL_RELOCATABLE_INC "undef" /**/ + +/* PERL_INC_VERSION_LIST: + * This variable specifies the list of subdirectories in over + * which perl.c:incpush() and lib/lib.pm will automatically + * search when adding directories to @INC, in a format suitable + * for a C initialization string. See the inc_version_list entry + * in Porting/Glossary for more details. + */ +/*#define PERL_INC_VERSION_LIST 0 / **/ + +/* INSTALL_USR_BIN_PERL: + * This symbol, if defined, indicates that Perl is to be installed + * also as /usr/bin/perl. + */ +/*#define INSTALL_USR_BIN_PERL / **/ + +/* PERL_OTHERLIBDIRS: + * This variable contains a colon-separated set of paths for the perl + * binary to search for additional library files or modules. + * These directories will be tacked to the end of @INC. + * Perl will automatically search below each path for version- + * and architecture-specific directories. See PERL_INC_VERSION_LIST + * for more details. + */ +/*#define PERL_OTHERLIBDIRS " " / **/ + +/* PRIVLIB: + * This symbol contains the name of the private library for this package. + * The library is private in the sense that it needn't be in anyone's + * execution path, but it should be accessible by the world. The program + * should be prepared to do ~ expansion. + */ +/* PRIVLIB_EXP: + * 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.28.1" /**/ +#define PRIVLIB_EXP "/opt/perl/lib/5.28.1" /**/ + /* SITEARCH: * This symbol contains the name of the private library for this package. * The library is private in the sense that it needn't be in anyone's @@ -2119,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 "/pro/lib/perl5/site_perl/5.24.3/i686-linux-64int-ld" /**/ -#define SITEARCH_EXP "/pro/lib/perl5/site_perl/5.24.3/i686-linux-64int-ld" /**/ +#define SITEARCH "/opt/perl/lib/site_perl/5.28.1/x86_64-linux" /**/ +#define SITEARCH_EXP "/opt/perl/lib/site_perl/5.28.1/x86_64-linux" /**/ /* SITELIB: * This symbol contains the name of the private library for this package. @@ -2142,45 +1334,9 @@ * 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 "/pro/lib/perl5/site_perl/5.24.3" /**/ -#define SITELIB_EXP "/pro/lib/perl5/site_perl/5.24.3" /**/ -#define SITELIB_STEM "/pro/lib/perl5/site_perl" /**/ - -/* SSize_t: - * This symbol holds the type used by functions that return - * a count of bytes or an error condition. It must be a signed type. - * It is usually ssize_t, but may be long or int, etc. - * It may be necessary to include <sys/types.h> or <unistd.h> - * to get any typedef'ed information. - * We will pick a type such that sizeof(SSize_t) == sizeof(Size_t). - */ -#define SSize_t ssize_t /* signed count of bytes */ - -/* USE_ITHREADS: - * This symbol, if defined, indicates that Perl should be built to - * use the interpreter-based threading implementation. - */ -/* USE_5005THREADS: - * This symbol, if defined, indicates that Perl should be built to - * use the 5.005-based threading implementation. - * Only valid up to 5.8.x. - */ -/* OLD_PTHREADS_API: - * This symbol, if defined, indicates that Perl should - * be built to use the old draft POSIX threads API. - */ -/* USE_REENTRANT_API: - * This symbol, if defined, indicates that Perl should - * try to use the various _r versions of library functions. - * This is extremely experimental. - */ -/*#define USE_5005THREADS / **/ -/*#define USE_ITHREADS / **/ -#if defined(USE_5005THREADS) && !defined(USE_ITHREADS) -#define USE_THREADS /* until src is revised*/ -#endif -/*#define OLD_PTHREADS_API / **/ -/*#define USE_REENTRANT_API / **/ +#define SITELIB "/opt/perl/lib/site_perl/5.28.1" /**/ +#define SITELIB_EXP "/opt/perl/lib/site_perl/5.28.1" /**/ +#define SITELIB_STEM "/opt/perl/lib/site_perl" /**/ /* PERL_VENDORARCH: * If defined, this symbol contains the name of a private library. @@ -2212,33 +1368,6 @@ /*#define PERL_VENDORLIB_EXP "" / **/ /*#define PERL_VENDORLIB_STEM "" / **/ -/* HAS_STATIC_INLINE: - * This symbol, if defined, indicates that the C compiler supports - * C99-style static inline. That is, the function can't be called - * from another translation unit. - */ -/* PERL_STATIC_INLINE: - * This symbol gives the best-guess incantation to use for static - * inline functions. If HAS_STATIC_INLINE is defined, this will - * give C99-style inline. If HAS_STATIC_INLINE is not defined, - * this will give a plain 'static'. It will always be defined - * to something that gives static linkage. - * Possibilities include - * static inline (c99) - * static __inline__ (gcc -ansi) - * static __inline (MSVC) - * static _inline (older MSVC) - * static (c89 compilers) - */ -#define HAS_STATIC_INLINE /**/ -#define PERL_STATIC_INLINE static __inline__ /**/ - -/* EBCDIC: - * This symbol, if defined, indicates that this system uses - * EBCDIC encoding. - */ -/*#define EBCDIC / **/ - /* OSNAME: * This symbol contains the name of the operating system, as determined * by Configure. You shouldn't rely on it too much; the specific @@ -2250,7 +1379,7 @@ * feature tests from Configure are generally more reliable. */ #define OSNAME "linux" /**/ -#define OSVERS "2.6.34.7-0.7-desktop" /**/ +#define OSVERS "3.16.0-4-amd64" /**/ /* CAT2: * This macro concatenates 2 tokens together. @@ -2298,9 +1427,9 @@ * This symbol is intended to be used along with CPPRUN in the same manner * symbol CPPMINUS is used with CPPSTDIN. It contains either "-" or "". */ -#define CPPSTDIN "cc -E" +#define CPPSTDIN "cc -E" #define CPPMINUS "-" -#define CPPRUN "cc -E" +#define CPPRUN "cc -E" #define CPPLAST "-" /* HAS_ACCESS: @@ -2339,7 +1468,7 @@ */ #define HASATTRIBUTE_DEPRECATED /**/ #define HASATTRIBUTE_FORMAT /**/ -#define PRINTF_FORMAT_NULL_OK /**/ +/*#define PRINTF_FORMAT_NULL_OK / **/ #define HASATTRIBUTE_NORETURN /**/ #define HASATTRIBUTE_MALLOC /**/ #define HASATTRIBUTE_NONNULL /**/ @@ -2347,6 +1476,13 @@ #define HASATTRIBUTE_UNUSED /**/ #define HASATTRIBUTE_WARN_UNUSED_RESULT /**/ +/* HAS_BACKTRACE: + * This symbol, if defined, indicates that the backtrace() routine is + * available to get a stack trace. The <execinfo.h> header must be + * included to use this routine. + */ +#define HAS_BACKTRACE /**/ + /* HASCONST: * This symbol, if defined, indicates that this C compiler knows about * the const type. There is no need to actually test for that symbol @@ -2366,9 +1502,16 @@ */ #define HAS_CSH /**/ #ifdef HAS_CSH -#define CSH "/usr/bin/tcsh" /**/ +#define CSH "/bin/csh" /**/ #endif +/* HAS_DLADDR: + * This symbol, if defined, indicates that the dladdr() routine is + * available to query dynamic linker information for an address. + * The <dlfcn.h> header must be included to use this routine. + */ +#define HAS_DLADDR /**/ + /* SETUID_SCRIPTS_ARE_SECURE_NOW: * This symbol, if defined, indicates that the bug that prevents * setuid scripts from being secure is not present in this kernel. @@ -2481,7 +1624,7 @@ #define HAS_UNAME /**/ /*#define HAS_PHOSTNAME / **/ #ifdef HAS_PHOSTNAME -#define PHOSTNAME "/bin/hostname" /* How to get the host name */ +#define PHOSTNAME "" /* How to get the host name */ #endif /* HAS_GETNETBYADDR: @@ -2586,11 +1729,76 @@ /* LONG_DOUBLESIZE: * This symbol contains the size of a long double, so that the * C preprocessor can make decisions based on it. It is only - * defined if the system supports long doubles. - */ + * defined if the system supports long doubles. Note that this + * is sizeof(long double), which may include unused bytes. + */ +/* HAS_LDEXPL: + * This symbol, if defined, indicates that the ldexpl routine is + * available to shift a long double floating-point number + * by an integral power of 2. + */ +/* LONG_DOUBLEKIND: + * LONG_DOUBLEKIND will be one of + * LONG_DOUBLE_IS_DOUBLE + * LONG_DOUBLE_IS_IEEE_754_128_BIT_LITTLE_ENDIAN + * LONG_DOUBLE_IS_IEEE_754_128_BIT_BIG_ENDIAN + * LONG_DOUBLE_IS_X86_80_BIT_LITTLE_ENDIAN + * LONG_DOUBLE_IS_X86_80_BIT_BIG_ENDIAN + * LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_LE_LE + * LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_BE_BE + * LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_LE_BE + * LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_BE_LE + * LONG_DOUBLE_IS_VAX_H_FLOAT + * LONG_DOUBLE_IS_UNKNOWN_FORMAT + * It is only defined if the system supports long doubles. + */ +/* LONG_DOUBLE_STYLE_IEEE: + * This symbol, if defined, indicates that the long double + * is any of the IEEE 754 style long doubles: + * LONG_DOUBLE_STYLE_IEEE_STD, LONG_DOUBLE_STYLE_IEEE_EXTENDED, + * LONG_DOUBLE_STYLE_IEEE_DOUBLEDOUBLE. + */ +/* LONG_DOUBLE_STYLE_IEEE_DOUBLEDOUBLE: + * This symbol, if defined, indicates that the long double is + * the 128-bit double-double. + */ +/* LONG_DOUBLE_STYLE_IEEE_EXTENDED: + * This symbol, if defined, indicates that the long double is + * the 80-bit IEEE 754. Note that despite the 'extended' this + * is less than the 'std', since this is an extension of + * the double precision. + */ +/* LONG_DOUBLE_STYLE_IEEE_STD: + * This symbol, if defined, indicates that the long double is + * the 128-bit IEEE 754. + */ +/* LONG_DOUBLE_STYLE_VAX: + * This symbol, if defined, indicates that the long double is + * the 128-bit VAX format H. + */ +#define HAS_LDEXPL /**/ #define HAS_LONG_DOUBLE /**/ #ifdef HAS_LONG_DOUBLE -#define LONG_DOUBLESIZE 12 /**/ +#define LONG_DOUBLESIZE 16 /**/ +#define LONG_DOUBLEKIND 3 /**/ +#define LONG_DOUBLE_IS_DOUBLE 0 +#define LONG_DOUBLE_IS_IEEE_754_128_BIT_LITTLE_ENDIAN 1 +#define LONG_DOUBLE_IS_IEEE_754_128_BIT_BIG_ENDIAN 2 +#define LONG_DOUBLE_IS_X86_80_BIT_LITTLE_ENDIAN 3 +#define LONG_DOUBLE_IS_X86_80_BIT_BIG_ENDIAN 4 +#define LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_LE_LE 5 +#define LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_BE_BE 6 +#define LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_LE_BE 7 +#define LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_BE_LE 8 +#define LONG_DOUBLE_IS_VAX_H_FLOAT 9 +#define LONG_DOUBLE_IS_UNKNOWN_FORMAT -1 +#define LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_LITTLE_ENDIAN LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_LE_LE /* back-compat */ +#define LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_BIG_ENDIAN LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_BE_BE /* back-compat */ +#define LONG_DOUBLE_STYLE_IEEE +#undef LONG_DOUBLE_STYLE_IEEE_DOUBLEDOUBLE +#define LONG_DOUBLE_STYLE_IEEE_EXTENDED +#undef LONG_DOUBLE_STYLE_IEEE_STD +#undef LONG_DOUBLE_STYLE_VAX #endif /* HAS_LONG_LONG: @@ -2606,12 +1814,6 @@ #define LONGLONGSIZE 8 /**/ #endif -/* HAS_MEMCHR: - * This symbol, if defined, indicates that the memchr routine is available - * to locate characters within a C string. - */ -#define HAS_MEMCHR /**/ - /* HAS_MKSTEMP: * This symbol, if defined, indicates that the mkstemp routine is * available to exclusively create and open a uniquely named @@ -2631,18 +1833,6 @@ #define HAS_MMAP /**/ #define Mmap_t void * /**/ -/* HAS_MSG: - * This symbol, if defined, indicates that the entire msg*(2) library is - * supported (IPC mechanism based on message queues). - */ -#define HAS_MSG /**/ - -/* HAS_SEM: - * This symbol, if defined, indicates that the entire sem*(2) library is - * supported. - */ -#define HAS_SEM /**/ - /* HAS_SETGRENT: * This symbol, if defined, indicates that the setgrent routine is * available for initializing sequential access of the group database. @@ -2731,14 +1921,39 @@ * structure has a member called sa_len, indicating the length of * the structure. */ +/* HAS_SOCKADDR_IN6: + * This symbol, if defined, indicates the availability of + * struct sockaddr_in6; + */ /* HAS_SIN6_SCOPE_ID: * This symbol, if defined, indicates that the struct sockaddr_in6 * structure has a member called sin6_scope_id. */ +/* HAS_IP_MREQ: + * This symbol, if defined, indicates the availability of + * struct ip_mreq; + */ +/* HAS_IP_MREQ_SOURCE: + * This symbol, if defined, indicates the availability of + * struct ip_mreq_source; + */ +/* HAS_IPV6_MREQ: + * This symbol, if defined, indicates the availability of + * struct ipv6_mreq; + */ +/* HAS_IPV6_MREQ_SOURCE: + * This symbol, if defined, indicates the availability of + * struct ipv6_mreq_source; + */ #define HAS_SOCKET /**/ #define HAS_SOCKETPAIR /**/ /*#define HAS_SOCKADDR_SA_LEN / **/ +#define HAS_SOCKADDR_IN6 /**/ #define HAS_SIN6_SCOPE_ID /**/ +#define HAS_IP_MREQ /**/ +#define HAS_IP_MREQ_SOURCE /**/ +#define HAS_IPV6_MREQ /**/ +/*#define HAS_IPV6_MREQ_SOURCE / **/ /* USE_STAT_BLOCKS: * This symbol is defined if this system has a stat structure declaring @@ -2748,31 +1963,12 @@ #define USE_STAT_BLOCKS /**/ #endif -/* USE_STRUCT_COPY: - * This symbol, if defined, indicates that this C compiler knows how - * to copy structures. If undefined, you'll need to use a block copy - * routine of some sort instead. - */ -#define USE_STRUCT_COPY /**/ - -/* HAS_STRERROR: - * This symbol, if defined, indicates that the strerror routine is - * available to translate error numbers to strings. See the writeup - * of Strerror() in this file before you try to define your own. - */ /* HAS_SYS_ERRLIST: * This symbol, if defined, indicates that the sys_errlist array is * available to translate error numbers to strings. The extern int * sys_nerr gives the size of that table. */ -/* Strerror: - * This preprocessor symbol is defined as a macro if strerror() is - * not available to translate error numbers to strings but sys_errlist[] - * array is there. - */ -#define HAS_STRERROR /**/ #define HAS_SYS_ERRLIST /**/ -#define Strerror(e) strerror(e) /* HAS_STRTOUL: * This symbol, if defined, indicates that the strtoul routine is @@ -2821,15 +2017,6 @@ */ #define Signal_t void /* Signal handler's return type */ -/* HASVOLATILE: - * This symbol, if defined, indicates that this C compiler knows about - * the volatile declaration. - */ -#define HASVOLATILE /**/ -#ifndef HASVOLATILE -#define volatile -#endif - /* I_DIRENT: * This symbol, if defined, indicates to the C program that it should * include <dirent.h>. Using this symbol also triggers the definition @@ -2850,6 +2037,12 @@ /*#define DIRNAMLEN / **/ #define Direntry_t struct dirent +/* I_EXECINFO: + * This symbol, if defined, indicates to the C program that it should + * include <execinfo.h> for backtrace() support. + */ +#define I_EXECINFO /**/ + /* I_GRP: * This symbol, if defined, indicates to the C program that it should * include <grp.h>. @@ -2893,10 +2086,10 @@ * parameter information. While ANSI C prototypes are supported in C++, * K&R style function declarations will yield errors. */ -#define I_NDBM /**/ +/*#define I_NDBM / **/ /*#define I_GDBMNDBM / **/ -/*#define I_GDBM_NDBM / **/ -#define NDBM_H_USES_PROTOTYPES /**/ +#define I_GDBM_NDBM /**/ +/*#define NDBM_H_USES_PROTOTYPES / **/ /*#define GDBMNDBM_H_USES_PROTOTYPES / **/ /*#define GDBM_NDBM_H_USES_PROTOTYPES / **/ @@ -2964,16 +2157,25 @@ */ #define I_SYSUIO /**/ -/* I_STDARG: - * This symbol, if defined, indicates that <stdarg.h> exists and should - * be included. +/* I_TERMIO: + * This symbol, if defined, indicates that the program should include + * <termio.h> rather than <sgtty.h>. There are also differences in + * the ioctl() calls that depend on the value of this symbol. */ -/* I_VARARGS: - * This symbol, if defined, indicates to the C program that it should - * include <varargs.h>. +/* I_TERMIOS: + * This symbol, if defined, indicates that the program should include + * the POSIX termios.h rather than sgtty.h or termio.h. + * There are also differences in the ioctl() calls that depend on the + * value of this symbol. + */ +/* I_SGTTY: + * This symbol, if defined, indicates that the program should include + * <sgtty.h> rather than <termio.h>. There are also differences in + * the ioctl() calls that depend on the value of this symbol. */ -#define I_STDARG /**/ -/*#define I_VARARGS / **/ +/*#define I_TERMIO / **/ +#define I_TERMIOS /**/ +/*#define I_SGTTY / **/ /* Free_t: * This variable contains the return type of free(). It is usually @@ -2995,24 +2197,6 @@ */ /*#define MYMALLOC / **/ -/* CAN_PROTOTYPE: - * If defined, this macro indicates that the C compiler can handle - * function prototypes. - */ -/* _: - * This macro is used to declare function parameters for folks who want - * to make declarations with prototypes using a different style than - * the above macros. Use double parentheses. For example: - * - * int main _((int argc, char *argv[])); - */ -#define CAN_PROTOTYPE /**/ -#ifdef CAN_PROTOTYPE -#define _(args) args -#else -#define _(args) () -#endif - /* SH_PATH: * This symbol contains the full pathname to the shell used on this * on this system to execute Bourne shell scripts. Usually, this will be @@ -3062,11 +2246,17 @@ #define 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, 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 /**/ #define SIG_SIZE 69 /**/ -/* STDCHAR: - * This symbol is defined to be the type of char used in stdio.h. - * It has the values "unsigned char" or "char". +/* USE_CROSS_COMPILE: + * This symbol, if defined, indicates that Perl is being cross-compiled. */ -#define STDCHAR char /**/ +/* PERL_TARGETARCH: + * This symbol, if defined, indicates the target architecture + * Perl has been cross-compiled to. Undefined if not a cross-compile. + */ +#ifndef USE_CROSS_COMPILE +/*#define USE_CROSS_COMPILE / **/ +#define PERL_TARGETARCH "" /**/ +#endif /* PERL_USE_DEVEL: * This symbol, if defined, indicates that Perl was configured with @@ -3093,12 +2283,36 @@ */ /*#define HAS__FWALK / **/ +/* HAS_ACCEPT4: + * This symbol, if defined, indicates that the accept4 + * system call is available to accept socket connections. + */ +#define HAS_ACCEPT4 /**/ + +/* HAS_ACOSH: + * This symbol, if defined, indicates that the acosh routine is + * available to do the inverse hyperbolic cosine function. + */ +#define HAS_ACOSH /**/ + /* HAS_AINTL: * This symbol, if defined, indicates that the aintl routine is * available. If copysignl is also present we can emulate modfl. */ /*#define HAS_AINTL / **/ +/* HAS_ASINH: + * This symbol, if defined, indicates that the asinh routine is + * available to do the inverse hyperbolic sine function. + */ +#define HAS_ASINH /**/ + +/* HAS_ATANH: + * This symbol, if defined, indicates that the atanh routine is + * available to do the inverse hyperbolic tangent function. + */ +#define HAS_ATANH /**/ + /* HAS_BUILTIN_CHOOSE_EXPR: * Can we handle GCC builtin for compile-time ternary-like expressions */ @@ -3109,6 +2323,22 @@ #define HAS_BUILTIN_EXPECT /**/ #define HAS_BUILTIN_CHOOSE_EXPR /**/ +/* HAS_BUILTIN_ADD_OVERFLOW: + * This symbol, if defined, indicates that the compiler supports + * __builtin_add_overflow for adding integers with overflow checks. + */ +/* HAS_BUILTIN_SUB_OVERFLOW: + * This symbol, if defined, indicates that the compiler supports + * __builtin_sub_overflow for subtracting integers with overflow checks. + */ +/* HAS_BUILTIN_MUL_OVERFLOW: + * This symbol, if defined, indicates that the compiler supports + * __builtin_mul_overflow for multiplying integers with overflow checks. + */ +/*#define HAS_BUILTIN_ADD_OVERFLOW / **/ +/*#define HAS_BUILTIN_SUB_OVERFLOW / **/ +/*#define HAS_BUILTIN_MUL_OVERFLOW / **/ + /* HAS_C99_VARIADIC_MACROS: * If defined, the compiler supports C99 variadic macros. */ @@ -3144,6 +2374,12 @@ */ #define HAS_STRUCT_CMSGHDR /**/ +/* HAS_COPYSIGN: + * This symbol, if defined, indicates that the copysign routine is + * available to do the copysign function. + */ +#define HAS_COPYSIGN /**/ + /* HAS_COPYSIGNL: * This symbol, if defined, indicates that the copysignl routine is * available. If aintl is also present we can emulate modfl. @@ -3184,6 +2420,36 @@ */ /*#define DLSYM_NEEDS_UNDERSCORE / **/ +/* HAS_DUP3: + * This symbol, if defined, indicates that the dup3 + * system call is available to duplicate file descriptors. + */ +#define HAS_DUP3 /**/ + +/* HAS_ERF: + * This symbol, if defined, indicates that the erf routine is + * available to do the error function. + */ +#define HAS_ERF /**/ + +/* HAS_ERFC: + * This symbol, if defined, indicates that the erfc routine is + * available to do the complementary error function. + */ +#define HAS_ERFC /**/ + +/* HAS_EXP2: + * This symbol, if defined, indicates that the exp2 routine is + * available to do the 2**x function. + */ +#define HAS_EXP2 /**/ + +/* HAS_EXPM1: + * This symbol, if defined, indicates that the expm1 routine is + * available to do the exp(x) - 1 when x is near 1 function. + */ +#define HAS_EXPM1 /**/ + /* HAS_FAST_STDIO: * This symbol, if defined, indicates that the "fast stdio" * is available to manipulate the stdio buffers directly. @@ -3203,6 +2469,26 @@ */ #define FCNTL_CAN_LOCK /**/ +/* HAS_FDCLOSE: + * This symbol, if defined, indicates that the fdclose routine is + * available to free a FILE structure without closing the underlying + * file descriptor. This function appeared in FreeBSD 10.2. + */ +/*#define HAS_FDCLOSE / **/ + +/* HAS_FDIM: + * This symbol, if defined, indicates that the fdim routine is + * available to do the positive difference function. + */ +#define HAS_FDIM /**/ + +/* HAS_FEGETROUND: + * This symbol, if defined, indicates that the fegetround routine is + * available to return the macro corresponding to the current rounding + * mode. + */ +#define HAS_FEGETROUND /**/ + /* HAS_FINITE: * This symbol, if defined, indicates that the finite routine is * available to check whether a double is finite (non-infinity non-NaN). @@ -3224,6 +2510,24 @@ */ #define HAS_FLOCK_PROTO /**/ +/* HAS_FMA: + * This symbol, if defined, indicates that the fma routine is + * available to do the multiply-add function. + */ +#define HAS_FMA /**/ + +/* HAS_FMAX: + * This symbol, if defined, indicates that the fmax routine is + * available to do the maximum function. + */ +#define HAS_FMAX /**/ + +/* HAS_FMIN: + * This symbol, if defined, indicates that the fmin routine is + * available to do the minimum function. + */ +#define HAS_FMIN /**/ + /* HAS_FP_CLASS: * This symbol, if defined, indicates that the fp_class routine is * available to classify doubles. Available for example in Digital UNIX. @@ -3242,6 +2546,13 @@ */ /*#define HAS_FP_CLASS / **/ +/* HAS_FP_CLASSL: + * This symbol, if defined, indicates that the fp_classl routine is + * available to classify long doubles. Available for example in + * Digital UNIX. See for possible values HAS_FP_CLASS. + */ +/*#define HAS_FP_CLASSL / **/ + /* HAS_FPCLASS: * This symbol, if defined, indicates that the fpclass routine is * available to classify doubles. Available for example in Solaris/SVR4. @@ -3272,7 +2583,19 @@ * FP_NAN NaN * */ -/*#define HAS_FPCLASSIFY / **/ +/* HAS_FP_CLASSIFY: + * This symbol, if defined, indicates that the fp_classify routine is + * available to classify doubles. The values are defined in <math.h> + * + * FP_NORMAL Normalized + * FP_ZERO Zero + * FP_INFINITE Infinity + * FP_SUBNORMAL Denormalized + * FP_NAN NaN + * + */ +#define HAS_FPCLASSIFY /**/ +/*#define HAS_FP_CLASSIFY / **/ /* HAS_FPCLASSL: * This symbol, if defined, indicates that the fpclassl routine is @@ -3292,6 +2615,12 @@ */ /*#define HAS_FPCLASSL / **/ +/* HAS_FPGETROUND: + * This symbol, if defined, indicates that the fpgetround routine is + * available to get the floating point rounding mode. + */ +/*#define HAS_FPGETROUND / **/ + /* HAS_FPOS64_T: * This symbol will be defined if the C compiler supports fpos64_t. */ @@ -3310,6 +2639,27 @@ */ /*#define HAS_STRUCT_FS_DATA / **/ +/* HAS_FCHMODAT: + * This symbol is defined if the fchmodat() routine is available. + */ +/* HAS_LINKAT: + * This symbol is defined if the linkat() routine is available. + */ +/* HAS_OPENAT: + * This symbol is defined if the openat() routine is available. + */ +/* HAS_RENAMEAT: + * This symbol is defined if the renameat() routine is available. + */ +/* HAS_UNLINKAT: + * This symbol is defined if the unlinkat() routine is available. + */ +#define HAS_FCHMODAT /**/ +#define HAS_LINKAT /**/ +#define HAS_OPENAT /**/ +#define HAS_RENAMEAT /**/ +#define HAS_UNLINKAT /**/ + /* HAS_FSEEKO: * This symbol, if defined, indicates that the fseeko routine is * available to fseek beyond 32 bits (useful for ILP32 hosts). @@ -3341,6 +2691,13 @@ */ #define HAS_FUTIMES /**/ +/* HAS_GAI_STRERROR: + * This symbol, if defined, indicates that the gai_strerror routine + * is available to translate error codes returned by getaddrinfo() + * into human readable strings. + */ +#define HAS_GAI_STRERROR /**/ + /* HAS_GETADDRINFO: * This symbol, if defined, indicates that the getaddrinfo() function * is available for use. @@ -3407,6 +2764,18 @@ */ #define HAS_HASMNTOPT /**/ +/* HAS_HYPOT: + * This symbol, if defined, indicates that the hypot routine is + * available to do the hypotenuse function. + */ +#define HAS_HYPOT /**/ + +/* HAS_ILOGB: + * This symbol, if defined, indicates that the ilogb routine is + * available to get integer exponent of a floating-point value. + */ +#define HAS_ILOGB /**/ + /* HAS_ILOGBL: * This symbol, if defined, indicates that the ilogbl routine is * available. If scalbnl is also present we can emulate frexpl. @@ -3432,11 +2801,24 @@ */ #define HAS_INT64_T /**/ +/* HAS_ISBLANK: + * This manifest constant lets the C program know that isblank + * is available. + */ +#define HAS_ISBLANK /**/ + /* HAS_ISFINITE: * This symbol, if defined, indicates that the isfinite routine is * available to check whether a double is finite (non-infinity non-NaN). */ -/*#define HAS_ISFINITE / **/ +#define HAS_ISFINITE /**/ + +/* HAS_ISFINITEL: + * This symbol, if defined, indicates that the isfinitel routine is + * available to check whether a long double is finite. + * (non-infinity non-NaN). + */ +/*#define HAS_ISFINITEL / **/ /* HAS_ISINF: * This symbol, if defined, indicates that the isinf routine is @@ -3444,6 +2826,18 @@ */ #define HAS_ISINF /**/ +/* HAS_ISINFL: + * This symbol, if defined, indicates that the isinfl routine is + * available to check whether a long double is an infinity. + */ +#define HAS_ISINFL /**/ + +/* HAS_ISLESS: + * This symbol, if defined, indicates that the isless routine is + * available to do the isless function. + */ +/*#define HAS_ISLESS / **/ + /* HAS_ISNAN: * This symbol, if defined, indicates that the isnan routine is * available to check whether a double is a NaN. @@ -3456,6 +2850,31 @@ */ #define HAS_ISNANL /**/ +/* HAS_ISNORMAL: + * This symbol, if defined, indicates that the isnormal routine is + * available to check whether a double is normal (non-zero normalized). + */ +#define HAS_ISNORMAL /**/ + +/* HAS_J0: + * This symbol, if defined, indicates to the C program that the + * j0() function is available for Bessel functions of the first + * kind of the order zero, for doubles. + */ +/* HAS_J0L: + * This symbol, if defined, indicates to the C program that the + * j0l() function is available for Bessel functions of the first + * kind of the order zero, for long doubles. + */ +#define HAS_J0 /**/ +#define HAS_J0L /**/ + +/* HAS_LC_MONETARY_2008: + * This symbol, if defined, indicates that the localeconv routine is + * available and has the additional members added in POSIX 1003.1-2008. + */ +#define HAS_LC_MONETARY_2008 /**/ + /* HAS_LDBL_DIG: * This symbol, if defined, indicates that this system's <float.h> * or <limits.h> defines the symbol LDBL_DIG, which is the number @@ -3464,12 +2883,98 @@ */ #define HAS_LDBL_DIG /* */ +/* HAS_LGAMMA: + * This symbol, if defined, indicates that the lgamma routine is + * available to do the log gamma function. See also HAS_TGAMMA and + * HAS_LGAMMA_R. + */ +#define HAS_LGAMMA /**/ + +/* HAS_LGAMMA_R: + * This symbol, if defined, indicates that the lgamma_r routine is + * available to do the log gamma function without using the global + * signgam variable. + */ +#define HAS_LGAMMA_R /**/ + /* LIBM_LIB_VERSION: * This symbol, if defined, indicates that libm exports _LIB_VERSION * and that math.h defines the enum to manipulate it. */ #define LIBM_LIB_VERSION /**/ +/* HAS_LLRINT: + * This symbol, if defined, indicates that the llrint routine is + * available to return the long long value closest to a double + * (according to the current rounding mode). + */ +#define HAS_LLRINT /**/ + +/* HAS_LLRINTL: + * This symbol, if defined, indicates that the llrintl routine is + * available to return the long long value closest to a long double + * (according to the current rounding mode). + */ +#define HAS_LLRINTL /**/ + +/* HAS_LLROUND: + * This symbol, if defined, indicates that the llround routine is + * available to return the nearest long long value. + */ +#define HAS_LLROUND /**/ + +/* HAS_LLROUNDL: + * This symbol, if defined, indicates that the llroundl routine is + * available to return the nearest long long value away from zero of + * the long double argument value. + */ +#define HAS_LLROUNDL /**/ + +/* HAS_LOG1P: + * This symbol, if defined, indicates that the log1p routine is + * available to do the logarithm of 1 plus argument function. + */ +#define HAS_LOG1P /**/ + +/* HAS_LOG2: + * This symbol, if defined, indicates that the log2 routine is + * available to do the log2 function. + */ +#define HAS_LOG2 /**/ + +/* HAS_LOGB: + * This symbol, if defined, indicates that the logb routine is + * available to do the logb function. + */ +#define HAS_LOGB /**/ + +/* HAS_LRINT: + * This symbol, if defined, indicates that the lrint routine is + * available to return the integral value closest to a double + * (according to the current rounding mode). + */ +#define HAS_LRINT /**/ + +/* HAS_LRINTL: + * This symbol, if defined, indicates that the lrintl routine is + * available to return the integral value closest to a long double + * (according to the current rounding mode). + */ +#define HAS_LRINTL /**/ + +/* HAS_LROUND: + * This symbol, if defined, indicates that the lround routine is + * available to return the nearest integral value. + */ +#define HAS_LROUND /**/ + +/* HAS_LROUNDL: + * This symbol, if defined, indicates that the lroundl routine is + * available to return the nearest integral value away from zero of + * the long double argument value. + */ +#define HAS_LROUNDL /**/ + /* HAS_MADVISE: * This symbol, if defined, indicates that the madvise system call is * available to map a file into memory. @@ -3488,12 +2993,33 @@ */ /*#define HAS_MALLOC_GOOD_SIZE / **/ +/* HAS_MEMMEM: + * This symbol, if defined, indicates that the memmem routine is + * available to return a pointer to the start of the first occurance + * of a substring in a memory area (or NULL if not found). + */ +#define HAS_MEMMEM /**/ + +/* HAS_MEMRCHR: + * This symbol, if defined, indicates that the memrchr routine is + * available to return a pointer to the last occurrence of a byte in + * a memory area (or NULL if not found). + */ +#define HAS_MEMRCHR /**/ + /* HAS_MKDTEMP: * This symbol, if defined, indicates that the mkdtemp routine is * available to exclusively create a uniquely named temporary directory. */ #define HAS_MKDTEMP /**/ +/* HAS_MKOSTEMP: + * This symbol, if defined, indicates that the mkostemp routine is + * available to exclusively create and open a uniquely named + * temporary file. + */ +#define HAS_MKOSTEMP /**/ + /* HAS_MKSTEMPS: * This symbol, if defined, indicates that the mkstemps routine is * available to exclusively create and open a uniquely named @@ -3526,6 +3052,66 @@ */ #define HAS_STRUCT_MSGHDR /**/ +/* HAS_NAN: + * This symbol, if defined, indicates that the nan routine is + * available to generate NaN. + */ +#define HAS_NAN /**/ + +/* HAS_NANOSLEEP: + * This symbol, if defined, indicates that the nanosleep + * system call is available to sleep with 1E-9 sec accuracy. + */ +#define HAS_NANOSLEEP /**/ + +/* HAS_NEARBYINT: + * This symbol, if defined, indicates that the nearbyint routine is + * available to return the integral value closest to (according to + * the current rounding mode) to x. + */ +#define HAS_NEARBYINT /**/ + +/* HAS_NEWLOCALE: + * This symbol, if defined, indicates that the newlocale routine is + * available to return a new locale object or modify an existing + * locale object. + */ +/* HAS_FREELOCALE: + * This symbol, if defined, indicates that the freelocale routine is + * available to deallocates the resources associated with a locale object. + */ +/* HAS_USELOCALE: + * This symbol, if defined, indicates that the uselocale routine is + * available to set the current locale for the calling thread. + */ +/* HAS_QUERYLOCALE: + * This symbol, if defined, indicates that the querylocale routine is + * available to return the name of the locale for a category mask. + */ +/* I_XLOCALE: + * This symbol, if defined, indicates to the C program that it should + * include <xlocale.h> to get uselocale() and its friends. + */ +#define HAS_NEWLOCALE /**/ +#define HAS_FREELOCALE /**/ +#define HAS_USELOCALE /**/ +/*#define HAS_QUERYLOCALE / **/ +#define I_XLOCALE /**/ + +/* HAS_NEXTAFTER: + * This symbol, if defined, indicates that the nextafter routine is + * available to return the next machine representable double from + * x in direction y. + */ +#define HAS_NEXTAFTER /**/ + +/* HAS_NEXTTOWARD: + * This symbol, if defined, indicates that the nexttoward routine is + * available to return the next machine representable long double from + * x in direction y. + */ +#define HAS_NEXTTOWARD /**/ + /* HAS_NL_LANGINFO: * This symbol, if defined, indicates that the nl_langinfo routine is * available to return local data. You will also need <langinfo.h> @@ -3538,9 +3124,17 @@ */ /*#define HAS_OFF64_T / **/ +/* HAS_PIPE2: + * This symbol, if defined, indicates that the pipe2 + * system call is available to create inter-process pipes. + */ +#define HAS_PIPE2 /**/ + /* HAS_PRCTL: * This symbol, if defined, indicates that the prctl routine is * available to set process title. + * Note that there are at least two prctl variants: Linux and Irix. + * While they are somewhat similar, they are incompatible. */ /* HAS_PRCTL_SET_NAME: * This symbol, if defined, indicates that the prctl routine is @@ -3570,6 +3164,11 @@ */ #define HAS_PTHREAD_ATTR_SETSCOPE /**/ +/* HAS_PTRDIFF_T: + * This symbol will be defined if the C compiler supports ptrdiff_t. + */ +#define HAS_PTRDIFF_T /**/ + /* HAS_READV: * This symbol, if defined, indicates that the readv routine is * available to do gather reads. You will also need <sys/uio.h> @@ -3583,6 +3182,31 @@ */ #define HAS_RECVMSG /**/ +/* HAS_REMAINDER: + * This symbol, if defined, indicates that the remainder routine is + * available to return the floating-point remainder. + */ +#define HAS_REMAINDER /**/ + +/* HAS_REMQUO: + * This symbol, if defined, indicates that the remquo routine is + * available to return the remainder and part of quotient. + */ +#define HAS_REMQUO /**/ + +/* HAS_RINT: + * This symbol, if defined, indicates that the rint routine is + * available to return the nearest integral value to x as double + * using the current rounding mode. + */ +#define HAS_RINT /**/ + +/* HAS_ROUND: + * This symbol, if defined, indicates that the round routine is + * available to round to nearest integer, away from zero. + */ +#define HAS_ROUND /**/ + /* HAS_SBRK_PROTO: * This symbol, if defined, indicates that the system provides * a prototype for the sbrk() function. Otherwise, it is up @@ -3592,6 +3216,13 @@ */ #define HAS_SBRK_PROTO /**/ +/* HAS_SCALBN: + * This symbol, if defined, indicates that the scalbn routine is + * available to multiply floating-point number by integral power + * of radix. + */ +#define HAS_SCALBN /**/ + /* HAS_SCALBNL: * This symbol, if defined, indicates that the scalbnl routine is * available. If ilogbl is also present we can emulate frexpl. @@ -3672,14 +3303,6 @@ */ /*#define HAS_SOCKS5_INIT / **/ -/* SPRINTF_RETURNS_STRLEN: - * This variable defines whether sprintf returns the length of the string - * (as per the ANSI spec). Some C libraries retain compatibility with - * pre-ANSI C and return a pointer to the passed in buffer; for these - * this variable will be undef. - */ -#define SPRINTF_RETURNS_STRLEN /**/ - /* HAS_SQRTL: * This symbol, if defined, indicates that the sqrtl routine is * available to do long double square roots. @@ -3711,7 +3334,7 @@ * have statfs() and struct statfs, they have ustat() and getmnt() * with struct ustat and struct fs_data. */ -/*#define HAS_STRUCT_STATFS_F_FLAGS / **/ +#define HAS_STRUCT_STATFS_F_FLAGS /**/ /* HAS_STRUCT_STATFS: * This symbol, if defined, indicates that the struct statfs @@ -3725,6 +3348,13 @@ */ #define HAS_FSTATVFS /**/ +/* HAS_STRERROR_L: + * This symbol, if defined, indicates that the strerror_l routine is + * available to return the error message for a given errno value in + * a particular locale (identified by a locale_t object). + */ +#define HAS_STRERROR_L /**/ + /* HAS_STRFTIME: * This symbol, if defined, indicates that the strftime routine is * available to do time formatting. @@ -3743,6 +3373,12 @@ */ /*#define HAS_STRLCPY / **/ +/* HAS_STRNLEN: + * This symbol, if defined, indicates that the strnlen () routine is + * available to check the length of a string up to a maximum. + */ +#define HAS_STRNLEN /**/ + /* HAS_STRTOLD: * This symbol, if defined, indicates that the strtold routine is * available to convert strings to long doubles. @@ -3790,6 +3426,12 @@ */ #define HAS_TELLDIR_PROTO /**/ +/* HAS_TGAMMA: + * This symbol, if defined, indicates that the tgamma routine is + * available to do the gamma function. See also HAS_LGAMMA. + */ +#define HAS_TGAMMA /**/ + /* HAS_CTIME64: * This symbol, if defined, indicates that the ctime64 () routine is * available to do the 64bit variant of ctime () @@ -3827,6 +3469,18 @@ */ #define HAS_TIMEGM /**/ +/* HAS_TRUNC: + * This symbol, if defined, indicates that the trunc routine is + * available to round doubles towards zero. + */ +#define HAS_TRUNC /**/ + +/* HAS_TRUNCL: + * This symbol, if defined, indicates that the truncl routine is + * available. If copysignl is also present we can emulate modfl. + */ +#define HAS_TRUNCL /**/ + /* U32_ALIGNMENT_REQUIRED: * This symbol, if defined, indicates that you must access * character data through U32-aligned pointers. @@ -3868,12 +3522,30 @@ */ #define HAS_USTAT /**/ +/* HAS_WCSCMP: + * This symbol, if defined, indicates that the wcscmp routine is + * available to compare two wide character strings. + */ +#define HAS_WCSCMP /**/ + +/* HAS_WCSXFRM: + * This symbol, if defined, indicates that the wcsxfrm routine is + * available to tranform a wide character string for wcscmp(). + */ +#define HAS_WCSXFRM /**/ + /* HAS_WRITEV: * This symbol, if defined, indicates that the writev routine is * available to do scatter writes. */ #define HAS_WRITEV /**/ +/* DEFAULT_INC_EXCLUDES_DOT: + * This symbol, if defined, removes the legacy default behavior of + * including '.' at the end of @INC. + */ +#define DEFAULT_INC_EXCLUDES_DOT /**/ + /* USE_DYNAMIC_LOADING: * This symbol, if defined, indicates that dynamic loading of * some sort is available. @@ -3881,8 +3553,10 @@ #define USE_DYNAMIC_LOADING /**/ /* FFLUSH_NULL: - * This symbol, if defined, tells that fflush(NULL) does flush - * all pending stdio output. + * This symbol, if defined, tells that fflush(NULL) correctly + * flushes all pending stdio output without side effects. In + * particular, on some platforms calling fflush(NULL) *still* + * corrupts STDIN if it is a pipe. */ /* FFLUSH_ALL: * This symbol, if defined, tells that to flush @@ -3894,11 +3568,11 @@ #define FFLUSH_NULL /**/ /*#define FFLUSH_ALL / **/ -/* I_ASSERT: - * This symbol, if defined, indicates that <assert.h> exists and - * could be included by the C program to get the assert() macro. +/* I_BFD: + * This symbol, if defined, indicates that <bfd.h> exists and + * can be included. */ -#define I_ASSERT /**/ +/*#define I_BFD / **/ /* I_CRYPT: * This symbol, if defined, indicates that <crypt.h> exists and @@ -3932,9 +3606,15 @@ */ #define DB_Hash_t u_int32_t /**/ #define DB_Prefix_t size_t /**/ -#define DB_VERSION_MAJOR_CFG 4 /**/ -#define DB_VERSION_MINOR_CFG 5 /**/ -#define DB_VERSION_PATCH_CFG 20 /**/ +#define DB_VERSION_MAJOR_CFG 5 /**/ +#define DB_VERSION_MINOR_CFG 1 /**/ +#define DB_VERSION_PATCH_CFG 29 /**/ + +/* I_FENV: + * This symbol, if defined, indicates to the C program that it should + * include <fenv.h> to get the floating point environment definitions. + */ +#define I_FENV /**/ /* I_FP: * This symbol, if defined, indicates that <fp.h> exists and @@ -4002,6 +3682,12 @@ */ /*#define I_PROT / **/ +/* I_QUADMATH: + * This symbol, if defined, indicates that <quadmath.h> exists and + * should be included. + */ +#define I_QUADMATH /**/ + /* I_SHADOW: * This symbol, if defined, indicates that <shadow.h> exists and * should be included. @@ -4014,6 +3700,18 @@ */ /*#define I_SOCKS / **/ +/* I_STDBOOL: + * This symbol, if defined, indicates that <stdbool.h> exists and + * can be included. + */ +#define I_STDBOOL /**/ + +/* I_STDINT: + * This symbol, if defined, indicates that <stdint.h> exists and + * should be included. + */ +#define I_STDINT /**/ + /* I_SUNMATH: * This symbol, if defined, indicates that <sunmath.h> exists and * should be included. @@ -4067,6 +3765,33 @@ */ #define I_USTAT /**/ +/* I_WCHAR: + * This symbol, if defined, indicates to the C program that <wchar.h> + * is available for inclusion + */ +#define I_WCHAR /**/ + +/* DOUBLEINFBYTES: + * This symbol, if defined, is a comma-separated list of + * hexadecimal bytes for the double precision infinity. + */ +/* DOUBLENANBYTES: + * This symbol, if defined, is a comma-separated list of + * hexadecimal bytes (0xHH) for the double precision not-a-number. + */ +/* LONGDBLINFBYTES: + * This symbol, if defined, is a comma-separated list of + * hexadecimal bytes for the long double precision infinity. + */ +/* LONGDBLNANBYTES: + * This symbol, if defined, is a comma-separated list of + * hexadecimal bytes (0xHH) for the long double precision not-a-number. + */ +#define DOUBLEINFBYTES 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f /**/ +#define DOUBLENANBYTES 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff /**/ +#define LONGDBLINFBYTES 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 /**/ +#define LONGDBLNANBYTES 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 /**/ + /* PERL_PRIfldbl: * This symbol, if defined, contains the string used by stdio to * format long doubles (format 'f') for output. @@ -4083,10 +3808,108 @@ * This symbol, if defined, contains the string used by stdio to * format long doubles (format 'f') for input. */ +/* DOUBLEKIND: + * DOUBLEKIND will be one of + * DOUBLE_IS_IEEE_754_32_BIT_LITTLE_ENDIAN + * DOUBLE_IS_IEEE_754_32_BIT_BIG_ENDIAN + * DOUBLE_IS_IEEE_754_64_BIT_LITTLE_ENDIAN + * DOUBLE_IS_IEEE_754_64_BIT_BIG_ENDIAN + * DOUBLE_IS_IEEE_754_128_BIT_LITTLE_ENDIAN + * DOUBLE_IS_IEEE_754_128_BIT_BIG_ENDIAN + * DOUBLE_IS_IEEE_754_64_BIT_MIXED_ENDIAN_LE_BE + * DOUBLE_IS_IEEE_754_64_BIT_MIXED_ENDIAN_BE_LE + * DOUBLE_IS_VAX_F_FLOAT + * DOUBLE_IS_VAX_D_FLOAT + * DOUBLE_IS_VAX_G_FLOAT + * DOUBLE_IS_IBM_SINGLE_32_BIT + * DOUBLE_IS_IBM_DOUBLE_64_BIT + * DOUBLE_IS_CRAY_SINGLE_64_BIT + * DOUBLE_IS_UNKNOWN_FORMAT + */ +/* DOUBLE_HAS_INF: + * This symbol, if defined, indicates that the double has + * the infinity. + */ +/* DOUBLE_HAS_NAN: + * This symbol, if defined, indicates that the double has + * the not-a-number. + */ +/* DOUBLE_HAS_NEGATIVE_ZERO: + * This symbol, if defined, indicates that the double has + * the negative_zero. + */ +/* DOUBLE_HAS_SUBNORMALS: + * This symbol, if defined, indicates that the double has + * the subnormals (denormals). + */ +/* DOUBLE_STYLE_CRAY: + * This symbol, if defined, indicates that the double is + * the 64-bit CRAY mainframe format. + */ +/* DOUBLE_STYLE_IBM: + * This symbol, if defined, indicates that the double is + * the 64-bit IBM mainframe format. + */ +/* DOUBLE_STYLE_IEEE: + * This symbol, if defined, indicates that the double is + * the 64-bit IEEE 754. + */ +/* DOUBLE_STYLE_VAX: + * This symbol, if defined, indicates that the double is + * the 64-bit VAX format D or G. + */ +#define DOUBLEKIND 3 /**/ +#define DOUBLE_IS_IEEE_754_32_BIT_LITTLE_ENDIAN 1 +#define DOUBLE_IS_IEEE_754_32_BIT_BIG_ENDIAN 2 +#define DOUBLE_IS_IEEE_754_64_BIT_LITTLE_ENDIAN 3 +#define DOUBLE_IS_IEEE_754_64_BIT_BIG_ENDIAN 4 +#define DOUBLE_IS_IEEE_754_128_BIT_LITTLE_ENDIAN 5 +#define DOUBLE_IS_IEEE_754_128_BIT_BIG_ENDIAN 6 +#define DOUBLE_IS_IEEE_754_64_BIT_MIXED_ENDIAN_LE_BE 7 +#define DOUBLE_IS_IEEE_754_64_BIT_MIXED_ENDIAN_BE_LE 8 +#define DOUBLE_IS_VAX_F_FLOAT 9 +#define DOUBLE_IS_VAX_D_FLOAT 10 +#define DOUBLE_IS_VAX_G_FLOAT 11 +#define DOUBLE_IS_IBM_SINGLE_32_BIT 12 +#define DOUBLE_IS_IBM_DOUBLE_64_BIT 13 +#define DOUBLE_IS_CRAY_SINGLE_64_BIT 14 +#define DOUBLE_IS_UNKNOWN_FORMAT -1 #define PERL_PRIfldbl "Lf" /**/ #define PERL_PRIgldbl "Lg" /**/ #define PERL_PRIeldbl "Le" /**/ #define PERL_SCNfldbl "Lf" /**/ +#define DOUBLE_HAS_INF +#define DOUBLE_HAS_NAN +#define DOUBLE_HAS_NEGATIVE_ZERO +#define DOUBLE_HAS_SUBNORMALS +#undef DOUBLE_STYLE_CRAY +#undef DOUBLE_STYLE_IBM +#define DOUBLE_STYLE_IEEE +#undef DOUBLE_STYLE_VAX + +/* DOUBLEMANTBITS: + * This symbol, if defined, tells how many mantissa bits + * there are in double precision floating point format. + * Note that this is usually DBL_MANT_DIG minus one, since + * with the standard IEEE 754 formats DBL_MANT_DIG includes + * the implicit bit, which doesn't really exist. + */ +/* LONGDBLMANTBITS: + * This symbol, if defined, tells how many mantissa bits + * there are in long double precision floating point format. + * Note that this can be LDBL_MANT_DIG minus one, + * since LDBL_MANT_DIG can include the IEEE 754 implicit bit. + * The common x86-style 80-bit long double does not have + * an implicit bit. + */ +/* NVMANTBITS: + * This symbol, if defined, tells how many mantissa bits + * (not including implicit bit) there are in a Perl NV. + * This depends on which floating point type was chosen. + */ +#define DOUBLEMANTBITS 52 +#define LONGDBLMANTBITS 64 +#define NVMANTBITS 52 /* NEED_VA_COPY: * This symbol, if defined, indicates that the system stores @@ -4097,7 +3920,7 @@ * of copying mechanisms, handy.h defines a platform- * independent macro, Perl_va_copy(src, dst), to do the job. */ -/*#define NEED_VA_COPY / **/ +#define NEED_VA_COPY /**/ /* IVTYPE: * This symbol defines the C type used for Perl's IV. @@ -4164,6 +3987,11 @@ */ /* NVSIZE: * This symbol contains the sizeof(NV). + * Note that some floating point formats have unused bytes. + * The most notable example is the x86* 80-bit extended precision + * which comes in byte sizes of 12 and 16 (for 32 and 64 bit + * platforms, respectively), but which only uses 10 bytes. + * Perl compiled with -Duselongdouble on x86* is like this. */ /* NV_PRESERVES_UV: * This symbol, if defined, indicates that a variable of type NVTYPE @@ -4183,19 +4011,19 @@ * This symbol, if defined, indicates that a variable of type NVTYPE * stores 0.0 in memory as all bits zero. */ -#define IVTYPE long long /**/ -#define UVTYPE unsigned long long /**/ +#define IVTYPE long /**/ +#define UVTYPE unsigned long /**/ #define I8TYPE signed char /**/ #define U8TYPE unsigned char /**/ #define I16TYPE short /**/ #define U16TYPE unsigned short /**/ -#define I32TYPE long /**/ -#define U32TYPE unsigned long /**/ +#define I32TYPE int /**/ +#define U32TYPE unsigned int /**/ #ifdef HAS_QUAD -#define I64TYPE long long /**/ -#define U64TYPE unsigned long long /**/ +#define I64TYPE long /**/ +#define U64TYPE unsigned long /**/ #endif -#define NVTYPE long double /**/ +#define NVTYPE double /**/ #define IVSIZE 8 /**/ #define UVSIZE 8 /**/ #define I8SIZE 1 /**/ @@ -4208,10 +4036,10 @@ #define I64SIZE 8 /**/ #define U64SIZE 8 /**/ #endif -#define NVSIZE 12 /**/ -#define NV_PRESERVES_UV -#define NV_PRESERVES_UV_BITS 64 -#define NV_OVERFLOWS_INTEGERS_AT 256.0*256.0*256.0*256.0*256.0*256.0*256.0*2.0*2.0*2.0*2.0*2.0*2.0*2.0*2.0 +#define NVSIZE 8 /**/ +#undef NV_PRESERVES_UV +#define NV_PRESERVES_UV_BITS 53 +#define NV_OVERFLOWS_INTEGERS_AT (256.0*256.0*256.0*256.0*256.0*256.0*2.0*2.0*2.0*2.0*2.0) #define NV_ZERO_IS_ALLBITS_ZERO #if UVSIZE == 8 # ifdef BYTEORDER @@ -4259,14 +4087,14 @@ * This symbol defines the format string used for printing a Perl NV * using %g-ish floating point format. */ -#define IVdf "Ld" /**/ -#define UVuf "Lu" /**/ -#define UVof "Lo" /**/ -#define UVxf "Lx" /**/ -#define UVXf "LX" /**/ -#define NVef "Le" /**/ -#define NVff "Lf" /**/ -#define NVgf "Lg" /**/ +#define IVdf "ld" /**/ +#define UVuf "lu" /**/ +#define UVof "lo" /**/ +#define UVxf "lx" /**/ +#define UVXf "lX" /**/ +#define NVef "e" /**/ +#define NVff "f" /**/ +#define NVgf "g" /**/ /* SELECT_MIN_BITS: * This symbol holds the minimum number of bits operated by select. @@ -4275,14 +4103,24 @@ * is either n or 32*ceil(n/32), especially many little-endians do * the latter. This is only useful if you have select(), naturally. */ -#define SELECT_MIN_BITS 32 /**/ +#define SELECT_MIN_BITS 64 /**/ + +/* ST_INO_SIZE: + * This variable contains the size of struct stat's st_ino in bytes. + */ +/* ST_INO_SIGN: + * This symbol holds the signedness of struct stat's st_ino. + * 1 for unsigned, -1 for signed. + */ +#define ST_INO_SIGN 1 /* st_ino sign */ +#define ST_INO_SIZE 8 /* st_ino size */ /* STARTPERL: * This variable contains the string to put in front of a perl * script to make sure (one hopes) that it runs with perl and not * some shell. */ -#define STARTPERL "#!/pro/bin/perl5.24.3" /**/ +#define STARTPERL "#!/opt/perl/bin/perl5.28.1" /**/ /* HAS_STDIO_STREAM_ARRAY: * This symbol, if defined, tells that there is an array @@ -4313,10 +4151,10 @@ * This symbol contains the minimum value for the time_t offset that * the system function localtime () accepts, and defaults to 0 */ -#define GMTIME_MAX 2147483647 /**/ -#define GMTIME_MIN -2147483648 /**/ -#define LOCALTIME_MAX 2147483647 /**/ -#define LOCALTIME_MIN -2147483648 /**/ +#define GMTIME_MAX 67768036191676799 /**/ +#define GMTIME_MIN -62167219200 /**/ +#define LOCALTIME_MAX 67768036191676799 /**/ +#define LOCALTIME_MIN -62167219125 /**/ /* USE_64_BIT_INT: * This symbol, if defined, indicates that 64-bit integers should @@ -4340,9 +4178,15 @@ #define USE_64_BIT_INT /**/ #endif #ifndef USE_64_BIT_ALL -/*#define USE_64_BIT_ALL / **/ +#define USE_64_BIT_ALL /**/ #endif +/* USE_CBACKTRACE: + * This symbol, if defined, indicates that Perl should + * be built with support for backtrace. + */ +/*#define USE_CBACKTRACE / **/ + /* USE_DTRACE: * This symbol, if defined, indicates that Perl should * be built with support for DTrace. @@ -4358,6 +4202,13 @@ /*#define USE_FAST_STDIO / **/ #endif +/* USE_KERN_PROC_PATHNAME: + * This symbol, if defined, indicates that we can use sysctl with + * KERN_PROC_PATHNAME to get a full path for the executable, and hence + * convert $^X to an absolute path. + */ +/*#define USE_KERN_PROC_PATHNAME / **/ + /* USE_LARGE_FILES: * This symbol, if defined, indicates that large file support * should be used when available. @@ -4371,7 +4222,7 @@ * be used when available. */ #ifndef USE_LONG_DOUBLE -#define USE_LONG_DOUBLE /**/ +/*#define USE_LONG_DOUBLE / **/ #endif /* USE_MORE_BITS: @@ -4390,6 +4241,13 @@ /*#define MULTIPLICITY / **/ #endif +/* USE_NSGETEXECUTABLEPATH: + * This symbol, if defined, indicates that we can use _NSGetExecutablePath + * and realpath to get a full path for the executable, and hence convert + * $^X to an absolute path. + */ +/*#define USE_NSGETEXECUTABLEPATH / **/ + /* USE_PERLIO: * This symbol, if defined, indicates that the PerlIO abstraction should * be used throughout. If not defined, stdio should be @@ -4399,6 +4257,14 @@ #define USE_PERLIO /**/ #endif +/* USE_QUADMATH: + * This symbol, if defined, indicates that the quadmath library should + * be used when available. + */ +#ifndef USE_QUADMATH +/*#define USE_QUADMATH / **/ +#endif + /* USE_SOCKS: * This symbol, if defined, indicates that Perl should * be built to use socks. @@ -4471,7 +4337,7 @@ * This symbol holds the type used for the 1st argument to * getnetbyaddr(). */ -#define Netdb_host_t const void * /**/ +#define Netdb_host_t char * /**/ #define Netdb_hlen_t size_t /**/ #define Netdb_name_t const char * /**/ #define Netdb_net_t in_addr_t /**/ @@ -4490,6 +4356,754 @@ */ #define Sock_size_t socklen_t /**/ +/* ARCHNAME: + * This symbol holds a string representing the architecture name. + * It may be used to construct an architecture-dependant pathname + * where library files may be held under a private library, for + * instance. + */ +#define ARCHNAME "x86_64-linux" /**/ + +/* HAS_ASCTIME_R: + * This symbol, if defined, indicates that the asctime_r routine + * is available to asctime re-entrantly. + */ +/* ASCTIME_R_PROTO: + * This symbol encodes the prototype of asctime_r. + * It is zero if d_asctime_r is undef, and one of the + * REENTRANT_PROTO_T_ABC macros of reentr.h if d_asctime_r + * is defined. + */ +/*#define HAS_ASCTIME_R / **/ +#define ASCTIME_R_PROTO 0 /**/ + +/* HAS_CRYPT_R: + * This symbol, if defined, indicates that the crypt_r routine + * is available to crypt re-entrantly. + */ +/* CRYPT_R_PROTO: + * This symbol encodes the prototype of crypt_r. + * It is zero if d_crypt_r is undef, and one of the + * REENTRANT_PROTO_T_ABC macros of reentr.h if d_crypt_r + * is defined. + */ +/*#define HAS_CRYPT_R / **/ +#define CRYPT_R_PROTO 0 /**/ + +/* HAS_CTERMID_R: + * This symbol, if defined, indicates that the ctermid_r routine + * is available to ctermid re-entrantly. + */ +/* CTERMID_R_PROTO: + * This symbol encodes the prototype of ctermid_r. + * It is zero if d_ctermid_r is undef, and one of the + * REENTRANT_PROTO_T_ABC macros of reentr.h if d_ctermid_r + * is defined. + */ +/*#define HAS_CTERMID_R / **/ +#define CTERMID_R_PROTO 0 /**/ + +/* HAS_CTIME_R: + * This symbol, if defined, indicates that the ctime_r routine + * is available to ctime re-entrantly. + */ +/* CTIME_R_PROTO: + * This symbol encodes the prototype of ctime_r. + * It is zero if d_ctime_r is undef, and one of the + * REENTRANT_PROTO_T_ABC macros of reentr.h if d_ctime_r + * is defined. + */ +/*#define HAS_CTIME_R / **/ +#define CTIME_R_PROTO 0 /**/ + +/* HAS_DRAND48_R: + * This symbol, if defined, indicates that the drand48_r routine + * is available to drand48 re-entrantly. + */ +/* DRAND48_R_PROTO: + * This symbol encodes the prototype of drand48_r. + * It is zero if d_drand48_r is undef, and one of the + * REENTRANT_PROTO_T_ABC macros of reentr.h if d_drand48_r + * is defined. + */ +/*#define HAS_DRAND48_R / **/ +#define DRAND48_R_PROTO 0 /**/ + +/* HAS_ENDGRENT_R: + * This symbol, if defined, indicates that the endgrent_r routine + * is available to endgrent re-entrantly. + */ +/* ENDGRENT_R_PROTO: + * This symbol encodes the prototype of endgrent_r. + * It is zero if d_endgrent_r is undef, and one of the + * REENTRANT_PROTO_T_ABC macros of reentr.h if d_endgrent_r + * is defined. + */ +/*#define HAS_ENDGRENT_R / **/ +#define ENDGRENT_R_PROTO 0 /**/ + +/* HAS_ENDHOSTENT_R: + * This symbol, if defined, indicates that the endhostent_r routine + * is available to endhostent re-entrantly. + */ +/* ENDHOSTENT_R_PROTO: + * This symbol encodes the prototype of endhostent_r. + * It is zero if d_endhostent_r is undef, and one of the + * REENTRANT_PROTO_T_ABC macros of reentr.h if d_endhostent_r + * is defined. + */ +/*#define HAS_ENDHOSTENT_R / **/ +#define ENDHOSTENT_R_PROTO 0 /**/ + +/* HAS_ENDNETENT_R: + * This symbol, if defined, indicates that the endnetent_r routine + * is available to endnetent re-entrantly. + */ +/* ENDNETENT_R_PROTO: + * This symbol encodes the prototype of endnetent_r. + * It is zero if d_endnetent_r is undef, and one of the + * REENTRANT_PROTO_T_ABC macros of reentr.h if d_endnetent_r + * is defined. + */ +/*#define HAS_ENDNETENT_R / **/ +#define ENDNETENT_R_PROTO 0 /**/ + +/* HAS_ENDPROTOENT_R: + * This symbol, if defined, indicates that the endprotoent_r routine + * is available to endprotoent re-entrantly. + */ +/* ENDPROTOENT_R_PROTO: + * This symbol encodes the prototype of endprotoent_r. + * It is zero if d_endprotoent_r is undef, and one of the + * REENTRANT_PROTO_T_ABC macros of reentr.h if d_endprotoent_r + * is defined. + */ +/*#define HAS_ENDPROTOENT_R / **/ +#define ENDPROTOENT_R_PROTO 0 /**/ + +/* HAS_ENDPWENT_R: + * This symbol, if defined, indicates that the endpwent_r routine + * is available to endpwent re-entrantly. + */ +/* ENDPWENT_R_PROTO: + * This symbol encodes the prototype of endpwent_r. + * It is zero if d_endpwent_r is undef, and one of the + * REENTRANT_PROTO_T_ABC macros of reentr.h if d_endpwent_r + * is defined. + */ +/*#define HAS_ENDPWENT_R / **/ +#define ENDPWENT_R_PROTO 0 /**/ + +/* HAS_ENDSERVENT_R: + * This symbol, if defined, indicates that the endservent_r routine + * is available to endservent re-entrantly. + */ +/* ENDSERVENT_R_PROTO: + * This symbol encodes the prototype of endservent_r. + * It is zero if d_endservent_r is undef, and one of the + * REENTRANT_PROTO_T_ABC macros of reentr.h if d_endservent_r + * is defined. + */ +/*#define HAS_ENDSERVENT_R / **/ +#define ENDSERVENT_R_PROTO 0 /**/ + +/* HAS_GETGRENT_R: + * This symbol, if defined, indicates that the getgrent_r routine + * is available to getgrent re-entrantly. + */ +/* GETGRENT_R_PROTO: + * This symbol encodes the prototype of getgrent_r. + * It is zero if d_getgrent_r is undef, and one of the + * REENTRANT_PROTO_T_ABC macros of reentr.h if d_getgrent_r + * is defined. + */ +/*#define HAS_GETGRENT_R / **/ +#define GETGRENT_R_PROTO 0 /**/ + +/* HAS_GETGRGID_R: + * This symbol, if defined, indicates that the getgrgid_r routine + * is available to getgrgid re-entrantly. + */ +/* GETGRGID_R_PROTO: + * This symbol encodes the prototype of getgrgid_r. + * It is zero if d_getgrgid_r is undef, and one of the + * REENTRANT_PROTO_T_ABC macros of reentr.h if d_getgrgid_r + * is defined. + */ +/*#define HAS_GETGRGID_R / **/ +#define GETGRGID_R_PROTO 0 /**/ + +/* HAS_GETGRNAM_R: + * This symbol, if defined, indicates that the getgrnam_r routine + * is available to getgrnam re-entrantly. + */ +/* GETGRNAM_R_PROTO: + * This symbol encodes the prototype of getgrnam_r. + * It is zero if d_getgrnam_r is undef, and one of the + * REENTRANT_PROTO_T_ABC macros of reentr.h if d_getgrnam_r + * is defined. + */ +/*#define HAS_GETGRNAM_R / **/ +#define GETGRNAM_R_PROTO 0 /**/ + +/* HAS_GETHOSTBYADDR_R: + * This symbol, if defined, indicates that the gethostbyaddr_r routine + * is available to gethostbyaddr re-entrantly. + */ +/* GETHOSTBYADDR_R_PROTO: + * This symbol encodes the prototype of gethostbyaddr_r. + * It is zero if d_gethostbyaddr_r is undef, and one of the + * REENTRANT_PROTO_T_ABC macros of reentr.h if d_gethostbyaddr_r + * is defined. + */ +/*#define HAS_GETHOSTBYADDR_R / **/ +#define GETHOSTBYADDR_R_PROTO 0 /**/ + +/* HAS_GETHOSTBYNAME_R: + * This symbol, if defined, indicates that the gethostbyname_r routine + * is available to gethostbyname re-entrantly. + */ +/* GETHOSTBYNAME_R_PROTO: + * This symbol encodes the prototype of gethostbyname_r. + * It is zero if d_gethostbyname_r is undef, and one of the + * REENTRANT_PROTO_T_ABC macros of reentr.h if d_gethostbyname_r + * is defined. + */ +/*#define HAS_GETHOSTBYNAME_R / **/ +#define GETHOSTBYNAME_R_PROTO 0 /**/ + +/* HAS_GETHOSTENT_R: + * This symbol, if defined, indicates that the gethostent_r routine + * is available to gethostent re-entrantly. + */ +/* GETHOSTENT_R_PROTO: + * This symbol encodes the prototype of gethostent_r. + * It is zero if d_gethostent_r is undef, and one of the + * REENTRANT_PROTO_T_ABC macros of reentr.h if d_gethostent_r + * is defined. + */ +/*#define HAS_GETHOSTENT_R / **/ +#define GETHOSTENT_R_PROTO 0 /**/ + +/* HAS_GETLOGIN_R: + * This symbol, if defined, indicates that the getlogin_r routine + * is available to getlogin re-entrantly. + */ +/* GETLOGIN_R_PROTO: + * This symbol encodes the prototype of getlogin_r. + * It is zero if d_getlogin_r is undef, and one of the + * REENTRANT_PROTO_T_ABC macros of reentr.h if d_getlogin_r + * is defined. + */ +/*#define HAS_GETLOGIN_R / **/ +#define GETLOGIN_R_PROTO 0 /**/ + +/* HAS_GETNETBYADDR_R: + * This symbol, if defined, indicates that the getnetbyaddr_r routine + * is available to getnetbyaddr re-entrantly. + */ +/* GETNETBYADDR_R_PROTO: + * This symbol encodes the prototype of getnetbyaddr_r. + * It is zero if d_getnetbyaddr_r is undef, and one of the + * REENTRANT_PROTO_T_ABC macros of reentr.h if d_getnetbyaddr_r + * is defined. + */ +/*#define HAS_GETNETBYADDR_R / **/ +#define GETNETBYADDR_R_PROTO 0 /**/ + +/* HAS_GETNETBYNAME_R: + * This symbol, if defined, indicates that the getnetbyname_r routine + * is available to getnetbyname re-entrantly. + */ +/* GETNETBYNAME_R_PROTO: + * This symbol encodes the prototype of getnetbyname_r. + * It is zero if d_getnetbyname_r is undef, and one of the + * REENTRANT_PROTO_T_ABC macros of reentr.h if d_getnetbyname_r + * is defined. + */ +/*#define HAS_GETNETBYNAME_R / **/ +#define GETNETBYNAME_R_PROTO 0 /**/ + +/* HAS_GETNETENT_R: + * This symbol, if defined, indicates that the getnetent_r routine + * is available to getnetent re-entrantly. + */ +/* GETNETENT_R_PROTO: + * This symbol encodes the prototype of getnetent_r. + * It is zero if d_getnetent_r is undef, and one of the + * REENTRANT_PROTO_T_ABC macros of reentr.h if d_getnetent_r + * is defined. + */ +/*#define HAS_GETNETENT_R / **/ +#define GETNETENT_R_PROTO 0 /**/ + +/* HAS_GETPROTOBYNAME_R: + * This symbol, if defined, indicates that the getprotobyname_r routine + * is available to getprotobyname re-entrantly. + */ +/* GETPROTOBYNAME_R_PROTO: + * This symbol encodes the prototype of getprotobyname_r. + * It is zero if d_getprotobyname_r is undef, and one of the + * REENTRANT_PROTO_T_ABC macros of reentr.h if d_getprotobyname_r + * is defined. + */ +/*#define HAS_GETPROTOBYNAME_R / **/ +#define GETPROTOBYNAME_R_PROTO 0 /**/ + +/* HAS_GETPROTOBYNUMBER_R: + * This symbol, if defined, indicates that the getprotobynumber_r routine + * is available to getprotobynumber re-entrantly. + */ +/* GETPROTOBYNUMBER_R_PROTO: + * This symbol encodes the prototype of getprotobynumber_r. + * It is zero if d_getprotobynumber_r is undef, and one of the + * REENTRANT_PROTO_T_ABC macros of reentr.h if d_getprotobynumber_r + * is defined. + */ +/*#define HAS_GETPROTOBYNUMBER_R / **/ +#define GETPROTOBYNUMBER_R_PROTO 0 /**/ + +/* HAS_GETPROTOENT_R: + * This symbol, if defined, indicates that the getprotoent_r routine + * is available to getprotoent re-entrantly. + */ +/* GETPROTOENT_R_PROTO: + * This symbol encodes the prototype of getprotoent_r. + * It is zero if d_getprotoent_r is undef, and one of the + * REENTRANT_PROTO_T_ABC macros of reentr.h if d_getprotoent_r + * is defined. + */ +/*#define HAS_GETPROTOENT_R / **/ +#define GETPROTOENT_R_PROTO 0 /**/ + +/* HAS_GETPWENT_R: + * This symbol, if defined, indicates that the getpwent_r routine + * is available to getpwent re-entrantly. + */ +/* GETPWENT_R_PROTO: + * This symbol encodes the prototype of getpwent_r. + * It is zero if d_getpwent_r is undef, and one of the + * REENTRANT_PROTO_T_ABC macros of reentr.h if d_getpwent_r + * is defined. + */ +/*#define HAS_GETPWENT_R / **/ +#define GETPWENT_R_PROTO 0 /**/ + +/* HAS_GETPWNAM_R: + * This symbol, if defined, indicates that the getpwnam_r routine + * is available to getpwnam re-entrantly. + */ +/* GETPWNAM_R_PROTO: + * This symbol encodes the prototype of getpwnam_r. + * It is zero if d_getpwnam_r is undef, and one of the + * REENTRANT_PROTO_T_ABC macros of reentr.h if d_getpwnam_r + * is defined. + */ +/*#define HAS_GETPWNAM_R / **/ +#define GETPWNAM_R_PROTO 0 /**/ + +/* HAS_GETPWUID_R: + * This symbol, if defined, indicates that the getpwuid_r routine + * is available to getpwuid re-entrantly. + */ +/* GETPWUID_R_PROTO: + * This symbol encodes the prototype of getpwuid_r. + * It is zero if d_getpwuid_r is undef, and one of the + * REENTRANT_PROTO_T_ABC macros of reentr.h if d_getpwuid_r + * is defined. + */ +/*#define HAS_GETPWUID_R / **/ +#define GETPWUID_R_PROTO 0 /**/ + +/* HAS_GETSERVBYNAME_R: + * This symbol, if defined, indicates that the getservbyname_r routine + * is available to getservbyname re-entrantly. + */ +/* GETSERVBYNAME_R_PROTO: + * This symbol encodes the prototype of getservbyname_r. + * It is zero if d_getservbyname_r is undef, and one of the + * REENTRANT_PROTO_T_ABC macros of reentr.h if d_getservbyname_r + * is defined. + */ +/*#define HAS_GETSERVBYNAME_R / **/ +#define GETSERVBYNAME_R_PROTO 0 /**/ + +/* HAS_GETSERVBYPORT_R: + * This symbol, if defined, indicates that the getservbyport_r routine + * is available to getservbyport re-entrantly. + */ +/* GETSERVBYPORT_R_PROTO: + * This symbol encodes the prototype of getservbyport_r. + * It is zero if d_getservbyport_r is undef, and one of the + * REENTRANT_PROTO_T_ABC macros of reentr.h if d_getservbyport_r + * is defined. + */ +/*#define HAS_GETSERVBYPORT_R / **/ +#define GETSERVBYPORT_R_PROTO 0 /**/ + +/* HAS_GETSERVENT_R: + * This symbol, if defined, indicates that the getservent_r routine + * is available to getservent re-entrantly. + */ +/* GETSERVENT_R_PROTO: + * This symbol encodes the prototype of getservent_r. + * It is zero if d_getservent_r is undef, and one of the + * REENTRANT_PROTO_T_ABC macros of reentr.h if d_getservent_r + * is defined. + */ +/*#define HAS_GETSERVENT_R / **/ +#define GETSERVENT_R_PROTO 0 /**/ + +/* HAS_GETSPNAM_R: + * This symbol, if defined, indicates that the getspnam_r routine + * is available to getspnam re-entrantly. + */ +/* GETSPNAM_R_PROTO: + * This symbol encodes the prototype of getspnam_r. + * It is zero if d_getspnam_r is undef, and one of the + * REENTRANT_PROTO_T_ABC macros of reentr.h if d_getspnam_r + * is defined. + */ +/*#define HAS_GETSPNAM_R / **/ +#define GETSPNAM_R_PROTO 0 /**/ + +/* HAS_GMTIME_R: + * This symbol, if defined, indicates that the gmtime_r routine + * is available to gmtime re-entrantly. + */ +/* GMTIME_R_PROTO: + * This symbol encodes the prototype of gmtime_r. + * It is zero if d_gmtime_r is undef, and one of the + * REENTRANT_PROTO_T_ABC macros of reentr.h if d_gmtime_r + * is defined. + */ +/*#define HAS_GMTIME_R / **/ +#define GMTIME_R_PROTO 0 /**/ + +/* HAS_LOCALECONV_L: + * This symbol, if defined, indicates that the localeconv_l routine is + * available to query certain information about a locale. + */ +/*#define HAS_LOCALECONV_L / **/ + +/* HAS_LOCALTIME_R: + * This symbol, if defined, indicates that the localtime_r routine + * is available to localtime re-entrantly. + */ +/* LOCALTIME_R_NEEDS_TZSET: + * Many libc's localtime_r implementations do not call tzset, + * making them differ from localtime(), and making timezone + * changes using $ENV{TZ} without explicitly calling tzset + * impossible. This symbol makes us call tzset before localtime_r + */ +/*#define LOCALTIME_R_NEEDS_TZSET / **/ +#ifdef LOCALTIME_R_NEEDS_TZSET +#define L_R_TZSET tzset(), +#else +#define L_R_TZSET +#endif + +/* LOCALTIME_R_PROTO: + * This symbol encodes the prototype of localtime_r. + * It is zero if d_localtime_r is undef, and one of the + * REENTRANT_PROTO_T_ABC macros of reentr.h if d_localtime_r + * is defined. + */ +/*#define HAS_LOCALTIME_R / **/ +#define LOCALTIME_R_PROTO 0 /**/ + +/* HAS_MBRLEN: + * This symbol, if defined, indicates that the mbrlen routine is + * available to get the length of multi-byte character strings. + */ +#define HAS_MBRLEN /**/ + +/* HAS_MBRTOWC: + * This symbol, if defined, indicates that the mbrtowc routine is + * available to convert a multi-byte character into a wide character. + */ +#define HAS_MBRTOWC /**/ + +/* HAS_THREAD_SAFE_NL_LANGINFO_L: + * This symbol, when defined, indicates presence of the nl_langinfo_l() + * function, and that it is thread-safe. + */ +/*#define HAS_THREAD_SAFE_NL_LANGINFO_L / **/ + +/* OLD_PTHREAD_CREATE_JOINABLE: + * This symbol, if defined, indicates how to create pthread + * in joinable (aka undetached) state. NOTE: not defined + * if pthread.h already has defined PTHREAD_CREATE_JOINABLE + * (the new version of the constant). + * If defined, known values are PTHREAD_CREATE_UNDETACHED + * and __UNDETACHED. + */ +/*#define OLD_PTHREAD_CREATE_JOINABLE / **/ + +/* HAS_PTHREAD_ATFORK: + * This symbol, if defined, indicates that the pthread_atfork routine + * is available to setup fork handlers. + */ +#define HAS_PTHREAD_ATFORK /**/ + +/* HAS_PTHREAD_YIELD: + * This symbol, if defined, indicates that the pthread_yield + * routine is available to yield the execution of the current + * thread. sched_yield is preferable to pthread_yield. + */ +/* SCHED_YIELD: + * This symbol defines the way to yield the execution of + * the current thread. Known ways are sched_yield, + * pthread_yield, and pthread_yield with NULL. + */ +/* HAS_SCHED_YIELD: + * This symbol, if defined, indicates that the sched_yield + * routine is available to yield the execution of the current + * thread. sched_yield is preferable to pthread_yield. + */ +#define HAS_PTHREAD_YIELD /**/ +#define SCHED_YIELD sched_yield() /**/ +#define HAS_SCHED_YIELD /**/ + +/* HAS_RANDOM_R: + * This symbol, if defined, indicates that the random_r routine + * is available to random re-entrantly. + */ +/* RANDOM_R_PROTO: + * This symbol encodes the prototype of random_r. + * It is zero if d_random_r is undef, and one of the + * REENTRANT_PROTO_T_ABC macros of reentr.h if d_random_r + * is defined. + */ +/*#define HAS_RANDOM_R / **/ +#define RANDOM_R_PROTO 0 /**/ + +/* HAS_READDIR64_R: + * This symbol, if defined, indicates that the readdir64_r routine + * is available to readdir64 re-entrantly. + */ +/* READDIR64_R_PROTO: + * This symbol encodes the prototype of readdir64_r. + * It is zero if d_readdir64_r is undef, and one of the + * REENTRANT_PROTO_T_ABC macros of reentr.h if d_readdir64_r + * is defined. + */ +/*#define HAS_READDIR64_R / **/ +#define READDIR64_R_PROTO 0 /**/ + +/* HAS_READDIR_R: + * This symbol, if defined, indicates that the readdir_r routine + * is available to readdir re-entrantly. + */ +/* READDIR_R_PROTO: + * This symbol encodes the prototype of readdir_r. + * It is zero if d_readdir_r is undef, and one of the + * REENTRANT_PROTO_T_ABC macros of reentr.h if d_readdir_r + * is defined. + */ +/*#define HAS_READDIR_R / **/ +#define READDIR_R_PROTO 0 /**/ + +/* HAS_SETGRENT_R: + * This symbol, if defined, indicates that the setgrent_r routine + * is available to setgrent re-entrantly. + */ +/* SETGRENT_R_PROTO: + * This symbol encodes the prototype of setgrent_r. + * It is zero if d_setgrent_r is undef, and one of the + * REENTRANT_PROTO_T_ABC macros of reentr.h if d_setgrent_r + * is defined. + */ +/*#define HAS_SETGRENT_R / **/ +#define SETGRENT_R_PROTO 0 /**/ + +/* HAS_SETHOSTENT_R: + * This symbol, if defined, indicates that the sethostent_r routine + * is available to sethostent re-entrantly. + */ +/* SETHOSTENT_R_PROTO: + * This symbol encodes the prototype of sethostent_r. + * It is zero if d_sethostent_r is undef, and one of the + * REENTRANT_PROTO_T_ABC macros of reentr.h if d_sethostent_r + * is defined. + */ +/*#define HAS_SETHOSTENT_R / **/ +#define SETHOSTENT_R_PROTO 0 /**/ + +/* HAS_SETLOCALE_R: + * This symbol, if defined, indicates that the setlocale_r routine + * is available to setlocale re-entrantly. + */ +/* SETLOCALE_R_PROTO: + * This symbol encodes the prototype of setlocale_r. + * It is zero if d_setlocale_r is undef, and one of the + * REENTRANT_PROTO_T_ABC macros of reentr.h if d_setlocale_r + * is defined. + */ +/*#define HAS_SETLOCALE_R / **/ +#define SETLOCALE_R_PROTO 0 /**/ + +/* HAS_SETNETENT_R: + * This symbol, if defined, indicates that the setnetent_r routine + * is available to setnetent re-entrantly. + */ +/* SETNETENT_R_PROTO: + * This symbol encodes the prototype of setnetent_r. + * It is zero if d_setnetent_r is undef, and one of the + * REENTRANT_PROTO_T_ABC macros of reentr.h if d_setnetent_r + * is defined. + */ +/*#define HAS_SETNETENT_R / **/ +#define SETNETENT_R_PROTO 0 /**/ + +/* HAS_SETPROTOENT_R: + * This symbol, if defined, indicates that the setprotoent_r routine + * is available to setprotoent re-entrantly. + */ +/* SETPROTOENT_R_PROTO: + * This symbol encodes the prototype of setprotoent_r. + * It is zero if d_setprotoent_r is undef, and one of the + * REENTRANT_PROTO_T_ABC macros of reentr.h if d_setprotoent_r + * is defined. + */ +/*#define HAS_SETPROTOENT_R / **/ +#define SETPROTOENT_R_PROTO 0 /**/ + +/* HAS_SETPWENT_R: + * This symbol, if defined, indicates that the setpwent_r routine + * is available to setpwent re-entrantly. + */ +/* SETPWENT_R_PROTO: + * This symbol encodes the prototype of setpwent_r. + * It is zero if d_setpwent_r is undef, and one of the + * REENTRANT_PROTO_T_ABC macros of reentr.h if d_setpwent_r + * is defined. + */ +/*#define HAS_SETPWENT_R / **/ +#define SETPWENT_R_PROTO 0 /**/ + +/* HAS_SETSERVENT_R: + * This symbol, if defined, indicates that the setservent_r routine + * is available to setservent re-entrantly. + */ +/* SETSERVENT_R_PROTO: + * This symbol encodes the prototype of setservent_r. + * It is zero if d_setservent_r is undef, and one of the + * REENTRANT_PROTO_T_ABC macros of reentr.h if d_setservent_r + * is defined. + */ +/*#define HAS_SETSERVENT_R / **/ +#define SETSERVENT_R_PROTO 0 /**/ + +/* HAS_SRAND48_R: + * This symbol, if defined, indicates that the srand48_r routine + * is available to srand48 re-entrantly. + */ +/* SRAND48_R_PROTO: + * This symbol encodes the prototype of srand48_r. + * It is zero if d_srand48_r is undef, and one of the + * REENTRANT_PROTO_T_ABC macros of reentr.h if d_srand48_r + * is defined. + */ +/*#define HAS_SRAND48_R / **/ +#define SRAND48_R_PROTO 0 /**/ + +/* HAS_SRANDOM_R: + * This symbol, if defined, indicates that the srandom_r routine + * is available to srandom re-entrantly. + */ +/* SRANDOM_R_PROTO: + * This symbol encodes the prototype of srandom_r. + * It is zero if d_srandom_r is undef, and one of the + * REENTRANT_PROTO_T_ABC macros of reentr.h if d_srandom_r + * is defined. + */ +/*#define HAS_SRANDOM_R / **/ +#define SRANDOM_R_PROTO 0 /**/ + +/* HAS_STRERROR_R: + * This symbol, if defined, indicates that the strerror_r routine + * is available to strerror re-entrantly. + */ +/* STRERROR_R_PROTO: + * This symbol encodes the prototype of strerror_r. + * It is zero if d_strerror_r is undef, and one of the + * REENTRANT_PROTO_T_ABC macros of reentr.h if d_strerror_r + * is defined. + */ +/*#define HAS_STRERROR_R / **/ +#define STRERROR_R_PROTO 0 /**/ + +/* HAS_STRTOLD_L: + * This symbol, if defined, indicates that the strtold_l routine is + * available to convert strings to long doubles. + */ +#define HAS_STRTOLD_L /**/ + +/* HAS_TMPNAM_R: + * This symbol, if defined, indicates that the tmpnam_r routine + * is available to tmpnam re-entrantly. + */ +/* TMPNAM_R_PROTO: + * This symbol encodes the prototype of tmpnam_r. + * It is zero if d_tmpnam_r is undef, and one of the + * REENTRANT_PROTO_T_ABC macros of reentr.h if d_tmpnam_r + * is defined. + */ +/*#define HAS_TMPNAM_R / **/ +#define TMPNAM_R_PROTO 0 /**/ + +/* HAS_TTYNAME_R: + * This symbol, if defined, indicates that the ttyname_r routine + * is available to ttyname re-entrantly. + */ +/* TTYNAME_R_PROTO: + * This symbol encodes the prototype of ttyname_r. + * It is zero if d_ttyname_r is undef, and one of the + * REENTRANT_PROTO_T_ABC macros of reentr.h if d_ttyname_r + * is defined. + */ +/*#define HAS_TTYNAME_R / **/ +#define TTYNAME_R_PROTO 0 /**/ + +/* I_MACH_CTHREADS: + * This symbol, if defined, indicates to the C program that it should + * include <mach/cthreads.h>. + */ +/*#define I_MACH_CTHREADS / **/ + +/* I_PTHREAD: + * This symbol, if defined, indicates to the C program that it should + * include <pthread.h>. + */ +#define I_PTHREAD /**/ + +/* USE_ITHREADS: + * This symbol, if defined, indicates that Perl should be built to + * use the interpreter-based threading implementation. + */ +/* USE_5005THREADS: + * This symbol, if defined, indicates that Perl should be built to + * use the 5.005-based threading implementation. + * Only valid up to 5.8.x. + */ +/* OLD_PTHREADS_API: + * This symbol, if defined, indicates that Perl should + * be built to use the old draft POSIX threads API. + */ +/* USE_REENTRANT_API: + * This symbol, if defined, indicates that Perl should + * try to use the various _r versions of library functions. + * This is extremely experimental. + */ +/*#define USE_5005THREADS / **/ +/*#define USE_ITHREADS / **/ +#if defined(USE_5005THREADS) && !defined(USE_ITHREADS) +#define USE_THREADS /* until src is revised*/ +#endif +/*#define OLD_PTHREADS_API / **/ +/*#define USE_REENTRANT_API / **/ + /* HAS_TIME: * This symbol, if defined, indicates that the time() routine exists. */ @@ -4518,10 +5132,10 @@ /* Gid_t_f: * This symbol defines the format string used for printing a Gid_t. */ -#define Gid_t_f "lu" /**/ +#define Gid_t_f "u" /**/ /* Gid_t_sign: - * This symbol holds the signedess of a Gid_t. + * This symbol holds the signedness of a Gid_t. * 1 for unsigned, -1 for signed. */ #define Gid_t_sign 1 /* GID sign */ @@ -4573,7 +5187,7 @@ /* Size_t_size: * This symbol holds the size of a Size_t in bytes. */ -#define Size_t_size 4 /* */ +#define Size_t_size 8 /**/ /* Size_t: * This symbol holds the type used to declare length parameters @@ -4586,10 +5200,10 @@ /* Uid_t_f: * This symbol defines the format string used for printing a Uid_t. */ -#define Uid_t_f "lu" /**/ +#define Uid_t_f "u" /**/ /* Uid_t_sign: - * This symbol holds the signedess of a Uid_t. + * This symbol holds the signedness of a Uid_t. * 1 for unsigned, -1 for signed. */ #define Uid_t_sign 1 /* UID sign */ diff --git a/gnu/usr.bin/perl/Porting/corelist-perldelta.pl b/gnu/usr.bin/perl/Porting/corelist-perldelta.pl index 048d571b2a5..5290d772385 100755 --- a/gnu/usr.bin/perl/Porting/corelist-perldelta.pl +++ b/gnu/usr.bin/perl/Porting/corelist-perldelta.pl @@ -162,9 +162,16 @@ sub corelist_delta { my %distToModules = ( 'IO-Compress' => [ { - 'name' => 'IO-Compress', + 'name' => 'IO-Compress', 'modification' => $getModifyType->( $changes{'IO::Compress::Base'} ), - 'data' => $changes{'IO::Compress::Base'} + 'data' => $changes{'IO::Compress::Base'} + } + ], + 'libnet' => [ + { + 'name' => 'libnet', + 'modification' => $getModifyType->( $changes{'Net::Cmd'} ), + 'data' => $changes{'Net::Cmd'} } ], 'Locale-Codes' => [ @@ -181,6 +188,13 @@ sub corelist_delta { 'data' => $changes{'Cwd'} } ], + 'podlators' => [ + { + 'name' => 'podlators', + 'modification' => $getModifyType->( $changes{'Pod::Text'} ), + 'data' => $changes{'Pod::Text'} + } + ], 'Scalar-List-Utils' => [ { 'name' => 'List::Util', @@ -191,6 +205,11 @@ sub corelist_delta { 'name' => 'Scalar::Util', 'modification' => $getModifyType->( $changes{'Scalar::Util'} ), 'data' => $changes{'Scalar::Util'} + }, + { + 'name' => 'Sub::Util', + 'modification' => $getModifyType->( $changes{'Sub::Util'} ), + 'data' => $changes{'Sub::Util'} } ], 'Text-Tabs+Wrap' => [ @@ -270,7 +289,7 @@ sub do_update_existing { my ( $existing, $old, $new ) = @_; my ( $added, $removed, $updated, $manuallyCheck ) = corelist_delta( $old => $new ); - if ($manuallyCheck) { + if (@{$manuallyCheck}) { print "It cannot be determined whether the following distributions have changed.\n"; print "Please check and list accordingly:\n"; say "\t* $_" for sort @{$manuallyCheck}; diff --git a/gnu/usr.bin/perl/Porting/corelist.pl b/gnu/usr.bin/perl/Porting/corelist.pl index 545a1027a4f..ad5a4ad06d4 100755 --- a/gnu/usr.bin/perl/Porting/corelist.pl +++ b/gnu/usr.bin/perl/Porting/corelist.pl @@ -21,8 +21,8 @@ use IPC::Cmd 'can_run'; use HTTP::Tiny; use IO::Uncompress::Gunzip; -my $corelist_file = 'dist/Module-CoreList/lib/Module/CoreList.pm'; -my $utils_file = 'dist/Module-CoreList/lib/Module/CoreList/Utils.pm'; +my $corelist_file = './dist/Module-CoreList/lib/Module/CoreList.pm'; +my $utils_file = './dist/Module-CoreList/lib/Module/CoreList/Utils.pm'; my %lines; my %module_to_file; @@ -98,8 +98,9 @@ find( sub { /(\.pm|_pm\.PL)$/ or return; /PPPort\.pm$/ and return; + /__Storable__\.pm$/ and return; my $module = $File::Find::name; - $module =~ /\b(demo|t|private)\b/ and return; # demo or test modules + $module =~ /\b(demo|t|private|corpus)\b/ and return; # demo or test modules my $version = MM->parse_version($_); defined $version or $version = 'undef'; $version =~ /\d/ and $version = "'$version'"; diff --git a/gnu/usr.bin/perl/Porting/deparse-skips.txt b/gnu/usr.bin/perl/Porting/deparse-skips.txt index 18a2fcb61c7..48ad07f7aa0 100644 --- a/gnu/usr.bin/perl/Porting/deparse-skips.txt +++ b/gnu/usr.bin/perl/Porting/deparse-skips.txt @@ -31,40 +31,79 @@ __DEPARSE_FAILURES__ -../cpan/Scalar-List-Utils/t/proto.t -../cpan/Term-ANSIColor/t/taint/basic.t -../cpan/autodie/t/internal.t -../cpan/AutoLoader/t/01AutoLoader.t -../cpan/CGI/t/utf8.t -../cpan/Encode/t/enc_data.t -../cpan/Encode/t/encoding.t -../cpan/Encode/t/jperl.t -../cpan/ExtUtils-Install/t/Installapi2.t -../cpan/ExtUtils-Install/t/Packlist.t -../cpan/ExtUtils-MakeMaker/t/xs.t -../cpan/ExtUtils-Manifest/t/Manifest.t -../cpan/File-Path/t/taint.t -../cpan/File-Temp/t/object.t -../cpan/IO-Compress/t/050interop-gzip.t -../cpan/IO-Compress/t/cz-08encoding.t -../cpan/Module-Build/t/manifypods_with_utf8.t -../cpan/Socket/t/sockaddr.t -../cpan/Term-ANSIColor/t/taint.t -../cpan/Test-Simple/t/Builder/carp.t -../cpan/Test-Simple/t/fail-more.t -../cpan/Test-Simple/t/is_deeply_fail.t -../cpan/Test-Simple/t/plan.t -../cpan/Test-Simple/t/plan_bad.t -../cpan/Test-Simple/t/subtest/line_numbers.t -../cpan/Test-Simple/t/subtest/predicate.t -../cpan/autodie/t/00-load.t +base/lex.t # checks regexp stringification +comp/final_line_num.t # tests syntax error after BEGIN block +comp/fold.t # mutability of folded constants +comp/parser.t # crazy #line directives ==> shell syntax errors +mro/basic_01_c3_utf8.t +mro/basic_01_dfs_utf8.t +mro/complex_c3_utf8.t +mro/isarev.t +mro/isarev_utf8.t +op/attrhand.t # Custom attrs ignored; also AH provides none +op/caller.t +op/each.t # utf8ness of deparsed strings +op/goto.t +op/gv.t # glob copy constants +op/hexfp.t +op/index.t +op/join.t # mutability of folded constants +op/length.t # utf8ness of deparsed strings +op/lexsub.t +op/local.t +op/lvref.t +op/not.t +op/overload_integer.t +op/override.t +op/pack.t +op/postfixderef.t +op/range.t +op/readline.t +op/srand.t +op/sub_lval.t +op/sub.t +op/switch.t +op/symbolcache.t +op/taint.t +op/vec.t +op/warn.t +op/write.t +porting/globvar.t +re/overload.t # [perl #123385] %^H output +re/pat_advanced.t # [perl #123417] +re/pat_rt_report.t # malformed utf8 constant; also /\c@/ -> /\c\@/ +re/pat.t # [perl #90590] +re/regexp_unicode_prop.t +re/regex_sets.t +re/reg_fold.t # [perl #123385] %^H output +re/rxcode.t # checks regexp stringification +re/subst.t +run/switchd-78586.t # -I on #! line is not deparsed +run/switchI.t # -I on #! line is not deparsed +uni/attrs.t +uni/bless.t +uni/gv.t +uni/labels.t +uni/lex_utf8.t +uni/method.t +uni/package.t +uni/parser.t +uni/readline.t +uni/select.t +uni/stash.t +uni/tie.t +uni/universal.t +uni/variables.t +../cpan/Archive-Tar/t/03_file.t # constant sub ref: FOO->() ../cpan/autodie/t/autodie.t +../cpan/autodie/t/basic_exceptions.t +../cpan/autodie/t/binmode.t ../cpan/autodie/t/blog_hints.t ../cpan/autodie/t/caller.t ../cpan/autodie/t/chmod.t ../cpan/autodie/t/chown.t -../cpan/autodie/t/context.t ../cpan/autodie/t/context_lexical.t +../cpan/autodie/t/context.t ../cpan/autodie/t/crickey.t ../cpan/autodie/t/dbmopen.t ../cpan/autodie/t/eval_error.t @@ -72,176 +111,100 @@ __DEPARSE_FAILURES__ ../cpan/autodie/t/exceptions.t ../cpan/autodie/t/exec.t ../cpan/autodie/t/filehandles.t -../cpan/autodie/t/hints.t +../cpan/autodie/t/fileno.t ../cpan/autodie/t/hints_insist.t ../cpan/autodie/t/hints_pod_examples.t ../cpan/autodie/t/hints_provider_does.t ../cpan/autodie/t/hints_provider_easy_does_it.t ../cpan/autodie/t/hints_provider_isa.t +../cpan/autodie/t/hints.t +../cpan/autodie/t/internal.t ../cpan/autodie/t/kill.t ../cpan/autodie/t/lethal.t +../cpan/autodie/t/mkdir.t ../cpan/autodie/t/open.t +../cpan/autodie/t/read.t ../cpan/autodie/t/recv.t ../cpan/autodie/t/repeat.t ../cpan/autodie/t/scope_leak.t ../cpan/autodie/t/sysopen.t +../cpan/autodie/t/truncate.t +../cpan/autodie/t/unlink.t ../cpan/autodie/t/user-context.t ../cpan/autodie/t/usersub.t ../cpan/autodie/t/utf8_open.t ../cpan/autodie/t/utime.t ../cpan/autodie/t/version_tag.t -../cpan/podlators/t/basic.t +../cpan/AutoLoader/t/01AutoLoader.t +../cpan/bignum/t/big_e_pi.t +../cpan/bignum/t/bigexp.t +../cpan/bignum/t/bigint.t +../cpan/bignum/t/bignum.t +../cpan/bignum/t/bigrat.t +../cpan/bignum/t/bii_e_pi.t +../cpan/bignum/t/biinfnan.t +../cpan/bignum/t/bir_e_pi.t +../cpan/bignum/t/bninfnan.t +../cpan/bignum/t/brinfnan.t +../cpan/bignum/t/in_effect.t +../cpan/bignum/t/option_a.t +../cpan/bignum/t/option_l.t +../cpan/bignum/t/option_p.t +../cpan/bignum/t/overrides.t +../cpan/bignum/t/ratopt_a.t +../cpan/bignum/t/scope_f.t +../cpan/bignum/t/scope_i.t +../cpan/bignum/t/scope_r.t +../cpan/Math-BigInt/t/constant.t +../cpan/Math-BigInt/t/const_mbf.t +../cpan/Module-Metadata/t/metadata.t +../cpan/Scalar-List-Utils/t/subname.t +../cpan/Scalar-List-Utils/t/uniq.t +../cpan/Term-Cap/test.pl +../cpan/Test-Simple/t/Legacy/Builder/carp.t +../cpan/Test-Simple/t/Legacy/fail-more.t +../cpan/Test-Simple/t/Legacy/is_deeply_fail.t +../cpan/Test-Simple/t/Legacy/no_plan.t # hard-coded line numbers +../cpan/Test-Simple/t/Legacy/plan_bad.t +../cpan/Test-Simple/t/Legacy/plan.t +../cpan/Test-Simple/t/Legacy/subtest/line_numbers.t +../cpan/Test-Simple/t/Legacy/subtest/predicate.t +../cpan/Test-Simple/t/regression/684-nested_todo_diag.t +../cpan/Test-Simple/t/Test2/behavior/run_subtest_inherit.t ../dist/Attribute-Handlers/t/constants.t ../dist/Attribute-Handlers/t/data_convert.t ../dist/Attribute-Handlers/t/linerep.t ../dist/Attribute-Handlers/t/multi.t ../dist/Carp/t/Carp.t +../dist/constant/t/constant.t ../dist/Data-Dumper/t/dumper.t +../dist/Data-Dumper/t/trailing_comma.t ../dist/Exporter/t/Exporter.t ../dist/Filter-Simple/t/data.t -../dist/I18N-LangTags/t/50_super.t -../dist/IO/t/io_file_export.t -../dist/IO/t/io_multihomed.t -../dist/IO/t/io_sel.t -../dist/IO/t/io_udp.t -../dist/Locale-Maketext/t/01_about_verbose.t -../dist/Locale-Maketext/t/10_make.t -../dist/Locale-Maketext/t/20_get.t -../dist/Locale-Maketext/t/40_super.t -../dist/Locale-Maketext/t/50_super.t -../dist/Locale-Maketext/t/60_super.t -../dist/Locale-Maketext/t/70_fail_auto.t -../dist/Locale-Maketext/t/91_backslash.t -../dist/Math-BigInt/t/const_mbf.t -../dist/Math-BigInt/t/constant.t -../dist/PathTools/t/cwd.t -../dist/Storable/t/blessed.t ../dist/Storable/t/croak.t -../dist/Term-ReadLine/t/ReadLine.t -../dist/Thread-Queue/t/08_nothreads.t -../dist/Tie-File/t/42_offset.t -../dist/bignum/t/big_e_pi.t -../dist/bignum/t/bigexp.t -../dist/bignum/t/bigint.t -../dist/bignum/t/bignum.t -../dist/bignum/t/bigrat.t -../dist/bignum/t/bii_e_pi.t -../dist/bignum/t/bir_e_pi.t -../dist/bignum/t/in_effect.t -../dist/bignum/t/option_a.t -../dist/bignum/t/option_l.t -../dist/bignum/t/option_p.t -../dist/bignum/t/overrides.t -../dist/bignum/t/ratopt_a.t -../dist/bignum/t/scope_f.t -../dist/bignum/t/scope_i.t -../dist/bignum/t/scope_r.t -../dist/constant/t/constant.t -../dist/threads/t/err.t -../dist/threads/t/exit.t -../dist/threads/t/kill2.t -../dist/threads/t/libc.t -../dist/threads/t/thread.t +../dist/threads/t/blocks.t ../ext/B/t/b.t ../ext/B/t/optree_constants.t ../ext/B/t/optree_samples.t -../ext/B/t/xref.t ../ext/Devel-Peek/t/Peek.t -../ext/File-Glob/t/basic.t -../ext/File-Glob/t/taint.t -../ext/Hash-Util/t/Util.t ../ext/IPC-Open3/t/IPC-Open2.t ../ext/IPC-Open3/t/IPC-Open3.t -../ext/Opcode/t/Opcode.t -../ext/PerlIO-via/t/via.t ../ext/XS-APItest/t/autoload.t ../ext/XS-APItest/t/blockhooks.t ../ext/XS-APItest/t/call_checker.t ../ext/XS-APItest/t/cleanup.t ../ext/XS-APItest/t/fetch_pad_names.t -../ext/XS-APItest/t/overload.t ../ext/XS-APItest/t/svpeek.t -../ext/XS-APItest/t/xsub_h.t -../lib/DB.t -../lib/DBM_Filter/t/01error.t -../lib/DBM_Filter/t/02core.t -../lib/DBM_Filter/t/compress.t -../lib/DBM_Filter/t/encode.t -../lib/DBM_Filter/t/int32.t -../lib/DBM_Filter/t/null.t -../lib/DBM_Filter/t/utf8.t -../lib/English.t -../lib/File/Basename.t +../ext/XS-APItest/t/synthetic_scope.t +../lib/Config.t # Config_heavy.pl fns getting output ../lib/charnames.t -../lib/less.t +../lib/dumpvar.t +../lib/English.t ../lib/overload.t -base/lex.t # checks regexp stringification -comp/final_line_num.t # tests syntax error after BEGIN block -comp/fold.t # mutability of folded constants -comp/parser.t # crazy #line directives ==> shell syntax errors -mro/isarev.t -mro/isarev_utf8.t -op/attrhand.t # Custom attrs ignored; also AH provides none -op/attrs.t # [perl #70205] my attrs -op/caller.t -op/each.t # utf8ness of deparsed strings -op/getpid.t # [perl #70205] my attrs -op/goto.t -op/gv.t # glob copy constants -op/index.t -op/join.t # mutability of folded constants -op/length.t # utf8ness of deparsed strings -op/lexsub.t -op/local.t -op/not.t -op/overload_integer.t -op/override.t -op/pack.t -op/postfixderef.t -op/range.t -op/readline.t -op/signatures.t -op/split.t -op/srand.t -op/sub.t -op/sub_lval.t -op/switch.t -op/symbolcache.t -op/taint.t -op/vec.t -op/warn.t -op/write.t -porting/globvar.t -re/overload.t # [perl #123385] %^H output -re/pat.t # [perl #90590] -re/pat_advanced.t # [perl #123417] -re/pat_rt_report.t # malformed utf8 constant; also /\c@/ -> /\c\@/ -re/reg_fold.t # [perl #123385] %^H output -re/regex_sets.t -re/regexp_unicode_prop.t -re/rxcode.t # checks regexp stringification -re/subst.t -run/switchI.t # -I on #! line is not deparsed -run/switchd-78586.t # -I on #! line is not deparsed -uni/attrs.t -uni/bless.t -uni/greek.t -uni/gv.t -uni/labels.t -uni/latin2.t -uni/lex_utf8.t -uni/method.t -uni/package.t -uni/parser.t -uni/readline.t -uni/select.t -uni/stash.t -uni/tie.t -uni/universal.t + __DEPARSE_SKIPS__ op/smartkve.t # Gobbles up all memory... comp/redef.t # Redefinition happens at compile time -lib/Switch/t/ # B::Deparse doesn't support source filtering ../lib/locale.t # Memory... diff --git a/gnu/usr.bin/perl/Porting/epigraphs.pod b/gnu/usr.bin/perl/Porting/epigraphs.pod index 633aafdd293..db8ab16df94 100644 --- a/gnu/usr.bin/perl/Porting/epigraphs.pod +++ b/gnu/usr.bin/perl/Porting/epigraphs.pod @@ -17,6 +17,279 @@ Consult your favorite dictionary for details. =head1 EPIGRAPHS +=head2 v5.29.4 - The Mountain Goats, "Oceanographer's Choice" + +L<Announced on 2018-10-20 by Aaron Crane|https://www.nntp.perl.org/group/perl.perl5.porters/2018/10/msg252575.html> + + Well + Guy in a skeleton costume + Comes up to the guy in the Superman suit + Runs through him with a broadsword + I flipped the television off + Bring all the bright lights up + Turn the radio up loud + I don't know why I'm so persuaded + That if I think things through + Long enough and hard enough + I'll somehow get to you + But then you came in and we locked eyes + You kicked the ashtray over as we came toward each other + Stubbed my cigarette out against the west wall + Quickly lit another + Look at that + Would you look at that? + We're throwing off sparks + What will I do when I don't have you + To hold onto in the dark? + +=head2 v5.29.3 - Mac Miller, "Senior Skip Day" + +L<Announced on 2018-09-20 by John 'genehack' Anderson|https://www.nntp.perl.org/group/perl.perl5.porters/2018/09/msg252255.html> + + Enjoy the best things in your life + ’Cause you ain’t gonna get to live it twice + They say you waste time asleep + But I’m just tryin’ to dream + +=head2 v5.29.2 - Rick Riordan, "The Lightning Thief" + +L<Announced on 2018-08-20 by Chris 'BinGOs' Williams|https://www.nntp.perl.org/group/perl.perl5.porters/2018/08/msg251918.html> + + Look, I didn't want to be a half-blood. + + If you're reading this because you think you might be one, + my advice is: close this book right now. Believe whatever + lie your mom or dad told you about your birth, and try + to lead a normal life. + + Being a half-blood is dangerous. It's scary. Most of the time, + it gets you killed in painful, nasty ways. + + If you're a normal kid, reading this because you think it's + fiction, great. Read on. I envy you for being able to believe + that none of this ever happened. + + But if you recognize yourself in these pages - if you feel + something stirring inside - stop reading immediately. + You might be one of us. And once you know that, it's only a + matter of time before they sense it too, and they'll come for you. + +=head2 v5.29.1 - Richard Curtis & Ben Elton, "Blackadder, Series 3, Episode 2: Ink and Incapability" + +L<Announced on 2018-07-20 by Steve Hay|https://www.nntp.perl.org/group/perl.perl5.porters/2018/07/msg251605.html> + + Dr. Samuel Johnson: Here it is, sir: the very cornerstone of English + scholarship. This book, sir, contains every word in our beloved + language. + + Prince Regent George: Hmm. + + Edmund Blackadder: Every single one, sir? + + Johnson: (confidently) Every single word, sir! + + Blackadder: (to Prince) Oh, well, in that case, sir, I hope you will + not object if I also offer the Doctor my most enthusiastic + contrafribularities. + + Johnson: What? + + Blackadder: 'Contrafribularities,' sir? It is a common word down our + way. + + Johnson: Damn! (writes in the book) + + Blackadder: Oh, I'm sorry, sir. I'm anaspeptic, phrasmotic, even + compunctious to have caused you such pericombobulation. + + Johnson: What? What? WHAT? + +=head2 v5.29.0 - Erle Stanley Gardner, The Case of the Grinning Gorilla + +L<Announced on 2018-06-26 by Sawyer X|http://nntp.perl.org/group/perl.perl5.porters/251297> + + Courage is the only antidote for danger. + +=head2 v5.28.0 - Martin Luther King, Jr., 1967 + +L<Announced on 2018-06-22 by Sawyer X|http://nntp.perl.org/group/perl.perl5.porters/251240> + + When we look at modern man we have to face the fact that modern man + suffers from a kind of poverty of the spirit which stands in glaring + contrast with his scientific and technological abundance. We've learned + to fly the air as birds, we've learned to swim the seas as fish, yet we + haven't learned to walk the earth as brothers and sisters. + +=head2 v5.28.0-RC4 - Neil Gaiman, The Graveyard Book + +L<Announced on 2018-06-19 by Sawyer X|http://nntp.perl.org/group/perl.perl5.porters/251212> + + You're alive, Bod. That means you have infinite potential. You can do + anything, make anything, dream anything. If you can change the world, + the world will change. Potential. Once you're dead, it's gone. Over. + You've made what you've made, dreamed your dream, written your name. + You may be buried here, you may even walk. But that potential is + finished. + +=head2 v5.28.0-RC3 - Anthony Horowitz, Magpie Murders + +L<Announced on 2018-06-18 by Sawyer X|http://nntp.perl.org/group/perl.perl5.porters/251204> + + These had been his plans. But if there was one thing that life had + taught him, it was the futility of making plans. Life had its own + agenda. + +=head2 v5.28.0-RC2 - Oliver Sacks, The Man Who Mistook His Wife For A Hat: And Other Clinical Tales + +L<Announced on 2018-06-06 by Sawyer X|http://nntp.perl.org/group/perl.perl5.porters/251122> + + Had she not been of exceptional intelligence and literacy, with an + imagination filled and sustained, so to speak, by the images of + others, images conveyed by language, by the word, she might have + remained almost as helpless as a baby. + +=head2 v5.28.0-RC1 - Anu Garg, A Word A Day + +L<Announced on 2018-05-21 by Sawyer X|https://www.nntp.perl.org/group/perl.perl5.porters/2018/05/msg250999.html> + + One doesn't have to know the unit of pain (dol) to realize that the + unit of joy is not the dollar, or any other currency for that matter. + +=head2 v5.27.11 - Tana French, In the Woods + +L<Announced on 2018-04-20 by Sawyer X|https://www.nntp.perl.org/group/perl.perl5.porters/2018/04/msg250571.html> + + And then, too, I had learned early to assume something dark and + lethal hidden at the heart of anything I loved. When I couldn't find + it, I responded, bewildered and wary, in the only way I knew how: by + planting it there myself. + +=head2 v5.27.10 - Robert A. Heinlein, Time Enough for Love, p. 248 + +L<Announced on 2018-03-20 by Todd Rinaldo|https://www.nntp.perl.org/group/perl.perl5.porters/2018/03/msg250042.html> + + A human being should be able to change a diaper, plan an invasion, butcher + a hog, conn a ship, design a building, write a sonnet, balance accounts, + build a wall, set a bone, comfort the dying, take orders, give orders, + cooperate, act alone, solve equations, analyze a new problem, pitch manure, + program a computer, cook a tasty meal, fight efficiently, die gallantly. + Specialization is for insects. + +=head2 v5.27.9 - Agatha Christie, "The Mysterious Affair at Styles" + +L<Announced on 2018-02-20 by Renee Bäcker|https://www.nntp.perl.org/group/perl.perl5.porters/2018/02/msg249549.html> + + Poirot was an extraordinary looking little man. He was hardly more + than five feet, four inches, but carried himself with great dignity. + His head was exactly the shape of an egg, and he always perched it + a little on one side. His moustache was very stiff and military. + The neatness of his attire was almost incredible. I believe a + speck of dust would have caused him more pain than a bullet wound. + Yet this quaint dandified little man who, I was sorry to see, now + limped badly, had been in his time one of the most celebrated members + of the Belgian police. As a detective, his flair had been extraordinary, + and he had achieved triumphs by unravelling some of the most baffling + cases of the day. + He pointed out to me the little house inhabited by him and his fellow + Belgians, and I promised to go and see him at an early date. Then he + raised his hat with a flourish to Cynthia, and we drove away. + "He's a dear little man," said Cynthia. "I'd no idea you knew him." + "You've been entertaining a celebrity unawares," I replied. + And, for the rest of the way home, I recited to them the various + exploits and triumphs of Hercule Poirot. + +=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> + + Death looked at the sacks. + + It was a strange but demonstrable fact that the sacks of + toys carried by the Hogfather, no matter what they + really contained, always appeared to have sticking out + of the top a teddy bear, a toy soldier in the kind of + colorful uniform that would stand out in a disco, a + drum and a red-and-white candy cane. The actual + contents always turned out to be something a bit + garish and costing $5.99. + + Death had investigated one or two. There had been a + Real Agatean Ninja, for example, with Fearsome + Death Grip, and a Captain Carrot One-Man Night + Watch with a complete wardrobe of toy weapons, each + of which cost as much as the original wooden doll in + the first place. + + Mind you, the stuff for the girls was just as + depressing. It seemed to be nearly all horses. Most of + them were grinning. Horses, Death felt, shouldn't grin. + + Any horse that was grinning was planning something. + +=head2 v5.27.6 - Ogden Nash, "Behold the Duck" + +L<Announced on 2017-11-20 by Karen Etheridge|https://www.nntp.perl.org/group/perl.perl5.porters/2017/11/msg247489.html> + + Behold the duck, + it does not cluck; + a cluck it lacks, + it quacks! + + It is 'specially fond + of puddles or ponds; + when it dines or sups + it bottoms ups. + + +=head2 v5.27.5 - Frank Birch, Dilly Knox & G. P. Mackeson, "Alice in I.D.25" + +L<Announced on 2017-10-20 by Steve Hay|https://www.nntp.perl.org/group/perl.perl5.porters/2017/10/msg246785.html> + + 'Can I do anything?' Alice suggested timidly, thinking that something + dreadful must have happened. + The Waterflap jumped as if it had been shot. 'What are you doing + here?' it snapped. 'Take this at once into the Directional room,' and it + thrust the paper which had caused all the fuss into her hands. + 'But where is the Directional room?' she inquired, bewildered. + 'Why, there of course,' howled the Waterflap, pointing to a door. + 'How could I possibly know that!' Alice exclaimed, angered by his + rudeness. + 'Silly girl,' it hissed. 'Why, it's called the Directional room + because it's in that direction,' and it pushed her roughly through the + doorway. + =head2 v5.27.4 - Richard Brautigan, "All Watched Over By Machines Of Loving Grace" L<Announced on 2017-09-20 by John SJ Anderson|https://www.nntp.perl.org/group/perl.perl5.porters/2017/09/msg246371.html> @@ -131,6 +404,49 @@ L<Announced on 2017-05-31 by Sawyer X|http://www.nntp.perl.org/group/perl.perl5. -- Bertrand Russell, The Road to Happiness +=head2 v5.26.2 - Desmond Morris, "Catwatching: The Essential Guide to Cat Behaviour" + +L<Announced on 2018-04-14 by Steve Hay|http://www.nntp.perl.org/group/perl.perl5.porters/2018/04/msg250440.html> + +How does a cat use its whiskers? The usual answer is that the whiskers +are feelers that enable a cat to tell whether a gap is wide enough for +it to squeeze through, but the truth is more complicated and more +remarkable. In addition to their obvious role as feelers sensitive to +touch, the whiskers also operate as air-current detectors. As the cat +moves along in the dark it needs to manoeuvre past solid objects without +touching them. Each solid object it approaches causes slight eddies in +the air, minute disturbances in the currents of air movements, and the +cat's whiskers are so amazingly sensitive that they can read these air +changes and respond to the presence of solid obstacles even without +touching them. + +=head2 v5.26.2-RC1 - Desmond Morris, "Catwatching: The Essential Guide to Cat Behaviour" + +L<Announced on 2018-03-24 by Steve Hay|http://www.nntp.perl.org/group/perl.perl5.porters/2018/03/msg250103.html> + +Cats have a way of endearing themselves to their owners, not just by +their 'kittenoid' behaviour, which stimulates strong parental feelings, +but also by their sheer gracefulness. There is an elegance and a +composure about them that captivates the human eye. To the sensitive +human being it becomes a privilege to share a room with a cat, exchange +its glance, feel its greeting rub, or watch it gently luxuriate itself +into a snoozing ball on a soft cushion. + +=head2 v5.26.1 - Samuel Taylor Coleridge, "The Rime of the Ancient Mariner" + +L<Announced on 2017-09-22 by Steve Hay|http://www.nntp.perl.org/group/perl.perl5.porters/2017/09/msg246408.html> + + And soon I heard a roaring wind: + It did not come anear; + But with its sound it shook the sails, + That were so thin and sere. + + The upper air burst into life! + And a hundred fire-flags sheen, + To and fro they were hurried about! + And to and fro, and in and out, + The wan stars danced between. + =head2 v5.26.1-RC1 - Samuel Taylor Coleridge, "The Rime of the Ancient Mariner" L<Announced on 2017-09-10 by Steve Hay|http://www.nntp.perl.org/group/perl.perl5.porters/2017/09/msg246202.html> @@ -263,7 +579,7 @@ L<Announced on 2016-10-10 by Aaron Crane|http://www.nntp.perl.org/group/perl.per I'm up on all the pop trivia, says the guy with the stud in his tongue. Are you? - Yes. Do you know who he lead singer of Echo and the Bunnymen is? + Yes. Do you know who the lead singer of Echo and the Bunnymen is? Let me guess, is he called Echo? Good guess but no, anyway when they played Glastonbury it was so muddy he had two roadies to hold up a binliner on each of his legs so @@ -404,6 +720,47 @@ L<Announced on 2016-05-09 by Ricardo Signes|http://www.nntp.perl.org/group/perl. To find that the utmost reward Of daring should be still to dare. +=head2 v5.24.4 - Desmond Morris, "Catwatching: The Essential Guide to Cat Behaviour" + +L<Announced on 2018-04-14 by Steve Hay|http://www.nntp.perl.org/group/perl.perl5.porters/2018/04/msg250439.html> + +Cats hate doors. Doors simply do not register in the evolutionary story +of the cat family. They constantly block patrolling activities and +prevent cats from exploring their home range and then returning to their +central, secure base at will. Humans often do not understand that a cat +needs to make only a brief survey of its territory before returning with +all the necessary information about the activities of other cats in the +vicinity. It likes to make these tours of inspection at frequent +intervals, but does not want to stay outside for very long, unless there +has been some special and unexpected change in the condition of the +local feline population. + +=head2 v5.24.4-RC1 - Desmond Morris, "Catwatching: The Essential Guide to Cat Behaviour" + +L<Announced on 2018-03-24 by Steve Hay|http://www.nntp.perl.org/group/perl.perl5.porters/2018/03/msg250102.html> + +The domestic cat is a contradiction. No animal has developed such an +intimate relationship with mankind, while at the same time demanding and +getting such independence of movement and action. The dog may be man's +best friend, but it is rarely allowed out on its own to wander from +garden to garden or street to street. The obedient dog has to be taken +for a walk. The headstrong cat walks alone. + +=head2 v5.24.3 - Samuel Taylor Coleridge, "The Rime of the Ancient Mariner" + +L<Announced on 2017-09-22 by Steve Hay|http://www.nntp.perl.org/group/perl.perl5.porters/2017/09/msg246407.html> + + Oh sleep! it is a gentle thing, + Beloved from pole to pole! + To Mary Queen the praise be given! + She sent the gentle sleep from Heaven, + That slid into my soul. + + The silly buckets on the deck, + That had so long remained, + I dreamt that they were filled with dew; + And when I awoke, it rained. + =head2 v5.24.3-RC1 - Samuel Taylor Coleridge, "The Rime of the Ancient Mariner" L<Announced on 2017-09-10 by Steve Hay|http://www.nntp.perl.org/group/perl.perl5.porters/2017/09/msg246201.html> diff --git a/gnu/usr.bin/perl/Porting/exec-bit.txt b/gnu/usr.bin/perl/Porting/exec-bit.txt index 4504c52cd5e..83448f7d28c 100644 --- a/gnu/usr.bin/perl/Porting/exec-bit.txt +++ b/gnu/usr.bin/perl/Porting/exec-bit.txt @@ -47,10 +47,12 @@ Porting/corecpan.pl Porting/corelist-perldelta.pl Porting/corelist.pl Porting/expand-macro.pl +Porting/harness-timer-report.pl Porting/findrfuncs Porting/makerel Porting/make_dot_patch.pl Porting/make_snapshot.pl +Porting/mksample Porting/newtests-perldelta.pl Porting/perlhist_calculate.pl Porting/sort_perldiag.pl diff --git a/gnu/usr.bin/perl/Porting/how_to_write_a_perldelta.pod b/gnu/usr.bin/perl/Porting/how_to_write_a_perldelta.pod index effd16696dd..73c17c9ed25 100644 --- a/gnu/usr.bin/perl/Porting/how_to_write_a_perldelta.pod +++ b/gnu/usr.bin/perl/Porting/how_to_write_a_perldelta.pod @@ -51,7 +51,7 @@ C<[rt.cpan.org #43010]>. This mirrors how rt.cpan.org subject lines appear. =item ActiveState -C<http://bugs.activestate.com/show_bug.cgi?id=72443> +C<L<http://bugs.activestate.com/show_bug.cgi?id=72443>> =item Debian @@ -91,8 +91,8 @@ For a release on a stable branch, follows this formula: For the start of a new stable branch, follows this formula: - This document describes differences between the 5.12.0 release - and the 5.10.0 release. + This document describes differences between the 5.10.0 release + and the 5.12.0 release. Clearly this sets the scope of which changes are to be summarised in the rest of the document. diff --git a/gnu/usr.bin/perl/Porting/makemeta b/gnu/usr.bin/perl/Porting/makemeta index cb6944e24a2..a5fa5a45dcb 100644 --- a/gnu/usr.bin/perl/Porting/makemeta +++ b/gnu/usr.bin/perl/Porting/makemeta @@ -8,6 +8,10 @@ use strict; use warnings; use Getopt::Std; +# avoid unnecessary churn in x_serialization_backend in META.* +$ENV{PERL_JSON_BACKEND} = $ENV{CPAN_META_JSON_BACKEND} = 'JSON::PP'; +$ENV{PERL_YAML_BACKEND} = 'CPAN::Meta::YAML'; + my $opts = { 'META.yml' => { version => '1.4' }, 'META.json' => { version => '2' }, @@ -61,7 +65,7 @@ use CPAN::Meta; BEGIN { # Get function prototypes - require 'regen/regen_lib.pl'; + require './regen/regen_lib.pl'; } use Maintainers qw(%Modules get_module_files get_module_pat); diff --git a/gnu/usr.bin/perl/Porting/makerel b/gnu/usr.bin/perl/Porting/makerel index 0bf79908a36..a4b2ed7d684 100644 --- a/gnu/usr.bin/perl/Porting/makerel +++ b/gnu/usr.bin/perl/Porting/makerel @@ -28,19 +28,18 @@ use Getopt::Std; $|=1; sub usage { die <<EOF; } -usage: $0 [ -r rootdir ] [-s suffix ] [ -b ] [ -n ] +usage: $0 [ -r rootdir ] [-s suffix ] [ -x ] [ -n ] -r rootdir directory under which to create the build dir and tarball defaults to '..' -s suffix suffix to append to to the perl-x.y.z dir and tarball name defaults to the concatenation of the local_patches entry in patchlevel.h (or blank, if none) - -b make a .bz2 file in addtion to a .gz file - -x make a .xz file in addtion to a .gz file + -x make a .xz file in addition to a .gz file -n do not make any tarballs, just the directory EOF my %opts; -getopts('bxnr:s:', \%opts) or usage; +getopts('xnr:s:', \%opts) or usage; @ARGV && usage; $relroot = defined $opts{r} ? $opts{r} : ".."; @@ -48,7 +47,7 @@ $relroot = defined $opts{r} ? $opts{r} : ".."; die "Must be in root of the perl source tree.\n" unless -f "./MANIFEST" and -f "patchlevel.h"; -open PATCHLEVEL,"<patchlevel.h" or die; +open PATCHLEVEL, '<', 'patchlevel.h' or die; my @patchlevel_h = <PATCHLEVEL>; close PATCHLEVEL; my $patchlevel_h = join "", grep { /^#\s*define/ } @patchlevel_h; @@ -146,8 +145,8 @@ my @writables = qw( mg_vtable.h perlapi.h perlapi.c - cpan/Devel-PPPort/module2.c - cpan/Devel-PPPort/module3.c + dist/Devel-PPPort/module2.c + dist/Devel-PPPort/module3.c cpan/autodie/t/touch_me reentr.c reentr.h @@ -206,18 +205,6 @@ if ($have_7z) { } } -if ($opts{b}) { - if ($have_7z) { - print "Creating and compressing the tar.bz2 file with 7z...\n"; - $cmd = "tar cf - $reldir | 7z a -tbzip2 -mx9 -bd -si $reldir.tar.bz2"; - system($cmd) == 0 or die "$cmd failed"; - } else { - print "Creating and compressing the tar.bz2 file...\n"; - $cmd = "tar cf - $reldir | bzip2 > $reldir.tar.bz2"; - system($cmd) == 0 or die "$cmd failed"; - } -} - if ($opts{x}) { print "Creating and compressing the tar.gz file with 7z...\n"; $cmd = "tar cf - $reldir | xz -z -c > $reldir.tar.xz"; diff --git a/gnu/usr.bin/perl/Porting/new-perldelta.pl b/gnu/usr.bin/perl/Porting/new-perldelta.pl index 09b778333be..47376cb8fa9 100644 --- a/gnu/usr.bin/perl/Porting/new-perldelta.pl +++ b/gnu/usr.bin/perl/Porting/new-perldelta.pl @@ -4,7 +4,7 @@ use strict; # This needs to be able to run from a clean checkout, hence assume only system # perl, which may be too old to have autodie -require 'Porting/pod_lib.pl'; +require './Porting/pod_lib.pl'; my $state = get_pod_metadata(1); my (undef, $old_major, $old_minor) = @{$state->{delta_version}}; diff --git a/gnu/usr.bin/perl/Porting/perldelta_template.pod b/gnu/usr.bin/perl/Porting/perldelta_template.pod index 5f8ce7ebc4d..3ebe8d0170b 100644 --- a/gnu/usr.bin/perl/Porting/perldelta_template.pod +++ b/gnu/usr.bin/perl/Porting/perldelta_template.pod @@ -51,7 +51,7 @@ XXX Any deprecated features, syntax, modules etc. should be listed here. =head2 Module removals -XXX Remove this section if inapplicable. +XXX Remove this section if not applicable. The following modules will be removed from the core distribution in a future release, and will at that time need to be installed from CPAN. @@ -83,7 +83,7 @@ as an updated module in the L</Modules and Pragmata> section. XXX Changes which enhance performance without changing behaviour go here. There may well be none in a stable release. -[ List each enhancement as a =item entry ] +[ List each enhancement as an =item entry ] =over 4 @@ -101,7 +101,13 @@ following sections using F<Porting/corelist-perldelta.pl>. A paragraph summary for important changes should then be added by hand. In an ideal world, dual-life modules would have a F<Changes> file that could be cribbed. -[ Within each section, list entries as a =item entry ] +The list of new and updated modules is modified automatically as part of +preparing a Perl release, so the only reason to manually add entries here is if +you're summarising the important changes in the module update. (Also, if the +manually-added details don't match the automatically-generated ones, the +release manager will have to investigate the situation carefully.) + +[ Within each section, list entries as an =item entry ] =head2 New Modules and Pragmata @@ -109,7 +115,7 @@ dual-life modules would have a F<Changes> file that could be cribbed. =item * -XXX +XXX Remove this section if not applicable. =back @@ -121,6 +127,8 @@ XXX L<XXX> has been upgraded from version A.xx to B.yy. +If there was something important to note about this change, include that here. + =back =head2 Removed Modules and Pragmata @@ -148,10 +156,16 @@ XXX Description of the purpose of the new file here =head2 Changes to Existing Documentation +We have attempted to update the documentation to reflect the changes +listed in this document. If you find any we have missed, send email +to L<perlbug@perl.org|mailto:perlbug@perl.org>. + XXX Changes which significantly change existing files in F<pod/> go here. However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics> section. +Additionally, the following selected changes have been made: + =head3 L<XXX> =over 4 @@ -234,7 +248,7 @@ go here. Any other changes to the Perl build process should be listed here. However, any platform-specific changes should be listed in the L</Platform Support> section, instead. -[ List changes as a =item entry ]. +[ List changes as an =item entry ]. =over 4 @@ -252,7 +266,18 @@ large changes to the testing harness (e.g. when parallel testing was added). Changes to existing files in F<t/> aren't worth summarizing, although the bugs that they represent may be covered elsewhere. -[ List each test improvement as a =item entry ] +XXX If there were no significant test changes, say this: + +Tests were added and changed to reflect the other additions and changes +in this release. + +XXX If instead there were significant changes, say this: + +Tests were added and changed to reflect the other additions and +changes in this release. Furthermore, these significant changes were +made: + +[ List each test improvement as an =item entry ] =over 4 @@ -266,7 +291,7 @@ XXX XXX Any changes to platform support should be listed in the sections below. -[ Within the sections, list each platform as a =item entry with specific +[ Within the sections, list each platform as an =item entry with specific changes as paragraphs below it. ] =head2 New Platforms @@ -317,7 +342,7 @@ XXX Changes which affect the interface available to C<XS> code go here. Other significant internal changes for future core maintainers should be noted as well. -[ List each change as a =item entry ] +[ List each change as an =item entry ] =over 4 @@ -332,7 +357,7 @@ XXX XXX Important bug fixes in the core language are summarized here. Bug fixes in files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>. -[ List each fix as a =item entry ] +[ List each fix as an =item entry ] =over 4 @@ -348,7 +373,7 @@ XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any tests that had to be C<TODO>ed for the release would be noted here. Unfixed platform specific bugs also go here. -[ List each fix as a =item entry ] +[ List each fix as an =item entry ] =over 4 @@ -371,20 +396,19 @@ the perldelta of a previous release. =head1 Obituary -XXX If any significant core contributor has died, we've added a short obituary -here. +XXX If any significant core contributor or member of the CPAN community has +died, add a short obituary here. =head1 Acknowledgements XXX Generate this with: - perl Porting/acknowledgements.pl v5.24.3..HEAD + perl Porting/acknowledgements.pl v5.27.11..HEAD =head1 Reporting Bugs -If you find what you think is a bug, you might check the articles recently -posted to the comp.lang.perl.misc newsgroup and the perl bug database at -L<https://rt.perl.org/> . There may also be information at +If you find what you think is a bug, you might check the perl bug database +at L<https://rt.perl.org/> . There may also be information at L<http://www.perl.org/> , the Perl Home Page. If you believe you have an unreported bug, please run the L<perlbug> program @@ -397,6 +421,15 @@ inappropriate to send to a publicly archived mailing list, then see L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION> for details of how to report the issue. +=head1 Give Thanks + +If you wish to thank the Perl 5 Porters for the work we had done in Perl 5, +you can do so by running the C<perlthanks> program: + + perlthanks + +This will send an email to the Perl 5 Porters list with your show of thanks. + =head1 SEE ALSO The F<Changes> file for an explanation of how to view exhaustive details on diff --git a/gnu/usr.bin/perl/Porting/pod_lib.pl b/gnu/usr.bin/perl/Porting/pod_lib.pl index 6eaacde48c4..25cf691bf29 100644 --- a/gnu/usr.bin/perl/Porting/pod_lib.pl +++ b/gnu/usr.bin/perl/Porting/pod_lib.pl @@ -403,7 +403,7 @@ sub __prime_state { my $filename = "pod/$source"; my $contents = slurp_or_die($filename); my @want = - $contents =~ /perldelta - what is new for perl v(5)\.(\d+)\.(\d+)\n/; + $contents =~ /perldelta - what is new for perl v(5)\.(\d+)\.(\d+)\r?\n/; die "Can't extract version from $filename" unless @want; my $delta_leaf = join '', 'perl', @want, 'delta'; $state{delta_target} = "$delta_leaf.pod"; diff --git a/gnu/usr.bin/perl/Porting/pod_rules.pl b/gnu/usr.bin/perl/Porting/pod_rules.pl index 0d837bf2329..2ba023ba7c9 100644 --- a/gnu/usr.bin/perl/Porting/pod_rules.pl +++ b/gnu/usr.bin/perl/Porting/pod_rules.pl @@ -1,7 +1,7 @@ #!/usr/bin/perl -w use strict; -use vars qw(%Build %Targets $Verbose $Test); +our (%Build, %Targets, $Verbose, $Test); use Text::Tabs; use Text::Wrap; use Getopt::Long; @@ -32,7 +32,8 @@ if (ord("A") == 193) { # plan9 => 'plan9/mkfile', ); -require 'Porting/pod_lib.pl'; +require './Porting/pod_lib.pl'; +require './Porting/manifest_lib.pl'; sub my_die; # process command-line switches @@ -140,14 +141,15 @@ sub do_manifest { my @manifest = grep {! m!^pod/[^. \t]+\.pod.*!} grep {! m!^README\.(\S+)! || $state->{ignore}{$1}} split "\n", $prev; - join "\n", ( - # Dictionary order - fold and handle non-word chars as nothing - map { $_->[0] } - sort { $a->[1] cmp $b->[1] || $a->[0] cmp $b->[0] } - map { my $f = lc $_; $f =~ s/[^a-z0-9\s]//g; [ $_, $f ] } - @manifest, - &generate_manifest_pod(), - &generate_manifest_readme()), ''; + # NOTE - the sort code here is shared with Porting/manisort currently. + # If you change one, change the other. Or refactor them. :-) + join "\n", sort_manifest( + @manifest, + &generate_manifest_pod(), + &generate_manifest_readme() + ), + '', # elegant way to add a newline to the end + ; } sub do_nmake { diff --git a/gnu/usr.bin/perl/Porting/pumpkin.pod b/gnu/usr.bin/perl/Porting/pumpkin.pod index 74110428f7d..55131822a53 100644 --- a/gnu/usr.bin/perl/Porting/pumpkin.pod +++ b/gnu/usr.bin/perl/Porting/pumpkin.pod @@ -24,7 +24,7 @@ and all the various auxiliary files that are part of the distribution. The Comprehensive Perl Archive Network (or CPAN) is the place to go. There are many mirrors, but the easiest thing to use is probably -http://www.cpan.org/README.html , which automatically points you to a +L<http://www.cpan.org/README.html> , which automatically points you to a mirror site "close" to you. =head2 Perl5-porters mailing list @@ -292,41 +292,47 @@ F<l1_char_class_tab.h>, and F<perltoc.pod> files are all automatically generated by perl scripts. In general, don't patch these directly; patch the data files instead. -F<Configure> and F<config_h.SH> are also automatically generated by -B<metaconfig>. In general, you should patch the metaconfig units -instead of patching these files directly. However, very minor changes -to F<Configure> may be made in between major sync-ups with the -metaconfig units, which tends to be complicated operations. But be -careful, this can quickly spiral out of control. Running metaconfig -is not really hard. - Also F<Makefile> is automatically produced from F<Makefile.SH>. In general, look out for all F<*.SH> files. -Finally, the sample files in the F<Porting/> subdirectory are -generated automatically by the script F<U/mksample> included -with the metaconfig units. See L<"run metaconfig"> below for -information on obtaining the metaconfig units. +Finally, the sample files F<config.sh> and F<config_H> in the +F<Porting/> subdirectory are generated by the script F<Porting/mksample>. -=head1 How to Make a Distribution +=head3 Files generated by metaconfig -This section has now been expanded and moved into its own file, -F<Porting/release_managers_guide.pod>. +F<Configure>, F<config_h.SH> and F<Porting/Glossary> are generated by +B<metaconfig> (see below for more information on how to use this system) +and direct changes to these files should in general not be pushed to blead. -I've kept some of the subsections here for now, as they don't directly -relate to building a release any more, but still contain what might be -useful information - DAPM 7/2009. +The exceptions are: + +=over 4 + +=item * + +security fixes + +=item * + +changes pre-approved by the metaconfig maintainers + +=back -=head2 run metaconfig +Such changes should also be notified to the metaconfig maintainers. -If you need to make changes to Configure or config_h.SH, it may be best to -change the appropriate metaconfig units instead, and regenerate Configure. +Alternatively, do consider if the F<*ish.h> files or the hint files might +be a better place for your changes. - metaconfig -m +=head1 Working with metaconfig -will regenerate F<Configure> and F<config_h.SH>. Much more information -on obtaining and running metaconfig is in the F<U/README> file -that comes with Perl's metaconfig units. +Information about how to use metaconfig can be found in the F<README> +and F<README_U> files in the metaconfig repository containing Perl's +metaconfig units: + + # anonymous clone + git clone https://github.com/perl5-metaconfig/metaconfig.git + # or using a registered github.com identity with ssh + git clone github.com:perl5-metaconfig/metaconfig metaconfig Since metaconfig is hard to change, running correction scripts after this generation is sometimes needed. Configure gained complexity over @@ -335,16 +341,14 @@ when compiling perl. Therefor, you need to run Porting/config_h.pl after that generation. All that and more is described in the README files that come with the metaunits. -Perl's metaconfig units should be available on CPAN. A set of units -that will work with perl5.9.x is in a file with a name similar to -F<mc_units-20070423.tgz> under L<http://www.cpan.org/authors/id/H/HM/HMBRAND/>. -The mc_units tar file should be unpacked in your main perl source directory. -Note: those units were for use with 5.9.x. There may have been changes since -then. Check for later versions or contact perl5-porters@perl.org to obtain a -pointer to the current version. +=head1 How to Make a Distribution -Alternatively, do consider if the F<*ish.h> files or the hint files might be -a better place for your changes. +This section has now been expanded and moved into its own file, +F<Porting/release_managers_guide.pod>. + +I've kept some of the subsections here for now, as they don't directly +relate to building a release any more, but still contain what might be +useful information - DAPM 7/2009. =head2 MANIFEST @@ -471,7 +475,7 @@ Let's not force people to keep changing it. =head2 PPPort -F<cpan/Devel-PPPort/PPPort.pm> needs to be synchronized to include all +F<dist/Devel-PPPort/PPPort.pm> needs to be synchronized to include all new macros added to .h files (normally F<perl.h> and F<XSUB.h>, but others as well). Since chances are that when a new macro is added the committer will forget to update F<PPPort.pm>, it's the best to diff for @@ -540,9 +544,9 @@ Here's how I generate a new patch. I'll use the hypothetical 5.004_07 to 5.004_08 patch as an example. # unpack perl5.004_07/ - gzip -d -c perl5.004_07.tar.gz | tar -xf - + gzip -d -c perl5.004_07.tar.gz | tar -xof - # unpack perl5.004_08/ - gzip -d -c perl5.004_08.tar.gz | tar -xf - + gzip -d -c perl5.004_08.tar.gz | tar -xof - makepatch perl5.004_07 perl5.004_08 > perl5.004_08.pat Makepatch will automatically generate appropriate B<rm> commands to remove @@ -1124,15 +1128,11 @@ and the full tar file, e.g. F<perl5.004_08.tar.gz>. If you want your patch to appear in the F<src/5.0/unsupported> directory on CPAN, send e-mail to the CPAN master librarian. (Check -out http://www.cpan.org/CPAN.html ). +out L<http://www.cpan.org/CPAN.html> ). =head1 Help Save the World You should definitely announce your patch on the perl5-porters list. -You should also consider announcing your patch on -comp.lang.perl.announce, though you should make it quite clear that a -subversion is not a production release, and be prepared to deal with -people who will not read your disclaimer. =head1 Todo @@ -1389,11 +1389,11 @@ copyrights alone. Doing more than that requires quite a bit of tracking. =head1 AUTHORS Original author: Andy Dougherty doughera@lafayette.edu . -Additions by Chip Salzenberg chip@perl.com and -Tim Bunce Tim.Bunce@ig.co.uk . +Additions by Chip Salzenberg chip@perl.com, Tim Bunce and the perl5 +development team. All opinions expressed herein are those of the authorZ<>(s). =head1 LAST MODIFIED -2009-07-08-01 Jesse Vincent +2017-10-13 Dominic Hargreaves diff --git a/gnu/usr.bin/perl/Porting/release_announcement_template.txt b/gnu/usr.bin/perl/Porting/release_announcement_template.txt index c1fb1e7cb9b..29f9b276f95 100644 --- a/gnu/usr.bin/perl/Porting/release_announcement_template.txt +++ b/gnu/usr.bin/perl/Porting/release_announcement_template.txt @@ -13,7 +13,6 @@ https://metacpan.org/release/[AUTHOR]/perl-5.[VERSION.SUBVERSION]/ SHA1 digests for this release are: [TAR.GZ SHA1] perl-5.[VERSION.SUBVERSION].tar.gz - [TAR.BZ2 SHA1] perl-5.[VERSION.SUBVERSION].tar.bz2 [TAR.XZ SHA1] perl-5.[VERSION.SUBVERSION].tar.xz You can find a full list of changes in the file "perldelta.pod" located in @@ -24,7 +23,7 @@ https://metacpan.org/pod/release/[AUTHOR]/perl-5.[VERSION.SUBVERSION]/pod/perlde [ACKNOWLEDGEMENTS SECTION FROM PERLDELTA] We expect to release version [NEXT BLEAD VERSION.SUBVERSION] on [FUTURE -DATE]. The next major stable release of Perl 5, version 24.0, should -appear in May 2016. +DATE]. The next major stable release of Perl 5, version 28.0, should +appear in May 2018. [YOUR SALUTATION HERE] diff --git a/gnu/usr.bin/perl/Porting/release_managers_guide.pod b/gnu/usr.bin/perl/Porting/release_managers_guide.pod index 9f8004c7e07..2ab11d013f0 100644 --- a/gnu/usr.bin/perl/Porting/release_managers_guide.pod +++ b/gnu/usr.bin/perl/Porting/release_managers_guide.pod @@ -16,13 +16,13 @@ document that starts with a checklist for your release. This script is run as: perl Porting/make-rmg-checklist \ - --type [BLEAD-POINT or MAINT or ...] > /tmp/rmg.pod + --version [5.x.y-RC#] > /tmp/rmg.pod You can also pass the C<--html> flag to generate an HTML document instead of POD. perl Porting/make-rmg-checklist --html \ - --type [BLEAD-POINT or MAINT or ...] > /tmp/rmg.html + --version [5.x.y-RC#] > /tmp/rmg.html =head1 SYNOPSIS @@ -46,7 +46,7 @@ The checklist of a typical release cycle is as follows: ...time passes... a few weeks before the release, a number of steps are performed, - including bumping the version to 5.10.2 + including bumping the version to 5.10.2 ...a few weeks pass... @@ -55,7 +55,7 @@ The checklist of a typical release cycle is as follows: perl-5.10.2 is released post-release actions are performed, including creating new - perldelta.pod + perldelta.pod ... the cycle continues ... @@ -144,7 +144,7 @@ Andreas' email address at: =head3 rt.perl.org update access Make sure you have permission to close tickets on L<http://rt.perl.org/> -so you can respond to bug report as necessary during your stint. If you +so you can respond to bug reports as necessary during your stint. If you don't, make an account (if you don't have one) and contact the pumpking with your username to get ticket-closing permission. @@ -173,15 +173,10 @@ which has a F<public_html> directory to share files with. If you use Dropbox, you can append "raw=1" as a parameter to their usual sharing link to allow direct download (albeit with redirects). -=head3 git clone of L<https://github.com/perlorg/perlweb> - -For updating the L<http://dev.perl.org> web pages, either a Github account or -sweet-talking somebody with a Github account into obedience is needed. This -is only needed on the day of the release or shortly afterwards. - =head3 Quotation for release announcement epigraph You will need a quotation to use as an epigraph to your release announcement. +It will live forever (along with Perl), so make it a good one. =head3 Install the previous version of perl @@ -243,7 +238,7 @@ necessary, fix things up. For example, you might think that both blead and maint are synchronised with a particular CPAN module, but one might have some extra changes. -=head3 How to sync a CPAN module with a cpanE<sol> distro +=head4 Sync CPAN modules with the corresponding cpanE<sol> distro In most cases, once a new version of a distribution shipped with core has been uploaded to CPAN, the core version thereof can be synchronized automatically @@ -335,13 +330,14 @@ If everything is ok, commit the changes. For entries with a non-simple C<FILES> section, or with a C<MAP>, you may have to take more steps than listed above. -=head3 dual-life CPAN module stability +=head3 Ensure dual-life CPAN module stability -Ensure dual-life CPAN modules are stable, which comes down to: +This comes down to: for each module that fails its regression tests on $current did it fail identically on $previous? - if yes, "SEP" (Somebody Else's Problem) + if yes, "SEP" (Somebody Else's Problem, but try to make sure a + bug ticket is filed) else work out why it failed (a bisect is useful for this) attempt to group failure causes @@ -360,7 +356,7 @@ Ensure dual-life CPAN modules are stable, which comes down to: =head3 monitor smoke tests for failures Similarly, monitor the smoking of core tests, and try to fix. See -L<http://smoke.procura.nl/index.html>, L<http://perl5.test-smoke.org/> +L<https://tux.nl/perl5/smoke/index.html>, L<http://perl5.test-smoke.org/> and L<http://perl.develop-help.com> for a summary. See also L<http://www.nntp.perl.org/group/perl.daily-build.reports/> which has the raw reports. @@ -386,7 +382,7 @@ L<http://analysis.cpantesters.org/beforemaintrelease?pair=5.20.2:5.22.0%20RC1> Get perldelta in a mostly finished state. -Read F<Porting/how_to_write_a_perldelta.pod>, and try to make sure that +Read F<Porting/how_to_write_a_perldelta.pod>, and try to make sure that every section it lists is, if necessary, populated and complete. Copy edit the whole document. @@ -495,7 +491,7 @@ blead release, so you may find nothing to do here. Check that the copyright years are up to date by running: - $ ./perl t/porting/copyright.t --now + $ pushd t; ./perl -I../lib porting/copyright.t --now Remedy any test failures by editing README or perl.c accordingly (search for the "Copyright"). If updating perl.c, check if the file's own copyright date in @@ -533,11 +529,12 @@ If necessary update the list and the indicated version number. =head3 check a readonly build -Even before other prep work, follow the steps in L<build the tarball> and test +Even before other prep work, follow the steps in L<build the tarball> and test it locally. Because a perl source tarballs sets many files read-only, it could test differently than tests run from the repository. After you're sure permissions aren't a problem, delete the generated directory and tarballs. + =head2 Building a release - on the day This section describes the actions required to make a release @@ -588,19 +585,18 @@ maintainer for 'cpan' upstream modules. =head4 Bump Module::CoreList* $VERSIONs -If necessary, bump C<$Module::CoreList::VERSION> (there's no need to do this +If necessary, bump C<$VERSION> (there's no need to do this for every RC; in RC1, bump the version to a new clean number that will appear in the final release, and leave as-is for the later RCs and final). 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. -The files to modify are: +Once again, the files to modify are: =over 4 @@ -612,10 +608,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. @@ -646,7 +638,7 @@ on HTTP::Tiny to fetch package metadata remotely. (If you'd prefer to have a full CPAN mirror, see L<http://www.cpan.org/misc/cpan-faq.html#How_mirror_CPAN>) -Then change to your perl checkout, and if necessary, +Change to your perl checkout, and if necessary, $ make @@ -673,6 +665,8 @@ Check those files over carefully: Also edit Module::CoreList's new version number in its F<Changes> file. This file is F<dist/Module-CoreList/Changes>. +(BLEAD-POINT releases should have had this done already as a post-release +action from the last commit.) =head4 Add Module::CoreList version bump to perldelta @@ -732,6 +726,7 @@ run through pod and spell checkers, e.g. $ podchecker -warnings -warnings pod/perldelta.pod $ spell pod/perldelta.pod + $ aspell list < pod/perldelta.pod | sort -u Also, you may want to generate and view an HTML version of it to check formatting, e.g. @@ -739,8 +734,6 @@ formatting, e.g. $ ./perl -Ilib ext/Pod-Html/bin/pod2html pod/perldelta.pod > \ /tmp/perldelta.html -Another good HTML preview option is L<http://search.cpan.org/pod2html> - If you make changes, be sure to commit them. =for checklist skip BLEAD-POINT MAINT RC @@ -932,23 +925,23 @@ Create a tarball. Use the C<-s> option to specify a suitable suffix for the tarball and directory name: $ cd root/of/perl/tree - $ make distclean # make sure distclean works - $ git clean -xdf # make sure perl and git agree on files - # git clean should not output anything! - $ git status # and there's nothing lying around + $ make distclean # make sure distclean works + $ git clean -xdf # make sure perl and git agree on files + # git clean should not output anything! + $ git status --ignored # and there's nothing lying around - $ perl Porting/makerel -bx -s RC1 # for a release candidate - $ perl Porting/makerel -bx # for the release itself + $ perl Porting/makerel -x -s RC1 # for a release candidate + $ perl Porting/makerel -x # for the release itself -This creates the directory F<../perl-x.y.z-RC1> or similar, copies all +This creates the directory F<../perl-x.y.z-RC1> or similar, copies all the MANIFEST files into it, sets the correct permissions on them, then -tars it up as F<../perl-x.y.z-RC1.tar.gz>. With C<-b>, it also creates a -C<tar.bz2> file. The C<-x> also produces a C<tar.xz> file. +tars it up as F<../perl-x.y.z-RC1.tar.gz>. The C<-x> also produces a +C<tar.xz> file. If you're getting your tarball suffixed with -uncommitted and you're sure your changes were all committed, you can override the suffix with: - $ perl Porting/makerel -b -s '' + $ perl Porting/makerel -x -s '' XXX if we go for extra tags and branches stuff, then add the extra details here @@ -963,8 +956,7 @@ Once you have a tarball it's time to test the tarball (not the repository). =head4 Copy the tarball to a web server -Copy the tarballs (.gz and possibly .bz2 and .xz) to a web server somewhere you -have access to. +Copy the tarballs (.gz and .xz) to a web server somewhere you have access to. =head4 Download the tarball to another machine and unpack it @@ -1107,7 +1099,7 @@ a new release with a new minor version or RC number. https://pause.perl.org/ -(Login, then select 'Upload a file to CPAN') +(Log in, then select 'Upload a file to CPAN') If your workstation is not connected to a high-bandwidth, high-reliability connection to the Internet, you should probably use the @@ -1125,7 +1117,13 @@ on dromedary. I<Remember>: if your upload is partially successful, you may need to contact a PAUSE administrator or even bump the version of perl. -Upload the .gz, .xz, and .bz2 versions of the tarball. +Upload the .gz and .xz versions of the tarball. + +Note: You can also use the command-line utility to upload your tarballs, if +you have it configured: + + cpan-upload perl-5.X.Y.tar.gz + cpan-upload perl-5.X.Y.tar.xz Do not proceed any further until you are sure that your tarballs are on CPAN. Check your authors directory www.cpan.org (the globally balanced "fast" @@ -1163,7 +1161,8 @@ Be sure to commit your change: =head3 announce to p5p -Mail p5p to announce your new release, with a quote you prepared earlier. +Mail perl5-porters@perl.org to announce your new release, with a quote you prepared earlier. +Get the SHA1 digests from the PAUSE email responses. Use the template at Porting/release_announcement_template.txt @@ -1238,7 +1237,8 @@ Confirm that you have a clean checkout with no local changes. =item * -Run F<Porting/new-perldelta.pl> +Run: + perl Porting/new-perldelta.pl =item * @@ -1259,6 +1259,8 @@ Skip to the end of its test output to see the options it offers you. When C<make test_porting> passes, commit the new perldelta. + git commit -m'new perldelta for 5.X.Y' + =back At this point you may want to compare the commit with a previous bump to @@ -1279,7 +1281,7 @@ First, add a new feature bundle to F<regen/feature.pl>, initially by just copying the exiting entry, and bump the file's $VERSION (after the __END__ marker); e.g. - "5.14" => [qw(switch say state unicode_strings)], + "5.14" => [qw(switch say state unicode_strings)], + "5.15" => [qw(switch say state unicode_strings)], Run F<regen/feature.pl> to propagate the changes to F<lib/feature.pm>. @@ -1437,9 +1439,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 * @@ -1523,22 +1524,6 @@ It should be visible at a URL like C<http://search.cpan.org/dist/perl-5.10.1/>. =back -=for checklist skip RC - -=head3 update dev.perl.org - -I<You MUST SKIP this step for a RC release> - -In your C<perlweb> repository, link to the new release. For a new -latest-maint release, edit F<docs/shared/tpl/stats.html>. Otherwise, -edit F<docs/dev/perl5/index.html>. - -Then make a pull request to Leo Lapworth. If this fails for some reason -and you cannot cajole anybody else into submitting that change, you can -mail Leo as last resort. - -This repository can be found on L<github|https://github.com/perlorg/perlweb>. - =head3 update release manager's guide Go over your notes from the release (you did take some, right?) and update diff --git a/gnu/usr.bin/perl/Porting/release_schedule.pod b/gnu/usr.bin/perl/Porting/release_schedule.pod index 4622c3167b9..2b7016bd714 100644 --- a/gnu/usr.bin/perl/Porting/release_schedule.pod +++ b/gnu/usr.bin/perl/Porting/release_schedule.pod @@ -11,29 +11,41 @@ release schedules for the next, current and previous stable versions of Perl. Dates with two or more question marks will only be releases if deemed necessary by the Pumpking. -=head2 Perl 5.24 +=head2 Perl 5.30 + +Code freezes (which happen in the 5.29.X series) + + 2019-02-20 5.29.8 Contentious changes freeze + 2019-03-20 5.29.9 User-visible changes to correctly + functioning programs freeze + 2019-04-20 5.29.10 Full code freeze + 2019-05-20 5.30.0 Stable release! + +=head2 Perl 5.28 -Code freezes (which happen in the 5.23.X series) + 2018-05-20 5.28.0 ✓ Sawyer X + +=head2 Perl 5.26 + + 2017-05-30 5.26.0 ✓ Sawyer X + 2017-09-22 5.26.1 ✓ Steve Hay + 2018-04-14 5.26.2 ✓ Steve Hay + +=head2 Perl 5.24 - 2016-01-20 5.23.7 ✓ Contentious changes freeze - 2016-02-20 5.23.8 ✓ User-visible changes freeze - 2016-03-20 5.23.9 ✓ Full code freeze - 2016-05-20 5.24.0 Stable release! + 2016-05-09 5.24.0 ✓ Ricardo Signes + 2017-01-14 5.24.1 ✓ Steve Hay + 2017-07-15 5.24.2 ✓ Steve Hay + 2017-09-22 5.24.3 ✓ Steve Hay + 2018-04-14 5.24.4 ✓ Steve Hay =head2 Perl 5.22 2015-06-01 5.22.0 ✓ Ricardo Signes 2015-12-13 5.22.1 ✓ Steve Hay 2016-04-29 5.22.2 ✓ Steve Hay - 2016-??-?? 5.22.3 ?? - -=head2 Perl 5.20 - - 2014-05-27 5.20.0 ✓ Ricardo Signes - 2014-09-14 5.20.1 ✓ Steve Hay - 2015-02-14 5.20.2 ✓ Steve Hay - 2015-09-12 5.20.3 ✓ Steve Hay - 2016-??-?? 5.20.4 ?? + 2017-01-14 5.22.3 ✓ Steve Hay + 2017-07-15 5.22.4 ✓ Steve Hay =head1 DEVELOPMENT RELEASE SCHEDULE @@ -49,34 +61,21 @@ When shipping a release, you should include the schedule for (at least) the next four releases. If a stable version of Perl is released, you should reset the version numbers to the next blead series. -=head2 Perl 5.23 - - 2015-06-20 5.23.0 ✓ Ricardo Signes - 2015-07-20 5.23.1 ✓ Matthew Horsfall - 2015-08-20 5.23.2 ✓ Matthew Horsfall - 2015-09-20 5.23.3 ✓ Peter Martini - 2015-10-20 5.23.4 ✓ Steve Hay - 2015-11-20 5.23.5 ✓ Abigail - 2015-12-20 5.23.6 ✓ David Golden - 2016-01-20 5.23.7 ✓ Stevan Little - 2016-02-20 5.23.8 ✓ Sawyer X - 2016-03-20 5.23.9 ✓ Abigail - -(RC0 for 5.24.0 will be released once we think that all the blockers have been -addressed. This typically means some time in April or May.) - -=head2 Perl 5.25 - - 2016-05-20 5.25.0 Ricardo Signes - 2016-06-20 5.25.1 Matthew Horsfall - 2016-07-20 5.25.2 Steve Hay - 2016-08-20 5.25.3 BinGOs - 2016-09-20 5.25.4 Stevan Little - 2016-10-20 5.25.5 Sawyer X - 2016-11-20 5.25.6 ? - 2016-12-20 5.25.7 ? - -(RC0 for 5.24.0 will be released once we think that all the blockers have been +=head2 Perl 5.29 + + 2018-06-26 5.29.0 ✓ Sawyer X + 2018-07-20 5.29.1 ✓ Steve Hay + 2018-08-20 5.29.2 ✓ Chris BinGOs Williams + 2018-09-20 5.29.3 ✓ John Anderson (genehack) + 2018-10-20 5.29.4 ✓ Aaron Crane + 2018-11-20 5.29.5 Karen Etheridge (ether) + 2018-12-20 5.29.6 Abigail + 2019-01-20 5.29.7 Abigail + 2019-02-20 5.29.8 + 2019-03-20 5.29.9 + 2019-04-20 5.29.10 + +(RC0 for 5.30.0 will be released once we think that all the blockers have been addressed. This typically means some time in April or May.) =head1 VICTIMS diff --git a/gnu/usr.bin/perl/Porting/sync-with-cpan b/gnu/usr.bin/perl/Porting/sync-with-cpan index d0cc1d62be3..f81e14abaec 100644 --- a/gnu/usr.bin/perl/Porting/sync-with-cpan +++ b/gnu/usr.bin/perl/Porting/sync-with-cpan @@ -66,7 +66,7 @@ Restore files mentioned in C<CUSTOMIZED> =item * -Adds new files to F<MANIFEST> +Updates the contents of F<MANIFEST> =item * @@ -90,13 +90,19 @@ Runs the porting tests C<--tarball> should be the path to the tarball; the version is extracted from the filename -- but can be overwritten by the C<--version> option. -=head1 TODO +=head1 OPTIONS =over 4 -=item * +=item C<--jobs> I<N> + +When running C<make>, pass a C<< -jI<N> >> option to it. + +=back + +=head1 TODO -Delete files from F<MANIFEST> +=over 4 =item * @@ -128,25 +134,37 @@ use strict; use warnings; use Getopt::Long; use Archive::Tar; +use File::Basename qw( basename ); use File::Path qw( remove_tree ); use File::Find; +use File::Spec::Functions qw( tmpdir rel2abs ); use Config qw( %Config ); $| = 1; +use constant WIN32 => $^O eq 'MSWin32'; + die "This does not look like a top level directory" unless -d "cpan" && -d "Porting"; +# Check that there's a Makefile, if needed; otherwise, we'll do most of our +# work only to fail when we try to run make, and the user will have to +# either unpick everything we've done, or do the rest manually. +die "Please run Configure before using $0\n" + if !WIN32 && !-f "Makefile"; + our @IGNORABLE; our %Modules; use autodie; -require "Porting/Maintainers.pl"; +require "./Porting/Maintainers.pl"; + +my $MAKE_LOG = 'make.log'; my %IGNORABLE = map {$_ => 1} @IGNORABLE; -my $tmpdir= $ENV{ TEMP } // '/tmp'; +my $tmpdir = tmpdir(); my $package = "02packages.details.txt"; my $package_url = "http://www.cpan.org/modules/$package"; @@ -166,6 +184,7 @@ sub usage GetOptions ('tarball=s' => \my $tarball, 'version=s' => \my $version, + 'jobs=i' => \my $make_jobs, force => \my $force, help => sub { usage 0; }, ) or die "Failed to parse arguments"; @@ -184,30 +203,73 @@ sub find_type_f { # Equivalent of `chmod a-x` sub de_exec { - for my $filename ( @_ ) { - my $mode= (stat $filename)[2] & 0777; - if( $mode & 0111 ) { # exec-bit set - chmod $mode & 0666, $filename; - }; + my ($filename) = @_; + my $mode = (stat $filename)[2] & 0777; + if ($mode & 0111) { # exec-bit set + chmod $mode & 0666, $filename; + } +} + +# Equivalent of `chmod +w` +sub make_writable { + my ($filename) = @_; + my $mode = (stat $filename)[2] & 0777; + if (!($mode & 0222)) { # not writable + chmod $mode | (0222 & ~umask), $filename; } } sub make { my @args= @_; - if( $^O eq 'MSWin32') { + unshift @args, "-j$make_jobs" if defined $make_jobs; + if (WIN32) { chdir "Win32"; - system "$Config{make} @args> ..\\make.log 2>&1" and die "Running make failed, see make.log"; + system "$Config{make} @args> ..\\$MAKE_LOG 2>&1" + and die "Running make failed, see $MAKE_LOG"; chdir '..'; } else { - system "$Config{make} @args> make.log 2>&1" and die "Running make failed, see make.log"; + system "$Config{make} @args> $MAKE_LOG 2>&1" + and die "Running make failed, see $MAKE_LOG"; }; }; my ($module) = shift; -my $cpan_mod = @ARGV ? shift : $module; +my $info = $Modules{$module}; +if (!$info) { + # Maybe the user said "Test-Simple" instead of "Test::Simple", or + # "IO::Compress" instead of "IO-Compress". See if we can fix it up. + my $guess = $module; + s/-/::/g or s/::/-/g for $guess; + $info = $Modules{$guess} or die <<"EOF"; +Cannot find module $module. +The available options are listed in the %Modules hash in Porting/Maintainers.pl +EOF + say "Guessing you meant $guess instead of $module"; + $module = $guess; +} + +if ($info->{CUSTOMIZED}) { + print <<"EOF"; +$module has a CUSTOMIZED entry in Porting/Maintainers.pl. + +This program's behaviour is to copy every CUSTOMIZED file into the version +of the module being imported. But that might not be the right thing: in some +cases, the new CPAN version will supersede whatever changes had previously +been made in blead, so it would be better to import the new CPAN files. + +If you've checked that the CUSTOMIZED versions are still correct, you can +proceed now. Otherwise, you should abort and investigate the situation. If +the blead customizations are no longer needed, delete the CUSTOMIZED entry +for $module in Porting/Maintainers.pl (and you'll also need to regenerate +t/porting/customized.dat in that case; see t/porting/customized.t). + +EOF + print "Hit return to continue; ^C to abort "; <STDIN>; +} + +my $cpan_mod = @ARGV ? shift : $module; -my $info = $Modules {$module} or die "Cannot find module $module"; my $distribution = $$info {DISTRIBUTION}; my @files = glob $$info {FILES}; @@ -220,6 +282,8 @@ if (!-d $files [0] || grep { $_ eq $module } @problematic) { say "--force is in effect, so we'll soldier on. Wish me luck!"; } +use Cwd 'cwd'; +my $orig_pwd = cwd(); chdir "cpan"; @@ -233,22 +297,42 @@ if ($cpan_mod =~ /-/ && $cpan_mod !~ /::/) { $cpan_mod =~ s/-/::/g; } +sub wget { + my ($url, $saveas) = @_; + eval { + require HTTP::Tiny; + my $http= HTTP::Tiny->new(); + $http->mirror( $url => $saveas ); + 1 + } or + # Some system do not have wget. Fall back to curl if we do not + # have it. On Windows, `which wget` is not going to work, so + # just use wget, as this script has always done. + WIN32 || -x substr(`which wget`, 0, -1) + ? system wget => $url, '-qO', $saveas + : system curl => $url, '-sSo', $saveas; +} + # # Find the information from CPAN. # my $new_file; my $new_version; -unless ($tarball) { +if (defined $tarball) { + $tarball = rel2abs( $tarball, $orig_pwd ) ; + die "Tarball $tarball does not exist\n" if !-e $tarball; + die "Tarball $tarball is not a plain file\n" if !-f _; + $new_file = $tarball; + $new_version = $version // ($new_file =~ /-([0-9._]+(?:-TRIAL[0-9]*)?)\.tar\.gz/) [0]; + die "Blead and that tarball both have version $new_version of $module\n" + if $new_version eq $old_version; +} +else { # # Poor man's cache # unless (-f $package_file && -M $package_file < 1) { - eval { - require HTTP::Tiny; - my $http= HTTP::Tiny->new(); - $http->mirror( $package_url => $package_file ); - 1 - } or system wget => $package_url, '-qO', $package_file; + wget $package_url, $package_file; } open my $fh, '<', $package_file; @@ -261,21 +345,15 @@ unless ($tarball) { } $new_file = (split '/', $new_path) [-1]; - my $url = "http://search.cpan.org/CPAN/authors/id/$new_path"; + die "The latest version of $module is $new_version, but blead already has it\n" + if $new_version eq $old_version; + + my $url = "https://cpan.metacpan.org/authors/id/$new_path"; say "Fetching $url"; # # Fetch the new distro # - eval { - require HTTP::Tiny; - my $http= HTTP::Tiny->new(); - $http->mirror( $url => $new_file ); - 1 - } or system wget => $url, '-qO', $new_file; -} -else { - $new_file = $tarball; - $new_version = $version // ($new_file =~ /-([0-9._]+(?:-TRIAL[0-9]*)?)\.tar\.gz/) [0]; + wget $url, $new_file; } my $old_dir = "$pkg_dir-$old_version"; @@ -286,12 +364,11 @@ system git => 'clean', '-dfxq', $pkg_dir; say "Unpacking $new_file"; Archive::Tar->extract_archive( $new_file ); -(my $new_dir = $new_file) =~ s/\.tar\.gz//; +(my $new_dir = basename($new_file)) =~ s/\.tar\.gz//; # ensure 'make' will update all files my $t= time; for my $file (find_type_f($new_dir)) { - open(my $fh,">>$file") || die "Cannot write $file:$!"; - close($fh); + make_writable($file); # for convenience if the user later edits it utime($t,$t,$file); }; @@ -414,6 +491,15 @@ if (@de_exec && @delete) { @de_exec = grep {!$delete {$_}} @de_exec; } +# +# Mustn't change the +x bit on files that are whitelisted +# +if (@de_exec) { + my %permitted = map { (my $x = $_) =~ tr/\n//d; $x => 1 } grep !/^#/, + do { local @ARGV = '../Porting/exec-bit.txt'; <> }; + @de_exec = grep !$permitted{"cpan/$pkg_dir/$_"}, @de_exec; +} + say "unlink $pkg_dir/$_" for @delete; say "git add $pkg_dir/$_" for @commit; say "git rm -f $pkg_dir/$_" for @gone; @@ -439,23 +525,58 @@ if ($$info {CUSTOMIZED}) { } chdir ".."; -if (@commit) { +if (@commit || @gone) { say "Fixing MANIFEST"; - my $MANIFEST = "MANIFEST"; - my $MANIFEST_SORT = "$MANIFEST.sorted"; - open my $fh, ">>", $MANIFEST; - say $fh "cpan/$pkg_dir/$_" for @commit; - close $fh; - system perl => "Porting/manisort", '--output', $MANIFEST_SORT; - rename $MANIFEST_SORT => $MANIFEST; + my $MANIFEST = "MANIFEST"; + my $MANIFEST_NEW = "$MANIFEST.new"; + + open my $orig, "<", $MANIFEST + or die "Failed to open $MANIFEST for reading: $!\n"; + open my $new, ">", $MANIFEST_NEW + or die "Failed to open $MANIFEST_NEW for writing: $!\n"; + my %gone = map +("cpan/$pkg_dir/$_" => 1), @gone; + while (my $line = <$orig>) { + my ($file) = $line =~ /^(\S+)/ + or die "Can't parse MANIFEST line: $line"; + print $new $line if !$gone{$file}; + } + + say $new "cpan/$pkg_dir/$_" for @commit; + + close $new or die "Can't close $MANIFEST: $!\n"; + + system $^X => "Porting/manisort", '--quiet', "--output=$MANIFEST", $MANIFEST_NEW; + unlink $MANIFEST_NEW + or die "Can't delete temporary $MANIFEST_NEW: $!\n"; } -print "Running a make ... "; +print "Running a make and saving its output to $MAKE_LOG ... "; # Prepare for running (selected) tests make 'test-prep'; print "done\n"; +# The build system installs code from CPAN dists into the lib/ directory, +# creating directories as needed. This means that the cleaning-related rules +# in the Makefile need to know which directories to clean up. The Makefile +# is generated by Configure from Makefile.SH, so *that* file needs the list +# of directories. regen/lib_cleanup.pl is capable of automatically updating +# the contents of Makefile.SH (and win32/Makefile, which needs similar but +# not identical lists of directories), so we can just run that (using the +# newly-built Perl, as is done with the regen programs run by "make regen"). +# +# We do this if any files at all have been added or deleted, regardless of +# whether those changes result in any directories being added or deleted, +# because the alternative would be to replicate the regen/lib_cleanup.pl +# logic here. That's fine, because regen/lib_cleanup.pl is idempotent if run +# repeatedly. +if (@commit || @gone) { + say "Running regen/lib_cleanup.pl to handle potential added/deleted dirs"; + my $exe_dir = WIN32 ? ".\\" : './'; + system "${exe_dir}perl$Config{_exe}", "-Ilib", "regen/lib_cleanup.pl" + and die "regen/lib_cleanup.pl failed\n"; +} + # # Must clean up, or else t/porting/FindExt.t will fail. # Note that we can always retrieve the original directory with a git checkout. @@ -471,8 +592,8 @@ unlink "cpan/$new_file" unless $tarball; # chdir "t"; say "Running module tests"; -my @test_files = grep { /\.t$/ } find_type_f( $pkg_dir ); -my $exe_dir= $^O =~ /MSWin/ ? "..\\" : './'; +my @test_files = grep { /\.t$/ } find_type_f( "../cpan/$pkg_dir" ); +my $exe_dir = WIN32 ? "..\\" : './'; my $output = `${exe_dir}perl$Config{_exe} TEST @test_files`; unless ($output =~ /All tests successful/) { say $output; @@ -494,7 +615,6 @@ print "\n"; say "Failed tests: @failed" if @failed; -say "Attempting to update Maintainers.pl"; chdir '..'; open my $Maintainers_pl, '<', 'Porting/Maintainers.pl'; @@ -511,12 +631,12 @@ while (<$Maintainers_pl>) { } } - if (/^ }/) { + if (/^ \}/) { $in_mod_section = 0; } } - if (/\Q$cpan_mod/) { + if (/\Q$module/) { $in_mod_section = 1; } } @@ -525,6 +645,7 @@ while (<$Maintainers_pl>) { } if ($found) { + say "Successfully updated Maintainers.pl"; unlink 'Porting/Maintainers.pl'; rename 'Maintainers.pl' => 'Porting/Maintainers.pl'; chmod 0755 => 'Porting/Maintainers.pl'; @@ -534,8 +655,20 @@ else { say "Make sure you update this by hand before committing."; } -say "$o_module is now version $new_version"; -say "Now you ought to run a make; make test ..."; +print <<"EOF"; + +======================================================================= + +$o_module is now at version $new_version +Next, you should run a "make test". + +Hopefully that will complete successfully, but if not, you can make any +changes you need to get the tests to pass. Don't forget that you'll need +a "CUSTOMIZED" entry in Porting/Maintainers.pl if you change any of the +files under cpan/$pkg_dir. + +Once all tests pass, you can "git add -u" and "git commit" the changes. +EOF __END__ diff --git a/gnu/usr.bin/perl/Porting/todo.pod b/gnu/usr.bin/perl/Porting/todo.pod index 0869a3c486e..6493d48cc9d 100644 --- a/gnu/usr.bin/perl/Porting/todo.pod +++ b/gnu/usr.bin/perl/Porting/todo.pod @@ -23,20 +23,6 @@ not, but if your patch is incorporated, then we'll add your name to the F<AUTHORS> file, which ships in the official distribution. How many other programming languages offer you 1 line of immortality? -=head1 Tasks that need only a little Perl knowledge - -=head2 Fix POD errors in Perl documentation - -Perl documentation is furnished in POD (Plain Old Documentation); see -L<perlpod>. We also have a utility that checks for various errors in -this documentation: F<t/porting/podcheck.t>. Unfortunately many files -have errors in them, and there is a database of known problems, kept in -F<t/porting/known_pod_issues.dat>. The most prevalent errors are lines -too wide to fit in a standard terminal window, but there are more -serious problems as well; and there are items listed there that are not -in fact errors. The task would be to go through and clean up the -documentation. This would be a good way to learn more about Perl. - =head1 Tasks that only need Perl knowledge =head2 Classify bug tickets by type @@ -201,6 +187,38 @@ Sometimes bugs get fixed as a side effect of something else, and the bug remains open because no one realizes that it has been fixed. Ideally, every open bug should have a TODO test in the core test suite. +=head2 deparse warnings nicely + +Currently Deparse punts on deparsing the bitmask for warnings, which it +dumps uglily as-is. Try running this: + + $ ./perl -Ilib -MO=Deparse -e 'use warnings "pipe"; die' + +Deparse.pm could use the package variables in warnings.pm that warnings.pm +itself uses to convert the list passed to it into a bitfield. Deparse just +needs to reverse that. + +=head2 test and fix Deparse with perl's test suite + +If you run perl's tests with the TEST_ARGS environment variable set to +C<-deparse> (e.g., run C<TEST=-deparse make test>), each test file will be +deparsed and the deparsed output will be run. Currently there are many +failures, which ought to be fixed. There is in F<Porting/deparse-skips.txt> +a list of tests known to fail, but it is out of date. Updating it would +also help. + +This is an incremental task. Every small bit helps. It is also a task that +may never end. As new tests are added, they tickle corner cases that +B::Deparse cannot yet handle correctly. + +This task I<may> need a bit of perl guts knowledge. But what changes need +to be made is usually easy to see by dumping op trees with B::Concise: + + $ ./perl -Ilib -MO=Concise -e 'foo(); print @_; die $$_' + +and adjusting B::Deparse to handle whatever you see B::Concise produce. +This is also a good way to I<learn> how perl's op trees work. + =head1 Tasks that need a little sysadmin-type knowledge Or if you prefer, tasks that you would learn from, and broaden your skills @@ -467,7 +485,7 @@ Natively 64-bit systems need neither -Duse64bitint nor -Duse64bitall. On these systems, it might be the default compilation mode, and there is currently no guarantee that passing no use64bitall option to the Configure process will build a 32bit perl. Implementing -Duse32bit* -options would be nice for perl 5.24.3. +options would be nice for perl 5.26.0. =head2 Profile Perl - am I hot or not? @@ -543,19 +561,6 @@ the correct answer. been written so that it reflects the state of the read-only attribute, even for directories (whatever CRT is being used), for symmetry with chmod().) -=head2 strcat(), strcpy(), strncat(), strncpy(), sprintf(), vsprintf() - -Maybe create a utility that checks after each libperl.a creation that -none of the above (nor sprintf(), vsprintf(), or *SHUDDER* gets()) -ever creep back to libperl.a. - - nm libperl.a | ./miniperl -alne '$o = $F[0] if /:$/; - print "$o $F[1]" if $F[0] eq "U" && $F[1] - =~ /^(?:strn?c(?:at|py)|v?sprintf|gets)$/' - -Note, of course, that this will only tell whether B<your> platform -is using those naughty interfaces. - =head2 Arenas for GPs? For MAGIC? C<struct gp> and C<struct magic> are both currently allocated by C<malloc>. @@ -622,6 +627,11 @@ term, once the run-time implementation is proven, it should be possible to progressively update ExtUtils::ParseXS to generate OP implementations for some XSUBs. +=head2 Document how XS modules can install lexical subs + +There is an example in XS::APItest (look for C<lexical_import> in +F<ext/XS-APItest/APItest.xs>). The documentation could be based on it. + =head2 Remove the use of SVs as temporaries in dump.c F<dump.c> contains debugging routines to dump out the contains of perl data @@ -788,7 +798,9 @@ allow taint to "leak" everywhere within an expression. system() accepts a LIST syntax (and a PROGRAM LIST syntax) to avoid running a shell. readpipe() (the function behind qx//) could be similarly -extended. +extended. Note that changing readpipe() itself may not be the solution, as +it currently has unary precedence, and allowing a list would change the +precedence. =head2 Audit the code for destruction ordering assumptions @@ -856,6 +868,35 @@ also the warning messages (see L<warnings>, F<regen/warnings.pl>). These tasks would need C knowledge, and knowledge of how the interpreter works, or a willingness to learn. +=head2 fix refaliasing with nested and recursive subroutines + +Currently aliasing lexical variables via reference only applies to the +current subroutine, and does not propagate to inner closures, nor does +aliasing of outer variables within closures propagate to the outer +subroutine. This is because each subroutine has its own lexical pad and the +aliasing works by changing which SV the pad points to. + +One possible way to fix this would be to create new ops for accessing +variables that are closed over. So C<my $x; sub {$x}> would use a new op +type, say C<padoutsv>, instead of the C<padsv> currently used in the +sub. That new op would possibly check a flag or some such and see if it +needs to fetch the variable from an outer pad. If we follow this approach, +it should be possible at compile time to detect cases where the more +complex C<padoutsv> op is unnecessary and revert back to the simpler, +faster C<padsv>. There would need to be corresponding ops for arrays, +hashes, and subs, too. + +There is also a related issue with recursion and C<state> variables. A +subroutine actually has a list of lexical pads, each one used at a +different recursion level. If a C<state> variable is aliased to another +variable after a recursive call to the same subroutine, that higher call +depth will not see the effect of aliasing, because the second pad will have +been created already. Similarly, aliasing a state variable within a +recursive call will not affect outer calls, even though all call depths are +supposed to share the same C<state> variables. + +Both of these bugs affect C<foreach> aliasing, too. + =head2 forbid labels with keyword names Currently C<goto keyword> "computes" the label value: @@ -870,7 +911,7 @@ bareword expressions after a "goto" as a label and never as a keyword. =head2 truncate() prototype The prototype of truncate() is currently C<$$>. It should probably -be C<*$> instead. (This is changed in F<opcode.pl>) +be C<*$> instead. (This is changed in F<regen/opcodes>.) =head2 error reporting of [$a ; $b] @@ -962,11 +1003,6 @@ program if you pass the process ID. It would be good to do this with the Perl debugger on a running Perl program, although I'm not sure how it would be done." ssh and screen do this with named pipes in /tmp. Maybe we can too. -=head2 LVALUE functions for lists - -The old perltodo notes that lvalue functions don't work for list or hash -slices. This would be good to fix. - =head2 regexp optimizer optional The regexp optimizer is not optional. It should be configurable to be optional @@ -999,10 +1035,6 @@ have a general mechanism for this, backwards compatible and little speed hit. This would allow proposals such as short circuiting sort to be implemented as a module on CPAN. -=head2 lexical aliases - -Allow lexical aliases (maybe via the syntax C<my \$alias = \$foo>). - =head2 Self-ties Self-ties are currently illegal because they caused too many segfaults. Maybe @@ -1051,6 +1083,9 @@ See also L</"Extend PerlIO and PerlIO::Scalar">. =head2 repack the optree +B<Note:> This entry was written in reference to the I<old> slab allocator, +removed in commit 7aef8e5bd14. + Repacking the optree after execution order is determined could allow removal of NULL ops, and optimal ordering of OPs with respect to cache-line filling. I think that @@ -1170,7 +1205,7 @@ L<http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2013-01/msg00339.html> =head1 Big projects Tasks that will get your name mentioned in the description of the "Highlights -of 5.24.3" +of 5.26.0" =head2 make ithreads more robust |