In perl.git, the branch smoke-me/khw-ebcdic has been created
<http://perl5.git.perl.org/perl.git/commitdiff/f9e6ec2542978951fe02fe99cc619218b262dec8?hp=0000000000000000000000000000000000000000>
at f9e6ec2542978951fe02fe99cc619218b262dec8 (commit)
- Log -----------------------------------------------------------------
commit f9e6ec2542978951fe02fe99cc619218b262dec8
Author: Karl Williamson <[email protected]>
Date: Thu Oct 16 22:24:13 2014 -0600
toke.c: Fix potential buffer overflow
Malformed UTF-8 input could have potentially caused a read off the end
of the buffer here until this commit.
M toke.c
commit 6526350bac48905710640a92426f8c53bf245db1
Author: Karl Williamson <[email protected]>
Date: Thu Oct 16 22:03:30 2014 -0600
perlebcdic: Add clarification
M pod/perlebcdic.pod
commit f746c48afcd850e54a17e6262ca8096675848a33
Author: Karl Williamson <[email protected]>
Date: Wed Jun 26 15:40:53 2013 -0600
uvoffuni_to_utf8_flags() die if platform can't handle
On non EBCDIC platforms currently any UV is encodable as UTF-8. (This
would change if there were 128-bit words). Thus, much code assumes that
nothing can go wrong when converting to UTF-8, and hence does no error
checking.
However, UTF-EBCDIC is only capable of representing code points below
2**32, so if there are 64-bit words, this function can fail.
Prior to this patch, there was no real overflow check, and garbage was
returned by this function if called with too large a number.
While not ideal, the easiest thing to do is to just die for such a
number, like we do for division by 0. This involves changing only code
within this function, and not its many callers.
M pod/perldiag.pod
M t/lib/warnings/utf8
M utf8.c
commit f24a77417f6e2df2572377efa2bb8d66b1241ab8
Author: Karl Williamson <[email protected]>
Date: Thu Oct 16 19:24:53 2014 -0600
dquote_static.c: Forbid \c{ on EBCDIC
Unlike ASCII platforms where \c{ evaluates to a semi-colon, and raises a
fatal error because that result is not a control character, on EBCDIC
platforms it does evaluate to a control, but we have to forbid it anyway
because unescaped "{" now is special as a part of larger sequences, and
we don't want to get the parser confused.
M dquote_static.c
M pod/perldiag.pod
M t/lib/warnings/toke
commit 43896cc368b3eccd8fa61f433995d71387cb78e0
Author: Karl Williamson <[email protected]>
Date: Thu Oct 16 19:44:07 2014 -0600
utf8.h: EBCDIC fix
These macros are supposed to accommodate larger than a byte inputs.
Therefore, under EBCDIC, we have to use a different macro which handles
the larger values. On ASCII platforms, these called macros are no-ops
so it doesn't matter there.
M utf8.h
commit a87360de83b9a1ed6e3f89ac944d23afe1925f0e
Author: Karl Williamson <[email protected]>
Date: Thu Oct 16 19:55:42 2014 -0600
handy.h: Two EBCDIC fixes
In EBCDIC only macros, an argument previously was failed to be
dereferenced, and there was an extra ==. A few comment changes as well
M handy.h
commit 36c9cc40f741b1891e1145b8dd921596ca2c5e3c
Author: Karl Williamson <[email protected]>
Date: Thu Oct 16 20:45:17 2014 -0600
lib/locale.t: Add some \Q
More places in this file need to have \Q to quote things. This was
noticed in EBCDIC testing.
M lib/locale.t
commit f42b7a31069d1dd220aacdf21a922dd5f7783188
Author: Karl Williamson <[email protected]>
Date: Wed Apr 17 21:47:41 2013 -0600
t/re/regexp.t: Add ability to skip depending on platform
This adds the capability to specify that a test is to be done only on an
ASCII platform, or only on an EBCDIC.
M t/re/regexp.t
commit 5bab562297f98dcd1dd9a6baa175d0edadfb2f10
Author: Karl Williamson <[email protected]>
Date: Tue Apr 16 15:49:06 2013 -0600
t/re/regexp.t: Generalize for non-ASCII platforms
This adds code to the processing of the tests in t/re/re_tests to
automatically convert most character constants from unicode to native
character sets. This allows most tests in t/re/re_tests to be run on
both platforms without change. A later commit will add the capability
to skip individual tests if on the wrong platform, so those few tests
that this commit doesn't work for can be accommodated
M t/re/regexp.t
commit aa41abd48b50fb4131c82df0ca2690bddd5c439d
Author: Karl Williamson <[email protected]>
Date: Mon Jul 7 16:59:19 2014 -0600
charset_tools.pl: Fix changed function name
The function has changed names, but this file did not get updated to
reflect that.
M t/charset_tools.pl
commit 77f8c2fa03a22df60a9b44563d0643f6c2cb896f
Author: Karl Williamson <[email protected]>
Date: Wed Oct 8 11:43:26 2014 -0600
EBCDIC doesn't have real UTF-8 locales.
At least on the system that we have tested on. There are locales that
say they are UTF-8, but they're not; they're EBCDIC 1047.
M locale.c
M t/loc_tools.pl
commit 491dd379d55d8a6adecf3e21120498a1b954ff36
Author: Yaroslav Kuzmin <[email protected]>
Date: Wed Jul 2 22:22:23 2014 -0600
Fix ebcdic error of nostdio.h
M nostdio.h
commit c6031b0a3b04599ff9e5c7eda5ebdb49a2d45c9b
Author: Karl Williamson <[email protected]>
Date: Wed Oct 8 11:41:22 2014 -0600
regcomp.c: isASCII should be isASCII_uni
It doesn't effectively matter, but isACII_uni is the one that is
supposed to be used for UVs.
M regcomp.c
commit 67dbecd7378a932a19d8f14ae5f0ac7f43c55d81
Author: Karl Williamson <[email protected]>
Date: Wed Oct 8 11:24:50 2014 -0600
Fix isASCII for EBCDIC
Prior to this commit isASCII on EBCDIC platforms was defined as the
isascii() libc function. It turns out that this doesn't work properly.
It needed to be this way back when EBCDIC was bootstrapped onto the
target machine, but now, various header files are furnished with the
requisite definitions, so this is no longer necessary.
The problem with isascii() is that it is locale-dependent, unlike on
ASCII platforms. This means that instead of getting a standard ASCII
definition, it returns whatever the underlying locale says, even if
there is no 'use locale' anywhere in the program. Starting with this
commit, the isASCII definition now comes from the l1_char_class_tab.h
file which we know is accurate and not locale-dependent.
This header can be used in compilations of utility programs where perl.h
is not available. For these, there are alternate, more complicated
definitions, should they be needed in those utility programs. Several
of those definitions prior to this commit also used locale-sensitive
isfoo() functions. The bulk of this commit refactors those definitions
to not use these functions as much as possible. As noted in the
added comments in the code, the one remaining use of such a function is
only for the lesser-used control characters. Likely these aren't used
in the utility programs.
M handy.h
commit 0888ecbbd9b3911190fc20d4dadefdb7392c0759
Author: Karl Williamson <[email protected]>
Date: Wed Oct 8 11:21:16 2014 -0600
handy.h: Add missing macro
This section of code is normally not compiled, but when circumstances
call for it to be compiled, it may be missing the macro defined in this
commit, which is trivial on ASCII platforms, so just define it if
missing
M handy.h
commit 58e3844ed4ed0dc718f39da566beaeb2e9fa4457
Author: Karl Williamson <[email protected]>
Date: Wed Oct 8 11:16:59 2014 -0600
handy.h: Need macro definition for normally non-compiled code
This section of code is compiled only when perl.h is not available, i.e.
for utility programs. I periodically test that it still works, and this
time a macro was added to the other branch of the #if, but not this one.
This commit adds a trivial one to the missing area.
M handy.h
commit 5ffa4aa69c720b34726957ab952b021228947f40
Author: Karl Williamson <[email protected]>
Date: Wed Oct 8 11:12:12 2014 -0600
handy.h: Comments only
Removes obsolete comment, and adds text to make it easier to find
matching #else and #endif of a #if
M handy.h
commit a3ef237055962862a13c8e84a897e47cc535e48a
Author: Yaroslav Kuzmin <[email protected]>
Date: Sun Sep 28 10:02:17 2014 -0600
perlio: Fix to work with MVS Dataset
M AUTHORS
M perlio.c
commit f163f68b4880860467305660b38e3a0ffbd919ee
Author: Karl Williamson <[email protected]>
Date: Sun Aug 24 10:12:49 2014 -0600
mktables: Use chr() instead of pack()
The input is the native code point, not the Unicode one, and so it is a
bug that pack(U) works. The W format is what should be used, but I
think chr() is easier to read.
M lib/unicore/mktables
commit 144d757148fe7b3e3eae74584ceab5c3007d4102
Author: Karl Williamson <[email protected]>
Date: Sun Jun 22 21:29:28 2014 -0600
utf8.c: Improve debug message
This function was called with an empty string "" because that string was
not actually needed in the function, except to better identify the
source when there is an error. So change to specify the actual source.
M utf8.c
commit 7853a734cbb6c255b3ee62a4c21159a62b338f3c
Author: Karl Williamson <[email protected]>
Date: Mon Jun 9 12:28:10 2014 -0600
regcomp.c: EBCDIC fix
M regcomp.c
commit 34a575444ea514c70ae8853e45f63b414b1520c4
Author: Karl Williamson <[email protected]>
Date: Wed Feb 27 21:59:11 2013 -0700
makedepend.SH: Split too long lines; properly join
I had thought that a continuation introduced a space. But no,
a continuation can happen in the middle of a token.
And this splits lines that are getting very long to avoid preprocessor
limitations.
M makedepend.SH
commit d677bc752a0539e4711b5d8f4b2bf8c6e99c94f7
Author: Karl Williamson <[email protected]>
Date: Wed Feb 27 15:51:28 2013 -0700
makedepend.SH: White-space only
Align continuation backslashes
M makedepend.SH
commit bf05e9403bdd7955abbe673456b8da85b0ff914f
Author: Karl Williamson <[email protected]>
Date: Wed Feb 27 14:39:28 2013 -0700
makedepend.SH: Remove some unnecessary white space
Multi-line preprocessor directives are now joined into single lines.
This can create lines too long for the preprocessor to handle. This
commit removes blanks adjoining comments that get deleted. This makes
things somewhat less likely to exceed the limit.
This commit also fixes several [] which were meant to each match a tab
or a blank, but editors converted the tabs to blanks
M makedepend.SH
commit 5e75a3f87ae060c4a48b7ef7ac66ca82ff163c89
Author: Karl Williamson <[email protected]>
Date: Wed Feb 27 14:30:51 2013 -0700
makedepend.SH: Retain '/**/' comments
These comments may actually be necessary.
M makedepend.SH
commit 364577d3e48fca9aba1cda2554a95b3b52d1a02d
Author: Karl Williamson <[email protected]>
Date: Tue Feb 26 09:00:18 2013 -0700
makedepend.SH: Comment out unnecessary code
This causes problems currently for z/OS. But, since we don't know why
it was there, I'm leaving it in as a placeholder.
M makedepend.SH
commit 9f343777ae9c9eaf2aa6b9b22a244dfefdd33834
Author: Andy Dougherty <[email protected]>
Date: Wed Feb 27 13:06:07 2013 -0500
Disable gcc-style function attributes on z/OS.
John Goodyear <[email protected]> reports that the z/OS C compiler
supports the attribute keyword, but not exactly the same as gcc.
Instead of a "warning", the compiler emits an "INFORMATIONAL" message
that Configure fails to detect. Until Configure is fixed, just disable
the attributes altogether.
John Goodyear
M hints/os390.sh
commit ffdc659d373cf23a71c409c33ed437e50e6c5134
Author: Andy Dougherty <[email protected]>
Date: Wed Feb 27 09:12:13 2013 -0500
Change os390 custom cppstdin script to use fgrep.
Grep appears to be limited to 2048 characters, and truncates
the output for cppstin. Fgrep apparently doesn't have that limit.
Thanks to John Goodyear <[email protected]> for reporting this.
M hints/os390.sh
commit 25d3e95e410c1e365783d38d7a9616e8682e5b4c
Author: Karl Williamson <[email protected]>
Date: Thu Oct 16 12:54:53 2014 -0600
perldelta: Typo, clarification
M pod/perldelta.pod
-----------------------------------------------------------------------
--
Perl5 Master Repository