This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
1; is not a valid no-op for /bin/sh, but true is.
[perl5.git] / README.vos
index 016d6c9..2283fc1 100644 (file)
@@ -13,282 +13,77 @@ 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.
 
-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
+These are instructions for building Perl from source.  This version of
+Perl is not supported on VOS Release 14.2 or earlier releases.  If you
+have a Continuum platform running VOS Release 14.3 through 14.7,
+download Perl from the Stratus Anonymous FTP site at
+ftp://ftp.stratus.com/pub/vos/posix/ga/continuum/continuum.html.  If
+you have a V Series platform running VOS Release 15.0 or later, or if
+you have a V Series platform running OpenVOS Release 17.0 or later,
+download Perl from
+ftp://ftp.stratus.com/pub/vos/posix/ga/v-series/v-series.html.  The
+perl distribution files on the Stratus anonymous FTP site are stored
+in a format called a "bundled file".  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.
+(or later) of the VOS GNU C/C++ and GNU Tools product from
+Stratus Technologies.
 
-=head2 Multiple methods to build perl for VOS
+=head1 BUILDING 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.
+To build perl from its source code on the Stratus Continuum
+platform, you must be have VOS Release 14.5.0 or later, the STCP
+product, and the GNU C/C++ and GNU Tools, Release 2.0.1 or
+later.  On the V Series platform you must have VOS Release
+15.0.0 or later, and any version of the GNU C/C++ and GNU Tools
+product.
 
-=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", "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.
+To build full perl using the supplied Configure script and
+makefiles, change to the "vos" subdirectory and type the command
+"compile_full_perl" or "start_process compile_full_perl".  This
+will configure, build, and test perl.
 
 =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.  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
+you have modify and default write permission to C<<
+>system>ported >> and all subdirectories.  Then 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.
+While there are currently no architecture-specific extensions or
+modules distributed with perl, the following directories can be
+used to hold such files (replace the string VERSION by the
+appropriate version number):
 
-This command macro will install perl and all of its related
-files in the proper directories.
+     >system>ported>lib>perl5>VERSION>7100
+     >system>ported>lib>perl5>VERSION>8000
+     >system>ported>lib>perl5>VERSION>i786
 
 =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
+     >system>ported>lib>perl5>site_perl>VERSION
 
 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
+     >system>ported>lib>perl5>site_perl>VERSION>7100
+     >system>ported>lib>perl5>site_perl>VERSION>8000
+     >system>ported>lib>perl5>site_perl>VERSION>i786
 
-=item 5
+=item 4
 
 You can examine the @INC variable from within a perl program
 to see the order in which Perl searches these directories.
@@ -297,16 +92,6 @@ to see the order in which Perl searches these directories.
 
 =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,
@@ -325,6 +110,42 @@ 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.
 
+=head2 Handling of underflow and overflow
+
+Prior to VOS Release 14.7.0, VOS does not support automatically
+mapping overflowed floating-point values to +infinity, nor
+automatically mapping underflowed floating-point values to zero,
+unlike many other platforms.  The Perl pack function has been
+modified to perform such mapping in software on VOS.  Performing
+other floating-point computations that underflow or overflow
+will probably result in SIGFPE.  Don't push your luck.
+
+As of VOS Release 14.7.0 or later, the VOS POSIX runtime sets up
+the PA-RISC and IA-32 hardware floating-point status register so
+that the overflow and underflow exceptions do not trap, but
+instead automatically convert the result to infinity or zero, as
+appropriate.  As of this writing, there are still floating-point
+operations that can trap, for example, subtracting two infinite
+values.  This is recorded as suggestion posix-1022, which has
+been fixed in VOS Release 15.2 and higher.
+
+=head1 TEST STATUS
+
+When Perl 5.9.0 is built using the native build process on VOS
+Release 14.7.0 and GNU C++/GNU Tools 2.0.2a, all but nine
+attempted tests either pass or result in TODO (ignored)
+failures.  The tests that fail are:
+
+t/io/dup, test 2
+t/io/tell, test 28
+t/op/pack, test 0
+ext/B/t/bytecode, test 1
+ext/Devel/Peek/t/Peek, test 1
+ext/Encode/t/enc_module, test 1
+ext/IO/t/io_dup, test 2
+lib/ExtUtils/t/MM_Unix, test 94
+lib/Net/ing/t/450_service, test 8
+
 =head1 SUPPORT STATUS
 
 I'm offering this port "as is".  You can ask me questions, but I
@@ -332,10 +153,10 @@ 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).
+If you want a supported version of perl for VOS, purchase the
+VOS GNU C/C++ and GNU Tools Release 2.0.1 (or later) product from
+Stratus Technologies, along with a support contract (or from
+anyone else who will sell you support).
 
 =head1 AUTHOR
 
@@ -343,6 +164,6 @@ Paul Green (Paul.Green@stratus.com)
 
 =head1 LAST UPDATE
 
-February 15, 2001
+October 6, 2010
 
 =cut