-Perl 5 README file for the Stratus VOS operating system.
-Paul Green (Paul_Green@stratus.com)
-August 12, 1998
+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
-Introduction
-------------
-This is a port of Perl version 5, revision 005-02, to VOS. Perl
-is a scripting or macro language that is popular on many
-systems. See your local computer bookstore for a number of good
-books on Perl.
+This is a port of Perl version 5, revision 7, to VOS. Perl is a
+scripting or macro language that is popular on many systems. See your
+local computer bookstore for a number of good books on Perl.
-Most of the Perl features should work on VOS. However, any
+=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/alpha/alpha.html). There
+is a generally-available version of POSIX that comes with the
+VOS Standard C compiler and C runtime in VOS Release 14.3.0 or
+higher. This port of POSIX 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", "execlp",
-"execl", "execvp", "fork", and "waitpid".
+fatal call to the VOS debugger. They are "dup", "fork", and
+"waitpid". The lack of these functions pretty much 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
-Compiling Perl 5 on VOS
------------------------
Before you can build Perl 5 on VOS, you need to have or acquire the
following additional items.
-1. The VOS Standard C Compiler and Runtime, or the VOS Standard C
- Cross-Compiler. This is a standard Stratus product.
-
-2. The VOS OS TCP/IP product set. While the necessary header files
- are included in this distribution, you still need the appropriate
- object files in order to bind perl.pm. This is a standard
- Stratus product.
-
-3. The VOS POSIX.1 environment. As of this writing, this is
- available on the VOS FTP site. Login to ftp.stratus.com
- anonymously and get the file /pub/vos/alpha/posix.save.evf.gz in
- binary file-transfer mode. Or use the Uniform Resource Locator
- (URL) ftp://ftp.stratus.com/pub/vos/alpha/posix.save.evf.gz from
- your web browser. This is not a standard Stratus product.
-
-To build build 5, change to one of the VOS object directories
-(e.g., perl5.005_02>vos>obj), and give the command "<build". If
-you have the cross-compilers and wish to build for a specific
-architecture, say "<build -processor pa7100" (for example). You
-can also customize the "compile_perl.cm" command macro for your
-system.
-
-Changes to Perl for VOS
------------------------
-1. The header perl.h was changed to include vosish.h instead
- of unixish.h. This change is necessary because VOS POSIX.1
- does not (yet) implement the getgrname() or getgrgid()
- functions.
-
-Unimplemented Features
-----------------------
-If Perl 5 attempts to call an unimplemented VOS POSIX.1
+=over 5
+
+=item 1
+
+The VOS Standard C Compiler and Runtime, or the VOS Standard C
+Cross-Compiler. This is a standard Stratus product.
+
+=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/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.
+
+The generally-available version of POSIX.1 support is
+bundled with the VOS Standard C compiler and Runtime (or
+Cross-Compiler) in VOS Release 14.3.0 or higher. This is a
+standard Stratus product.
+
+=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.
+
+=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.
+
+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
+
+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 the
-error message looks like, compile and execute
-"test_vos_dummies.c".
+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".
-Restrictions
-------------
-This port of Perl version 5 to VOS uses Unix-style,
-slash-separated pathnames, not VOS-style greater-than-separated
-pathnames. If you wish to have it use VOS-style pathnames, try
-setting the external variable s$c_options to 4 with the
-following command line. Note that this way of configuring Perl
-5 has not been tested; I don't know if Perl can handle the
-presence of the greater-thans, and the absence of the slashes.
+=head2 Restrictions
- set_external_variable s$c_options -in perl.pm -type integer -to 4
+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.
-The following command can be used to check the value:
+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.
- get_external_variable s$c_options -in perl.pm -type integer
+See the file pod/perlport.pod for more information about the VOS
+port of Perl.
-See the documentation for VOS POSIX.1 for the full set of option
-values.
+=head1 SUPPORT STATUS
-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; I don't know much
-about Perl itself; I'm still learning that.
+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
-(end)
+October 24, 2000
+=cut