VMS updates
Peter Prymmer [Wed, 25 Apr 2001 18:43:27 +0000 (11:43 -0700)]
Message-ID: <Pine.OSF.4.10.10104251842130.257877-100000@aspara.forte.com>

p4raw-id: //depot/perl@9847

README.vms
configure.com
vms/descrip_mms.template
vms/ext/filespec.t

index 4e2ae49..6744322 100644 (file)
@@ -180,6 +180,8 @@ troublesome logicals and symbols are:
     T    "LOGICAL"
     FOO  "LOGICAL"
     EXT  "LOGICAL"
+    SOME_LOGICAL_NAME_NOT_LIKELY "LOGICAL"
+    DOWN_LOGICAL_NAME_NOT_LIKELY "LOGICAL"
     TEST "SYMBOL"
 
 As a handy shortcut, the command:
index 2aa9541..a1c26a7 100644 (file)
@@ -583,32 +583,87 @@ $! after finding MANIFEST (see above)
 $!: Configure runs within the UU subdirectory 
 $!
 $!: compute the number of columns on the terminal for proper question formatting
-$! (sfn, will assume 80-ish)
+$ IF F$MODE() .EQS. "BATCH"
+$! else it winds up being 512 in batch
+$ THEN COLUMNS = 80
+$ ELSE COLUMNS = F$GETDVI("SYS$OUTPUT","DEVBUFSIZ")
+$ ENDIF
+$! "-des" sets SYS$OUTPUT to NL: with a DEVBUFSIZ too large (512 again)
+$ IF COLUMNS .GT. 210 THEN COLUMNS = 80
+$! not sure if this would actually be needed - it hopefully will not hurt
+$ IF COLUMNS .LT. 40 THEN COLUMNS = 40
 $!
 $!: set up the echo used in my read              !sfn
 $!: now set up to do reads with possible shell escape and default assignment !sfn
 $ GOTO Beyond_myread
 $!
+$! The sub_rp splitting is intended to handle long symbols such as the dflt for
+$! extensions.
+$!
 $myread:
 $ ans = ""
+$ len_rp = F$LENGTH(rp)
 $ If (fastread)
 $ Then
-$   echo4 "''rp'"
+$   IF len_rp .GT. 210
+$   THEN
+$     i_rp = 0
+$     fastread_rp_loop:
+$       sub_rp = F$EXTRACT(i_rp,COLUMNS,rp)
+$       echo4 "''sub_rp'"
+$       i_rp = i_rp + COLUMNS
+$       IF i_rp .LT. len_rp THEN GOTO fastread_rp_loop
+$   ELSE
+$     echo4 "''rp'"
+$   ENDIF
 $ Else
 $   If (.NOT. silent) Then echo ""
-$   READ SYS$COMMAND/PROMPT="''rp'" ans
+$   IF len_rp .GT. 210
+$   THEN
+$     i_rp = 0
+$     firstread_rp_loop:
+$       sub_rp = F$EXTRACT(i_rp,COLUMNS,rp)
+$       echo4 "''sub_rp'"
+$       i_rp = i_rp + COLUMNS
+$       IF i_rp .LT. len_rp THEN GOTO firstread_rp_loop
+$     READ SYS$COMMAND/PROMPT="''sub_rp'" ans
+$   ELSE
+$     READ SYS$COMMAND/PROMPT="''rp'" ans
+$   ENDIF
 $   IF (ans .EQS. "&-d")
 $   THEN
 $     echo4 "(OK, I will run with -d after this question.)"
 $     IF (.NOT. silent) THEN echo ""
-$     READ SYS$COMMAND/PROMPT="''rp'" ans
+$     IF len_rp .GT. 210
+$     THEN
+$       i_rp = 0
+$       secondread_rp_loop:
+$         sub_rp = F$EXTRACT(i_rp,COLUMNS,rp)
+$         echo4 "''sub_rp'"
+$         i_rp = i_rp + COLUMNS
+$         IF i_rp .LT. len_rp THEN GOTO secondread_rp_loop
+$       READ SYS$COMMAND/PROMPT="''sub_rp'" ans
+$     ELSE
+$       READ SYS$COMMAND/PROMPT="''rp'" ans
+$     ENDIF
 $     fastread := yes
 $   ENDIF
 $   IF (ans .EQS. "&-s")
 $   THEN
 $     echo4 "(OK, I will run with -s after this question.)"
 $     echo ""
-$     READ SYS$COMMAND/PROMPT="''rp'" ans
+$     IF len_rp .GT. 210
+$     THEN
+$       i_rp = 0
+$       thirdread_rp_loop:
+$         sub_rp = F$EXTRACT(i_rp,COLUMNS,rp)
+$         echo4 "''sub_rp'"
+$         i_rp = i_rp + COLUMNS
+$         IF i_rp .LT. len_rp THEN GOTO thirdread_rp_loop
+$       READ SYS$COMMAND/PROMPT="''sub_rp'" ans
+$     ELSE
+$       READ SYS$COMMAND/PROMPT="''rp'" ans
+$     ENDIF
 $     silent := true
 $     GOSUB Shut_up
 $   ENDIF
@@ -1141,9 +1196,12 @@ $   ENDIF
 $!
 $ ENDIF !%Config-I-VMS, skip remaining "where install" questions
 $!
-$ perl_symbol = "true"
-$ perl_verb = ""
-$ dflt = "y"
+$ IF F$TYPE(perl_symbol) .EQS. "" THEN perl_symbol := true
+$ IF F$TYPE(perl_verb) .EQS. "" THEN perl_verb = ""
+$ IF perl_symbol
+$ THEN dflt = "y"
+$ ELSE dflt = "n"
+$ ENDIF
 $ IF .NOT.silent 
 $ THEN 
 $   echo ""
@@ -1154,11 +1212,15 @@ $   echo "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 (ans.EQS."") THEN ans = dflt
+$ IF (.NOT.ans) THEN perl_symbol = "false"
 $!
 $ IF (.NOT.perl_symbol)
 $ THEN
-$   dflt = "y"
+$   IF perl_verb .EQS. "DCLTABLES"
+$   THEN dflt = "n"
+$   ELSE dflt = "y"
+$   ENDIF
 $   IF .NOT.silent 
 $   THEN 
 $     echo ""
@@ -1168,7 +1230,8 @@ $     echo "would require write privilege)."
 $   ENDIF
 $   rp = "Invoke perl as a per process command verb? [ ''dflt' ] "
 $   GOSUB myread
-$   IF (.NOT.ans).AND.(ans.NES."")
+$   IF (ans.EQS."") THEN ans = dflt
+$   IF (.NOT.ans)
 $   THEN perl_verb = "DCLTABLES"
 $   ELSE perl_verb = "PROCESS"
 $   ENDIF
@@ -2387,6 +2450,43 @@ $   if ans.eqs."TWO_POT" then use_two_pot_malloc = "Y"
 $   if ans.eqs."PACK_MALLOC" then use_pack_malloc = "Y"
 $ ENDIF
 $!
+$ known_extensions = ""
+$ xxx = ""
+$ OPEN/READ CONFIG 'manifestfound'
+$ext_loop:
+$   READ/END_OF_FILE=end_ext/ERROR=end_ext CONFIG line
+$   IF F$EXTRACT(0,4,line) .NES. "ext/" .AND. -
+       F$EXTRACT(0,8,line) .NES. "vms/ext/" THEN goto ext_loop
+$   line = F$EDIT(line,"COMPRESS")
+$   line = F$ELEMENT(0," ",line)
+$   line_len = F$LENGTH(line)
+$   IF F$EXTRACT(line_len - 12,12,line) .NES. "/Makefile.PL" THEN goto ext_loop
+$   IF F$EXTRACT(0,4,line) .EQS. "ext/" THEN -
+      xxx = F$EXTRACT(4,line_len - 16,line)
+$   IF xxx .EQS. "DynaLoader" THEN goto ext_loop     ! omit
+$   IF xxx .EQS. "SDBM_File/sdbm" THEN goto ext_loop ! sub extension - omit
+$   IF F$EXTRACT(0,8,line) .EQS. "vms/ext/" THEN -
+      xxx = "VMS/" + F$EXTRACT(8,line_len - 20,line)
+$   known_extensions = known_extensions + " ''xxx'"
+$   goto ext_loop
+$end_ext:
+$ close CONFIG
+$ DELETE/SYMBOL xxx
+$ known_extensions = F$EDIT(known_extensions,"TRIM,COMPRESS")
+$ dflt = known_extensions
+$ IF ccname .NES. "DEC" .AND. ccname .NES. "CXX"
+$ THEN
+$   dflt = dflt - "POSIX"             ! not with VAX C or GCC
+$ ENDIF
+$ dflt = dflt - "ByteLoader"          ! needs to be ported
+$ dflt = dflt - "DB_File"             ! needs to be ported
+$ dflt = dflt - "GDBM_File"           ! needs porting/special library
+$ dflt = dflt - "IPC/SysV"            ! needs to be ported
+$ dflt = dflt - "NDBM_File"           ! needs porting/special library
+$ dflt = dflt - "ODBM_File"           ! needs porting/special library
+$ dflt = dflt - "Socket"              ! on VMS is optional static extension
+$ dflt = F$EDIT(dflt,"TRIM,COMPRESS")
+$!
 $! Ask for their default list of extensions to build
 $ echo ""
 $ echo "It is time to specify which modules you want to build into"
@@ -2395,51 +2495,10 @@ $ echo "you might, for example, want to build GDBM_File instead of"
 $ echo "SDBM_File if you have the GDBM library built on your machine."
 $ echo ""
 $ echo "Which modules do you want to build into perl?"
-$! we need to add Byteloader to this list:
-$ dflt = "B Data::Dumper Devel::DProf Devel::Peek Digest::MD5 Encode Errno Fcntl File::Glob Filter::Util::Call IO List::Util MIME::Base64 Opcode PerlIO::Scalar SDBM_File Storable Sys::Hostname Thread Time::HiRes Time::Piece VMS::DCLsym VMS::Stdio XS::Typemap attrs re"
-$ IF ccname .EQS. "DEC" .OR. ccname .EQS. "CXX"
-$ THEN
-$   dflt = dflt + " POSIX"
-$ ENDIF
 $ rp = "[''dflt'] "
 $ GOSUB myread
-$ if ans.eqs."" then ans = "''dflt'"
-$ a = ""
-$ j = 0
-$ xloop1:
-$   x = f$elem(j," ",ans)
-$   j = j + 1
-$   if x .eqs. " " then goto exloop1
-$   xloop2:
-$       k = f$locate("::",x)
-$       if k .ge. f$len(x) then goto exloop2
-$       x = f$extract(0,k,x) + "/" + f$extract(k+2,f$len(x)-2,x)
-$   goto xloop2
-$   exloop2:
-$   a = a + " " + x
-$ goto xloop1
-$ exloop1:
-$ ans = f$edit(a,"trim")
-$!
-$ a = ""
-$ j = 0
-$ xloop3:
-$   x = f$elem(j," ",dflt)
-$   j = j + 1
-$   if x .eqs. " " then goto exloop3
-$   xloop4:
-$       k = f$locate("::",x)
-$       if k .ge. f$len(x) then goto exloop4
-$       x = f$extract(0,k,x) + "/" + f$extract(k+2,f$len(x)-2,x)
-$   goto xloop4
-$   exloop4:
-$   a = a + " " + x
-$ goto xloop3
-$ exloop3:
-$ dflt = f$edit(a,"trim")
-$!
-$ extensions = "''ans'"
-$ known_extensions = "''dflt'"
+$ if ans .eqs. "" then ans = "''dflt'"
+$ extensions = F$EDIT(ans,"TRIM,COMPRESS")
 $!
 $! %Config-I-VMS, determine build/make utility here (make gmake mmk mms)
 $ echo ""
@@ -2665,7 +2724,6 @@ $!  - use built config.sh to take config_h.SH -> config.h
 $!  - also take vms/descrip_mms.template -> descrip.mms (VMS Makefile)
 $!              vms/Makefile.in -> Makefile. (VMS GNU Makefile?)
 $!              vms/Makefile.SH -> Makefile. (VMS GNU Makefile?)
-$!  - build make_ext.com extension builder procedure.
 $!
 $! Note for folks from other platforms changing things in here:
 $!
@@ -4553,6 +4611,22 @@ $   d_fpathconf="undef"
 $   d_sysconf="undef"
 $   d_sigsetjmp="undef"
 $ ENDIF
+$!: see if tzname[] exists
+$ OS
+$ WS "#include <stdio.h>"
+$ WS "#include <time.h>"
+$ WS "int main() { extern short tzname[]; printf(""%hd"", tzname[0]); }"
+$ CS
+$ GOSUB compile_ok
+$ IF compile_status .EQ. good_compile
+$ THEN
+$   d_tzname = "undef"
+$   echo4 "tzname[] NOT found."
+$ ELSE
+$   d_tzname = "define"
+$   echo4 "tzname[] found."
+$ ENDIF
+$ IF F$SEARCH("try.obj") .NES. "" THEN DELETE/NOLOG/NOCONFIRM try.obj;
 $!
 $ IF d_gethname .EQS. "undef" .AND. d_uname .EQS. "undef"
 $ THEN
@@ -5180,7 +5254,7 @@ $ WC "d_telldir='define'"
 $ WC "d_telldirproto='define'"
 $ WC "d_times='define'"
 $ WC "d_truncate='" + d_truncate + "'"
-$ WC "d_tzname='undef'"
+$ WC "d_tzname='" + d_tzname + "'"
 $ WC "d_u32align='define'"
 $ WC "d_ualarm='undef'"
 $ WC "d_umask='define'"
@@ -5213,13 +5287,23 @@ $ WC "dlobj='" + dlobj + "'"
 $ WC "dlsrc='dl_vms.c'"
 $ WC "doublesize='" + doublesize + "'"
 $ WC "drand01='" + drand01 + "'"
-$ WC "dynamic_ext='" + extensions + "'"
+$!
+$! The extensions symbol may be quite long
+$!
+$ tmp = "dynamic_ext='" + extensions + "'"
+$ WC/symbol tmp
+$ DELETE/SYMBOL tmp
 $ WC "eagain=' '"
 $ WC "ebcdic='undef'"
 $ WC "embedmymalloc='" + mymalloc + "'"
 $ WC "eunicefix=':'"
 $ WC "exe_ext='" + exe_ext + "'"
-$ WC "extensions='" + extensions + "'"
+$!
+$! The extensions symbol may be quite long
+$!
+$ tmp = "extensions='" + extensions + "'"
+$ WC/symbol tmp
+$ DELETE/SYMBOL tmp
 $ WC "fflushNULL='define'"
 $ WC "fflushall='undef'"
 $ WC "fpostype='fpos_t'"
@@ -5330,7 +5414,12 @@ $ WC "intsize='" + intsize + "'"
 $ WC "ivdformat='" + ivdformat + "'"
 $ WC "ivsize='" + ivsize + "'"
 $ WC "ivtype='" + ivtype + "'"
-$ WC "known_extensions='" + known_extensions + "'"
+$!
+$! The known_extensions symbol may be quite long
+$!
+$ tmp = "known_extensions='" + known_extensions + "'"
+$ WC/symbol tmp
+$ DELETE/SYMBOL tmp
 $ WC "ld='" + ld + "'"
 $ WC "lddlflags='/Share'"
 $ WC "ldflags='" + ldflags + "'"
@@ -5659,6 +5748,7 @@ $ mcr []munchconfig 'config_sh' 'Makefile_SH' "''DECC_REPLACE'" -
  "''Thread_Live_Dangerously'" "PV=''version'" "FLAGS=FLAGS=''extra_flags'"
 $! Clean up after ourselves
 $ DELETE/NOLOG/NOCONFIRM []munchconfig.exe;
+$!
 $ echo4 "Extracting make_ext.com (without variable substitutions)"
 $ Create Sys$Disk:[-]make_ext.com
 $ Deck/Dollar="$EndOfTpl$"
@@ -5667,17 +5757,31 @@ $!   NOTE: This file is extracted as part of the VMS configuration process.
 $!   Any changes made to it directly will be lost.  If you need to make any
 $!   changes, please edit the template in Configure.Com instead.
 $    def = F$Environment("Default")
-$    exts1 = F$Edit(p1,"Compress")
-$    p2 = F$Edit(p2,"Upcase,Compress,Trim")
-$    If F$Locate("MCR ",p2).eq.0 Then p2 = F$Extract(3,255,p2)
-$    miniperl = "$" + F$Search(F$Parse(p2,".Exe"))
-$    makeutil = p3
-$    if f$type('p3') .nes. "" then makeutil = 'p3'
-$    targ = F$Edit(p4,"Lowercase")
+$!   p1 - how to invoke miniperl (passed in from descrip.mms)
+$    p1 = F$Edit(p1,"Upcase,Compress,Trim")
+$    If F$Locate("MCR ",p1).eq.0 Then p1 = F$Extract(3,255,p1)
+$    miniperl = "$" + F$Search(F$Parse(p1,".Exe"))
+$!   p2 - how to invoke local make utility (passed in from descrip.mms)
+$    makeutil = p2
+$    if f$type('p2') .nes. "" then makeutil = 'p2'
+$!   p3 - make target (passed in from descrip.mms)
+$    targ = F$Edit(p3,"Lowercase")
+$    sts = 1
+$    extensions = ""
+$    open/read CONFIG config.sh
+$ find_ext_loop:
+$    read/end=end_ext_loop CONFIG line
+$    if (f$extract(0,12,line) .NES. "extensions='")
+$    then goto find_ext_loop
+$    else extensions = f$extract(12,f$length(line),line) - "'"
+$    endif
+$ end_ext_loop:
+$    close CONFIG
+$    extensions = f$edit(extensions,"TRIM,COMPRESS")
 $    i = 0
 $ next_ext:
-$    ext = F$Element(i," ",p1)
-$    If ext .eqs. " " Then Goto done
+$    ext = f$element(i," ",extensions)
+$    If ext .eqs. " " .or. ext .eqs. "" Then Goto done
 $    Define/User_mode Perl_Env_Tables CLISYM_LOCAL
 $    miniperl
 $    deck
@@ -5812,6 +5916,8 @@ $ CALL Bad_environment "LIB"
 $ CALL Bad_environment "T"
 $ CALL Bad_environment "FOO"
 $ CALL Bad_environment "EXT"
+$ CALL Bad_environment "SOME_LOGICAL_NAME_NOT_LIKELY"
+$ CALL Bad_environment "DOWN_LOGICAL_NAME_NOT_LIKELY"
 $ CALL Bad_environment "TEST" "SYMBOL"
 $ IF f$search("config.msg") .eqs. "" THEN echo "OK."
 $!
index aabbe22..7979c98 100644 (file)
@@ -231,10 +231,6 @@ XSUBPP = $(MINIPERL) "-I[.ext.re]" [.lib.extutils]xsubpp -noprototypes
 # life easier for those who modify Perl and rebuild it.
 INSTPERL = perl
 
-# Space-separated list of "dynamic" extensions which should be built for
-# run-time dynamic loading.
-dynamic_ext = $extensions
-
 # Space-separated list of "static" extensions to build into perlshr (case counts).
 MYEXT = DynaLoader
 # object files for these extensions; the trailing comma is required if
@@ -388,7 +384,9 @@ pod18 = [.lib.pod]perlthrtut.pod [.lib.pod]perltie.pod [.lib.pod]perltoc.pod
 pod19 = [.lib.pod]perltodo.pod [.lib.pod]perltoot.pod [.lib.pod]perltootc.pod
 pod20 = [.lib.pod]perltrap.pod [.lib.pod]perlunicode.pod [.lib.pod]perlvar.pod
 pod21 = [.lib.pod]perlxs.pod [.lib.pod]perlxstut.pod [.lib.pod]win32.pod [.lib.pod]perlvms.pod
-pod = $(pod0) $(pod1) $(pod2) $(pod3) $(pod4) $(pod5) $(pod6) $(pod7) $(pod8) $(pod9) $(pod10) $(pod11) $(pod12) $(pod13) $(pod14) $(pod15) $(pod16) $(pod17) $(pod18) $(pod19) $(pod20) $(pod21)
+pod22 = [.lib.pod]perldebguts.pod [.lib.pod]perldebtut.pod [.lib.pod]perlebcdic.pod [.lib.pod]perliol.pod
+pod23 = [.lib.pod]perlnewmod.pod [.lib.pod]perlnumber.pod [.lib.pod]perlrequick.pod [.lib.pod]perlretut.pod [.lib.pod]perlutil.pod
+pod = $(pod0) $(pod1) $(pod2) $(pod3) $(pod4) $(pod5) $(pod6) $(pod7) $(pod8) $(pod9) $(pod10) $(pod11) $(pod12) $(pod13) $(pod14) $(pod15) $(pod16) $(pod17) $(pod18) $(pod19) $(pod20) $(pod21) $(pod22) $(pod23)
 
 perlpods : $(pod)
        @ $(NOOP)
@@ -497,7 +495,7 @@ $(ARCHDIR)vmspipe.com : vmspipe.com
        @ Rename/Log xsloader.pm [.ext.dynaloader]
 
 dynext : $(LIBPREREQ) $(DBG)perlshr$(E)
-       @make_ext "$(dynamic_ext)" "$(MINIPERL_EXE)" "$(MMS)"
+       @make_ext "$(MINIPERL_EXE)" "$(MMS)"
 
 [.lib]vmsish.pm : [.vms.ext]vmsish.pm
        Copy/Log/NoConfirm $(MMS$SOURCE) $(MMS$TARGET)
@@ -659,6 +657,12 @@ preplibrary : $(MINIPERL_EXE) $(LIBPREREQ) $(SOCKPM)
 [.lib.pod]perldebug.pod : [.pod]perldebug.pod
        @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
        Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
+[.lib.pod]perldebguts.pod : [.pod]perldebguts.pod
+       @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
+       Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
+[.lib.pod]perldebtut.pod : [.pod]perldebtut.pod
+       @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
+       Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
 [.lib.pod]perldelta.pod : [.pod]perldelta.pod
        @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
        Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
@@ -668,6 +672,9 @@ preplibrary : $(MINIPERL_EXE) $(LIBPREREQ) $(SOCKPM)
 [.lib.pod]perldsc.pod : [.pod]perldsc.pod
        @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
        Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
+[.lib.pod]perlebcdic.pod : [.pod]perlebcdic.pod
+       @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
+       Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
 [.lib.pod]perlembed.pod : [.pod]perlembed.pod
        @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
        Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
@@ -725,6 +732,9 @@ preplibrary : $(MINIPERL_EXE) $(LIBPREREQ) $(SOCKPM)
 [.lib.pod]perlintern.pod : [.pod]perlintern.pod
        @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
        Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
+[.lib.pod]perliol.pod : [.pod]perliol.pod
+       @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
+       Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
 [.lib.pod]perlipc.pod : [.pod]perlipc.pod
        @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
        Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
@@ -746,6 +756,12 @@ preplibrary : $(MINIPERL_EXE) $(LIBPREREQ) $(SOCKPM)
 [.lib.pod]perlmodlib.pod : [.pod]perlmodlib.pod
        @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
        Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
+[.lib.pod]perlnewmod.pod : [.pod]perlnewmod.pod
+       @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
+       Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
+[.lib.pod]perlnumber.pod : [.pod]perlnumber.pod
+       @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
+       Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
 [.lib.pod]perlobj.pod : [.pod]perlobj.pod
        @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
        Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
@@ -770,6 +786,12 @@ preplibrary : $(MINIPERL_EXE) $(LIBPREREQ) $(SOCKPM)
 [.lib.pod]perlreftut.pod : [.pod]perlreftut.pod
        @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
        Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
+[.lib.pod]perlrequick.pod : [.pod]perlrequick.pod
+       @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
+       Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
+[.lib.pod]perlretut.pod : [.pod]perlretut.pod
+       @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
+       Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
 [.lib.pod]perlrun.pod : [.pod]perlrun.pod
        @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
        Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
@@ -809,6 +831,9 @@ preplibrary : $(MINIPERL_EXE) $(LIBPREREQ) $(SOCKPM)
 [.lib.pod]perlunicode.pod : [.pod]perlunicode.pod
        @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
        Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
+[.lib.pod]perlutil.pod : [.pod]perlutil.pod
+       @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
+       Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
 [.lib.pod]perlvar.pod : [.pod]perlvar.pod
        @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
        Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
@@ -1255,7 +1280,7 @@ tidy : cleanlis
        - If F$Search("[.lib.pod]*.com;-1").nes."" Then Purge/NoConfirm/Log [.lib.pod]*.com
 
 clean : tidy cleantest
-       - @make_ext "$(dynamic_ext)" "$(MINIPERL_EXE)" "$(MMS)" clean
+       - @make_ext "$(MINIPERL_EXE)" "$(MMS)" clean
        - If F$Search("*.Opt").nes."" Then Delete/NoConfirm/Log *.Opt;*/Exclude=PerlShr_*.Opt
        - If F$Search("[...]*$(O);*") .nes."" Then Delete/NoConfirm/Log [...]*$(O);*
        - If F$Search(F$Parse("Sys$Disk:[]","$(SOCKH)")).nes."" Then Delete/NoConfirm/Log $(SOCKH);*
@@ -1281,7 +1306,7 @@ clean : tidy cleantest
        - @extra_pods CLEAN
 
 realclean : clean
-       - @make_ext "$(dynamic_ext)" "$(MINIPERL_EXE)" "$(MMS)" realclean
+       - @make_ext "$(MINIPERL_EXE)" "$(MMS)" realclean
        - If F$Search("*$(OLB)").nes."" Then Delete/NoConfirm/Log *$(OLB);*
        - If F$Search("*.Opt").nes."" Then Delete/NoConfirm/Log *.Opt;*
        - If F$Search("Config.H").nes."" Then Delete/NoConfirm/Log Config.H;*
index 779396b..452c72e 100644 (file)
@@ -68,29 +68,29 @@ print +(rmdir('testdir/') ? 'ok ' : 'not ok '),++$idx,"\n";
 __DATA__
 
 # Basic VMS to Unix filespecs
-some:[where.over]the.rainbow   unixify /some/where/over/the.rainbow
-[.some.where.over]the.rainbow  unixify some/where/over/the.rainbow
-[-.some.where.over]the.rainbow unixify ../some/where/over/the.rainbow
-[.some.--.where.over]the.rainbow       unixify some/../../where/over/the.rainbow
-[.some...where.over]the.rainbow        unixify some/.../where/over/the.rainbow
-[...some.where.over]the.rainbow        unixify .../some/where/over/the.rainbow
-[.some.where.over...]the.rainbow       unixify some/where/over/.../the.rainbow
-[.some.where.over...]  unixify some/where/over/.../
-[.some.where.over.-]   unixify some/where/over/../
+some_logical_name_not_likely:[where.over]the.rainbow   unixify /some_logical_name_not_likely/where/over/the.rainbow
+[.some_logical_name_not_likely.where.over]the.rainbow  unixify some_logical_name_not_likely/where/over/the.rainbow
+[-.some_logical_name_not_likely.where.over]the.rainbow unixify ../some_logical_name_not_likely/where/over/the.rainbow
+[.some_logical_name_not_likely.--.where.over]the.rainbow       unixify some_logical_name_not_likely/../../where/over/the.rainbow
+[.some_logical_name_not_likely...where.over]the.rainbow        unixify some_logical_name_not_likely/.../where/over/the.rainbow
+[...some_logical_name_not_likely.where.over]the.rainbow        unixify .../some_logical_name_not_likely/where/over/the.rainbow
+[.some_logical_name_not_likely.where.over...]the.rainbow       unixify some_logical_name_not_likely/where/over/.../the.rainbow
+[.some_logical_name_not_likely.where.over...]  unixify some_logical_name_not_likely/where/over/.../
+[.some_logical_name_not_likely.where.over.-]   unixify some_logical_name_not_likely/where/over/../
 []     unixify         ./
 [-]    unixify         ../
 [--]   unixify         ../../
 [...]  unixify         .../
 
 # and back again
-/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/... vmsify  [.some.where...]
+/some_logical_name_not_likely/where/over/the.rainbow   vmsify  some_logical_name_not_likely:[where.over]the.rainbow
+some_logical_name_not_likely/where/over/the.rainbow    vmsify  [.some_logical_name_not_likely.where.over]the.rainbow
+../some_logical_name_not_likely/where/over/the.rainbow vmsify  [-.some_logical_name_not_likely.where.over]the.rainbow
+some_logical_name_not_likely/../../where/over/the.rainbow      vmsify  [-.where.over]the.rainbow
+.../some_logical_name_not_likely/where/over/the.rainbow        vmsify  [...some_logical_name_not_likely.where.over]the.rainbow
+some_logical_name_not_likely/.../where/over/the.rainbow        vmsify  [.some_logical_name_not_likely...where.over]the.rainbow
+/some_logical_name_not_likely/.../where/over/the.rainbow       vmsify  some_logical_name_not_likely:[...where.over]the.rainbow
+some_logical_name_not_likely/where/... vmsify  [.some_logical_name_not_likely.where...]
 /where/...     vmsify  where:[...]
 .      vmsify  []
 ..     vmsify  [-]
@@ -99,48 +99,48 @@ some/where/...      vmsify  [.some.where...]
 /      vmsify  sys$disk:[000000]
 
 # Fileifying directory specs
-down:[the.garden.path] fileify down:[the.garden]path.dir;1
-[.down.the.garden.path]        fileify [.down.the.garden]path.dir;1
-/down/the/garden/path  fileify /down/the/garden/path.dir;1
-/down/the/garden/path/ fileify /down/the/garden/path.dir;1
-down/the/garden/path   fileify down/the/garden/path.dir;1
-down:[the.garden]path  fileify down:[the.garden]path.dir;1
-down:[the.garden]path. fileify # N.B. trailing . ==> null type
-down:[the]garden.path  fileify 
-/down/the/garden/path. fileify # N.B. trailing . ==> null type
-/down/the/garden.path  fileify 
+down_logical_name_not_likely:[the.garden.path] fileify down_logical_name_not_likely:[the.garden]path.dir;1
+[.down_logical_name_not_likely.the.garden.path]        fileify [.down_logical_name_not_likely.the.garden]path.dir;1
+/down_logical_name_not_likely/the/garden/path  fileify /down_logical_name_not_likely/the/garden/path.dir;1
+/down_logical_name_not_likely/the/garden/path/ fileify /down_logical_name_not_likely/the/garden/path.dir;1
+down_logical_name_not_likely/the/garden/path   fileify down_logical_name_not_likely/the/garden/path.dir;1
+down_logical_name_not_likely:[the.garden]path  fileify down_logical_name_not_likely:[the.garden]path.dir;1
+down_logical_name_not_likely:[the.garden]path. fileify # N.B. trailing . ==> null type
+down_logical_name_not_likely:[the]garden.path  fileify 
+/down_logical_name_not_likely/the/garden/path. fileify # N.B. trailing . ==> null type
+/down_logical_name_not_likely/the/garden.path  fileify 
 
 # and pathifying them
-down:[the.garden]path.dir;1    pathify down:[the.garden.path]
-[.down.the.garden]path.dir     pathify [.down.the.garden.path]
-/down/the/garden/path.dir      pathify /down/the/garden/path/
-down/the/garden/path.dir       pathify down/the/garden/path/
-down:[the.garden]path  pathify down:[the.garden.path]
-down:[the.garden]path. pathify # N.B. trailing . ==> null type
-down:[the]garden.path  pathify 
-/down/the/garden/path. pathify # N.B. trailing . ==> null type
-/down/the/garden.path  pathify 
-down:[the.garden]path.dir;2    pathify #N.B. ;2
+down_logical_name_not_likely:[the.garden]path.dir;1    pathify down_logical_name_not_likely:[the.garden.path]
+[.down_logical_name_not_likely.the.garden]path.dir     pathify [.down_logical_name_not_likely.the.garden.path]
+/down_logical_name_not_likely/the/garden/path.dir      pathify /down_logical_name_not_likely/the/garden/path/
+down_logical_name_not_likely/the/garden/path.dir       pathify down_logical_name_not_likely/the/garden/path/
+down_logical_name_not_likely:[the.garden]path  pathify down_logical_name_not_likely:[the.garden.path]
+down_logical_name_not_likely:[the.garden]path. pathify # N.B. trailing . ==> null type
+down_logical_name_not_likely:[the]garden.path  pathify 
+/down_logical_name_not_likely/the/garden/path. pathify # N.B. trailing . ==> null type
+/down_logical_name_not_likely/the/garden.path  pathify 
+down_logical_name_not_likely:[the.garden]path.dir;2    pathify #N.B. ;2
 path   pathify path/
-/down/the/garden/.     pathify /down/the/garden/./
-/down/the/garden/..    pathify /down/the/garden/../
-/down/the/garden/...   pathify /down/the/garden/.../
+/down_logical_name_not_likely/the/garden/.     pathify /down_logical_name_not_likely/the/garden/./
+/down_logical_name_not_likely/the/garden/..    pathify /down_logical_name_not_likely/the/garden/../
+/down_logical_name_not_likely/the/garden/...   pathify /down_logical_name_not_likely/the/garden/.../
 path.notdir    pathify 
 
 # Both VMS/Unix and file/path conversions
-down:[the.garden]path.dir;1    unixpath        /down/the/garden/path/
-/down/the/garden/path  vmspath down:[the.garden.path]
-down:[the.garden.path] unixpath        /down/the/garden/path/
-down:[the.garden.path...]      unixpath        /down/the/garden/path/.../
-/down/the/garden/path.dir      vmspath down:[the.garden.path]
-[.down.the.garden]path.dir     unixpath        down/the/garden/path/
-down/the/garden/path   vmspath [.down.the.garden.path]
+down_logical_name_not_likely:[the.garden]path.dir;1    unixpath        /down_logical_name_not_likely/the/garden/path/
+/down_logical_name_not_likely/the/garden/path  vmspath down_logical_name_not_likely:[the.garden.path]
+down_logical_name_not_likely:[the.garden.path] unixpath        /down_logical_name_not_likely/the/garden/path/
+down_logical_name_not_likely:[the.garden.path...]      unixpath        /down_logical_name_not_likely/the/garden/path/.../
+/down_logical_name_not_likely/the/garden/path.dir      vmspath down_logical_name_not_likely:[the.garden.path]
+[.down_logical_name_not_likely.the.garden]path.dir     unixpath        down_logical_name_not_likely/the/garden/path/
+down_logical_name_not_likely/the/garden/path   vmspath [.down_logical_name_not_likely.the.garden.path]
 path   vmspath [.path]
 /      vmspath sys$disk:[000000]
 
 # Redundant characters in Unix paths
-//some/where//over/../the.rainbow      vmsify  some:[where]the.rainbow
-/some/where//over/./the.rainbow        vmsify  some:[where.over]the.rainbow
+//some_logical_name_not_likely/where//over/../the.rainbow      vmsify  some_logical_name_not_likely:[where]the.rainbow
+/some_logical_name_not_likely/where//over/./the.rainbow        vmsify  some_logical_name_not_likely:[where.over]the.rainbow
 ..//../        vmspath [--]
 ./././ vmspath []
 ./../. vmsify  [-]