Upgrade to Tie::File 0.20.
[p5sagit/p5-mst-13.2.git] / README.vos
index ab9d99d..016d6c9 100644 (file)
-Perl 5 README file for the Stratus VOS operating system.
-Paul Green (Paul_Green@stratus.com)
-August 12, 1998
-
-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
+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 file contains notes for building perl on the Stratus VOS
+operating system.  Perl is a scripting or macro language that is
+popular on many systems.  See L<perlbook> for a number of good
 books on Perl.
 
-Most of the Perl features should work on VOS.  However, any
+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.
+
+If you are running VOS Release 14.4.1 or later, you can obtain a
+pre-compiled, supported copy of perl by purchasing Release 2.0.1
+of the VOS GNU C++ and GNU Tools product from Stratus
+Technologies.
+
+=head2 Multiple methods to build perl for VOS
+
+If you elect to build perl from its source code, you have several
+different ways that you can build perl.  The method that you use
+depends on the version of VOS that you are using and on the
+architecture of you Stratus hardware platform.
+
+=over 5
+
+=item 1
+
+If you have a Stratus XA2000 (Motorola 68k-based) platform, you
+must build perl using the alpha version of VOS POSIX support and
+using the VOS Standard C Cross-compiler.  You must build perl on
+VOS Release 14.1.0 (or later) on an XA/R or Continuum platform.
+
+This version of perl is properly called "miniperl" because it
+does not contain the full perl functionality.
+
+You must build perl with the compile_perl.cm command macro found
+in the vos subdirectory.
+
+=item 2
+
+If you have a Stratus XA/R (Intel i860-based) platform, you must
+build perl using the alpha version of VOS POSIX support and using
+the VOS Standard C compiler or cross-compiler.  You must build
+perl on VOS Release 14.1.0 (or later) on an XA/R or Continuum
+platform.
+
+This version of perl is properly called "miniperl" because it
+does not contain the full perl functionality.
+
+You must build perl with the compile_perl.cm command macro found
+in the vos subdirectory.
+
+=item 3
+
+If you have a Stratus Continuum (PARISC-based) platform that is
+running a version of VOS earlier than VOS 14.3.0, you must build
+perl using the alpha version of VOS POSIX support and using the
+VOS Standard C compiler or cross-compiler.  You must build perl
+on VOS Release 14.1.0 (or later) on an XA/R or Continuum
+platform.
+
+This version of perl is properly called "miniperl" because it
+does not contain the full perl functionality.
+
+You must build perl with the compile_perl.cm command macro found
+in the vos subdirectory.
+
+=item 4
+
+If you have a Stratus Continuum (PARISC-based) platform that is
+running VOS Release 14.3.0 through VOS Release 14.4.0, you must
+build perl using the generally-available version of VOS POSIX
+support, and using either the VOS Standard C compiler or the VOS
+GNU C compiler.  You must build perl on VOS Release 14.3.0 (or
+later) on a Continuum platform.
+
+This version of perl is properly called "miniperl" because it
+does not contain the full perl functionality.
+
+You must build perl with the compile_perl.cm command macro found
+in the vos subdirectory.
+
+=item 5
+
+If you have a Stratus Continuum (PA-RISC-based) platform that is
+running VOS Release 14.4.1 or later, you must build perl using
+the generally-available version of VOS POSIX support.  You must
+use the VOS GNU C compiler and the VOS GNU Tools product.  You
+must build perl on VOS Release 14.4.1 (or later) on a Continuum
+platform.
+
+This version of perl is properly called "full perl" because it
+contains the full perl functionality.
+
+You must use the supplied Configure script and makefiles to build
+perl.
+
+=back
+
+=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 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 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 (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.  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 using the supplied VOS command macros, 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.
+
+To build perl using the supplied Configure script and makefiles,
+execute the following commands.
+
+     !add_library_path command >system>gnu_library>bin -after '(current_dir)'
+     !bash
+          gzip -d perl-5.8.0.tar.gz
+          tar -xvf perl-5.8.0.tar
+          cd perl-5.8.0
+          Configure -d
+          gmake
+
+If you wish to run the test cases, type:
+
+          gmake test
+
+=head2 Installing Perl 5 on VOS
+
+=over 4
+
+=item 1
+
+If you have built perl using the Configure script, ensure that
+you have modify permission to >system>ported and type
+
+     gmake install
+
+=item 2
+
+If you have built perl using any of the other methods, type
+
+     install_perl -processor PROCESSOR -name NAME
+
+where PROCESSOR is mc68020, i80860, pa7100, or pa8000, as
+appropriate, and NAME is perl or perl5, according to which name
+you wish to use.
+
+This command macro will install perl and all of its related
+files in the proper directories.
+
+=item 3
+
+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>lib>perl5>5.8.0>68k
+     >system>ported>lib>perl5>5.8.0>860
+     >system>ported>lib>perl5>5.8.0>7100
+     >system>ported>lib>perl5>5.8.0>8000
+
+=item 4
+
+Site-specific perl extensions and modules can be installed in one of
+two places.  Put architecture-independent files into:
+
+     >system>ported>lib>perl5>site_perl>5.8.0
+
+Put site-specific architecture-dependent files into one of the
+following directories:
+
+     >system>ported>lib>perl5>site_perl>5.8.0>68k
+     >system>ported>lib>perl5>site_perl>5.8.0>860
+     >system>ported>lib>perl5>site_perl>5.8.0>7100
+     >system>ported>lib>perl5>site_perl>5.8.0>8000
+
+=item 5
+
+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 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 of Perl on VOS
 
-     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.
+
+If you want a supported version of perl for VOS, purchase the VOS
+GNU C++ and GNU Tools Release 2.0.1 product from Stratus
+Technologies, along with a support contract (or from anyone else
+who will sell you support).
+
+=head1 AUTHOR
+
+Paul Green (Paul.Green@stratus.com)
+
+=head1 LAST UPDATE
 
-(end)
+February 15, 2001
 
+=cut