> On Mar 1, 2019, at 11:50 AM, Curtis Dutton <curtd...@gmail.com> wrote:
> 
> 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.


I am aware of a number of Scheme programs for real-time purposes. An exemplary 
one is probably Disney’s use of Chez Scheme to control some rides. My 
recollection is that the programs turned off the GC for those parts when they 
absolutely couldn’t be interrupted for some “embarrassing pause”. In principle, 
this strategy might be applicable to Racket-on-Chez. (Kent would know the story 
better. I don’t have it from him, and I never confirmed it with him. But I have 
confirmed similar stories with companies that do not publicly share their use 
of Scheme/Racket.) 

Of course I don’t know whether such a strategy would work in your case. I also 
don’t know whether Racket-on-Chez would be fast enough for your Racket 
fragments and the FFI might not be good enough (yet). I will let Matthew 
comment on this last point. 

— Matthias

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-dev+unsubscr...@googlegroups.com.
To post to this group, send email to racket-dev@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-dev/F3A0A6E3-975C-4729-AA6C-8E07E57A6A53%40ccs.neu.edu.
For more options, visit https://groups.google.com/d/optout.

Reply via email to