Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!husc6!bloom-beacon!oberon!sdcrdcf!trwrb!scgvaxd!ashtate!dbase!drc From: drc@dbase.UUCP (Dennis Cohen) Newsgroups: comp.sys.mac Subject: Re: What is wrong with the Sumacc C compiler Message-ID: <262@dbase.UUCP> Date: Fri, 13-Nov-87 10:36:57 EST Article-I.D.: dbase.262 Posted: Fri Nov 13 10:36:57 1987 Date-Received: Sun, 15-Nov-87 16:28:54 EST References: <7486@dartvax.UUCP> <7508@dartvax.UUCP> <21522@ucbvax.BERKELEY.EDU> <1102@cadnetix.UUCP> Organization: Ashton Tate Development Center Glendale Cal. Lines: 44 Keywords: C compiler gripe Summary: Segment loader In article <1102@cadnetix.UUCP>, pem@cadnetix.UUCP (Paul Meyer) writes: > In article <2283@watcgl.waterloo.edu> kdmoen@watcgl.waterloo.edu (Doug Moen) writes: > > On a 68000-series machine, sufficient fancy addressing modes are > available to make absolute references to data unneccessary except for > using low-memory globals (which of course don't move anyway). This > kind of coding is what makes code not "dynamically relocatable", and > all programs for the Mac are required to be dynamically relocatable. > > Presumably, the sumacc application could be set up as a single > segment, but a single segment can't be more than 32K long. I have no > hard data on what sumacc does, but if it doesn't cooperate with the > Mac operating system, it will obviously be vulnerable to breaking at > the change of the wind. > Wrong!!! There are compilers such as Sumacc, TDI Modula-2, and one of the FORTRAN compilers (I forget the name, but marketed by DCM in Fort Worth) that do NOT use the Mac Segment loader. There is nothing sacred about using the segment loader, it's just that this is the addressing mode used by the vast majority of Mac compilers (because that's the way Lisa Pascal did it, probably). Compilers that don't use the segment loader need to have some other way of handling overlays and segmentation is all. As a matter of fact, TDI advertises the lack of segment loader support as a beneficial feature of their compiler! I'm not sure that I agree with that in general, but it could be valuable for a certain class of application (maybe CAD) as this also removes the stack frame and allows for other forms of global data storage than A5-relative. You'll notice that the underlying architecture is a MC680x0 and that other machines with the same processor don't have the segment loader. It's just a set of traps that Apple provides in ROM and PTCH to make things a little bit easier, kind of like the Control Manager. You don't have to use it, but if you don't, you'll probably need to replace its functionality with something else. In short, don't say it ain't so until you at least take the time to check it out. Dennis Cohen Ashton-Tate Glendale Development Center dBASE Mac Development Team -------------------------- Disclaimer: The above opinions are mine (proprietary) and do not belong to my employer.