Commit | Line | Data |
a1a0e61e |
1 | This is a first ported perl for the POSIX subsystem in BS2000 VERSION |
2 | 'V121', OSD V3.1, POSIX Shell V03.1A55. It may work on other |
3 | versions, but that's the one we've tested it on. |
4 | |
5 | You may need the following GNU programs in order to install perl: |
6 | |
7 | gzip: |
8 | |
9 | We used version 1.2.4, which could be installed out of the box with |
10 | one failure during 'make check'. |
11 | |
12 | bison: |
13 | |
14 | The yacc coming with BS2000 POSIX didn't work for us. So we had to |
15 | use bison. We had to make a few changes to perl in order to use the |
16 | pure (reentrant) parser of bison. We used version 1.25, but we had to |
17 | add a few changes due to EBCDIC. |
18 | |
19 | |
20 | UNPACKING: |
21 | ========== |
22 | |
23 | To extract an ASCII tar archive on BS2000 POSIX you need an ASCII |
24 | filesystem (we used the mountpoint /usr/local/ascii for this). Now |
25 | you extract the archive in the ASCII filesystem without I/O-conversion: |
26 | |
27 | cd /usr/local/ascii |
28 | export IO_CONVERSION=NO |
29 | gunzip < /usr/local/src/perl.tar.gz | pax -r |
30 | |
31 | You may ignore the error message for the first element of the archive |
32 | (this doesn't look like a tar archive / skipping to next file...), |
33 | it's only the directory which will be made anyway. |
34 | |
35 | After extracting the archive you copy the whole directory tree to your |
36 | EBCDIC filesystem. This time you use I/O-conversion: |
37 | |
38 | cd /usr/local/src |
39 | IO_CONVERSION=YES |
40 | cp -r /usr/local/ascii/perl5.005_02 ./ |
41 | |
42 | |
43 | COMPILING: |
44 | ========== |
45 | |
46 | There is a "hints" file for posix-bc that specifies the correct values |
47 | for most things. The major problem is (of course) the EBCDIC character |
48 | set. |
49 | |
50 | Configure did everything except the perl parser. |
51 | |
52 | Because of our problems with the native yacc we used GNU bison to |
53 | generate a pure (=reentrant) parser for perly.y: |
54 | |
55 | echo %pure_parser > /tmp/perly.y |
56 | cat perly.y >> /tmp/perly.y |
57 | /usr/local/bin/bison --yacc -d perly.y |
58 | cp y.tab.c perly.c |
59 | cp y.tab.h perly.h |
60 | |
61 | We build perl using GNU make, but it should compile with the native |
62 | make too. |
63 | |
64 | |
65 | TESTING: |
66 | ======== |
67 | |
68 | We still got a few errors during 'make test'. Most of them are the |
69 | result of using bison. Bison prints 'parser error' instead of 'syntax |
70 | error', so we may ignore them. One error in the test op/regexp (and |
71 | op/regexp_noamp) seems a bit critical, the result was an 'Out of |
72 | memory' (core dump with op/regexp_noamp). The following list shows |
73 | our errors, your results may differ: |
74 | |
75 | comp/require........FAILED test 3 |
76 | op/misc.............FAILED tests 45-46 |
77 | op/pack.............FAILED tests 58-60 |
78 | op/regexp...........FAILED tests 402-485 (Out of memory!) |
79 | op/regexp_noamp.....FAILED tests 402-485 (core dump) |
80 | op/taint............FAILED test 73 |
81 | pragma/overload.....FAILED tests 152-153, 170-171 |
82 | pragma/subs.........FAILED tests 1-2 |
83 | lib/cgi-html........dubious, FAILED tests 1-17 (ALL) |
84 | lib/complex.........FAILED tests 264, 484 |
85 | lib/dumper..........FAILED tests MANY |
86 | lib/errno...........dubious (Errno.pm not found?) |
87 | lib/searchdict......FAILED tests 1-2 |
88 | Failed 13/186 test scripts, 93.01% okay. 224/6242 subtests failed, 96.41% |
89 | okay. |
90 | |
91 | |
92 | INSTALLING: |
93 | =========== |
94 | |
95 | We have no nroff on BS2000 POSIX (yet), so we ignored any errors while |
96 | installing the documentation. |
97 | |
98 | |
99 | USING PERL: |
100 | =========== |
101 | |
102 | BS2000 POSIX doesn't support the shebang notation |
103 | ('#!/usr/local/bin/perl'), so you have to use the following lines |
104 | instead: |
105 | |
106 | : # use perl |
107 | eval 'exec /usr/local/bin/perl -S $0 ${1+"$@"}' |
108 | if $running_under_some_shell; |