info-mac@uw-beaver (01/03/85)
From: winkler@harvard.ARPA (Dan Winkler) From the Lisa Clascal manual, how's this for emphasis: "If you are sure and absolutely certain and fully convinced that the call will never allocate and never cause the heap to compact..." And from that same document, how's this for an obscure bug: "...the NV bug. This is a bug in LisaBug that occurs when one of your procedures contains the characters 'NV' next to each other in that order and this combination is also on a word boundary. LisaBug suddenly thinks it has found a link instruction, or something, and for some strange reason, this makes LisaBug forget all the rest of the symbols in that segment!...The solution is to rename the procedure containing the NV." Clascal seems like a good language, at least from reading the manual. It is a superset of Lisa Pascal with classes. I expect its biggest advantage will be the generic Macintosh Application that automatically does all the detailed things like initializing the toolbox in the right order, setting up the apple menu, aligning scroll bars in windows, catching events, allocating master pointers, and everything else that every Mac program should do. Apple is taking some care to ensure that the generic application does all those things as well as possible. Larry Rosenstein (lsr@apple.csnet) asked you to send him any tricks you know so they could be built in once and for all. Then by defining your own subclasses, you can add to or override any part of the generic application you want. The Clascal system will eventually (soon they say) be native on the Mac. You will also be able to write methods in assembly language for efficiency if you want while still taking advantage of the structure of Clascal. Now, on a completely different topic, the Scrap Manager section of Inside Mac says that it's a good idea to set up your application so that the first segment loaded is a very small one that does nothing but check whether the scrap is too big (InfoScrap) to allow loading the rest of the application and if so writes it out to disk (UnloadScrap). But in Sumacc, there is only one segment and it's your entire application. So will large Sumacc applications fail when the scrap is also large? Dan. (winkler@harvard)