Charles Bailey wrote:
> OK, I finally got a chance to catch up on the last several days' patches,
> and I've got a new test kit based on RC1 up for ftp here as
> ftp://perl.newman.upenn.edu/perl5/vmsperl_rc1_1.tgz
After applying the enclosed patch I obtained:
[.lib]filespec..........FAILED on test 187
[.lib]vmsish............FAILED on test 7
[.pragma]warnings.......FAILED on test 196
Failed 3/221 tests, 94.57% okay.
u=15.42 s=0 cu=0 cs=0 files=212 tests=9317
with DEC C V6.0-001 on OpenVMS Alpha V7.1
I took the xs_apiversion and pm_apiversion stuff directly from a VMS
pathified versions (i.e. s/\./_/) of the Bourne shell equivalent
shown here with line numbers:
13315 : Find earliest binary compatible site_perl subdirectory perl can use.
13316 case "$bincompat5005" in
13317 "$define") xs_apiversion='5.005' ;;
13318 *) xs_apiversion=$version ;; # The current site_perl version.
13319 esac
13320 : Find earliest pure perl site_perl subdirectory perl can use.
13321 : The versioned directories started at 5.005.
13322 pm_apiversion='5.005'
But note also that I have now stuck in the code to read patchlevel.h.
I've taken Dan's patch and rearranged it a bit in a couple of places so
don't apply both - your option.
The change to vms.c is a declaration of retreat on the issue. Note that
I've made the comparison as constrictive as possible.
Thanks much for putting the kit together.
Peter Prymmer
This ought to apply with patch -p1:
diff -ru vmsperl_orig/configure.com vmsperl/configure.com
--- vmsperl_orig/configure.com Sun Mar 12 18:13:33 2000
+++ vmsperl/configure.com Mon Mar 13 13:49:13 2000
@@ -40,7 +40,7 @@
$ macros = ""
$ extra_flags = ""
$ user_c_flags = ""
-$ use_debugging_perl = "y"
+$ use_debugging_perl = "n"
$ use_ieee_math = "n"
$ be_case_sensitive = "n"
$ use_vmsdebug_perl = "n"
@@ -1088,7 +1088,9 @@
$ api_subversion = F$ELEMENT(2," ",line)
$ got_api_subversion = "true"
$ ENDIF
-$ IF (.NOT.got_patch).OR.(.NOT.got_sub) THEN GOTO Patchlevel_h_loop
+$ IF (.NOT.got_patch).OR.(.NOT.got_sub).OR. -
+ (.NOT.got_api_revision).OR.(.NOT.got_api_version).OR.(.NOT.got_api_subversion)
+-
+ THEN GOTO Patchlevel_h_loop
$Close_patch:
$ CLOSE CONFIG
$ ELSE
@@ -1103,6 +1105,8 @@
$ ENDIF
$!
$ version = revision + "_" + patchlevel + "_" + subversion
+$ xs_apiversion="5_005"
+$ pm_apiversion="5_005"
$!
$ IF (.NOT.vms_skip_install)
$ THEN
@@ -1720,6 +1724,24 @@
$ macros = macros + """__DEBUG__=1"","
$ ELSE
$ use_vmsdebug_perl = "N"
+$ ENDIF
+$!
+$! Ask if they want to build with DEBUGGING
+$ echo ""
+$ echo "Perl can be built with extra runtime debugging enabled. This
+$ echo "enables the ""-D"" switch, at the cost of some performance. It
+$ echo "was mandatory on perl 5.005 and before on VMS, but is now
+$ echo "optional. If you don't generally use it you should probably
+$ echo "leave this off and gain a bit of extra speed.
+$ dflt = "n"
+$ rp = "Build a DEBUGGING version of Perl? [''dflt'] "
+$ GOSUB myread
+$ IF ans.eqs."" then ans = dflt
+$ IF ans
+$ THEN
+$ use_debugging_perl = "Y"
+$ ELSE
+$ use_debugging_perl = "N"
$ ENDIF
$!
$! Ask if they want to build with MULTIPLICITY
diff -ru vmsperl_orig/vms/subconfigure.com vmsperl/vms/subconfigure.com
--- vmsperl_orig/vms/subconfigure.com Sun Mar 12 18:22:57 2000
+++ vmsperl/vms/subconfigure.com Mon Mar 13 13:47:13 2000
@@ -3961,8 +3961,8 @@
$ WC "d_eunice='" + perl_d_eunice + "'"
$ WC "libs='" + perl_libs + "'"
$ WC "libc='" + perl_libc + "'"
-$ WC "xs_apiversion='" + localperlver + "'"
-$ WC "pm_apiversion='" + localperlver + "'"
+$ WC "xs_apiversion='" + xs_apiversion + "'"
+$ WC "pm_apiversion='" + pm_apiversion + "'"
$ WC "pager='" + perl_pager + "'"
$ WC "uidtype='" + perl_uidtype + "'"
$ WC "uidformat='" + perl_uidformat + "'"
diff -ru vmsperl_orig/vms/test.com vmsperl/vms/test.com
--- vmsperl_orig/vms/test.com Sun Mar 12 18:03:06 2000
+++ vmsperl/vms/test.com Mon Mar 13 13:46:10 2000
@@ -41,7 +41,7 @@
$ if p2.nes."" then ndbg = "ndbg"
$!
$! Pick up a copy of perl to use for the tests
-$ Delete/Log/NoConfirm Perl.;*
+$ If F$Search("Perl.").nes."" Then Delete/Log/NoConfirm Perl.;*
$ Copy/Log/NoConfirm [-]'ndbg'Perl'exe' []Perl.
$
$! Make the environment look a little friendlier to tests which assume Unix
@@ -94,7 +94,7 @@
$ Show Process/Accounting
$ testdir = "Directory/NoHead/NoTrail/Column=1"
$ Define/User 'dbg'Perlshr Sys$Disk:[-]'dbg'PerlShr'exe'
-$ set message/nofacil/nosever/noiden/notext
+$! set message/nofacil/nosever/noiden/notext
$ MCR Sys$Disk:[]Perl. "-I[-.lib]" - "''p3'" "''p4'" "''p5'" "''p6'"
$ Deck/Dollar=$$END-OF-TEST$$
# $RCSfile: TEST,v $$Revision: 4.1 $$Date: 92/08/07 18:27:00 $
diff -ru vmsperl_orig/vms/vms.c vmsperl/vms/vms.c
--- vmsperl_orig/vms/vms.c Sun Mar 12 17:30:17 2000
+++ vmsperl/vms/vms.c Mon Mar 13 13:47:31 2000
@@ -4671,6 +4671,16 @@
if (retsts == SS$_ACCONFLICT) {
return TRUE;
}
+/*
+ Hail Mary, problem with sys$check_access() seen with
+ cc/ver nl: DEC C V6.0-001 on OpenVMS Alpha V7.1 + ALPACRT09_071
+ */
+#if defined (__ALPHA) && defined(__VMS_VER) && __VMS_VER == 70100022 &&
+defined(__DECC_VER) && __DECC_VER == 60090001
+ if (retsts == 114762) {
+ return TRUE;
+ }
+#endif
+
_ckvmssts(retsts);
return FALSE; /* Should never get here */
End of Patch.