jupyter-c-kernel/example-notebook.ipynb

151 lines
3.6 KiB
Plaintext
Raw Normal View History

2016-03-25 14:30:05 +00:00
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Valid code"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
2016-03-25 14:30:05 +00:00
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": []
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Hello world\n"
]
}
],
"source": [
"#include <stdio.h>\n",
"\n",
"int main() {\n",
" printf(\"Hello world\\n\");\n",
" return 0;\n",
2016-03-25 14:30:05 +00:00
"}"
]
},
{
"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 <stdio.h>` 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": {},
2016-03-25 14:30:05 +00:00
"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 <stdio.h> 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": {},
2016-03-25 14:30:05 +00:00
"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 <stdio.h> 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`"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "C",
"language": "c",
"name": "c"
2016-03-25 14:30:05 +00:00
},
"language_info": {
"file_extension": ".c",
2016-03-25 14:30:05 +00:00
"mimetype": "text/plain",
"name": "text/x-c++src"
2016-03-25 14:30:05 +00:00
}
},
"nbformat": 4,
"nbformat_minor": 1
2016-03-25 14:30:05 +00:00
}