Commit | Line | Data |
---|---|---|
c2e66d9e GS |
1 | This document is written in pod format hence there are punctuation |
2 | characters in in odd places. Do not worry, you've apparently got the | |
3 | ASCII->EBCDIC translation worked out correctly. You can read more | |
4 | about pod in pod/perlpod.pod or the short summary in the INSTALL file. | |
5 | ||
6 | =head1 NAME | |
7 | ||
8 | README.posix-bc - building and installing Perl for BS2000 POSIX. | |
9 | ||
10 | =head1 SYNOPSIS | |
11 | ||
12 | This document will help you Configure, build, test and install Perl | |
13 | on BS2000 in the POSIX subsystem. | |
14 | ||
15 | =head1 DESCRIPTION | |
16 | ||
17 | This is a ported perl for the POSIX subsystem in BS2000 VERSION OSD | |
18 | V3.1A. It may work on other versions, but that's the one we've tested | |
19 | it on. | |
a1a0e61e TD |
20 | |
21 | You may need the following GNU programs in order to install perl: | |
22 | ||
c2e66d9e | 23 | =head2 gzip |
a1a0e61e TD |
24 | |
25 | We used version 1.2.4, which could be installed out of the box with | |
26 | one failure during 'make check'. | |
27 | ||
c2e66d9e | 28 | =head2 bison |
a1a0e61e TD |
29 | |
30 | The yacc coming with BS2000 POSIX didn't work for us. So we had to | |
31 | use bison. We had to make a few changes to perl in order to use the | |
32 | pure (reentrant) parser of bison. We used version 1.25, but we had to | |
33 | add a few changes due to EBCDIC. | |
34 | ||
c2e66d9e | 35 | =head2 Unpacking |
a1a0e61e TD |
36 | |
37 | To extract an ASCII tar archive on BS2000 POSIX you need an ASCII | |
38 | filesystem (we used the mountpoint /usr/local/ascii for this). Now | |
c2e66d9e GS |
39 | you extract the archive in the ASCII filesystem without |
40 | I/O-conversion: | |
a1a0e61e TD |
41 | |
42 | cd /usr/local/ascii | |
43 | export IO_CONVERSION=NO | |
44 | gunzip < /usr/local/src/perl.tar.gz | pax -r | |
45 | ||
46 | You may ignore the error message for the first element of the archive | |
47 | (this doesn't look like a tar archive / skipping to next file...), | |
c2e66d9e | 48 | it's only the directory which will be created automatically anyway. |
a1a0e61e TD |
49 | |
50 | After extracting the archive you copy the whole directory tree to your | |
c2e66d9e | 51 | EBCDIC filesystem. B<This time you use I/O-conversion>: |
a1a0e61e TD |
52 | |
53 | cd /usr/local/src | |
54 | IO_CONVERSION=YES | |
55 | cp -r /usr/local/ascii/perl5.005_02 ./ | |
56 | ||
c2e66d9e | 57 | =head2 Compiling |
a1a0e61e TD |
58 | |
59 | There is a "hints" file for posix-bc that specifies the correct values | |
60 | for most things. The major problem is (of course) the EBCDIC character | |
c2e66d9e | 61 | set. We have german EBCDIC version. |
a1a0e61e TD |
62 | |
63 | Because of our problems with the native yacc we used GNU bison to | |
93fb2ac3 JH |
64 | generate a pure (=reentrant) parser for perly.y. So our yacc is |
65 | really the following script: | |
a1a0e61e | 66 | |
93fb2ac3 JH |
67 | -----8<-----/usr/local/bin/yacc-----8<----- |
68 | #! /usr/bin/sh | |
a1a0e61e | 69 | |
93fb2ac3 JH |
70 | # Bison as a reentrant yacc: |
71 | ||
72 | # save parameters: | |
73 | params="" | |
74 | while [[ $# -gt 1 ]]; do | |
75 | params="$params $1" | |
76 | shift | |
77 | done | |
78 | ||
79 | # add flag %pure_parser: | |
80 | ||
81 | tmpfile=/tmp/bison.$$.y | |
82 | echo %pure_parser > $tmpfile | |
83 | cat $1 >> $tmpfile | |
84 | ||
85 | # call bison: | |
86 | ||
87 | echo "/usr/local/bin/bison --yacc $params $1\t\t\t(Pure Parser)" | |
88 | /usr/local/bin/bison --yacc $params $tmpfile | |
89 | ||
90 | # cleanup: | |
91 | ||
92 | rm -f $tmpfile | |
93 | -----8<----------8<----- | |
94 | ||
95 | We still use the normal yacc for a2p.y though!!! We made a softlink | |
96 | called byacc to distinguish between the two versions: | |
97 | ||
98 | ln -s /usr/bin/yacc /usr/local/bin/byacc | |
a1a0e61e | 99 | |
c2e66d9e GS |
100 | We build perl using GNU make. We tried the native make once and it |
101 | worked too. | |
a1a0e61e | 102 | |
c2e66d9e | 103 | =head2 Testing |
a1a0e61e | 104 | |
c2e66d9e GS |
105 | We still got a few errors during C<make test>. Some of them are the |
106 | result of using bison. Bison prints I<parser error> instead of I<syntax | |
107 | error>, so we may ignore them. The following list shows | |
a1a0e61e TD |
108 | our errors, your results may differ: |
109 | ||
c8e8bf6a GS |
110 | op/numconvert.......FAILED tests 1409-1440 |
111 | op/regexp...........FAILED tests 483, 496 | |
112 | op/regexp_noamp.....FAILED tests 483, 496 | |
a1a0e61e | 113 | pragma/overload.....FAILED tests 152-153, 170-171 |
c8e8bf6a GS |
114 | pragma/warnings.....FAILED tests 14, 82, 129, 155, 192, 205, 207 |
115 | lib/bigfloat........FAILED tests 351-352, 355 | |
116 | lib/bigfltpm........FAILED tests 354-355, 358 | |
117 | lib/complex.........FAILED tests 267, 487 | |
118 | lib/dumper..........FAILED tests 43, 45 | |
119 | Failed 11/231 test scripts, 95.24% okay. 57/10595 subtests failed, 99.46% okay. | |
a1a0e61e | 120 | |
c2e66d9e | 121 | =head2 Install |
a1a0e61e TD |
122 | |
123 | We have no nroff on BS2000 POSIX (yet), so we ignored any errors while | |
124 | installing the documentation. | |
125 | ||
126 | ||
c2e66d9e | 127 | =head2 Using Perl |
a1a0e61e TD |
128 | |
129 | BS2000 POSIX doesn't support the shebang notation | |
c2e66d9e | 130 | (C<#!/usr/local/bin/perl>), so you have to use the following lines |
a1a0e61e TD |
131 | instead: |
132 | ||
133 | : # use perl | |
134 | eval 'exec /usr/local/bin/perl -S $0 ${1+"$@"}' | |
135 | if $running_under_some_shell; | |
c2e66d9e GS |
136 | |
137 | =head1 AUTHORS | |
138 | ||
139 | Thomas Dorner | |
140 | ||
141 | =head1 SEE ALSO | |
142 | ||
143 | L<INSTALL>, L<perlport>. | |
144 | ||
145 | =head2 Mailing list | |
146 | ||
147 | The Perl Institute (http://www.perl.org/) maintains a perl-mvs mailing | |
148 | list of interest to all folks building and/or using perl on EBCDIC | |
22103e7e | 149 | platforms. To subscribe, send a message of: |
c2e66d9e GS |
150 | |
151 | subscribe perl-mvs | |
152 | ||
153 | to majordomo@perl.org. | |
154 | ||
155 | =head1 HISTORY | |
156 | ||
157 | This document was originally written by Thomas Dorner for the 5.005 | |
158 | release of Perl. | |
159 | ||
160 | This document was podified for the 5.6 release of perl 11 July 2000. | |
161 | ||
162 | =cut |