X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=README.posix-bc;h=3ae711da9e8cbe517d5885ac1355d614ee0224be;hb=e5c81feb3d32a96869ed78abc5cecef7e294da38;hp=ab2ffec1d6c0514d76a973610301bff3748a4345;hpb=d5047e5685a6d509cc9a4660c26c3d2a0bc7afe6;p=p5sagit%2Fp5-mst-13.2.git diff --git a/README.posix-bc b/README.posix-bc index ab2ffec..3ae711d 100644 --- a/README.posix-bc +++ b/README.posix-bc @@ -1,28 +1,43 @@ -This is a first ported perl for the POSIX subsystem in BS2000 VERSION -'V121', OSD V3.1, POSIX Shell V03.1A55. It may work on other -versions, but that's the one we've tested it on. +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: -gzip: +=head2 gzip We used version 1.2.4, which could be installed out of the box with one failure during 'make check'. -bison: +=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. - -UNPACKING: -========== +=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: +you extract the archive in the ASCII filesystem without +I/O-conversion: cd /usr/local/ascii export IO_CONVERSION=NO @@ -30,81 +45,118 @@ 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 made anyway. +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. This time you use I/O-conversion: +EBCDIC filesystem. B: cd /usr/local/src IO_CONVERSION=YES cp -r /usr/local/ascii/perl5.005_02 ./ - -COMPILING: -========== +=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. - -Configure did everything except the perl parser. +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: +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 -echo %pure_parser > /tmp/perly.y -cat perly.y >> /tmp/perly.y -/usr/local/bin/bison --yacc -d perly.y -cp y.tab.c perly.c -cp y.tab.h perly.h +# cleanup: -We still used the normal yacc for a2p.y though!!! - -We build perl using GNU make, but it should compile with the native -make too. +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: -TESTING: -======== +ln -s /usr/bin/yacc /usr/local/bin/byacc -We still got a few errors during 'make test'. Most of them are the -result of using bison. Bison prints 'parser error' instead of 'syntax -error', so we may ignore them. One error in the test op/regexp (and -op/regexp_noamp) seems a bit critical, the result was an 'Out of -memory' (core dump with op/regexp_noamp). The following list shows +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. Some of them are the +result of using bison. Bison prints I instead of I, so we may ignore them. The following list shows our errors, your results may differ: -comp/require........FAILED test 3 -op/misc.............FAILED tests 45-46 -op/pack.............FAILED tests 58-60 -op/regexp...........FAILED tests 402-485 (Out of memory!) -op/regexp_noamp.....FAILED tests 402-485 (core dump) -op/taint............FAILED test 73 +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/subs.........FAILED tests 1-2 -lib/cgi-html........dubious, FAILED tests 1-17 (ALL) -lib/complex.........FAILED tests 264, 484 -lib/dumper..........FAILED tests MANY -lib/errno...........dubious (Errno.pm not found?) -lib/searchdict......FAILED tests 1-2 -Failed 13/186 test scripts, 93.01% okay. 224/6242 subtests failed, 96.41% -okay. +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. - -INSTALLING: -=========== +=head2 Install We have no nroff on BS2000 POSIX (yet), so we ignored any errors while installing the documentation. -USING PERL: -=========== +=head2 Using Perl BS2000 POSIX doesn't support the shebang notation -('#!/usr/local/bin/perl'), so you have to use the following lines +(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; + +=head1 AUTHORS + +Thomas Dorner + +=head1 SEE ALSO + +L, L. + +=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