If not building threaded, never mind the threaded prototypes.
[p5sagit/p5-mst-13.2.git] / README.vos
CommitLineData
9a997319 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
050dfae0 11This file contains notes for building perl on the Stratus VOS
12operating system. Perl is a scripting or macro language that is
13popular on many systems. See L<perlbook> for a number of good
14books on Perl.
4f3de37c 15
16These are instructions for building Perl from source. Most people can
17simply download a pre-compiled distribution from the VOS anonymous FTP
18site. If you are running VOS Release 14.2.0 or earlier, download Perl
19from ftp://ftp.stratus.com/pub/vos/posix/alpha/alpha.html. If you are
20running VOS Release 14.3.0 or later, download Perl from
21ftp://ftp.stratus.com/pub/vos/posix/ga/ga.html. Instructions for
22unbundling the Perl distribution file are at
23ftp://ftp.stratus.com/pub/vos/utility/utility.html.
495c5fdc 24
050dfae0 25If you are running VOS Release 14.4.1 or later, you can obtain a
26pre-compiled, supported copy of perl by purchasing Release 2.0.1
27of the VOS GNU C++ and GNU Tools product from Stratus
28Technologies.
29
30=head2 Multiple methods to build perl for VOS
31
32If you elect to build perl from its source code, you have several
33different ways that you can build perl. The method that you use
34depends on the version of VOS that you are using and on the
35architecture of you Stratus hardware platform.
36
37=over 5
38
39=item 1
40
41If you have a Stratus XA2000 (Motorola 68k-based) platform, you
42must build perl using the alpha version of VOS POSIX support and
43using the VOS Standard C Cross-compiler. You must build perl on
44VOS Release 14.1.0 (or later) on an XA/R or Continuum platform.
45
46This version of perl is properly called "miniperl" because it
47does not contain the full perl functionality.
48
49You must build perl with the compile_perl.cm command macro found
50in the vos subdirectory.
51
52=item 2
53
54If you have a Stratus XA/R (Intel i860-based) platform, you must
55build perl using the alpha version of VOS POSIX support and using
56the VOS Standard C compiler or cross-compiler. You must build
57perl on VOS Release 14.1.0 (or later) on an XA/R or Continuum
58platform.
59
60This version of perl is properly called "miniperl" because it
61does not contain the full perl functionality.
62
63You must build perl with the compile_perl.cm command macro found
64in the vos subdirectory.
65
66=item 3
67
68If you have a Stratus Continuum (PARISC-based) platform that is
69running a version of VOS earlier than VOS 14.3.0, you must build
70perl using the alpha version of VOS POSIX support and using the
71VOS Standard C compiler or cross-compiler. You must build perl
72on VOS Release 14.1.0 (or later) on an XA/R or Continuum
73platform.
74
75This version of perl is properly called "miniperl" because it
76does not contain the full perl functionality.
77
78You must build perl with the compile_perl.cm command macro found
79in the vos subdirectory.
80
81=item 4
82
83If you have a Stratus Continuum (PARISC-based) platform that is
84running VOS Release 14.3.0 through VOS Release 14.4.0, you must
85build perl using the generally-available version of VOS POSIX
86support, and using either the VOS Standard C compiler or the VOS
87GNU C compiler. You must build perl on VOS Release 14.3.0 (or
88later) on a Continuum platform.
89
90This version of perl is properly called "miniperl" because it
91does not contain the full perl functionality.
92
93You must build perl with the compile_perl.cm command macro found
94in the vos subdirectory.
95
96=item 5
97
98If you have a Stratus Continuum (PA-RISC-based) platform that is
99running VOS Release 14.4.1 or later, you must build perl using
100the generally-available version of VOS POSIX support. You must
101use the VOS GNU C compiler and the VOS GNU Tools product. You
102must build perl on VOS Release 14.4.1 (or later) on a Continuum
103platform.
104
105This version of perl is properly called "full perl" because it
106contains the full perl functionality.
107
108You must use the supplied Configure script and makefiles to build
109perl.
110
111=back
112
9a997319 113=head2 Stratus POSIX Support
495c5fdc 114
5b8c1387 115Note that there are two different implementations of POSIX.1
116support on VOS. There is an alpha version of POSIX that is
117available from the Stratus anonymous ftp site
050dfae0 118(ftp://ftp.stratus.com/pub/vos/posix/alpha/alpha.html). There
119is a generally-available version of POSIX that comes with VOS
120Release 14.3.0 or higher. This port of POSIX will compile and
121bind with either version of POSIX.
5b8c1387 122
123Most of the Perl features should work on VOS regardless of which
124version of POSIX that you are using. However, the alpha version
125of POSIX is missing a number of key functions, and therefore any
495c5fdc 126attempt by perl.pm to call the following unimplemented POSIX
127functions will result in an error message and an immediate and
24e8e380 128fatal call to the VOS debugger. They are "dup", "fork", and
8b204b88 129"waitpid". The lack of these functions prevents you from
130starting VOS commands and grabbing their output in perl. The
131workaround is to run the commands outside of perl, then have perl
132process the output file. These functions are all available in
133the generally-available version of POSIX.
24e8e380 134
9a997319 135=head1 INSTALLING PERL IN VOS
136
137=head2 Compiling Perl 5 on VOS
495c5fdc 138
495c5fdc 139Before you can build Perl 5 on VOS, you need to have or acquire the
140following additional items.
141
9a997319 142=over 5
143
144=item 1
145
0d6ca59a 146The VOS Standard C Compiler (or the VOS Standard C
147Cross-Compiler) and the VOS C Runtime. If you are using
148the generally-available version of POSIX support, you may
d1be9408 149instead use the VOS GNU C/C++ Compiler. These are
0d6ca59a 150standard Stratus products.
9a997319 151
152=item 2
153
154Either the VOS OS TCP/IP or STCP product set. If you are
155building with the alpha version of POSIX you need the OS
156TCP/IP product set. If you are building with the
157generally-available version of POSIX you need the STCP
158product set. These are standard Stratus products.
159
160=item 3
161
162Either the alpha or generally-available version of the VOS
163POSIX.1 environment.
164
165The alpha version of POSIX.1 support is available on the
166Stratus FTP site. Login anonymously to ftp.stratus.com and
167get the file /pub/vos/posix/alpha/posix.save.evf.gz in
168binary file-transfer mode. Or use the Uniform Resource
169Locator (URL)
37a78d01 170ftp://ftp.stratus.com/pub/vos/posix/alpha/posix.save.evf.gz from
9a997319 171your web browser. Instructions for unbundling this file
172are at ftp://ftp.stratus.com/pub/vos/utility/utility.html.
173This is not a standard Stratus product.
174
0d6ca59a 175In VOS Release 14.3.0, the generally-available version of
176POSIX.1 support is bundled with the VOS Standard C compiler
177(or Standard C Cross-Compiler). In VOS Release 14.4.0 or
178higher, it is also bundled with the VOS C Runtime. These
179are standard Stratus products.
9a997319 180
181=item 4
182
183You must compile this version of Perl 5 on VOS Release
18414.1.0 or higher because some of the perl source files
185contain more than 32,767 source lines. Due to VOS
186release-compatibility rules, this port of perl may not
187execute on VOS Release 12 or earlier.
188
0d6ca59a 189=item 5
190
8b204b88 191If you are using the generally-available version of VOS POSIX
192support, then you should also acquire the VOS GNU C/C++ Compiler
050dfae0 193and GNU Tools product. When perl is built with this version of
194POSIX support, it assumes that it can find "bash", "sed" and
195other POSIX-compatible commands in the directory
8b204b88 196/system/gnu_library/bin.
0d6ca59a 197
9a997319 198=back
24e8e380 199
050dfae0 200To build perl using the supplied VOS command macros, change to
201the "vos" subdirectory and type the command "compile_perl
202-processor X", where X is the processor type (mc68020, i80860,
203pa7100, pa8000) that you wish to use. Note that the
204generally-available version of POSIX.1 support is not available
205for the mc68020 or i80860 processors.
5b8c1387 206
0d6ca59a 207Use the "-version alpha" control argument to build perl with
208the alpha version of POSIX support, and use the "-version
209ga" control argument to build it with the
210generally-available version of POSIX. The default is "ga".
211
212Use the "-compiler cc" control argument to build perl with
213the VOS Standard C compiler. Use the "-compiler gcc"
214control argument to build it with the GNU GCC compiler. The
215default is "cc".
216
5b8c1387 217You must have purchased the VOS Standard C Cross Compiler in
218order to compile perl for a processor type that is different
219from the processor type of the module.
220
24e8e380 221Note that code compiled for the pa7100 processor type can
5b8c1387 222execute on the PA7100, PA8000, PA8500 and PA8600 processors, and
223that code compiled for the pa8000 processor type can execute on
224the PA8000, PA8500 and PA8600 processors.
24e8e380 225
050dfae0 226To build perl using the supplied Configure script and makefiles,
227execute the following commands.
24e8e380 228
050dfae0 229 !add_library_path command >system>gnu_library>bin -after '(current_dir)'
230 !bash
231 gzip -d perl-5.8.0.tar.gz
232 tar -xvf perl-5.8.0.tar
233 cd perl-5.8.0
234 Configure -d
235 gmake
24e8e380 236
050dfae0 237If you wish to run the test cases, type:
9a997319 238
050dfae0 239 gmake test
9a997319 240
050dfae0 241=head2 Installing Perl 5 on VOS
9a997319 242
050dfae0 243=over 4
24e8e380 244
050dfae0 245=item 1
24e8e380 246
050dfae0 247If you have built perl using the Configure script, ensure that
248you have modify permission to >system>ported and type
9a997319 249
050dfae0 250 gmake install
24e8e380 251
050dfae0 252=item 2
24e8e380 253
050dfae0 254If you have built perl using any of the other methods, type
9a997319 255
050dfae0 256 install_perl -processor PROCESSOR -name NAME
24e8e380 257
050dfae0 258where PROCESSOR is mc68020, i80860, pa7100, or pa8000, as
259appropriate, and NAME is perl or perl5, according to which name
260you wish to use.
24e8e380 261
050dfae0 262This command macro will install perl and all of its related
263files in the proper directories.
264
265=item 3
9a997319 266
267While there are currently no architecture-specific
268extensions or modules distributed with perl, the following
269directories can be used to hold such files:
24e8e380 270
050dfae0 271 >system>ported>lib>perl5>5.8.0>68k
272 >system>ported>lib>perl5>5.8.0>860
273 >system>ported>lib>perl5>5.8.0>7100
274 >system>ported>lib>perl5>5.8.0>8000
24e8e380 275
050dfae0 276=item 4
9a997319 277
278Site-specific perl extensions and modules can be installed in one of
279two places. Put architecture-independent files into:
24e8e380 280
050dfae0 281 >system>ported>lib>perl5>site_perl>5.8.0
24e8e380 282
050dfae0 283Put site-specific architecture-dependent files into one of the
284following directories:
24e8e380 285
050dfae0 286 >system>ported>lib>perl5>site_perl>5.8.0>68k
287 >system>ported>lib>perl5>site_perl>5.8.0>860
288 >system>ported>lib>perl5>site_perl>5.8.0>7100
289 >system>ported>lib>perl5>site_perl>5.8.0>8000
24e8e380 290
050dfae0 291=item 5
9a997319 292
293You can examine the @INC variable from within a perl program
294to see the order in which Perl searches these directories.
495c5fdc 295
9a997319 296=back
297
298=head1 USING PERL IN VOS
299
a83b6f46 300=head2 Unimplemented Features of Perl on VOS
495c5fdc 301
5b8c1387 302If perl is built with the alpha version of VOS POSIX.1 support
303and if it attempts to call an unimplemented VOS POSIX.1
304function, it will print a fatal error message and enter the VOS
305debugger. This error is not recoverable. See vos_dummies.c for
306a list of the unimplemented POSIX.1 functions. To see what
307functions are unimplemented and what the error message looks
308like, compile and execute "test_vos_dummies.c".
24e8e380 309
a83b6f46 310=head2 Restrictions of Perl on VOS
495c5fdc 311
24e8e380 312This port of Perl version 5 to VOS prefers Unix-style,
313slash-separated pathnames over VOS-style greater-than-separated
314pathnames. VOS-style pathnames should work in most contexts, but
315if you have trouble, replace all greater-than characters by slash
316characters. Because the slash character is used as a pathname
317delimiter, Perl cannot process VOS pathnames containing a slash
318character in a directory or file name; these must be renamed.
495c5fdc 319
24e8e380 320This port of Perl also uses Unix-epoch date values internally.
321As long as you are dealing with ASCII character string
322representations of dates, this should not be an issue. The
323supported epoch is January 1, 1980 to January 17, 2038.
495c5fdc 324
24e8e380 325See the file pod/perlport.pod for more information about the VOS
326port of Perl.
495c5fdc 327
9a997319 328=head1 SUPPORT STATUS
495c5fdc 329
495c5fdc 330I'm offering this port "as is". You can ask me questions, but I
5b8c1387 331can't guarantee I'll be able to answer them. There are some
24e8e380 332excellent books available on the Perl language; consult a book
333seller.
495c5fdc 334
050dfae0 335If you want a supported version of perl for VOS, purchase the VOS
336GNU C++ and GNU Tools Release 2.0.1 product from Stratus
337Technologies, along with a support contract (or from anyone else
338who will sell you support).
339
9a997319 340=head1 AUTHOR
341
4f3de37c 342Paul Green (Paul.Green@stratus.com)
9a997319 343
344=head1 LAST UPDATE
345
050dfae0 346February 15, 2001
9a997319 347
348=cut