Pamela nightmare over: post-mortem

pkc pkc at mac.com
Mon Aug 2 11:25:34 EDT 2004


I heard from students this morning that the latest build actually 
opens and runs on Windows. Again, many thanks to the group for your 
great ideas, considerable direct efforts, and support.

To review, the problem was:  An application built in OSX that built 
and ran without any problems in OSX could not under any circumstances 
be transferred to and run by a Windows machine.  Invariably, the 
resulting error was "0,0".  The fix was:  Ken Ray used MetaCard to 
identify a corrupt substack, I rewrote it, rebuilt for WIndows, 
distributed it as an .exe file (no zipping, in this case), and it 
worked.  The successful build happened to be in Revolution 2.2.1, 
which I had freshly reinstalled after searching hundreds of archives 
looking for the licence number.

Sounds simple, but it is worth remembering that before the 
application of MetaCard (as Andre foresaw) to this problem, there was 
absolutely no clue to where the problem lay.  In the end, we found 
out only where the problem lay, not exactly what it was.  That was 
enough to fix it, but I still have some questions.

First, I can say this from my experience of rewriting the stack:

As it happened the corrupted stack was one of the oldest in the 
application, and had certainly been present in very much its current 
form from the earliest builds (the ones that went across to Windows 
with no problems). In one of the scripts I found a stray "the" in an 
instruction.  I'm not assuming this was the problem, since I would 
have no way of understanding exactly how a "the" can cause disaster. 
Normally, that is the kind or error that the script editor seems to 
pick up as soon as the instructions are applied.  Now, it is possible 
to save the script anyway (and with a lot of windows open that can 
happen by accident anyway), so if this the source of evil, I should 
report that it was found.

Questions about that.  Why would OSX happily work around such as 
error?  Is this a deprecation issue? If so, my feature request for 
Revolution 4.x or 5.x would be that it flag ambiguous items according 
to the standards of the least-likely-to-deprecate system (which I am 
guessing, in this case, is Windows).

Second, I found MANY scripts in this stack (and probably in others) 
afflicted by a pesky problem that has before this seemed to me to be 
merely an annoyance.  A lot of my scripts insert strange empty space 
between the last instruction and the bottom of the window.  In a very 
small number of cases, I have found for a long time that the script 
editor reports a compiling error when these strange spaces are 
present, and then compiles happily when I remove the space.  But 
removing the space is not usually final.  Some script windows keep 
putting the mystery space whenever the script is opened.  I sometimes 
just copy the script into a text editor, and delete the old script 
entirely, review it for errors (there are usually none), paste it 
back in a new window, apply immediately, close immediately, and save. 
These wrestling matches are sometimes annoying, but I've always been 
able to work around them and in any case the script editor seems to 
report what it sees as an error immediately.

Questions about that:  What is with the empty space misbehavior in 
the first place?  Is it dangerous? Can it corrupt a stack file? Is 
this also a deprecation issue (sort of, in reverse)?

I found nothing else in the visible stack instructions that seemed in 
any way possible to connect with a corrupted or malfunctioning stack.

Richard Gaskin asked about images.  There is a background image in 
the mainstack that distributes to the substacks.  No other images of 
any kind in the corrupted stack.  I agree that Photoshop provides the 
best images for Revolution, and I always use that, rendering usually 
jpg but sometimes png images for logos or backgrounds. All other 
images displayed via this application come from the server.

That is all I have to report concerning the corrupted stack. No idea 
whether any of the above is actually related to the cause of the 
corruption.  However, the process of dealing with this has raised a 
few other questions.

Regarding the immortal dialog stack that nobody could kill (Andre 
suggested that MetaCard could be lethal to it, however), and which 
Andre has immortalized in his screen shots:  What seemed to have 
happened (before the no-Windows crisis) was that I downloaded an 
alternative dialog stack because I hated the three-mile-wide default 
dialog thing.  Once it was brought in as a substack, it appeared in 
the application browser, and seemed to always pre-empt Revolution's 
own dialog stacks in the IDE. It was a strange neon color so I 
fiddled with it, but it always looked ugly and finally I zapped it. 
But, as Andre discovered, it did not die.  There was absolutely no 
way to get it out of the stack.  You could disappear it from the 
browser and save, but when you reopened the mainstack it would 
reappear again. I figured it kept appearing in the IDE because it had 
somehow preempted the Revolution dialog stacks, but in that case why 
did it keep reappearing in the application browser as if it belonged 
in my application even though it was now working for the IDE?

But here is something else kind of neat.  When I finally gave up 
trying to make the alternative dialog stack look presentable, I 
zapped it, and when it was reincarnated it had picked up the 
background image of the mainstack!  This was, in fact, highly 
desirable. I liked it. It carried over beautifully to the OSX builds 
(of course, I never saw it in the Windows builds). I might try to 
make it happen again. If this can be tamed, it would be a useful 
addition, maybe?

In the end, I rid myself of the immortal dialog stack by creating a 
new mainstack and pointing all the substacks to it.  That left the 
old mainstack and the immortal dialog stack in a little universe of 
their own, after which they were closed and consigned to the dustbin 
of history.

Finally, the question with which it all began:  What in creation is a 
"0,0" error?  I have tentatively decided to interpret this as:  "I 
don't have the slightest idea why I cannot open and run your 
perfectly good application."

Many thanks, again, to all of you.  My Windows students are now using 
the applications to busily catch up on their work (one imagines).  I 
will lie low for the rest of the term to let the embarrassment blow 
over, but resume my advocacy here for Revolution in our courses.

Best wishes,
Pamela Crossley





More information about the use-livecode mailing list