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: 103376,b87849933931bc93 X-Google-Attributes: gid103376,public From: tiggr@es.ele.tue.nl (Pieter Schoenmakers) Subject: Re: What is wrong with OO ? Date: 1997/01/13 Message-ID: #1/1 X-Deja-AN: 209423715 sender: tiggr@tom.ics.ele.tue.nl references: <5acjtn$5uj@news3.digex.net> cc: fjh@cs.mu.OZ.AU organization: Eindhoven University of Technology newsgroups: comp.lang.eiffel,comp.lang.ada Date: 1997-01-13T00:00:00+00:00 List-Id: In article <5bbcom$gc7@mulga.cs.mu.OZ.AU> fjh@mundook.cs.mu.OZ.AU (Fergus Henderson) writes: tiggr@es.ele.tue.nl (Pieter Schoenmakers) writes: >With any kind of static binding (and inlining is the summum in static >binding), the possibilities of dynamically loaded code are limited. What >to do if a dynamically loaded class redefines some feature causing that >feature to no longer be statically bindable? Recompile the whole >executable? --Tiggr If you allow new classes to be dynamically loaded, then the compiler can't statically bind features of objects whose dynamic type is unknown, but it can still statically bind features of objects whose dynamic type is known. If a class B can be dynamically loaded, and B is a subclass of the statically loaded (i.e. known to the compiler) class A, then every feature invocation of an object accessed through a variable of type A, where the actual object could just as well be a B, can not be statically bound or inlined. If, in that situation, you inline the feature implementation of A, and B redefines that feature, the wrong code is executed if the actual object (still denoted by the variable with type A) is a B and not an A. --Tiggr