[comp.sys.apple] C on IIGS..

dougm@pnet51.cts.com (Doug Mcintyre) (03/22/89)

Actually using the advanced linker and APW C, you can have any size of
varraibles you want. Arrays are no problem, but you have to be careful that
some programs only use malloc which has a 64k limit, and assume that two large
blocks they allocate will be contigous, which they are practically assured
that they will not be. (ie. the MM will try to allign blocks in some weird
demonic manor..). Of course auto varriables are regulated to less than 64k
since they are allocated on the stack, and that stack can probably only
resonably be about 32k max.. Globals can be put in many different load
segments with the advanced linker (much easier than using the segment
command). But there is one gotcha using the alinker, the APW C library is
totally messed up now, you have to do about 4 passes at least to drag all the
library stuff into your load segments. If anybody needs help with this, I use
a standard alinker script that does the job, and is minimal. If you are
working with more than 5 files, the APW C segment specifier is too much of a
pain to use..
        Orca/C compiles and links much faster (I've timed it to be about 1/3
faster compiling and linking. Can't run through big enough programs to test
compiling speed yet) Mike reports that the small model on Orca/C runs up to
about 25% faster than APW C does because it only uses 16-bit relative
addressing instead of all 24-bit absolute addressing APW C produces.. Also if
you are into size, an Orca/C basic program that drags printf into the load
segments ends up being only 3k, while the same program under APW C is close to
almost 10 times that.. Not quite but close enough with those large numbers..

UUCP: {rosevax, crash}!orbit!pnet51!dougm                Compuserve: 70611,2215
ARPA: crash!orbit!pnet51!dougm@nosc.mil                        ALPE: DougMac
INET: dougm@pnet51.cts.com