mystery exception

Ben Rubinstein benr_mc at cogapp.com
Tue Mar 11 08:53:01 EST 2003


on 10/3/03 9:31 pm, Alex Rice wrote

> On Monday, March 10, 2003, at 05:13  AM, Ben Rubinstein wrote:
>> And in so far as Alex's problem was happening in the standalone, not
>> the IDE, it's most
>> likely to be one of two things:
>> - a "do" statement exceeding the 'starter kit' limitation
>> - a library or DLL which is not included in the standalone
> 
> Unfortunately neither of those could be the cause for me. Using a
> licensed Revolution, and not using any .dlls or externals.

(I know from Alex's separate message that he's found this problem, and
that's great; but... ) be warned - the fact that you are using a licensed
copy of Revolution does not mean that your standalone can't encounter a
problem caused by
>> - a "do" statement exceeding the 'starter kit' limitation

The point is that your IDE is licensed; you can compile scripts without
limit, and build a standalone with those compiled scripts in.  But that
standalone is now operating under the same limitations as a starter kit,
that is, it cannot compile scripts greater than 10 statements.

I've been bitten by exactly this in the past. I do lots of things that
manipulate data tables represented as tab+return file/blocks of text, with a
first line which is the field names.  From HC days, I had a nice function
which took such a line, and returned some HyperTalk statements which
assigned indexes to variables based on each name, so that I could avoid
hard-wiring column indexes into the code, and make the code more readable.
So my functions would include the statement
    do makeAccessVars("vd", line 1 of datatable)

The code that was actually passed to 'do' might be
    put 1 into vdID
    put 2 into vdName
    put 3 into vdAddress

This function travelled with me as I transitioned to Revolution.  I had a
system which I used internally - no problems; compiled as a standalone and
sent to some clients - no problems; then one day sent to a client where it
fell over mysteriously.  They sent me their data, and I could process it
with no problems - of course I was using the IDE.  Eventually I discovered
the problem - they were processing a table with more than 10 (or whatever
the number is) fields.  Running in the IDE, this was fine.  But in the
standalone, when my code executed the
    do makeAccessVars("vd", line 1 of datatable)

statement, it was actually attempting to compile a script with more than 10
statements in it; and quite properly halted with the error 'license limits
exceeeded'.

So... if you use 'do', or change the script of objects on the fly, be aware
that code which works fine in the IDE will be subject to limitations in a
standalone.

  Ben Rubinstein               |  Email: benr_mc at cogapp.com
  Cognitive Applications Ltd   |  Phone: +44 (0)1273-821600
  http://www.cogapp.com        |  Fax  : +44 (0)1273-728866





More information about the use-livecode mailing list