Initial commit of OpenSPARC T2 architecture model.
[OpenSPARC-T2-SAM] / sam-t2 / devtools / v8plus / man / man1 / perlvos.1
.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sh \" Subsection heading
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings. \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote. | will give a
.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to
.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C'
.\" expand to `' in nroff, nothing in troff, for use with C<>.
.tr \(*W-|\(bv\*(Tr
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
. ds -- \(*W-
. ds PI pi
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
. ds L" ""
. ds R" ""
. ds C` ""
. ds C' ""
'br\}
.el\{\
. ds -- \|\(em\|
. ds PI \(*p
. ds L" ``
. ds R" ''
'br\}
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
.\" entries marked with X<> in POD. Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.if \nF \{\
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. nr % 0
. rr F
.\}
.\"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.hy 0
.if n .na
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear. Run. Save yourself. No user-serviceable parts.
. \" fudge factors for nroff and troff
.if n \{\
. ds #H 0
. ds #V .8m
. ds #F .3m
. ds #[ \f1
. ds #] \fP
.\}
.if t \{\
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
. ds #V .6m
. ds #F 0
. ds #[ \&
. ds #] \&
.\}
. \" simple accents for nroff and troff
.if n \{\
. ds ' \&
. ds ` \&
. ds ^ \&
. ds , \&
. ds ~ ~
. ds /
.\}
.if t \{\
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
. \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
. \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
. \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
. ds : e
. ds 8 ss
. ds o a
. ds d- d\h'-1'\(ga
. ds D- D\h'-1'\(hy
. ds th \o'bp'
. ds Th \o'LP'
. ds ae ae
. ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "PERLVOS 1"
.TH PERLVOS 1 "2006-01-07" "perl v5.8.8" "Perl Programmers Reference Guide"
.SH "NAME"
README.vos \- Perl for Stratus VOS
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
This file contains notes for building perl on the Stratus \s-1VOS\s0
operating system. Perl is a scripting or macro language that is
popular on many systems. See perlbook for a number of good
books on Perl.
.PP
These are instructions for building Perl from source. Most people can
simply download a pre-compiled distribution from the \s-1VOS\s0 anonymous \s-1FTP\s0
site. If you are running \s-1VOS\s0 Release 14.2.0 or earlier, download Perl
from ftp://ftp.stratus.com/pub/vos/posix/alpha/alpha.html If you are
running \s-1VOS\s0 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
.PP
If you are running \s-1VOS\s0 Release 14.4.1 or later, you can obtain a
pre\-compiled, supported copy of perl by purchasing Release 2.0.1
(or later) of the \s-1VOS\s0 \s-1GNU\s0 \*(C+ and \s-1GNU\s0 Tools product from Stratus
Technologies.
.Sh "Multiple methods to build perl for \s-1VOS\s0"
.IX Subsection "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 \s-1VOS\s0 that you are using and on the
architecture of your Stratus hardware platform.
.IP "1" 5
.IX Item "1"
If you have a Stratus \s-1XA2000\s0 (Motorola 68k\-based) platform, you
must build perl using the alpha version of \s-1VOS\s0 \s-1POSIX\s0 support and
using the \s-1VOS\s0 Standard C Cross\-compiler. You must build perl on
\&\s-1VOS\s0 Release 14.1.0 (or later) on an \s-1XA/R\s0 or Continuum platform.
.Sp
This version of perl is properly called \*(L"miniperl\*(R" because it
does not contain the complete perl functionality.
.Sp
You must build perl with the compile_perl.cm command macro found
in the vos subdirectory.
.IP "2" 5
.IX Item "2"
If you have a Stratus \s-1XA/R\s0 (Intel i860\-based) platform, you must
build perl using the alpha version of \s-1VOS\s0 \s-1POSIX\s0 support and using
the \s-1VOS\s0 Standard C compiler or cross\-compiler. You must build
perl on \s-1VOS\s0 Release 14.1.0 (or later) on an \s-1XA/R\s0 or Continuum
platform.
.Sp
This version of perl is properly called \*(L"miniperl\*(R" because it
does not contain the complete perl functionality.
.Sp
You must build perl with the compile_perl.cm command macro found
in the vos subdirectory.
.IP "3" 5
.IX Item "3"
If you have a Stratus Continuum (PA\-RISC\-based) platform that is
running a version of \s-1VOS\s0 earlier than \s-1VOS\s0 14.3.0, you must build
perl using the alpha version of \s-1VOS\s0 \s-1POSIX\s0 support and using the
\&\s-1VOS\s0 Standard C compiler or cross\-compiler. You must build perl
on \s-1VOS\s0 Release 14.1.0 (or later) on an \s-1XA/R\s0 or Continuum
platform.
.Sp
This version of perl is properly called \*(L"miniperl\*(R" because it
does not contain the complete perl functionality.
.Sp
You must build perl with the compile_perl.cm command macro found
in the vos subdirectory.
.IP "4" 5
.IX Item "4"
If you have a Stratus Continuum (PA\-RISC\-based) platform that is
running \s-1VOS\s0 Release 14.3.0 through \s-1VOS\s0 Release 14.4.1, you must
build perl using the generally-available version of \s-1VOS\s0 \s-1POSIX\s0
support, and using either the \s-1VOS\s0 Standard C compiler or the \s-1VOS\s0
\&\s-1GNU\s0 C compiler. You must build perl on \s-1VOS\s0 Release 14.3.0 (or
later) on a Continuum platform.
.Sp
This version of perl is properly called \*(L"miniperl\*(R" because it
does not contain the complete perl functionality.
.Sp
You must build perl with the compile_perl.cm command macro found
in the vos subdirectory.
.IP "5" 5
.IX Item "5"
If you have a Stratus Continuum (PA\-RISC\-based) platform that is
running \s-1VOS\s0 Release 14.5.0 or later, you can either use the
previous method to build \*(L"miniperl\*(R" or you can build \*(L"full
perl\*(R", 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 \s-1VOS\s0 \s-1POSIX\s0
support. You must use the \s-1VOS\s0 \s-1GNU\s0 C compiler and the \s-1VOS\s0 \s-1GNU\s0
C/\*(C+ and \s-1GNU\s0 Tools Release 2.0.1 (or later) product. You must
build full perl on \s-1VOS\s0 Release 14.5.0 (or later) on a Continuum
platform.
.Sp
You must build full perl with the compile_full_perl.cm command
macro found in the vos subdirectory.
.Sh "Stratus \s-1POSIX\s0 Support"
.IX Subsection "Stratus POSIX Support"
Note that there are two different implementations of \s-1POSIX\s0.1
support on \s-1VOS\s0. There is an alpha version of \s-1POSIX\s0 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 \s-1POSIX\s0 that comes with \s-1VOS\s0
Release 14.3.0 or higher. This port of \s-1POSIX\s0 will compile and
bind with either version of \s-1POSIX\s0.
.PP
Most of the Perl features should work on \s-1VOS\s0 regardless of which
version of \s-1POSIX\s0 that you are using. However, the alpha version
of \s-1POSIX\s0 is missing a number of key functions, and therefore any
attempt by perl.pm to call the following unimplemented \s-1POSIX\s0
functions will result in an error message and an immediate and
fatal call to the \s-1VOS\s0 debugger. They are \*(L"dup\*(R", \*(L"fork\*(R", and
\&\*(L"waitpid\*(R". The lack of these functions prevents you from
starting \s-1VOS\s0 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 \s-1POSIX\s0.
.SH "INSTALLING PERL IN VOS"
.IX Header "INSTALLING PERL IN VOS"
.Sh "Compiling Perl 5 on \s-1VOS\s0"
.IX Subsection "Compiling Perl 5 on VOS"
Before you can build Perl 5 on \s-1VOS\s0, you need to have or acquire the
following additional items.
.IP "1" 5
.IX Item "1"
The \s-1VOS\s0 Standard C Compiler (or the \s-1VOS\s0 Standard C
Cross\-Compiler) and the \s-1VOS\s0 C Runtime. If you are using
the generally-available version of \s-1POSIX\s0 support, you may
instead use the \s-1VOS\s0 \s-1GNU\s0 C/\*(C+ Compiler. These are
standard Stratus products.
.IP "2" 5
.IX Item "2"
Either the \s-1VOS\s0 \s-1OS\s0 \s-1TCP/IP\s0 or \s-1STCP\s0 product set. If you are
building with the alpha version of \s-1POSIX\s0 you need the \s-1OS\s0
\&\s-1TCP/IP\s0 product set. If you are building with the
generally-available version of \s-1POSIX\s0 you need the \s-1STCP\s0
product set. These are standard Stratus products.
.IP "3" 5
.IX Item "3"
Either the alpha or generally-available version of the \s-1VOS\s0
\&\s-1POSIX\s0.1 environment.
.Sp
The alpha version of \s-1POSIX\s0.1 support is available on the
Stratus \s-1FTP\s0 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 (\s-1URL\s0)
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 \s-1NOT\s0 a standard Stratus product.
.Sp
In \s-1VOS\s0 Release 14.3.0, the generally-available version of
\&\s-1POSIX\s0.1 support is bundled with the \s-1VOS\s0 Standard C compiler
(or Standard C Cross\-Compiler). In \s-1VOS\s0 Release 14.4.0 or
higher, it is also bundled with the \s-1VOS\s0 C Runtime. These
are standard Stratus products.
.IP "4" 5
.IX Item "4"
You must compile this version of Perl 5 on \s-1VOS\s0 Release
14.1.0 or higher because some of the perl source files
contain more than 32,767 source lines. Due to \s-1VOS\s0
release-compatibility rules, this port of perl may not
execute on \s-1VOS\s0 Release 12 or earlier.
.IP "5" 5
.IX Item "5"
If you are using the generally-available version of \s-1VOS\s0 \s-1POSIX\s0
support, then you should also acquire the \s-1VOS\s0 \s-1GNU\s0 C/\*(C+ Compiler
and \s-1GNU\s0 Tools product. When perl is built with this version of
\&\s-1POSIX\s0 support, it assumes that it can find \*(L"bash\*(R", \*(L"sed\*(R" and
other POSIX-compatible commands in the directory
/system/gnu_library/bin.
.PP
To build perl using the supplied \s-1VOS\s0 command macros, change to
the \*(L"vos\*(R" subdirectory and type the command \*(L"compile_perl
\&\-processor X\*(R", where X is the processor type (mc68020, i80860,
pa7100, pa8000) that you wish to use. Note that the
generally-available version of \s-1POSIX\s0.1 support is not available
for the mc68020 or i80860 processors.
.PP
Use the \*(L"\-version alpha\*(R" control argument to build perl with
the alpha version of \s-1POSIX\s0 support, and use the \*(L"\-version
ga\*(R" control argument to build it with the
generally-available version of \s-1POSIX\s0. The default is \*(L"ga\*(R".
.PP
Use the \*(L"\-compiler cc\*(R" control argument to build perl with
the \s-1VOS\s0 Standard C compiler. Use the \*(L"\-compiler gcc\*(R"
control argument to build it with the \s-1GNU\s0 \s-1GCC\s0 compiler. The
default is \*(L"cc\*(R".
.PP
You must have purchased the \s-1VOS\s0 Standard C Cross Compiler in
order to compile perl for a processor type that is different
from the processor type of the module.
.PP
Note that code compiled for the pa7100 processor type can
execute on the \s-1PA7100\s0, \s-1PA8000\s0, \s-1PA8500\s0 and \s-1PA8600\s0 processors, and
that code compiled for the pa8000 processor type can execute on
the \s-1PA8000\s0, \s-1PA8500\s0 and \s-1PA8600\s0 processors.
.PP
To build full perl using the supplied Configure script and
makefiles, change to the \*(L"vos\*(R" subdirectory and type the command
\&\*(L"compile_full_perl\*(R" or \*(L"start_process compile_full_perl\*(R". This
will configure, build, and test perl.
.Sh "Installing Perl 5 on \s-1VOS\s0"
.IX Subsection "Installing Perl 5 on VOS"
.IP "1" 4
.IX Item "1"
If you have built perl using the Configure script, ensure that
you have modify permission to \f(CW\*(C`>system>ported\*(C'\fR and type
.Sp
.Vb 1
\& gmake install
.Ve
.IP "2" 4
.IX Item "2"
If you have built perl using any of the other methods, type
.Sp
.Vb 1
\& install_perl -processor PROCESSOR -name NAME
.Ve
.Sp
where \s-1PROCESSOR\s0 is mc68020, i80860, pa7100, or pa8000, as
appropriate, and \s-1NAME\s0 is perl or perl5, according to which name
you wish to use.
.Sp
This command macro will install perl and all of its related
files in the proper directories.
.IP "3" 4
.IX 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:
.Sp
.Vb 4
\& >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
.Ve
.IP "4" 4
.IX Item "4"
Site-specific perl extensions and modules can be installed in one of
two places. Put architecture-independent files into:
.Sp
.Vb 1
\& >system>ported>lib>perl5>site_perl>5.8.0
.Ve
.Sp
Put site-specific architecture-dependent files into one of the
following directories:
.Sp
.Vb 4
\& >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
.Ve
.IP "5" 4
.IX Item "5"
You can examine the \f(CW@INC\fR variable from within a perl program
to see the order in which Perl searches these directories.
.SH "USING PERL IN VOS"
.IX Header "USING PERL IN VOS"
.Sh "Unimplemented Features of Perl on \s-1VOS\s0"
.IX Subsection "Unimplemented Features of Perl on VOS"
If perl is built with the alpha version of \s-1VOS\s0 \s-1POSIX\s0.1 support
and if it attempts to call an unimplemented \s-1VOS\s0 \s-1POSIX\s0.1
function, it will print a fatal error message and enter the \s-1VOS\s0
debugger. This error is not recoverable. See vos_dummies.c for
a list of the unimplemented \s-1POSIX\s0.1 functions. To see what
functions are unimplemented and what the error message looks
like, compile and execute \*(L"test_vos_dummies.c\*(R".
.Sh "Restrictions of Perl on \s-1VOS\s0"
.IX Subsection "Restrictions of Perl on VOS"
This port of Perl version 5 to \s-1VOS\s0 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 \s-1VOS\s0 pathnames containing a slash
character in a directory or file name; these must be renamed.
.PP
This port of Perl also uses Unix-epoch date values internally.
As long as you are dealing with \s-1ASCII\s0 character string
representations of dates, this should not be an issue. The
supported epoch is January 1, 1980 to January 17, 2038.
.PP
See the file pod/perlport.pod for more information about the \s-1VOS\s0
port of Perl.
.Sh "Handling of underflow and overflow"
.IX Subsection "Handling of underflow and overflow"
Prior to \s-1VOS\s0 Release 14.7.0, \s-1VOS\s0 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 \s-1VOS\s0. Performing
other floating-point computations that underflow or overflow
will probably result in \s-1SIGFPE\s0. Don't push your luck.
.PP
As of \s-1VOS\s0 Release 14.7.0, the \s-1VOS\s0 \s-1POSIX\s0 runtime sets up the
PA-RISC 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 is not
yet fixed.
.SH "TEST STATUS"
.IX Header "TEST STATUS"
When Perl 5.8.3 is built using the native build process on \s-1VOS\s0
Release 14.7.0 and \s-1GNU\s0 \*(C+/GNU Tools 2.0.2a, all but three
attempted tests either pass or result in \s-1TODO\s0 (ignored)
failures. The tests that fail are:
.PP
t/io/tell.t, test 28
t/op/pack.t, test 39
lib/Net/ing/t/450_service.t, test 8
.SH "SUPPORT STATUS"
.IX Header "SUPPORT STATUS"
I'm offering this port \*(L"as is\*(R". 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.
.PP
If you want a supported version of perl for \s-1VOS\s0, purchase the
\&\s-1VOS\s0 \s-1GNU\s0 \*(C+ and \s-1GNU\s0 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).
.SH "AUTHOR"
.IX Header "AUTHOR"
Paul Green (Paul.Green@stratus.com)
.SH "LAST UPDATE"
.IX Header "LAST UPDATE"
January 15, 2004