
On Wed, 4 Aug 2010, Stephen Sinclair wrote:
On Aug 3, 8:31 pm, Jeremy Shaw
wrote: The only area I have had any trouble with Haskell is doing realtime music synthesis. And only because the garbage collector is not realtime friendly. That is not unfixable though. However, I am thinking that the best way to do realtime synthesis with Haskell is to use it to create a DSL that uses LLVM to create code at runtime so that the realtime code is outside the scope of the normal RTS and garbage collector.
I'm also very interested in this topic---how to apply a general- purpose functional language to real-time needs, even if it is in a domain-specific way.
If you like to see real-time audio synthesis in action ... http://code.haskell.org/hal/05-2010/unsafe-performance/MOV09560.MPG and for the background: http://arxiv.org/abs/1004.4796 http://dafx04.na.infn.it/WebProc/Proc/P_201.pdf Unfortunately the package is not yet available on Hackage, because there are some patches to the llvm interface that I could not push to the main branch so far. Regarding garbage collection: My experience is that the garbage collector is quite friendly, but you run easily into a memory leak, and this memory leak will make the garbage collector busy, because it has to check reachability of more chunks. Nonetheless you can consider the memory leaks being bugs of the garbage collector or the compiler.