diff options
author | Gurusamy Sarathy <gsar@cpan.org> | 1998-05-14 22:24:26 +0000 |
---|---|---|
committer | Gurusamy Sarathy <gsar@cpan.org> | 1998-05-14 22:24:26 +0000 |
commit | 6ee623d521a149edc6574c512fa951a192cd086a (patch) | |
tree | 3d769839caf246d24053d0f49b4f48aed590e031 /vms | |
parent | 20408e3ccf502b6ce4033d8203710405ec9ef8f6 (diff) | |
download | perl-6ee623d521a149edc6574c512fa951a192cd086a.tar.gz |
[win32] integrate mainline
p4raw-id: //depot/win32/perl@973
Diffstat (limited to 'vms')
-rw-r--r-- | vms/config.vms | 51 | ||||
-rw-r--r-- | vms/descrip.mms | 70 | ||||
-rw-r--r-- | vms/ext/DCLsym/Makefile.PL | 3 | ||||
-rw-r--r-- | vms/ext/Stdio/Makefile.PL | 4 | ||||
-rw-r--r-- | vms/ext/Stdio/Stdio.xs | 1 | ||||
-rw-r--r-- | vms/genconfig.pl | 4 | ||||
-rw-r--r-- | vms/perlvms.pod | 35 |
7 files changed, 152 insertions, 16 deletions
diff --git a/vms/config.vms b/vms/config.vms index 39c7e50912..9614ea60c3 100644 --- a/vms/config.vms +++ b/vms/config.vms @@ -11,7 +11,7 @@ * Version: 5.005 */ -/* Configuration time: 7-Mar-1998 16:30 +/* Configuration time: 4-Apr-1998 21:30 * Configured by: Charles Bailey bailey@newman.upenn.edu * Target system: VMS */ @@ -76,7 +76,7 @@ * when Perl is built. Please do not change it by hand; make * any changes to FndVers.Com instead. */ -#define ARCHLIB_EXP "/perl_root/lib/VMS_VAX/5_00463" /**/ +#define ARCHLIB_EXP "/perl_root/lib/VMS_VAX/5_00464" /**/ #define ARCHLIB ARCHLIB_EXP /*config-skip*/ @@ -257,6 +257,16 @@ # define LONG_DOUBLESIZE 8 /**/ #endif +/* LONGLONGSIZE: + * This symbol contains the size of a long long, so that the + * C preprocessor can make decisions based on it. It is only + * defined if the system supports long long. + */ +#undef HAS_LONG_LONG /**/ +#ifdef HAS_LONG_LONG +#define LONGLONGSIZE 8 /**/ +#endif + /* HAS_MKSTEMP: * This symbol, if defined, indicates that the mkstemp routine is * available to create and open a unique temporary file. @@ -822,6 +832,7 @@ #undef PWCHANGE /**/ #undef PWCLASS /**/ #undef PWEXPIRE /**/ +#define PWGECOS /**/ #define PWCOMMENT /**/ /* I_STDDEF: @@ -2105,6 +2116,38 @@ */ #define HAS_ENDSERVENT /*config-skip*/ +/* HAS_GETHOST_PROTOS: + * This symbol, if defined, indicates that <netdb.h> includes + * prototypes for gethostent(), gethostbyname(), and + * gethostbyaddr(). Otherwise, it is up to the program to guess + * them. See netdbtype.U for probing for various Netdb_xxx_t types. + */ +#define HAS_GETHOST_PROTOS /*config-skip*/ + +/* HAS_GETNET_PROTOS: + * This symbol, if defined, indicates that <netdb.h> includes + * prototypes for getnetent(), getnetbyname(), and + * getnetbyaddr(). Otherwise, it is up to the program to guess + * them. See netdbtype.U for probing for various Netdb_xxx_t types. + */ +#define HAS_GETNET_PROTOS /*config-skip*/ + +/* HAS_GETPROTO_PROTOS: + * This symbol, if defined, indicates that <netdb.h> includes + * prototypes for getprotoent(), getprotobyname(), and + * getprotobyaddr(). Otherwise, it is up to the program to guess + * them. See netdbtype.U for probing for various Netdb_xxx_t types. + */ +#define HAS_GETPROTO_PROTOS /*config-skip*/ + +/* HAS_GETSERV_PROTOS: + * This symbol, if defined, indicates that <netdb.h> includes + * prototypes for getservent(), getservbyname(), and + * getservbyaddr(). Otherwise, it is up to the program to guess + * them. See netdbtype.U for probing for various Netdb_xxx_t types. + */ +#define HAS_GETSERV_PROTOS /*config-skip*/ + #else /* VMS_DO_SOCKETS */ #undef HAS_SOCKET /*config-skip*/ @@ -2133,6 +2176,10 @@ #undef HAS_GETSERVENT /*config-skip*/ #undef HAS_SETSERVENT /*config-skip*/ #undef HAS_ENDSERVENT /*config-skip*/ +#undef HAS_GETHOST_PROTOS /*config-skip*/ +#undef HAS_GETNET_PROTOS /*config-skip*/ +#undef HAS_GETPROTO_PROTOS /*config-skip*/ +#undef HAS_GETSERV_PROTOS /*config-skip*/ #endif /* !VMS_DO_SOCKETS */ diff --git a/vms/descrip.mms b/vms/descrip.mms index b8062318c6..a7fbf3d1bf 100644 --- a/vms/descrip.mms +++ b/vms/descrip.mms @@ -347,7 +347,7 @@ all : base extras x2p archcorefiles preplibrary perlpods .endif base : miniperl perl @ $(NOOP) -extras : Fcntl IO Opcode attrs B $(POSIX) $(THREAD) SDBM_File libmods utils podxform +extras : Fcntl IO Opcode attrs Stdio DCLsym B $(POSIX) $(THREAD) SDBM_File libmods utils podxform @ $(NOOP) libmods : $(LIBPREREQ) @ $(NOOP) @@ -512,6 +512,50 @@ Fcntl : [.lib]Fcntl.pm [.lib.auto.Fcntl]Fcntl$(E) [.ext.Fcntl]Descrip.MMS : [.ext.Fcntl]Makefile.PL $(LIBPREREQ) $(DBG)perlshr$(E) $(MINIPERL) "-I[--.lib]" -e "chdir('[.ext.Fcntl]') or die $!; do 'Makefile.PL'; print ${@} if ${@};" "INST_LIB=[--.lib]" "INST_ARCHLIB=[--.lib]" +Stdio : [.lib.vms]Stdio.pm [.lib.auto.vms.Stdio]Stdio$(E) [.t.lib]vms_stdio.t + @ $(NOOP) + +[.lib.vms]Stdio.pm : [.vms.ext.stdio]Descrip.MMS + @ If F$Search("[.lib]auto.dir").eqs."" Then Create/Directory [.lib.auto] + @ Set Default [.vms.ext.Stdio] + $(MMS) + @ Set Default [---] + +[.lib.auto.vms.Stdio]Stdio$(E) : [.vms.ext.Stdio]Descrip.MMS + @ Set Default [.vms.ext.Stdio] + $(MMS) + @ Set Default [---] + +[.t.lib]vms_stdio.t : [.vms.ext.Stdio]test.pl + Copy/Log $(MMS$SOURCE) $(MMS$TARGET) + +# Add "-I[--.lib]" t $(MINIPERL) so we use this copy of lib after C<chdir> +# ${@} necessary to distract different versions of MM[SK]/make +[.vms.ext.stdio]Descrip.MMS : [.vms.ext.Stdio]Makefile.PL $(LIBPREREQ) $(DBG)perlshr$(E) + $(MINIPERL) "-I[---.lib]" -e "chdir('[.vms.ext.Stdio]') or die $!; do 'Makefile.PL'; print ${@} if ${@};" "INST_LIB=[---.lib]" "INST_ARCHLIB=[---.lib]" + +DCLsym : [.lib.vms]DCLsym.pm [.lib.auto.vms.DCLsym]DCLsym$(E) [.t.lib]vms_dclsym.t + @ $(NOOP) + +[.lib.vms]DCLsym.pm : [.vms.ext.dclsym]Descrip.MMS + @ If F$Search("[.lib]auto.dir").eqs."" Then Create/Directory [.lib.auto] + @ Set Default [.vms.ext.DCLsym] + $(MMS) + @ Set Default [---] + +[.lib.auto.vms.DCLsym]DCLsym$(E) : [.vms.ext.DCLsym]Descrip.MMS + @ Set Default [.vms.ext.DCLsym] + $(MMS) + @ Set Default [---] + +[.t.lib]vms_dclsym.t : [.vms.ext.DCLsym]test.pl + Copy/Log $(MMS$SOURCE) $(MMS$TARGET) + +# Add "-I[--.lib]" t $(MINIPERL) so we use this copy of lib after C<chdir> +# ${@} necessary to distract different versions of MM[SK]/make +[.vms.ext.DCLsym]Descrip.MMS : [.vms.ext.DCLsym]Makefile.PL $(LIBPREREQ) $(DBG)perlshr$(E) + $(MINIPERL) "-I[---.lib]" -e "chdir('[.vms.ext.DCLsym]') or die $!; do 'Makefile.PL'; print ${@} if ${@};" "INST_LIB=[---.lib]" "INST_ARCHLIB=[---.lib]" + attrs : [.lib]attrs.pm [.lib.auto.attrs]attrs$(E) @ $(NOOP) @@ -1363,9 +1407,15 @@ clean : tidy - $(MMS) clean Set Default [--] .endif - Set Default [.ext.SDBM_File] - - $(MMS) clean - Set Default [--] + Set Default [.ext.SDBM_File] + - $(MMS) clean + Set Default [--] + Set Default [.vms.ext.Stdio] + - $(MMS) clean + Set Default [---] + Set Default [.vms.ext.DCLsym] + - $(MMS) clean + Set Default [---] - 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("Config.H").nes."" Then Delete/NoConfirm/Log Config.H;* @@ -1414,9 +1464,15 @@ realclean : clean - $(MMS) realclean Set Default [--] .endif - Set Default [.ext.SDBM_File] - - $(MMS) realclean - Set Default [--] + Set Default [.ext.SDBM_File] + - $(MMS) realclean + Set Default [--] + Set Default [.vms.ext.Stdio] + - $(MMS) clean + Set Default [---] + Set Default [.vms.ext.DCLsym] + - $(MMS) clean + Set Default [---] - If F$Search("*$(OLB)").nes."" Then Delete/NoConfirm/Log *$(OLB);* - If F$Search("*.Opt").nes."" Then Delete/NoConfirm/Log *.Opt;* - $(MINIPERL) -e "use File::Path; rmtree(['lib/auto','lib/VMS','lib/$(ARCH)'],1,0);" diff --git a/vms/ext/DCLsym/Makefile.PL b/vms/ext/DCLsym/Makefile.PL index 8e6f5bce40..84ab2be2b5 100644 --- a/vms/ext/DCLsym/Makefile.PL +++ b/vms/ext/DCLsym/Makefile.PL @@ -1,3 +1,4 @@ use ExtUtils::MakeMaker; -WriteMakefile( 'VERSION_FROM' => 'DCLsym.pm' ); +WriteMakefile( 'VERSION_FROM' => 'DCLsym.pm', + 'MAN3PODS' => ' '); diff --git a/vms/ext/Stdio/Makefile.PL b/vms/ext/Stdio/Makefile.PL index e5ea988818..f5599f8a96 100644 --- a/vms/ext/Stdio/Makefile.PL +++ b/vms/ext/Stdio/Makefile.PL @@ -1,3 +1,5 @@ use ExtUtils::MakeMaker; -WriteMakefile( 'VERSION_FROM' => 'Stdio.pm' ); +WriteMakefile( 'VERSION_FROM' => 'Stdio.pm', + 'MAN3PODS' => ' ', # pods will be built later + ); diff --git a/vms/ext/Stdio/Stdio.xs b/vms/ext/Stdio/Stdio.xs index 0a7b47e514..9744be04f2 100644 --- a/vms/ext/Stdio/Stdio.xs +++ b/vms/ext/Stdio/Stdio.xs @@ -87,6 +87,7 @@ newFH(FILE *fp, char type) { HV *stash; IO *io; + dTHR; /* Find stash for VMS::Stdio. We don't do this once at boot * to allow for possibility of threaded Perl with per-thread * symbol tables. This code (through io = ...) is really diff --git a/vms/genconfig.pl b/vms/genconfig.pl index 4e0cf31655..45f50cad5f 100644 --- a/vms/genconfig.pl +++ b/vms/genconfig.pl @@ -190,6 +190,10 @@ foreach (@ARGV) { print OUT "netdb_name_type=",$dosock ? "'char *'\n" : "'undef'\n"; print OUT "netdb_host_type=",$dosock ? "'char *'\n" : "'undef'\n"; print OUT "netdb_hlen_type=",$dosock ? "'int'\n" : "'undef'\n"; + print OUT "d_gethostprotos=",$dosock ? "'define'\n" : "'undef'\n"; + print OUT "d_getnetprotos=",$dosock ? "'define'\n" : "'undef'\n"; + print OUT "d_getservprotos=",$dosock ? "'define'\n" : "'undef'\n"; + print OUT "d_getprotoprotos=",$dosock ? "'define'\n" : "'undef'\n"; if ($dosock and $cctype eq 'decc' and $ccflags =~ /DECCRTL_SOCKETS/) { print OUT "selecttype='fd_set'\n"; diff --git a/vms/perlvms.pod b/vms/perlvms.pod index 4aa68008d5..89c4bbf623 100644 --- a/vms/perlvms.pod +++ b/vms/perlvms.pod @@ -663,12 +663,20 @@ list logical names. For instance, if you say Perl will print C<ONCE UPON A TIME THERE WAS>. -The %ENV keys C<home>, C<path>,C<term>, and C<user> -return the CRTL "environment variables" of the same -names, if these logical names are not defined. The -key C<default> returns the current default device +The key C<default> returns the current default device and directory specification, regardless of whether -there is a logical name DEFAULT defined.. +there is a logical name DEFAULT defined. If you try to +read an element of %ENV for which there is no corresponding +logical name, and for which no corresponding CLI symbol +exists (this is to identify "blocking" symbols only; to +manipulate CLI symbols, see L<VMS::DCLSym>) then the key +will be looked up in the CRTL-local environment array, and +the corresponding value, if any returned. This lets you +get at C-specific keys like C<home>, C<path>,C<term>, and +C<user>, as well as other keys which may have been passed +directly into the C-specific array if Perl was called from +another C program using the version of execve() or execle() +present in recent revisions of the DECCRTL. Setting an element of %ENV defines a supervisor-mode logical name in the process logical name table. C<Undef>ing or @@ -680,6 +688,23 @@ logical name translation after the deletion, so an inner-mode logical name or a name in another logical name table will replace the logical name just deleted. It is not possible at present to define a search list logical name via %ENV. +It is also not possible to delete an element from the +C-local environ array. + +Note that if you want to pass on any elements of the +C-local environ array to a subprocess which isn't +started by fork/exec, or isn't running a C program, you +can "promote" them to logical names in the current +process, which will then be inherited by all subprocesses, +by saying + + foreach my $key (qw[C-local keys you want promoted]) { + my $temp = $ENV{$key}; # read from C-local array + $ENV{$key} = $temp; # and define as logical name + } + +(You can't just say C<$ENV{$key} = $ENV{$key}>, since the +Perl optimizer is smart enough to elide the expression.) At present, the first time you iterate over %ENV using C<keys>, or C<values>, you will incur a time penalty as all |