# HG changeset patch # User Brendan Rius # Date 1458916205 0 # Node ID c4f5d97f80d0bba16b6d7061c76135c9f991ac91 # Parent 5c4b5066fab0a771962dde0ded2b754284e82b80 Add example notebook diff -r 5c4b5066fab0 -r c4f5d97f80d0 Example of C notebook.ipynb --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Example of C notebook.ipynb Fri Mar 25 14:30:05 2016 +0000 @@ -0,0 +1,164 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Valid code" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Hello world\n" + ] + } + ], + "source": [ + "#include \n", + "\n", + "int main() {\n", + " printf(\"Hello world\\n\");\n", + "}" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "But the kernel will also display compilations warnings and errors if we have some. Let's try to remove the `#include ` statement, which if necessary for `printf` to work." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Code generating warnings during compilation" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/31/qct57s856n5f0b2r4tgbmn1c0000gn/T/tmp0Qan0v.c:2:5: warning: implicitly declaring library function 'printf' with type 'int (const char *, ...)' [-Wimplicit-function-declaration]\n", + " printf(\"Hello world\\n\");\n", + " ^\n", + "/var/folders/31/qct57s856n5f0b2r4tgbmn1c0000gn/T/tmp0Qan0v.c:2:5: note: include the header or explicitly provide a declaration for 'printf'\n", + "1 warning generated.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Hello world\n" + ] + } + ], + "source": [ + "int main() {\n", + " printf(\"Hello world\\n\");\n", + "}" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can see that the warning are displayed, but the code is still executed." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Code generating errors during compilation" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/31/qct57s856n5f0b2r4tgbmn1c0000gn/T/tmpw4Kz3c.c:2:5: warning: implicitly declaring library function 'printf' with type 'int (const char *, ...)' [-Wimplicit-function-declaration]\n", + " printf(\"Hello world\")\n", + " ^\n", + "/var/folders/31/qct57s856n5f0b2r4tgbmn1c0000gn/T/tmpw4Kz3c.c:2:5: note: include the header or explicitly provide a declaration for 'printf'\n", + "/var/folders/31/qct57s856n5f0b2r4tgbmn1c0000gn/T/tmpw4Kz3c.c:2:26: error: expected ';' after expression\n", + " printf(\"Hello world\")\n", + " ^\n", + " ;\n", + "1 warning and 1 error generated.\n", + "[C kernel] GCC exited with code 1, the executable will not be executed" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [] + } + ], + "source": [ + "int main() {\n", + " printf(\"Hello world\")\n", + "}" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can see that the errors and warnings are shown, but the code is not executed. The retcode is also added to the end of `stderr`" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "C", + "language": "c", + "name": "c_kernel" + }, + "language_info": { + "file_extension": "c", + "mimetype": "text/plain", + "name": "c" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +}