[Python-3000] Workaround for py3k build problem on CJK MacOS X?
Hye-Shik Chang
hyeshik at gmail.com
Sat Aug 16 14:48:58 CEST 2008
On Sat, Aug 16, 2008 at 4:25 AM, "Martin v. Löwis" <martin at v.loewis.de> wrote:
>> What do you think?
>
> I see another alternative: invoke the Apple converters (assuming they
> exist). Then, these encodings would only be available on OS X, but
> that might be just sufficient.
>
> Now, I'm not a CFString expert, but I would hope that the conversion
> would only be a few lines of C code which can be reviewed quickly.
I like the idea. Here's a preliminary patch implements the codec:
http://people.freebsd.org/~perky/py3k-maccodec.diff (no tests or
documentations yet)
There're two build problems to be resolved in the patch. First,
that makes libpython depends on CoreFoundation framework, we need
to put "-framework CoreFoundation" somewhere around LIBS. The next
is slightly tough. I added new aliasmbcs() function in `site`
module to register a user encoding alias to mac codec like mbcs
codec does. The function needs `locale` module which imports
`_locale` and `_functools`. But they are not available yet on the
starting point of build process. I think we'd better force
locale in build process on MacOS for the problem.
Like MBCS codec, the Mac codec implementation in the patch doesn't
support non-strict error modes and codec error callbacks. And it
has another problem in stateful encoders related to multiple candidates with
multiple unicode letters -> single Mac codepoint mappings like:
U+2222 <-> 0xA768, and also
U+2222 U+F87F <-> 0xA498
The problem can't be resolved when we're using CF string interface
only. The codec would be appropriate just for secondary use when
the main codec isn't available.
Hye-Shik
More information about the Python-3000
mailing list