Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: version B 2.10.1 6/24/83; site mmintl.UUCP
Path: utzoo!linus!philabs!pwa-b!mmintl!franka
From: franka@mmintl.UUCP (Frank Adams)
Newsgroups: net.lang
Subject: Re: Checking for Recursions
Message-ID: <671@mmintl.UUCP>
Date: Fri, 20-Sep-85 14:48:25 EDT
Article-I.D.: mmintl.671
Posted: Fri Sep 20 14:48:25 1985
Date-Received: Wed, 25-Sep-85 07:48:19 EDT
References: <250@mot.UUCP> <4302@alice.UUCP> <1124@kestrel.ARPA> <653@bu-cs.UUCP>
Reply-To: franka@mmintl.UUCP (Frank Adams)
Organization: Multimate International, E. Hartford, CT
Lines: 28
Summary: A system problem


[Not food]

As several people have pointed out, checking for recursions really needs to
be done by the linker, not the compiler.  This requires, at minimum, some
expansion and/or redesign of the relocatable files produced by the compilers.

There are other good reasons for such a redesign.  Most especially, one would
like the linker to check number, direction, and type of subprogram arguments.
(Doing this for enumeration types and structure or record definitions is a
non-trivial design problem.)

The next question is, how do you get there from here?  I think the
development path would be:

1) specify the new file format

2) write a linker which can process objects in either format.  When making
   comparisons involving mixed styles (e.g., a new style call to an old
   style routine), assume it is correct.

3) modify existing compilers and assemblers to generate new style files.
   For assemblers, this will require additional statements in the source.

This all assumes that you are modifying an existing OS; for a new OS, this
can all be done right in the first place.

Frank Adams                           ihpn4!philabs!pwa-b!mmintl!franka
Multimate International    52 Oakland Ave North    E. Hartford, CT 06108