1PERLVOS(1) Perl Programmers Reference Guide PERLVOS(1)
2
3
4
6 README.vos - Perl for Stratus VOS
7
9 This file contains notes for building perl on the Stratus VOS operating
10 system. Perl is a scripting or macro language that is popular on many
11 systems. See perlbook for a number of good books on Perl.
12
13 These are instructions for building Perl from source. Most people can
14 simply download a pre-compiled distribution from the VOS anonymous FTP
15 site. If you are running VOS Release 14.2.0 or earlier, download Perl
16 from ftp://ftp.stratus.com/pub/vos/posix/alpha/alpha.html If you are
17 running VOS Release 14.3.0 or later, download Perl from ftp://ftp.stra‐
18 tus.com/pub/vos/posix/ga/ga.html Instructions for unbundling the Perl
19 distribution file are at ftp://ftp.stratus.com/pub/vos/utility/util‐
20 ity.html
21
22 If you are running VOS Release 14.4.1 or later, you can obtain a
23 pre-compiled, supported copy of perl by purchasing Release 2.0.1 (or
24 later) of the VOS GNU C++ and GNU Tools product from Stratus Technolo‐
25 gies.
26
27 Multiple methods to build perl for VOS
28
29 If you elect to build perl from its source code, you have several dif‐
30 ferent ways that you can build perl. The method that you use depends
31 on the version of VOS that you are using and on the architecture of
32 your Stratus hardware platform.
33
34 1 If you have a Stratus XA2000 (Motorola 68k-based) platform, you
35 must build perl using the alpha version of VOS POSIX support and
36 using the VOS Standard C Cross-compiler. You must build perl on
37 VOS Release 14.1.0 (or later) on an XA/R or Continuum platform.
38
39 This version of perl is properly called "miniperl" because it does
40 not contain the complete perl functionality.
41
42 You must build perl with the compile_perl.cm command macro found
43 in the vos subdirectory.
44
45 2 If you have a Stratus XA/R (Intel i860-based) platform, you must
46 build perl using the alpha version of VOS POSIX support and using
47 the VOS Standard C compiler or cross-compiler. You must build
48 perl on VOS Release 14.1.0 (or later) on an XA/R or Continuum
49 platform.
50
51 This version of perl is properly called "miniperl" because it does
52 not contain the complete perl functionality.
53
54 You must build perl with the compile_perl.cm command macro found
55 in the vos subdirectory.
56
57 3 If you have a Stratus Continuum (PA-RISC-based) platform that is
58 running a version of VOS earlier than VOS 14.3.0, you must build
59 perl using the alpha version of VOS POSIX support and using the
60 VOS Standard C compiler or cross-compiler. You must build perl on
61 VOS Release 14.1.0 (or later) on an XA/R or Continuum platform.
62
63 This version of perl is properly called "miniperl" because it does
64 not contain the complete perl functionality.
65
66 You must build perl with the compile_perl.cm command macro found
67 in the vos subdirectory.
68
69 4 If you have a Stratus Continuum (PA-RISC-based) platform that is
70 running VOS Release 14.3.0 through VOS Release 14.4.1, you must
71 build perl using the generally-available version of VOS POSIX sup‐
72 port, and using either the VOS Standard C compiler or the VOS GNU
73 C compiler. You must build perl on VOS Release 14.3.0 (or later)
74 on a Continuum platform.
75
76 This version of perl is properly called "miniperl" because it does
77 not contain the complete perl functionality.
78
79 You must build perl with the compile_perl.cm command macro found
80 in the vos subdirectory.
81
82 5 If you have a Stratus Continuum (PA-RISC-based) platform that is
83 running VOS Release 14.5.0 or later, you can either use the previ‐
84 ous method to build "miniperl" or you can build "full perl", which
85 contains the complete functionality of perl. I strongly recommend
86 that you build full perl. To build full perl, you must use the
87 generally-available version of VOS POSIX support. You must use
88 the VOS GNU C compiler and the VOS GNU C/C++ and GNU Tools Release
89 2.0.1 (or later) product. You must build full perl on VOS Release
90 14.5.0 (or later) on a Continuum platform.
91
92 You must build full perl with the compile_full_perl.cm command
93 macro found in the vos subdirectory.
94
95 Stratus POSIX Support
96
97 Note that there are two different implementations of POSIX.1 support on
98 VOS. There is an alpha version of POSIX that is available from the
99 Stratus anonymous ftp site ( ftp://ftp.stra‐
100 tus.com/pub/vos/posix/alpha/alpha.html ). There is a generally-avail‐
101 able version of POSIX that comes with VOS Release 14.3.0 or higher.
102 This port of POSIX will compile and bind with either version of POSIX.
103
104 Most of the Perl features should work on VOS regardless of which ver‐
105 sion of POSIX that you are using. However, the alpha version of POSIX
106 is missing a number of key functions, and therefore any attempt by
107 perl.pm to call the following unimplemented POSIX functions will result
108 in an error message and an immediate and fatal call to the VOS debug‐
109 ger. They are "dup", "fork", and "waitpid". The lack of these func‐
110 tions prevents you from starting VOS commands and grabbing their output
111 in perl. The workaround is to run the commands outside of perl, then
112 have perl process the output file. These functions are all available
113 in the generally-available version of POSIX.
114
116 Compiling Perl 5 on VOS
117
118 Before you can build Perl 5 on VOS, you need to have or acquire the
119 following additional items.
120
121 1 The VOS Standard C Compiler (or the VOS Standard C Cross-Compiler)
122 and the VOS C Runtime. If you are using the generally-available
123 version of POSIX support, you may instead use the VOS GNU C/C++
124 Compiler. These are standard Stratus products.
125
126 2 Either the VOS OS TCP/IP or STCP product set. If you are building
127 with the alpha version of POSIX you need the OS TCP/IP product
128 set. If you are building with the generally-available version of
129 POSIX you need the STCP product set. These are standard Stratus
130 products.
131
132 3 Either the alpha or generally-available version of the VOS POSIX.1
133 environment.
134
135 The alpha version of POSIX.1 support is available on the Stratus
136 FTP site. Login anonymously to ftp.stratus.com and get the file
137 /pub/vos/posix/alpha/posix.save.evf.gz in binary file-transfer
138 mode. Or use the Uniform Resource Locator (URL) ftp://ftp.stra‐
139 tus.com/pub/vos/posix/alpha/posix.save.evf.gz from your web
140 browser. Instructions for unbundling this file are at
141 ftp://ftp.stratus.com/pub/vos/utility/utility.html This is NOT a
142 standard Stratus product.
143
144 In VOS Release 14.3.0, the generally-available version of POSIX.1
145 support is bundled with the VOS Standard C compiler (or Standard C
146 Cross-Compiler). In VOS Release 14.4.0 or higher, it is also bun‐
147 dled with the VOS C Runtime. These are standard Stratus products.
148
149 4 You must compile this version of Perl 5 on VOS Release 14.1.0 or
150 higher because some of the perl source files contain more than
151 32,767 source lines. Due to VOS release-compatibility rules, this
152 port of perl may not execute on VOS Release 12 or earlier.
153
154 5 If you are using the generally-available version of VOS POSIX sup‐
155 port, then you should also acquire the VOS GNU C/C++ Compiler and
156 GNU Tools product. When perl is built with this version of POSIX
157 support, it assumes that it can find "bash", "sed" and other
158 POSIX-compatible commands in the directory /sys‐
159 tem/gnu_library/bin.
160
161 To build perl using the supplied VOS command macros, change to the
162 "vos" subdirectory and type the command "compile_perl -processor X",
163 where X is the processor type (mc68020, i80860, pa7100, pa8000) that
164 you wish to use. Note that the generally-available version of POSIX.1
165 support is not available for the mc68020 or i80860 processors.
166
167 Use the "-version alpha" control argument to build perl with the alpha
168 version of POSIX support, and use the "-version ga" control argument to
169 build it with the generally-available version of POSIX. The default is
170 "ga".
171
172 Use the "-compiler cc" control argument to build perl with the VOS
173 Standard C compiler. Use the "-compiler gcc" control argument to build
174 it with the GNU GCC compiler. The default is "cc".
175
176 You must have purchased the VOS Standard C Cross Compiler in order to
177 compile perl for a processor type that is different from the processor
178 type of the module.
179
180 Note that code compiled for the pa7100 processor type can execute on
181 the PA7100, PA8000, PA8500 and PA8600 processors, and that code com‐
182 piled for the pa8000 processor type can execute on the PA8000, PA8500
183 and PA8600 processors.
184
185 To build full perl using the supplied Configure script and makefiles,
186 change to the "vos" subdirectory and type the command "com‐
187 pile_full_perl" or "start_process compile_full_perl". This will con‐
188 figure, build, and test perl.
189
190 Installing Perl 5 on VOS
191
192 1 If you have built perl using the Configure script, ensure that you
193 have modify permission to ">system>ported" and type
194
195 gmake install
196
197 2 If you have built perl using any of the other methods, type
198
199 install_perl -processor PROCESSOR -name NAME
200
201 where PROCESSOR is mc68020, i80860, pa7100, or pa8000, as appropri‐
202 ate, and NAME is perl or perl5, according to which name you wish to
203 use.
204
205 This command macro will install perl and all of its related files
206 in the proper directories.
207
208 3 While there are currently no architecture-specific extensions or
209 modules distributed with perl, the following directories can be
210 used to hold such files:
211
212 >system>ported>lib>perl5>5.8.0>68k
213 >system>ported>lib>perl5>5.8.0>860
214 >system>ported>lib>perl5>5.8.0>7100
215 >system>ported>lib>perl5>5.8.0>8000
216
217 4 Site-specific perl extensions and modules can be installed in one
218 of two places. Put architecture-independent files into:
219
220 >system>ported>lib>perl5>site_perl>5.8.0
221
222 Put site-specific architecture-dependent files into one of the fol‐
223 lowing directories:
224
225 >system>ported>lib>perl5>site_perl>5.8.0>68k
226 >system>ported>lib>perl5>site_perl>5.8.0>860
227 >system>ported>lib>perl5>site_perl>5.8.0>7100
228 >system>ported>lib>perl5>site_perl>5.8.0>8000
229
230 5 You can examine the @INC variable from within a perl program to see
231 the order in which Perl searches these directories.
232
234 Unimplemented Features of Perl on VOS
235
236 If perl is built with the alpha version of VOS POSIX.1 support and if
237 it attempts to call an unimplemented VOS POSIX.1 function, it will
238 print a fatal error message and enter the VOS debugger. This error is
239 not recoverable. See vos_dummies.c for a list of the unimplemented
240 POSIX.1 functions. To see what functions are unimplemented and what
241 the error message looks like, compile and execute "test_vos_dummies.c".
242
243 Restrictions of Perl on VOS
244
245 This port of Perl version 5 to VOS prefers Unix-style, slash-separated
246 pathnames over VOS-style greater-than-separated pathnames. VOS-style
247 pathnames should work in most contexts, but if you have trouble,
248 replace all greater-than characters by slash characters. Because the
249 slash character is used as a pathname delimiter, Perl cannot process
250 VOS pathnames containing a slash character in a directory or file name;
251 these must be renamed.
252
253 This port of Perl also uses Unix-epoch date values internally. As long
254 as you are dealing with ASCII character string representations of
255 dates, this should not be an issue. The supported epoch is January 1,
256 1980 to January 17, 2038.
257
258 See the file pod/perlport.pod for more information about the VOS port
259 of Perl.
260
261 Handling of underflow and overflow
262
263 Prior to VOS Release 14.7.0, VOS does not support automatically mapping
264 overflowed floating-point values to +infinity, nor automatically map‐
265 ping underflowed floating-point values to zero, unlike many other plat‐
266 forms. The Perl pack function has been modified to perform such map‐
267 ping in software on VOS. Performing other floating-point computations
268 that underflow or overflow will probably result in SIGFPE. Don't push
269 your luck.
270
271 As of VOS Release 14.7.0, the VOS POSIX runtime sets up the PA-RISC
272 hardware floating-point status register so that the overflow and under‐
273 flow exceptions do not trap, but instead automatically convert the
274 result to infinity or zero, as appropriate. As of this writing, there
275 are still floating-point operations that can trap, for example, sub‐
276 tracting two infinite values. This is recorded as suggestion
277 posix-1022, which is not yet fixed.
278
280 When Perl 5.8.3 is built using the native build process on VOS Release
281 14.7.0 and GNU C++/GNU Tools 2.0.2a, all but three attempted tests
282 either pass or result in TODO (ignored) failures. The tests that fail
283 are:
284
285 t/io/tell.t, test 28 t/op/pack.t, test 39 lib/Net/ing/t/450_service.t,
286 test 8
287
289 I'm offering this port "as is". You can ask me questions, but I can't
290 guarantee I'll be able to answer them. There are some excellent books
291 available on the Perl language; consult a book seller.
292
293 If you want a supported version of perl for VOS, purchase the VOS GNU
294 C++ and GNU Tools Release 2.0.1 (or later) product from Stratus Tech‐
295 nologies, along with a support contract (or from anyone else who will
296 sell you support).
297
299 Paul Green (Paul.Green@stratus.com)
300
302 January 15, 2004
303
304
305
306perl v5.8.8 2006-01-07 PERLVOS(1)