diff options
author | Jarkko Hietaniemi <jhi@iki.fi> | 2001-02-09 15:11:13 +0000 |
---|---|---|
committer | Jarkko Hietaniemi <jhi@iki.fi> | 2001-02-09 15:11:13 +0000 |
commit | dc5c060f96a5de06c9e1797503c70e8155e23e3e (patch) | |
tree | 1911ed2aa44096e17514f398c3e4de725a551b8f /README.bs2000 | |
parent | 0f5a2e590c3bb0e4ece26f74eeb3121063d229ad (diff) | |
download | perl-dc5c060f96a5de06c9e1797503c70e8155e23e3e.tar.gz |
Rename README.posix-bc to README.bs2000 to avoid confusion
when people think that perlposix-bc.pod tells anything about
Perl and POSIX. Regen toc.
p4raw-id: //depot/perl@8730
Diffstat (limited to 'README.bs2000')
-rw-r--r-- | README.bs2000 | 178 |
1 files changed, 178 insertions, 0 deletions
diff --git a/README.bs2000 b/README.bs2000 new file mode 100644 index 0000000000..a0128fda81 --- /dev/null +++ b/README.bs2000 @@ -0,0 +1,178 @@ +This document is written in pod format hence there are punctuation +characters in in odd places. Do not worry, you've apparently got the +ASCII->EBCDIC translation worked out correctly. You can read more +about pod in pod/perlpod.pod or the short summary in the INSTALL file. + +=head1 NAME + +README.posix-bc - building and installing Perl for BS2000 POSIX. + +=head1 SYNOPSIS + +This document will help you Configure, build, test and install Perl +on BS2000 in the POSIX subsystem. + +=head1 DESCRIPTION + +This is a ported perl for the POSIX subsystem in BS2000 VERSION OSD +V3.1A. It may work on other versions, but that's the one we've tested +it on. + +You may need the following GNU programs in order to install perl: + +=head2 gzip + +We used version 1.2.4, which could be installed out of the box with +one failure during 'make check'. + +=head2 bison + +The yacc coming with BS2000 POSIX didn't work for us. So we had to +use bison. We had to make a few changes to perl in order to use the +pure (reentrant) parser of bison. We used version 1.25, but we had to +add a few changes due to EBCDIC. + +=head2 Unpacking + +To extract an ASCII tar archive on BS2000 POSIX you need an ASCII +filesystem (we used the mountpoint /usr/local/ascii for this). Now +you extract the archive in the ASCII filesystem without +I/O-conversion: + +cd /usr/local/ascii +export IO_CONVERSION=NO +gunzip < /usr/local/src/perl.tar.gz | pax -r + +You may ignore the error message for the first element of the archive +(this doesn't look like a tar archive / skipping to next file...), +it's only the directory which will be created automatically anyway. + +After extracting the archive you copy the whole directory tree to your +EBCDIC filesystem. B<This time you use I/O-conversion>: + +cd /usr/local/src +IO_CONVERSION=YES +cp -r /usr/local/ascii/perl5.005_02 ./ + +=head2 Compiling + +There is a "hints" file for posix-bc that specifies the correct values +for most things. The major problem is (of course) the EBCDIC character +set. We have german EBCDIC version. + +Because of our problems with the native yacc we used GNU bison to +generate a pure (=reentrant) parser for perly.y. So our yacc is +really the following script: + +-----8<-----/usr/local/bin/yacc-----8<----- +#! /usr/bin/sh + +# Bison as a reentrant yacc: + +# save parameters: +params="" +while [[ $# -gt 1 ]]; do + params="$params $1" + shift +done + +# add flag %pure_parser: + +tmpfile=/tmp/bison.$$.y +echo %pure_parser > $tmpfile +cat $1 >> $tmpfile + +# call bison: + +echo "/usr/local/bin/bison --yacc $params $1\t\t\t(Pure Parser)" +/usr/local/bin/bison --yacc $params $tmpfile + +# cleanup: + +rm -f $tmpfile +-----8<----------8<----- + +We still use the normal yacc for a2p.y though!!! We made a softlink +called byacc to distinguish between the two versions: + +ln -s /usr/bin/yacc /usr/local/bin/byacc + +We build perl using GNU make. We tried the native make once and it +worked too. + +=head2 Testing + +We still got a few errors during C<make test>. Some of them are the +result of using bison. Bison prints I<parser error> instead of I<syntax +error>, so we may ignore them. The following list shows +our errors, your results may differ: + +op/numconvert.......FAILED tests 1409-1440 +op/regexp...........FAILED tests 483, 496 +op/regexp_noamp.....FAILED tests 483, 496 +pragma/overload.....FAILED tests 152-153, 170-171 +pragma/warnings.....FAILED tests 14, 82, 129, 155, 192, 205, 207 +lib/bigfloat........FAILED tests 351-352, 355 +lib/bigfltpm........FAILED tests 354-355, 358 +lib/complex.........FAILED tests 267, 487 +lib/dumper..........FAILED tests 43, 45 +Failed 11/231 test scripts, 95.24% okay. 57/10595 subtests failed, 99.46% okay. + +=head2 Install + +We have no nroff on BS2000 POSIX (yet), so we ignored any errors while +installing the documentation. + + +=head2 Using Perl + +BS2000 POSIX doesn't support the shebang notation +(C<#!/usr/local/bin/perl>), so you have to use the following lines +instead: + +: # use perl + eval 'exec /usr/local/bin/perl -S $0 ${1+"$@"}' + if $running_under_some_shell; + +=head2 Floating point anomalies + +There appears to be a bug in the floating point implementation on BS2000 POSIX +systems such that calling int() on the product of a number and a small +magnitude number is not the same as calling int() on the quotient of +that number and a large magnitude number. For example, in the following +Perl code: + + my $x = 100000.0; + my $y = int($x * 1e-5) * 1e5; # '0' + my $z = int($x / 1e+5) * 1e5; # '100000' + print "\$y is $y and \$z is $z\n"; # $y is 0 and $z is 100000 + +Although one would expect the quantities $y and $z to be the same and equal +to 100000 they will differ and instead will be 0 and 100000 respectively. + +=head1 AUTHORS + +Thomas Dorner + +=head1 SEE ALSO + +L<INSTALL>, L<perlport>. + +=head2 Mailing list + +The Perl Institute (http://www.perl.org/) maintains a perl-mvs mailing +list of interest to all folks building and/or using perl on EBCDIC +platforms. To subscribe, send a message of: + + subscribe perl-mvs + +to majordomo@perl.org. + +=head1 HISTORY + +This document was originally written by Thomas Dorner for the 5.005 +release of Perl. + +This document was podified for the 5.6 release of perl 11 July 2000. + +=cut |