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.edusiegel@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