Quick question, in pure C applications, just as a test, I noted that the GC still shows up in the device graph (at a consistent ~4% or so). I am assuming this is because somewhere the playdate os/system implementation it is using Lua. Not a huge deal, I just wanted to confirm that my understanding is correct.
If you are calling playdate->system->setUpdateCallback(PDCallbackFunction* update, void* userdata) in your kEventInit, it shouldn't be loading the Lua runtime at all as far as I can tell. My pure C apps show 0% GC usage in the device graph.
huh, that is being set, I wonder what is going on there.
edit, figured it out thanks to you @timhei , I was setting the callback, but in kEventInitLua rather than kEventInit (a vestige from when the app was mixed mode c+lua).
Nice, glad you figured it out! I was going to say you can also check if the Lua runtime is running by clicking the device target button in the simulator console to switch to the Playdate and then try typing a Lua command.