X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/453189b60dbb6e88d68de022c83a2a4ff03203fd..e3caab27000c1f2ee2ca4c8f5765092e63ef2351:/README.bs2000 diff --git a/README.bs2000 b/README.bs2000 index 566ba21..a1ea777 100644 --- a/README.bs2000 +++ b/README.bs2000 @@ -1,11 +1,11 @@ This document is written in pod format hence there are punctuation -characters in in odd places. Do not worry, you've apparently got the +characters 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.BS2000 - building and installing Perl for BS2000. +perlbs2000 - building and installing Perl for BS2000. =head1 SYNOPSIS @@ -20,12 +20,12 @@ and testing it with 3.1A and are currently using Version V4.0A. You may need the following GNU programs in order to install perl: -=head2 gzip +=head2 gzip on BS2000 We used version 1.2.4, which could be installed out of the box with one failure during 'make check'. -=head2 bison +=head2 bison on BS2000 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 @@ -33,7 +33,7 @@ pure (reentrant) parser of bison. We used version 1.25, but we had to add a few changes due to EBCDIC. See below for more details concerning yacc. -=head2 Unpacking +=head2 Unpacking Perl Distribution on BS2000 To extract an ASCII tar archive on BS2000 POSIX you need an ASCII filesystem (we used the mountpoint /usr/local/ascii for this). Now @@ -55,7 +55,7 @@ cd /usr/local/src IO_CONVERSION=YES cp -r /usr/local/ascii/perl5.005_02 ./ -=head2 Compiling +=head2 Compiling Perl on BS2000 There is a "hints" file for BS2000 called hints.posix-bc (because posix-bc is the OS name given by `uname`) that specifies the correct @@ -102,7 +102,7 @@ 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 +=head2 Testing Perl on BS2000 We still got a few errors during C. Some of them are the result of using bison. Bison prints I instead of I), so you have to use the following lines @@ -151,14 +151,14 @@ C First you get the BS2000 commandline prompt ('*'). Here you may enter your parameters, e.g. C<-e 'print "Hello World!\\n";'> (note the double backslash!) or C<-w> and the name of your Perl script. -Filenames starting with C are searched in in the Posix filesystem, +Filenames starting with C are searched in the Posix filesystem, others are searched in the BS2000 filesystem. You may even use wildcards if you put a C<%> in front of your filename (e.g. C<-w checkfiles.pl %*.c>). Read your C/C++ manual for additional possibilities of the commandline prompt (look for PARAMETER-PROMPTING). -=head2 Floating point anomalies +=head2 Floating point anomalies on BS2000 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 @@ -174,6 +174,40 @@ Perl code: 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. +=head2 Using PerlIO and different encodings on ASCII and EBCDIC partitions + +Since version 5.8 Perl uses the new PerlIO on BS2000. This enables +you using different encodings per IO channel. For example you may use + + use Encode; + open($f, ">:encoding(ascii)", "test.ascii"); + print $f "Hello World!\n"; + open($f, ">:encoding(posix-bc)", "test.ebcdic"); + print $f "Hello World!\n"; + open($f, ">:encoding(latin1)", "test.latin1"); + print $f "Hello World!\n"; + open($f, ">:encoding(utf8)", "test.utf8"); + print $f "Hello World!\n"; + +to get two files containing "Hello World!\n" in ASCII, EBCDIC, ISO +Latin-1 (in this example identical to ASCII) respective UTF-EBCDIC (in +this example identical to normal EBCDIC). See the documentation of +Encode::PerlIO for details. + +As the PerlIO layer uses raw IO internally, all this totally ignores +the type of your filesystem (ASCII or EBCDIC) and the IO_CONVERSION +environment variable. If you want to get the old behavior, that the +BS2000 IO functions determine conversion depending on the filesystem +PerlIO still is your friend. You use IO_CONVERSION as usual and tell +Perl, that it should use the native IO layer: + + export IO_CONVERSION=YES + export PERLIO=stdio + +Now your IO would be ASCII on ASCII partitions and EBCDIC on EBCDIC +partitions. See the documentation of PerlIO (without C!) +for further possibilities. + =head1 AUTHORS Thomas Dorner @@ -184,13 +218,18 @@ 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: +If you are interested in the z/OS (formerly known as OS/390) +and POSIX-BC (BS2000) ports of Perl then see the perl-mvs mailing list. +To subscribe, send an empty message to perl-mvs-subscribe@perl.org. + +See also: + + http://lists.perl.org/list/perl-mvs.html - subscribe perl-mvs +There are web archives of the mailing list at: -to majordomo@perl.org. + http://www.xray.mpe.mpg.de/mailing-lists/perl-mvs/ + http://archive.develooper.com/perl-mvs@perl.org/ =head1 HISTORY