This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Message-Id: <200107051755.NAA21422@bottesini.harvard.edu>
[perl5.git] / README.vos
CommitLineData
9a997319
JH
1If you read this file _as_is_, just ignore the funny characters you
2see. It is written in the POD format (see pod/perlpod.pod) which is
3specially designed to be readable as is.
4
5=head1 NAME
6
7README.vos - Perl for Stratus VOS
8
9=head1 SYNOPSIS
24e8e380 10
9a997319
JH
11This is a port of Perl version 5, revision 7, to VOS. Perl is a
12scripting or macro language that is popular on many systems. See your
13local computer bookstore for a number of good books on Perl.
495c5fdc 14
9a997319 15=head2 Stratus POSIX Support
495c5fdc 16
5b8c1387
JH
17Note that there are two different implementations of POSIX.1
18support on VOS. There is an alpha version of POSIX that is
19available from the Stratus anonymous ftp site
20(ftp://ftp.stratus.com/pub/vos/posix/alpha/alpha.html). There
21is a generally-available version of POSIX that comes with the
22VOS Standard C compiler and C runtime in VOS Release 14.3.0 or
23higher. This port of POSIX will compile and bind with either
24version of POSIX.
25
26Most of the Perl features should work on VOS regardless of which
27version of POSIX that you are using. However, the alpha version
28of POSIX is missing a number of key functions, and therefore any
495c5fdc
GP
29attempt by perl.pm to call the following unimplemented POSIX
30functions will result in an error message and an immediate and
24e8e380
GS
31fatal call to the VOS debugger. They are "dup", "fork", and
32"waitpid". The lack of these functions pretty much prevents you
33from starting VOS commands and grabbing their output in perl.
34The workaround is to run the commands outside of perl, then have
5b8c1387
JH
35perl process the output file. These functions are all available
36in the generally-available version of POSIX.
24e8e380 37
9a997319
JH
38=head1 INSTALLING PERL IN VOS
39
40=head2 Compiling Perl 5 on VOS
495c5fdc 41
495c5fdc
GP
42Before you can build Perl 5 on VOS, you need to have or acquire the
43following additional items.
44
9a997319
JH
45=over 5
46
47=item 1
48
0d6ca59a
JH
49The VOS Standard C Compiler (or the VOS Standard C
50Cross-Compiler) and the VOS C Runtime. If you are using
51the generally-available version of POSIX support, you may
52instead use the the VOS GNU C/C++ Compiler. These are
53standard Stratus products.
9a997319
JH
54
55=item 2
56
57Either the VOS OS TCP/IP or STCP product set. If you are
58building with the alpha version of POSIX you need the OS
59TCP/IP product set. If you are building with the
60generally-available version of POSIX you need the STCP
61product set. These are standard Stratus products.
62
63=item 3
64
65Either the alpha or generally-available version of the VOS
66POSIX.1 environment.
67
68The alpha version of POSIX.1 support is available on the
69Stratus FTP site. Login anonymously to ftp.stratus.com and
70get the file /pub/vos/posix/alpha/posix.save.evf.gz in
71binary file-transfer mode. Or use the Uniform Resource
72Locator (URL)
73ftp://ftp.stratus.com/pub/vos/alpha/posix.save.evf.gz from
74your web browser. Instructions for unbundling this file
75are at ftp://ftp.stratus.com/pub/vos/utility/utility.html.
76This is not a standard Stratus product.
77
0d6ca59a
JH
78In VOS Release 14.3.0, the generally-available version of
79POSIX.1 support is bundled with the VOS Standard C compiler
80(or Standard C Cross-Compiler). In VOS Release 14.4.0 or
81higher, it is also bundled with the VOS C Runtime. These
82are standard Stratus products.
9a997319
JH
83
84=item 4
85
86You must compile this version of Perl 5 on VOS Release
8714.1.0 or higher because some of the perl source files
88contain more than 32,767 source lines. Due to VOS
89release-compatibility rules, this port of perl may not
90execute on VOS Release 12 or earlier.
91
0d6ca59a
JH
92=item 5
93
94If you are using the generally-available version of VOS
95POSIX support, then you should also acquire the VOS GNU
96C/C++ Compiler and GNU Tools product. When perl is built
97with this version of POSIX support, it assumes that it can
98find "bash", "sed" and other POSIX-compatible commands in
99the directory /system/gnu_library/bin.
100
9a997319 101=back
24e8e380
GS
102
103To build perl 5, change to the "vos" subdirectory and type the
104command "compile_perl -processor X", where X is the processor
105type (mc68020, i80860, pa7100, pa8000) that you wish to use.
5b8c1387
JH
106Note that the generally-available version of POSIX.1 support is
107not available for the mc68020 or i80860 processors.
108
0d6ca59a
JH
109Use the "-version alpha" control argument to build perl with
110the alpha version of POSIX support, and use the "-version
111ga" control argument to build it with the
112generally-available version of POSIX. The default is "ga".
113
114Use the "-compiler cc" control argument to build perl with
115the VOS Standard C compiler. Use the "-compiler gcc"
116control argument to build it with the GNU GCC compiler. The
117default is "cc".
118
5b8c1387
JH
119You must have purchased the VOS Standard C Cross Compiler in
120order to compile perl for a processor type that is different
121from the processor type of the module.
122
24e8e380 123Note that code compiled for the pa7100 processor type can
5b8c1387
JH
124execute on the PA7100, PA8000, PA8500 and PA8600 processors, and
125that code compiled for the pa8000 processor type can execute on
126the PA8000, PA8500 and PA8600 processors.
24e8e380 127
9a997319 128=head2 Installing Perl 5 on VOS
24e8e380 129
9a997319 130=over 4
24e8e380 131
9a997319
JH
132=item 1
133
134Create the directory >system>ported>command_library.
135
136=item 2
137
138Copy the appropriate version of the perl program module to
139this directory. For example, with your current directory
140set to the top-level directory of Perl 5, to install the
141executable program module for the Motorola 68K
142architecture, enter:
24e8e380
GS
143
144 !copy_file vos>obj>perl.pm >system>ported>command_library>*
145
9a997319
JH
146(If you wish to use both Perl version 4 and Perl version 5,
147you must give them different names; for example, perl.pm
148and perl5.pm).
149
150=item 3
24e8e380 151
9a997319 152Create the directory >system>ported>perl>lib.
24e8e380 153
9a997319
JH
154=item 4
155
156Copy all of the files and subdirectories from the lib
157subdirectory into this new directory. For example, with
158the current directory set to the top-level directory of the
159perl distribution, enter:
24e8e380 160
5b8c1387 161 !copy_dir lib >system>ported>perl>lib>5.7
24e8e380 162
9a997319
JH
163=item 5
164
165While there are currently no architecture-specific
166extensions or modules distributed with perl, the following
167directories can be used to hold such files:
24e8e380 168
5b8c1387
JH
169 >system>ported>perl>lib>5.7.68k
170 >system>ported>perl>lib>5.7.860
171 >system>ported>perl>lib>5.7.7100
172 >system>ported>perl>lib>5.7.8000
24e8e380 173
9a997319
JH
174=item 6
175
176Site-specific perl extensions and modules can be installed in one of
177two places. Put architecture-independent files into:
24e8e380 178
5b8c1387 179 >system>ported>perl>lib>site>5.7
24e8e380 180
9a997319
JH
181Put architecture-dependent files into one of the following
182directories:
24e8e380 183
5b8c1387
JH
184 >system>ported>perl>lib>site>5.7.68k
185 >system>ported>perl>lib>site>5.7.860
186 >system>ported>perl>lib>site>5.7.7100
187 >system>ported>perl>lib>site>5.7.8000
24e8e380 188
9a997319
JH
189=item 7
190
191You can examine the @INC variable from within a perl program
192to see the order in which Perl searches these directories.
495c5fdc 193
9a997319
JH
194=back
195
196=head1 USING PERL IN VOS
197
a83b6f46 198=head2 Unimplemented Features of Perl on VOS
495c5fdc 199
5b8c1387
JH
200If perl is built with the alpha version of VOS POSIX.1 support
201and if it attempts to call an unimplemented VOS POSIX.1
202function, it will print a fatal error message and enter the VOS
203debugger. This error is not recoverable. See vos_dummies.c for
204a list of the unimplemented POSIX.1 functions. To see what
205functions are unimplemented and what the error message looks
206like, compile and execute "test_vos_dummies.c".
24e8e380 207
a83b6f46 208=head2 Restrictions of Perl on VOS
495c5fdc 209
24e8e380
GS
210This port of Perl version 5 to VOS prefers Unix-style,
211slash-separated pathnames over VOS-style greater-than-separated
212pathnames. VOS-style pathnames should work in most contexts, but
213if you have trouble, replace all greater-than characters by slash
214characters. Because the slash character is used as a pathname
215delimiter, Perl cannot process VOS pathnames containing a slash
216character in a directory or file name; these must be renamed.
495c5fdc 217
24e8e380
GS
218This port of Perl also uses Unix-epoch date values internally.
219As long as you are dealing with ASCII character string
220representations of dates, this should not be an issue. The
221supported epoch is January 1, 1980 to January 17, 2038.
495c5fdc 222
24e8e380
GS
223See the file pod/perlport.pod for more information about the VOS
224port of Perl.
495c5fdc 225
9a997319 226=head1 SUPPORT STATUS
495c5fdc 227
495c5fdc 228I'm offering this port "as is". You can ask me questions, but I
5b8c1387 229can't guarantee I'll be able to answer them. There are some
24e8e380
GS
230excellent books available on the Perl language; consult a book
231seller.
495c5fdc 232
9a997319
JH
233=head1 AUTHOR
234
235Paul Green (Paul_Green@stratus.com)
236
237=head1 LAST UPDATE
238
0d6ca59a 239June 11, 2001
9a997319
JH
240
241=cut