diff options
author | Alon Zakai <alonzakai@gmail.com> | 2013-09-10 14:26:58 -0700 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2013-09-10 14:26:58 -0700 |
commit | 690a9e16e812301245a12a6ac8f7597552255719 (patch) | |
tree | 64d10cfbdee451493cb3b69c0be81ee938855561 | |
parent | 9ef5ffd645349f0407a7a0aa45db1b961e8fd95f (diff) |
EMCC_STDERR_FILE option, to log stderr in js compiler to a file
-rwxr-xr-x | emscripten.py | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/emscripten.py b/emscripten.py index fcf109bf..4d744fdd 100755 --- a/emscripten.py +++ b/emscripten.py @@ -43,6 +43,12 @@ NUM_CHUNKS_PER_CORE = 1.25 MIN_CHUNK_SIZE = 1024*1024 MAX_CHUNK_SIZE = float(os.environ.get('EMSCRIPT_MAX_CHUNK_SIZE') or 'inf') # configuring this is just for debugging purposes +STDERR_FILE = os.environ.get('EMCC_STDERR_FILE') +if STDERR_FILE: + STDERR_FILE = os.path.abspath(STDERR_FILE) + print >> sys.stderr, 'logging stderr in js compiler phase into %s' % STDERR_FILE + STDERR_FILE = open(STDERR_FILE, 'w') + def process_funcs((i, funcs, meta, settings_file, compiler, forwarded_file, libraries, compiler_engine, temp_files, DEBUG)): try: funcs_file = temp_files.get('.func_%d.ll' % i).name @@ -57,6 +63,7 @@ def process_funcs((i, funcs, meta, settings_file, compiler, forwarded_file, libr engine=compiler_engine, args=[settings_file, funcs_file, 'funcs', forwarded_file] + libraries, stdout=subprocess.PIPE, + stderr=STDERR_FILE, cwd=path_from_root('src')) except KeyboardInterrupt: # Python 2.7 seems to lock up when a child process throws KeyboardInterrupt @@ -179,7 +186,7 @@ def emscript(infile, settings, outfile, libraries=[], compiler_engine=None, if out and DEBUG: print >> sys.stderr, ' loading pre from jcache' if not out: open(pre_file, 'w').write(pre_input) - out = jsrun.run_js(compiler, compiler_engine, [settings_file, pre_file, 'pre'] + libraries, stdout=subprocess.PIPE, + out = jsrun.run_js(compiler, compiler_engine, [settings_file, pre_file, 'pre'] + libraries, stdout=subprocess.PIPE, stderr=STDERR_FILE, cwd=path_from_root('src')) assert '//FORWARDED_DATA:' in out, 'Did not receive forwarded data in pre output - process failed?' if jcache: @@ -377,7 +384,7 @@ def emscript(infile, settings, outfile, libraries=[], compiler_engine=None, if DEBUG: t = time.time() post_file = temp_files.get('.post.ll').name open(post_file, 'w').write('\n') # no input, just processing of forwarded data - out = jsrun.run_js(compiler, compiler_engine, [settings_file, post_file, 'post', forwarded_file] + libraries, stdout=subprocess.PIPE, + out = jsrun.run_js(compiler, compiler_engine, [settings_file, post_file, 'post', forwarded_file] + libraries, stdout=subprocess.PIPE, stderr=STDERR_FILE, cwd=path_from_root('src')) post, last_forwarded_data = out.split('//FORWARDED_DATA:') # if this fails, perhaps the process failed prior to printing forwarded data? last_forwarded_json = json.loads(last_forwarded_data) |