Re: [LAD] Looking for an introduction to rt programming with a gui

From: Arnout Engelen <lad@email-addr-hidden>
Date: Sat May 22 2010 - 00:01:44 EEST

On Fri, May 21, 2010 at 11:42:13AM -0700, Niels Mayer wrote:
> On Fri, May 21, 2010 at 8:33 AM, torbenh <torbenh@email-addr-hidden> wrote:
> > On Thu, May 20, 2010 at 10:37:30AM -0700, Niels Mayer wrote:
> > > "hard realtime" often precludes the use of Garbage collectors. Of
> > > course Java has RT garbage collectors available:
> > > http://java.sun.com/developer/technicalArticles/Programming/rt_pt2/
> >
> > Java RTS has an innovative pricing model that starts at $6500 per
> > socket/CPU for development or internal deployment.
> >
> > well... thanks :S
>
> Java is open source.

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,
> to varying degrees of effectiveness, in all sorts of everyday devices, like
> your cable company-provided DVR and set top box (which I've worked on) and
> sometimes even your credit card verification devices (which i've also
> worked on).

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[1]
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
> > are always better ?
>
> No! (...) However programming in those languages, prototyping UI's in those
> languages is really tedious. Changing and updating and adapting applications
> for new uses is very frustrating in those environments.

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.
>
> Actually, my thoughts during the faust presentation @LAC2010 indicates we
> seem to inhabit different islands each with it's own cargo-cult...
>
> (07:59:14 AM) npm: Q: what's the difference or motivation for this Block
> > diagram algebra and lambda calculus and y-combinators??

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.

Arnout

[1] http://jjack.berlios.de/
_______________________________________________
Linux-audio-dev mailing list
Linux-audio-dev@email-addr-hidden
http://lists.linuxaudio.org/listinfo/linux-audio-dev
Received on Sat May 22 00:15:03 2010

This archive was generated by hypermail 2.1.8 : Sat May 22 2010 - 00:15:03 EEST