Problem! Inaccessible substack

Richard Gaskin ambassador at fourthworld.com
Fri Feb 4 22:24:34 CST 2005


Chipp Walters wrote:
> Also, I'd consider uninstalling Devolution if you can and then try 
> again. Richard's an incredible programmer (thorough and very picky), and 
> he programmed all of Devolution inside the Metacard IDE, not the 
> Revolution IDE. He doesn't spend as much time in the Rev IDE as MC, so I 
> would assume Devolution probably hasn't logged as many hours inside Rev 
> as MC either. If, in fact there is an obscure conflict, I expect it 
> would be Revolution's IDE doing something *not expected* rather than 
> Richard's code having a problem.

That's very kind, but not always true. ;)

> But, as a last resort, removing all plugins is always a good idea 
> (including mine as well).

Ordinarily that would be optimal:  pull plugins to cut down the 
potential solution space, putting them back in batches if the problem 
went away with them removed (just as with extensions conflicts in Mac 
Classic).

But if I read his post correctly, he has a stack named "33" -- most 
everyone's tools choke on stacks named with only numerals, since 
attempting to address them by shot name is also a valid reference by 
number, but likely to a different stack.

His post mentions that the Rev IDE doesn't even show it at all.  So even 
without potentially wonky plugins (and it's true I spend relatively 
little time in the Rev IDE) the situation cannot improve.

Try it:  name a substack "33" and play around with the IDE.  Strange 
things happen.  Here I see blank entries in the Exec Err dialog pop up a 
lot, esp. when I select File->Quit.

This has come up here before, in Dec. '03: 
<http://lists.runrev.com/pipermail/use-revolution/2003-December/027697.html>.

Here's the repair script from that post:

on mouseup
    put "MyMainStackName" into tMainStack  --< your main stack name
    get the substacks of stack tMainStack
    repeat with i = 1 to the number of lines of it
       if the short name of stack i of stack tMainStack is a number then
          set the name of stack i of stack tMainStack to (i&"xxxx")
       end if
    end repeat
end mouseup

The trick to that is being very explicit about referring to the substack 
  by including its mainstack in the descriptor ("stack <substackname> of 
stack <mainstackName>").  Referring to stacks by number is rarely done 
(I'm not even sure what the rules are -- order of loading?), and since 
the engine can only have one stack in memory with a given name at a time 
there's usually no need to refer to them by anything other than their 
name -- except in this case in which the name is also an integer. :)

So that script uses a very explicit substack descriptor to prepend an 
alphabetic character to the name, and once that's done all future 
references to it by short name alone will work fine.

But even better than repair is prevention, so I just entered a feature 
request in Bugzilla to have the IDE prevent purely numeric strings when 
naming stacks:
<http://support.runrev.com/bugdatabase/show_bug.cgi?id=2582>

I've never namd any object with an integer only because some xTalk book 
or snother I read a decade ago told me not to.  But with a minor tweak 
to the IDE we can cut people's required reading down by ten years. :)

--
  Richard Gaskin
  Fourth World Media Corporation
  __________________________________________________
  Rev tools and more: http://www.fourthworld.com/rev


More information about the use-livecode mailing list