-
Notifications
You must be signed in to change notification settings - Fork 25
Road Map
We need a better high level overview, as well as a guide about how the roadrunner pipeline works.
We want to decrease the C++ complexity bloat as much possible. Some things are okay like unique_ptr
, but in general it's very hard to understand how to safely modify the code. This will be greatly helped by documentation, but we'd also like to make changes to the code to make it more maintainable.
Using a C++ linter will automatically tell you if you violate style guide rules. The Google one is popular, but we may want to use some custom rules.
This size of LLVMModelData should not be unknown at compile time as it is now with the data[0]
hack. I suggest changing the data fields to a set of pointers to arrays that contain the data
CRTP is used in SetValuesCodeGen, and possibly in other places. I would like to investigate if we could get the same performance out of some other, more readable design. It's only used in like 3 files, but those files are frequently hotspots for debugging and it takes a lot of effort to understand what is going on. At the very least, they should be better documented and explain CRTP.
- Direct access to the model data to change it during execution
There are a lot of problems with C++ that might be solved by moving to a language like Rust. I'm interested in experimenting with this by taking small pieces of the codebase and replacing them with Rust equivalents. This would involve setting up a build/link system with cargo
in CMake, but that's doable.