Install Perl 5.8.8
[msysgit.git] / mingw / html / pod / perlvos.html
blobc1ee5f4cbb044209f6534c508278963b87fff4cb
1 <?xml version="1.0" ?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml">
4 <head>
5 <title>README.vos - Perl for Stratus VOS</title>
6 <meta http-equiv="content-type" content="text/html; charset=utf-8" />
7 <link rev="made" href="mailto:" />
8 </head>
10 <body style="background-color: white">
11 <table border="0" width="100%" cellspacing="0" cellpadding="3">
12 <tr><td class="block" style="background-color: #cccccc" valign="middle">
13 <big><strong><span class="block">&nbsp;README.vos - Perl for Stratus VOS</span></strong></big>
14 </td></tr>
15 </table>
17 <p><a name="__index__"></a></p>
18 <!-- INDEX BEGIN -->
20 <ul>
22 <li><a href="#name">NAME</a></li>
23 <li><a href="#synopsis">SYNOPSIS</a></li>
24 <ul>
26 <li><a href="#multiple_methods_to_build_perl_for_vos">Multiple methods to build perl for VOS</a></li>
27 <li><a href="#stratus_posix_support">Stratus POSIX Support</a></li>
28 </ul>
30 <li><a href="#installing_perl_in_vos">INSTALLING PERL IN VOS</a></li>
31 <ul>
33 <li><a href="#compiling_perl_5_on_vos">Compiling Perl 5 on VOS</a></li>
34 <li><a href="#installing_perl_5_on_vos">Installing Perl 5 on VOS</a></li>
35 </ul>
37 <li><a href="#using_perl_in_vos">USING PERL IN VOS</a></li>
38 <ul>
40 <li><a href="#unimplemented_features_of_perl_on_vos">Unimplemented Features of Perl on VOS</a></li>
41 <li><a href="#restrictions_of_perl_on_vos">Restrictions of Perl on VOS</a></li>
42 <li><a href="#handling_of_underflow_and_overflow">Handling of underflow and overflow</a></li>
43 </ul>
45 <li><a href="#test_status">TEST STATUS</a></li>
46 <li><a href="#support_status">SUPPORT STATUS</a></li>
47 <li><a href="#author">AUTHOR</a></li>
48 <li><a href="#last_update">LAST UPDATE</a></li>
49 </ul>
50 <!-- INDEX END -->
52 <hr />
53 <p>
54 </p>
55 <h1><a name="name">NAME</a></h1>
56 <p>README.vos - Perl for Stratus VOS</p>
57 <p>
58 </p>
59 <hr />
60 <h1><a name="synopsis">SYNOPSIS</a></h1>
61 <p>This file contains notes for building perl on the Stratus VOS
62 operating system. Perl is a scripting or macro language that is
63 popular on many systems. See <a href="file://C|\msysgit\mingw\html/pod/perlbook.html">the perlbook manpage</a> for a number of good
64 books on Perl.</p>
65 <p>These are instructions for building Perl from source. Most people can
66 simply download a pre-compiled distribution from the VOS anonymous FTP
67 site. If you are running VOS Release 14.2.0 or earlier, download Perl
68 from <a href="ftp://ftp.stratus.com/pub/vos/posix/alpha/alpha.html">ftp://ftp.stratus.com/pub/vos/posix/alpha/alpha.html</a> If you are
69 running VOS Release 14.3.0 or later, download Perl from
70 <a href="ftp://ftp.stratus.com/pub/vos/posix/ga/ga.html">ftp://ftp.stratus.com/pub/vos/posix/ga/ga.html</a> Instructions for
71 unbundling the Perl distribution file are at
72 <a href="ftp://ftp.stratus.com/pub/vos/utility/utility.html">ftp://ftp.stratus.com/pub/vos/utility/utility.html</a></p>
73 <p>If you are running VOS Release 14.4.1 or later, you can obtain a
74 pre-compiled, supported copy of perl by purchasing Release 2.0.1
75 (or later) of the VOS GNU C++ and GNU Tools product from Stratus
76 Technologies.</p>
77 <p>
78 </p>
79 <h2><a name="multiple_methods_to_build_perl_for_vos">Multiple methods to build perl for VOS</a></h2>
80 <p>If you elect to build perl from its source code, you have several
81 different ways that you can build perl. The method that you use
82 depends on the version of VOS that you are using and on the
83 architecture of your Stratus hardware platform.</p>
84 <ol>
85 <li>
86 <p>If you have a Stratus XA2000 (Motorola 68k-based) platform, you
87 must build perl using the alpha version of VOS POSIX support and
88 using the VOS Standard C Cross-compiler. You must build perl on
89 VOS Release 14.1.0 (or later) on an XA/R or Continuum platform.</p>
90 <p>This version of perl is properly called ``miniperl'' because it
91 does not contain the complete perl functionality.</p>
92 <p>You must build perl with the compile_perl.cm command macro found
93 in the vos subdirectory.</p>
94 </li>
95 <li>
96 <p>If you have a Stratus XA/R (Intel i860-based) platform, you must
97 build perl using the alpha version of VOS POSIX support and using
98 the VOS Standard C compiler or cross-compiler. You must build
99 perl on VOS Release 14.1.0 (or later) on an XA/R or Continuum
100 platform.</p>
101 <p>This version of perl is properly called ``miniperl'' because it
102 does not contain the complete perl functionality.</p>
103 <p>You must build perl with the compile_perl.cm command macro found
104 in the vos subdirectory.</p>
105 </li>
106 <li>
107 <p>If you have a Stratus Continuum (PA-RISC-based) platform that is
108 running a version of VOS earlier than VOS 14.3.0, you must build
109 perl using the alpha version of VOS POSIX support and using the
110 VOS Standard C compiler or cross-compiler. You must build perl
111 on VOS Release 14.1.0 (or later) on an XA/R or Continuum
112 platform.</p>
113 <p>This version of perl is properly called ``miniperl'' because it
114 does not contain the complete perl functionality.</p>
115 <p>You must build perl with the compile_perl.cm command macro found
116 in the vos subdirectory.</p>
117 </li>
118 <li>
119 <p>If you have a Stratus Continuum (PA-RISC-based) platform that is
120 running VOS Release 14.3.0 through VOS Release 14.4.1, you must
121 build perl using the generally-available version of VOS POSIX
122 support, and using either the VOS Standard C compiler or the VOS
123 GNU C compiler. You must build perl on VOS Release 14.3.0 (or
124 later) on a Continuum platform.</p>
125 <p>This version of perl is properly called ``miniperl'' because it
126 does not contain the complete perl functionality.</p>
127 <p>You must build perl with the compile_perl.cm command macro found
128 in the vos subdirectory.</p>
129 </li>
130 <li>
131 <p>If you have a Stratus Continuum (PA-RISC-based) platform that is
132 running VOS Release 14.5.0 or later, you can either use the
133 previous method to build ``miniperl'' or you can build ``full
134 perl'', which contains the complete functionality of perl. I
135 strongly recommend that you build full perl. To build full
136 perl, you must use the generally-available version of VOS POSIX
137 support. You must use the VOS GNU C compiler and the VOS GNU
138 C/C++ and GNU Tools Release 2.0.1 (or later) product. You must
139 build full perl on VOS Release 14.5.0 (or later) on a Continuum
140 platform.</p>
141 <p>You must build full perl with the compile_full_perl.cm command
142 macro found in the vos subdirectory.</p>
143 </li>
144 </ol>
146 </p>
147 <h2><a name="stratus_posix_support">Stratus POSIX Support</a></h2>
148 <p>Note that there are two different implementations of POSIX.1
149 support on VOS. There is an alpha version of POSIX that is
150 available from the Stratus anonymous ftp site
151 ( <a href="ftp://ftp.stratus.com/pub/vos/posix/alpha/alpha.html">ftp://ftp.stratus.com/pub/vos/posix/alpha/alpha.html</a> ). There
152 is a generally-available version of POSIX that comes with VOS
153 Release 14.3.0 or higher. This port of POSIX will compile and
154 bind with either version of POSIX.</p>
155 <p>Most of the Perl features should work on VOS regardless of which
156 version of POSIX that you are using. However, the alpha version
157 of POSIX is missing a number of key functions, and therefore any
158 attempt by perl.pm to call the following unimplemented POSIX
159 functions will result in an error message and an immediate and
160 fatal call to the VOS debugger. They are ``dup'', ``fork'', and
161 ``waitpid''. The lack of these functions prevents you from
162 starting VOS commands and grabbing their output in perl. The
163 workaround is to run the commands outside of perl, then have perl
164 process the output file. These functions are all available in
165 the generally-available version of POSIX.</p>
167 </p>
168 <hr />
169 <h1><a name="installing_perl_in_vos">INSTALLING PERL IN VOS</a></h1>
171 </p>
172 <h2><a name="compiling_perl_5_on_vos">Compiling Perl 5 on VOS</a></h2>
173 <p>Before you can build Perl 5 on VOS, you need to have or acquire the
174 following additional items.</p>
175 <ol>
176 <li>
177 <p>The VOS Standard C Compiler (or the VOS Standard C
178 Cross-Compiler) and the VOS C Runtime. If you are using
179 the generally-available version of POSIX support, you may
180 instead use the VOS GNU C/C++ Compiler. These are
181 standard Stratus products.</p>
182 </li>
183 <li>
184 <p>Either the VOS OS TCP/IP or STCP product set. If you are
185 building with the alpha version of POSIX you need the OS
186 TCP/IP product set. If you are building with the
187 generally-available version of POSIX you need the STCP
188 product set. These are standard Stratus products.</p>
189 </li>
190 <li>
191 <p>Either the alpha or generally-available version of the VOS
192 POSIX.1 environment.</p>
193 <p>The alpha version of POSIX.1 support is available on the
194 Stratus FTP site. Login anonymously to ftp.stratus.com and
195 get the file /pub/vos/posix/alpha/posix.save.evf.gz in
196 binary file-transfer mode. Or use the Uniform Resource
197 Locator (URL)
198 <a href="ftp://ftp.stratus.com/pub/vos/posix/alpha/posix.save.evf.gz">ftp://ftp.stratus.com/pub/vos/posix/alpha/posix.save.evf.gz</a> from
199 your web browser. Instructions for unbundling this file
200 are at <a href="ftp://ftp.stratus.com/pub/vos/utility/utility.html">ftp://ftp.stratus.com/pub/vos/utility/utility.html</a>
201 This is NOT a standard Stratus product.</p>
202 <p>In VOS Release 14.3.0, the generally-available version of
203 POSIX.1 support is bundled with the VOS Standard C compiler
204 (or Standard C Cross-Compiler). In VOS Release 14.4.0 or
205 higher, it is also bundled with the VOS C Runtime. These
206 are standard Stratus products.</p>
207 </li>
208 <li>
209 <p>You must compile this version of Perl 5 on VOS Release
210 14.1.0 or higher because some of the perl source files
211 contain more than 32,767 source lines. Due to VOS
212 release-compatibility rules, this port of perl may not
213 execute on VOS Release 12 or earlier.</p>
214 </li>
215 <li>
216 <p>If you are using the generally-available version of VOS POSIX
217 support, then you should also acquire the VOS GNU C/C++ Compiler
218 and GNU Tools product. When perl is built with this version of
219 POSIX support, it assumes that it can find ``bash'', ``sed'' and
220 other POSIX-compatible commands in the directory
221 /system/gnu_library/bin.</p>
222 </li>
223 </ol>
224 <p>To build perl using the supplied VOS command macros, change to
225 the ``vos'' subdirectory and type the command ``compile_perl
226 -processor X'', where X is the processor type (mc68020, i80860,
227 pa7100, pa8000) that you wish to use. Note that the
228 generally-available version of POSIX.1 support is not available
229 for the mc68020 or i80860 processors.</p>
230 <p>Use the ``-version alpha'' control argument to build perl with
231 the alpha version of POSIX support, and use the ``-version
232 ga'' control argument to build it with the
233 generally-available version of POSIX. The default is ``ga''.</p>
234 <p>Use the ``-compiler cc'' control argument to build perl with
235 the VOS Standard C compiler. Use the ``-compiler gcc''
236 control argument to build it with the GNU GCC compiler. The
237 default is ``cc''.</p>
238 <p>You must have purchased the VOS Standard C Cross Compiler in
239 order to compile perl for a processor type that is different
240 from the processor type of the module.</p>
241 <p>Note that code compiled for the pa7100 processor type can
242 execute on the PA7100, PA8000, PA8500 and PA8600 processors, and
243 that code compiled for the pa8000 processor type can execute on
244 the PA8000, PA8500 and PA8600 processors.</p>
245 <p>To build full perl using the supplied Configure script and
246 makefiles, change to the ``vos'' subdirectory and type the command
247 ``compile_full_perl'' or ``start_process compile_full_perl''. This
248 will configure, build, and test perl.</p>
250 </p>
251 <h2><a name="installing_perl_5_on_vos">Installing Perl 5 on VOS</a></h2>
252 <ol>
253 <li>
254 <p>If you have built perl using the Configure script, ensure that
255 you have modify permission to <code>&gt;system&gt;ported</code> and type</p>
256 <pre>
257 gmake install</pre>
258 </li>
259 <li>
260 <p>If you have built perl using any of the other methods, type</p>
261 <pre>
262 install_perl -processor PROCESSOR -name NAME</pre>
263 <p>where PROCESSOR is mc68020, i80860, pa7100, or pa8000, as
264 appropriate, and NAME is perl or perl5, according to which name
265 you wish to use.</p>
266 <p>This command macro will install perl and all of its related
267 files in the proper directories.</p>
268 </li>
269 <li>
270 <p>While there are currently no architecture-specific
271 extensions or modules distributed with perl, the following
272 directories can be used to hold such files:</p>
273 <pre>
274 &gt;system&gt;ported&gt;lib&gt;perl5&gt;5.8.0&gt;68k
275 &gt;system&gt;ported&gt;lib&gt;perl5&gt;5.8.0&gt;860
276 &gt;system&gt;ported&gt;lib&gt;perl5&gt;5.8.0&gt;7100
277 &gt;system&gt;ported&gt;lib&gt;perl5&gt;5.8.0&gt;8000</pre>
278 </li>
279 <li>
280 <p>Site-specific perl extensions and modules can be installed in one of
281 two places. Put architecture-independent files into:</p>
282 <pre>
283 &gt;system&gt;ported&gt;lib&gt;perl5&gt;site_perl&gt;5.8.0</pre>
284 <p>Put site-specific architecture-dependent files into one of the
285 following directories:</p>
286 <pre>
287 &gt;system&gt;ported&gt;lib&gt;perl5&gt;site_perl&gt;5.8.0&gt;68k
288 &gt;system&gt;ported&gt;lib&gt;perl5&gt;site_perl&gt;5.8.0&gt;860
289 &gt;system&gt;ported&gt;lib&gt;perl5&gt;site_perl&gt;5.8.0&gt;7100
290 &gt;system&gt;ported&gt;lib&gt;perl5&gt;site_perl&gt;5.8.0&gt;8000</pre>
291 </li>
292 <li>
293 <p>You can examine the @INC variable from within a perl program
294 to see the order in which Perl searches these directories.</p>
295 </li>
296 </ol>
298 </p>
299 <hr />
300 <h1><a name="using_perl_in_vos">USING PERL IN VOS</a></h1>
302 </p>
303 <h2><a name="unimplemented_features_of_perl_on_vos">Unimplemented Features of Perl on VOS</a></h2>
304 <p>If perl is built with the alpha version of VOS POSIX.1 support
305 and if it attempts to call an unimplemented VOS POSIX.1
306 function, it will print a fatal error message and enter the VOS
307 debugger. This error is not recoverable. See vos_dummies.c for
308 a list of the unimplemented POSIX.1 functions. To see what
309 functions are unimplemented and what the error message looks
310 like, compile and execute ``test_vos_dummies.c''.</p>
312 </p>
313 <h2><a name="restrictions_of_perl_on_vos">Restrictions of Perl on VOS</a></h2>
314 <p>This port of Perl version 5 to VOS prefers Unix-style,
315 slash-separated pathnames over VOS-style greater-than-separated
316 pathnames. VOS-style pathnames should work in most contexts, but
317 if you have trouble, replace all greater-than characters by slash
318 characters. Because the slash character is used as a pathname
319 delimiter, Perl cannot process VOS pathnames containing a slash
320 character in a directory or file name; these must be renamed.</p>
321 <p>This port of Perl also uses Unix-epoch date values internally.
322 As long as you are dealing with ASCII character string
323 representations of dates, this should not be an issue. The
324 supported epoch is January 1, 1980 to January 17, 2038.</p>
325 <p>See the file pod/perlport.pod for more information about the VOS
326 port of Perl.</p>
328 </p>
329 <h2><a name="handling_of_underflow_and_overflow">Handling of underflow and overflow</a></h2>
330 <p>Prior to VOS Release 14.7.0, VOS does not support automatically
331 mapping overflowed floating-point values to +infinity, nor
332 automatically mapping underflowed floating-point values to zero,
333 unlike many other platforms. The Perl pack function has been
334 modified to perform such mapping in software on VOS. Performing
335 other floating-point computations that underflow or overflow
336 will probably result in SIGFPE. Don't push your luck.</p>
337 <p>As of VOS Release 14.7.0, the VOS POSIX runtime sets up the
338 PA-RISC hardware floating-point status register so that the
339 overflow and underflow exceptions do not trap, but instead
340 automatically convert the result to infinity or zero, as
341 appropriate. As of this writing, there are still floating-point
342 operations that can trap, for example, subtracting two infinite
343 values. This is recorded as suggestion posix-1022, which is not
344 yet fixed.</p>
346 </p>
347 <hr />
348 <h1><a name="test_status">TEST STATUS</a></h1>
349 <p>When Perl 5.8.3 is built using the native build process on VOS
350 Release 14.7.0 and GNU C++/GNU Tools 2.0.2a, all but three
351 attempted tests either pass or result in TODO (ignored)
352 failures. The tests that fail are:</p>
353 <p>t/io/tell.t, test 28
354 t/op/pack.t, test 39
355 lib/Net/ing/t/450_service.t, test 8</p>
357 </p>
358 <hr />
359 <h1><a name="support_status">SUPPORT STATUS</a></h1>
360 <p>I'm offering this port ``as is''. You can ask me questions, but I
361 can't guarantee I'll be able to answer them. There are some
362 excellent books available on the Perl language; consult a book
363 seller.</p>
364 <p>If you want a supported version of perl for VOS, purchase the
365 VOS GNU C++ and GNU Tools Release 2.0.1 (or later) product from
366 Stratus Technologies, along with a support contract (or from
367 anyone else who will sell you support).</p>
369 </p>
370 <hr />
371 <h1><a name="author">AUTHOR</a></h1>
372 <p>Paul Green (<a href="mailto:Paul.Green@stratus.com">Paul.Green@stratus.com</a>)</p>
374 </p>
375 <hr />
376 <h1><a name="last_update">LAST UPDATE</a></h1>
377 <p>January 15, 2004</p>
378 <table border="0" width="100%" cellspacing="0" cellpadding="3">
379 <tr><td class="block" style="background-color: #cccccc" valign="middle">
380 <big><strong><span class="block">&nbsp;README.vos - Perl for Stratus VOS</span></strong></big>
381 </td></tr>
382 </table>
384 </body>
386 </html>