rick@jessica.Stanford.EDU (Rick Wong) (03/14/90)
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. 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. 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. 4. How is segmentation handled? Does THINK Pascal handle segmentation directives in .o files? How about $S directives in MPW Pascal source files? 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). 6. Does 3.0 have better resource-handling tools than RMaker, or will I have to use MPW's Rez and Derez? I'd greatly appreciate any further information about MacApp and THINK Pascal 3.0. Thanks, Rick Wong rick@jessica.stanford.edu
siegel@endor.harvard.edu (Rich Siegel) (03/15/90)
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." ~~~~~~~~~~~~~~~
rick@jessica.Stanford.EDU (Rick Wong) (03/17/90)
My thanks to all who replied to my queries about TP 3.0. Except for the %@#@$*$&(!) jump table limitations (which MPW doesn't deal with either), it sounds like TP might even be useful to an old MPW/MacApp f*rt like me. I consider Object Pascal's jump table limitations a fundamental design flaw. The real killer about it is that it doesn't rear its ugly, wartful head until you've put several months of work into your application. Maybe now that a LOT more people are going to be using MacApp, Apple (or Symantec!) will finally correct this problem. Rick Wong rick@jessica.stanford.edu