On 24.05.2010 20:10, Greg Ames wrote:
> On Sun, May 23, 2010 at 5:40 PM, Branko Čibej <br...@xbc.nu
> <mailto:br...@xbc.nu>> wrote:
>
>
>     This is very, very wrong, because we use the ctypes for other things,
>     not just for string literals. 
>
>
> I'm aware that ctypes are used for other things.  I don't see why
> using APR's portable version of ctypes across the board would break
> anything.  I couldn't find a reason why subversion requires a custom
> version of ctypes which happens to be non-portable.

Because we assume all strings are in a subset of UTF-8, and those ctypes
are intended for such strings. If you suddenly start using
EBCDIC-specific "portable" ctypes, then other parts of the code are
likely to break horribly. At least, IIRC; it's been a long time since I
was there.
 
>
>     There is a very deep-rooted assumption
>     within the code that inside the library, all strings are encoded in (a
>     subset of) UTF-8, and that implies that we expect string literals
>     to be
>     in ascii.
>
>
> There certainly are a lot of string literals that are assumed to be
> UTF-8, agreed.
>  
>
>     Others have ported Subversion to EBCDIC systems
>
>
> It was OS/400 (aka. iSeries).  OS/390 was an earlier brand name for z/OS.

(ISTR now that you had something to do with thosat port, right?)

>     but IIRC they always told their compilers to treat the source as
>     ASCII. There was a port that used some sort of #pragma or
>     preprocessing,
>     I don't recall which, to handle string literals, but it died off
>     because
>     it was too easy to just tell the compiler to do the right thing.
>
>
> printf style format strings and args for other (but not all) library
> functions are expected to have native encoding on z/OS, so using the
> #pragmas is not as easy as I would like.

Oh ouch. That's going to make things realy evil. Imagine, our
translations are coded in UTF-8 and quite a few printf-style format
strings come from there. However ... if I'm not too much mistaken, we
use APR's formatter functions almost everywhere -- I believe the notable
exception are the command-line output functions. Are you sure you can't
just tickle those, makeing them (elegantly) z/OS-specific? For example,
we do some special magic just for the console output on Windows.

-- Brane

Reply via email to