Making Revolution faster with really big arrays

Dennis Brown see3d at writeme.com
Fri Apr 29 13:05:00 EDT 2005


Jon,

It should actually be very easy to create such a thing.  This is 
something I have requested as far back as 6 or 7 years ago for 
Transcript (I was using SC back then).  I was told that Keyed Arrays 
were coming and would solve all my problems... think again.  It is no 
different than having a CPU and a separate vector processing unit in a 
chip.  The main way to go about it, is to be able to allocate a fixed 
amount of contiguous memory to an array of n dimensions with n byte 
elements of a fixed type.  The language needed to process it would be 
very simple set of conditional and repeat and math operators that have 
a direct equivalent to the usual machine code operations.  It would be 
trivial for a compiler writer to create the machine code, or for that 
matter, a simple compiler could be written in transcript and with just 
a minor speed penalty, the compiled code could be machine independent 
byte codes with a teensy-tiny runtime package for each platform. It 
would run at least ten times faster than Transcript.

Is there any reason that a large array of data could not be sent to an 
external along with a set of "bytecode instructions" for processing the 
array?

It would be great to have it as a built in function for everyone to 
use, or an enterprising Rev developer might make an external add on.  I 
would do it if I had more experience and time, but the last time I 
wrote something like this was 30 years ago for 6800 machines.  It was a 
tiny universal "Machine Code" and compiler.

Dennis

On Apr 29, 2005, at 9:52 AM, Lynch, Jonathan wrote:

> How hard would it be to create a math and array processing external for
> RunRev?
>
> This would be useful for numerous things, including complex image
> processing.
>
> It would need to do two things:
> 1) allow the user to pass a script (like in C) for processing the array
> to the external
>
> 2) send the array(s) itself to the external, which then uses the
> previously sent script to process that array(s) and return the result.



More information about the use-livecode mailing list