X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=README.vos;h=08c44bbd92019819595d9d1bb76b200d2c318355;hb=484fdf61e8653b10160ba1e8011888f52ab6825a;hp=ab9d99d07bad10319c6a6df893dcdccf54b00c7b;hpb=495c5fdc8fec0d7d0f72a84d44bb3e7cfc448d43;p=p5sagit%2Fp5-mst-13.2.git diff --git a/README.vos b/README.vos index ab9d99d..08c44bb 100644 --- a/README.vos +++ b/README.vos @@ -1,87 +1,355 @@ -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 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 complete 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 complete 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 complete 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.1, 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 complete 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.5.0 or later, you can either use the +previous method to build "miniperl" or you can build "full +perl", which contains the complete functionality of perl. I +strongly recommend that you build full perl. To build full +perl, you must use the generally-available version of VOS POSIX +support. You must use the VOS GNU C compiler and the VOS GNU +C/C++ and GNU Tools Release 2.0.1 product. You must build full +perl on VOS Release 14.5.0 (or later) on a Continuum platform. + +You must build full perl with the compile_full_perl.cm command +macro found in the vos subdirectory. + +=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 "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". + +=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. -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. +See the file pod/perlport.pod for more information about the VOS +port of Perl. - set_external_variable s$c_options -in perl.pm -type integer -to 4 +=head2 Handling of underflow and overflow -The following command can be used to check the value: +VOS does not support automatically mapping overflowed +floating-point values to +infinity, nor automatically mapping +underflowed floating-point values to -infinity, 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. - get_external_variable s$c_options -in perl.pm -type integer +=head1 TEST STATUS -See the documentation for VOS POSIX.1 for the full set of option -values. +When Perl is built using the native build process on VOS Release +14.5.0 and GNU C++/GNU Tools 2.0.1, all attempted tests either +pass or result in TODO (ignored) failures. + +=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) +May 13, 2002 +=cut