Path: utzoo!attcan!uunet!snorkelwacker!husc6!endor!siegel From: siegel@endor.harvard.edu (Rich Siegel) Newsgroups: comp.sys.mac.programmer Subject: Re: MacApp and THINK Pascal 3.0 Keywords: MacApp, THINK Pascal Message-ID: <2233@husc6.harvard.edu> Date: 15 Mar 90 12:40:56 GMT References: <10137@portia.Stanford.EDU> Sender: news@husc6.harvard.edu Reply-To: siegel@endor.UUCP (Rich Siegel) Organization: Symantec Language Products Group Lines: 73 In article <10137@portia.Stanford.EDU> rick@jessica.Stanford.EDU (Rick Wong) writes: >Some of the features I've seen mentioned about the new version of THINK >Pascal make it sound extremely attractive for MacApp development. I've >still, however, got a few questions: > > 1. Does it REALLY allow jump tables larger than 32K (4091 entries)? > I've been kludging around this problem for well over a year, now > -- it's nice to see SOMEONE finally addressing it. Only when running under the environment. Typically, when smartlinking, the jump table gets pruned down to less than 32K. > 2. Can I call routines written in other languages (i.e., C, Assembler) > from THINK Pascal? In particular, does THINK Pascal have a "C" > directive so I can call functions that obey C calling conventions? > I don't mind if the functions have to be previously compiled (by > MPW) into .o files. There's no C directive, so any external functions have to be written using the Pascal calling conventions. > 3. Can I call THINK Pascal methods from other languages? In MPW > Assembler, for instance, I can directly call a particular method > belonging to a particular class by saying something like: > > jmp TObject_Free > > In MPW Assembler, I think it's also possible to say something like > "jmp TObject$Free" to let the method dispatcher figure out which > subclass should handle the call. > Good question. Assuming that the linker names are correctly imported, I can't think of a reason why not... > 4. How is segmentation handled? Does THINK Pascal handle segmentation > directives in .o files? How about $S directives in MPW Pascal > source files? THINK Pascal honors segmentation in .O files, as well as the $S. "Virtual Segments" which are created by $S can be dragged into different physical segments - the graphical analog of the MPW linker's "-sn" directive. > 5. Are MPW Pascal's other compiler directives supported? I'm most > concerned about the conditional compilation ($ifc, $elsec, $endc) > and "handle warning" directives ($h-, $h+, $push, $pop). Conditional compilation has been supported since 2.0. In 3.0, we support more directives: $Push, $Pop, $N++ (like MPW's $D++), and a few others. $H +/- is not supported. > 6. Does 3.0 have better resource-handling tools than RMaker, or will > I have to use MPW's Rez and Derez? THINK Pascal comes with standalone versions of Rez and DeRez which are licensed from Apple, as well as a standalone PostRez. R. ~~~~~~~~~~~~~~~ Rich Siegel Staff Software Developer Symantec Corporation, Language Products Group Internet: siegel@endor.harvard.edu UUCP: ..harvard!endor!siegel "When someone who makes four hundred and fifty dollars an hour wants to tell you something for free, it's a good idea to listen." ~~~~~~~~~~~~~~~