hasMemory
Richard Gaskin
ambassador at fourthworld.com
Mon Aug 2 17:56:41 EDT 2004
Mark Wieder wrote:
> All-
>
> Does anyone have any clues about the "hasMemory" function? In the
> documentation I see:
>
> Comments:
> This function is only partially implemented, and may not return useful
> values on some platforms. It is included in Transcript for
> compatibility with imported SuperCard projects.
>
> That alone would keep me from using it, but I'm curious about what
> "partially implemented" means.
The MC docs refer to the hasMemory function as "implemented for
SuperCard compatibility". In my experience, "implemented for
compatibility" means "implemented in such a way that it won't throw
script errors even if it does nothing at all like what you expected."
In even blunter terms, "for compatibility" sometimes means the engine
may lie to you by not throwing a script error when an expected behavior
is not at all present.
For example, in SuperCard you can say "set the tool of window myWindow
to pointer", and only the specified window has the pointer mode while
all others remain governed by the more global "choose" command.
But in Transcript, "set the tool" is synonymous with "choose", so that
all toplevel windows will have the same mode. AFAIK it isn't currently
possible to have multiple toplevel windows with different modes (though
an even more flexible option is proposed in
<http://www.runrev.com/revolution/developers/bugdatabase/show_bug.cgi?id=623>).
So if you're porting from SC and "set the tool" doesn't throw a script
error, you may miss learning the essential fact that what your script is
attempting, and being allowed to run, really isn't doing what you want.
How this comes down with the hasMemory function I couldn't tell you.
But I can say that once you walk away from OS 9 I doubt you'll have
memory issues. Win32 has a pretty efficient virtual memory system, and
of course the VM in UNIX, including OS X, is stellar. I've never had a
low-memory condition in any OS other than Win95 (back when the machines
shipped with barely enough to run the OS) and Mac OS 9.
My rule of thumb is to avoid tokens implemented "for compatibility".
The old MC docs didn't even include any that weren't fully implemented,
tucking them away into a note on compatibility with other tools.
My clients and I have gone one step further: we don't even build for OS
9 anymore until someone requests it. I know that's not an option in
some markets, but thus far in our web publishing, medical, and
qualitative analysis markets I haven't had a request for Classic yet. I
know that roughly half of Mac users are still running OS 9, but the
number is tilting rapidly and most of those customers aren't the ones
buying software.
--
Richard Gaskin
Fourth World Media Corporation
___________________________________________________________
Ambassador at FourthWorld.com http://www.FourthWorld.com
More information about the use-livecode
mailing list