New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Not OK: perl 5.00562 on os390 05.00 (UNINSTALLED) #803
Comments
From pvhp@forte.comHere is a summary of the failures seen during `make test` op/pack.............FAILED at test 152 op/regexp...........CEE5213S The signal SIGPIPE was received. pragma/locale.......CEE3703I In HPCB Control Block, the Eye Catcher is damaged. pragma/utf8.........Malformed UTF-8 character at pragma/utf8.t line 22. lib/bigfloat........CEE5213S The signal SIGPIPE was received. lib/charnames.......CEE5213S The signal SIGPIPE was received. lib/dumper..........CEE5213S The signal SIGPIPE was received. lib/io_unix.........Can't call method "getline" on an undefined value at Failed 12 test scripts out of 217, 94.47% okay. Perl Info
|
From @jhi
The "Eye Catcher is damaged"? Who said mainframe error messages are boring? -- |
From [Unknown Contact. See original ticket]Jarkko Hietaniemi wrote:
Indeed. BTW I note that ord("!") == 90 here so I can get around the one failure Inline Patch--- lib/unicode/Name.pl.orig Tue Nov 2 16:36:49 1999
+++ lib/unicode/Name.pl Tue Nov 2 16:37:36 1999
@@ -1,7 +1,7 @@
return <<'END';
0000 001f <control>
0020 SPACE
-0021 EXCLAMATION MARK
+005a EXCLAMATION MARK
0022 QUOTATION MARK
0023 NUMBER SIGN
0024 DOLLAR SIGN
but obviously I cannot impose such changes on the ascii world so Peter Prymmer |
From @jhiPeter Prymmer writes:
You cannot impose such changes on the *Unicode* world, HTH.
There is a paper at the Unicode web page about EBCDIC. Somebody who -- |
From [Unknown Contact. See original ticket]The enclosed patch ought to take care of the following failures op/pack.............FAILED at test 152 Most of these fixes are simple encoded character set issues. For The failures in t/pragma/locale.t clearly indicate two broken locales % ls -1 /usr/lib/nls/locale | wc -l locales, including 44 unique encodings such as "IBM-1149@euro", but I This patch does not address the following failures that were pragma/utf8.........FAILED at test 0 I suspect there are some lingering asciiisms in toke.c perhaps sv.c lib/bigfloat........FAILED at test 38 These two look nasty since they look like perl is having trouble lib/charnames.......FAILED at test 1 There are at least two ways to fix this one on ebcdic platforms. lib/io_unix.........FAILED at test 3 This one appears to result from C<$sock->accept();> returning an Alright here is the unified diff (which must be applied with a -u begin 644 62.patch.gz Peter Prymmer |
From @jhiPeter Prymmer writes:
Excellent. Big Iron just keeps going...
I must ask: how clearly? What goes wrong? Which tests fail and how?
Very prudent.
That would be me. I'll try to grab a tuit.
Yes, please.
-- |
From [Unknown Contact. See original ticket]Jarkko Hietaniemi wrote in response to me:
I am glad that you asked since in going back over things ... it seems to Specifically the first call to: setlocale(LC_ALL, "th_th.ISO8859-11") In clear text my "correction" to locale.t was to merely delete Svenska --- t/pragma/locale.t.orig Wed Nov 10 10:21:26 1999 +if ($^O eq 'os390') { And I just noted that I might be able to get away with leaving the Here is the way I uncovered the problem: if I revert to the original sub trylocale { Then when I run the test like so: ./perl -T t/pragma/locale.t.diag So apparently C<setlocale(LC_ALL, "th_th.ISO8859-11")> should not I have further tried to narrow things down. If I shorten the list of my $locales = <<EOF; And I redo the diagnostics around setlocale() like so: sub trylocale { then I can see the following: ./perl -T t/pragma/locale.t.new I have also been able to tickle Perl's C<Out of Memory!> error during I did carried out all the tests described above on an OE R 2.5 system.
Will do in a separate message. Peter Prymmer |
From [Unknown Contact. See original ticket]Jarkko Hietaniemi wrote Wed, 3 Nov 1999:
OK, If the intent of charnames is to do _only_ a unicode-ish encoding Inline Patch--- t/lib/charnames.t.orig Tue Nov 2 16:08:56 1999
+++ t/lib/charnames.t Mon Nov 8 12:06:05 1999
@@ -12,7 +12,7 @@
use charnames ':full';
-print "not " unless "Here\N{EXCLAMATION MARK}?" eq 'Here!?';
+print "not " unless "Here\N{EXCLAMATION MARK}?" eq "Here\041?";
print "ok 1\n";
print "# \$res=$res \$\@='$@'\nnot "
However, if the intent was to have a script like: use charnames ':full'; print out 'yes!' then the following patch would be necessary, in fact I Here is the one I prefer. Unfortunately, when I run the unmodified % ./perl t/lib/charnames.t.orig where the "Attempt..." message is generated right after the execution of Inline Patch--- lib/unicode/Name.pl.orig Fri Nov 5 14:58:03 1999
+++ lib/unicode/Name.pl Mon Nov 8 12:08:56 1999
@@ -1,4 +1,5 @@
-return <<'END';
+package charnames;
+my $table = <<'END';
0000 001f <control>
0020 SPACE
0021 EXCLAMATION MARK
@@ -10547,3 +10548,247 @@
fffc OBJECT REPLACEMENT CHARACTER
fffd REPLACEMENT CHARACTER
END
+
+# are we on an EBCDIC platform?
+
+if ($^O eq 'os390' || $^O eq 'vmesa' || $^O eq 'os400' || $^O eq 'posix-bc') {
+
+ # remove iso-latin chrs 0000..00ff
+
+ $table =~ s/.+(0100\t)/$1/s;
+
+ # prepend ebcdic chrs from codepage 1047
+
+ $table = <<"END1047";
+0000 003f <control>
+0040 SPACE
+005a EXCLAMATION MARK
+007f QUOTATION MARK
+007b NUMBER SIGN
+005b DOLLAR SIGN
+006c PERCENT SIGN
+0050 AMPERSAND
+007d APOSTROPHE
+004d LEFT PARENTHESIS
+005d RIGHT PARENTHESIS
+005c ASTERISK
+004e PLUS SIGN
+006b COMMA
+0060 HYPHEN-MINUS
+004b FULL STOP
+0061 SOLIDUS
+00f0 DIGIT ZERO
+00f1 DIGIT ONE
+00f2 DIGIT TWO
+00f3 DIGIT THREE
+00f4 DIGIT FOUR
+00f5 DIGIT FIVE
+00f6 DIGIT SIX
+00f7 DIGIT SEVEN
+00f8 DIGIT EIGHT
+00f9 DIGIT NINE
+007a COLON
+005e SEMICOLON
+004c LESS-THAN SIGN
+007e EQUALS SIGN
+006e GREATER-THAN SIGN
+006f QUESTION MARK
+007c COMMERCIAL AT
+00c1 LATIN CAPITAL LETTER A
+00c2 LATIN CAPITAL LETTER B
+00c3 LATIN CAPITAL LETTER C
+00c4 LATIN CAPITAL LETTER D
+00c5 LATIN CAPITAL LETTER E
+00c6 LATIN CAPITAL LETTER F
+00c7 LATIN CAPITAL LETTER G
+00c8 LATIN CAPITAL LETTER H
+00c9 LATIN CAPITAL LETTER I
+00d1 LATIN CAPITAL LETTER J
+00d2 LATIN CAPITAL LETTER K
+00d3 LATIN CAPITAL LETTER L
+00d4 LATIN CAPITAL LETTER M
+00d5 LATIN CAPITAL LETTER N
+00d6 LATIN CAPITAL LETTER O
+00d7 LATIN CAPITAL LETTER P
+00d8 LATIN CAPITAL LETTER Q
+00d9 LATIN CAPITAL LETTER R
+00e2 LATIN CAPITAL LETTER S
+00e3 LATIN CAPITAL LETTER T
+00e4 LATIN CAPITAL LETTER U
+00e5 LATIN CAPITAL LETTER V
+00e6 LATIN CAPITAL LETTER W
+00e7 LATIN CAPITAL LETTER X
+00e8 LATIN CAPITAL LETTER Y
+00e9 LATIN CAPITAL LETTER Z
+00ad LEFT SQUARE BRACKET
+00e0 REVERSE SOLIDUS
+00bd RIGHT SQUARE BRACKET
+005f CIRCUMFLEX ACCENT
+006d LOW LINE
+0079 GRAVE ACCENT
+0081 LATIN SMALL LETTER A
+0082 LATIN SMALL LETTER B
+0083 LATIN SMALL LETTER C
+0084 LATIN SMALL LETTER D
+0085 LATIN SMALL LETTER E
+0086 LATIN SMALL LETTER F
+0087 LATIN SMALL LETTER G
+0088 LATIN SMALL LETTER H
+0089 LATIN SMALL LETTER I
+0091 LATIN SMALL LETTER J
+0092 LATIN SMALL LETTER K
+0093 LATIN SMALL LETTER L
+0094 LATIN SMALL LETTER M
+0095 LATIN SMALL LETTER N
+0096 LATIN SMALL LETTER O
+0097 LATIN SMALL LETTER P
+0098 LATIN SMALL LETTER Q
+0099 LATIN SMALL LETTER R
+00a2 LATIN SMALL LETTER S
+00a3 LATIN SMALL LETTER T
+00a4 LATIN SMALL LETTER U
+00a5 LATIN SMALL LETTER V
+00a6 LATIN SMALL LETTER W
+00a7 LATIN SMALL LETTER X
+00a8 LATIN SMALL LETTER Y
+00a9 LATIN SMALL LETTER Z
+00c0 LEFT CURLY BRACKET
+004f VERTICAL LINE
+00d0 RIGHT CURLY BRACKET
+00a1 TILDE
+00ff 00ff <control>
+0041 NO-BREAK SPACE
+00aa INVERTED EXCLAMATION MARK
+004a CENT SIGN
+00b1 POUND SIGN
+009f CURRENCY SIGN
+00b2 YEN SIGN
+006a BROKEN BAR
+00b5 SECTION SIGN
+00bb DIAERESIS
+00b4 COPYRIGHT SIGN
+009a FEMININE ORDINAL INDICATOR
+008a LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+00b0 NOT SIGN
+00ca SOFT HYPHEN
+00af REGISTERED SIGN
+00bc MACRON
+0090 DEGREE SIGN
+008f PLUS-MINUS SIGN
+00ea SUPERSCRIPT TWO
+00fa SUPERSCRIPT THREE
+00be ACUTE ACCENT
+00a0 MICRO SIGN
+00b6 PILCROW SIGN
+00b3 MIDDLE DOT
+009d CEDILLA
+00da SUPERSCRIPT ONE
+009b MASCULINE ORDINAL INDICATOR
+008b RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+00b7 VULGAR FRACTION ONE QUARTER
+00b8 VULGAR FRACTION ONE HALF
+00b9 VULGAR FRACTION THREE QUARTERS
+00ab INVERTED QUESTION MARK
+0064 LATIN CAPITAL LETTER A WITH GRAVE
+0065 LATIN CAPITAL LETTER A WITH ACUTE
+0062 LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+0066 LATIN CAPITAL LETTER A WITH TILDE
+0063 LATIN CAPITAL LETTER A WITH DIAERESIS
+0067 LATIN CAPITAL LETTER A WITH RING ABOVE
+009e LATIN CAPITAL LETTER AE
+0068 LATIN CAPITAL LETTER C WITH CEDILLA
+0074 LATIN CAPITAL LETTER E WITH GRAVE
+0071 LATIN CAPITAL LETTER E WITH ACUTE
+0072 LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+0073 LATIN CAPITAL LETTER E WITH DIAERESIS
+0078 LATIN CAPITAL LETTER I WITH GRAVE
+0075 LATIN CAPITAL LETTER I WITH ACUTE
+0076 LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+0077 LATIN CAPITAL LETTER I WITH DIAERESIS
+00ac LATIN CAPITAL LETTER ETH
+0069 LATIN CAPITAL LETTER N WITH TILDE
+00ed LATIN CAPITAL LETTER O WITH GRAVE
+00ee LATIN CAPITAL LETTER O WITH ACUTE
+00eb LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+00ef LATIN CAPITAL LETTER O WITH TILDE
+00ec LATIN CAPITAL LETTER O WITH DIAERESIS
+00bf MULTIPLICATION SIGN
+0080 LATIN CAPITAL LETTER O WITH STROKE
+00fd LATIN CAPITAL LETTER U WITH GRAVE
+00fe LATIN CAPITAL LETTER U WITH ACUTE
+00fb LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+00fc LATIN CAPITAL LETTER U WITH DIAERESIS
+00ba LATIN CAPITAL LETTER Y WITH ACUTE
+00ae LATIN CAPITAL LETTER THORN
+0059 LATIN SMALL LETTER SHARP S
+0044 LATIN SMALL LETTER A WITH GRAVE
+0045 LATIN SMALL LETTER A WITH ACUTE
+0042 LATIN SMALL LETTER A WITH CIRCUMFLEX
+0046 LATIN SMALL LETTER A WITH TILDE
+0043 LATIN SMALL LETTER A WITH DIAERESIS
+0047 LATIN SMALL LETTER A WITH RING ABOVE
+009c LATIN SMALL LETTER AE
+0048 LATIN SMALL LETTER C WITH CEDILLA
+0054 LATIN SMALL LETTER E WITH GRAVE
+0051 LATIN SMALL LETTER E WITH ACUTE
+0052 LATIN SMALL LETTER E WITH CIRCUMFLEX
+0053 LATIN SMALL LETTER E WITH DIAERESIS
+0058 LATIN SMALL LETTER I WITH GRAVE
+0055 LATIN SMALL LETTER I WITH ACUTE
+0056 LATIN SMALL LETTER I WITH CIRCUMFLEX
+0057 LATIN SMALL LETTER I WITH DIAERESIS
+008c LATIN SMALL LETTER ETH
+0049 LATIN SMALL LETTER N WITH TILDE
+00cd LATIN SMALL LETTER O WITH GRAVE
+00ce LATIN SMALL LETTER O WITH ACUTE
+00cb LATIN SMALL LETTER O WITH CIRCUMFLEX
+00cf LATIN SMALL LETTER O WITH TILDE
+00cc LATIN SMALL LETTER O WITH DIAERESIS
+00e1 DIVISION SIGN
+0070 LATIN SMALL LETTER O WITH STROKE
+00dd LATIN SMALL LETTER U WITH GRAVE
+00de LATIN SMALL LETTER U WITH ACUTE
+00db LATIN SMALL LETTER U WITH CIRCUMFLEX
+00dc LATIN SMALL LETTER U WITH DIAERESIS
+008d LATIN SMALL LETTER Y WITH ACUTE
+008e LATIN SMALL LETTER THORN
+00df LATIN SMALL LETTER Y WITH DIAERESIS
+$table
+END1047
+
+ chomp($table);
+
+ if ($^O eq 'os400') {
+ # codepage 1047 -> 819
+ $table =~ s/005f( CIRCUMFLEX ACCENT)/00b0$1/;
+ $table =~ s/00ad( LEFT SQUARE BRACKET)/00ba$1/;
+ $table =~ s/00b0( NOT SIGN)/005f$1/;
+ $table =~ s/00ba( LATIN CAPITAL LETTER Y WITH ACUTE)/00ad$1/;
+ $table =~ s/00bb( DIAERESIS)/00bd$1/;
+ $table =~ s/00bd( RIGHT SQUARE BRACKET)/00bb$1/;
+ }
+
+ if ($^O eq 'posix-bc') {
+ # codepage 1047 -> posix-bc
+ $table =~ s/00ad( LEFT SQUARE BRACKET)/00bb$1/;
+ $table =~ s/00e0( REVERSE SOLIDUS)/00bc$1/;
+ $table =~ s/005f( CIRCUMFLEX ACCENT)/006a$1/;
+ $table =~ s/0079( GRAVE ACCENT)/004a$1/;
+ $table =~ s/00c0( LEFT CURLY BRACKET)/00fb$1/;
+ $table =~ s/00d0( RIGHT CURLY BRACKET)/00fd$1/;
+ $table =~ s/00a1( TILDE)/00ff$1/;
+ $table =~ s/00ff 00ff( <control>)/005f 005f$1/;
+ $table =~ s/004a( CENT SIGN)/00b0$1/;
+ $table =~ s/006a( BROKEN BAR)/00d0$1/;
+ $table =~ s/00bb( DIAERESIS)/0079$1/;
+ $table =~ s/00b0( NOT SIGN)/00ba$1/;
+ $table =~ s/00bc( MACRON)/00a1$1/;
+ $table =~ s/00fd( LATIN CAPITAL LETTER U WITH GRAVE)/00e0$1/;
+ $table =~ s/00fb( LATIN CAPITAL LETTER U WITH CIRCUMFLEX)/00dd$1/;
+ $table =~ s/00ba( LATIN CAPITAL LETTER Y WITH ACUTE)/00ad$1/;
+ $table =~ s/00dd( LATIN SMALL LETTER U WITH GRAVE)/00c0$1/;
+ }
+}
+
+return $table;
+
Thanks. I've looked through the unicode.org paper on a proposal for I have yet to study perl's C<use utf8;> pragma much though. Even if Peter Prymmer |
From [Unknown Contact. See original ticket]Peter Prymmer <pvhp@forte.com> wrote
Since that message is a "should not happen", surely the thing is to track Mike Guy |
From @jhi: --- lib/unicode/Name.pl.orig Fri Nov 5 14:58:03 1999 After some thought: I'd like this patch go to somewhere else than -- |
From [Unknown Contact. See original ticket]Jarkko Hietaniemi wrote:
[snip]
OK. I suspected that the first reason you list would have had Is it not the case that perl will be trying to allow switching print "hello world\n"; to switch to printing out the unicode (not utf8) version of Peter Prymmer |
From @jhiPeter Prymmer writes:
It's not pretty, yes, and a lot of work, but I do not think littering -- |
From [Unknown Contact. See original ticket]Peter Prymmer writes:
AFAICS, your question is about communication of Perl with the external Ilya |
From [Unknown Contact. See original ticket]Jarkko Hietaniemi wrote:
Yes I agree with you (and am not trying to argue for the patch). Peter Prymmer |
Migrated from rt.perl.org#1730 (status was 'resolved')
Searchable as RT1730$
The text was updated successfully, but these errors were encountered: