[Expat-discuss] Expat with UTF-32 support (as implemented in 4Suite.org)
Jeremy Kloth
jeremy.kloth at fourthought.com
Tue Oct 4 17:37:50 CEST 2005
On Monday 03 October 2005 11:41 pm, Raphael Bossek wrote:
> Without the UTF-32 support in libexpat it will be mutch harder for
> me to maintain 4suite.org package for Debian GNU/Linux. The usage
> for libexpat instead of staticly linking the 4suite.org extension
> into the Python modules is mandatory for mod_python environments.
> We have to make sure only one version of expat symbols is loaded
> into memory.
It will make no difference if the platform's libexpat would have this support
unless it was compiled with the same settings for XML_Char as Python does for
Py_UNICODE. By doing that, no transcoding is required to go from Expat
strings to Python unicode objects, a large performance boost.
Linking to libexpat is only required for ELF systems not using symbol
visibility (GCC 4 or 3.4+patch). However, until Python gets updated to
support that, it is in apache/mod_python's hands to do so.
> Any idears are welcome. In the meantime I'l investigate the patch
> done by the 4suite.org team and make a patch agains latest CVS.
> I've also see MSVC 6.0 support in it. Is there any interest in it?
One idea to solve this constant PITA wrt mod_python/apache would be a way to
define a "prefix" for all exported symbols. So, for example in expat.h,
instead of:
XMLPARSEAPI(XML_Parser)
XML_ParserCreate(const XML_Char *encoding);
it could be something like:
XMLPARSEAPI(XML(Parser))
XML(ParserCreate)(const XML_Char *encoding);
where:
#define XML_PREFIX XML
#define XML(name) XML_PREFIX#_#name
Just a thought.
--
Jeremy Kloth
Fourthought, Inc.
http://fourthought.com/
http://4suite.org/
More information about the Expat-discuss
mailing list