summaryrefslogtreecommitdiff
path: root/README.vos
blob: 61b2fa23ce5706805a6f4bfee44ae31c7eb515dc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
If you read this file _as_is_, just ignore the funny characters you
see. It is written in the POD format (see pod/perlpod.pod) which is
specially designed to be readable as is.

=head1 NAME

README.vos - Perl for Stratus VOS

=head1 SYNOPSIS

This is a port of Perl version 5 to VOS.  Perl is a scripting or
macro language that is popular on many systems.  See L<perlbook>
for a number of good books on Perl.

These are instructions for building Perl from source.  Most people can
simply download a pre-compiled distribution from the VOS anonymous FTP
site.  If you are running VOS Release 14.2.0 or earlier, download Perl
from ftp://ftp.stratus.com/pub/vos/posix/alpha/alpha.html.  If you are
running VOS Release 14.3.0 or later, download Perl from
ftp://ftp.stratus.com/pub/vos/posix/ga/ga.html.  Instructions for
unbundling the Perl distribution file are at
ftp://ftp.stratus.com/pub/vos/utility/utility.html.

=head2 Stratus POSIX Support

Note that there are two different implementations of POSIX.1
support on VOS.  There is an alpha version of POSIX that is
available from the Stratus anonymous ftp site
(ftp://ftp.stratus.com/pub/vos/posix/).  There is
a generally-available version of POSIX that comes with the VOS
Standard C Compiler or VOS C runtime in VOS Release 14.3.0 or
higher.  This port of perl will compile and bind with either
version of POSIX.

Most of the Perl features should work on VOS regardless of which
version of POSIX that you are using.  However, the alpha version
of POSIX is missing a number of key functions, and therefore any
attempt by perl.pm to call the following unimplemented POSIX
functions will result in an error message and an immediate and
fatal call to the VOS debugger.  They are "dup", "fork", and
"waitpid".  The lack of these functions prevents you from
starting VOS commands and grabbing their output in perl.  The
workaround is to run the commands outside of perl, then have perl
process the output file.  These functions are all available in
the generally-available version of POSIX.

=head1 INSTALLING PERL IN VOS

=head2 Compiling Perl 5 on VOS

Before you can build Perl 5 on VOS, you need to have or acquire the
following additional items.

=over 5

=item 1

The VOS Standard C Compiler (or the VOS Standard C
Cross-Compiler) and the VOS C Runtime.  If you are using
the generally-available version of POSIX support, you may
instead use the VOS GNU C/C++ Compiler.  These are
standard Stratus products.

=item 2

Either the VOS OS TCP/IP or STCP product set.  If you are
building with the alpha version of POSIX you need the OS
TCP/IP product set.  If you are building with the
generally-available version of POSIX you need the STCP
product set.  These are standard Stratus products.

=item 3

Either the alpha or generally-available version of the VOS
POSIX.1 environment.

The alpha version of POSIX.1 support is available on the
Stratus FTP site.  Login anonymously to ftp.stratus.com and
get the file /pub/vos/posix/alpha/posix.save.evf.gz in
binary file-transfer mode.  Or use the Uniform Resource
Locator (URL)
ftp://ftp.stratus.com/pub/vos/posix/alpha/posix.save.evf.gz from
your web browser.  Instructions for unbundling this file
are at ftp://ftp.stratus.com/pub/vos/utility/utility.html.
This is not a standard Stratus product.

In VOS Release 14.3.0, the generally-available version of
POSIX.1 support is bundled with the VOS Standard C compiler
(or Standard C Cross-Compiler).  In VOS Release 14.4.0 or
higher, it is also bundled with the VOS C Runtime.  These
are standard Stratus products.

=item 4

You must compile this version of Perl 5 on VOS Release
14.1.0 or higher because some of the perl source files
contain more than 32,767 source lines.  Due to VOS
release-compatibility rules, this port of perl may not
execute on VOS Release 12 or earlier.

=item 5

If you are using the generally-available version of VOS POSIX
support, then you should also acquire the VOS GNU C/C++ Compiler
and GNU Tools product because it provides many common Unix or
POSIX commands.  When perl is built with this version of POSIX
support, it assumes that it can find "bash", "sed" and other
POSIX-compatible commands in the directory
/system/gnu_library/bin.

=back

To build perl 5, change to the "vos" subdirectory and type the
command "compile_perl -processor X", where X is the processor
type (mc68020, i80860, pa7100, pa8000) that you wish to use.
Note that the generally-available version of POSIX.1 support is
not available for the mc68020 or i80860 processors.

Use the "-version alpha" control argument to build perl with
the alpha version of POSIX support, and use the "-version
ga" control argument to build it with the
generally-available version of POSIX.  The default is "ga".

Use the "-compiler cc" control argument to build perl with
the VOS Standard C compiler.  Use the "-compiler gcc"
control argument to build it with the GNU GCC compiler.  The
default is "cc".

You must have purchased the VOS Standard C Cross Compiler in
order to compile perl for a processor type that is different
from the processor type of the module.

Note that code compiled for the pa7100 processor type can
execute on the PA7100, PA8000, PA8500 and PA8600 processors, and
that code compiled for the pa8000 processor type can execute on
the PA8000, PA8500 and PA8600 processors.

=head2 Installing Perl 5 on VOS

=over 4

=item 1

Create the directory >system>ported>command_library.

=item 2

Copy the appropriate version of the perl program module to
this directory.  For example, with your current directory
set to the top-level directory of Perl 5, to install the
executable program module for the Motorola 68K
architecture, enter:

          !copy_file vos>obj>perl.pm >system>ported>command_library>*

(If you wish to use both Perl version 4 and Perl version 5,
you must give them different names; for example, perl.pm
and perl5.pm).

=item 3

Create the directory >system>ported>perl>lib.

=item 4

Copy all of the files and subdirectories from the lib
subdirectory into this new directory.  For example, with
the current directory set to the top-level directory of the
perl distribution, enter:

          !copy_dir lib >system>ported>perl>lib>5.7

=item 5

While there are currently no architecture-specific
extensions or modules distributed with perl, the following
directories can be used to hold such files:

          >system>ported>perl>lib>5.7.68k
          >system>ported>perl>lib>5.7.860
          >system>ported>perl>lib>5.7.7100
          >system>ported>perl>lib>5.7.8000

=item 6

Site-specific perl extensions and modules can be installed in one of
two places.  Put architecture-independent files into:

          >system>ported>perl>lib>site>5.7

Put architecture-dependent files into one of the following
directories:

          >system>ported>perl>lib>site>5.7.68k
          >system>ported>perl>lib>site>5.7.860
          >system>ported>perl>lib>site>5.7.7100
          >system>ported>perl>lib>site>5.7.8000

=item 7

You can examine the @INC variable from within a perl program
to see the order in which Perl searches these directories.

=back

=head1 USING PERL IN VOS

=head2 Unimplemented Features of Perl on VOS

If perl is built with the alpha version of VOS POSIX.1 support
and if it attempts to call an unimplemented VOS POSIX.1
function, it will print a fatal error message and enter the VOS
debugger.  This error is not recoverable.  See vos_dummies.c for
a list of the unimplemented POSIX.1 functions.  To see what
functions are unimplemented and what the error message looks
like, compile and execute "test_vos_dummies.c".

=head2 Restrictions of Perl on VOS

This port of Perl version 5 to VOS prefers Unix-style,
slash-separated pathnames over VOS-style greater-than-separated
pathnames.  VOS-style pathnames should work in most contexts, but
if you have trouble, replace all greater-than characters by slash
characters.  Because the slash character is used as a pathname
delimiter, Perl cannot process VOS pathnames containing a slash
character in a directory or file name; these must be renamed.

This port of Perl also uses Unix-epoch date values internally.
As long as you are dealing with ASCII character string
representations of dates, this should not be an issue.  The
supported epoch is January 1, 1980 to January 17, 2038.

See the file pod/perlport.pod for more information about the VOS
port of Perl.

=head1 SUPPORT STATUS

I'm offering this port "as is".  You can ask me questions, but I
can't guarantee I'll be able to answer them.  There are some
excellent books available on the Perl language; consult a book
seller.

=head1 AUTHOR

Paul Green (Paul.Green@stratus.com)

=head1 LAST UPDATE

November 29, 2001

=cut