Unfortunately I won't be able to dig into this for the next two-three weeks, but I will try to find the offending commit once I'm back. Thanks!
Sent from mobile, please excuse typos. > On Oct 29, 2014, at 4:59 PM, Alon Zakai <[email protected]> wrote: > > Not sure what you mean exactly, but in the python script, it is handling > output from the JS backend, which handled both static initialization and > executable code, basically everything. > > If it works on 1.22.0 but not on 1.25.0, one option is to bisect to find the > breaking version (or better, commit). > > Another option is to reduce it manually, link less and less things in the > final link (might need -s LINKABLE=1 to avoid dce killing everything once you > remove the main() method), then continue narrowing it down to a single > method, which hopefully you can provide a public testcase based on that. > > - Alon > > >> On Wed, Oct 29, 2014 at 12:55 PM, Robert Goulet <[email protected]> >> wrote: >> 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]> >>>> 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]. >>>> 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 a topic in the Google > Groups "emscripten-discuss" group. > To unsubscribe from this topic, visit > https://groups.google.com/d/topic/emscripten-discuss/Kfn59Uv8MBs/unsubscribe. > To unsubscribe from this group and all its topics, 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.
