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