Programming is difficult.
Our squishy human brains struggle to simulate what the computer will do when it runs our code.
As a result we make lots of errors, many of them small, requiring us to divert our attention from the main problem we're working on to fix minor implementation details. This both takes up time and makes us lose focus on the high-level design.
The computer is going to run our code anyway, so why not do so immediately to check what it does?
WhiteBox runs the code as it is written, capturing details about the execution.
It can then give you live feedback about the run, showing you how variables change over time and other details.
This is intended to improve the developer experience by helping you to understand your code faster, and consequently:
- catch and fix bugs earlier, before they cause major issues
- iterate more often over your design, giving more opportunity for refinement
WhiteBox is written in C and C++ with few external libraries:
- Clang/LLVM is used for lazily JIT compiling code
- Dear ImGui is used for creating the UI
- A few single-header libraries are used for various utilities (STB, Mattias Gustavsson, Randy Gaul's cute_headers)
Just about everything else is written from scratch, including:
- the hash table implementation
- DWARF debug info parsing
- plugins for code editors
WhiteBox has most of the initial set of features implemented and is nearly ready for alpha release.
Supported languages: C (and a small subset of C++)
Supported platforms: Windows
Supported code editors: 4Coder, Notepad++, Vim, (plus workarounds that should work for most other editors)
Support for more of each of these is planned or currently in-development.
Discussion and initial (free) access to the alpha at https://discord.gg/xHgepxM
Development (and Discord voice chat) streamed live at https://www.twitch.tv/azmreece
Preorder at https://azmr.itch.io/whitebox
More information and a mailing list at http://whitebox.systems