For the next few weeks, the Robot Compiler (roco) group will be taking a break from adding functionality to the compiler, and instead focus on cleaning up, documenting, and merge the existing codebases.
As the size of the roco project grows, the code has become increasingly difficult for new users to understand. Various sections of the code are uncommented, some are no longer used, and some contain temporary fixes for problems that must still be addressed. By going through and reviewing the code, we hope to create code that is robust and easy to understand. Currently the mechanical and electrical/coding modules of the compile exist in different versions of an existing codebase. We would like to combine these two modules into a single codebase/api to allow for easier use and a more consistent interface. Finally, as we review the code we will be able to reevaluate the design of the code and make any changes necessary to logically organize the code and ensure it follows good coding conventions.
- Move the two existing codebases into a single repository and resolve any resulting conflicts
- Replace any temporary fixes or bad code with proper solutions
- Add documentation to all parts of the code and finalize function/class interfaces
- Create an API interface that can remain stable while allowing for added functionality in the future
- Reduce bloat in the code without sacrificing any features
- Create concise documentation that fully explains code behavior
- Combine the two codebases in a way that minimizes duplicate functionality
Looking to the Future
While undergoing the next steps in this project will likely prove to be work intensive, completing these tasks will invaluable to making progress on the robot compiler in the future. Creating a codebase that is well documented and easy to follow will enable programmers who are new to the project to quickly contribute. In addition, a stable and clear interface will allow us to write test harnesses to ensure that each part of our code behaves properly. Together, this will make it easier for us and others to contribute to the project as it grows.
The current progress of this project can be seen on the UCLA LEMUR git.