On Fri, May 21, 2010 at 11:42:13AM -0700, Niels Mayer wrote:
Well, indeed a big part of the Sun JVM has been open-sourced under the name
'OpenJDK'. That does not mean the Java RTS is open-sourced - I'm pretty
sure it isn't. But I'm not even sure RTS provides the kind of RT we're looking
for in the LAD world.
> There are people using embedded and sometimes RT java,
What kind of 'real time' are we talking about here, exactly? I think the
definition relevant for the LAD world is basically: "it can be guaranteed that
no non-RT-safe calls (like anything that may block, including malloc) will
take place while handling the JACK process() callback".
Can OpenJDK provide that guarantee? This never has been quite clear to me.
The JACK thread can be run at a higher priority than the other Java process
threads (including the GC thread), so as long as there's no non-RT-safe calls
I think we should be safe from being interrupted by the GC (right?). Probably
the jack process() callback would call some Java code though JNI (like JJack
does). *If* JNI doesn't do anything non-RT-safe, and *if* it is possible to
avoid doing non-RT-safe stuff at the Java side (by adhering to some rules in
your Java code, much like you'll have to do when writing C code), it'd be
possible to write RT-safe code in Java.
It sounds possible, but there are some big 'ifs' there.
Of course the more interesting features of Java would probably still be
forbidden to be used in the JACK process() callback.
> > i dont understand... are you seriously arguing that dynamic languages
I tend to disagree: actually I find changing/updating/adapting things in a
dynamic language is more frustrating and tedious because there's no compiler
to tell me which bits I missed. But perhaps we shouldn't rehash the old static
vs dynamic typing debate here ;).
> > faust is able to parallelize any valid faust code.
I'd say you can ask the same question for any functional language. Other
representations are useful to make the algorithms in a given field easier to
read, write and/or manipulate.
Linux-audio-dev mailing list