From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 109fba,b87849933931bc93 X-Google-Attributes: gid109fba,public X-Google-Thread: fac41,b87849933931bc93 X-Google-Attributes: gidfac41,public X-Google-Thread: 1108a1,b87849933931bc93 X-Google-Attributes: gid1108a1,public X-Google-Thread: 103376,b87849933931bc93 X-Google-Attributes: gid103376,public X-Google-Thread: 114809,b87849933931bc93 X-Google-Attributes: gid114809,public X-Google-Thread: f43e6,b87849933931bc93 X-Google-Attributes: gidf43e6,public From: dewar@merv.cs.nyu.edu (Robert Dewar) Subject: Re: What is wrong with OO ? Date: 1997/01/09 Message-ID: #1/1 X-Deja-AN: 208905737 references: <5acjtn$5uj@news3.digex.net> <32D11FD3.41C6@wi.leidenuniv.nl> <32D53473.4DAA423A@eiffel.com> <5b3kpk$2gba@uni.library.ucla.edu> organization: New York University newsgroups: comp.lang.c++,comp.lang.smalltalk,comp.lang.eiffel,comp.lang.ada,comp.object,comp.software-eng Date: 1997-01-09T00:00:00+00:00 List-Id: Jay, in typical fulminating mode says "It seems to me need for "pragma inline" and "inline" is/was social. It came from compiler writers continually slacking off since the 60's and not implementing inlining." nonsense, all decent compilers implement inlining today, it is a more vital optimization than ever because of icache considerations (particularly in direct addressed caches). The pragma inline in Ada is simply a permission to create a dependence on the body, it has nothing to do with what you think of informally as inlining. In a large project it is essential not to accidentally create interunit dependences so that a small change to one unit causes millions of lines to need to be recompiled. There is of course no problem in implementing automatic inlining within a unit. As I said earlier, virtually all production compilers do this, including of course GCC. The problem is that you definitely do NOT want the compiler rushing off and creating unlimited body dependencies (think interunit dependencies if you don't want to think Ada specifically) by doing automatic interunit inlining. Still some interunit inlining is highly desirable especially with heavy layering of abstractions. But you want to give the programmer some control, to avoid the problem of inter-unit dependencies running amok!