Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Path: utzoo!watmath!clyde!cuae2!ihnp4!inuxc!pur-ee!j.cc.purdue.edu!k.cc.purdue.edu!ahe
From: ahe@k.cc.purdue.edu.UUCP
Newsgroups: comp.lang.modula2
Subject: Re: Modula-2 standard
Message-ID: <1656@k.cc.purdue.edu>
Date: Thu, 11-Dec-86 18:32:08 EST
Article-I.D.: k.1656
Posted: Thu Dec 11 18:32:08 1986
Date-Received: Sun, 14-Dec-86 18:46:48 EST
References: <11458@cca.UUCP> <307@bms-at.UUCP> <475@aw.sei.cmu.edu.sei.cmu.edu>
Organization: Purdue University Computing Center
Lines: 35
Summary: Procedures versus modules with respect to in-line code...

In article <4814@ism780c.UUCP> marty@ism780c.UUCP (Marty Smith) writes:
>In article <11458@cca.UUCP> bills@cca.UUCP (Bill Stackhouse) writes:
>>
>>Something I would like to see in all procedure based languages
>>is some syntax in the procedure def. that indicates that the
			^^^^^^^^^
>>procedure is to be included inline at all places it is called.

In article <475@aw.sei.cmu.edu.sei.cmu.edu>, firth@sei.cmu.edu.UUCP writes:
> Let me agree at once with Stuart and others that a "good" compiler
> should automatically expand procedures inline where appropriate.
> 
> However, I think some pragma or hint is needed to tell most
> compilers where this is indeed appropriate.  Suppose, for instance,
> that a DEFINITION module contains a procedure definition, and the
> IMPLEMENTATION module contains the body.  If the procedure is
> compiled as true out-of-line code, then you can replace the
> implementation (body) without recompiling dependents. [...]

   The original article referenced *procedures* and not modules.
   Furthermore, in the case of a module, the compiler has NO CHOICE but to
   generate out-of-line code; the separateness must be maintained.
   
In article <475@aw.sei.cmu.edu.sei.cmu.edu>, firth@sei.cmu.edu.UUCP writes:
> But here I'd state my personal preference for more intelligent
> compilers.  In general, the user should give the compiler any
> information it CANNOT find out for itself, and no other
> information.

   The compiler already has all the information it needs.  When one
   specifies "module", the compiler can, should, and will take this 
   as a clear indication that the code is *not* to be expanded in-line.
   
						  Bill Wolfe