Hi all,
I've worked with linuxcnc realtime machine controller for the last 5 years. I have been playing around in my spare time with building a new motion controller that is jerk limited. My prototyping is being done in racket to prove out my math and implementation. Once working well it will be ported to C for hard realtime production code. It's been nice with the FFI to be able to actually interface with linuxcnc.
Now I find myself wondering, why can't racket run in realtime? The GC is the most obvious hurdle that I can see. But racket execution speed by itself is plenty fast enough.
If we had a racket language that could generate code that doesn't generate garbage during execution I think implementing realtime components in racket could be doable.
Most realtime code in the machine controller consists of tiny little functions that are executed at 1000 times per second.
So what I'm looking for is a racket language that doesn't generate garbage at execution time. But a "setup" phase could do so and it wouldn't be a problem.
Is there such a thing? Is it worth pursuing? Or better to just stick with C?
Anyhow just something I've been wondering about and I'm seeking opinions or any known resources from the research world.
Thanks,
Curtis