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: fac41,b87849933931bc93 X-Google-Attributes: gidfac41,public X-Google-Thread: 109fba,b87849933931bc93 X-Google-Attributes: gid109fba,public X-Google-Thread: f43e6,b87849933931bc93 X-Google-Attributes: gidf43e6,public X-Google-Thread: 114809,b87849933931bc93 X-Google-Attributes: gid114809,public X-Google-Thread: 1108a1,b87849933931bc93 X-Google-Attributes: gid1108a1,public X-Google-Thread: 103376,b87849933931bc93 X-Google-Attributes: gid103376,public From: jmartin@cs.ucla.edu (Jay Martin) Subject: Re: What is wrong with OO ? Date: 1997/01/10 Message-ID: <5b4vuf$24s8@uni.library.ucla.edu>#1/1 X-Deja-AN: 208891038 references: <5acjtn$5uj@news3.digex.net> <32D11FD3.41C6@wi.leidenuniv.nl> <32D53473.4DAA423A@eiffel.com> <5b3kpk$2gba@uni.library.ucla.edu> organization: University of California, Los Angeles newsgroups: comp.lang.c++,comp.lang.smalltalk,comp.lang.eiffel,comp.lang.ada,comp.object,comp.software-eng Date: 1997-01-10T00:00:00+00:00 List-Id: dewar@merv.cs.nyu.edu (Robert Dewar) writes: >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). Gee I don't remember fully general inter-unit automatic/intellegent global analysis procedure inlining in the early 80's when "pragma inline" and "C++ inline" features were created. Maybe I just used lame compilers. But then I remembered I was just parroting Stroustrup: "I had had poor experiences with languages that left the job of inlining to compilers "because clearly the compiler knows best" The compiler only knows best when if it has been programmed to inline and it has a notion of time/space optimization that agrees with mine. My experience with other languages was that only "the next release" would actually inline, and it would do so according to an internal logic that a programmer couldn't effectively control." (Design Evolution C++ pg 33) >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. >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! Here's an ignorant question: Why would inlining or extensive optimations be turned on for frequent builds of a quickly changing large software project. It seems testing of optimized builds could be done less frequently and in parallel. I mean if you don't inline quickly changing source by using compiler controls, then you don't get these sort of dependencies. I must be missing something here. Here is an even more ignorant question: Why is compilation time still a driving factor? (excluding hardcore optimizations) Obviously it still is as I watched large systems compile lately. But wait, wasn't Turbo Pascal long ago seemly compile stuff faster on a 4.77MHz PC faster than VC++ on my P5-100. For fun I compiled old programs with vintage a Turbo Pascal Compiler and it seems to compile these suckers instantanously! It doesn't seem to me that current system build times are keeping pace with processor speed improvements. I mean shouldn't a Pentium Pro 200 be compiling like a million lines a second or something? If its not, then how about the eventual P7-600Mhz or the P8-2000Mhz-16(processors per chip). I mean I can write N lines of code a day and that is not going to change much, but computer speeds are increasing exponentially. Jay