diff options
author | Gurusamy Sarathy <gsar@cpan.org> | 2000-03-03 15:42:28 +0000 |
---|---|---|
committer | Gurusamy Sarathy <gsar@cpan.org> | 2000-03-03 15:42:28 +0000 |
commit | c93fa8177be816b728baa070d16f5574403845f6 (patch) | |
tree | 4808e1f396a09528ccea5aca00bedca957836837 | |
parent | 8c8ad484ae56ad5a81dc3b76a40859fc90c16a10 (diff) | |
parent | 7e6fa307436d3e019e355ee1012a967957762854 (diff) | |
download | perl-c93fa8177be816b728baa070d16f5574403845f6.tar.gz |
integrate cfgperl and vmsperl contents into mainline
p4raw-id: //depot/perl@5486
-rwxr-xr-x | Configure | 8 | ||||
-rw-r--r-- | Porting/Glossary | 16 | ||||
-rw-r--r-- | Porting/config.sh | 52 | ||||
-rw-r--r-- | Porting/config_H | 44 | ||||
-rw-r--r-- | Todo-5.6 | 9 | ||||
-rw-r--r-- | config_h.SH | 6 | ||||
-rw-r--r-- | configure.com | 151 | ||||
-rw-r--r-- | epoc/config.sh | 5 | ||||
-rw-r--r-- | hints/irix_6.sh | 6 | ||||
-rw-r--r-- | hints/solaris_2.sh | 37 | ||||
-rw-r--r-- | perl.h | 3 | ||||
-rw-r--r-- | pod/perl.pod | 1 | ||||
-rw-r--r-- | pod/perldelta.pod | 25 | ||||
-rw-r--r-- | pod/perlre.pod | 2 | ||||
-rw-r--r-- | pod/pod2usage.PL | 4 | ||||
-rw-r--r-- | pod/podselect.PL | 4 | ||||
-rw-r--r-- | regcomp.c | 12 | ||||
-rwxr-xr-x | t/comp/use.t | 4 | ||||
-rwxr-xr-x | t/lib/bigfltpm.t | 104 | ||||
-rwxr-xr-x | t/op/pack.t | 3 | ||||
-rwxr-xr-x | t/op/universal.t | 2 | ||||
-rw-r--r-- | t/pragma/warn/regcomp | 9 | ||||
-rw-r--r-- | utils/dprofpp.PL | 5 | ||||
-rw-r--r-- | vms/descrip_mms.template | 12 | ||||
-rw-r--r-- | vms/ext/filespec.t | 2 | ||||
-rw-r--r-- | vms/gen_shrfls.pl | 6 | ||||
-rw-r--r-- | vms/perlvms.pod | 19 | ||||
-rw-r--r-- | vms/subconfigure.com | 4 | ||||
-rw-r--r-- | vms/vms.c | 32 | ||||
-rw-r--r-- | vms/vmsish.h | 4 | ||||
-rw-r--r-- | vos/config.def | 1 | ||||
-rw-r--r-- | vos/config.h | 18 | ||||
-rwxr-xr-x | vos/config_h.SH_orig | 18 | ||||
-rw-r--r-- | win32/config.bc | 1 | ||||
-rw-r--r-- | win32/config.gc | 1 | ||||
-rw-r--r-- | win32/config.vc | 1 |
36 files changed, 471 insertions, 160 deletions
@@ -20,7 +20,7 @@ # $Id: Head.U,v 3.0.1.9 1997/02/28 15:02:09 ram Exp $ # -# Generated on Thu Mar 2 21:42:14 EET 2000 [metaconfig 3.0 PL70] +# Generated on Fri Mar 3 16:54:03 EET 2000 [metaconfig 3.0 PL70] # (with additional metaconfig patches by perlbug@perl.com) cat >/tmp/c1$$ <<EOF @@ -618,6 +618,7 @@ i_gdbm='' d_grpasswd='' i_grp='' i_iconv='' +i_ieeefp='' i_inttypes='' i_limits='' i_locale='' @@ -13938,6 +13939,10 @@ eval $setvar set iconv.h i_iconv eval $inhdr +: see if this is a ieeefp.h system +set ieeefp.h i_ieeefp +eval $inhdr + : see if locale.h is available set locale.h i_locale eval $inhdr @@ -15227,6 +15232,7 @@ i_float='$i_float' i_gdbm='$i_gdbm' i_grp='$i_grp' i_iconv='$i_iconv' +i_ieeefp='$i_ieeefp' i_inttypes='$i_inttypes' i_limits='$i_limits' i_locale='$i_locale' diff --git a/Porting/Glossary b/Porting/Glossary index 71d97f8ea9..6c6109c161 100644 --- a/Porting/Glossary +++ b/Porting/Glossary @@ -852,6 +852,10 @@ d_lstat (d_lstat.U): This variable conditionally defines HAS_LSTAT if lstat() is available to do file stats on symbolic links. +d_madvise (d_madvise.U): + This variable conditionally defines HAS_MADVISE if madvise() is + available to map a file into memory. + d_mblen (d_mblen.U): This variable conditionally defines the HAS_MBLEN symbol, which indicates to the C program that the mblen() routine is available @@ -1134,6 +1138,10 @@ d_pwquota (i_pwd.U): This variable conditionally defines PWQUOTA, which indicates that struct passwd contains pw_quota. +d_qgcvt (d_qgcvt.U): + This variable conditionally defines the HAS_QGCVT symbol, which + indicates to the C program that the qgcvt() routine is available. + d_quad (quadtype.U): This variable, if defined, tells that there's a 64-bit integer type, quadtype. @@ -1918,6 +1926,10 @@ i_iconv (i_iconv.U): This variable conditionally defines the I_ICONV symbol, and indicates whether a C program should include <iconv.h>. +i_ieeefp (i_ieeefp.U): + This variable conditionally defines the I_IEEEFP symbol, and indicates + whether a C program should include <ieeefp.h>. + i_inttypes (i_inttypes.U): This variable conditionally defines the I_INTTYPES symbol, and indicates whether a C program should include <inttypes.h>. @@ -2027,6 +2039,10 @@ 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>. +i_sunmath (i_sunmath.U): + This variable conditionally defines the I_SUNMATH symbol, and indicates + whether a C program should include <sunmath.h>. + i_sysaccess (i_sysaccess.U): This variable conditionally defines the I_SYS_ACCESS symbol, and indicates whether a C program should include <sys/access.h>. diff --git a/Porting/config.sh b/Porting/config.sh index 9476ce0684..0fe3d67ac9 100644 --- a/Porting/config.sh +++ b/Porting/config.sh @@ -8,7 +8,7 @@ # Package name : perl5 # Source directory : . -# Configuration time: Sat Feb 26 03:04:10 EET 2000 +# Configuration time: Fri Mar 3 17:00:59 EET 2000 # Configured by : jhi # Target system : osf1 alpha.hut.fi v4.0 878 alpha @@ -35,8 +35,8 @@ api_subversion='0' api_version='5' api_versionstring='5.005' ar='ar' -archlib='/opt/perl/lib/5.5.660/alpha-dec_osf-thread-multi' -archlibexp='/opt/perl/lib/5.5.660/alpha-dec_osf-thread-multi' +archlib='/opt/perl/lib/5.5.670/alpha-dec_osf-thread-multi' +archlibexp='/opt/perl/lib/5.5.670/alpha-dec_osf-thread-multi' archname64='' archname='alpha-dec_osf-thread-multi' archobjs='' @@ -54,12 +54,12 @@ castflags='0' cat='cat' cc='cc' cccdlflags=' ' -ccdlflags=' -Wl,-rpath,/opt/perl/lib/5.5.660/alpha-dec_osf-thread-multi/CORE' +ccdlflags=' -Wl,-rpath,/opt/perl/lib/5.5.670/alpha-dec_osf-thread-multi/CORE' ccflags='-pthread -std -DLANGUAGE_C' ccsymbols='__alpha=1 __LANGUAGE_C__=1 __osf__=1 __unix__=1 _LONGLONG=1 _SYSTYPE_BSD=1 SYSTYPE_BSD=1 unix=1' cf_by='jhi' cf_email='yourname@yourhost.yourplace.com' -cf_time='Sat Feb 26 03:04:10 EET 2000' +cf_time='Fri Mar 3 17:00:59 EET 2000' charsize='1' chgrp='' chmod='' @@ -195,7 +195,7 @@ d_gnulibc='undef' d_grpasswd='define' d_hasmntopt='undef' d_htonl='define' -d_iconv='undef' +d_iconv='define' d_index='undef' d_inetaton='define' d_int64_t='undef' @@ -210,6 +210,7 @@ d_longdbl='define' d_longlong='define' d_lseekproto='define' d_lstat='define' +d_madvise='define' d_mblen='define' d_mbstowcs='define' d_mbtowc='define' @@ -261,6 +262,7 @@ d_pwexpire='undef' d_pwgecos='define' d_pwpasswd='define' d_pwquota='define' +d_qgcvt='undef' d_quad='define' d_readdir='define' d_readlink='define' @@ -436,6 +438,7 @@ i_float='define' i_gdbm='undef' i_grp='define' i_iconv='define' +i_ieeefp='undef' i_inttypes='undef' i_limits='define' i_locale='define' @@ -461,6 +464,7 @@ i_stdarg='define' i_stddef='define' i_stdlib='define' i_string='define' +i_sunmath='undef' i_sysaccess='define' i_sysdir='define' i_sysfile='define' @@ -504,17 +508,17 @@ inc_version_list=' ' inc_version_list_init='0' incpath='' inews='' -installarchlib='/opt/perl/lib/5.5.660/alpha-dec_osf-thread-multi' +installarchlib='/opt/perl/lib/5.5.670/alpha-dec_osf-thread-multi' installbin='/opt/perl/bin' installman1dir='/opt/perl/man/man1' installman3dir='/opt/perl/man/man3' installprefix='/opt/perl' installprefixexp='/opt/perl' -installprivlib='/opt/perl/lib/5.5.660' +installprivlib='/opt/perl/lib/5.5.670' installscript='/opt/perl/bin' -installsitearch='/opt/perl/lib/site_perl/5.5.660/alpha-dec_osf-thread-multi' +installsitearch='/opt/perl/lib/site_perl/5.5.670/alpha-dec_osf-thread-multi' installsitebin='/opt/perl/bin' -installsitelib='/opt/perl/lib/site_perl/5.5.660' +installsitelib='/opt/perl/lib/site_perl/5.5.670' installstyle='lib' installusrbinperl='define' installvendorbin='' @@ -535,12 +539,12 @@ lib_ext='.a' libc='/usr/shlib/libc.so' libperl='libperl.so' libpth='/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /var/shlib' -libs='-lgdbm -ldbm -ldb -lm -lpthread -lexc' +libs='-lgdbm -ldbm -ldb -lm -liconv -lpthread -lexc' libsdirs=' /usr/shlib /usr/ccs/lib' -libsfiles=' libgdbm.so libdbm.a libdb.so libm.so libpthread.so libexc.so' -libsfound=' /usr/shlib/libgdbm.so /usr/ccs/lib/libdbm.a /usr/shlib/libdb.so /usr/shlib/libm.so /usr/shlib/libpthread.so /usr/shlib/libexc.so' +libsfiles=' libgdbm.so libdbm.a libdb.so libm.so libiconv.so libpthread.so libexc.so' +libsfound=' /usr/shlib/libgdbm.so /usr/ccs/lib/libdbm.a /usr/shlib/libdb.so /usr/shlib/libm.so /usr/shlib/libiconv.so /usr/shlib/libpthread.so /usr/shlib/libexc.so' libspath=' /usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /var/shlib' -libswanted='sfio socket inet nsl nm gdbm dbm db malloc dld ld sun m cposix posix ndir dir crypt sec ucb BSD x pthread exc' +libswanted='sfio socket bind inet nsl nm gdbm dbm db malloc dld ld sun m cposix posix ndir dir crypt sec ucb BSD x iconv pthread exc' line='' lint='' lkflags='' @@ -619,8 +623,8 @@ pmake='' pr='' prefix='/opt/perl' prefixexp='/opt/perl' -privlib='/opt/perl/lib/5.5.660' -privlibexp='/opt/perl/lib/5.5.660' +privlib='/opt/perl/lib/5.5.670' +privlibexp='/opt/perl/lib/5.5.670' prototype='define' ptrsize='8' quadkind='2' @@ -667,12 +671,12 @@ sig_name_init='"ZERO", "HUP", "INT", "QUIT", "ILL", "TRAP", "ABRT", "EMT", "FPE" 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 6 6 16 20 23 23 23 29 48 ' 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, 6, 6, 16, 20, 23, 23, 23, 29, 48, 0' signal_t='void' -sitearch='/opt/perl/lib/site_perl/5.5.660/alpha-dec_osf-thread-multi' -sitearchexp='/opt/perl/lib/site_perl/5.5.660/alpha-dec_osf-thread-multi' +sitearch='/opt/perl/lib/site_perl/5.5.670/alpha-dec_osf-thread-multi' +sitearchexp='/opt/perl/lib/site_perl/5.5.670/alpha-dec_osf-thread-multi' sitebin='/opt/perl/bin' sitebinexp='/opt/perl/bin' -sitelib='/opt/perl/lib/site_perl/5.5.660' -sitelibexp='/opt/perl/lib/site_perl/5.5.660' +sitelib='/opt/perl/lib/site_perl/5.5.670' +sitelibexp='/opt/perl/lib/site_perl/5.5.670' siteprefix='/opt/perl' siteprefixexp='/opt/perl' sizetype='size_t' @@ -701,7 +705,7 @@ stdio_ptr='((fp)->_ptr)' stdio_stream_array='_iob' strings='/usr/include/string.h' submit='' -subversion='660' +subversion='670' sysman='/usr/man/man1' tail='' tar='' @@ -762,11 +766,11 @@ vendorlib='' vendorlibexp='' vendorprefix='' vendorprefixexp='' -version='5.5.660' +version='5.5.670' vi='' voidflags='15' xlibpth='/usr/lib/386 /lib/386' -xs_apiversion='5.5.660' +xs_apiversion='5.5.670' zcat='' zip='zip' # Configure command line arguments. @@ -786,7 +790,7 @@ config_arg10='-Dmyhostname=yourhost' config_arg11='-dE' PERL_REVISION=5 PERL_VERSION=5 -PERL_SUBVERSION=660 +PERL_SUBVERSION=670 PERL_API_REVISION=5 PERL_API_VERSION=5 PERL_API_SUBVERSION=0 diff --git a/Porting/config_H b/Porting/config_H index e34e1f38ac..c627afafee 100644 --- a/Porting/config_H +++ b/Porting/config_H @@ -17,7 +17,7 @@ /* * Package name : perl5 * Source directory : . - * Configuration time: Sat Feb 26 03:04:10 EET 2000 + * Configuration time: Fri Mar 3 17:00:59 EET 2000 * Configured by : jhi * Target system : osf1 alpha.hut.fi v4.0 878 alpha */ @@ -1098,8 +1098,8 @@ * This symbol contains the ~name expanded version of ARCHLIB, to be used * in programs that are not prepared to deal with ~ expansion at run-time. */ -#define ARCHLIB "/opt/perl/lib/5.5.660/alpha-dec_osf-thread-multi" /**/ -#define ARCHLIB_EXP "/opt/perl/lib/5.5.660/alpha-dec_osf-thread-multi" /**/ +#define ARCHLIB "/opt/perl/lib/5.5.670/alpha-dec_osf-thread-multi" /**/ +#define ARCHLIB_EXP "/opt/perl/lib/5.5.670/alpha-dec_osf-thread-multi" /**/ /* ARCHNAME: * This symbol holds a string representing the architecture name. @@ -1605,7 +1605,7 @@ * This symbol, if defined, indicates that the iconv routine is * available to do character set conversions. */ -/*#define HAS_ICONV / **/ +#define HAS_ICONV /**/ /* HAS_INT64_T: * This symbol will defined if the C compiler supports int64_t. @@ -1662,6 +1662,12 @@ #define LONGLONGSIZE 8 /**/ #endif +/* HAS_MADVISE: + * This symbol, if defined, indicates that the madvise system call is + * available to map a file into memory. + */ +#define HAS_MADVISE /**/ + /* HAS_MEMCHR: * This symbol, if defined, indicates that the memchr routine is available * to locate characters within a C string. @@ -2350,6 +2356,12 @@ */ /*#define I_SOCKS / **/ +/* I_SUNMATH: + * This symbol, if defined, indicates that <sunmath.h> exists and + * should be included. + */ +/*#define I_SUNMATH / **/ + /* I_SYSLOG: * This symbol, if defined, indicates that <syslog.h> exists and * should be included. @@ -2663,8 +2675,8 @@ * This symbol contains the ~name expanded version of PRIVLIB, to be used * in programs that are not prepared to deal with ~ expansion at run-time. */ -#define PRIVLIB "/opt/perl/lib/5.5.660" /**/ -#define PRIVLIB_EXP "/opt/perl/lib/5.5.660" /**/ +#define PRIVLIB "/opt/perl/lib/5.5.670" /**/ +#define PRIVLIB_EXP "/opt/perl/lib/5.5.670" /**/ /* PTRSIZE: * This symbol contains the size of a pointer, so that the C preprocessor @@ -2762,8 +2774,8 @@ * This symbol contains the ~name expanded version of SITEARCH, to be used * in programs that are not prepared to deal with ~ expansion at run-time. */ -#define SITEARCH "/opt/perl/lib/site_perl/5.5.660/alpha-dec_osf-thread-multi" /**/ -#define SITEARCH_EXP "/opt/perl/lib/site_perl/5.5.660/alpha-dec_osf-thread-multi" /**/ +#define SITEARCH "/opt/perl/lib/site_perl/5.5.670/alpha-dec_osf-thread-multi" /**/ +#define SITEARCH_EXP "/opt/perl/lib/site_perl/5.5.670/alpha-dec_osf-thread-multi" /**/ /* SITELIB: * This symbol contains the name of the private library for this package. @@ -2780,8 +2792,8 @@ * This symbol contains the ~name expanded version of SITELIB, to be used * in programs that are not prepared to deal with ~ expansion at run-time. */ -#define SITELIB "/opt/perl/lib/site_perl/5.5.660" /**/ -#define SITELIB_EXP "/opt/perl/lib/site_perl/5.5.660" /**/ +#define SITELIB "/opt/perl/lib/site_perl/5.5.670" /**/ +#define SITELIB_EXP "/opt/perl/lib/site_perl/5.5.670" /**/ /* Size_t: * This symbol holds the type used to declare length parameters @@ -2964,7 +2976,7 @@ /* PERL_XS_APIVERSION: * This variable contains the version of the oldest perl binary * compatible with the present perl. perl.c:incpush() and - * lib/lib.pm will automatically search in /opt/perl/lib/site_perl/5.5.660/alpha-dec_osf-thread-multi for older + * lib/lib.pm will automatically search in /opt/perl/lib/site_perl/5.5.670/alpha-dec_osf-thread-multi for older * directories across major versions back to xs_apiversion. * This is only useful if you have a perl library directory tree * structured like the default one. @@ -2983,7 +2995,7 @@ * compatible with the present perl. (That is, pure perl modules * written for pm_apiversion will still work for the current * version). perl.c:incpush() and lib/lib.pm will automatically - * search in /opt/perl/lib/site_perl/5.5.660 for older directories across major versions + * search in /opt/perl/lib/site_perl/5.5.670 for older directories across major versions * back to pm_apiversion. This is only useful if you have a perl * library directory tree structured like the default one. The * versioned site_perl library was introduced in 5.005, so that's @@ -2993,7 +3005,7 @@ * (presumably) be similar. * See the INSTALL file for how this works. */ -#define PERL_XS_APIVERSION "5.5.660" +#define PERL_XS_APIVERSION "5.5.670" #define PERL_PM_APIVERSION "5.005" /* HAS_GETFSSTAT: @@ -3002,6 +3014,12 @@ */ #define HAS_GETFSSTAT /**/ +/* I_IEEEFP: + * This symbol, if defined, indicates that <ieeefp.h> exists and + * should be included. + */ +/*#define I_IEEEFP / **/ + /* HAS_LSEEK_PROTO: * This symbol, if defined, indicates that the system provides * a prototype for the lseek() function. Otherwise, it is up @@ -55,9 +55,13 @@ Locales Regexen make RE engine thread-safe POSIX [=bar=] and [.zap.] would nice too but there's no API for them - (=bar= could be done with Unicode, though) + (=bar= could be done with Unicode, though, see TR about normalization forms) approximate matching +Security + use fchown, fchmod (and futimes?) internally when possible + use fchdir(how portable?) + Reliable Signals custom opcodes alternate runops() for signal despatch @@ -70,8 +74,11 @@ Win32 stuff Miscellaneous add new modules (Archive::Tar, Compress::Zlib, CPAN::FTP?) + sub-second sleep? (integrate Time::HiRes?) + floating point handling: nans, infinities, fp exception masks, etc replace pod2html with new PodtoHtml? (requires other modules from CPAN) automate testing with large parts of CPAN + Unicode collation? Ongoing keep filenames 8.3 friendly, where feasible diff --git a/config_h.SH b/config_h.SH index 9d3ec3d4e5..d452aa9fa1 100644 --- a/config_h.SH +++ b/config_h.SH @@ -3028,6 +3028,12 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un- */ #$d_getfsstat HAS_GETFSSTAT /**/ +/* I_IEEEFP: + * This symbol, if defined, indicates that <ieeefp.h> exists and + * should be included. + */ +#$i_ieeefp I_IEEEFP /**/ + /* HAS_LSEEK_PROTO: * This symbol, if defined, indicates that the system provides * a prototype for the lseek() function. Otherwise, it is up diff --git a/configure.com b/configure.com index 5c970e254c..a1e87d5d8a 100644 --- a/configure.com +++ b/configure.com @@ -999,6 +999,39 @@ $ ENDIF $! $ ENDIF !%Config-I-VMS, skip remaining "where install" questions $! +$ perl_symbol = "true" +$ perl_verb = "" +$ dflt = "y" +$ IF .NOT.silent +$ THEN +$ echo "" +$ echo "%Config-I-VMS, You may choose to write ''packageup'_SETUP.COM to assign a foreign" +$ echo "-Config-I-VMS, symbol to invoke ''package', which is the usual method." +$ echO "-Config-I-VMS, If you do not do so then you would need a DCL command verb at the" +$ echo "-Config-I-VMS, process or the system wide level." +$ ENDIF +$ rp = "Invoke perl as a global symbol foreign command [''dflt'] " +$ GOSUB myread +$ IF (.NOT.ans).AND.(ans.NES."") THEN perl_symbol = "false" +$! +$ IF (.NOT.perl_symbol) +$ THEN +$ dflt = "y" +$ IF .NOT.silent +$ THEN +$ echo "" +$ echo "%Config-I-VMS, Since you won't be using a symbol you must choose to put the ''packageup'" +$ echo "-Config-I-VMS, verb in a per-process table or in the system wide DCLTABLES (which" +$ echo "-Config-I-VMS, would require write privilege)." +$ ENDIF +$ rp = "Invoke perl as a per process command verb [ ''dflt' ] " +$ GOSUB myread +$ IF (.NOT.ans).AND.(ans.NES."") +$ THEN perl_verb = "DCLTABLES" +$ ELSE perl_verb = "PROCESS" +$ ENDIF +$ ENDIF ! (.NOT.perl_symbol) +$! $!: set the base revision $ baserev="5" $!: get the patchlevel @@ -2145,6 +2178,28 @@ $ IF f$search("config.msg") .eqs. "" THEN echo "OK." $! $! %Config-I-VMS, write perl_setup.com here $! +$ IF (.NOT.perl_symbol) +$ THEN +$ file_2_find = "[-]''packageup'.cld" +$ echo "" +$ echo4 "%Config-I-VMS, The perl.cld file is now being written..." +$ OPEN/WRITE CONFIG 'file_2_find' +$ IF (use_vmsdebug_perl) +$ THEN +$ WRITE CONFIG "define verb dbgperl" +$ WRITE CONFIG F$FAO("!_!AS","image ''packageup'_root:[000000]dbgperl''ext'") +$ WRITE CONFIG F$FAO("!_!AS","cliflags (foreign)") +$ WRITE CONFIG "" +$ WRITE CONFIG "define verb perl" +$ WRITE CONFIG F$FAO("!_!AS","image ''packageup'_root:[000000]ndbgPerl''ext'") +$ WRITE CONFIG F$FAO("!_!AS","cliflags (foreign)") +$ ELSE +$ WRITE CONFIG "define verb perl" +$ WRITE CONFIG F$FAO("!_!AS","image ''packageup'_root:[000000]perl''ext'") +$ WRITE CONFIG F$FAO("!_!AS","cliflags (foreign)") +$ ENDIF +$ CLOSE CONFIG +$ ENDIF ! (.NOT.perl_symbol) $ echo "" $ echo4 "%Config-I-VMS, The perl_setup.com file is now being written..." $ file_2_find = "[-]perl_setup.com" @@ -2162,20 +2217,34 @@ $ prefix = prefix - "000000." $ IF F$LOCATE(".]",prefix) .EQ. F$LENGTH(prefix) THEN - prefix = prefix - "]" + ".]" $ WRITE CONFIG "$ define/translation=concealed Perl_Root ''prefix'" -$ write config "$ ext = "".exe""" -$ if sharedperl .eqs. "Y" -$ then +$ WRITE CONFIG "$ ext = "".exe""" +$ IF sharedperl .EQS. "Y" +$ THEN $ write config "$ if f$getsyi(""ARCH_NAME"") .nes. ""VAX"" then ext = "".AXE""" -$ endif -$ IF use_vmsdebug_perl .eqs. "Y" -$ then -$ WRITE CONFIG "$ dbgperl :== $Perl_Root:[000000]dbgPerl'ext'" -$ WRITE CONFIG "$ perl :== $Perl_Root:[000000]ndbgPerl'ext'" -$ WRITE CONFIG "$ define dbgPerlShr Perl_Root:[000000]dbgPerlShr'ext'" -$ else -$ WRITE CONFIG "$ perl :== $Perl_Root:[000000]Perl'ext'" -$ WRITE CONFIG "$ define PerlShr Perl_Root:[000000]PerlShr'ext'" -$ endif +$ ENDIF +$ IF (perl_symbol) +$ THEN +$ IF (use_vmsdebug_perl) +$ THEN +$ WRITE CONFIG "$ dbgperl :== $Perl_Root:[000000]dbgPerl'ext'" +$ WRITE CONFIG "$ perl :== $Perl_Root:[000000]ndbgPerl'ext'" +$ WRITE CONFIG "$ define dbgPerlShr Perl_Root:[000000]dbgPerlShr'ext'" +$ ELSE +$ WRITE CONFIG "$ perl :== $Perl_Root:[000000]Perl'ext'" +$ WRITE CONFIG "$ define PerlShr Perl_Root:[000000]PerlShr'ext'" +$ ENDIF +$ ELSE ! .NOT.perl_symbol +$ IF (use_vmsdebug_perl) +$ THEN +$ WRITE CONFIG "$ define dbgPerlShr Perl_Root:[000000]dbgPerlShr'ext'" +$ ELSE +$ WRITE CONFIG "$ define PerlShr Perl_Root:[000000]PerlShr'ext'" +$ ENDIF +$ IF perl_verb .EQS. "PROCESS" +$ THEN +$ WRITE CONFIG "$ set command ''packagup'_ROOT:[000000]''packageup'.CLD" +$ ENDIF +$ ENDIF ! perl_symbol $ WRITE CONFIG "$ define/nolog pod2text Perl_Root:[lib.pod]pod2text.com" $ WRITE CONFIG "$ define/nolog pod2html Perl_Root:[lib.pod]pod2html.com" $ WRITE CONFIG "$ define/nolog pod2man Perl_Root:[lib.pod]pod2man.com" @@ -2189,14 +2258,40 @@ $ ENDIF $ WRITE CONFIG "$!" $ WRITE CONFIG "$! Symbols for commonly used scripts:" $ WRITE CONFIG "$!" -$ WRITE CONFIG "$ Perldoc == ""'"+"'Perl' Perl_Root:[lib.pod]Perldoc.com -t""" -$ WRITE CONFIG "$ pod2text == ""'"+"'Perl' pod2text""" -$ WRITE CONFIG "$ pod2html == ""'"+"'Perl' pod2html""" -$ WRITE CONFIG "$!pod2man == ""'"+"'Perl' pod2man""" -$ WRITE CONFIG "$!Perlbug == ""'"+"'Perl' Perl_Root:[lib]Perlbug.com""" -$ WRITE CONFIG "$!c2ph == ""'"+"'Perl' c2ph""" -$ WRITE CONFIG "$!h2ph == ""'"+"'Perl' h2ph""" -$ WRITE CONFIG "$!h2xs == ""'"+"'Perl' h2xs""" +$ IF (perl_symbol) +$ THEN +$ WRITE CONFIG "$ Perldoc == ""'"+"'Perl' Perl_Root:[lib.pod]Perldoc.com -t""" +$ WRITE CONFIG "$ pod2text == ""'"+"'Perl' pod2text""" +$ WRITE CONFIG "$ pod2html == ""'"+"'Perl' pod2html""" +$ WRITE CONFIG "$ pod2latex == ""'"+"'Perl' Perl_Root:[lib.pod]pod2latex.com""" +$ WRITE CONFIG "$!pod2man == ""'"+"'Perl' pod2man""" +$ WRITE CONFIG "$!Perlbug == ""'"+"'Perl' Perl_Root:[lib]Perlbug.com""" +$ WRITE CONFIG "$ c2ph == ""'"+"'Perl' Perl_Root:[utils]c2ph.com""" +$ IF F$LOCATE("Devel::DProf",extensions) .LT. F$LENGTH(extensions) +$ THEN +$ WRITE CONFIG "$ dprofpp == ""'"+"'Perl' Perl_Root:[utils]dprofpp.com""" +$ ENDIF +$ WRITE CONFIG "$ h2ph == ""'"+"'Perl' Perl_Root:[utils]h2ph.com""" +$ WRITE CONFIG "$ h2xs == ""'"+"'Perl' Perl_Root:[utils]h2xs.com""" +$ WRITE CONFIG "$!perlcc == ""'"+"'Perl' Perl_Root:[utils]perlcc.com""" +$ WRITE CONFIG "$ splain == ""'"+"'Perl' Perl_Root:[utils]splain.com""" +$ ELSE +$ WRITE CONFIG "$ Perldoc == ""Perl Perl_Root:[lib.pod]Perldoc.com -t""" +$ WRITE CONFIG "$ pod2text == ""Perl pod2text""" +$ WRITE CONFIG "$ pod2html == ""Perl pod2html""" +$ WRITE CONFIG "$ pod2latex == ""Perl Perl_Root:[lib.pod]pod2latex.com""" +$ WRITE CONFIG "$!pod2man == ""Perl pod2man""" +$ WRITE CONFIG "$!Perlbug == ""Perl Perl_Root:[lib]Perlbug.com""" +$ WRITE CONFIG "$ c2ph == ""Perl Perl_Root:[utils]c2ph.com""" +$ IF F$LOCATE("Devel::DProf",extensions) .LT. F$LENGTH(extensions) +$ THEN +$ WRITE CONFIG "$ dprofpp == ""Perl Perl_Root:[utils]dprofpp.com""" +$ ENDIF +$ WRITE CONFIG "$ h2ph == ""Perl Perl_Root:[utils]h2ph.com""" +$ WRITE CONFIG "$ h2xs == ""Perl Perl_Root:[utils]h2xs.com""" +$ WRITE CONFIG "$!perlcc == ""Perl Perl_Root:[utils]perlcc.com""" +$ WRITE CONFIG "$ splain == ""Perl Perl_Root:[utils]splain.com""" +$ ENDIF $ CLOSE CONFIG $! $ echo "" @@ -2206,6 +2301,20 @@ $ echo "-Config-I-VMS, Add that file (or an @ call to it) to your [SY]LOGIN.COM $ echo "-Config-I-VMS, when you are satisfied with a successful compilation," $ echo "-Config-I-VMS, testing, and installation of your perl." $ echo "" +$ IF ((.NOT.perl_symbol) .AND. (perl_verb .EQS. "DCLTABLES")) +$ THEN +$ file_2_find = "[-]''packageup'_install.com" +$ OPEN/WRITE CONFIG 'file_2_find +$ WRITE CONFIG "$ set command perl /table=sys$common:[syslib]dcltables.exe -" +$ WRITE CONFIG " /output=sys$common:[syslib]dcltables.exe" +$ WRITE CONFIG "$ install replace sys$common:[syslib]dcltables.exe" +$ CLOSE CONFIG +$ echo4 "" +$ echo4 "%Config-I-VMS, In order to install the ''packageup' verb into DCLTABLES run:" +$ echo4 "-Config-I-VMS, @ ''F$SEARCH(file_2_find)'" +$ echo4 "-Config-I-VMS, after a successful build, test, and install. Do so with CMKRNL privilege." +$ echo4 "" +$ ENDIF $! $!figure out where we "are" by parsing 'vms_default_directory_name' $! diff --git a/epoc/config.sh b/epoc/config.sh index 7e913d6516..71316834c8 100644 --- a/epoc/config.sh +++ b/epoc/config.sh @@ -191,6 +191,7 @@ d_gnulibc='undef' d_grpasswd='undef' d_hasmntopt='undef' d_htonl='define' +d_iconv='undef' d_index='undef' d_inetaton='define' d_int64t='undef' @@ -415,6 +416,8 @@ i_fcntl='define' i_float='undef' i_gdbm='undef' i_grp='undef' +i_iconv='undef' +i_ieeefp='undef' i_inttypes='undef' i_limits='define' i_locale='undef' @@ -778,7 +781,5 @@ d_strtouq='undef' d_nv_preserves_uv='define' use5005threads='undef' useithreads='undef' -d_iconv='undef' -i_iconv='undef' inc_version_list=' ' inc_version_list_init='0' diff --git a/hints/irix_6.sh b/hints/irix_6.sh index 09c5ee1d59..5e36c31cf2 100644 --- a/hints/irix_6.sh +++ b/hints/irix_6.sh @@ -40,6 +40,7 @@ case "$cc" in *) test -f /usr/lib32/libm.so && cc='cc -n32' ;; esac esac +test -z "$cc" && cc=cc case "$use64bitint" in $define|true|[yY]*) @@ -206,8 +207,9 @@ esac # Don't groan about unused libraries. ldflags="$ldflags -Wl,-woff,84" -case "`$cc -version 2>&1`" in -*7.2.*) op_cflags='optimize=-O1' ;; # workaround for an optimizer bug +case "`uname -s`-`$cc -version 2>&1`" in +IRIX64-*7.2.*) +op_cflags='optimize=-O1' ;; # workaround for an optimizer bug esac # We don't want these libraries. diff --git a/hints/solaris_2.sh b/hints/solaris_2.sh index 8ad616d6da..e3b9ee02b3 100644 --- a/hints/solaris_2.sh +++ b/hints/solaris_2.sh @@ -56,8 +56,8 @@ esac # Here's another draft of the perl5/solaris/gcc sanity-checker. -test -z "`{$cc:-cc} -V 2>/dev/null|grep -i workshop`" || ccisworkshop="$define" -test -z "`{$cc:-cc} -v 2>/dev/null|grep -i gcc`" || ccisgcc="$define" +test -z "`${cc:-cc} -V 2>&1|grep -i workshop`" || ccisworkshop="$define" +test -z "`${cc:-cc} -v 2>&1|grep -i gcc`" || ccisgcc="$define" case "$ccisworkshop" in "$define") @@ -380,8 +380,8 @@ EOCBU cat > UU/use64bitall.cbu <<'EOCBU' # This script UU/use64bitall.cbu will get 'called-back' by Configure # after it has prompted the user for whether to be maximally 64 bitty. -case "$use64bitall" in -"$define"|true|[yY]*) +case "$use64bitall-$use64bitall_done" in +"$define-"|true-|[yY]*-) libc='/usr/lib/sparcv9/libc.so' if test ! -f $libc; then cat >&4 <<EOM @@ -392,6 +392,13 @@ Cannot continue, aborting. EOM exit 1 fi + if test -n "$workshoplibs"; then + loclibpth=`echo $loclibpth | sed -e "s% $workshoplibs%%" ` + for lib in $workshoplibs; do + loclibpth="$loclibpth $lib/sparcv9" + done + loclibpth="$loclibpth $workshoplibs" + fi loclibpth="$loclibpth /usr/lib/sparcv9" case "$cc -v 2>/dev/null" in *gcc*) @@ -427,12 +434,13 @@ EOM *64-bit*|*SPARCV9*) ;; *) xxx=/no/64-bit$xxx ;; esac' + use64bitall_done=yes ;; esac EOCBU # Actually, we want to run this already now, if so requested, -# because we need to fix up the flags right now. +# because we need to fix up things right now. case "$use64bitall" in "$define"|true|[yY]*) . ./UU/use64bitall.cbu @@ -442,13 +450,13 @@ esac cat > UU/uselongdouble.cbu <<'EOCBU' # This script UU/uselongdouble.cbu will get 'called-back' by Configure # after it has prompted the user for whether to use long doubles. -case "$uselongdouble" in -"$define"|true|[yY]*) +case "$uselongdouble-$uselongdouble_done" in +"$define-"|true-|[yY]*-) case "$ccisworkshop" in - '') - cat <<EOM + '') cat <<EOM -I do not see the libsunmath.so; therefore I cannot do long doubles, sorry. +I do not see the Sun Workshop compiler; therefore there is no libsunmath.so; +therefore I cannot do long doubles, sorry. Cannot continue, aborting. EOM exit 1 @@ -456,10 +464,19 @@ EOM esac libswanted="$libswanted sunmath" loclibpth="$loclibpth /opt/SUNWspro/lib" + uselongdouble_done=yes ;; esac EOCBU +# Actually, we want to run this already now, if so requested, +# because we need to fix up things right now. +case "$uselongdouble" in +"$define"|true|[yY]*) + . ./UU/uselongdouble.cbu + ;; +esac + rm -f try.c try.o try # keep that leading tab ccisworkshop='' @@ -1135,6 +1135,9 @@ typedef UVTYPE UV; typedef NVTYPE NV; +#ifdef I_IEEEFP +# include <ieeefp.h> +#endif #ifdef USE_LONG_DOUBLE # ifdef I_SUNMATH diff --git a/pod/perl.pod b/pod/perl.pod index cb627cdb7a..a66e2c812a 100644 --- a/pod/perl.pod +++ b/pod/perl.pod @@ -52,6 +52,7 @@ sections: perlfork Perl fork() information perlthrtut Perl threads tutorial perllexwarn Perl warnings and their control + perlfilter Perl source filters perldbmfilter Perl DBM filters perlcompile Perl compiler suite intro diff --git a/pod/perldelta.pod b/pod/perldelta.pod index a443ff4ebf..964233c271 100644 --- a/pod/perldelta.pod +++ b/pod/perldelta.pod @@ -1262,7 +1262,30 @@ This port is still using its own builtin globbing. =head2 VMS -[TODO - Charles Bailey <bailey@newman.upenn.edu>] +Numerous revisions and extensions to configuration, build, testing, and +installation process to accomodate core changes and VMS-specific options + +Expand %ENV-handling code to allow runtime mapping to logical names, +CLI symbols, and CRTL environ array + +Extension of subprocess invocation code to accept filespecs as command "verbs" + +Add to Perl command line processing the ability to use default file types and +to recognize Unix-style C<2E<gt>&1>. + +Expansion of File::Spec::VMS routines, and integration into ExtUtils::MM_VMS + +Extension of ExtUtils::MM_VMS to handle complex extensions more flexibly + +Barewords at start of Unix-syntax paths may be treated as text rather than +only as logical names + +Optional secure translation of several logical names used internally by Perl + +Miscellaneous bugfixing and porting of new core code to VMS + +Thanks are gladly extended to the many people who have contributed VMS +patches, testing, and ideas. =head2 Win32 diff --git a/pod/perlre.pod b/pod/perlre.pod index 52eac04a34..64f7f1cdcb 100644 --- a/pod/perlre.pod +++ b/pod/perlre.pod @@ -250,7 +250,7 @@ The assumedly non-obviously named classes are: Any control character. Usually characters that don't produce output as such but instead control the terminal somehow: for example newline and backspace are control characters. All characters with ord() less than -32 are most often control classified as characters. +32 are most often classified as control characters. =item graph diff --git a/pod/pod2usage.PL b/pod/pod2usage.PL index 24e93fa350..e0f70b2ca4 100644 --- a/pod/pod2usage.PL +++ b/pod/pod2usage.PL @@ -16,8 +16,8 @@ use Cwd; $origdir = cwd; chdir(dirname($0)); ($file = basename($0)) =~ s/\.PL$//; -$file =~ s/\.pl$// - if ($^O eq 'VMS' or $^O eq 'os2' or $^O eq 'dos'); # "case-forgiving" +$file =~ s/\.pl$// if ($^O eq 'os2' or $^O eq 'dos'); # "case-forgiving" +$file =~ s/\.pl$/.com/ if ($^O eq 'VMS'); # "case-forgiving" open OUT,">$file" or die "Can't create $file: $!"; diff --git a/pod/podselect.PL b/pod/podselect.PL index 3fa411846b..f2ba80a73b 100644 --- a/pod/podselect.PL +++ b/pod/podselect.PL @@ -16,8 +16,8 @@ use Cwd; $origdir = cwd; chdir(dirname($0)); ($file = basename($0)) =~ s/\.PL$//; -$file =~ s/\.pl$// - if ($^O eq 'VMS' or $^O eq 'os2' or $^O eq 'dos'); # "case-forgiving" +$file =~ s/\.pl$// if ($^O eq 'os2' or $^O eq 'dos'); # "case-forgiving" +$file =~ s/\.pl$/.com/ if ($^O eq 'VMS'); # "case-forgiving" open OUT,">$file" or die "Can't create $file: $!"; @@ -2823,12 +2823,12 @@ S_regpposixcc(pTHX_ I32 value) } break; } - if ((namedclass == OOB_NAMEDCLASS || - !(posixcc + skip + 2 < PL_regxend && - (posixcc[skip] == ':' && - posixcc[skip + 1] == ']')))) - Perl_croak(aTHX_ "Character class [:%.*s:] unknown", - t - s - 1, s + 1); + if (namedclass == OOB_NAMEDCLASS || + posixcc[skip] != ':' || + posixcc[skip+1] != ']') + Perl_croak(aTHX_ + "Character class [:%.*s:] unknown", + t - s - 1, s + 1); } else if (ckWARN(WARN_REGEXP) && !SIZE_ONLY) /* [[=foo=]] and [[.foo.]] are still future. */ Perl_warner(aTHX_ WARN_REGEXP, diff --git a/t/comp/use.t b/t/comp/use.t index c3cdb70709..89cb31a568 100755 --- a/t/comp/use.t +++ b/t/comp/use.t @@ -111,7 +111,7 @@ print "ok ",$i++,"\n"; print "ok ",$i++,"\n"; eval "use lib v100.105"; - unless ($@ =~ /lib version 100\.105 required--this is only version 35\.36/) { + unless ($@ =~ /lib version 100\.105 required--this is only version 35\.3/) { print "not "; } print "ok ",$i++,"\n"; @@ -121,7 +121,7 @@ print "ok ",$i++,"\n"; print "ok ",$i++,"\n"; eval "use lib 100.105"; - unless ($@ =~ /lib version 100\.105 required--this is only version 35\.36/) { + unless ($@ =~ /lib version 100\.105 required--this is only version 35\.3/) { print "not "; } print "ok ",$i++,"\n"; diff --git a/t/lib/bigfltpm.t b/t/lib/bigfltpm.t index 4cfd36e02d..5d97f1b4f6 100755 --- a/t/lib/bigfltpm.t +++ b/t/lib/bigfltpm.t @@ -186,78 +186,78 @@ $Math::BigFloat::rnd_mode = 'trunc' -0.006:-1:0 -0.006:-2:0 -0.0065:-3:/-0\.006|-6e-03 --0.0065:-4:/-0\.0065|-6\.5e-03 --0.0065:-5:/-0\.0065|-6\.5e-03 +-0.0065:-4:/-0\.006(?:5|49{5}\d+)|-6\.5e-03 +-0.0065:-5:/-0\.006(?:5|49{5}\d+)|-6\.5e-03 $Math::BigFloat::rnd_mode = 'zero' -+2.23:-1:2.2 --2.23:-1:-2.2 -+2.27:-1:2.3 --2.27:-1:-2.3 -+2.25:-1:2.2 --2.25:-1:-2.2 -+2.35:-1:2.3 --2.35:-1:-2.3 ++2.23:-1:/2.2(?:0{5}\d+)? +-2.23:-1:/-2.2(?:0{5}\d+)? ++2.27:-1:/2.(?:3|29{5}\d+) +-2.27:-1:/-2.(?:3|29{5}\d+) ++2.25:-1:/2.2(?:0{5}\d+)? +-2.25:-1:/-2.2(?:0{5}\d+)? ++2.35:-1:/2.(?:3|29{5}\d+) +-2.35:-1:/-2.(?:3|29{5}\d+) -0.0065:-1:0 -0.0065:-2:/-0\.01|-1e-02 -0.0065:-3:/-0\.006|-6e-03 --0.0065:-4:/-0\.0065|-6\.5e-03 --0.0065:-5:/-0\.0065|-6\.5e-03 +-0.0065:-4:/-0\.006(?:5|49{5}\d+)|-6\.5e-03 +-0.0065:-5:/-0\.006(?:5|49{5}\d+)|-6\.5e-03 $Math::BigFloat::rnd_mode = '+inf' -+3.23:-1:3.2 --3.23:-1:-3.2 -+3.27:-1:3.3 --3.27:-1:-3.3 -+3.25:-1:3.3 --3.25:-1:-3.2 -+3.35:-1:3.4 --3.35:-1:-3.3 ++3.23:-1:/3.2(?:0{5}\d+)? +-3.23:-1:/-3.2(?:0{5}\d+)? ++3.27:-1:/3.(?:3|29{5}\d+) +-3.27:-1:/-3.(?:3|29{5}\d+) ++3.25:-1:/3.(?:3|29{5}\d+) +-3.25:-1:/-3.2(?:0{5}\d+)? ++3.35:-1:/3.(?:4|39{5}\d+) +-3.35:-1:/-3.(?:3|29{5}\d+) -0.0065:-1:0 -0.0065:-2:/-0\.01|-1e-02 -0.0065:-3:/-0\.006|-6e-03 --0.0065:-4:/-0\.0065|-6\.5e-03 --0.0065:-5:/-0\.0065|-6\.5e-03 +-0.0065:-4:/-0\.006(?:5|49{5}\d+)|-6\.5e-03 +-0.0065:-5:/-0\.006(?:5|49{5}\d+)|-6\.5e-03 $Math::BigFloat::rnd_mode = '-inf' -+4.23:-1:4.2 --4.23:-1:-4.2 -+4.27:-1:4.3 --4.27:-1:-4.3 -+4.25:-1:4.2 --4.25:-1:-4.3 -+4.35:-1:4.3 --4.35:-1:-4.4 ++4.23:-1:/4.2(?:0{5}\d+)? +-4.23:-1:/-4.2(?:0{5}\d+)? ++4.27:-1:/4.(?:3|29{5}\d+) +-4.27:-1:/-4.(?:3|29{5}\d+) ++4.25:-1:/4.2(?:0{5}\d+)? +-4.25:-1:/-4.(?:3|29{5}\d+) ++4.35:-1:/4.(?:3|29{5}\d+) +-4.35:-1:/-4.(?:4|39{5}\d+) -0.0065:-1:0 -0.0065:-2:/-0\.01|-1e-02 -0.0065:-3:/-0\.007|-7e-03 --0.0065:-4:/-0\.0065|-6\.5e-03 --0.0065:-5:/-0\.0065|-6\.5e-03 +-0.0065:-4:/-0\.006(?:5|49{5}\d+)|-6\.5e-03 +-0.0065:-5:/-0\.006(?:5|49{5}\d+)|-6\.5e-03 $Math::BigFloat::rnd_mode = 'odd' -+5.23:-1:5.2 --5.23:-1:-5.2 -+5.27:-1:5.3 --5.27:-1:-5.3 -+5.25:-1:5.3 --5.25:-1:-5.3 -+5.35:-1:5.3 --5.35:-1:-5.3 ++5.23:-1:/5.2(?:0{5}\d+)? +-5.23:-1:/-5.2(?:0{5}\d+)? ++5.27:-1:/5.(?:3|29{5}\d+) +-5.27:-1:/-5.(?:3|29{5}\d+) ++5.25:-1:/5.(?:3|29{5}\d+) +-5.25:-1:/-5.(?:3|29{5}\d+) ++5.35:-1:/5.(?:3|29{5}\d+) +-5.35:-1:/-5.(?:3|29{5}\d+) -0.0065:-1:0 -0.0065:-2:/-0\.01|-1e-02 -0.0065:-3:/-0\.007|-7e-03 --0.0065:-4:/-0\.0065|-6\.5e-03 --0.0065:-5:/-0\.0065|-6\.5e-03 +-0.0065:-4:/-0\.006(?:5|49{5}\d+)|-6\.5e-03 +-0.0065:-5:/-0\.006(?:5|49{5}\d+)|-6\.5e-03 $Math::BigFloat::rnd_mode = 'even' -+6.23:-1:6.2 --6.23:-1:-6.2 -+6.27:-1:6.3 --6.27:-1:-6.3 -+6.25:-1:6.2 --6.25:-1:-6.2 -+6.35:-1:6.4 --6.35:-1:-6.4 ++6.23:-1:/6.2(?:0{5}\d+)? +-6.23:-1:/-6.2(?:0{5}\d+)? ++6.27:-1:/6.(?:3|29{5}\d+) +-6.27:-1:/-6.(?:3|29{5}\d+) ++6.25:-1:/6.2(?:0{5}\d+)? +-6.25:-1:/-6.2(?:0{5}\d+)? ++6.35:-1:/6.(?:4|39{5}\d+) +-6.35:-1:/-6.(?:4|39{5}\d+) -0.0065:-1:0 -0.0065:-2:/-0\.01|-1e-02 -0.0065:-3:/-0\.006|-6e-03 --0.0065:-4:/-0\.0065|-6\.5e-03 --0.0065:-5:/-0\.0065|-6\.5e-03 +-0.0065:-4:/-0\.006(?:5|49{5}\d+)|-6\.5e-03 +-0.0065:-5:/-0\.006(?:5|49{5}\d+)|-6\.5e-03 &fcmp abc:abc: abc:+0: diff --git a/t/op/pack.t b/t/op/pack.t index e4c7a9c210..09c566e92f 100755 --- a/t/op/pack.t +++ b/t/op/pack.t @@ -19,6 +19,9 @@ print ($#ary == $#ary2 ? "ok 1\n" : "not ok 1\n"); $out1=join(':',@ary); $out2=join(':',@ary2); +# Using long double NVs may introduce greater accuracy than wanted. +$out1 =~ s/:9\.87654321097999\d*:/:9.87654321098:/; +$out2 =~ s/:9\.87654321097999\d*:/:9.87654321098:/; print ($out1 eq $out2? "ok 2\n" : "not ok 2\n"); print ($foo =~ /def/ ? "ok 3\n" : "not ok 3\n"); diff --git a/t/op/universal.t b/t/op/universal.t index eb6ec3ce97..7de8199132 100755 --- a/t/op/universal.t +++ b/t/op/universal.t @@ -70,7 +70,7 @@ test ! $a->can("export_tags"); # a method in Exporter test (eval { $a->VERSION }) == 2.718; test ! (eval { $a->VERSION(2.719) }) && - $@ =~ /^Alice version 2.719 required--this is only version 2.718 at /; + $@ =~ /^Alice version 2.71(?:9|8999\d+) required--this is only version 2.718 at /; test (eval { $a->VERSION(2.718) }) && ! $@; diff --git a/t/pragma/warn/regcomp b/t/pragma/warn/regcomp index 7d485f2efd..5de01c67d7 100644 --- a/t/pragma/warn/regcomp +++ b/t/pragma/warn/regcomp @@ -6,9 +6,11 @@ %.*s matches null string many times [S_regpiece] $a = "ABC123" ; $a =~ /(?=a)*/' - /%.127s/: Unrecognized escape \\%c passed through" [S_regatom] + /%.127s/: Unrecognized escape \\%c passed through [S_regatom] $x = '\m' ; /$x/ + Character class [:%.*s:] unknown [S_regpposixcc] + Character class syntax [. .] is reserved for future extensions [S_regpposixcc] Character class syntax [= =] is reserved for future extensions [S_checkposixcc] @@ -61,6 +63,7 @@ $_ = "" ; /[[.foo.]]/; /[[=bar=]]/; /[:zog:]/; +/[[:zog:]]/; no warnings 'regexp' ; /[:alpha:]/; /[.foo.]/; @@ -68,9 +71,9 @@ no warnings 'regexp' ; /[[:alpha:]]/; /[[.foo.]]/; /[[=bar=]]/; -/[:zog:]/; BEGIN { $ENV{PERL_DESTRUCT_LEVEL} = 0 unless $ENV{PERL_DESTRUCT_LEVEL} > 3 } /[[:zog:]]/; +/[:zog:]/; EXPECT Character class syntax [: :] belongs inside character classes at - line 4. Character class syntax [. .] belongs inside character classes at - line 5. @@ -80,7 +83,7 @@ Character class syntax [= =] is reserved for future extensions at - line 6. Character class syntax [. .] is reserved for future extensions at - line 8. Character class syntax [= =] is reserved for future extensions at - line 9. Character class syntax [: :] belongs inside character classes at - line 10. -Character class [:zog:] unknown at - line 20. +Character class [:zog:] unknown at - line 11. ######## # regcomp.c [S_regclass] $_ = ""; diff --git a/utils/dprofpp.PL b/utils/dprofpp.PL index a6a1d911a5..51e8d7839a 100644 --- a/utils/dprofpp.PL +++ b/utils/dprofpp.PL @@ -14,9 +14,8 @@ use File::Basename qw(&basename &dirname); # This is so that make depend always knows where to find PL derivatives. chdir(dirname($0)); ($file = basename($0)) =~ s/\.PL$//; -$file =~ s/\.pl$// - if ($Config{'osname'} eq 'VMS' or - $Config{'osname'} eq 'OS2'); # "case-forgiving" +$file =~ s/\.pl$// if ($Config{'osname'} eq 'OS2'); # "case-forgiving" +$file =~ s/\.pl$/.com/ if ($Config{'osname'} eq 'VMS'); # "case-forgiving" my $dprof_pm = '../ext/Devel/DProf/DProf.pm'; my $VERSION = 0; diff --git a/vms/descrip_mms.template b/vms/descrip_mms.template index eb9d0bd97a..c96c145752 100644 --- a/vms/descrip_mms.template +++ b/vms/descrip_mms.template @@ -347,7 +347,7 @@ libmods : $(LIBPREREQ) @ $(NOOP) utils : $(utils1) $(utils2) @ $(NOOP) -podxform : [.lib.pod]pod2text.com [.lib.pod]pod2html.com [.lib.pod]pod2latex.com [.lib.pod]pod2man.com [.lib.pod]podchecker.com +podxform : [.lib.pod]pod2text.com [.lib.pod]pod2html.com [.lib.pod]pod2latex.com [.lib.pod]pod2man.com [.lib.pod]podchecker.com [.lib.pod]pod2usage.com [.lib.pod]podselect.com @ $(NOOP) x2p : [.x2p]a2p$(E) [.x2p]s2p.com [.x2p]find2perl.com @ $(NOOP) @@ -582,6 +582,16 @@ dynext : $(LIBPREREQ) $(DBG)perlshr$(E) $(MINIPERL) $(MMS$SOURCE) Copy/Log [.pod]podchecker.com $(MMS$TARGET) +[.lib.pod]pod2usage.com : [.pod]pod2usage.PL $(ARCHDIR)Config.pm + @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod] + $(MINIPERL) $(MMS$SOURCE) + Copy/Log [.pod]pod2usage.com $(MMS$TARGET) + +[.lib.pod]podselect.com : [.pod]podselect.PL $(ARCHDIR)Config.pm + @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod] + $(MINIPERL) $(MMS$SOURCE) + Copy/Log [.pod]podselect.com $(MMS$TARGET) + preplibrary : $(MINIPERL_EXE) $(LIBPREREQ) $(SOCKPM) @ Write Sys$Output "Autosplitting Perl library . . ." @ Create/Directory [.lib.auto] diff --git a/vms/ext/filespec.t b/vms/ext/filespec.t index 779396be73..bf0208d94b 100644 --- a/vms/ext/filespec.t +++ b/vms/ext/filespec.t @@ -86,7 +86,7 @@ some:[where.over]the.rainbow unixify /some/where/over/the.rainbow /some/where/over/the.rainbow vmsify some:[where.over]the.rainbow some/where/over/the.rainbow vmsify [.some.where.over]the.rainbow ../some/where/over/the.rainbow vmsify [-.some.where.over]the.rainbow -some/../../where/over/the.rainbow vmsify [-.where.over]the.rainbow +some/../../where/over/the.rainbow vmsify [.some.--.where.over]the.rainbow .../some/where/over/the.rainbow vmsify [...some.where.over]the.rainbow some/.../where/over/the.rainbow vmsify [.some...where.over]the.rainbow /some/.../where/over/the.rainbow vmsify some:[...where.over]the.rainbow diff --git a/vms/gen_shrfls.pl b/vms/gen_shrfls.pl index c668120464..a109f7bdfd 100644 --- a/vms/gen_shrfls.pl +++ b/vms/gen_shrfls.pl @@ -186,12 +186,6 @@ LINE: while (<CPP>) { print "opcode.h>> $_" if $debug > 2; if (/^OP \*\s/) { &scan_func($_); } if (/^\s*EXT/) { &scan_var($_); } - if (/^\s+OP_/) { &scan_enum($_); } - last LINE unless defined($_ = <CPP>); - } - while (/^typedef enum/ .. /^\s*\}/) { - print "global enum>> $_" if $debug > 2; - &scan_enum($_); last LINE unless defined($_ = <CPP>); } # Check for transition to new header file diff --git a/vms/perlvms.pod b/vms/perlvms.pod index 53925b2541..3883233c28 100644 --- a/vms/perlvms.pod +++ b/vms/perlvms.pod @@ -463,7 +463,11 @@ is executed as a DCL command. Otherwise, the first token on the command line is treated as the filespec of an image to run, and an attempt is made to invoke it (using F<.Exe> and the process defaults to expand the filespec) and pass the -rest of C<exec>'s argument to it as parameters. +rest of C<exec>'s argument to it as parameters. If the token +has no file type, and matches a file with null type, then an +attempt is made to determine whether the file is an executable +image which should be invoked using C<MCR> or a text file which +should be passed to DCL as a command procedure. You can use C<exec> in both ways within the same script, as long as you call C<fork> and C<exec> in pairs. Perl @@ -558,9 +562,16 @@ specification (e.g. C<:> or C<]>), an attempt is made to expand it using a default type of F<.Exe> and the process defaults, and if successful, the resulting file is invoked via C<MCR>. This allows you to invoke an image directly simply by passing the file specification -to C<system>, a common Unixish idiom. If LIST consists -of the empty string, C<system> spawns an interactive DCL subprocess, -in the same fashion as typiing B<SPAWN> at the DCL prompt. +to C<system>, a common Unixish idiom. If the token has no file type, +and matches a file with null type, then an attempt is made to +determine whether the file is an executable image which should be +invoked using C<MCR> or a text file which should be passed to DCL +as a command procedure. + +If LIST consists of the empty string, C<system> spawns an +interactive DCL subprocess, in the same fashion as typiing +B<SPAWN> at the DCL prompt. + Perl waits for the subprocess to complete before continuing execution in the current process. As described in L<perlfunc>, the return value of C<system> is a fake "status" which follows diff --git a/vms/subconfigure.com b/vms/subconfigure.com index 30da056561..1686c663de 100644 --- a/vms/subconfigure.com +++ b/vms/subconfigure.com @@ -75,6 +75,7 @@ $ perl_d_sqrtl = "define" $ perl_d_statfs_f_flags = "undef" $ perl_d_statfs_s = "undef" $ perl_d_ustat = "undef" +$ perl_i_ieeefp = "undef" $ perl_i_sunmath = "undef" $ perl_i_sysstatfs = "undef" $ perl_i_sysvfs = "undef" @@ -4003,6 +4004,7 @@ $ WC "d_gethname='" + perl_d_gethname + "'" $ WC "d_phostname='" + perl_d_phostname + "'" $ WC "d_accessx='" + perl_d_accessx + "'" $ WC "d_eaccess='" + perl_d_eaccess + "'" +$ WC "i_ieeefp='" + perl_i_ieeefp + "'" $ WC "i_sunmath='" + perl_i_sunmath + "'" $ WC "i_sysaccess='" + perl_i_sysaccess + "'" $ WC "i_syssecrt='" + perl_i_syssecrt + "'" @@ -4101,7 +4103,7 @@ $ WC "sPRIx64='" + perl_sPRIx64 + "'" $ WC "d_llseek='" + perl_d_llseek + "'" $ WC "d_iconv='" + perl_d_iconv +"'" $ WC "i_iconv='" + perl_i_iconv +"'" -$ WC "inc_version_list_init='""""'" +$ WC "inc_version_list_init='0'" $ WC "uselargefiles='" + perl_uselargefiles + "'" $ WC "uselongdouble='" + perl_uselongdouble + "'" $ WC "usemorebits='" + perl_usemorebits + "'" @@ -987,6 +987,7 @@ pipe_exit_routine() info = open_pipes; while (info) { + int need_eof; _ckvmssts(SYS$SETAST(0)); need_eof = info->mode != 'r' && !info->done; _ckvmssts(SYS$SETAST(1)); @@ -2518,6 +2519,9 @@ getredirection(int *ac, char ***av) exit(vaxc$errno); } if (err != NULL) { + if (strcmp(err,"&1") == 0) { + dup2(fileno(stdout), fileno(Perl_debug_log)); + } else { FILE *tmperr; if (NULL == (tmperr = fopen(err, errmode, "mbc=32", "mbf=2"))) { @@ -2530,6 +2534,7 @@ getredirection(int *ac, char ***av) exit(vaxc$errno); } } + } #ifdef ARGPROC_DEBUG PerlIO_printf(Perl_debug_log, "Arglist:\n"); for (j = 0; j < *ac; ++j) @@ -3388,6 +3393,7 @@ setup_cmddsc(char *cmd, int check_img) { char vmsspec[NAM$C_MAXRSS+1], resspec[NAM$C_MAXRSS+1]; $DESCRIPTOR(defdsc,".EXE"); + $DESCRIPTOR(defdsc2,"."); $DESCRIPTOR(resdsc,resspec); struct dsc$descriptor_s imgdsc = {0, DSC$K_DTYPE_T, DSC$K_CLASS_S, 0}; unsigned long int cxt = 0, flags = 1, retsts = SS$_NORMAL; @@ -3443,18 +3449,44 @@ setup_cmddsc(char *cmd, int check_img) imgdsc.dsc$a_pointer = s; imgdsc.dsc$w_length = wordbreak - s; retsts = lib$find_file(&imgdsc,&resdsc,&cxt,&defdsc,0,0,&flags); + if (!(retsts&1)) { + _ckvmssts(lib$find_file_end(&cxt)); + retsts = lib$find_file(&imgdsc,&resdsc,&cxt,&defdsc2,0,0,&flags); if (!(retsts & 1) && *s == '$') { + _ckvmssts(lib$find_file_end(&cxt)); imgdsc.dsc$a_pointer++; imgdsc.dsc$w_length--; retsts = lib$find_file(&imgdsc,&resdsc,&cxt,&defdsc,0,0,&flags); + if (!(retsts&1)) { _ckvmssts(lib$find_file_end(&cxt)); + retsts = lib$find_file(&imgdsc,&resdsc,&cxt,&defdsc2,0,0,&flags); + } } + } + _ckvmssts(lib$find_file_end(&cxt)); + if (retsts & 1) { + FILE *fp; s = resspec; while (*s && !isspace(*s)) s++; *s = '\0'; + + /* check that it's really not DCL with no file extension */ + fp = fopen(resspec,"r","ctx=bin,shr=get"); + if (fp) { + char b[4] = {0,0,0,0}; + read(fileno(fp),b,4); + isdcl = isprint(b[0]) && isprint(b[1]) && isprint(b[2]) && isprint(b[3]); + fclose(fp); + } + if (check_img && isdcl) return RMS$_FNF; + if (cando_by_name(S_IXUSR,0,resspec)) { New(402,VMScmd.dsc$a_pointer,7 + s - resspec + (rest ? strlen(rest) : 0),char); + if (!isdcl) { strcpy(VMScmd.dsc$a_pointer,"$ MCR "); + } else { + strcpy(VMScmd.dsc$a_pointer,"@"); + } strcat(VMScmd.dsc$a_pointer,resspec); if (rest) strcat(VMScmd.dsc$a_pointer,rest); VMScmd.dsc$w_length = strlen(VMScmd.dsc$a_pointer); diff --git a/vms/vmsish.h b/vms/vmsish.h index 8d4a8caf6b..a09d2be438 100644 --- a/vms/vmsish.h +++ b/vms/vmsish.h @@ -263,6 +263,10 @@ #define HAS_WAIT #define PERL_FS_VER_FMT "%d_%d_%d" +/* Temporary; we need to add support for this to Configure.Com */ +#ifdef PERL_INC_VERSION_LIST +# undef PERL_INC_VERSION_LIST +#endif /* VMS: * This symbol, if defined, indicates that the program is running under diff --git a/vos/config.def b/vos/config.def index c943b73e24..7ef644dfe9 100644 --- a/vos/config.def +++ b/vos/config.def @@ -300,6 +300,7 @@ $i_fcntl='define' $i_float='define' $i_grp='undef' $i_iconv='undef' +$i_ieeefp='undef' $i_inttypes='undef' $i_limits='define' $i_locale='define' diff --git a/vos/config.h b/vos/config.h index 2f4e15a820..d163593ed0 100644 --- a/vos/config.h +++ b/vos/config.h @@ -1658,6 +1658,12 @@ #define LONGLONGSIZE _error_ /**/ #endif +/* HAS_MADVISE: + * This symbol, if defined, indicates that the madvise system call is + * available to map a file into memory. + */ +/*#define HAS_MADVISE /**/ + /* HAS_MEMCHR: * This symbol, if defined, indicates that the memchr routine is available * to locate characters within a C string. @@ -2346,6 +2352,12 @@ */ /*#define I_SOCKS /**/ +/* I_SUNMATH: + * This symbol, if defined, indicates that <sunmath.h> exists and + * should be included. + */ +/*#define I_SUNMATH /**/ + /* I_SYSLOG: * This symbol, if defined, indicates that <syslog.h> exists and * should be included. @@ -2998,6 +3010,12 @@ */ /*#define HAS_GETFSSTAT /**/ +/* I_IEEEFP: + * This symbol, if defined, indicates that <ieeefp.h> exists and + * should be included. + */ +/*#define I_IEEEFP /**/ + /* HAS_LSEEK_PROTO: * This symbol, if defined, indicates that the system provides * a prototype for the lseek() function. Otherwise, it is up diff --git a/vos/config_h.SH_orig b/vos/config_h.SH_orig index ad136f26db..d452aa9fa1 100755 --- a/vos/config_h.SH_orig +++ b/vos/config_h.SH_orig @@ -1676,6 +1676,12 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un- #define LONGLONGSIZE $longlongsize /**/ #endif +/* HAS_MADVISE: + * This symbol, if defined, indicates that the madvise system call is + * available to map a file into memory. + */ +#$d_madvise HAS_MADVISE /**/ + /* HAS_MEMCHR: * This symbol, if defined, indicates that the memchr routine is available * to locate characters within a C string. @@ -2364,6 +2370,12 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un- */ #$i_socks I_SOCKS /**/ +/* I_SUNMATH: + * This symbol, if defined, indicates that <sunmath.h> exists and + * should be included. + */ +#$i_sunmath I_SUNMATH /**/ + /* I_SYSLOG: * This symbol, if defined, indicates that <syslog.h> exists and * should be included. @@ -3016,6 +3028,12 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un- */ #$d_getfsstat HAS_GETFSSTAT /**/ +/* I_IEEEFP: + * This symbol, if defined, indicates that <ieeefp.h> exists and + * should be included. + */ +#$i_ieeefp I_IEEEFP /**/ + /* HAS_LSEEK_PROTO: * This symbol, if defined, indicates that the system provides * a prototype for the lseek() function. Otherwise, it is up diff --git a/win32/config.bc b/win32/config.bc index 737e0e2052..59d96f62b8 100644 --- a/win32/config.bc +++ b/win32/config.bc @@ -427,6 +427,7 @@ i_float='define' i_gdbm='undef' i_grp='undef' i_iconv='undef' +i_ieeefp='undef' i_inttypes='undef' i_limits='define' i_locale='define' diff --git a/win32/config.gc b/win32/config.gc index 9aab8e0c73..d932482031 100644 --- a/win32/config.gc +++ b/win32/config.gc @@ -427,6 +427,7 @@ i_float='define' i_gdbm='undef' i_grp='undef' i_iconv='undef' +i_ieeefp='undef' i_inttypes='undef' i_limits='define' i_locale='define' diff --git a/win32/config.vc b/win32/config.vc index 5203ed3d7e..4865d5b3a5 100644 --- a/win32/config.vc +++ b/win32/config.vc @@ -427,6 +427,7 @@ i_float='define' i_gdbm='undef' i_grp='undef' i_iconv='undef' +i_ieeefp='undef' i_inttypes='undef' i_limits='define' i_locale='define' |