Become a sponsor to Khalil Estell
๐ Revolutionizing C++ Exception Handling
Hello, I'm Khalil Estell! ๐
I'm an ISO C++ committee member and a volunteer staff member at San Jose State University, dedicated to improving a critical mechanism in C++: exception handling.
๐ The Vision
My goal is to unlock the full potential of C++ exceptions, making them a cornerstone of efficient, reliable, and powerful software development. Here's how:
๐ Deep Error Insight and Control
The C++ Insight tool would provide unprecedented visibility into error handling, allowing developers to:
- See all errors and their origins
- Optimize error management strategies
- Fine-tune application performance and safety
๐ช C++'s Competitive Edge
Properly optimized table-based Itanium ABI exceptions give C++ a unique advantages over errors-as-values:
- โก Superior performance in critical applications
- ๐ฆ Efficient use of space in constrained environments
- ๐ก๏ธ Enhanced safety in critical systems
๐ฎ Future-Proofing C++
By improving this core feature, we're preparing C++ for the next generation of software challenges, from IoT to high-frequency trading and beyond.
๐ฌ My Research
For the past 3 years, I've been diving deep into C++ exceptions. My findings challenge common misconceptions:
C++ exceptions, specifically table-based Itanium ABI exceptions, offer:
- โก Higher performance
- ๐ฆ Smaller binary sizes
Yes, you read that right! These benefits apply at the assembly level, making them relevant not just to C++, but to all languages compiled into machine code.
๐ฏ Current Focus
I'm developing a libhal-exceptions
which is a C++ exception handling library for ARM Cortex M processors that is:
- ๐๏ธ Currently 88% faster than GCC's implementation
- ๐ฅ Targeting 92% improvement after final optimizations
- ๐ Deterministic memory usage
- โฑ๏ธ Deterministic runtime
- ๐พ ROM cost of ~5kB (or less)
๐ ๏ธ Upcoming Project: C++ Insights Tool
This year, I'm leading a team at SJSU to create a powerful C++ insights tool. Given a binary file input, it will provide:
- ๐ Set of all types thrown in your application
- ๐ Location of all throws
- ๐ฏ Location of all catches
- ๐ซ Types never caught
โ ๏ธ Exceptions that will terminate your application (with stack traces)
๐ค Support My Work
By sponsoring this project, you're contributing to:
- ๐ Advancing C++ exception handling research
- ๐ง Developing faster, more efficient exception handling libraries
- ๐ Creating tools for better exception analysis and management
Your support helps make C++ exceptions a more viable and attractive option for high-performance, small-footprint applications.
Thank you for considering sponsorship! Together, we can transform C++ exceptions from a misunderstood feature into a powerful tool, cementing C++ as the go-to solution for high-performance, space-conscious, and safety-critical applications. ๐ช