From bc8229947d485e370f56d4470ad92ed4b553b164 Mon Sep 17 00:00:00 2001 From: Kevin Bogusch Date: Mon, 23 Dec 2024 09:18:24 -0500 Subject: [PATCH] Added more exception handling in c_compiler_cmd If there is any error, even writing the simple.cpp file, catch it and just return a "I don't know" diagnosis --- week4/day4.ipynb | 112 +++++++++++++++++++++++------------------------ 1 file changed, 56 insertions(+), 56 deletions(-) diff --git a/week4/day4.ipynb b/week4/day4.ipynb index 12a9abe..5ce0218 100644 --- a/week4/day4.ipynb +++ b/week4/day4.ipynb @@ -455,7 +455,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 111, "id": "e42286bc-085c-45dc-b101-234308e58269", "metadata": {}, "outputs": [], @@ -482,75 +482,75 @@ " return \"\"\n", "\n", "def c_compiler_cmd(filename_base):\n", - "\n", - " with open(\"simple.cpp\", \"w\") as f:\n", - " f.write(simple_cpp)\n", - "\n", - " \n", " my_platform = platform.system()\n", " my_compiler = []\n", + "\n", + " try:\n", + " with open(\"simple.cpp\", \"w\") as f:\n", + " f.write(simple_cpp)\n", + " \n", + " if my_platform == \"Windows\":\n", + " if os.path.isfile(VISUAL_STUDIO_2022_TOOLS):\n", + " if os.path.isfile(\"./simple.exe\"):\n", + " os.remove(\"./simple.exe\")\n", + " compile_cmd = [\"cmd\", \"/c\", VISUAL_STUDIO_2022_TOOLS, \"&\", \"cl\", \"simple.cpp\"]\n", + " if run_cmd(compile_cmd):\n", + " if run_cmd([\"./simple\"]) == \"Hello\":\n", + " my_compiler = [\"Windows\", \"Visual Studio 2022\", [\"cmd\", \"/c\", VISUAL_STUDIO_2022_TOOLS, \"&\", \"cl\", f\"{filename_base}.cpp\"]]\n", + " \n", + " if not my_compiler:\n", + " if os.path.isfile(VISUAL_STUDIO_2019_TOOLS):\n", + " if os.path.isfile(\"./simple.exe\"):\n", + " os.remove(\"./simple.exe\")\n", + " compile_cmd = [\"cmd\", \"/c\", VISUAL_STUDIO_2019_TOOLS, \"&\", \"cl\", \"simple.cpp\"]\n", + " if run_cmd(compile_cmd):\n", + " if run_cmd([\"./simple\"]) == \"Hello\":\n", + " my_compiler = [\"Windows\", \"Visual Studio 2019\", [\"cmd\", \"/c\", VISUAL_STUDIO_2019_TOOLS, \"&\", \"cl\", f\"{filename_base}.cpp\"]]\n", " \n", - " \n", - " if my_platform == \"Windows\":\n", - " if os.path.isfile(VISUAL_STUDIO_2022_TOOLS):\n", - " if os.path.isfile(\"./simple.exe\"):\n", - " os.remove(\"./simple.exe\")\n", - " compile_cmd = [\"cmd\", \"/c\", VISUAL_STUDIO_2022_TOOLS, \"&\", \"cl\", \"simple.cpp\"]\n", - " if run_cmd(compile_cmd):\n", - " if run_cmd([\"./simple\"]) == \"Hello\":\n", - " my_compiler = [\"Windows\", \"Visual Studio 2022\", [\"cmd\", \"/c\", VISUAL_STUDIO_2022_TOOLS, \"&\", \"cl\", f\"{filename_base}.cpp\"]]\n", - " \n", - " if not my_compiler:\n", - " if os.path.isfile(VISUAL_STUDIO_2019_TOOLS):\n", + " if not my_compiler:\n", " if os.path.isfile(\"./simple.exe\"):\n", " os.remove(\"./simple.exe\")\n", - " compile_cmd = [\"cmd\", \"/c\", VISUAL_STUDIO_2019_TOOLS, \"&\", \"cl\", \"simple.cpp\"]\n", + " compile_cmd = [\"cmd\", \"/c\", \"gcc\", \"simple.cpp\"]\n", " if run_cmd(compile_cmd):\n", + " print(\"here\")\n", " if run_cmd([\"./simple\"]) == \"Hello\":\n", - " my_compiler = [\"Windows\", \"Visual Studio 2019\", [\"cmd\", \"/c\", VISUAL_STUDIO_2019_TOOLS, \"&\", \"cl\", f\"{filename_base}.cpp\"]]\n", - "\n", - " if not my_compiler:\n", - " if os.path.isfile(\"./simple.exe\"):\n", - " os.remove(\"./simple.exe\")\n", - " compile_cmd = [\"cmd\", \"/c\", \"gcc\", \"simple.cpp\"]\n", + " my_compiler = [\"Windows\", \"GCC\", [\"cmd\", \"/c\", \"gcc\", f\"{filename_base}.cpp\"]]\n", + " \n", + " if not my_compiler:\n", + " my_compiler=[my_platform, \"Unavailable\", []]\n", + " \n", + " elif my_platform == \"Linux\":\n", + " if os.path.isfile(\"./simple\"):\n", + " os.remove(\"./simple\")\n", + " compile_cmd = [\"gcc\", \"simple.cpp\"]\n", " if run_cmd(compile_cmd):\n", - " print(\"here\")\n", " if run_cmd([\"./simple\"]) == \"Hello\":\n", - " my_compiler = [\"Windows\", \"GCC\", [\"cmd\", \"/c\", \"gcc\", f\"{filename_base}.cpp\"]]\n", - "\n", - " if not my_compiler:\n", - " my_compiler=[my_platform, \"Unavailable\", []]\n", - " \n", - " elif my_platform == \"Linux\":\n", - " if os.path.isfile(\"./simple\"):\n", - " os.remove(\"./simple\")\n", - " compile_cmd = [\"gcc\", \"simple.cpp\"]\n", - " if run_cmd(compile_cmd):\n", - " if run_cmd([\"./simple\"]) == \"Hello\":\n", - " my_compiler = [\"Linux\", \"GCC\", [\"gcc\", f\"{filename_base}.cpp\", \"-o\", f\"{filename_base}\"]]\n", - "\n", - " if not my_compiler:\n", + " my_compiler = [\"Linux\", \"GCC\", [\"gcc\", f\"{filename_base}.cpp\", \"-o\", f\"{filename_base}\"]]\n", + " \n", + " if not my_compiler:\n", + " if os.path.isfile(\"./simple\"):\n", + " os.remove(\"./simple\")\n", + " compile_cmd = [\"clang\", \"simple.cpp\", \"-o\", \"simple\"]\n", + " if run_cmd(compile_cmd):\n", + " if run_cmd([\"./simple\"]) == \"Hello\":\n", + " my_compiler = [\"Linux\", \"CLang\", [\"clang\", f\"{filename_base}.cpp\", \"-o\", f\"{filename_base}\"]]\n", + " \n", + " if not my_compiler:\n", + " my_compiler=[my_platform, \"Unavailable\", []]\n", + " \n", + " elif my_platform == \"Darwin\":\n", " if os.path.isfile(\"./simple\"):\n", " os.remove(\"./simple\")\n", - " compile_cmd = [\"clang\", \"simple.cpp\", \"-o\", \"simple\"]\n", + " compile_cmd = [\"gcc\", \"simple.cpp\"]\n", " if run_cmd(compile_cmd):\n", " if run_cmd([\"./simple\"]) == \"Hello\":\n", - " my_compiler = [\"Linux\", \"CLang\", [\"clang\", f\"{filename_base}.cpp\", \"-o\", f\"{filename_base}\"]]\n", + " my_compiler = [\"Linux\", \"CLang\", [\"clang++\", \"-Ofast\", \"-std=c++17\", \"-march=armv8.5-a\", \"-mtune=apple-m1\", \"-mcpu=apple-m1\", \"-o\", f\"{filename_base}\", f\"{filename_base}.cpp\"]]\n", " \n", - " if not my_compiler:\n", - " my_compiler=[my_platform, \"Unavailable\", []]\n", - "\n", - " elif my_platform == \"Darwin\":\n", - " if os.path.isfile(\"./simple\"):\n", - " os.remove(\"./simple\")\n", - " compile_cmd = [\"gcc\", \"simple.cpp\"]\n", - " if run_cmd(compile_cmd):\n", - " if run_cmd([\"./simple\"]) == \"Hello\":\n", - " my_compiler = [\"Linux\", \"CLang\", [\"clang++\", \"-Ofast\", \"-std=c++17\", \"-march=armv8.5-a\", \"-mtune=apple-m1\", \"-mcpu=apple-m1\", \"-o\", f\"{filename_base}\", f\"{filename_base}.cpp\"]]\n", - "\n", - " if not my_compiler:\n", - " my_compiler=[my_platform, \"Unavailable\", []]\n", - "\n", + " if not my_compiler:\n", + " my_compiler=[my_platform, \"Unavailable\", []]\n", + " except:\n", + " my_compiler=[my_platform, \"Unavailable\", []]\n", + " \n", " if my_compiler:\n", " return my_compiler\n", " else:\n",