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