Mercurial > hg > Members > aka > jupyter_CbC_kernel
comparison c_kernel/kernel.py @ 4:5c4b5066fab0
Do not try to execute the executable if compilation failed
author | Brendan Rius <brendan@omixy.com> |
---|---|
date | Fri, 25 Mar 2016 14:25:29 +0000 |
parents | 8ddfdd2a8574 |
children | aa54c85303b6 |
comparison
equal
deleted
inserted
replaced
3:8ddfdd2a8574 | 4:5c4b5066fab0 |
---|---|
52 source_file.write(code) | 52 source_file.write(code) |
53 source_file.flush() | 53 source_file.flush() |
54 with self.new_temp_file(suffix='.out') as binary_file: | 54 with self.new_temp_file(suffix='.out') as binary_file: |
55 retcode, stdout, stderr = self.compile_with_gcc(source_file.name, binary_file.name) | 55 retcode, stdout, stderr = self.compile_with_gcc(source_file.name, binary_file.name) |
56 if retcode != 0: | 56 if retcode != 0: |
57 stderr += "[C kernel] GCC exited with code {}".format(retcode) | 57 stderr += "[C kernel] GCC exited with code {}, the executable will not be executed".format(retcode) |
58 self.log.error("GCC return code: {}".format(retcode)) | 58 self.log.info("GCC return code: {}".format(retcode)) |
59 self.log.error("GCC stdout: {}".format(stdout)) | 59 self.log.info("GCC stdout: {}".format(stdout)) |
60 self.log.error("GCC stderr: {}".format(stderr)) | 60 self.log.info("GCC stderr: {}".format(stderr)) |
61 | 61 |
62 retcode, out, err = CKernel.execute_command([binary_file.name]) | 62 if retcode == 0: # If the compilation succeeded |
63 if retcode != 0: | 63 retcode, out, err = CKernel.execute_command([binary_file.name]) |
64 stderr += "[C kernel] Executable exited with code {}".format(retcode) | 64 if retcode != 0: |
65 self.log.error("Executable retcode: {}".format(retcode)) | 65 stderr += "[C kernel] Executable exited with code {}".format(retcode) |
66 self.log.error("Executable stdout: {}".format(out)) | 66 self.log.info("Executable retcode: {}".format(retcode)) |
67 self.log.error("Executable stderr: {}".format(err)) | 67 self.log.info("Executable stdout: {}".format(out)) |
68 stdout += out | 68 self.log.info("Executable stderr: {}".format(err)) |
69 stderr += err | 69 stdout += out |
70 stderr += err | |
71 else: | |
72 self.log.info('Compilation failed, the program will not be executed') | |
70 | 73 |
71 if not silent: | 74 if not silent: |
72 stream_content = {'name': 'stderr', 'text': stderr} | 75 stream_content = {'name': 'stderr', 'text': stderr} |
73 self.send_response(self.iopub_socket, 'stream', stream_content) | 76 self.send_response(self.iopub_socket, 'stream', stream_content) |
74 stream_content = {'name': 'stdout', 'text': stdout} | 77 stream_content = {'name': 'stdout', 'text': stdout} |