Code Cleanup
This week I upgraded my main development PC and after a fresh reinstall of the OS I decided to do some spring cleaning.
Codebase cleanup
Since I recently upgraded Clang from 3.7 to 3.8, I tried compiling Rival Fortress with -Weverything enabled to see if they introduced new useful warnings.
Many of the diagnostic warnings that are enabled with -Weverything
not really useful, but I find that it’s still a useful flag to enable every once in a while, especially after upgrading compiler version.
Toolchain cleanup
I finally abandoned GCC and MSVC in favor of Clang for all platforms as a frontend compiler. Previously I was using GCC when cross-compiling on Linux and Mac, and MSVC on Windows, but keeping compiler flags in sync was becoming too error prone. I now use Clang as frontend and LLVM or GNU binutils as linker/assemblers.
As a sweet side-effect, the project’s CMake scripts are much simpler too, with a lot less branching and compiler special casing.
Army knife cleanup
I also did some cleanup on the shell script that I use for various project tasks. I’ve simplified it quite a bit, removing the compiler switching as well as code paths that I don’t use anymore.
I hope that when Windows 10’s Bash support finally arrives I’ll be able to drop Cygwin and use the script “natively” on Windows too.