[comp.sys.amiga.programmer] Hyper Functionality not provided by AREXX

kent@swrinde.nde.swri.edu (Kent D. Polk) (04/24/91)

In article <MWM.91Apr23135328@raven.pa.dec.com> mwm@pa.dec.com (Mike (My Watch Has Windows) Meyer) writes:
>In article <1991Apr22.071413.22219@agate.berkeley.edu> pete@violet.berkeley.edu (Pete Goodeve) writes:
>
>   However, there *are* multitasking
>   applications that one can't do with ARexx, but can with something like
>   ppIPC.
>
>I don't think you've listed any such applications. At least, you
>haven't listed any that can't be done with the RexxMsg protocol.

I will. Seems that this is getting old, but I sure couldn't implement
my systems under Arexx. Not just the speed problems either. One message
can contain:

- a variable number of commands
- structured information which explains how to implement each of those
  commands
- multiple 'chunks' of different types of data
- structured information on each of the data chunks
- the data pointers to work on
- status and parameters of online service operations (hard to explain
  this one, but an example is a gating filter which provides gate
  and threshold parameters for the subsequent filters)

Each filter can scan the message items see what types of commands &
determine what data chunks it is prepared to operate on. (Sounds kinda
like preparsed IFF, no?)

Coming soon (probably):

- more versatile way of handling data chunks
- the message-handling capabilities will be vastly improved - linked
list addition of information/data to the message by any filter in the
chain allowing the ability to share intermediate calculations and
scratchpad data with any other filter down the chain which knows to
look for such. Such as an FFT filter making available its sin/cosine
results for each waveform in the event that it operated on while
sending the freq domain results back down the chain.

(Hey Don, need a beta-tester for that 4 DSP card? :^)

Why this complexity in a message?

----------------------------------------------
Note that all this stuff has to be kept as a unit due to the 'event'
oriented nature of the system. An event triggers a data acq. activity
which can comprise many different type of data & send it down the chain
so that servers (filters) can operate on all the data in that 'event'
that the filter is prepared to handle. In most situations, a filter
MUST treat all the available data representing the event as a whole.

For example:

an event occurs - a crack in a cylinder broadcasts multiple types of
waveforms (a 'micro earthquake' (you folks in San Francisco paying
attention now? :^) which are picked up by multiple piezoelectric
transducers.

- a 'black box' recognizes these events, 'freezes' a waveform digitizer,
and signals the computer via an interrupt.

- a sampler obtains multiple waveforms from the digitizer, reads a block
of hardware buffers which now contain all sorts of information the
black box determined about the signals, gets pressure, time, etc. puts
all this stuff in a message & sends it down the chain.

- a service operation looks at some of this info & uses it to assist in
figuring out which of the waveforms appear to be most promising in
determining what caused all this stuff in the first place & sets flags
and temporary parameters in a service operation slot provided.

- a filter determines the delta time info between the selected
waveforms and performs triangulation on those delta times. Adds the
location coordinates to the message.

- a plotting filter takes the triangulation coordinates and plots on a
representation of the cylinder where it determined the event occured.

Now, with an A2500/30, all this (there is actually more than this) can
keep up with 8 channels of data with a duty cycle of 7 ms for a while.
(The chain mechanism provides massive buffering). Plotting the event
locations doesn't follow too far behind either...

------------------------------------------------------------------

Now, what does this have to do with hyper functionality? It simply
demonstrates what level of complexity I want and need for the servers
which I want to write - I have complete freedom in choosing each of
these filters. I don't like the filter I wrote for sorting out the
waveforms & want to try a different one, I shut it down & start up
another - even while data is running through the chain.

I see no way that Arexx can provide this. AREXX is certainly nice &
provides very badly needed capabilities, but comparing AREXX to PPIPC
messaging is kind of like comparing a Hercules to a fully-armed F15 -
they serve different purposes.

Well, I had better go home before my wife thinks I kissed the blacktop
trying to avoid a cage run-amuck.

Kent Polk: Southwest Research Institute (512) 522-2882
Internet : kent@swrinde.nde.swri.edu
UUCP     : $ {cs.utexas.edu, gatech!petro, sun!texsun}!swrinde!kent

dac@prolix.pub.uu.oz.au (Andrew Clayton) (04/24/91)

In article <2516@swrinde.nde.swri.edu>, Kent D. Polk writes:

> I see no way that Arexx can provide this. AREXX is certainly nice &
> provides very badly needed capabilities, but comparing AREXX to PPIPC
> messaging is kind of like comparing a Hercules to a fully-armed F15 -
> they serve different purposes.

I don't see how you can expect Arexx to serve your specific purpose. It's a
script language [a damn nice one tho!], not a compilable code generator.

Which is my way of saying "I think you're being unfair."

I do realise that you're NOT advocating that Arexx should be able to do these
things, but even so, the purposeful manipulation of a scenario where Arexx is
so clearly inadequate for the task, is quite silly. Whoever needs this as
'proof' that Arexx can't do everything is evidently braindead.

Followups to comp.sys.amiga.flamewars, er, advocacy.

> Kent Polk: Southwest Research Institute (512) 522-2882

Dac
--