Description:
Currently, in the C++ exercises, hitting "Reset" followed by "Play" always triggers a full recompilation of the code. While the recent fix for the pause/resume functionality is great, this recompilation worsens the user experience.
The Problem:
We frequently use the "Reset" button just to restore the robot's initial position and reset the simulation world. Having to wait ~30 seconds for the code to recompile - even when no changes have been made to the source files - significantly slows down the testing workflow and degrades the user experience.
Expected Behavior:
The system should launch the existing executable without recompiling if the user's code hasn't been modified since the last build.
Proposed Solutions:
-
Smart Compilation: Implement a check (e.g., file modification timestamps or hashes) to see if the user's code has changed. Only trigger the build process if changes are detected; otherwise, just run the existing executable.
-
Dedicated Compile Button: Decouple the actions by adding a specific "Compile" button, leaving the "Play" button strictly for execution.
Description:
Currently, in the C++ exercises, hitting "Reset" followed by "Play" always triggers a full recompilation of the code. While the recent fix for the pause/resume functionality is great, this recompilation worsens the user experience.
The Problem:
We frequently use the "Reset" button just to restore the robot's initial position and reset the simulation world. Having to wait ~30 seconds for the code to recompile - even when no changes have been made to the source files - significantly slows down the testing workflow and degrades the user experience.
Expected Behavior:
The system should launch the existing executable without recompiling if the user's code hasn't been modified since the last build.
Proposed Solutions:
Smart Compilation: Implement a check (e.g., file modification timestamps or hashes) to see if the user's code has changed. Only trigger the build process if changes are detected; otherwise, just run the existing executable.
Dedicated Compile Button: Decouple the actions by adding a specific "Compile" button, leaving the "Play" button strictly for execution.