X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=README.bs2000;h=b14c434ab37373d928fdbff5c4386d5fa687e21c;hb=cddd4526476ba0ae3c81876684c5e7a648cb3265;hp=a0128fda819e693b0dfcfcda410034351d6fa49a;hpb=dc5c060f96a5de06c9e1797503c70e8155e23e3e;p=p5sagit%2Fp5-mst-13.2.git diff --git a/README.bs2000 b/README.bs2000 index a0128fd..b14c434 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.posix-bc - building and installing Perl for BS2000 POSIX. +README.BS2000 - building and installing Perl for BS2000. =head1 SYNOPSIS @@ -15,24 +15,25 @@ 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. +V3.1A or later. It may work on other versions, but we started porting +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 pure (reentrant) parser of bison. We used version 1.25, but we had to -add a few changes due to EBCDIC. +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 @@ -54,11 +55,12 @@ 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 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. +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 +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 @@ -100,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 @@ -134,7 +136,29 @@ instead: eval 'exec /usr/local/bin/perl -S $0 ${1+"$@"}' if $running_under_some_shell; -=head2 Floating point anomalies +=head2 Using Perl in "native" BS2000 + +We don't have much experience with this yet, but try the following: + +Copy your Perl executable to a BS2000 LLM using bs2cp: + +C + +Now you can start it with the following (SDF) command: + +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 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 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