That's very cleaver, I didn't think to convert those to ascii.

Btw I completely uninstalled Emscripten 1.25.0 and re-installed it and the 
issue was still present. I uninstalled it again and re-installed 1.22.0 and 
everything works fine. So we can rule that one out. Now back to 1.25.0...

Definitively a string in our code, so I am guessing this must be a change 
in Clang since I wouldn't know how Emscripten could possibly introduce 
issues like that. I will have to dig into Clang's compiler changes/options 
to see if I can do anything about it. Its just annoying that the whole 
engine was running perfectly in 1.22.0 and now it won't even finish linking.

That file being processed by Emscripten in this case, is it only the .mem 
content (static variables initialization?) or does it also process the 
whole byte code?


On Wednesday, October 29, 2014 2:44:34 PM UTC-4, Alon Zakai wrote:
>
> Converting those last bytes to a string gives 
> "ght_direction\x00:\x00\x00\x00\x00\x00\x00\x00slices\x00\x00d". There 
> isn't anything in emscripten, LLVM or clang with the characters 
> "ght_direction". Perhaps look for where that is in your codebase? Might be 
> you have a function with non-unicode characters in its name or in a 
> parameter name, and somehow clang and LLVM preserve that oddness when 
> compiling.
>
> Another odd possibility is somehow emscripten.py (the file that crashes) 
> got corrupted somehow, and contains a non-ascii character in the text 
> processing right before that crash? Using a new copy of emscripten could 
> rule that out.
>
> - Alon
>
>
> On Wed, Oct 29, 2014 at 11:02 AM, Robert Goulet <[email protected] 
> <javascript:>> wrote:
>
>> Cool that worked.
>>
>> It prints 16,1 for 234335:234339
>>
>> It seems the offending character is the comma?
>>
>> There I printed 234300:234400 and I get:
>>
>>
>> 103,104,116,95,100,105,114,101,99,116,105,111,110,0,58,0,0,0,0,0,0,0,115,108,105,99,101,115,0,0,100,
>>
>> I really don't see what is wrong with these characters... encoding with 
>> utf-8 doesn't change the print output.
>>
>>
>>
>> On Wednesday, October 29, 2014 1:12:09 PM UTC-4, Bruce Mitchener wrote:
>>>
>>> I am half asleep but maybe:
>>>
>>> print >> sys.stderr, mem_init...
>>>
>>> http://stackoverflow.com/questions/5574702/how-to-
>>> print-to-stderr-in-python
>>>
>>>  - Bruce
>>>
>>> Sent from my iPhone
>>>
>>> On Oct 30, 2014, at 12:05 AM, Robert Goulet <[email protected]> 
>>> wrote:
>>>
>>> Ok I added the try/except block and I think it went into the except part 
>>> but I can't see it; the print function does not write into the Visual 
>>> Studio output window. So I tried to run the link command (emcc.bat with all 
>>> the same parameters) and it still doesn't print the error in the console. 
>>> How do I get this print function to write in the console (or VS output 
>>> window) ?
>>>
>>> On Wednesday, October 29, 2014 11:10:30 AM UTC-4, Bruce Mitchener wrote:
>>>>
>>>> Sure.
>>>>
>>>> Around that block of code, wrap it in a try / except block:
>>>>
>>>> try:
>>>>   ...
>>>> except:
>>>>   print mem_init[234335:234339]
>>>>
>>>> And I think that'll work. If that print errors, you may need to try 
>>>> printing mem_init[...].encode('utf-8') instead ...
>>>>
>>>>  - Bruce
>>>>
>>>>
>>>> On Wed, Oct 29, 2014 at 9:44 PM, Robert Goulet <[email protected]> 
>>>> wrote:
>>>>
>>>>> Sure I would like to debug it. I have never debugged Emscripten before 
>>>>> so I will need advices about how to do what you just said. Can you 
>>>>> provide 
>>>>> tips?
>>>>>
>>>>> On Wednesday, October 29, 2014 10:34:37 AM UTC-4, Bruce Mitchener 
>>>>> wrote:
>>>>>>
>>>>>> Someone else reported this same bug a week or two ago on this list.
>>>>>>
>>>>>> My suggestion to them is the same that I will make to you:
>>>>>>
>>>>>> Modify the code to dump some of that value around the area that it is 
>>>>>> reporting the problem.  What's in position 234337 of mem_init? What's 
>>>>>> around there?
>>>>>>
>>>>>> That should tell you something useful (and it is how I tracked down 
>>>>>> my problem when I ran into this in the past).
>>>>>>
>>>>>>  - Bruce
>>>>>>
>>>>>>
>>>>>> On Wed, Oct 29, 2014 at 9:31 PM, Robert Goulet <[email protected]
>>>>>> > wrote:
>>>>>>
>>>>>>> Yeah unfortunately the code is private, can't share it. I wasn't 
>>>>>>> able to reproduce it with a simple new project. The project that 
>>>>>>> reproduce 
>>>>>>> it links with about 20 static libraries (.bc), and it seems that if I 
>>>>>>> remove about 3/4 of them, the link works. It doesn't seems to be tied 
>>>>>>> to a 
>>>>>>> specific lib, but more about the total size of the lib payload. That's 
>>>>>>> very 
>>>>>>> odd indeed.
>>>>>>>
>>>>>>>
>>>>>>> On Wednesday, October 29, 2014 10:20:18 AM UTC-4, Robert Goulet 
>>>>>>> wrote:
>>>>>>>>
>>>>>>>> Nope, that didn't work...
>>>>>>>>
>>>>>>>> Link:
>>>>>>>>   Traceback (most recent call last):
>>>>>>>>     File "C:\Program 
>>>>>>>> Files\Emscripten\emscripten\1.25.0\emscripten.py", 
>>>>>>>> line 1578, in <module>
>>>>>>>>       _main(environ=os.environ)
>>>>>>>>     File "C:\Program 
>>>>>>>> Files\Emscripten\emscripten\1.25.0\emscripten.py", 
>>>>>>>> line 1566, in _main
>>>>>>>>       temp_files.run_and_clean(lambda: main(
>>>>>>>>     File "C:\Program 
>>>>>>>> Files\Emscripten\emscripten\1.25.0\tools\tempfiles.py", 
>>>>>>>> line 39, in run_and_clean
>>>>>>>>       return func()
>>>>>>>>     File "C:\Program 
>>>>>>>> Files\Emscripten\emscripten\1.25.0\emscripten.py", 
>>>>>>>> line 1574, in <lambda>
>>>>>>>>       DEBUG_CACHE=DEBUG_CACHE,
>>>>>>>>     File "C:\Program 
>>>>>>>> Files\Emscripten\emscripten\1.25.0\emscripten.py", 
>>>>>>>> line 1461, in main
>>>>>>>>       jcache=jcache, temp_files=temp_files, DEBUG=DEBUG, 
>>>>>>>> DEBUG_CACHE=DEBUG_CACHE)
>>>>>>>>     File "C:\Program 
>>>>>>>> Files\Emscripten\emscripten\1.25.0\emscripten.py", 
>>>>>>>> line 911, in emscript_fast
>>>>>>>>       %s''' % (str(mem_init).count(',')+1, global_initializers, 
>>>>>>>> str(mem_init))) # XXX wrong size calculation!
>>>>>>>>   UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in 
>>>>>>>> position 234337: ordinal not in range(128)
>>>>>>>>   Traceback (most recent call last):
>>>>>>>>     File "C:\Program Files\Emscripten\emscripten\1.25.0\\emcc", 
>>>>>>>> line 1259, in <module>
>>>>>>>>       final = shared.Building.emscripten(final, append_ext=False, 
>>>>>>>> extra_args=extra_args)
>>>>>>>>     File "C:\Program 
>>>>>>>> Files\Emscripten\emscripten\1.25.0\tools\shared.py", 
>>>>>>>> line 1464, in emscripten
>>>>>>>>       assert os.path.exists(filename + '.o.js'), 'Emscripten failed 
>>>>>>>> to generate .js'
>>>>>>>>   AssertionError: Emscripten failed to generate .js
>>>>>>>> C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4
>>>>>>>> .0\Platforms\Emscripten\Microsoft.Cpp.Emscripten.Targets(117,5): 
>>>>>>>> error MSB6006: "C:\Program 
>>>>>>>> Files\Emscripten\emscripten\1.25.0\emcc.bat" 
>>>>>>>> exited with code 1.
>>>>>>>>
>>>>>>>> Build FAILED.
>>>>>>>>
>>>>>>>> On Tuesday, October 28, 2014 4:24:45 PM UTC-4, Alon Zakai wrote:
>>>>>>>>>
>>>>>>>>> Hmm, never seen that before. Odd.
>>>>>>>>>
>>>>>>>>> If this code is open, can you provide the bitcode for testing? If 
>>>>>>>>> not, one random guess - if you change that line (911 in 
>>>>>>>>> emscripten.py) to 
>>>>>>>>> replace 
>>>>>>>>>
>>>>>>>>> mem_init
>>>>>>>>>
>>>>>>>>> (in both places) with
>>>>>>>>>
>>>>>>>>> str(mem_init)
>>>>>>>>>
>>>>>>>>> , does that help?
>>>>>>>>>
>>>>>>>>> - Alon
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Tue, Oct 28, 2014 at 11:04 AM, Robert Goulet <
>>>>>>>>> [email protected]> wrote:
>>>>>>>>>
>>>>>>>>>> Hi all,
>>>>>>>>>>
>>>>>>>>>> I just upgraded my project to Emscripten 1.25.0 and I have a new 
>>>>>>>>>> link error that wasn't there with Emscripten 1.22.0.
>>>>>>>>>>
>>>>>>>>>> Here is what the linker outputs:
>>>>>>>>>>
>>>>>>>>>> Link:
>>>>>>>>>>   Traceback (most recent call last):
>>>>>>>>>>     File "C:\Program 
>>>>>>>>>> Files\Emscripten\emscripten\1.25.0\emscripten.py", 
>>>>>>>>>> line 1578, in <module>
>>>>>>>>>>       _main(environ=os.environ)
>>>>>>>>>>     File "C:\Program 
>>>>>>>>>> Files\Emscripten\emscripten\1.25.0\emscripten.py", 
>>>>>>>>>> line 1566, in _main
>>>>>>>>>>       temp_files.run_and_clean(lambda: main(
>>>>>>>>>>     File "C:\Program 
>>>>>>>>>> Files\Emscripten\emscripten\1.25.0\tools\tempfiles.py", 
>>>>>>>>>> line 39, in run_and_clean
>>>>>>>>>>       return func()
>>>>>>>>>>     File "C:\Program 
>>>>>>>>>> Files\Emscripten\emscripten\1.25.0\emscripten.py", 
>>>>>>>>>> line 1574, in <lambda>
>>>>>>>>>>       DEBUG_CACHE=DEBUG_CACHE,
>>>>>>>>>>     File "C:\Program 
>>>>>>>>>> Files\Emscripten\emscripten\1.25.0\emscripten.py", 
>>>>>>>>>> line 1461, in main
>>>>>>>>>>       jcache=jcache, temp_files=temp_files, DEBUG=DEBUG, 
>>>>>>>>>> DEBUG_CACHE=DEBUG_CACHE)
>>>>>>>>>>     File "C:\Program 
>>>>>>>>>> Files\Emscripten\emscripten\1.25.0\emscripten.py", 
>>>>>>>>>> line 911, in emscript_fast
>>>>>>>>>>       %s''' % (mem_init.count(',')+1, global_initializers, 
>>>>>>>>>> mem_init)) # XXX wrong size calculation!
>>>>>>>>>>   UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in 
>>>>>>>>>> position 234337: ordinal not in range(128)
>>>>>>>>>>   Traceback (most recent call last):
>>>>>>>>>>     File "C:\Program Files\Emscripten\emscripten\1.25.0\\emcc", 
>>>>>>>>>> line 1259, in <module>
>>>>>>>>>>       final = shared.Building.emscripten(final, 
>>>>>>>>>> append_ext=False, extra_args=extra_args)
>>>>>>>>>>     File "C:\Program 
>>>>>>>>>> Files\Emscripten\emscripten\1.25.0\tools\shared.py", 
>>>>>>>>>> line 1464, in emscripten
>>>>>>>>>>       assert os.path.exists(filename + '.o.js'), 'Emscripten 
>>>>>>>>>> failed to generate .js'
>>>>>>>>>>   AssertionError: Emscripten failed to generate .js
>>>>>>>>>> C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4
>>>>>>>>>> .0\Platforms\Emscripten\Microsoft.Cpp.Emscripten.Targets(117,5): 
>>>>>>>>>> error MSB6006: "C:\Program 
>>>>>>>>>> Files\Emscripten\emscripten\1.25.0\emcc.bat" 
>>>>>>>>>> exited with code 1.
>>>>>>>>>>
>>>>>>>>>> Here is the link command-line use:
>>>>>>>>>>
>>>>>>>>>> emcc -o f:/dev/build/main.html -O2 f:/dev/build/game/game.bc 
>>>>>>>>>> -Wno-warn-absolute-paths -s NO_EXIT_RUNTIME=1 -s 
>>>>>>>>>> TOTAL_MEMORY=64*1024*1024 
>>>>>>>>>> --preload-file f:/dev/data/gamedata@/
>>>>>>>>>>
>>>>>>>>>> I did a clean/full rebuild to be sure there wasn't any previously 
>>>>>>>>>> built files around and I always get the same results. Did anyone 
>>>>>>>>>> ever had 
>>>>>>>>>> this problem before? How do I debug this?
>>>>>>>>>> Thanks!
>>>>>>>>>>
>>>>>>>>>> -- 
>>>>>>>>>> You received this message because you are subscribed to the 
>>>>>>>>>> Google Groups "emscripten-discuss" group.
>>>>>>>>>> To unsubscribe from this group and stop receiving emails from it, 
>>>>>>>>>> send an email to [email protected].
>>>>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>  -- 
>>>>>>> You received this message because you are subscribed to the Google 
>>>>>>> Groups "emscripten-discuss" group.
>>>>>>> To unsubscribe from this group and stop receiving emails from it, 
>>>>>>> send an email to [email protected].
>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>
>>>>>>
>>>>>>  -- 
>>>>> You received this message because you are subscribed to the Google 
>>>>> Groups "emscripten-discuss" group.
>>>>> To unsubscribe from this group and stop receiving emails from it, send 
>>>>> an email to [email protected].
>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>
>>>>
>>>>  -- 
>>> You received this message because you are subscribed to the Google 
>>> Groups "emscripten-discuss" group.
>>> To unsubscribe from this group and stop receiving emails from it, send 
>>> an email to [email protected].
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>>  -- 
>> You received this message because you are subscribed to the Google Groups 
>> "emscripten-discuss" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected] <javascript:>.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"emscripten-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to