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=0.2 required=5.0 tests=BAYES_00,INVALID_MSGID, REPLYTO_WITHOUT_TO_CC 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: 103376,b87849933931bc93 X-Google-Attributes: gid103376,public X-Google-Thread: 1108a1,b87849933931bc93 X-Google-Attributes: gid1108a1,public X-Google-Thread: 114809,b87849933931bc93 X-Google-Attributes: gid114809,public From: Slavik Zorin Subject: Re: What is wrong with OO ? Date: 1997/01/12 Message-ID: <32D967CB.20EE@sync-sys.com>#1/1 X-Deja-AN: 209436975 references: <5acjtn$5uj@news3.digex.net> <32D11FD3.41C6@wi.leidenuniv.nl> <32D53473.4DAA423A@eiffel.com> <5b3kpk$2gba@uni.library.ucla.edu> content-type: text/plain; charset=us-ascii organization: Synchrony Systems mime-version: 1.0 reply-to: szorin@sync-sys.com newsgroups: comp.lang.c++,comp.lang.smalltalk,comp.lang.eiffel,comp.lang.ada,comp.object,comp.software-eng x-mailer: Mozilla 3.0 (Win95; I) Date: 1997-01-12T00:00:00+00:00 List-Id: Inlining in Smalltalk is a pain in the ass, esspecially when the compiler bluntly chooses to do it for you. Message like >>isNil which is automatically inlined by the compiler wreeks all kinds of havoc when one uses proxies which are subclasses of nil. When I initialize an instance variable with some semantic proxy which gets dereferenced when it receives its first message (goes to DB and caches the real object in its place), the message >>isNil to this proxy should return true, that is the message isNil should be overriden! But, since the compiler rudely ignores it (how can it not, Smalltalk has not types, so there is now way the compiler knows the expression "obj isNil" should not be precompiled), one must replace all isNil messages to = or ~=; what a pain!!! How about: Compiler doNotInlineSelectors: someSelectorArray forMeta: aClassOrMetaclass If Smalltalk icludes a compiler, its time to include some public compiler APIs as well. Slavik Zorin