On 17/08/18 14:03, Mathieu Bridon wrote:
On Fri, 2018-08-17 at 13:29 +0100, Jose Fonseca wrote:
This change caused one of our MSVC build machines to fail with
scons: Building targets ...
Generating build\windows-x86-debug\util\xmlpool\options.h ...
Traceback (most recent call last):
File "src\util\xmlpool\gen_xmlpool.py", line 221, in <module>
print(line, end='')
UnicodeEncodeError: 'ascii' codec can't encode character u'\u201c'
in
position 68: ordinal not in range(128)
scons: *** [build\windows-x86-debug\util\xmlpool\options.h] Error 1
Argh!
I think that's because we're now printing a unicode string. On Python 3
that's the right thing to do, if we printed the encoded byte string
we'd get the "b'…'" representation, which we certainly don't want:
print(u'août')
août
print(u'août'.encode('utf-8'))
b'ao\xc3\xbbt'
But on Python 2, we should really print the byte string though. Python
2 helpfully tries to encode the unicode string automatically, using its
default encoding: ASCII.
That obviously fails when the string contains non-ascii character.
I'll send a patch ASAP.
Thanks!
Setting PYTHONIOENCODING=utf-8 helps, but then bad things still
happen when the output is loaded src/gallium/auxiliary/pipe-loader/
But the fact is that everything was working before.
Perhaps a solution is to just start using Python 3 for the
generation scripts, as it might yield more consistent results.
That's a possibility, but then it means you need both Python 2 (for
Scons) and Python 3 (for the scripts). Requiring 2 Python stacks to
build a C codebase is pretty terrible. :-/
True. I think we can all agree the ideal is to just always Python 3.
I'm just wondering if that wouldn't be a
The hurdle with SCons is that upgrading to Python 3 also requires
updating all SConscripts and updagre SCons version itself, in lockstep..
Jose
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev