You could go into the emscripten directory, git pull and then git checkout 1.26.0, but the simpler solution is probably just to download https://raw.githubusercontent.com/kripken/emscripten/9d1cc3667b4805b90cbab01cb24f9776f71bc011/src/library_glfw.js (i.e. the file immediately after the patch was merged) and replace src/library_glfw.js with it.
On 3 November 2014 18:40, Robert Goulet <[email protected]> wrote: > emsdk update then emsdk list only shows 1.25.0 as the latest, is there a > different way to get 1.26.0? > > On Thursday, October 30, 2014 8:12:26 PM UTC-4, Aidan Hobson Sayers wrote: >> >> I'm unconvinced about the the focus on mem_init - unless the backend >> output is very confused, mem_init is a literal string like >> /* memory initializer */ allocate([70,83,[...SNIP...],0,0,0,0], "i8", >> ALLOC_NONE, Runtime.GLOBAL_BASE); >> and so shouldn't have strange bytes in it. I don't think decoding the js >> array in the python string tells us much either because regardless of what >> it comes to, it's not going to have any impact on Python. >> >> global_initializers is from json deserialisation so should be reasonably >> safe (and I doubt clang would choose unicode names for initialisers). >> >> Which leaves us with pre, which can be described as "the bit before >> 'EMSCRIPTEN_END_FUNCS'", per pre, post = glue.split('// >> EMSCRIPTEN_END_FUNCS') >> Which seems to imply the bad byte is in an emscripten library somewhere. >> >> It just so happens I got rid of a '\xc2\xa0' byte sequence from an >> emscripten library recently - https://github.com/kripken/ >> emscripten/pull/2904 >> This fix got into 1.26.0 - can you try that? >> >> Thanks >> Aidan >> >> On 30 October 2014 17:30, Robert Goulet <[email protected]> wrote: >> >>> 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-s >>>>>>> tderr-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 emscripten-discuss+unsubscribe >>>>>>>>>>>>>> @googlegroups.com. >>>>>>>>>>>>>> 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 emscripten-discuss+unsubscribe >>>>>>>>>>> @googlegroups.com. >>>>>>>>>>> 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. >>> >> >> -- > 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.
